From 0f7bed04b46483c0cd87e38dfba814c1bdc16b6b Mon Sep 17 00:00:00 2001 From: pinfort Date: Fri, 10 Feb 2023 00:18:11 +0900 Subject: [PATCH] hyogo v4.0.0 update (#1152) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix logged out search and changed logged-in search placeholder (#19514) * fix name of Lao language (#19520) It said ພາສາ or pha-sa, which means just "language" in Lao. "ພາສາລາວ", pha-sa lao, is the full name but the short "ລາວ" is commonly used. * Fix wrong host being used for custom.css when asset host configured (#19521) * nginx: optimize locations (#19438) * nginx: optimize locations * nginx: don't use regex in locations * nginx: optimize Cache-Control headaers * nginx: use 404 error_page for missing static files * nginx: sort locations * nginx: add missing HSTS header * Fix upload progress not communicating processing phase in web UI (#19530) * Fix helm chart use of Postgres Password (#19537) Fixes #19536 * Fix sidebar and tabs on settings on small screens in admin UI (#19533) * Fix not being able to input featured tag with `#` (#19535) * Fix language not being saved when editing status (#19543) Fix #19542 * Fix admin APIs returning deleted object instead of empty object upon delete (#19479) Fix #19153 * Fix account action type validation (#19476) * Fix account action type validation Fix #19143 * Fix #19145 * Fix code style issues * Add reputation and followers score boost to SQL-only account search (#19251) * Fix invites (#19560) Fixes #19507 Fix regression from #19296 * Remove language filtering from hashtag timelines (#19563) * Change design of link footer (#19562) * Change featured hashtag deletion to be done synchronously (#19590) * New Crowdin updates (#19517) * New translations en.json (Persian) * New translations en.json (Spanish, Argentina) * New translations simple_form.en.yml (Arabic) * New translations activerecord.en.yml (Slovenian) * New translations activerecord.en.yml (Turkish) * New translations en.json (Persian) * New translations en.yml (Persian) * New translations activerecord.en.yml (Spanish) * New translations en.json (Czech) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations en.json (Catalan) * New translations en.json (Greek) * New translations en.json (Basque) * New translations en.yml (Basque) * New translations en.json (Polish) * New translations en.json (Chinese Traditional) * New translations en.json (Latvian) * New translations simple_form.en.yml (Basque) * New translations activerecord.en.yml (Greek) * New translations activerecord.en.yml (Basque) * New translations activerecord.en.yml (Polish) * New translations en.yml (German) * New translations en.json (Vietnamese) * New translations en.json (Kurmanji (Kurdish)) * New translations simple_form.en.yml (German) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (Romanian) * New translations en.json (Chinese Traditional) * New translations simple_form.en.yml (Chinese Traditional) * New translations activerecord.en.yml (Afrikaans) * New translations en.json (German) * New translations en.json (Romanian) * New translations en.json (Afrikaans) * New translations en.json (German) * New translations en.json (Japanese) * New translations en.yml (Japanese) * New translations simple_form.en.yml (Japanese) * New translations activerecord.en.yml (Japanese) * New translations en.yml (German) * New translations en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations activerecord.en.yml (German) * New translations activerecord.en.yml (Portuguese, Brazilian) * New translations en.json (Polish) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations en.yml (German) * New translations en.json (German) * New translations en.json (Italian) * New translations en.json (Portuguese) * New translations simple_form.en.yml (German) * New translations en.json (Bulgarian) * New translations en.json (Chinese Traditional) * New translations en.json (Danish) * New translations en.json (Finnish) * New translations en.json (Dutch) * New translations en.json (Danish) * New translations simple_form.en.yml (Danish) * New translations activerecord.en.yml (Danish) * New translations en.json (Dutch) * New translations en.json (Chinese Traditional) * New translations en.yml (Chinese Traditional) * New translations simple_form.en.yml (Chinese Traditional) * New translations en.json (Ukrainian) * New translations en.json (Chinese Traditional) * New translations en.yml (Chinese Traditional) * New translations simple_form.en.yml (Chinese Traditional) * New translations doorkeeper.en.yml (Chinese Traditional) * New translations devise.en.yml (Chinese Traditional) * New translations en.json (Chinese Traditional) * New translations en.yml (Chinese Traditional) * New translations en.yml (Spanish, Argentina) * New translations doorkeeper.en.yml (Chinese Traditional) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations en.json (Chinese Traditional) * New translations en.yml (Chinese Traditional) * New translations simple_form.en.yml (Chinese Traditional) * New translations en.json (Chinese Traditional) * New translations en.yml (Chinese Traditional) * New translations simple_form.en.yml (Chinese Traditional) * New translations doorkeeper.en.yml (Chinese Traditional) * New translations devise.en.yml (Chinese Traditional) * New translations en.json (Japanese) * New translations en.yml (Japanese) * New translations en.json (Chinese Simplified) * New translations en.json (French) * New translations en.yml (French) * New translations simple_form.en.yml (French) * New translations en.yml (German) * New translations en.json (French) * New translations en.json (Afrikaans) * New translations en.yml (Afrikaans) * New translations en.json (Kabyle) * New translations en.yml (Kabyle) * New translations simple_form.en.yml (Kabyle) * New translations en.yml (Czech) * New translations en.json (German) * New translations en.json (French) * New translations en.yml (Catalan) * New translations en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations activerecord.en.yml (Kurmanji (Kurdish)) * New translations en.yml (German) * New translations en.json (Bulgarian) * New translations en.json (German) * New translations en.yml (Italian) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Greek) * New translations en.json (Hungarian) * New translations en.yml (Hungarian) * New translations en.yml (Portuguese) * New translations en.yml (Vietnamese) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Polish) * New translations en.yml (Latvian) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Turkish) * New translations en.yml (Ukrainian) * New translations simple_form.en.yml (German) * New translations en.json (German) * New translations en.yml (German) * New translations en.json (German) * New translations en.json (Asturian) * New translations simple_form.en.yml (German) * New translations doorkeeper.en.yml (German) * New translations en.json (German) * New translations en.yml (German) * New translations en.json (German) * New translations en.json (Basque) * New translations en.json (Chinese Simplified) * New translations en.json (Basque) * New translations en.yml (Basque) * New translations en.json (Slovenian) * New translations simple_form.en.yml (Basque) * New translations en.yml (Spanish) * New translations en.json (Spanish) * New translations en.yml (Basque) * New translations activerecord.en.yml (Spanish) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Ukrainian) * New translations en.json (Ukrainian) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Ukrainian) * New translations activerecord.en.yml (Ukrainian) * New translations en.json (German) * New translations en.yml (Ukrainian) * New translations en.json (Slovenian) * New translations en.json (Ukrainian) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Ukrainian) * New translations doorkeeper.en.yml (Ukrainian) * New translations en.json (German) * New translations en.json (Esperanto) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations doorkeeper.en.yml (Dutch) * New translations en.yml (Japanese) * New translations simple_form.en.yml (Japanese) * New translations en.json (Japanese) * New translations en.yml (Japanese) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations simple_form.en.yml (Japanese) * New translations en.json (Japanese) * New translations en.yml (Japanese) * New translations en.yml (German) * New translations en.json (German) * New translations en.json (Japanese) * New translations en.json (Slovenian) * New translations en.yml (Slovenian) * New translations en.yml (German) * New translations en.json (Japanese) * New translations en.json (Indonesian) * New translations simple_form.en.yml (German) * New translations en.yml (German) * New translations en.json (German) * New translations en.json (Indonesian) * New translations en.yml (Russian) * New translations en.yml (Indonesian) * New translations simple_form.en.yml (Indonesian) * New translations en.json (Burmese) * New translations en.yml (Burmese) * New translations simple_form.en.yml (Burmese) * New translations activerecord.en.yml (Burmese) * New translations devise.en.yml (Burmese) * New translations doorkeeper.en.yml (Burmese) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Indonesian) * New translations simple_form.en.yml (Indonesian) * New translations activerecord.en.yml (Indonesian) * New translations en.json (Burmese) * New translations en.json (German) * New translations en.json (Indonesian) * New translations en.json (Swedish) * New translations en.json (Icelandic) * New translations en.yml (Indonesian) * New translations simple_form.en.yml (Indonesian) * New translations en.json (Hungarian) * New translations en.json (German) * New translations en.json (Icelandic) * New translations en.yml (Icelandic) * New translations en.json (Scottish Gaelic) * New translations en.yml (Scottish Gaelic) * New translations en.json (German) * New translations en.yml (Arabic) * New translations en.json (Hindi) * New translations en.json (Scottish Gaelic) * New translations simple_form.en.yml (Arabic) * New translations simple_form.en.yml (Scottish Gaelic) * New translations activerecord.en.yml (Scottish Gaelic) * New translations devise.en.yml (Scottish Gaelic) * New translations activerecord.en.yml (Danish) * New translations en.json (German) * New translations en.json (Scottish Gaelic) * New translations en.json (German) * New translations en.json (Persian) * New translations en.yml (Persian) * New translations en.json (Persian) * New translations activerecord.en.yml (Persian) * New translations en.json (Igbo) * New translations en.yml (Igbo) * New translations simple_form.en.yml (Igbo) * New translations activerecord.en.yml (Igbo) * New translations devise.en.yml (Igbo) * New translations doorkeeper.en.yml (Igbo) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations en.json (Spanish, Argentina) * New translations simple_form.en.yml (Korean) * New translations en.json (Spanish, Argentina) * New translations en.json (Japanese) * New translations simple_form.en.yml (Japanese) * New translations en.json (Igbo) * New translations en.json (Japanese) * New translations en.yml (Japanese) * New translations en.yml (Japanese) * New translations simple_form.en.yml (Japanese) * New translations en.json (Galician) * New translations en.yml (Galician) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * Run `yarn manage:translations` * Run `bundle exec i18n-tasks normalize` Co-authored-by: Yamagishi Kazutoshi * Fix UserCleanupScheduler crash when an unconfirmed account has a moderation note (#19629) Fixes #19109 * Change max. thumbnail dimensions to 640x360px (360p) (#19619) * Add translatable scripts (js) (#19624) * png optimization(loss less) (#19630) * Change post-processing to be deferred only for large media types (#19617) * Fix N+1 on mentions in PushUpdateWorker (#19637) * Add support for HEIC uploads (#19618) * Add support for AVIF uploads (#19647) * Change migration to migrate admins to Owner role rather than Admin role (#19671) * Fix mastodon:setup not setting the admin's role properly (#19670) * Fix mastodon:setup not setting the admin's role properly * Set contact username when creating admin account in mastodon:setup * Fix bookmark import stopping at the first failure (#19669) Fixes #19389 * Fix edits not being immediately reflected (#19673) Fixes #19546 * Fix inaccurate admin log entry for re-sending confirmation e-mails (#19674) Fixes #19593 * Fix being unable to withdraw follow request when confirmation modal is disabled (#19687) * Fix being unable to withdraw follow request when unfollow confirmation modal is disabled Fixes #19569 * Fix “unfollow” being inadequately used for withdrawing follow requests from account card * Fix admin action logs page (#19649) * Add tests * Fix crash when trying to display orphaned action logs * Add migration for older admin action logs * Change flaky AccountSearchService test (#19650) * Remove meta tag for official iOS app (#19656) * Fix handling of duplicate and out-of-order notifications in WebUI (#19693) * Fix handling of duplicate notifications from streaming server * Fix handling of duplicate and out-of-order notifications when polling/expanding Fixes #19615 * Fix design of verified links in web UI (#19709) * Fix wrong colors in the high-contrast theme (#19708) * Fix showing profile's featured tags on individual statuses (#19712) * Fix limited account hint referencing "your" server when logged out (#19711) * Fix colors in light theme (#19714) * Change mentions of blocked users to not be processed (#19725) Fixes #19698 * Fix /users/:username/statuses/:id leading to a soft 404 in web app (#19724) * Add caching for payload serialization during fan-out (#19642) * Make word-break: keep-all for dismissable banner (#19719) * Fix featured tags not saving preferred casing (#19732) * Add assets from Twemoji 14.0 (#19733) * Fix reblogs being discarded after the reblogged status (#19731) * A11y: Explicit
element around compose area (#19742) * Fix various issues with store hydration (#19746) - Improve tests - Fix possible crash when application of a reblogged post isn't set - Fix discrepancies around favourited and reblogged attributes - Fix discrepancies around pinned attribute - Fix polls not being hydrated * Fix additional issues with status cache hydration (#19747) * Spare one SQL query when hydrating polls * Improve tests * Fix more discrepancies * Fix possible crash when the status has no application set * Fix n+1 query during status removal (#19753) * New Crowdin updates (#19627) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Traditional) * New translations en.json (Urdu (Pakistan)) * New translations en.json (Vietnamese) * New translations en.json (Galician) * New translations en.json (Armenian) * New translations en.yml (Irish) * New translations en.json (Thai) * New translations en.json (Sinhala) * New translations en.json (Bulgarian) * New translations en.json (Ido) * New translations en.json (German) * New translations en.json (Tamil) * New translations en.json (Esperanto) * New translations en.json (Czech) * New translations en.json (Dutch) * New translations en.json (Albanian) * New translations en.json (Japanese) * New translations en.json (Indonesian) * New translations en.json (Romanian) * New translations en.json (Irish) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Afrikaans) * New translations en.json (Arabic) * New translations en.json (Catalan) * New translations en.json (Danish) * New translations en.json (Greek) * New translations en.json (Frisian) * New translations en.json (Basque) * New translations en.json (Finnish) * New translations en.json (Icelandic) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Corsican) * New translations en.json (Kannada) * New translations en.json (Scottish Gaelic) * New translations en.json (Asturian) * New translations en.json (Occitan) * New translations en.json (Serbian (Latin)) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (Sorani (Kurdish)) * New translations en.json (Sardinian) * New translations en.json (Breton) * New translations en.json (Sanskrit) * New translations en.json (Taigi) * New translations en.json (Silesian) * New translations en.json (Standard Moroccan Tamazight) * New translations activerecord.en.yml (Spanish, Mexico) * New translations en.json (Burmese) * New translations en.json (Cornish) * New translations en.json (Malayalam) * New translations en.json (Persian) * New translations en.json (Estonian) * New translations en.json (Spanish, Argentina) * New translations en.json (Spanish, Mexico) * New translations en.json (Bengali) * New translations en.json (Marathi) * New translations en.json (Croatian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Kazakh) * New translations en.json (Latvian) * New translations en.json (Tatar) * New translations en.json (Hindi) * New translations en.json (Malay) * New translations en.json (Telugu) * New translations en.json (English, United Kingdom) * New translations en.json (Welsh) * New translations en.json (Uyghur) * New translations en.json (Chinese Traditional, Hong Kong) * New translations en.json (Japanese) * New translations en.json (Finnish) * New translations en.json (Irish) * New translations en.yml (Irish) * New translations en.json (Portuguese) * New translations en.json (Chinese Simplified) * New translations en.json (Spanish, Argentina) * New translations en.json (Irish) * New translations en.json (Irish) * New translations doorkeeper.en.yml (Irish) * New translations activerecord.en.yml (Irish) * New translations devise.en.yml (Irish) * New translations en.json (Greek) * New translations en.json (Irish) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations en.json (Chinese Traditional) * New translations en.json (Galician) * New translations en.json (French) * New translations en.yml (French) * New translations en.json (Italian) * New translations en.json (Vietnamese) * New translations en.json (Latvian) * New translations simple_form.en.yml (Korean) * New translations en.json (Esperanto) * New translations en.json (Albanian) * New translations en.json (Indonesian) * New translations en.json (Icelandic) * New translations en.yml (Indonesian) * New translations en.json (Norwegian Nynorsk) * New translations en.yml (Norwegian Nynorsk) * Run `yarn manage:translations` * Run `bundle exec i18n-tasks normalize` * New translations en.json (Slovenian) * New translations en.json (Turkish) * New translations en.json (Vietnamese) * New translations en.yml (Norwegian Nynorsk) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (German) * New translations simple_form.en.yml (Finnish) * New translations en.json (Hungarian) * New translations en.yml (Hungarian) * New translations en.json (Breton) * New translations en.json (Dutch) * New translations en.json (Spanish) * New translations simple_form.en.yml (French) * New translations simple_form.en.yml (Czech) * New translations simple_form.en.yml (Norwegian) * New translations simple_form.en.yml (Hungarian) * New translations en.json (French) * New translations simple_form.en.yml (Italian) * New translations simple_form.en.yml (Japanese) * New translations simple_form.en.yml (Georgian) * New translations simple_form.en.yml (Korean) * New translations simple_form.en.yml (Portuguese) * New translations simple_form.en.yml (Russian) * New translations simple_form.en.yml (Slovak) * New translations simple_form.en.yml (Slovenian) * New translations simple_form.en.yml (Albanian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations simple_form.en.yml (Swedish) * New translations simple_form.en.yml (Turkish) * New translations simple_form.en.yml (Hebrew) * New translations simple_form.en.yml (Armenian) * New translations simple_form.en.yml (Finnish) * New translations simple_form.en.yml (Afrikaans) * New translations en.json (Catalan) * New translations simple_form.en.yml (Dutch) * New translations simple_form.en.yml (Polish) * New translations simple_form.en.yml (Basque) * New translations simple_form.en.yml (Romanian) * New translations simple_form.en.yml (French) * New translations simple_form.en.yml (Spanish) * New translations simple_form.en.yml (Arabic) * New translations simple_form.en.yml (Bulgarian) * New translations simple_form.en.yml (Catalan) * New translations simple_form.en.yml (Danish) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Greek) * New translations simple_form.en.yml (Frisian) * New translations simple_form.en.yml (Indonesian) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Icelandic) * New translations simple_form.en.yml (Galician) * New translations simple_form.en.yml (Chinese Simplified) * New translations simple_form.en.yml (Chinese Traditional) * New translations simple_form.en.yml (Ukrainian) * New translations en.json (Ukrainian) * New translations simple_form.en.yml (Sinhala) * New translations simple_form.en.yml (Vietnamese) * New translations simple_form.en.yml (Persian) * New translations simple_form.en.yml (Tamil) * New translations simple_form.en.yml (Corsican) * New translations simple_form.en.yml (Scottish Gaelic) * New translations simple_form.en.yml (Asturian) * New translations simple_form.en.yml (Occitan) * New translations simple_form.en.yml (Serbian (Latin)) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Sorani (Kurdish)) * New translations simple_form.en.yml (Sardinian) * New translations simple_form.en.yml (Breton) * New translations simple_form.en.yml (Kabyle) * New translations simple_form.en.yml (Ido) * New translations simple_form.en.yml (Standard Moroccan Tamazight) * New translations simple_form.en.yml (Malayalam) * New translations simple_form.en.yml (Spanish, Argentina) * New translations simple_form.en.yml (Estonian) * New translations simple_form.en.yml (Spanish, Mexico) * New translations simple_form.en.yml (Bengali) * New translations simple_form.en.yml (Thai) * New translations simple_form.en.yml (Croatian) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations simple_form.en.yml (Kazakh) * New translations simple_form.en.yml (Latvian) * New translations simple_form.en.yml (Tatar) * New translations simple_form.en.yml (Welsh) * New translations simple_form.en.yml (Esperanto) * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) * New translations en.json (Persian) * New translations simple_form.en.yml (Hungarian) * New translations simple_form.en.yml (Portuguese) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations simple_form.en.yml (Finnish) * New translations simple_form.en.yml (Italian) * New translations en.yml (Catalan) * New translations simple_form.en.yml (Catalan) * New translations simple_form.en.yml (Ukrainian) * New translations en.json (Irish) * New translations simple_form.en.yml (Dutch) * New translations en.json (Ukrainian) * New translations activerecord.en.yml (Irish) * New translations en.json (Polish) * New translations simple_form.en.yml (Chinese Simplified) * New translations simple_form.en.yml (Greek) * New translations simple_form.en.yml (Hungarian) * New translations simple_form.en.yml (Slovenian) * New translations simple_form.en.yml (Asturian) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Polish) * New translations simple_form.en.yml (Chinese Traditional) * New translations en.yml (Dutch) * New translations en.json (Swedish) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Swedish) * New translations en.json (Swedish) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Swedish) * New translations doorkeeper.en.yml (Swedish) * New translations activerecord.en.yml (Swedish) * New translations en.json (Swedish) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Swedish) * New translations en.json (Swedish) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Vietnamese) * New translations simple_form.en.yml (French) * New translations simple_form.en.yml (Swedish) * New translations simple_form.en.yml (Spanish, Argentina) * New translations simple_form.en.yml (Vietnamese) * New translations en.json (Afrikaans) * New translations en.yml (Afrikaans) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Norwegian Nynorsk) * New translations simple_form.en.yml (Afrikaans) * New translations simple_form.en.yml (Japanese) * New translations simple_form.en.yml (Korean) * New translations en.json (Norwegian Nynorsk) * New translations en.yml (Swedish) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Polish) * New translations en.json (Swedish) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Icelandic) * New translations en.json (Czech) * Run `yarn manage:translations` * Run `bundle exec i18n-tasks normalize` Co-authored-by: Yamagishi Kazutoshi * Fix compose form submission reloading web interface (#19762) * Fix compose form submission reloading web interface Fix regression introduced by #19742 * Fix various compose form buttons being handled like submit buttons * Fix coding style issue * Fix missing onClick prop check * Fix JavaScript console error on upload editing status (#19769) * Fix JavaScript console warning when loading notifications (#19772) * Remove broken link references to bug bounty program (#19779) The link https://app.intigriti.com/programs/mastodon/mastodonio/detail no longer works * Closes #19491 Signed-off-by: Yarden Shoham Signed-off-by: Yarden Shoham * Add S3 existing secret to sidekiq (#19778) * Change sign-in banner to reflect disabled or moved account status (#19773) * Remove word-break:keep-all from Dismissable banner message (#19799) * Change design of moved account banner in web UI (#19790) * Fix missing interpolation of domain in disabled account banner in web UI (#19788) * Fix rendering empty avatar in web UI (#19798) * helm: Add documentation to run tootctl commands (#19791) * Fix n+1 queries when rendering initial state JSON (#19795) * Fix indexing scheduler trying to index when Elasticsearch is disabled (#19805) Fix #19646 * Change `AUTHORIZED_FETCH` to not block unauthenticated REST API access (#19803) New environment variable `DISALLOW_UNAUTHENTICATED_API_ACCESS` * Heroku fix (#19807) Currently building on Heroku fails with a package error for libidn11. Since Mastodon uses idn-ruby 0.1.2 we should upgrade to libidn12 * Fix missing string in admin UI (#19809) * version emoji-mart (#19715) * version emoji-mart * add lock file * Change design of new list form in web UI (#19801) * Update changelog for 4.0.0rc1 (#19814) * Fix not using GIN index for account search queries (#19830) * Bump version to 4.0.0rc2 (#19831) * Update SECURITY.md (#19869) * Set autocomplete attr for email field on signup page (#19833) The email address will be used as the "username" for sign-in purposes, so it's the value that should be stored in password managers. We can inform the password manager of this by setting `autocomplete="email"`. Without this hint, password managers may instead store the `username` field, which isn't valid for sign-in (this happens with iCloud Keychain in Safari, for instance). * allow /api/v1/streaming to be used as per documentation (#19896) * Skip Webfinger cache during migrations as well (#19883) * Fix crash in legacy filter creation controller (#19878) * Fix console log error on column settings load (#19886) * Fix JavaScript console error on Getting Started column (#19891) * Fix JavaScript console error on Getting Started column * Update app/javascript/mastodon/components/column_header.js Co-authored-by: Ilias Tsangaris Co-authored-by: Ilias Tsangaris * Add null check on application in dispute viewer (#19851) * Fix double button to clear emoji search input (#19888) * Tag the OTP field with autocomplete for password managers (#19946) This is modeled on #19833, and based on the attribute values documented in https://developer.apple.com/documentation/security/password_autofill/enabling_password_autofill_on_an_html_input_element?language=objc * Fix followers count not being updated when migrating follows (#19998) Fixes #19900 * Add form element on focal point modal (#19834) * Add form element on focal point modal * Add type="button" for detection button * Fix links to the Web UI in notifications (#19981) Most of the old routes are broken because of the /web removal. * Fix crash when external auth provider has no display_name set (#19962) Fixes #19913 * Add aria-expanded to content warning toggle button (#19975) Fixes #19920 * New Crowdin updates (#19771) * New translations en.yml (Vietnamese) * New translations en.yml (Galician) * New translations en.yml (Icelandic) * New translations en.yml (Japanese) * New translations en.yml (Armenian) * New translations en.yml (German) * New translations en.yml (Czech) * New translations en.yml (Chinese Simplified) * New translations en.yml (Ido) * New translations en.json (Esperanto) * New translations en.yml (Turkish) * New translations en.yml (Albanian) * New translations en.yml (Ukrainian) * New translations en.yml (Romanian) * New translations en.yml (Hungarian) * New translations en.yml (Bulgarian) * New translations en.yml (Catalan) * New translations en.yml (Danish) * New translations en.yml (Greek) * New translations en.yml (Frisian) * New translations en.yml (Basque) * New translations en.json (Finnish) * New translations en.yml (Finnish) * New translations en.yml (Irish) * New translations en.yml (Hebrew) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Sorani (Kurdish)) * New translations en.yml (Sinhala) * New translations en.yml (Cornish) * New translations en.yml (Kannada) * New translations en.yml (Asturian) * New translations en.yml (Occitan) * New translations en.yml (Serbian (Latin)) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.yml (Corsican) * New translations en.yml (Malayalam) * New translations en.yml (Sardinian) * New translations en.yml (Sanskrit) * New translations en.yml (Kabyle) * New translations en.yml (Taigi) * New translations en.yml (Silesian) * New translations en.yml (Standard Moroccan Tamazight) * New translations simple_form.en.yml (French) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations en.yml (Burmese) * New translations en.yml (Breton) * New translations en.yml (Tatar) * New translations en.yml (Indonesian) * New translations en.yml (Kazakh) * New translations en.yml (Persian) * New translations en.yml (Tamil) * New translations en.yml (Spanish, Argentina) * New translations en.yml (Spanish, Mexico) * New translations en.yml (Bengali) * New translations en.yml (Marathi) * New translations en.yml (Croatian) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Estonian) * New translations en.yml (Chinese Traditional, Hong Kong) * New translations en.json (Latvian) * New translations en.yml (Latvian) * New translations en.yml (Hindi) * New translations en.yml (Malay) * New translations en.yml (Telugu) * New translations en.yml (English, United Kingdom) * New translations en.yml (Welsh) * New translations en.yml (Esperanto) * New translations en.yml (Uyghur) * New translations en.yml (Igbo) * New translations en.json (Czech) * New translations en.json (Dutch) * New translations en.json (Hungarian) * New translations en.yml (Hungarian) * New translations en.yml (Dutch) * New translations en.yml (Polish) * New translations en.yml (Swedish) * New translations en.json (Icelandic) * New translations en.yml (Icelandic) * New translations en.json (Dutch) * New translations en.yml (Ukrainian) * New translations en.yml (Swedish) * New translations en.json (Ukrainian) * New translations en.json (Chinese Simplified) * New translations simple_form.en.yml (Irish) * New translations simple_form.en.yml (Asturian) * New translations devise.en.yml (Asturian) * New translations en.json (Slovenian) * New translations en.yml (Slovenian) * New translations en.json (Vietnamese) * New translations en.yml (Vietnamese) * New translations en.yml (Asturian) * New translations simple_form.en.yml (Vietnamese) * New translations simple_form.en.yml (Asturian) * New translations activerecord.en.yml (Asturian) * New translations devise.en.yml (Asturian) * New translations en.json (Japanese) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.json (Japanese) * New translations en.yml (Japanese) * New translations en.json (Vietnamese) * New translations en.yml (Vietnamese) * New translations simple_form.en.yml (Vietnamese) * New translations doorkeeper.en.yml (Vietnamese) * New translations en.json (Afrikaans) * New translations en.json (Galician) * New translations en.yml (Turkish) * New translations en.json (Afrikaans) * New translations en.yml (Afrikaans) * New translations en.yml (Galician) * New translations simple_form.en.yml (Afrikaans) * New translations en.json (Albanian) * New translations en.yml (Albanian) * New translations en.yml (French) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations en.json (Slovenian) * New translations simple_form.en.yml (French) * New translations simple_form.en.yml (Albanian) * New translations activerecord.en.yml (French) * New translations activerecord.en.yml (Sorani (Kurdish)) * New translations devise.en.yml (French) * New translations en.json (Norwegian Nynorsk) * New translations en.yml (Occitan) * New translations doorkeeper.en.yml (Norwegian Nynorsk) * New translations simple_form.en.yml (Occitan) * New translations doorkeeper.en.yml (Occitan) * New translations activerecord.en.yml (Occitan) * New translations en.yml (Spanish) * New translations en.yml (Japanese) * New translations en.json (Occitan) * New translations en.json (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Japanese) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations doorkeeper.en.yml (Norwegian Nynorsk) * New translations doorkeeper.en.yml (Occitan) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.json (Irish) * New translations en.json (Slovenian) * New translations en.json (Scottish Gaelic) * New translations en.yml (Scottish Gaelic) * New translations en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Irish) * New translations doorkeeper.en.yml (Irish) * New translations simple_form.en.yml (Thai) * New translations en.json (Thai) * New translations en.json (German) * New translations en.yml (Spanish) * New translations en.json (Greek) * New translations en.json (Slovenian) * New translations en.json (Scottish Gaelic) * New translations en.yml (Asturian) * New translations simple_form.en.yml (Thai) * New translations simple_form.en.yml (Scottish Gaelic) * New translations devise.en.yml (Asturian) * New translations en.json (Danish) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations en.yml (Asturian) * New translations simple_form.en.yml (Korean) * New translations en.json (French) * New translations en.json (Danish) * New translations en.yml (Danish) * New translations en.json (Ukrainian) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Scottish Gaelic) * New translations en.yml (Scottish Gaelic) * New translations simple_form.en.yml (Ukrainian) * New translations doorkeeper.en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Scottish Gaelic) * New translations doorkeeper.en.yml (Scottish Gaelic) * New translations en.json (German) * New translations en.json (Catalan) * New translations en.json (Danish) * New translations en.yml (Danish) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Spanish, Mexico) * New translations en.json (Asturian) * New translations en.json (Occitan) * New translations doorkeeper.en.yml (Catalan) * New translations en.json (Scottish Gaelic) * New translations en.yml (Scottish Gaelic) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations simple_form.en.yml (Scottish Gaelic) * New translations en.json (German) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations en.json (Asturian) * New translations en.yml (Asturian) * New translations en.json (Sorani (Kurdish)) * New translations en.json (French) * New translations en.yml (Dutch) * New translations en.json (Welsh) * New translations en.json (Sorani (Kurdish)) * New translations doorkeeper.en.yml (Norwegian Nynorsk) * New translations en.json (Dutch) * New translations en.json (French) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations doorkeeper.en.yml (Dutch) * New translations en.json (Irish) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (German) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations en.yml (Sorani (Kurdish)) * New translations simple_form.en.yml (Arabic) * New translations en.yml (Ukrainian) * New translations en.json (Ukrainian) * New translations simple_form.en.yml (Ukrainian) * New translations doorkeeper.en.yml (Ukrainian) * New translations activerecord.en.yml (Ukrainian) * New translations en.json (Russian) * New translations en.json (Bulgarian) * New translations en.json (Hebrew) * New translations en.json (Bulgarian) * New translations en.json (Japanese) * New translations en.yml (Finnish) * New translations simple_form.en.yml (Japanese) * New translations devise.en.yml (Finnish) * New translations en.json (Hebrew) * New translations en.yml (German) * New translations en.json (Bulgarian) * New translations en.yml (Polish) * New translations simple_form.en.yml (Japanese) * New translations activerecord.en.yml (Arabic) * New translations activerecord.en.yml (Hebrew) * New translations en.json (Bulgarian) * New translations en.json (German) * New translations en.json (Danish) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations en.json (Bulgarian) * New translations en.json (Frisian) * New translations en.json (Russian) * New translations en.json (Turkish) * New translations en.json (Ukrainian) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Russian) * New translations devise.en.yml (Frisian) * New translations en.yml (Czech) * New translations en.json (Bulgarian) * New translations en.json (Czech) * New translations en.json (Frisian) * New translations en.json (Italian) * New translations en.json (Polish) * Run `yarn manage:translations` * Run `bundle exec i18n-tasks normalize` Co-authored-by: Yamagishi Kazutoshi * Micro-optimization: only split `acct` into two Strings (#19901) * Since `acct` is split by `@` and assigned to `username` and `domain`, we only need to split `acct` into two Strings. * Fix filter handling in status cache hydration (#19963) * Fix validation error in SynchronizeFeaturedTagsCollectionWorker (#20018) * Fix followers count not being updated when migrating follows Fixes #19900 * Fix validation error in SynchronizeFeaturedTagsCollectionWorker Also saves remote user's chosen case for hashtags * Limit remote featured tags before validation * Fix spoiler buttons css not rendering correct color in light theme (#19960) * Updating status__content__spoiler-link css for mastodon-light theme to ensure correct rendering precedence * Adding focus css selector to status__content__spoiler-link mastodon-light theme * reformatting code to match convention of having css selectors on separate lines * fixing code format for scss linting issue * Micro-optimization: use `if`/`else` instead of `Array#compact` and `Array#min` (#19906) * Technically `if`/`else` is faster than using `[value1, value2].compact.min` to find the lesser of two values, one of which may be `nil`. * Fix opening the language picker scrolling the single-column view to the top (#19983) Fixes #19915 * Add password autocomplete hints (#20071) Fixes #20067 Our password autocomplete hints were “off” but that does not prevent current browsers from trying to autocomplete them anyway, so use `current-password` and `new-password` so they don't put a newly-generated password in a password confirmation prompt, or the old password for a password renewal prompt. * Improve performance by avoiding method cache busts (#19957) Switch to monkey-patching http.rb rather than a runtime extend of each response, so as to avoid busting the global method cache. A guard is included that will provide developer feedback in development and test environments should the monkey patch ever collide. * Fix redrafting a currently-editing post not leaving edit mode (#20023) * Fix grammar (#20106) * Change Request connection logic to try both IPv6 and IPv4 when available (#20108) Fixes #19751 * Fix uncaught 500 error on invalid `replies_policy` (Fix #19097) (#20126) * Fix missing cast of status and rule IDs to string (fix #19048) (#20122) * Make account endorsements idempotent (fix #19045) (#20118) * Make account endorsements idempotent (fix #19045) * Accept suggestion to use exists? instead of find_by + nil check Co-authored-by: Yamagishi Kazutoshi * fix logic (unless, not if) * switch to using `find_or_create_by!` Co-authored-by: Yamagishi Kazutoshi * Add `sensitized` to Admin::Account serializer (fix #19148) (#20094) * Add `sensitized` to Admin::Account serializer (fix #19148) * remove whitespace, please linter * Add postgresql password settings hint (#19112) * Fix helm postgresql secret (#19678) * Revert "Fix helm chart use of Postgres Password (#19537)" This reverts commit 6094a916b185ae0634e016004deb4cec11afbaca. * Revert "Fix PostgreSQL password reference for jobs (#19504)" This reverts commit dae954ef111b8e0ab17812d156f6c955b77d9859. * Revert "Fix PostgreSQL password reference (#19502)" This reverts commit 9bf6a8af82391fa8b32112deb4a36a0cfc68143e. * Correct default username in postgresql auth * Roll pods to pick up db migrations even if podAnnotations is empty (#19702) * helm: Fix ingress pathType (#19729) * chore(chart): Update appVersion in helm chart (#19653) This patch updates the helm chart appVersion to the current release and removes the additional definition in the image tag field, to reduce duplication. Since the image will automatically default to the Charts' app version anyway and this is the more common place to specifiy application versions for helm charts, this patch switches the prefering this field. The reason why to use the tag field for the chart itself, seems to be gone. Since renovatebot is no longer used. * Assign unique set of labels to k8s deployments #19703 (#19706) * Fix nodeinfo metadata attribute being an array instead of an object (#20114) Fixes #20111 * Change Report category to "violation" if rule IDs are provided (#20137) * Change Report category to "violation" if rule IDs are provided * Fix LiteralAsCondition * Add parentheses to conditional statement * Add server-side route so that legacy /web/statuses/:id URLs keep being supported (#19978) * Remove aria-pressed where it's redundant (#19912) This commit removes aria-pressed attribute from all elements which contents or other descriptive attributes change in active state, effectively replacing the meaning of the button, in which case aria-pressed, an attribute specified whether the button is currently pressed, would create a confusion. (Spoiler: it's everywhere). See https://github.com/mastodon/mastodon/issues/13545#issuecomment-1304886969 * CHANGELOG.md: Fix typos (#19838) * Fix typos (#19849) Found via `codespell -q 3 -S ./yarn.lock,./CHANGELOG.md,./AUTHORS.md,./config/locales,./app/javascript/mastodon/locales -L ba,followings,keypair,medias,pattens,pixelx,rememberable,ro,te` * Fix redirects from /web/ discarding everything after a dot (#20148) Fixes #20145 * Fix nginx location matching (#20198) * Fix being able to spoof link verification (#20217) - Change verification to happen in `default` queue - Change verification worker to only be queued if there's something to do - Add `link` tags from metadata fields to page header of profiles * Change account deletion requests to spread out over time (#20222) * Fix GET /api/v1/admin/ip_blocks/:id (#20207) * Add Balaibalan, Láadan, Lingua Franca Nova, Lojban, Toki Pona to language list (#20168) * Add Balaibalan, Láadan, Lojban, Toki Pona to language list Fixes #8995. * Correct translated names for Lojban and Toki Pona * Correct translated name for Balaibalan * Add Lingua Franca Nova aka Elefen * Disable unhelpful Rubocop checks * Re-enable Rubocop checks at end of file * New Crowdin updates (#20016) * New translations en.json (Telugu) * New translations en.yml (Telugu) * New translations en.yml (Occitan) * New translations en.json (Serbian (Latin)) * New translations en.yml (Kabyle) * New translations en.json (Igbo) * New translations en.yml (Burmese) * New translations en.json (Burmese) * New translations activerecord.en.yml (Frisian) * New translations en.yml (Standard Moroccan Tamazight) * New translations en.json (Standard Moroccan Tamazight) * New translations en.yml (Silesian) * New translations en.json (Silesian) * New translations en.yml (Taigi) * New translations en.json (Taigi) * New translations en.json (Kabyle) * New translations en.yml (Serbian (Latin)) * New translations en.yml (Sanskrit) * New translations en.json (Sanskrit) * New translations en.yml (Sardinian) * New translations en.json (Sardinian) * New translations en.yml (Corsican) * New translations en.json (Corsican) * New translations en.yml (Sorani (Kurdish)) * New translations en.json (Sorani (Kurdish)) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.json (Kurmanji (Kurdish)) * New translations en.yml (Igbo) * New translations en.json (Hebrew) * New translations en.json (Polish) * New translations doorkeeper.en.yml (Frisian) * New translations en.json (Latvian) * New translations en.json (Icelandic) * New translations en.yml (Swedish) * New translations en.json (Swedish) * New translations en.json (Slovenian) * New translations en.json (Russian) * New translations en.json (Italian) * New translations en.json (German) * New translations en.yml (Hebrew) * New translations en.yml (Finnish) * New translations en.json (Finnish) * New translations en.yml (Danish) * New translations en.json (Afrikaans) * New translations en.json (Spanish) * New translations en.json (French) * New translations en.json (Dutch) * New translations simple_form.en.yml (Hebrew) * New translations en.json (Hebrew) * New translations en.json (Spanish, Argentina) * New translations activerecord.en.yml (Hebrew) * New translations simple_form.en.yml (Occitan) * New translations doorkeeper.en.yml (Hebrew) * New translations simple_form.en.yml (Hebrew) * New translations en.yml (Occitan) * New translations en.json (Welsh) * New translations en.yml (Chinese Traditional) * New translations en.json (German) * New translations en.json (Chinese Traditional) * New translations en.json (Ukrainian) * New translations en.json (Portuguese) * New translations en.yml (Hebrew) * New translations en.json (Finnish) * New translations en.json (Japanese) * New translations devise.en.yml (Chinese Traditional) * New translations en.yml (Thai) * New translations en.json (Hebrew) * New translations en.json (Thai) * New translations en.json (Greek) * New translations en.yml (Hebrew) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Occitan) * New translations simple_form.en.yml (Hebrew) * New translations simple_form.en.yml (Thai) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations en.json (Thai) * New translations en.json (Catalan) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations en.json (Polish) * New translations simple_form.en.yml (Thai) * New translations en.json (Esperanto) * New translations en.json (Chinese Simplified) * New translations en.json (Irish) * New translations activerecord.en.yml (Irish) * New translations en.json (Irish) * New translations en.yml (Dutch) * New translations en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Italian) * New translations en.json (Danish) * New translations en.json (Galician) * New translations simple_form.en.yml (Galician) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations en.json (Czech) * New translations en.json (Turkish) * New translations en.json (Vietnamese) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations en.json (Bulgarian) * New translations en.json (Czech) * New translations en.json (Albanian) * New translations en.json (Arabic) * New translations en.json (Chinese Traditional, Hong Kong) * New translations en.json (Bulgarian) * New translations en.json (Macedonian) * New translations en.json (Chinese Traditional, Hong Kong) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (Bulgarian) * New translations devise.en.yml (Polish) * New translations en.json (Bulgarian) * New translations en.json (Hungarian) * New translations en.yml (Japanese) * New translations en.json (Norwegian) * New translations en.json (Bulgarian) * New translations en.json (Korean) * New translations en.json (Scottish Gaelic) * New translations en.yml (Scottish Gaelic) * New translations simple_form.en.yml (Scottish Gaelic) * New translations activerecord.en.yml (Scottish Gaelic) * New translations devise.en.yml (Scottish Gaelic) * New translations doorkeeper.en.yml (Scottish Gaelic) * New translations en.json (Bulgarian) * New translations en.json (German) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations en.json (Latvian) * New translations en.yml (Latvian) * New translations simple_form.en.yml (Catalan) * New translations simple_form.en.yml (Latvian) * New translations en.json (Esperanto) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations en.json (Norwegian) * New translations en.json (Vietnamese) * New translations en.yml (Esperanto) * New translations doorkeeper.en.yml (Frisian) * New translations en.yml (Romanian) * New translations en.yml (Frisian) * New translations en.json (Norwegian) * New translations en.yml (Russian) * New translations en.yml (Esperanto) * New translations doorkeeper.en.yml (Frisian) * New translations en.json (Norwegian) * New translations en.yml (Russian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Norwegian) * New translations en.json (Swedish) * New translations en.json (Occitan) * New translations en.json (Afrikaans) * New translations en.json (Catalan) * New translations en.json (Norwegian) * New translations en.json (Swedish) * New translations en.yml (Norwegian Nynorsk) * New translations en.json (Welsh) * New translations en.yml (Esperanto) * New translations en.json (Occitan) * New translations doorkeeper.en.yml (French) * New translations activerecord.en.yml (Norwegian) * New translations activerecord.en.yml (Welsh) * New translations devise.en.yml (Norwegian) * New translations devise.en.yml (Esperanto) * New translations en.json (Chinese Simplified) * New translations en.json (Welsh) * New translations doorkeeper.en.yml (Norwegian) * New translations activerecord.en.yml (Norwegian) * New translations devise.en.yml (Norwegian) * New translations en.json (Dutch) * New translations en.json (Irish) * New translations en.yml (Norwegian) * New translations doorkeeper.en.yml (Norwegian) * New translations en.json (Dutch) * New translations en.json (Irish) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations en.json (Norwegian) * New translations simple_form.en.yml (Dutch) * New translations en.json (Irish) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations en.json (English, United Kingdom) * New translations simple_form.en.yml (English, United Kingdom) * New translations doorkeeper.en.yml (English, United Kingdom) * New translations activerecord.en.yml (English, United Kingdom) * New translations en.json (Dutch) * New translations en.json (Irish) * New translations en.yml (Irish) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Irish) * New translations en.json (Irish) * New translations en.yml (Irish) * New translations en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Irish) * New translations doorkeeper.en.yml (Irish) * New translations en.json (Bulgarian) * New translations en.json (Irish) * New translations en.yml (Irish) * New translations simple_form.en.yml (Irish) * New translations doorkeeper.en.yml (Irish) * New translations en.json (Bulgarian) * New translations en.yml (Irish) * New translations en.json (Chinese Traditional) * New translations en.json (Galician) * New translations en.json (Bulgarian) * New translations en.json (Latvian) * New translations en.yml (Latvian) * New translations simple_form.en.yml (Latvian) * New translations en.json (Igbo) * New translations en.json (Thai) * New translations en.json (Bulgarian) * New translations en.json (Esperanto) * New translations en.json (Irish) * New translations en.yml (Chinese Traditional) * New translations en.yml (Esperanto) * New translations simple_form.en.yml (Turkish) * New translations simple_form.en.yml (Esperanto) * New translations en.yml (Czech) * New translations en.json (Esperanto) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Breton) * New translations en.yml (Breton) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations devise.en.yml (Portuguese, Brazilian) * New translations en.yml (Czech) * New translations en.json (Bulgarian) * New translations en.json (Esperanto) * New translations en.json (Afrikaans) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Esperanto) * New translations en.json (Breton) * New translations en.yml (Breton) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations doorkeeper.en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Esperanto) * New translations doorkeeper.en.yml (Esperanto) * New translations activerecord.en.yml (Esperanto) * New translations devise.en.yml (Esperanto) * New translations en.json (Bulgarian) * New translations en.json (Afrikaans) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Indonesian) * New translations en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Portuguese, Brazilian) * Run `yarn manage:translations` * Run `bundle exec i18n-tasks normalize` * New translations en.json (Occitan) * Run `yarn manage:translations` Co-authored-by: Yamagishi Kazutoshi * Fix NameError in Webfinger redirect handling in ActivityPub::FetchRemoteActorService (#20260) * Fix `mailers` queue not being used for mailers (#20274) Regression since Rails 6.1 * Change `master` branch to `main` branch (#20290) * Revert filtering public timelines by locale by default (#20294) * Improve performance by avoiding regex construction (#20215) ```ruby 10.times { p /#{FOO}/.object_id } 10.times { p FOO_RE.object_id } ``` * Change link verification to ignore IDN domains (#20295) Fix #3833 * Fix profile header being cut off in light theme in web UI (#20298) * Add option to open original page in dropdowns of remote content in web UI (#20299) Change profile picture click to open profile picture in modal in web UI * Fix confusing wording in interaction modal in web UI (#20302) * Change larger reblogs/favourites numbers to be shortened in web UI (#20303) * Remove unused timeline_container to fix linter errors (#20305) * Fix color of the “No description added“ media upload warning on light theme (#20328) * Change incoming activity processing to happen in `ingress` queue (#20264) * Helm update readme.md (#20154) * gitignore packaged helm charts * Add upgrade instructions to helm chart/readme.md * Note Helm secret changes that are necessary on failed upgrades * Helm update readme.md (#20154) * gitignore packaged helm charts * Add upgrade instructions to helm chart/readme.md * Note Helm secret changes that are necessary on failed upgrades * fix(chart): Fix gitops-incompatible random rolling (#20184) This patch reworks the Pod rolling mechanism, which is supposed to update Pods with each migration run, but since the it generates a new random value on each helm execution, this will constantly roll all pods in a GitOps driven deployment, which reconciles the helm release. This is resolved by fixing the upgrade to the `.Release.Revision`, which should stay identical, unless config or helm release version have been changed. Further it introduces automatic rolls based on adjustments to the environment variables and secrets. The implementation uses a helper template, following the 1-2-N rule, and omitting code duplication. References: https://helm.sh/docs/chart_template_guide/builtin_objects/ https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments * Bump next Helm chart to 2.1.0 (#20155) * Helm chart improved for ingress (#19826) * ingressClassName * ingress values must be optional * Give web container time to start (#19828) * Remove preview cards from fav and boost notifications (#20335) Fixes #20329 * Add old logo files back (#20332) Fixes #20221 * Update Helm README and bump version (#20346) * Update Helm chart README and comments in values.yaml * Bump next Helm chart to 2.2.0 * Fix unnecessary service worker registration and preloading when logged out (#20341) * Change logged out /api/v1/statuses/:id/context logged out limits (#20355) * Make enable_starttls configurable by envvars (#20321) ENABLE_STARTTLS is designed to replace ENABLE_STARTTLS_AUTO by accepting three values: 'auto' (the default), 'always', and 'never'. If ENABLE_STARTTLS isn't provided, we fall back to ENABLE_STARTTLS_AUTO. In this way, this change should be fully backwards compatible. Resolves #20311 * Change verification to only work for https links (#20304) Fix #20242 * Add Scots to the supported locales (#20283) Fixes #20249 * Remove dead code and refactor status threading code (#20357) * Remove dead code * Remove unneeded/broken parameters and refactor descendant computation * helm: fix consistent indentation, chomping, and use of with (#19918) * Test the native_locale_name of a non-standard locale (#20284) `:en` is English for both `standard_locale_name` and `native_locale_name`, and so makes for a poor test candidate for differentiating between them. * Fix `ENV` (#20377) * Delay workbox import (#20376) * Note that CircleCI auth may be required to run PR pipelines (#20371) See #20284 * Only remove padding when listing applications (#20382) This prevents styling issues on the Authorization page. * Change e-mail in SECURITY.md (#20384) * blurhash_transcoder: prevent out-of-bound reads with <8bpp images (#20388) The Blurhash library used by Mastodon requires an input encoded as 24 bits raw RGB data. The conversion to raw RGB using Imagemagick did not previously specify the desired bit depth. In some situations, this leads Imagemagick to output in a pixel format using less bpp than expected. This then manifested as segfaults of the Sidekiq process due to out-of-bounds read, or potentially a (highly noisy) memory infoleak. Fixes #19235. * Fix domain blocks on about page not working well on small screens in web UI (#20391) * Bump version to 4.0.0rc3 (#20378) * Fix metadata scrubbing removing color profile from images (#20389) * Remove “No description added” media warning in edit mode (#20393) Editing media metadata is not currently possible in edit mode, the button would open the modal but saving the changes would error out. * Do not show drag&drop dialog when not logined (#20400) * Cannot upload until login * and do not fire upload * change username props to context * Add the ability to edit media attachment metadata for any unattached media (#20402) * Guard against error extracting `body` from URL (#20428) If `Nokogiri::HTML(value).at_xpath('//body')` fails to find the `body` element, it will return `nil`. We can guard against that with an early return. Avoids calling `children` on `Nilclass` in those cases. * Fix WebUI crash when listing server blocks and rationale is not available (#20408) Regression from #20391 Fixes #20405 * Fix trendable status without review (#20214) * fixes ArgumentError when proxy is used (#20420) * fixes ArgumentError when proxy is used * Update app/lib/request.rb Co-authored-by: Claire Co-authored-by: Eugen Rochko Co-authored-by: Claire * Uppercase chart readme.md to help tools discover it (#20438) * New Crowdin updates (#20258) * New translations en.json (Asturian) * New translations en.yml (Telugu) * New translations en.yml (Tamil) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Spanish, Argentina) * New translations en.yml (Spanish, Argentina) * New translations en.json (Spanish, Mexico) * New translations en.yml (Spanish, Mexico) * New translations en.yml (Bengali) * New translations en.yml (Marathi) * New translations en.yml (Croatian) * New translations en.yml (Kazakh) * New translations en.yml (Estonian) * New translations en.json (Latvian) * New translations en.yml (Hindi) * New translations en.yml (Malay) * New translations en.yml (Asturian) * New translations en.json (Occitan) * New translations simple_form.en.yml (Basque) * New translations simple_form.en.yml (Spanish) * New translations simple_form.en.yml (Arabic) * New translations simple_form.en.yml (Bulgarian) * New translations simple_form.en.yml (Catalan) * New translations simple_form.en.yml (Danish) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Greek) * New translations simple_form.en.yml (Frisian) * New translations simple_form.en.yml (Finnish) * New translations simple_form.en.yml (Romanian) * New translations simple_form.en.yml (Irish) * New translations simple_form.en.yml (Hebrew) * New translations simple_form.en.yml (Hungarian) * New translations simple_form.en.yml (Armenian) * New translations simple_form.en.yml (Italian) * New translations simple_form.en.yml (Japanese) * New translations simple_form.en.yml (Georgian) * New translations simple_form.en.yml (French) * New translations simple_form.en.yml (Vietnamese) * New translations en.yml (Occitan) * New translations en.yml (Serbian (Latin)) * New translations en.json (Kurmanji (Kurdish)) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.json (Sorani (Kurdish)) * New translations en.yml (Sorani (Kurdish)) * New translations en.yml (Corsican) * New translations simple_form.en.yml (Norwegian) * New translations simple_form.en.yml (Polish) * New translations simple_form.en.yml (Sinhala) * New translations en.yml (Kabyle) * New translations en.yml (Sardinian) * New translations en.yml (Taigi) * New translations en.yml (Silesian) * New translations en.yml (Standard Moroccan Tamazight) * New translations en.yml (Sanskrit) * New translations simple_form.en.yml (Tatar) * New translations simple_form.en.yml (Welsh) * New translations simple_form.en.yml (Esperanto) * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) * New translations simple_form.en.yml (Malayalam) * New translations simple_form.en.yml (Kazakh) * New translations simple_form.en.yml (Breton) * New translations simple_form.en.yml (Scottish Gaelic) * New translations activerecord.en.yml (Scottish Gaelic) * New translations simple_form.en.yml (Asturian) * New translations simple_form.en.yml (Occitan) * New translations simple_form.en.yml (Serbian (Latin)) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Sorani (Kurdish)) * New translations simple_form.en.yml (Estonian) * New translations simple_form.en.yml (Norwegian Nynorsk) * New translations simple_form.en.yml (Portuguese) * New translations simple_form.en.yml (Galician) * New translations simple_form.en.yml (Russian) * New translations simple_form.en.yml (Slovak) * New translations simple_form.en.yml (Albanian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations simple_form.en.yml (Turkish) * New translations simple_form.en.yml (Ukrainian) * New translations simple_form.en.yml (Icelandic) * New translations simple_form.en.yml (Croatian) * New translations activerecord.en.yml (Icelandic) * New translations simple_form.en.yml (Persian) * New translations simple_form.en.yml (Tamil) * New translations simple_form.en.yml (Spanish, Argentina) * New translations simple_form.en.yml (Spanish, Mexico) * New translations simple_form.en.yml (Bengali) * New translations simple_form.en.yml (Corsican) * New translations activerecord.en.yml (Portuguese, Brazilian) * New translations activerecord.en.yml (Slovak) * New translations activerecord.en.yml (Dutch) * New translations activerecord.en.yml (Norwegian) * New translations activerecord.en.yml (Polish) * New translations activerecord.en.yml (Portuguese) * New translations activerecord.en.yml (Russian) * New translations activerecord.en.yml (Japanese) * New translations activerecord.en.yml (Albanian) * New translations activerecord.en.yml (Serbian (Cyrillic)) * New translations activerecord.en.yml (Swedish) * New translations activerecord.en.yml (Turkish) * New translations activerecord.en.yml (Ukrainian) * New translations activerecord.en.yml (Chinese Simplified) * New translations activerecord.en.yml (Vietnamese) * New translations activerecord.en.yml (Galician) * New translations activerecord.en.yml (Georgian) * New translations activerecord.en.yml (Italian) * New translations activerecord.en.yml (Catalan) * New translations activerecord.en.yml (Czech) * New translations activerecord.en.yml (Romanian) * New translations activerecord.en.yml (French) * New translations activerecord.en.yml (Spanish) * New translations activerecord.en.yml (Afrikaans) * New translations activerecord.en.yml (Arabic) * New translations activerecord.en.yml (Bulgarian) * New translations activerecord.en.yml (Armenian) * New translations activerecord.en.yml (German) * New translations activerecord.en.yml (Greek) * New translations activerecord.en.yml (Frisian) * New translations activerecord.en.yml (Basque) * New translations activerecord.en.yml (Finnish) * New translations activerecord.en.yml (Irish) * New translations activerecord.en.yml (Hebrew) * New translations activerecord.en.yml (Hungarian) * New translations simple_form.en.yml (Ido) * New translations simple_form.en.yml (Kabyle) * New translations simple_form.en.yml (Standard Moroccan Tamazight) * New translations simple_form.en.yml (Sardinian) * New translations activerecord.en.yml (Indonesian) * New translations activerecord.en.yml (Kurmanji (Kurdish)) * New translations activerecord.en.yml (Breton) * New translations activerecord.en.yml (Persian) * New translations activerecord.en.yml (Asturian) * New translations activerecord.en.yml (Occitan) * New translations activerecord.en.yml (Serbian (Latin)) * New translations activerecord.en.yml (Sorani (Kurdish)) * New translations activerecord.en.yml (Tatar) * New translations activerecord.en.yml (Corsican) * New translations en.yml (Burmese) * New translations en.yml (Igbo) * New translations activerecord.en.yml (Malayalam) * New translations activerecord.en.yml (Sinhala) * New translations activerecord.en.yml (Chinese Traditional, Hong Kong) * New translations activerecord.en.yml (Norwegian Nynorsk) * New translations activerecord.en.yml (Tamil) * New translations activerecord.en.yml (Spanish, Argentina) * New translations activerecord.en.yml (Spanish, Mexico) * New translations activerecord.en.yml (Bengali) * New translations activerecord.en.yml (Marathi) * New translations activerecord.en.yml (Thai) * New translations activerecord.en.yml (Croatian) * New translations activerecord.en.yml (Kazakh) * New translations activerecord.en.yml (Estonian) * New translations activerecord.en.yml (Latvian) * New translations activerecord.en.yml (Hindi) * New translations activerecord.en.yml (Welsh) * New translations activerecord.en.yml (Sardinian) * New translations activerecord.en.yml (Kabyle) * New translations activerecord.en.yml (Ido) * New translations activerecord.en.yml (Standard Moroccan Tamazight) * New translations en.json (Afrikaans) * New translations en.yml (Bulgarian) * New translations en.json (Hungarian) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations en.yml (Slovenian) * New translations en.json (Swedish) * New translations en.json (Chinese Simplified) * New translations en.json (Vietnamese) * New translations en.json (Icelandic) * New translations en.json (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Korean) * New translations activerecord.en.yml (Bulgarian) * New translations devise.en.yml (Bulgarian) * New translations en.yml (German) * New translations en.json (German) * New translations en.json (Romanian) * New translations en.json (Catalan) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations en.json (Norwegian) * New translations en.json (Vietnamese) * New translations en.json (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Latvian) * New translations devise.en.yml (Bulgarian) * New translations en.json (Hebrew) * New translations en.json (Arabic) * New translations en.json (Catalan) * New translations en.yml (Korean) * New translations en.json (Turkish) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Scottish Gaelic) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations doorkeeper.en.yml (Portuguese, Brazilian) * New translations devise.en.yml (Bulgarian) * New translations en.json (Thai) * New translations en.json (Bulgarian) * New translations en.yml (Ukrainian) * New translations en.json (Indonesian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Scottish Gaelic) * New translations en.json (Asturian) * New translations en.json (German) * New translations en.json (Portuguese) * New translations en.json (Spanish) * New translations en.json (Danish) * New translations en.json (Ukrainian) * New translations en.json (Tamil) * New translations en.json (Chinese Traditional) * New translations simple_form.en.yml (Occitan) * New translations doorkeeper.en.yml (Occitan) * New translations en.json (Norwegian) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations en.json (Korean) * New translations en.yml (Esperanto) * New translations simple_form.en.yml (Arabic) * New translations en.json (Arabic) * New translations en.json (Basque) * New translations en.yml (Basque) * New translations en.json (Norwegian) * New translations en.yml (Norwegian) * New translations en.yml (Esperanto) * New translations simple_form.en.yml (Basque) * New translations doorkeeper.en.yml (Esperanto) * New translations en.json (Esperanto) * New translations en.json (Norwegian) * New translations en.yml (Norwegian) * New translations en.json (Latvian) * New translations simple_form.en.yml (Occitan) * New translations devise.en.yml (Esperanto) * New translations en.yml (Czech) * New translations en.json (German) * New translations en.json (Czech) * New translations en.json (French) * New translations en.yml (Hebrew) * New translations en.json (Norwegian) * New translations en.json (Irish) * New translations en.yml (Dutch) * New translations en.json (Ukrainian) * New translations en.json (Romanian) * New translations en.json (Russian) * New translations en.json (Korean) * New translations en.yml (Korean) * New translations doorkeeper.en.yml (Korean) * New translations doorkeeper.en.yml (Chinese Traditional) * Run `yarn manage:translations` * Run `bundle exec i18n-tasks normalize` Co-authored-by: Yamagishi Kazutoshi * Fix missing "not recommended" label on "Allow trends without review" (#20480) * Fix casing and spacing of words (#20504) * Fix saving server registration settings redirecting to branding settings (#20505) * Allow unsetting x-amz-acl S3 Permission headers (#20510) Some "S3 Compatible" storage providers (Cloudflare R2 is one such example) don't support setting ACLs on individual uploads with the `x-amz-acl` header, and instead just have a visibility for the whole bucket. To support uploads to such providers without getting unsupported errors back, lets use a black `S3_PERMISSION` env var to indicate that these headers shouldn't be sent. This is tested as working with Cloudflare R2. * New Crowdin updates (#20476) * New translations en.json (Galician) * New translations en.yml (Galician) * New translations en.json (Japanese) * New translations en.yml (Czech) * New translations en.json (Esperanto) * New translations en.yml (Norwegian) * New translations en.json (Spanish, Argentina) * New translations en.json (Latvian) * New translations en.json (Esperanto) * New translations en.yml (Esperanto) * New translations simple_form.en.yml (Esperanto) * New translations activerecord.en.yml (Russian) * New translations activerecord.en.yml (Portuguese, Brazilian) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.yml (Norwegian) * New translations en.json (Welsh) * New translations en.yml (Welsh) * New translations en.json (Malayalam) * New translations simple_form.en.yml (Thai) * New translations simple_form.en.yml (Welsh) * New translations doorkeeper.en.yml (Welsh) * New translations activerecord.en.yml (Welsh) * New translations devise.en.yml (Thai) * New translations devise.en.yml (Welsh) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Irish) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Thai) * New translations en.yml (Thai) * New translations en.json (Esperanto) * New translations en.yml (Irish) * New translations en.json (Norwegian) * New translations en.json (Polish) * New translations en.yml (Polish) * New translations en.json (Slovak) * New translations en.yml (Slovak) * New translations en.json (Turkish) * New translations en.yml (Portuguese, Brazilian) * New translations simple_form.en.yml (Thai) * New translations en.yml (Chinese Simplified) * New translations en.yml (Polish) * New translations en.json (Slovak) * New translations en.yml (Slovak) * New translations simple_form.en.yml (Slovak) * New translations en.json (Thai) * New translations simple_form.en.yml (Portuguese, Brazilian) * New translations doorkeeper.en.yml (Esperanto) * New translations en.json (Norwegian) * New translations en.json (Finnish) * New translations en.json (Norwegian) * New translations simple_form.en.yml (Norwegian) * New translations en.yml (Thai) * New translations en.json (Norwegian Nynorsk) * New translations en.yml (Norwegian Nynorsk) * New translations simple_form.en.yml (Arabic) * New translations en.json (German) * New translations en.json (Dutch) * New translations en.yml (Greek) * New translations en.yml (German) * New translations en.yml (Hungarian) * New translations en.yml (Hebrew) * New translations en.yml (Finnish) * New translations en.yml (Basque) * New translations en.yml (Frisian) * New translations en.yml (Danish) * New translations en.yml (Catalan) * New translations en.yml (Bulgarian) * New translations en.yml (Arabic) * New translations en.yml (Afrikaans) * New translations en.yml (French) * New translations en.yml (Romanian) * New translations en.yml (Spanish) * New translations en.yml (Czech) * New translations en.yml (Armenian) * New translations en.yml (Urdu (Pakistan)) * New translations en.yml (Vietnamese) * New translations en.yml (Chinese Traditional) * New translations en.yml (Swedish) * New translations en.yml (Serbian (Cyrillic)) * New translations en.yml (Slovenian) * New translations en.yml (Thai) * New translations en.yml (Galician) * New translations en.yml (Russian) * New translations en.yml (Icelandic) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Indonesian) * New translations en.yml (Persian) * New translations en.yml (Tamil) * New translations en.yml (Slovak) * New translations en.yml (Japanese) * New translations en.yml (Portuguese) * New translations en.yml (Polish) * New translations en.yml (Punjabi) * New translations en.yml (Norwegian) * New translations en.yml (Dutch) * New translations en.yml (Macedonian) * New translations en.yml (Lithuanian) * New translations en.yml (Korean) * New translations en.yml (Georgian) * New translations en.yml (Italian) * New translations en.yml (Ukrainian) * New translations en.yml (Albanian) * New translations en.yml (Turkish) * New translations en.yml (Ido) * New translations en.yml (Chinese Simplified) * New translations en.yml (Spanish, Argentina) * New translations en.yml (Spanish, Mexico) * New translations en.yml (Sorani (Kurdish)) * New translations en.yml (Kannada) * New translations en.yml (Scottish Gaelic) * New translations en.yml (Asturian) * New translations en.yml (Occitan) * New translations en.yml (Serbian (Latin)) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.yml (Corsican) * New translations en.yml (Sinhala) * New translations en.yml (Sardinian) * New translations en.yml (Sanskrit) * New translations en.yml (Kabyle) * New translations en.yml (Taigi) * New translations en.yml (Silesian) * New translations en.yml (Standard Moroccan Tamazight) * New translations en.yml (Burmese) * New translations en.yml (Cornish) * New translations en.yml (Breton) * New translations en.yml (Bengali) * New translations en.yml (Hindi) * New translations en.yml (Marathi) * New translations en.yml (Croatian) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Kazakh) * New translations en.yml (Estonian) * New translations en.yml (Latvian) * New translations en.yml (Malay) * New translations en.yml (Malayalam) * New translations en.yml (Telugu) * New translations en.yml (English, United Kingdom) * New translations en.yml (Welsh) * New translations en.yml (Esperanto) * New translations en.yml (Uyghur) * New translations en.yml (Chinese Traditional, Hong Kong) * New translations en.yml (Tatar) * New translations en.yml (Igbo) * New translations en.yml (Chinese Simplified) * New translations en.yml (Afrikaans) * New translations en.yml (Korean) * New translations en.yml (Chinese Traditional) * New translations en.yml (Thai) * New translations en.yml (German) * New translations en.yml (Czech) * New translations en.yml (Catalan) * New translations en.yml (Greek) * New translations en.yml (Italian) * New translations en.yml (Slovenian) * New translations en.yml (Swedish) * New translations simple_form.en.yml (Thai) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.yml (Basque) * New translations en.yml (Norwegian) * New translations en.yml (Portuguese) * New translations en.yml (Icelandic) * New translations en.json (Spanish, Argentina) * New translations en.yml (Spanish, Argentina) * New translations en.json (Albanian) * New translations en.yml (Albanian) * New translations en.yml (French) * New translations en.yml (Hebrew) * New translations en.yml (Italian) * New translations en.yml (Japanese) * New translations en.yml (Norwegian) * New translations en.yml (Polish) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Esperanto) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Hebrew) * New translations en.yml (Norwegian) * New translations en.yml (German) * New translations en.json (Spanish) * New translations en.yml (Finnish) * New translations en.json (Norwegian) * New translations en.yml (Latvian) * New translations en.yml (Esperanto) * New translations en.json (German) * New translations en.json (Esperanto) * New translations en.yml (Dutch) * New translations en.yml (Norwegian) * New translations en.yml (Esperanto) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations doorkeeper.en.yml (Catalan) * Run `yarn manage:translations` * Run `bundle exec i18n-tasks normalize` Co-authored-by: Yamagishi Kazutoshi * Copied Spaces support from packer .rake (#20573) * Fix announcement dates not being validated client-side (#20577) * Fix public/local timeline posts not being properly filtered (#20567) * Fix streaming server using wrong property name for matching filters Late in the PR, the `filter_results` property has been renamed to `filtered`, but the change has not been reflected in the streaming server code. * Fix filter_action attribute being an integer instead of a string * Clean up GitHub sourced gem entry (#20542) * Update fix-duplicates (#20502) Fixes #19133 * Test blank account field verifiability (#20458) * Test blank account field verifiability This change tests the need for #20428, which ensures that we guard against a situation in which `at_xpath` returns `nil`. * Test verifiability of blank fields for remote account profiles This adds a counterpart test for remote account profiles' fields' verifiability when those fields are blank. I previously added the same test for local accounts. * Stick batch table toolbar to the top (#20442) Fixes #20441 * Helm: support statsd publishing (#20455) * Allow statsd publishing from Helm * Apply suggestions from code review Co-authored-by: Erik Sundell Co-authored-by: Erik Sundell * Add the option to configure external postgresql port (#20370) While the normal assumption of port `5432` for a postgresql server is pretty reliable I found that DigitalOcean puts them on a somewhat random port. This adds the ability to specify the port in the helm chart. * Change in-app links to keep you in-app (#20540) * Change in-app links to keep you in-app * refactor Permalink into Link * rewrite link hrefs in status content * please linter * please linter again * helm: Add helm chart tests (#20394) * helm: Fix consistent list indentation * helm: Add helm lint and helm template tests * helm: Add helm template --validate test * helm: Add helm install test * Fix icons having an image role (#20600) * Fix wrong cut-off point for "Read more" in web UI (#20599) * Add `Cache-Control` header to openstack-stored files (#20610) When storing files in S3, paperclip is configured with a Cache-Control header indicating the file is immutable, however no such header was added when using OpenStack storage. Luckily Paperclip's fog integration makes this trivial, with a simple `fog_file` `Cache-Control` default doing the trick. * Support UTF-8 Characters in Domains During CSV Import (#20592) * Support UTF-8 Characters in Domains During Import * Update Changelong * Fix dropdown menu on profiles not being accessible on narrow screens in web UI (#20620) * Fix rules with same priority being sorted non-deterministically (#20623) * Fix `role_ids` not accepting arrays in admin API (#20625) Fix #19157 * Fix image type not being set after conversion for convertible image types (#20624) * Fix error when passing unknown filter param in REST API (#20626) Fix #19156 * Fix style of username in navigation bar above compose form in web UI (#20628) Regression from #20540 * Fix error when invalid domain name is submitted (#19474) Fix #19175 * Update AUTHORS.md (#20630) * Fix index name in fix-duplicates task (#20632) * Move V2 Filter methods under /api/v2 prefix (#20622) * Move V2 Filter methods under /api/v2 prefix * move over the tests too * Bump version to 4.0.0rc4 (#20634) * Fix media metadata being only editable once (#20665) * Fix emoji substitution not applying only to text nodes in Web UI (#20640) Signed-off-by: Claire Signed-off-by: Claire * Fix emoji substitution not applying only to text nodes in backend code (#20641) Signed-off-by: Claire Signed-off-by: Claire * Fix rate limiting for paths with formats (#20675) * Bump version to 4.0.0 (#20636) * Fix nodes order being sometimes mangled when rewriting emoji (#20677) * Fix front-end emoji tests * Fix nodes order being sometimes mangled when rewriting emoji * Bump version to 4.0.1 (#20696) * Fix filters from other users being used in the streaming service (#20719) * Fix wrong color on mentions hidden behind content warning in web UI (#20724) * Bump nokogiri from 1.13.8 to 1.13.9 (#20041) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.8 to 1.13.9. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.8...v1.13.9) --- updated-dependencies: - dependency-name: nokogiri dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Use "unsafe-wasm-eval" instead of "unsafe-eval" in script-src CSP (#20606) * Add "unsafe-eval" to script-src CSP * Use 'unsafe-wasm-eval' instead of 'unsafe-eval' * Fix wrong directive `unsafe-wasm-eval` to `wasm-unsafe-eval` (#20729) * Bump version to 4.0.2 (#20725) * update timeline * css lint * lint * lint * lint * local * for local test * fix path * fix local * dissmissable banner * fix redirect * add drawer * navigation panel * change redirect * add test * fix select * fix code * fix ui color * fix typo * fix test * lint * lint * lint * add mastodon japan --------- Signed-off-by: Yarden Shoham Signed-off-by: Claire Signed-off-by: dependabot[bot] Co-authored-by: Eugen Rochko Co-authored-by: Matthias Bethke Co-authored-by: Yurii Izorkin Co-authored-by: Ben Hardill Co-authored-by: Claire Co-authored-by: Yamagishi Kazutoshi Co-authored-by: Jeong Arm Co-authored-by: pea-sys <49807271+pea-sys@users.noreply.github.com> Co-authored-by: txt-file <44214237+txt-file@users.noreply.github.com> Co-authored-by: SJang1 Co-authored-by: Sunny Ripert Co-authored-by: Yarden Shoham Co-authored-by: Alex Nordlund Co-authored-by: eai04191 Co-authored-by: Moritz Hedtke Co-authored-by: Hayden Co-authored-by: Justin Thomas Co-authored-by: rcombs Co-authored-by: Rob Petti Co-authored-by: nightpool Co-authored-by: Ilias Tsangaris Co-authored-by: Jeremy Kescher Co-authored-by: Chris Rose Co-authored-by: Postmodern Co-authored-by: Zach Flanders Co-authored-by: James Tucker Co-authored-by: Roni Laukkarinen Co-authored-by: trwnh Co-authored-by: k.bigwheel (kazufumi nishida) Co-authored-by: Sheogorath Co-authored-by: Sasha Sorokin <10401817+Brawaru@users.noreply.github.com> Co-authored-by: Christian Clauss Co-authored-by: luzpaz Co-authored-by: keiya Co-authored-by: Vyr Cossont Co-authored-by: Effy Elden Co-authored-by: mickkael <19755421+mickkael@users.noreply.github.com> Co-authored-by: Joe Friedl Co-authored-by: F Co-authored-by: Erik Sundell Co-authored-by: Connor Shea Co-authored-by: Pierre Bourdon Co-authored-by: Cutls Co-authored-by: Emily Strickland Co-authored-by: Bearice Ren Co-authored-by: helloworldstack <66512512+helloworldstack@users.noreply.github.com> Co-authored-by: David Hewitt Co-authored-by: Arthur Isac <94634250+v-aisac@users.noreply.github.com> Co-authored-by: Nicholas La Roux Co-authored-by: Samuel Kaiser Co-authored-by: Cees-Jan Kiewiet Co-authored-by: Matt Corallo <649246+TheBlueMatt@users.noreply.github.com> Co-authored-by: Hampton Lintorn-Catlin Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: prplecake --- .circleci/config.yml | 18 +- .codeclimate.yml | 8 +- .devcontainer/devcontainer.json | 2 +- .devcontainer/docker-compose.yml | 7 + .env.nanobox | 254 - .env.production.sample | 8 + .eslintrc.js | 4 +- .github/ISSUE_TEMPLATE/1.bug_report.yml | 14 + .github/ISSUE_TEMPLATE/config.yml | 5 +- .github/stylelint-matcher.json | 21 + .github/workflows/build-image.yml | 11 +- .github/workflows/check-i18n.yml | 5 +- .github/workflows/linter.yml | 83 + .github/workflows/test-chart.yml | 138 + .gitignore | 6 + .rubocop.yml | 7 +- .ruby-gemset | 1 + .ruby-version | 2 +- .sass-lint.yml | 37 - AUTHORS.md | 1065 +++- Aptfile | 4 +- CHANGELOG.md | 216 +- CONTRIBUTING.md | 2 + Dockerfile | 6 +- Dockerfile.local | 113 + Gemfile | 50 +- Gemfile.lock | 367 +- README.md | 13 +- SECURITY.md | 15 +- app.json | 7 +- app/controllers/about_controller.rb | 57 +- app/controllers/account_follow_controller.rb | 12 - .../account_unfollow_controller.rb | 12 - app/controllers/accounts_controller.rb | 60 +- .../activitypub/claims_controller.rb | 2 +- .../activitypub/collections_controller.rb | 2 +- .../followers_synchronizations_controller.rb | 2 +- .../activitypub/inboxes_controller.rb | 10 +- .../activitypub/outboxes_controller.rb | 2 +- .../activitypub/replies_controller.rb | 2 +- .../admin/account_actions_controller.rb | 4 + app/controllers/admin/accounts_controller.rb | 8 +- .../admin/action_logs_controller.rb | 5 +- app/controllers/admin/base_controller.rb | 2 +- .../admin/confirmations_controller.rb | 2 +- .../admin/custom_emojis_controller.rb | 4 +- app/controllers/admin/dashboard_controller.rb | 4 +- .../admin/email_domain_blocks_controller.rb | 2 + .../follow_recommendations_controller.rb | 2 + app/controllers/admin/ip_blocks_controller.rb | 4 +- .../admin/relationships_controller.rb | 2 +- app/controllers/admin/roles_controller.rb | 68 +- .../admin/settings/about_controller.rb | 9 + .../admin/settings/appearance_controller.rb | 9 + .../admin/settings/branding_controller.rb | 9 + .../settings/content_retention_controller.rb | 9 + .../admin/settings/discovery_controller.rb | 9 + .../settings/registrations_controller.rb | 9 + app/controllers/admin/settings_controller.rb | 10 +- .../admin/site_uploads_controller.rb | 2 +- app/controllers/admin/statuses_controller.rb | 16 +- .../admin/subscriptions_controller.rb | 20 - app/controllers/admin/tags_controller.rb | 4 +- .../preview_card_providers_controller.rb | 6 +- .../admin/trends/links_controller.rb | 7 +- .../admin/trends/statuses_controller.rb | 7 +- .../admin/trends/tags_controller.rb | 6 +- .../admin/users/roles_controller.rb | 34 + .../two_factor_authentications_controller.rb | 2 +- .../admin/webhooks/secrets_controller.rb | 19 + app/controllers/admin/webhooks_controller.rb | 77 + app/controllers/api/base_controller.rb | 14 +- .../accounts/follower_accounts_controller.rb | 2 +- .../accounts/following_accounts_controller.rb | 2 +- .../api/v1/accounts/pins_controller.rb | 2 +- app/controllers/api/v1/accounts_controller.rb | 6 +- .../v1/admin/account_actions_controller.rb | 7 +- .../api/v1/admin/accounts_controller.rb | 11 +- .../canonical_email_blocks_controller.rb | 95 + .../api/v1/admin/dimensions_controller.rb | 6 +- .../api/v1/admin/domain_allows_controller.rb | 95 + .../api/v1/admin/domain_blocks_controller.rb | 108 + .../admin/email_domain_blocks_controller.rb | 88 + .../api/v1/admin/ip_blocks_controller.rb | 93 + .../api/v1/admin/measures_controller.rb | 6 +- .../api/v1/admin/reports_controller.rb | 2 +- .../api/v1/admin/retention_controller.rb | 6 +- .../api/v1/admin/trends/links_controller.rb | 20 +- .../v1/admin/trends/statuses_controller.rb | 20 +- .../api/v1/admin/trends/tags_controller.rb | 20 +- .../featured_tags/suggestions_controller.rb | 2 +- .../api/v1/featured_tags_controller.rb | 8 +- app/controllers/api/v1/filters_controller.rb | 37 +- .../api/v1/followed_tags_controller.rb | 52 + .../v1/instances/domain_blocks_controller.rb | 23 + .../extended_descriptions_controller.rb | 18 + .../instances/privacy_policies_controller.rb | 18 + .../api/v1/instances_controller.rb | 2 +- app/controllers/api/v1/lists_controller.rb | 4 + .../api/v1/push/subscriptions_controller.rb | 2 +- .../v1/statuses/translations_controller.rb | 29 + app/controllers/api/v1/statuses_controller.rb | 23 +- app/controllers/api/v1/tags_controller.rb | 30 + .../api/v1/timelines/area_controller.rb | 16 +- .../api/v1/trends/links_controller.rb | 12 +- .../api/v1/trends/statuses_controller.rb | 10 +- .../api/v1/trends/tags_controller.rb | 14 +- .../api/v2/admin/accounts_controller.rb | 15 +- .../api/v2/filters/keywords_controller.rb | 50 + .../api/v2/filters/statuses_controller.rb | 44 + app/controllers/api/v2/filters_controller.rb | 48 + .../api/v2/instances_controller.rb | 8 + app/controllers/api/v2/media_controller.rb | 2 +- app/controllers/api/v2/search_controller.rb | 14 +- app/controllers/application_controller.rb | 8 - .../auth/omniauth_callbacks_controller.rb | 3 +- .../auth/registrations_controller.rb | 23 +- app/controllers/auth/sessions_controller.rb | 9 +- .../concerns/account_controller_concern.rb | 3 +- .../concerns/accountable_concern.rb | 8 +- .../concerns/signature_verification.rb | 88 +- .../concerns/status_controller_concern.rb | 87 - .../concerns/web_app_controller_concern.rb | 27 + app/controllers/custom_css_controller.rb | 2 +- app/controllers/directories_controller.rb | 32 - .../filters/statuses_controller.rb | 49 + app/controllers/filters_controller.rb | 12 +- .../follower_accounts_controller.rb | 7 +- .../following_accounts_controller.rb | 7 +- app/controllers/home_controller.rb | 28 +- app/controllers/privacy_controller.rb | 19 + .../public_timelines_controller.rb | 26 - app/controllers/remote_follow_controller.rb | 41 - .../remote_interaction_controller.rb | 55 - .../settings/deletes_controller.rb | 5 - .../settings/featured_tags_controller.rb | 7 +- .../settings/preferences_controller.rb | 2 +- app/controllers/statuses_controller.rb | 15 +- app/controllers/tags_controller.rb | 12 +- app/helpers/account_area_helper.rb | 18 +- app/helpers/accounts_helper.rb | 66 +- app/helpers/admin/action_logs_helper.rb | 69 +- app/helpers/admin/settings_helper.rb | 7 - app/helpers/application_helper.rb | 34 +- app/helpers/branding_helper.rb | 37 + app/helpers/home_helper.rb | 2 +- app/helpers/languages_helper.rb | 11 +- app/helpers/routing_helper.rb | 6 +- app/helpers/settings_helper.rb | 3 +- app/javascript/area_settings.json | 6 + .../fonts/montserrat/Montserrat-Medium.ttf | Bin 192488 -> 0 bytes .../fonts/montserrat/Montserrat-Regular.ttf | Bin 191860 -> 0 bytes .../fonts/montserrat/Montserrat-Regular.woff | Bin 81244 -> 0 bytes .../fonts/montserrat/Montserrat-Regular.woff2 | Bin 61840 -> 0 bytes .../icons/android-chrome-144x144.png | Bin 0 -> 5810 bytes .../icons/android-chrome-192x192.png | Bin 0 -> 8741 bytes .../icons/android-chrome-256x256.png | Bin 0 -> 11993 bytes app/javascript/icons/android-chrome-36x36.png | Bin 0 -> 950 bytes .../icons/android-chrome-384x384.png | Bin 0 -> 21112 bytes app/javascript/icons/android-chrome-48x48.png | Bin 0 -> 1384 bytes .../icons/android-chrome-512x512.png | Bin 0 -> 31858 bytes app/javascript/icons/android-chrome-72x72.png | Bin 0 -> 2262 bytes app/javascript/icons/android-chrome-96x96.png | Bin 0 -> 3306 bytes .../icons/apple-touch-icon-1024x1024.png | Bin 0 -> 77950 bytes .../icons/apple-touch-icon-114x114.png | Bin 0 -> 4123 bytes .../icons/apple-touch-icon-120x120.png | Bin 0 -> 4366 bytes .../icons/apple-touch-icon-144x144.png | Bin 0 -> 5810 bytes .../icons/apple-touch-icon-152x152.png | Bin 0 -> 6177 bytes .../icons/apple-touch-icon-167x167.png | Bin 0 -> 7041 bytes .../icons/apple-touch-icon-180x180.png | Bin 0 -> 7709 bytes .../icons/apple-touch-icon-57x57.png | Bin 0 -> 1673 bytes .../icons/apple-touch-icon-60x60.png | Bin 0 -> 1761 bytes .../icons/apple-touch-icon-72x72.png | Bin 0 -> 2262 bytes .../icons/apple-touch-icon-76x76.png | Bin 0 -> 2360 bytes app/javascript/icons/favicon-16x16.png | Bin 0 -> 588 bytes app/javascript/icons/favicon-32x32.png | Bin 0 -> 1114 bytes app/javascript/icons/favicon-48x48.png | Bin 0 -> 1680 bytes app/javascript/images/app-icon.svg | 28 + app/javascript/images/elephant-fren.png | Bin 34530 -> 0 bytes app/javascript/images/icon_cached.svg | 2 - app/javascript/images/icon_done.svg | 4 - app/javascript/images/icon_email.svg | 4 - app/javascript/images/icon_file_download.svg | 4 - app/javascript/images/icon_flag.svg | 4 - app/javascript/images/icon_grade.svg | 4 - app/javascript/images/icon_lock_open.svg | 4 - app/javascript/images/icon_person_add.svg | 4 - app/javascript/images/icon_reply.svg | 4 - app/javascript/images/icons/icon_cached.svg | 1 + app/javascript/images/icons/icon_done.svg | 1 + app/javascript/images/icons/icon_email.svg | 1 + .../images/icons/icon_file_download.svg | 1 + app/javascript/images/icons/icon_flag.svg | 1 + app/javascript/images/icons/icon_grade.svg | 1 + .../images/icons/icon_lock_open.svg | 1 + .../images/icons/icon_person_add.svg | 1 + app/javascript/images/icons/icon_reply.svg | 1 + app/javascript/images/logo-symbol-icon.svg | 2 + .../images/logo-symbol-wordmark.svg | 11 + app/javascript/images/logo.svg | 11 +- app/javascript/images/logo_alt.svg | 1 - .../images/logo_transparent_black.svg | 1 - .../images/logo_transparent_white.svg | 1 - app/javascript/images/mailer/icon_cached.png | Bin 423 -> 1133 bytes app/javascript/images/mailer/icon_done.png | Bin 253 -> 477 bytes app/javascript/images/mailer/icon_email.png | Bin 387 -> 1138 bytes .../images/mailer/icon_file_download.png | Bin 225 -> 346 bytes app/javascript/images/mailer/icon_flag.png | Bin 0 -> 298 bytes app/javascript/images/mailer/icon_grade.png | Bin 412 -> 1959 bytes .../images/mailer/icon_lock_open.png | Bin 387 -> 1642 bytes .../images/mailer/icon_person_add.png | Bin 376 -> 1440 bytes app/javascript/images/mailer/icon_reply.png | Bin 319 -> 1235 bytes app/javascript/images/mailer/icon_warning.png | Bin 371 -> 0 bytes app/javascript/images/mailer/logo.png | Bin 0 -> 1150 bytes app/javascript/images/mailer/logo_full.png | Bin 2371 -> 0 bytes .../images/mailer/logo_transparent.png | Bin 506 -> 0 bytes app/javascript/images/mailer/wordmark.png | Bin 0 -> 6753 bytes app/javascript/images/preview.jpg | Bin 292252 -> 0 bytes app/javascript/images/preview.png | Bin 0 -> 340408 bytes .../images/proof_providers/keybase.png | Bin 12665 -> 0 bytes app/javascript/images/reticle.png | Bin 2199 -> 1439 bytes app/javascript/images/screen_federation.svg | 1 - app/javascript/images/screen_hello.svg | 1 - app/javascript/images/screen_interactions.svg | 1 - app/javascript/images/void.png | Bin 174 -> 80 bytes app/javascript/mastodon/actions/accounts.js | 6 +- app/javascript/mastodon/actions/compose.js | 100 +- .../mastodon/actions/featured_tags.js | 34 + app/javascript/mastodon/actions/filters.js | 69 +- .../mastodon/actions/importer/index.js | 11 + .../mastodon/actions/importer/normalizer.js | 12 + app/javascript/mastodon/actions/markers.js | 10 +- .../mastodon/actions/notifications.js | 38 +- .../actions/push_notifications/index.js | 26 +- app/javascript/mastodon/actions/rules.js | 27 - app/javascript/mastodon/actions/search.js | 5 +- app/javascript/mastodon/actions/server.js | 91 + app/javascript/mastodon/actions/statuses.js | 43 +- app/javascript/mastodon/actions/streaming.js | 8 +- app/javascript/mastodon/actions/tags.js | 92 + app/javascript/mastodon/actions/timelines.js | 4 +- app/javascript/mastodon/api.js | 53 +- .../__snapshots__/avatar-test.js.snap | 22 +- .../__snapshots__/avatar_overlay-test.js.snap | 50 +- .../__snapshots__/button-test.js.snap | 7 + .../__snapshots__/display_name-test.js.snap | 2 +- app/javascript/mastodon/components/account.js | 29 +- .../mastodon/components/admin/Trends.js | 2 +- .../mastodon/components/animated_number.js | 6 +- app/javascript/mastodon/components/area.js | 24 +- .../mastodon/components/area_avatar.js | 5 +- .../mastodon/components/area_header.js | 7 +- app/javascript/mastodon/components/avatar.js | 24 +- .../mastodon/components/avatar_composite.js | 7 +- .../mastodon/components/avatar_overlay.js | 36 +- app/javascript/mastodon/components/button.js | 8 +- .../mastodon/components/column_header.js | 6 +- .../mastodon/components/dismissable_banner.js | 51 + .../mastodon/components/display_name.js | 8 +- .../mastodon/components/error_boundary.js | 7 + app/javascript/mastodon/components/hashtag.js | 52 +- app/javascript/mastodon/components/icon.js | 2 +- .../mastodon/components/icon_button.js | 6 +- app/javascript/mastodon/components/image.js | 33 + .../mastodon/components/load_more.js | 2 +- app/javascript/mastodon/components/logo.js | 5 +- .../mastodon/components/missing_indicator.js | 5 + .../mastodon/components/navigation_portal.js | 35 + .../components/not_signed_in_indicator.js | 12 + .../mastodon/components/permalink.js | 40 - app/javascript/mastodon/components/poll.js | 6 +- .../mastodon/components/server_banner.js | 93 + .../mastodon/components/setting_select.js | 22 +- .../mastodon/components/setting_text.js | 34 - .../mastodon/components/skeleton.js | 4 +- app/javascript/mastodon/components/status.js | 73 +- .../mastodon/components/status_action_bar.js | 93 +- .../mastodon/components/status_content.js | 154 +- .../mastodon/components/timeline_hint.js | 2 +- .../mastodon/containers/mastodon.js | 36 +- .../mastodon/containers/status_container.js | 27 +- .../mastodon/containers/timeline_container.js | 62 - app/javascript/mastodon/extra_polyfills.js | 1 + .../mastodon/features/about/index.js | 219 + .../account/components/featured_tags.js | 52 + .../features/account/components/header.js | 109 +- .../containers/featured_tags_container.js | 15 + .../mastodon/features/account/navigation.js | 52 + .../account_gallery/components/media_item.js | 2 +- .../features/account_gallery/index.js | 3 +- .../account_timeline/components/header.js | 18 + .../components/limited_account_hint.js | 3 +- .../account_timeline/components/moved_note.js | 36 +- .../containers/header_container.js | 36 +- .../features/account_timeline/index.js | 42 +- .../components/column_settings.js | 22 +- .../containers/column_settings_container.js | 7 +- .../mastodon/features/area_timeline/index.js | 11 + .../features/area_timeline_redirect/index.js | 2 +- .../mastodon/features/audio/index.js | 64 +- .../features/bookmarked_statuses/index.js | 24 +- .../closed_registrations_modal/index.js | 75 + .../features/community_timeline/index.js | 31 +- .../features/compose/components/action_bar.js | 2 +- .../compose/components/compose_form.js | 19 +- .../components/emoji_picker_dropdown.js | 12 +- .../compose/components/language_dropdown.js | 30 +- .../compose/components/navigation_bar.js | 12 +- .../features/compose/components/poll_form.js | 2 +- .../compose/components/reply_indicator.js | 2 +- .../features/compose/components/search.js | 5 +- .../compose/components/search_results.js | 4 +- .../compose/components/text_icon_button.js | 1 + .../features/compose/components/upload.js | 11 +- .../compose/components/upload_form.js | 3 +- .../compose/components/upload_progress.js | 16 +- .../compose/containers/upload_container.js | 1 - .../containers/upload_progress_container.js | 1 + .../mastodon/features/compose/index.js | 116 +- .../components/conversation.js | 4 +- .../features/direct_timeline/index.js | 20 +- .../directory/components/account_card.js | 24 +- .../mastodon/features/directory/index.js | 6 + .../mastodon/features/domain_blocks/index.js | 6 + .../features/emoji/__tests__/emoji-test.js | 42 +- .../mastodon/features/emoji/emoji.js | 87 +- .../mastodon/features/emoji/emoji_map.json | 2 +- .../mastodon/features/explore/index.js | 38 +- .../mastodon/features/explore/links.js | 22 + .../mastodon/features/explore/results.js | 17 +- .../mastodon/features/explore/statuses.js | 29 +- .../mastodon/features/explore/suggestions.js | 11 + .../mastodon/features/explore/tags.js | 22 + .../features/favourited_statuses/index.js | 24 +- .../mastodon/features/favourites/index.js | 23 +- .../features/filters/added_to_filter.js | 102 + .../features/filters/select_filter.js | 192 + .../components/account.js | 6 +- .../features/follow_recommendations/index.js | 11 +- .../components/account_authorize.js | 6 +- .../features/follow_requests/index.js | 5 + .../mastodon/features/followers/index.js | 3 +- .../mastodon/features/following/index.js | 3 +- .../features/getting_started/index.js | 107 +- .../features/hashtag_timeline/index.js | 109 +- .../mastodon/features/home_timeline/index.js | 32 +- .../features/interaction_modal/index.js | 161 + .../mastodon/features/introduction/index.js | 197 - .../features/keyboard_shortcuts/index.js | 18 +- .../mastodon/features/list_timeline/index.js | 36 +- .../lists/components/new_list_form.js | 9 +- .../mastodon/features/lists/index.js | 32 +- .../mastodon/features/mutes/index.js | 5 + .../components/column_settings.js | 23 +- .../components/follow_request.js | 6 +- .../notifications/components/notification.js | 38 +- .../notifications/components/report.js | 62 + .../containers/notification_container.js | 4 +- .../mastodon/features/notifications/index.js | 63 +- .../picture_in_picture/components/footer.js | 72 +- .../features/pinned_statuses/index.js | 4 + .../mastodon/features/privacy_policy/index.js | 61 + .../features/public_timeline/index.js | 30 +- .../mastodon/features/reblogs/index.js | 7 +- .../mastodon/features/report/category.js | 3 +- .../report/components/status_check_box.js | 26 +- .../mastodon/features/report/rules.js | 2 +- .../standalone/hashtag_timeline/index.js | 90 - .../standalone/public_timeline/index.js | 99 - .../features/status/components/action_bar.js | 40 +- .../features/status/components/card.js | 2 +- .../status/components/detailed_status.js | 25 +- .../mastodon/features/status/index.js | 121 +- .../subscribed_languages_modal/index.js | 125 + .../features/ui/components/actions_modal.js | 28 - .../features/ui/components/boost_modal.js | 15 +- .../ui/components/bundle_column_error.js | 160 +- .../features/ui/components/column_link.js | 24 +- .../features/ui/components/column_loading.js | 6 +- .../features/ui/components/columns_area.js | 110 +- .../features/ui/components/compose_panel.js | 44 +- .../ui/components/disabled_account_banner.js | 92 + .../features/ui/components/document_title.js | 41 - .../features/ui/components/filter_modal.js | 134 + .../ui/components/focal_point_modal.js | 27 +- ...link.js => follow_requests_column_link.js} | 24 +- .../mastodon/features/ui/components/header.js | 62 + .../features/ui/components/image_loader.js | 26 +- .../features/ui/components/image_modal.js | 59 + .../features/ui/components/link_footer.js | 62 +- .../features/ui/components/list_panel.js | 12 +- .../features/ui/components/modal_root.js | 23 +- .../ui/components/navigation_panel.js | 141 +- .../features/ui/components/report_modal.js | 4 +- .../features/ui/components/sign_in_banner.js | 40 + .../features/ui/components/tabs_bar.js | 91 - .../containers/area_status_list_container.js | 2 +- app/javascript/mastodon/features/ui/index.js | 71 +- .../features/ui/util/async-components.js | 24 + .../features/ui/util/react_router_helpers.js | 38 +- app/javascript/mastodon/initial_state.js | 142 +- app/javascript/mastodon/is_mobile.js | 13 +- app/javascript/mastodon/load_polyfills.js | 1 + app/javascript/mastodon/locales/af.json | 287 +- app/javascript/mastodon/locales/ar.json | 173 +- app/javascript/mastodon/locales/ast.json | 251 +- app/javascript/mastodon/locales/bg.json | 655 +- app/javascript/mastodon/locales/bn.json | 143 +- app/javascript/mastodon/locales/br.json | 377 +- app/javascript/mastodon/locales/ca.json | 201 +- app/javascript/mastodon/locales/ckb.json | 143 +- app/javascript/mastodon/locales/co.json | 143 +- app/javascript/mastodon/locales/cs.json | 147 +- app/javascript/mastodon/locales/cy.json | 163 +- app/javascript/mastodon/locales/da.json | 157 +- app/javascript/mastodon/locales/de.json | 421 +- .../mastodon/locales/defaultMessages.json | 766 ++- app/javascript/mastodon/locales/el.json | 145 +- app/javascript/mastodon/locales/en-GB.json | 161 +- app/javascript/mastodon/locales/en.json | 144 +- app/javascript/mastodon/locales/eo.json | 379 +- app/javascript/mastodon/locales/es-AR.json | 155 +- app/javascript/mastodon/locales/es-MX.json | 153 +- app/javascript/mastodon/locales/es.json | 149 +- app/javascript/mastodon/locales/et.json | 143 +- app/javascript/mastodon/locales/eu.json | 171 +- app/javascript/mastodon/locales/fa.json | 155 +- app/javascript/mastodon/locales/fi.json | 191 +- app/javascript/mastodon/locales/fr.json | 161 +- app/javascript/mastodon/locales/fy.json | 652 ++ app/javascript/mastodon/locales/ga.json | 651 +- app/javascript/mastodon/locales/gd.json | 215 +- app/javascript/mastodon/locales/gl.json | 159 +- app/javascript/mastodon/locales/he.json | 377 +- app/javascript/mastodon/locales/hi.json | 173 +- app/javascript/mastodon/locales/hr.json | 143 +- app/javascript/mastodon/locales/hu.json | 151 +- app/javascript/mastodon/locales/hy.json | 145 +- app/javascript/mastodon/locales/id.json | 305 +- app/javascript/mastodon/locales/ig.json | 652 ++ app/javascript/mastodon/locales/io.json | 157 +- app/javascript/mastodon/locales/is.json | 149 +- app/javascript/mastodon/locales/it.json | 151 +- app/javascript/mastodon/locales/ja.json | 146 +- app/javascript/mastodon/locales/ka.json | 143 +- app/javascript/mastodon/locales/kab.json | 179 +- app/javascript/mastodon/locales/kk.json | 143 +- app/javascript/mastodon/locales/kn.json | 143 +- app/javascript/mastodon/locales/ko.json | 179 +- app/javascript/mastodon/locales/ku.json | 231 +- app/javascript/mastodon/locales/kw.json | 143 +- app/javascript/mastodon/locales/lt.json | 143 +- app/javascript/mastodon/locales/lv.json | 237 +- app/javascript/mastodon/locales/mk.json | 147 +- app/javascript/mastodon/locales/ml.json | 143 +- app/javascript/mastodon/locales/mr.json | 143 +- app/javascript/mastodon/locales/ms.json | 143 +- app/javascript/mastodon/locales/my.json | 652 ++ app/javascript/mastodon/locales/nl.json | 201 +- app/javascript/mastodon/locales/nn.json | 549 +- app/javascript/mastodon/locales/no.json | 337 +- app/javascript/mastodon/locales/oc.json | 233 +- app/javascript/mastodon/locales/pa.json | 143 +- app/javascript/mastodon/locales/pl.json | 225 +- app/javascript/mastodon/locales/pt-BR.json | 163 +- app/javascript/mastodon/locales/pt-PT.json | 147 +- app/javascript/mastodon/locales/ro.json | 165 +- app/javascript/mastodon/locales/ru.json | 163 +- app/javascript/mastodon/locales/sa.json | 143 +- app/javascript/mastodon/locales/sc.json | 143 +- app/javascript/mastodon/locales/si.json | 917 +-- app/javascript/mastodon/locales/sk.json | 169 +- app/javascript/mastodon/locales/sl.json | 361 +- app/javascript/mastodon/locales/sq.json | 211 +- app/javascript/mastodon/locales/sr-Latn.json | 143 +- app/javascript/mastodon/locales/sr.json | 143 +- app/javascript/mastodon/locales/sv.json | 299 +- app/javascript/mastodon/locales/szl.json | 143 +- app/javascript/mastodon/locales/ta.json | 187 +- app/javascript/mastodon/locales/tai.json | 143 +- app/javascript/mastodon/locales/te.json | 143 +- app/javascript/mastodon/locales/th.json | 157 +- app/javascript/mastodon/locales/tr.json | 171 +- app/javascript/mastodon/locales/tt.json | 143 +- app/javascript/mastodon/locales/ug.json | 143 +- app/javascript/mastodon/locales/uk.json | 241 +- app/javascript/mastodon/locales/ur.json | 143 +- app/javascript/mastodon/locales/vi.json | 197 +- .../mastodon/locales/whitelist_de.json | 1 - .../mastodon/locales/whitelist_fy.json | 2 + .../mastodon/locales/whitelist_ig.json | 2 + .../mastodon/locales/whitelist_my.json | 2 + app/javascript/mastodon/locales/zgh.json | 143 +- app/javascript/mastodon/locales/zh-CN.json | 157 +- app/javascript/mastodon/locales/zh-HK.json | 257 +- app/javascript/mastodon/locales/zh-TW.json | 195 +- app/javascript/mastodon/main.js | 46 +- app/javascript/mastodon/permissions.js | 3 + app/javascript/mastodon/ready.js | 37 +- .../mastodon/reducers/accounts_map.js | 6 +- app/javascript/mastodon/reducers/compose.js | 17 +- app/javascript/mastodon/reducers/filters.js | 41 +- app/javascript/mastodon/reducers/index.js | 6 +- app/javascript/mastodon/reducers/meta.js | 3 +- .../mastodon/reducers/notifications.js | 100 +- app/javascript/mastodon/reducers/rules.js | 13 - app/javascript/mastodon/reducers/server.js | 53 + app/javascript/mastodon/reducers/settings.js | 3 + app/javascript/mastodon/reducers/statuses.js | 12 + app/javascript/mastodon/reducers/tags.js | 25 + .../mastodon/reducers/user_lists.js | 26 +- app/javascript/mastodon/selectors/index.js | 108 +- .../mastodon/service_worker/entry.js | 96 +- .../service_worker/web_push_notifications.js | 33 +- app/javascript/mastodon/settings.js | 1 + app/javascript/mastodon/storage/db.js | 27 - app/javascript/mastodon/storage/modifier.js | 211 - app/javascript/mastodon/utils/filters.js | 16 + app/javascript/mastodon/utils/icons.js | 15 + app/javascript/mastodon/utils/resize_image.js | 2 +- app/javascript/packs/about.js | 26 - app/javascript/packs/admin.js | 107 + app/javascript/packs/application.js | 6 +- app/javascript/packs/mailer.js | 2 + app/javascript/packs/public.js | 55 +- app/javascript/styles/application.scss | 5 +- app/javascript/styles/contrast/diff.scss | 82 +- app/javascript/styles/contrast/variables.scss | 10 +- app/javascript/styles/custom.scss | 442 +- app/javascript/styles/fonts/montserrat.scss | 19 - app/javascript/styles/fonts/roboto-mono.scss | 5 +- app/javascript/styles/fonts/roboto.scss | 20 +- .../styles/mastodon-light/diff.scss | 239 +- .../styles/mastodon-light/variables.scss | 9 +- app/javascript/styles/mastodon/_mixins.scss | 1 + app/javascript/styles/mastodon/about.scss | 902 +-- app/javascript/styles/mastodon/accounts.scss | 15 +- app/javascript/styles/mastodon/admin.scss | 263 +- app/javascript/styles/mastodon/basics.scss | 18 +- app/javascript/styles/mastodon/branding.scss | 3 + .../styles/mastodon/compact_header.scss | 34 - .../styles/mastodon/components.scss | 1914 ++++-- .../styles/mastodon/containers.scss | 792 +-- app/javascript/styles/mastodon/dashboard.scss | 6 +- .../styles/mastodon/emoji_picker.scss | 12 +- app/javascript/styles/mastodon/footer.scss | 152 - app/javascript/styles/mastodon/forms.scss | 203 +- .../styles/mastodon/introduction.scss | 154 - app/javascript/styles/mastodon/polls.scss | 9 +- app/javascript/styles/mastodon/rtl.scss | 74 - app/javascript/styles/mastodon/statuses.scss | 9 +- app/javascript/styles/mastodon/tables.scss | 52 + app/javascript/styles/mastodon/variables.scss | 8 +- app/javascript/styles/mastodon/widgets.scss | 232 +- app/lib/activitypub/activity.rb | 10 +- app/lib/activitypub/activity/add.rb | 22 +- app/lib/activitypub/activity/remove.rb | 25 +- app/lib/activitypub/dereferencer.rb | 6 +- app/lib/activitypub/linked_data_signature.rb | 6 +- .../parser/media_attachment_parser.rb | 2 +- app/lib/activitypub/tag_manager.rb | 8 + app/lib/admin/system_check.rb | 6 +- app/lib/admin/system_check/base_check.rb | 10 + .../system_check/database_schema_check.rb | 4 + .../admin/system_check/elasticsearch_check.rb | 8 +- app/lib/admin/system_check/rules_check.rb | 4 + .../system_check/sidekiq_process_check.rb | 5 + app/lib/ascii_folding.rb | 10 + app/lib/emoji_formatter.rb | 68 +- app/lib/feed_manager.rb | 62 +- app/lib/hashtag_normalizer.rb | 25 + app/lib/importer/statuses_index_importer.rb | 2 +- app/lib/inline_renderer.rb | 11 + app/lib/permalink_redirector.rb | 40 +- app/lib/redis_configuration.rb | 6 +- app/lib/request.rb | 57 +- app/lib/status_cache_hydrator.rb | 64 + app/lib/status_reach_finder.rb | 2 +- app/lib/tag_manager.rb | 3 + app/lib/translation_service.rb | 27 + app/lib/translation_service/deepl.rb | 53 + .../translation_service/libre_translate.rb | 44 + app/lib/translation_service/translation.rb | 5 + app/lib/vacuum.rb | 3 + .../vacuum/access_tokens_vacuum.rb} | 15 +- app/lib/vacuum/backups_vacuum.rb | 25 + app/lib/vacuum/feeds_vacuum.rb | 34 + app/lib/vacuum/media_attachments_vacuum.rb | 40 + app/lib/vacuum/preview_cards_vacuum.rb | 30 + app/lib/vacuum/statuses_vacuum.rb | 54 + app/lib/vacuum/system_keys_vacuum.rb | 13 + app/lib/webfinger.rb | 2 +- app/mailers/admin_mailer.rb | 4 +- app/mailers/notification_mailer.rb | 18 - app/mailers/user_mailer.rb | 40 +- app/models/account.rb | 89 +- app/models/account/field.rb | 88 + app/models/account_alias.rb | 2 +- app/models/account_filter.rb | 37 +- app/models/account_migration.rb | 2 +- app/models/account_statuses_cleanup_policy.rb | 7 +- app/models/account_warning.rb | 4 + app/models/admin/account_action.rb | 9 +- app/models/admin/action_log.rb | 37 +- app/models/admin/action_log_filter.rb | 12 +- app/models/admin/appeal_filter.rb | 4 +- app/models/admin/status_batch_action.rb | 6 +- app/models/admin/status_filter.rb | 7 +- app/models/announcement.rb | 9 +- app/models/announcement_filter.rb | 2 +- app/models/appeal.rb | 8 + app/models/canonical_email_block.rb | 17 +- app/models/concerns/account_avatar.rb | 4 +- app/models/concerns/account_header.rb | 4 +- app/models/concerns/account_interactions.rb | 28 +- app/models/concerns/domain_normalizable.rb | 2 + .../concerns/status_threading_concern.rb | 21 +- app/models/concerns/user_roles.rb | 68 - app/models/content_retention_policy.rb | 25 + app/models/custom_emoji.rb | 15 +- app/models/custom_emoji_filter.rb | 2 +- app/models/custom_filter.rb | 111 +- app/models/custom_filter_keyword.rb | 34 + app/models/custom_filter_status.rb | 37 + app/models/domain_allow.rb | 5 + app/models/domain_block.rb | 9 +- app/models/email_domain_block.rb | 69 +- app/models/export.rb | 4 +- app/models/extended_description.rb | 15 + app/models/featured_tag.rb | 47 +- app/models/follow.rb | 4 +- app/models/follow_request.rb | 4 +- app/models/form/account_batch.rb | 15 +- app/models/form/admin_settings.rb | 79 +- app/models/form/redirect.rb | 2 +- app/models/form/status_filter_batch_action.rb | 34 + app/models/instance.rb | 2 + app/models/instance_filter.rb | 4 +- app/models/invite_filter.rb | 2 +- app/models/ip_block.rb | 7 + app/models/media_attachment.rb | 28 +- app/models/notification.rb | 5 +- app/models/preview_card.rb | 7 +- app/models/preview_card_provider.rb | 2 +- app/models/preview_card_trend.rb | 17 + app/models/privacy_policy.rb | 77 + app/models/public_feed.rb | 6 +- app/models/relationship_filter.rb | 12 +- app/models/report.rb | 13 + app/models/report_filter.rb | 4 +- app/models/rule.rb | 2 +- app/models/site_upload.rb | 27 +- app/models/status.rb | 26 +- app/models/status_edit.rb | 13 +- app/models/status_trend.rb | 21 + app/models/tag.rb | 30 +- app/models/tag_follow.rb | 24 + app/models/trends.rb | 8 +- app/models/trends/base.rb | 4 + app/models/trends/links.rb | 98 +- app/models/trends/preview_card_filter.rb | 27 +- .../trends/preview_card_provider_filter.rb | 4 +- app/models/trends/status_batch.rb | 4 +- app/models/trends/status_filter.rb | 27 +- app/models/trends/statuses.rb | 82 +- app/models/unavailable_domain.rb | 4 + app/models/user.rb | 70 +- app/models/user_role.rb | 190 + app/models/webhook.rb | 58 + .../account_moderation_note_policy.rb | 4 +- app/policies/account_policy.rb | 40 +- app/policies/account_warning_policy.rb | 2 +- app/policies/account_warning_preset_policy.rb | 8 +- app/policies/admin/status_policy.rb | 29 + app/policies/announcement_policy.rb | 8 +- app/policies/appeal_policy.rb | 8 +- app/policies/application_policy.rb | 6 +- app/policies/audit_log_policy.rb | 7 + app/policies/canonical_email_block_policy.rb | 23 + app/policies/custom_emoji_policy.rb | 14 +- app/policies/dashboard_policy.rb | 7 + app/policies/delivery_policy.rb | 6 +- app/policies/domain_allow_policy.rb | 12 +- app/policies/domain_block_policy.rb | 10 +- app/policies/email_domain_block_policy.rb | 6 +- app/policies/follow_recommendation_policy.rb | 6 +- app/policies/instance_policy.rb | 6 +- app/policies/invite_policy.rb | 12 +- app/policies/ip_block_policy.rb | 14 +- app/policies/preview_card_policy.rb | 4 +- app/policies/preview_card_provider_policy.rb | 4 +- app/policies/relay_policy.rb | 2 +- app/policies/report_note_policy.rb | 4 +- app/policies/report_policy.rb | 6 +- app/policies/rule_policy.rb | 8 +- app/policies/settings_policy.rb | 6 +- app/policies/status_policy.rb | 12 +- app/policies/tag_policy.rb | 8 +- app/policies/user_policy.rb | 38 +- app/policies/user_role_policy.rb | 19 + app/policies/webhook_policy.rb | 35 + app/presenters/filter_result_presenter.rb | 5 + app/presenters/initial_state_presenter.rb | 7 +- app/presenters/instance_presenter.rb | 70 +- .../status_relationships_presenter.rb | 19 +- app/presenters/tag_relationships_presenter.rb | 15 + app/presenters/webhooks/event_presenter.rb | 13 + app/serializers/activitypub/add_serializer.rb | 23 +- .../activitypub/hashtag_serializer.rb | 6 +- .../activitypub/public_key_serializer.rb | 2 +- .../activitypub/remove_serializer.rb | 23 +- app/serializers/initial_state_serializer.rb | 38 +- app/serializers/manifest_serializer.rb | 67 +- app/serializers/nodeinfo/serializer.rb | 6 +- app/serializers/rest/account_serializer.rb | 7 +- .../rest/admin/account_serializer.rb | 8 +- .../admin/canonical_email_block_serializer.rb | 9 + .../rest/admin/domain_allow_serializer.rb | 9 + .../rest/admin/domain_block_serializer.rb | 11 + .../admin/email_domain_block_serializer.rb | 9 + .../existing_domain_block_error_serializer.rb | 15 + .../rest/admin/ip_block_serializer.rb | 14 + .../rest/admin/report_serializer.rb | 3 +- .../rest/admin/webhook_event_serializer.rb | 26 + .../rest/credential_account_serializer.rb | 6 + .../rest/domain_block_serializer.rb | 17 + .../rest/extended_description_serializer.rb | 23 + .../rest/featured_tag_serializer.rb | 12 + .../rest/filter_keyword_serializer.rb | 9 + .../rest/filter_result_serializer.rb | 11 + app/serializers/rest/filter_serializer.rb | 9 +- .../rest/filter_status_serializer.rb | 13 + app/serializers/rest/instance_serializer.rb | 109 +- .../rest/notification_serializer.rb | 5 + .../rest/privacy_policy_serializer.rb | 19 + .../rest/relationship_serializer.rb | 7 +- app/serializers/rest/report_serializer.rb | 13 +- app/serializers/rest/role_serializer.rb | 13 + app/serializers/rest/status_serializer.rb | 9 + app/serializers/rest/tag_serializer.rb | 18 + .../rest/translation_serializer.rb | 9 + app/serializers/rest/v1/filter_serializer.rb | 26 + .../rest/v1/instance_serializer.rb | 106 + app/services/account_search_service.rb | 23 +- .../account_statuses_cleanup_service.rb | 2 +- .../fetch_featured_collection_service.rb | 30 +- .../fetch_featured_tags_collection_service.rb | 74 + .../fetch_remote_account_service.rb | 66 +- .../activitypub/fetch_remote_actor_service.rb | 80 + .../activitypub/fetch_remote_key_service.rb | 48 +- .../activitypub/process_account_service.rb | 13 +- .../activitypub/process_collection_service.rb | 11 +- app/services/app_sign_up_service.rb | 66 +- app/services/appeal_service.rb | 2 +- app/services/base_service.rb | 4 + app/services/bootstrap_timeline_service.rb | 2 +- app/services/clear_domain_media_service.rb | 32 +- app/services/create_featured_tag_service.rb | 25 + app/services/fan_out_on_write_service.rb | 28 +- app/services/fetch_resource_service.rb | 2 +- app/services/follow_service.rb | 13 +- app/services/import_service.rb | 9 +- app/services/keys/claim_service.rb | 2 +- app/services/notify_service.rb | 2 +- app/services/process_mentions_service.rb | 12 +- app/services/remove_featured_tag_service.rb | 18 + app/services/remove_status_service.rb | 10 +- app/services/report_service.rb | 19 +- app/services/resolve_account_service.rb | 15 +- app/services/resolve_url_service.rb | 8 +- app/services/translate_status_service.rb | 27 + app/services/update_account_service.rb | 2 +- app/services/webhook_service.rb | 22 + app/validators/existing_username_validator.rb | 6 +- app/validators/import_validator.rb | 2 + app/validators/language_validator.rb | 21 + app/validators/url_validator.rb | 2 +- app/views/about/_domain_blocks.html.haml | 12 - app/views/about/_logged_in.html.haml | 10 - app/views/about/_login.html.haml | 22 - app/views/about/_registration.html.haml | 37 - app/views/about/more.html.haml | 96 - app/views/about/show.html.haml | 79 +- app/views/about/terms.html.haml | 9 - app/views/accounts/_bio.html.haml | 21 - app/views/accounts/_header.html.haml | 43 - app/views/accounts/_moved.html.haml | 20 - app/views/accounts/show.html.haml | 77 +- app/views/accounts/show.rss.ruby | 4 +- app/views/admin/accounts/index.html.haml | 64 +- app/views/admin/accounts/show.html.haml | 9 +- app/views/admin/action_logs/index.html.haml | 2 +- app/views/admin/announcements/edit.html.haml | 9 +- app/views/admin/announcements/new.html.haml | 11 +- .../custom_emojis/_custom_emoji.html.haml | 2 +- app/views/admin/instances/show.html.haml | 53 +- .../reports/_media_attachments.html.haml | 8 + app/views/admin/reports/_status.html.haml | 11 +- app/views/admin/roles/_form.html.haml | 40 + app/views/admin/roles/_role.html.haml | 30 + app/views/admin/roles/edit.html.haml | 8 + app/views/admin/roles/index.html.haml | 17 + app/views/admin/roles/new.html.haml | 4 + app/views/admin/settings/about/show.html.haml | 33 + .../admin/settings/appearance/show.html.haml | 34 + .../admin/settings/branding/show.html.haml | 39 + .../settings/content_retention/show.html.haml | 22 + .../admin/settings/discovery/show.html.haml | 40 + app/views/admin/settings/edit.html.haml | 110 - .../settings/registrations/show.html.haml | 27 + .../admin/settings/shared/_links.html.haml | 8 + .../admin/status_edits/_status_edit.html.haml | 20 + app/views/admin/statuses/show.html.haml | 64 + app/views/admin/tags/show.html.haml | 93 +- .../trends/links/_preview_card.html.haml | 4 +- app/views/admin/trends/links/index.html.haml | 2 +- .../admin/trends/statuses/_status.html.haml | 4 +- .../admin/trends/statuses/index.html.haml | 2 +- app/views/admin/trends/tags/_tag.html.haml | 2 +- app/views/admin/users/roles/show.html.haml | 9 + app/views/admin/webhooks/_form.html.haml | 11 + app/views/admin/webhooks/_webhook.html.haml | 19 + app/views/admin/webhooks/edit.html.haml | 4 + app/views/admin/webhooks/index.html.haml | 18 + app/views/admin/webhooks/new.html.haml | 4 + app/views/admin/webhooks/show.html.haml | 34 + .../admin_mailer/_new_trending_links.text.erb | 8 +- .../_new_trending_statuses.text.erb | 8 +- .../admin_mailer/_new_trending_tags.text.erb | 4 +- app/views/application/_sidebar.html.haml | 6 +- app/views/auth/challenges/new.html.haml | 2 +- app/views/auth/passwords/edit.html.haml | 4 +- app/views/auth/registrations/edit.html.haml | 13 +- app/views/auth/registrations/new.html.haml | 29 +- app/views/auth/registrations/rules.html.haml | 21 + app/views/auth/sessions/new.html.haml | 2 +- .../_otp_authentication_form.html.haml | 2 +- .../_post_follow_actions.html.haml | 2 +- app/views/custom_css/show.css.erb | 12 + app/views/directories/index.html.haml | 54 - app/views/disputes/strikes/show.html.haml | 5 +- app/views/filters/_fields.html.haml | 16 - app/views/filters/_filter.html.haml | 41 + app/views/filters/_filter_fields.html.haml | 40 + app/views/filters/_keyword_fields.html.haml | 8 + app/views/filters/edit.html.haml | 2 +- app/views/filters/index.html.haml | 17 +- app/views/filters/new.html.haml | 4 +- .../filters/statuses/_status_filter.html.haml | 37 + app/views/filters/statuses/index.html.haml | 38 + app/views/follower_accounts/index.html.haml | 18 +- app/views/following_accounts/index.html.haml | 18 +- app/views/home/index.html.haml | 17 +- app/views/layouts/admin.html.haml | 23 +- app/views/layouts/application.html.haml | 27 +- app/views/layouts/auth.html.haml | 2 +- app/views/layouts/embedded.html.haml | 4 +- app/views/layouts/mailer.html.haml | 4 +- app/views/layouts/public.html.haml | 62 - .../notification_mailer/_status.html.haml | 2 +- .../notification_mailer/_status.text.erb | 2 +- .../notification_mailer/digest.html.haml | 44 - app/views/notification_mailer/digest.text.erb | 15 - .../notification_mailer/favourite.html.haml | 2 +- .../notification_mailer/follow.html.haml | 2 +- app/views/notification_mailer/follow.text.erb | 2 +- .../notification_mailer/mention.html.haml | 2 +- .../notification_mailer/reblog.html.haml | 2 +- app/views/privacy/show.html.haml | 7 + app/views/public_timelines/show.html.haml | 17 - app/views/remote_follow/new.html.haml | 20 - app/views/remote_interaction/new.html.haml | 24 - app/views/settings/deletes/show.html.haml | 4 +- .../settings/featured_tags/index.html.haml | 4 +- .../migration/redirects/new.html.haml | 2 +- app/views/settings/migrations/show.html.haml | 4 +- .../preferences/notifications/show.html.haml | 14 +- app/views/settings/profiles/show.html.haml | 7 +- app/views/shared/_og.html.haml | 6 +- app/views/shared/_web_app.html.haml | 17 + app/views/statuses/_detailed_status.html.haml | 10 +- app/views/statuses/_simple_status.html.haml | 8 +- app/views/statuses/show.html.haml | 9 +- app/views/tags/_og.html.haml | 6 - app/views/tags/show.html.haml | 15 +- app/views/tags/show.rss.ruby | 8 +- .../confirmation_instructions.html.haml | 2 +- .../confirmation_instructions.text.erb | 4 +- app/views/user_mailer/warning.html.haml | 2 +- app/views/user_mailer/welcome.html.haml | 47 +- app/views/user_mailer/welcome.text.erb | 13 - .../account_raw_distribution_worker.rb | 9 + app/workers/activitypub/delivery_worker.rb | 2 +- app/workers/activitypub/processing_worker.rb | 14 +- .../synchronize_featured_collection_worker.rb | 6 +- ...hronize_featured_tags_collection_worker.rb | 13 + .../activitypub/update_distribution_worker.rb | 2 + app/workers/admin/account_deletion_worker.rb | 2 +- app/workers/digest_mailer_worker.rb | 21 - app/workers/feed_insert_worker.rb | 8 +- app/workers/move_worker.rb | 8 +- app/workers/push_update_worker.rb | 11 +- app/workers/refollow_worker.rb | 7 +- app/workers/remove_featured_tag_worker.rb | 11 + .../scheduler/backup_cleanup_scheduler.rb | 17 - app/workers/scheduler/email_scheduler.rb | 25 - .../scheduler/feed_cleanup_scheduler.rb | 35 - app/workers/scheduler/indexing_scheduler.rb | 2 + app/workers/scheduler/ip_cleanup_scheduler.rb | 6 +- .../scheduler/media_cleanup_scheduler.rb | 17 - .../suspended_user_cleanup_scheduler.rb | 38 + .../scheduler/user_cleanup_scheduler.rb | 9 +- app/workers/scheduler/vacuum_scheduler.rb | 56 + app/workers/trigger_webhook_worker.rb | 12 + app/workers/unfollow_follow_worker.rb | 9 +- app/workers/verify_account_links_worker.rb | 5 +- app/workers/web/push_notification_worker.rb | 2 +- app/workers/webhooks/delivery_worker.rb | 37 + boxfile.yml | 205 - chart/.helmignore | 14 + chart/Chart.lock | 16 +- chart/Chart.yaml | 16 +- chart/README.md | 103 + chart/dev-values.yaml | 25 + chart/readme.md | 35 - chart/templates/_helpers.tpl | 59 + chart/templates/configmap-env.yaml | 18 +- chart/templates/cronjob-media-remove.yaml | 34 +- chart/templates/deployment-sidekiq.yaml | 73 +- chart/templates/deployment-streaming.yaml | 34 +- chart/templates/deployment-web.yaml | 61 +- chart/templates/hpa.yaml | 10 +- chart/templates/ingress.yaml | 11 +- chart/templates/job-assets-precompile.yaml | 30 +- chart/templates/job-chewy-upgrade.yaml | 32 +- chart/templates/job-create-admin.yaml | 20 +- chart/templates/job-db-migrate.yaml | 30 +- chart/templates/pvc-assets.yaml | 6 +- chart/templates/pvc-system.yaml | 6 +- chart/templates/secrets.yaml | 10 +- chart/templates/service-streaming.yaml | 1 + chart/templates/service-web.yaml | 1 + chart/values.yaml | 135 +- config/application.rb | 3 +- config/deploy.rb | 4 +- config/environments/production.rb | 19 +- config/i18n-tasks.yml | 3 +- .../initializers/content_security_policy.rb | 2 +- config/initializers/http_client_proxy.rb | 17 + config/initializers/inflections.rb | 2 + config/initializers/omniauth.rb | 6 +- config/initializers/paperclip.rb | 8 + config/initializers/rack_attack.rb | 49 +- config/initializers/sidekiq.rb | 1 + config/initializers/simple_form.rb | 5 +- config/locales/activerecord.af.yml | 23 + config/locales/activerecord.ar.yml | 23 + config/locales/activerecord.ast.yml | 24 + config/locales/activerecord.bg.yml | 31 +- config/locales/activerecord.ca.yml | 23 + config/locales/activerecord.ckb.yml | 18 + config/locales/activerecord.cs.yml | 23 + config/locales/activerecord.cy.yml | 29 +- config/locales/activerecord.da.yml | 25 +- config/locales/activerecord.de.yml | 27 +- config/locales/activerecord.el.yml | 10 + config/locales/activerecord.en-GB.yml | 55 + config/locales/activerecord.en.yml | 23 + config/locales/activerecord.eo.yml | 27 +- config/locales/activerecord.es-AR.yml | 23 + config/locales/activerecord.es-MX.yml | 27 +- config/locales/activerecord.es.yml | 23 + config/locales/activerecord.eu.yml | 23 + config/locales/activerecord.fa.yml | 23 + config/locales/activerecord.fi.yml | 23 + config/locales/activerecord.fr.yml | 25 +- config/locales/activerecord.fy.yml | 55 + config/locales/activerecord.ga.yml | 25 + config/locales/activerecord.gd.yml | 23 + config/locales/activerecord.gl.yml | 23 + config/locales/activerecord.he.yml | 25 +- config/locales/activerecord.hu.yml | 23 + config/locales/activerecord.id.yml | 23 + config/locales/activerecord.ig.yml | 1 + config/locales/activerecord.io.yml | 19 + config/locales/activerecord.is.yml | 23 + config/locales/activerecord.it.yml | 23 + config/locales/activerecord.ja.yml | 23 + config/locales/activerecord.ko.yml | 27 +- config/locales/activerecord.ku.yml | 23 + config/locales/activerecord.lv.yml | 25 +- config/locales/activerecord.my.yml | 1 + config/locales/activerecord.nl.yml | 23 + config/locales/activerecord.nn.yml | 39 +- config/locales/activerecord.no.yml | 39 +- config/locales/activerecord.oc.yml | 23 + config/locales/activerecord.pl.yml | 23 + config/locales/activerecord.pt-BR.yml | 23 + config/locales/activerecord.pt-PT.yml | 23 + config/locales/activerecord.ru.yml | 23 + config/locales/activerecord.sl.yml | 25 +- config/locales/activerecord.sq.yml | 23 + config/locales/activerecord.sv.yml | 23 + config/locales/activerecord.th.yml | 23 + config/locales/activerecord.tr.yml | 23 + config/locales/activerecord.uk.yml | 29 +- config/locales/activerecord.vi.yml | 25 +- config/locales/activerecord.zh-CN.yml | 27 +- config/locales/activerecord.zh-TW.yml | 27 +- config/locales/af.yml | 117 +- config/locales/ar.yml | 441 +- config/locales/ast.yml | 138 +- config/locales/bg.yml | 610 +- config/locales/bn.yml | 68 - config/locales/br.yml | 119 +- config/locales/ca.yml | 499 +- config/locales/ckb.yml | 309 +- config/locales/co.yml | 286 - config/locales/cs.yml | 557 +- config/locales/cy.yml | 296 +- config/locales/da.yml | 421 +- config/locales/de.yml | 903 ++- config/locales/devise.ast.yml | 23 +- config/locales/devise.bg.yml | 42 +- config/locales/devise.de.yml | 24 +- config/locales/devise.en-GB.yml | 115 + config/locales/devise.eo.yml | 24 +- config/locales/devise.fa.yml | 2 +- config/locales/devise.fi.yml | 4 +- config/locales/devise.fr.yml | 4 +- config/locales/devise.fy.yml | 26 + config/locales/devise.ga.yml | 8 + config/locales/devise.gd.yml | 4 +- config/locales/devise.gl.yml | 2 +- config/locales/devise.he.yml | 5 + config/locales/devise.hu.yml | 6 +- config/locales/devise.ig.yml | 1 + config/locales/devise.ko.yml | 10 +- config/locales/devise.ku.yml | 6 +- config/locales/devise.my.yml | 1 + config/locales/devise.nl.yml | 4 +- config/locales/devise.nn.yml | 52 +- config/locales/devise.no.yml | 66 +- config/locales/devise.pl.yml | 2 +- config/locales/devise.si.yml | 95 +- config/locales/devise.sl.yml | 52 +- config/locales/devise.sv.yml | 16 +- config/locales/devise.tr.yml | 10 +- config/locales/devise.uk.yml | 6 +- config/locales/devise.zh-CN.yml | 4 +- config/locales/devise.zh-TW.yml | 74 +- config/locales/doorkeeper.af.yml | 163 + config/locales/doorkeeper.ast.yml | 4 +- config/locales/doorkeeper.bg.yml | 57 +- config/locales/doorkeeper.ca.yml | 6 +- config/locales/doorkeeper.cy.yml | 7 + config/locales/doorkeeper.de.yml | 8 +- config/locales/doorkeeper.en-GB.yml | 184 + config/locales/doorkeeper.eo.yml | 14 +- config/locales/doorkeeper.fi.yml | 8 + config/locales/doorkeeper.fr.yml | 2 +- config/locales/doorkeeper.fy.yml | 185 + config/locales/doorkeeper.ga.yml | 41 + config/locales/doorkeeper.gd.yml | 4 +- config/locales/doorkeeper.he.yml | 10 +- config/locales/doorkeeper.hu.yml | 14 +- config/locales/doorkeeper.ig.yml | 1 + config/locales/doorkeeper.kab.yml | 13 + config/locales/doorkeeper.ko.yml | 6 +- config/locales/doorkeeper.ku.yml | 12 +- config/locales/doorkeeper.my.yml | 1 + config/locales/doorkeeper.nl.yml | 5 +- config/locales/doorkeeper.nn.yml | 115 +- config/locales/doorkeeper.no.yml | 99 +- config/locales/doorkeeper.oc.yml | 28 + config/locales/doorkeeper.pl.yml | 8 +- config/locales/doorkeeper.pt-BR.yml | 21 +- config/locales/doorkeeper.ru.yml | 8 +- config/locales/doorkeeper.si.yml | 135 +- config/locales/doorkeeper.sl.yml | 14 +- config/locales/doorkeeper.sv.yml | 93 +- config/locales/doorkeeper.th.yml | 9 + config/locales/doorkeeper.tr.yml | 2 +- config/locales/doorkeeper.uk.yml | 32 +- config/locales/doorkeeper.vi.yml | 6 +- config/locales/doorkeeper.zh-TW.yml | 26 +- config/locales/el.yml | 355 +- config/locales/en-GB.yml | 29 + config/locales/en.yml | 503 +- config/locales/eo.yml | 576 +- config/locales/es-AR.yml | 503 +- config/locales/es-MX.yml | 504 +- config/locales/es.yml | 499 +- config/locales/et.yml | 196 - config/locales/eu.yml | 648 +- config/locales/fa.yml | 386 +- config/locales/fi.yml | 508 +- config/locales/fr.yml | 504 +- config/locales/fy.yml | 153 + config/locales/ga.yml | 236 +- config/locales/gd.yml | 505 +- config/locales/gl.yml | 539 +- config/locales/he.yml | 655 +- config/locales/hi.yml | 12 - config/locales/hr.yml | 40 - config/locales/hu.yml | 543 +- config/locales/hy.yml | 223 - config/locales/id.yml | 514 +- config/locales/ig.yml | 12 + config/locales/io.yml | 476 +- config/locales/is.yml | 499 +- config/locales/it.yml | 504 +- config/locales/ja.yml | 498 +- config/locales/ka.yml | 205 - config/locales/kab.yml | 122 +- config/locales/kk.yml | 276 - config/locales/ko.yml | 606 +- config/locales/ku.yml | 530 +- config/locales/kw.yml | 5 - config/locales/lt.yml | 219 - config/locales/lv.yml | 578 +- config/locales/ml.yml | 38 - config/locales/ms.yml | 97 - config/locales/my.yml | 12 + config/locales/nl.yml | 900 ++- config/locales/nn.yml | 591 +- config/locales/no.yml | 484 +- config/locales/oc.yml | 370 +- config/locales/pl.yml | 658 +- config/locales/pt-BR.yml | 810 ++- config/locales/pt-PT.yml | 497 +- config/locales/ro.yml | 192 +- config/locales/ru.yml | 483 +- config/locales/sc.yml | 286 - config/locales/si.yml | 1258 +++- config/locales/simple_form.af.yml | 21 + config/locales/simple_form.ar.yml | 63 +- config/locales/simple_form.ast.yml | 33 +- config/locales/simple_form.bg.yml | 96 +- config/locales/simple_form.ca.yml | 83 +- config/locales/simple_form.ckb.yml | 2 - config/locales/simple_form.co.yml | 2 - config/locales/simple_form.cs.yml | 101 +- config/locales/simple_form.cy.yml | 13 +- config/locales/simple_form.da.yml | 81 +- config/locales/simple_form.de.yml | 193 +- config/locales/simple_form.el.yml | 14 +- config/locales/simple_form.en-GB.yml | 46 + config/locales/simple_form.en.yml | 81 +- config/locales/simple_form.eo.yml | 54 +- config/locales/simple_form.es-AR.yml | 81 +- config/locales/simple_form.es-MX.yml | 83 +- config/locales/simple_form.es.yml | 83 +- config/locales/simple_form.et.yml | 2 - config/locales/simple_form.eu.yml | 89 +- config/locales/simple_form.fa.yml | 2 - config/locales/simple_form.fi.yml | 88 +- config/locales/simple_form.fr.yml | 111 +- config/locales/simple_form.fy.yml | 6 + config/locales/simple_form.ga.yml | 55 + config/locales/simple_form.gd.yml | 109 +- config/locales/simple_form.gl.yml | 93 +- config/locales/simple_form.he.yml | 127 +- config/locales/simple_form.hu.yml | 91 +- config/locales/simple_form.hy.yml | 2 - config/locales/simple_form.id.yml | 99 +- config/locales/simple_form.ig.yml | 1 + config/locales/simple_form.io.yml | 81 +- config/locales/simple_form.is.yml | 85 +- config/locales/simple_form.it.yml | 83 +- config/locales/simple_form.ja.yml | 81 +- config/locales/simple_form.kab.yml | 4 +- config/locales/simple_form.ko.yml | 93 +- config/locales/simple_form.ku.yml | 75 +- config/locales/simple_form.lv.yml | 97 +- config/locales/simple_form.my.yml | 1 + config/locales/simple_form.nl.yml | 106 +- config/locales/simple_form.nn.yml | 131 +- config/locales/simple_form.no.yml | 9 +- config/locales/simple_form.oc.yml | 33 +- config/locales/simple_form.pl.yml | 101 +- config/locales/simple_form.pt-BR.yml | 78 +- config/locales/simple_form.pt-PT.yml | 81 +- config/locales/simple_form.ro.yml | 2 - config/locales/simple_form.ru.yml | 44 +- config/locales/simple_form.sc.yml | 2 - config/locales/simple_form.si.yml | 216 +- config/locales/simple_form.sk.yml | 8 +- config/locales/simple_form.sl.yml | 85 +- config/locales/simple_form.sq.yml | 81 +- config/locales/simple_form.sv.yml | 215 +- config/locales/simple_form.th.yml | 93 +- config/locales/simple_form.tr.yml | 113 +- config/locales/simple_form.uk.yml | 107 +- config/locales/simple_form.vi.yml | 113 +- config/locales/simple_form.zh-CN.yml | 85 +- config/locales/simple_form.zh-HK.yml | 2 - config/locales/simple_form.zh-TW.yml | 149 +- config/locales/sk.yml | 276 +- config/locales/sl.yml | 615 +- config/locales/sq.yml | 506 +- config/locales/sr-Latn.yml | 74 - config/locales/sr.yml | 154 - config/locales/sv.yml | 991 ++-- config/locales/ta.yml | 60 - config/locales/tai.yml | 5 - config/locales/te.yml | 33 - config/locales/th.yml | 465 +- config/locales/tr.yml | 521 +- config/locales/tt.yml | 23 - config/locales/uk.yml | 595 +- config/locales/vi.yml | 603 +- config/locales/zgh.yml | 22 - config/locales/zh-CN.yml | 498 +- config/locales/zh-HK.yml | 283 - config/locales/zh-TW.yml | 718 +-- config/navigation.rb | 80 +- config/roles.yml | 35 + config/routes.rb | 162 +- config/settings.yml | 2 +- config/sidekiq.yml | 29 +- config/webpack/production.js | 84 +- db/migrate/20170918125918_ids_to_bigints.rb | 2 +- db/migrate/20220606044941_create_webhooks.rb | 12 + .../20220611210335_create_user_roles.rb | 13 + .../20220611212541_add_role_id_to_users.rb | 8 + ...613110628_create_custom_filter_keywords.rb | 13 + .../20220613110711_migrate_custom_filters.rb | 34 + ...0613110834_add_action_to_custom_filters.rb | 20 + ...20220710102457_add_display_name_to_tags.rb | 5 + .../20220714171049_create_tag_follows.rb | 12 + ...808101323_create_custom_filter_statuses.rb | 12 + ...d_human_identifier_to_admin_action_logs.rb | 7 + .../20220824233535_create_status_trends.rb | 12 + ..._change_canonical_email_blocks_nullable.rb | 5 + ...20220829192633_add_languages_to_follows.rb | 5 + ...192658_add_languages_to_follow_requests.rb | 5 + ...221006061337_create_preview_card_trends.rb | 11 + ...1012181003_add_blurhash_to_site_uploads.rb | 5 + ..._featured_tags_on_account_id_and_tag_id.rb | 19 + ...0221025171544_add_index_ip_blocks_on_ip.rb | 17 + ...0221104133904_add_name_to_featured_tags.rb | 5 + ...23_remove_filtered_languages_from_users.rb | 11 + ...2_remove_whole_word_from_custom_filters.rb | 20 + ...remove_irreversible_from_custom_filters.rb | 20 + .../20220617202502_migrate_roles.rb | 27 + ...04024901_migrate_settings_to_user_roles.rb | 41 + ...71123_fix_custom_filter_keywords_id_seq.rb | 20 + ...recorded_changes_from_admin_action_logs.rb | 9 + ...221101190723_backfill_admin_action_logs.rb | 150 + db/schema.rb | 98 +- db/seeds.rb | 12 +- db/seeds/01_web_app.rb | 1 + db/seeds/02_instance_actor.rb | 1 + db/seeds/03_roles.rb | 9 + db/seeds/04_admin.rb | 8 + dist/local/nginx.conf | 159 + dist/nginx.conf | 91 +- docker-compose.local.yml | 157 + docker-compose.yml | 20 +- jsconfig.json | 22 + lib/assets/wordmark.dark.css | 1 + lib/assets/wordmark.dark.png | Bin 0 -> 6753 bytes lib/assets/wordmark.light.css | 1 + lib/assets/wordmark.light.png | Bin 0 -> 6613 bytes lib/exceptions.rb | 10 + lib/mastodon/accounts_cli.rb | 49 +- lib/mastodon/canonical_email_blocks_cli.rb | 31 +- lib/mastodon/maintenance_cli.rb | 28 +- lib/mastodon/media_cli.rb | 9 + lib/mastodon/search_cli.rb | 2 +- lib/mastodon/version.rb | 6 +- lib/paperclip/attachment_extensions.rb | 3 + lib/paperclip/blurhash_transcoder.rb | 2 +- lib/simple_navigation/item_extensions.rb | 15 + lib/tasks/branding.rake | 77 + lib/tasks/emojis.rake | 4 +- lib/tasks/mastodon.rake | 62 +- lib/tasks/tests.rake | 69 +- nanobox/nginx-local.conf | 92 - nanobox/nginx-stream.conf.erb | 66 - nanobox/nginx-web.conf.erb | 90 - package.json | 109 +- public/avatars/original/missing.png | Bin 3292 -> 2897 bytes public/badge.png | Bin 3342 -> 2998 bytes public/browserconfig.xml | 9 - public/emoji/1f1e7-1f1ea.svg | 2 +- public/emoji/1f1ee-1f1f3.svg | 2 +- public/emoji/1f3f3-fe0f-200d-1f308.svg | 2 +- public/emoji/1f50b.svg | 2 +- public/emoji/1f6dd.svg | 1 + public/emoji/1f6de.svg | 1 + public/emoji/1f6df.svg | 1 + public/emoji/1f7f0.svg | 1 + public/emoji/1f91d-1f3fb.svg | 1 + public/emoji/1f91d-1f3fc.svg | 1 + public/emoji/1f91d-1f3fd.svg | 1 + public/emoji/1f91d-1f3fe.svg | 1 + public/emoji/1f91d-1f3ff.svg | 1 + public/emoji/1f91d.svg | 2 +- public/emoji/1f921.svg | 2 +- public/emoji/1f979.svg | 1 + public/emoji/1f9cc.svg | 1 + public/emoji/1fa7b.svg | 1 + public/emoji/1fa7c.svg | 1 + public/emoji/1faa9.svg | 1 + public/emoji/1faaa.svg | 1 + public/emoji/1faab.svg | 1 + public/emoji/1faac.svg | 1 + public/emoji/1fab7.svg | 1 + public/emoji/1fab8.svg | 1 + public/emoji/1fab9.svg | 1 + public/emoji/1faba.svg | 1 + public/emoji/1fac3-1f3fb.svg | 1 + public/emoji/1fac3-1f3fc.svg | 1 + public/emoji/1fac3-1f3fd.svg | 1 + public/emoji/1fac3-1f3fe.svg | 1 + public/emoji/1fac3-1f3ff.svg | 1 + public/emoji/1fac3.svg | 1 + public/emoji/1fac4-1f3fb.svg | 1 + public/emoji/1fac4-1f3fc.svg | 1 + public/emoji/1fac4-1f3fd.svg | 1 + public/emoji/1fac4-1f3fe.svg | 1 + public/emoji/1fac4-1f3ff.svg | 1 + public/emoji/1fac4.svg | 1 + public/emoji/1fac5-1f3fb.svg | 1 + public/emoji/1fac5-1f3fc.svg | 1 + public/emoji/1fac5-1f3fd.svg | 1 + public/emoji/1fac5-1f3fe.svg | 1 + public/emoji/1fac5-1f3ff.svg | 1 + public/emoji/1fac5.svg | 1 + public/emoji/1fad7.svg | 1 + public/emoji/1fad8.svg | 1 + public/emoji/1fad9.svg | 1 + public/emoji/1fae0.svg | 1 + public/emoji/1fae1.svg | 1 + public/emoji/1fae2.svg | 1 + public/emoji/1fae3.svg | 1 + public/emoji/1fae4.svg | 1 + public/emoji/1fae5.svg | 1 + public/emoji/1fae6.svg | 1 + public/emoji/1fae7.svg | 1 + public/emoji/1faf0-1f3fb.svg | 1 + public/emoji/1faf0-1f3fc.svg | 1 + public/emoji/1faf0-1f3fd.svg | 1 + public/emoji/1faf0-1f3fe.svg | 1 + public/emoji/1faf0-1f3ff.svg | 1 + public/emoji/1faf0.svg | 1 + public/emoji/1faf1-1f3fb-200d-1faf2-1f3fc.svg | 1 + public/emoji/1faf1-1f3fb-200d-1faf2-1f3fd.svg | 1 + public/emoji/1faf1-1f3fb-200d-1faf2-1f3fe.svg | 1 + public/emoji/1faf1-1f3fb-200d-1faf2-1f3ff.svg | 1 + public/emoji/1faf1-1f3fb.svg | 1 + public/emoji/1faf1-1f3fc-200d-1faf2-1f3fb.svg | 1 + public/emoji/1faf1-1f3fc-200d-1faf2-1f3fd.svg | 1 + public/emoji/1faf1-1f3fc-200d-1faf2-1f3fe.svg | 1 + public/emoji/1faf1-1f3fc-200d-1faf2-1f3ff.svg | 1 + public/emoji/1faf1-1f3fc.svg | 1 + public/emoji/1faf1-1f3fd-200d-1faf2-1f3fb.svg | 1 + public/emoji/1faf1-1f3fd-200d-1faf2-1f3fc.svg | 1 + public/emoji/1faf1-1f3fd-200d-1faf2-1f3fe.svg | 1 + public/emoji/1faf1-1f3fd-200d-1faf2-1f3ff.svg | 1 + public/emoji/1faf1-1f3fd.svg | 1 + public/emoji/1faf1-1f3fe-200d-1faf2-1f3fb.svg | 1 + public/emoji/1faf1-1f3fe-200d-1faf2-1f3fc.svg | 1 + public/emoji/1faf1-1f3fe-200d-1faf2-1f3fd.svg | 1 + public/emoji/1faf1-1f3fe-200d-1faf2-1f3ff.svg | 1 + public/emoji/1faf1-1f3fe.svg | 1 + public/emoji/1faf1-1f3ff-200d-1faf2-1f3fb.svg | 1 + public/emoji/1faf1-1f3ff-200d-1faf2-1f3fc.svg | 1 + public/emoji/1faf1-1f3ff-200d-1faf2-1f3fd.svg | 1 + public/emoji/1faf1-1f3ff-200d-1faf2-1f3fe.svg | 1 + public/emoji/1faf1-1f3ff.svg | 1 + public/emoji/1faf1.svg | 1 + public/emoji/1faf2-1f3fb.svg | 1 + public/emoji/1faf2-1f3fc.svg | 1 + public/emoji/1faf2-1f3fd.svg | 1 + public/emoji/1faf2-1f3fe.svg | 1 + public/emoji/1faf2-1f3ff.svg | 1 + public/emoji/1faf2.svg | 1 + public/emoji/1faf3-1f3fb.svg | 1 + public/emoji/1faf3-1f3fc.svg | 1 + public/emoji/1faf3-1f3fd.svg | 1 + public/emoji/1faf3-1f3fe.svg | 1 + public/emoji/1faf3-1f3ff.svg | 1 + public/emoji/1faf3.svg | 1 + public/emoji/1faf4-1f3fb.svg | 1 + public/emoji/1faf4-1f3fc.svg | 1 + public/emoji/1faf4-1f3fd.svg | 1 + public/emoji/1faf4-1f3fe.svg | 1 + public/emoji/1faf4-1f3ff.svg | 1 + public/emoji/1faf4.svg | 1 + public/emoji/1faf5-1f3fb.svg | 1 + public/emoji/1faf5-1f3fc.svg | 1 + public/emoji/1faf5-1f3fd.svg | 1 + public/emoji/1faf5-1f3fe.svg | 1 + public/emoji/1faf5-1f3ff.svg | 1 + public/emoji/1faf5.svg | 1 + public/emoji/1faf6-1f3fb.svg | 1 + public/emoji/1faf6-1f3fc.svg | 1 + public/emoji/1faf6-1f3fd.svg | 1 + public/emoji/1faf6-1f3fe.svg | 1 + public/emoji/1faf6-1f3ff.svg | 1 + public/emoji/1faf6.svg | 1 + public/favicon-dev.ico | Bin 9086 -> 0 bytes public/headers/original/missing.png | Bin 81 -> 68 bytes public/mask-icon.svg | 1 - public/mstile-150x150.png | Bin 4523 -> 0 bytes public/oops.png | Bin 20552 -> 16948 bytes public/shortcuts/direct.png | Bin 3045 -> 0 bytes public/shortcuts/new-status.png | Bin 3031 -> 0 bytes public/shortcuts/notifications.png | Bin 3067 -> 0 bytes public/shortcuts/profile.png | Bin 4190 -> 0 bytes public/sw.js | 2 +- public/sw.js.map | 1 + public/web-push-icon_expand.png | Bin 1380 -> 1077 bytes public/web-push-icon_favourite.png | Bin 1046 -> 721 bytes public/web-push-icon_reblog.png | Bin 851 -> 590 bytes scalingo.json | 7 +- spec/config/initializers/rack_attack_spec.rb | 82 + spec/controllers/about_controller_spec.rb | 36 - .../account_follow_controller_spec.rb | 64 - .../account_unfollow_controller_spec.rb | 64 - spec/controllers/accounts_controller_spec.rb | 196 +- .../collections_controller_spec.rb | 2 +- ...lowers_synchronizations_controller_spec.rb | 2 +- .../activitypub/inboxes_controller_spec.rb | 2 +- .../activitypub/outboxes_controller_spec.rb | 2 +- .../activitypub/replies_controller_spec.rb | 2 +- ...ccount_moderation_notes_controller_spec.rb | 2 +- .../admin/accounts_controller_spec.rb | 52 +- .../admin/action_logs_controller_spec.rb | 15 +- .../controllers/admin/base_controller_spec.rb | 7 +- .../admin/change_email_controller_spec.rb | 2 +- .../admin/confirmations_controller_spec.rb | 2 +- .../admin/custom_emojis_controller_spec.rb | 2 +- .../admin/dashboard_controller_spec.rb | 2 +- .../admin/disputes/appeals_controller_spec.rb | 4 +- .../admin/domain_blocks_controller_spec.rb | 2 +- .../email_domain_blocks_controller_spec.rb | 2 +- .../admin/instances_controller_spec.rb | 8 +- .../admin/invites_controller_spec.rb | 2 +- .../admin/report_notes_controller_spec.rb | 2 +- .../admin/reports_controller_spec.rb | 2 +- .../admin/resets_controller_spec.rb | 2 +- .../admin/roles_controller_spec.rb | 244 +- .../settings/branding_controller_spec.rb | 53 + .../admin/settings_controller_spec.rb | 71 - .../admin/statuses_controller_spec.rb | 2 +- .../controllers/admin/tags_controller_spec.rb | 2 +- .../admin/users/roles_controller.rb | 81 + ..._factor_authentications_controller_spec.rb | 5 +- .../api/v1/accounts_controller_spec.rb | 11 + .../admin/account_actions_controller_spec.rb | 48 +- .../api/v1/admin/accounts_controller_spec.rb | 20 +- .../v1/admin/domain_allows_controller_spec.rb | 130 + .../v1/admin/domain_blocks_controller_spec.rb | 132 + .../api/v1/admin/reports_controller_spec.rb | 16 +- .../api/v1/filters_controller_spec.rb | 27 +- .../api/v1/followed_tags_controller_spec.rb | 23 + .../api/v1/reports_controller_spec.rb | 2 +- .../api/v1/statuses_controller_spec.rb | 79 + .../api/v1/tags_controller_spec.rb | 82 + .../api/v2/admin/accounts_controller_spec.rb | 6 +- .../v2/filters/keywords_controller_spec.rb | 142 + .../v2/filters/statuses_controller_spec.rb | 116 + .../api/v2/filters_controller_spec.rb | 121 + .../api/v2/search_controller_spec.rb | 62 +- .../application_controller_spec.rb | 64 - .../auth/sessions_controller_spec.rb | 26 + .../authorize_interactions_controller_spec.rb | 4 +- .../concerns/signature_verification_spec.rb | 45 + .../disputes/appeals_controller_spec.rb | 2 +- .../follower_accounts_controller_spec.rb | 21 - .../following_accounts_controller_spec.rb | 21 - spec/controllers/home_controller_spec.rb | 20 +- spec/controllers/invites_controller_spec.rb | 40 +- .../remote_follow_controller_spec.rb | 135 - .../remote_interaction_controller_spec.rb | 39 - .../settings/deletes_controller_spec.rb | 14 - .../following_accounts_controller_spec.rb | 2 +- .../preferences/other_controller_spec.rb | 2 +- spec/controllers/statuses_controller_spec.rb | 2 +- spec/controllers/tags_controller_spec.rb | 8 +- spec/fabricators/access_grant_fabricator.rb | 6 + spec/fabricators/account_fabricator.rb | 1 + spec/fabricators/assets/utah_teapot.png | Bin 248232 -> 195600 bytes .../custom_filter_keyword_fabricator.rb | 4 + .../custom_filter_status_fabricator.rb | 4 + spec/fabricators/login_activity_fabricator.rb | 10 +- spec/fabricators/preview_card_fabricator.rb | 1 + spec/fabricators/tag_follow_fabricator.rb | 4 + spec/fabricators/user_role_fabricator.rb | 5 + .../webauthn_credential_fabricator.rb | 2 +- spec/fabricators/webhook_fabricator.rb | 5 + spec/features/profile_spec.rb | 26 +- spec/fixtures/files/emojo.png | Bin 29814 -> 29283 bytes spec/fixtures/files/utf8-followers.txt | 1 + spec/helpers/admin/action_log_helper_spec.rb | 28 - spec/helpers/application_helper_spec.rb | 7 - spec/helpers/languages_helper_spec.rb | 2 +- .../lib/activitypub/activity/announce_spec.rb | 2 +- spec/lib/activitypub/activity/flag_spec.rb | 88 +- spec/lib/activitypub/dereferencer_spec.rb | 8 +- .../activitypub/linked_data_signature_spec.rb | 14 +- spec/lib/feed_manager_spec.rb | 38 +- spec/lib/hashtag_normalizer_spec.rb | 29 + spec/lib/permalink_redirector_spec.rb | 31 +- spec/lib/request_spec.rb | 2 +- spec/lib/status_cache_hydrator_spec.rb | 147 + spec/lib/vacuum/access_tokens_vacuum_spec.rb | 33 + spec/lib/vacuum/backups_vacuum_spec.rb | 24 + spec/lib/vacuum/feeds_vacuum_spec.rb | 30 + .../vacuum/media_attachments_vacuum_spec.rb | 47 + spec/lib/vacuum/preview_cards_vacuum_spec.rb | 32 + spec/lib/vacuum/statuses_vacuum_spec.rb | 36 + spec/lib/vacuum/system_keys_vacuum_spec.rb | 22 + spec/lib/webfinger_resource_spec.rb | 2 +- spec/mailers/notification_mailer_spec.rb | 31 - spec/mailers/previews/admin_mailer_preview.rb | 2 +- spec/models/account/field_spec.rb | 154 + spec/models/account_spec.rb | 22 +- spec/models/admin/account_action_spec.rb | 2 +- .../concerns/account_interactions_spec.rb | 2 +- spec/models/custom_emoji_filter_spec.rb | 4 +- spec/models/custom_filter_keyword_spec.rb | 4 + spec/models/email_domain_block_spec.rb | 27 +- spec/models/export_spec.rb | 4 +- spec/models/follow_request_spec.rb | 2 +- spec/models/media_attachment_spec.rb | 6 +- spec/models/preview_card_trend_spec.rb | 4 + spec/models/status_spec.rb | 16 - spec/models/status_trend_spec.rb | 4 + spec/models/tag_follow_spec.rb | 4 + spec/models/tag_spec.rb | 8 +- spec/models/trends/statuses_spec.rb | 14 +- spec/models/user_role_spec.rb | 189 + spec/models/user_spec.rb | 159 +- spec/models/webhook_spec.rb | 32 + .../account_moderation_note_policy_spec.rb | 4 +- spec/policies/account_policy_spec.rb | 8 +- spec/policies/custom_emoji_policy_spec.rb | 2 +- spec/policies/domain_block_policy_spec.rb | 2 +- .../email_domain_block_policy_spec.rb | 2 +- spec/policies/instance_policy_spec.rb | 2 +- spec/policies/invite_policy_spec.rb | 54 +- spec/policies/relay_policy_spec.rb | 2 +- spec/policies/report_note_policy_spec.rb | 5 +- spec/policies/report_policy_spec.rb | 2 +- spec/policies/settings_policy_spec.rb | 2 +- spec/policies/status_policy_spec.rb | 24 +- spec/policies/tag_policy_spec.rb | 2 +- spec/policies/user_policy_spec.rb | 55 +- spec/presenters/instance_presenter_spec.rb | 45 +- .../status_relationships_presenter_spec.rb | 125 + spec/requests/account_show_page_spec.rb | 15 - spec/requests/area_pages_spec.rb | 19 + spec/requests/localization_spec.rb | 12 +- spec/routing/accounts_routing_spec.rb | 88 +- spec/services/account_search_service_spec.rb | 1 - .../fetch_featured_collection_service_spec.rb | 2 +- ...h_featured_tags_collection_service_spec.rb | 95 + .../fetch_remote_account_service_spec.rb | 52 + .../fetch_remote_actor_service_spec.rb | 180 + .../fetch_remote_key_service_spec.rb | 83 + .../process_collection_service_spec.rb | 6 +- spec/services/app_sign_up_service_spec.rb | 2 +- spec/services/fetch_resource_service_spec.rb | 2 +- spec/services/follow_service_spec.rb | 13 + spec/services/import_service_spec.rb | 23 + .../services/process_mentions_service_spec.rb | 100 +- spec/services/report_service_spec.rb | 58 +- spec/services/resolve_account_service_spec.rb | 4 +- spec/validators/url_validator_spec.rb | 2 +- spec/views/about/show.html.haml_spec.rb | 43 - spec/views/statuses/show.html.haml_spec.rb | 49 +- spec/workers/digest_mailer_worker_spec.rb | 36 - spec/workers/move_worker_spec.rb | 15 + spec/workers/refollow_worker_spec.rb | 4 +- .../scheduler/feed_cleanup_scheduler_spec.rb | 26 - .../scheduler/media_cleanup_scheduler_spec.rb | 15 - streaming/index.js | 122 +- stylelint.config.js | 28 + yarn.lock | 5280 +++++++++-------- 1584 files changed, 60636 insertions(+), 38480 deletions(-) delete mode 100644 .env.nanobox create mode 100644 .github/stylelint-matcher.json create mode 100644 .github/workflows/linter.yml create mode 100644 .github/workflows/test-chart.yml create mode 100644 .ruby-gemset delete mode 100644 .sass-lint.yml create mode 100644 Dockerfile.local delete mode 100644 app/controllers/account_follow_controller.rb delete mode 100644 app/controllers/account_unfollow_controller.rb create mode 100644 app/controllers/admin/settings/about_controller.rb create mode 100644 app/controllers/admin/settings/appearance_controller.rb create mode 100644 app/controllers/admin/settings/branding_controller.rb create mode 100644 app/controllers/admin/settings/content_retention_controller.rb create mode 100644 app/controllers/admin/settings/discovery_controller.rb create mode 100644 app/controllers/admin/settings/registrations_controller.rb delete mode 100644 app/controllers/admin/subscriptions_controller.rb create mode 100644 app/controllers/admin/users/roles_controller.rb rename app/controllers/admin/{ => users}/two_factor_authentications_controller.rb (86%) create mode 100644 app/controllers/admin/webhooks/secrets_controller.rb create mode 100644 app/controllers/admin/webhooks_controller.rb create mode 100644 app/controllers/api/v1/admin/canonical_email_blocks_controller.rb create mode 100644 app/controllers/api/v1/admin/domain_allows_controller.rb create mode 100644 app/controllers/api/v1/admin/domain_blocks_controller.rb create mode 100644 app/controllers/api/v1/admin/email_domain_blocks_controller.rb create mode 100644 app/controllers/api/v1/admin/ip_blocks_controller.rb create mode 100644 app/controllers/api/v1/followed_tags_controller.rb create mode 100644 app/controllers/api/v1/instances/domain_blocks_controller.rb create mode 100644 app/controllers/api/v1/instances/extended_descriptions_controller.rb create mode 100644 app/controllers/api/v1/instances/privacy_policies_controller.rb create mode 100644 app/controllers/api/v1/statuses/translations_controller.rb create mode 100644 app/controllers/api/v1/tags_controller.rb create mode 100644 app/controllers/api/v2/filters/keywords_controller.rb create mode 100644 app/controllers/api/v2/filters/statuses_controller.rb create mode 100644 app/controllers/api/v2/filters_controller.rb create mode 100644 app/controllers/api/v2/instances_controller.rb delete mode 100644 app/controllers/concerns/status_controller_concern.rb create mode 100644 app/controllers/concerns/web_app_controller_concern.rb delete mode 100644 app/controllers/directories_controller.rb create mode 100644 app/controllers/filters/statuses_controller.rb create mode 100644 app/controllers/privacy_controller.rb delete mode 100644 app/controllers/public_timelines_controller.rb delete mode 100644 app/controllers/remote_follow_controller.rb delete mode 100644 app/controllers/remote_interaction_controller.rb create mode 100644 app/helpers/branding_helper.rb delete mode 100644 app/javascript/fonts/montserrat/Montserrat-Medium.ttf delete mode 100644 app/javascript/fonts/montserrat/Montserrat-Regular.ttf delete mode 100644 app/javascript/fonts/montserrat/Montserrat-Regular.woff delete mode 100644 app/javascript/fonts/montserrat/Montserrat-Regular.woff2 create mode 100644 app/javascript/icons/android-chrome-144x144.png create mode 100644 app/javascript/icons/android-chrome-192x192.png create mode 100644 app/javascript/icons/android-chrome-256x256.png create mode 100644 app/javascript/icons/android-chrome-36x36.png create mode 100644 app/javascript/icons/android-chrome-384x384.png create mode 100644 app/javascript/icons/android-chrome-48x48.png create mode 100644 app/javascript/icons/android-chrome-512x512.png create mode 100644 app/javascript/icons/android-chrome-72x72.png create mode 100644 app/javascript/icons/android-chrome-96x96.png create mode 100644 app/javascript/icons/apple-touch-icon-1024x1024.png create mode 100644 app/javascript/icons/apple-touch-icon-114x114.png create mode 100644 app/javascript/icons/apple-touch-icon-120x120.png create mode 100644 app/javascript/icons/apple-touch-icon-144x144.png create mode 100644 app/javascript/icons/apple-touch-icon-152x152.png create mode 100644 app/javascript/icons/apple-touch-icon-167x167.png create mode 100644 app/javascript/icons/apple-touch-icon-180x180.png create mode 100644 app/javascript/icons/apple-touch-icon-57x57.png create mode 100644 app/javascript/icons/apple-touch-icon-60x60.png create mode 100644 app/javascript/icons/apple-touch-icon-72x72.png create mode 100644 app/javascript/icons/apple-touch-icon-76x76.png create mode 100644 app/javascript/icons/favicon-16x16.png create mode 100644 app/javascript/icons/favicon-32x32.png create mode 100644 app/javascript/icons/favicon-48x48.png create mode 100644 app/javascript/images/app-icon.svg delete mode 100644 app/javascript/images/elephant-fren.png delete mode 100644 app/javascript/images/icon_cached.svg delete mode 100644 app/javascript/images/icon_done.svg delete mode 100644 app/javascript/images/icon_email.svg delete mode 100644 app/javascript/images/icon_file_download.svg delete mode 100644 app/javascript/images/icon_flag.svg delete mode 100644 app/javascript/images/icon_grade.svg delete mode 100644 app/javascript/images/icon_lock_open.svg delete mode 100644 app/javascript/images/icon_person_add.svg delete mode 100644 app/javascript/images/icon_reply.svg create mode 100644 app/javascript/images/icons/icon_cached.svg create mode 100644 app/javascript/images/icons/icon_done.svg create mode 100644 app/javascript/images/icons/icon_email.svg create mode 100644 app/javascript/images/icons/icon_file_download.svg create mode 100644 app/javascript/images/icons/icon_flag.svg create mode 100644 app/javascript/images/icons/icon_grade.svg create mode 100644 app/javascript/images/icons/icon_lock_open.svg create mode 100644 app/javascript/images/icons/icon_person_add.svg create mode 100644 app/javascript/images/icons/icon_reply.svg create mode 100644 app/javascript/images/logo-symbol-icon.svg create mode 100644 app/javascript/images/logo-symbol-wordmark.svg delete mode 100644 app/javascript/images/logo_alt.svg delete mode 100644 app/javascript/images/logo_transparent_black.svg delete mode 100644 app/javascript/images/logo_transparent_white.svg create mode 100644 app/javascript/images/mailer/icon_flag.png delete mode 100644 app/javascript/images/mailer/icon_warning.png create mode 100644 app/javascript/images/mailer/logo.png delete mode 100644 app/javascript/images/mailer/logo_full.png delete mode 100644 app/javascript/images/mailer/logo_transparent.png create mode 100644 app/javascript/images/mailer/wordmark.png delete mode 100644 app/javascript/images/preview.jpg create mode 100644 app/javascript/images/preview.png delete mode 100644 app/javascript/images/proof_providers/keybase.png delete mode 100644 app/javascript/images/screen_federation.svg delete mode 100644 app/javascript/images/screen_hello.svg delete mode 100644 app/javascript/images/screen_interactions.svg create mode 100644 app/javascript/mastodon/actions/featured_tags.js delete mode 100644 app/javascript/mastodon/actions/rules.js create mode 100644 app/javascript/mastodon/actions/server.js create mode 100644 app/javascript/mastodon/actions/tags.js create mode 100644 app/javascript/mastodon/components/dismissable_banner.js create mode 100644 app/javascript/mastodon/components/image.js create mode 100644 app/javascript/mastodon/components/navigation_portal.js create mode 100644 app/javascript/mastodon/components/not_signed_in_indicator.js delete mode 100644 app/javascript/mastodon/components/permalink.js create mode 100644 app/javascript/mastodon/components/server_banner.js delete mode 100644 app/javascript/mastodon/components/setting_text.js delete mode 100644 app/javascript/mastodon/containers/timeline_container.js create mode 100644 app/javascript/mastodon/features/about/index.js create mode 100644 app/javascript/mastodon/features/account/components/featured_tags.js create mode 100644 app/javascript/mastodon/features/account/containers/featured_tags_container.js create mode 100644 app/javascript/mastodon/features/account/navigation.js create mode 100644 app/javascript/mastodon/features/closed_registrations_modal/index.js create mode 100644 app/javascript/mastodon/features/filters/added_to_filter.js create mode 100644 app/javascript/mastodon/features/filters/select_filter.js create mode 100644 app/javascript/mastodon/features/interaction_modal/index.js delete mode 100644 app/javascript/mastodon/features/introduction/index.js create mode 100644 app/javascript/mastodon/features/notifications/components/report.js create mode 100644 app/javascript/mastodon/features/privacy_policy/index.js delete mode 100644 app/javascript/mastodon/features/standalone/hashtag_timeline/index.js delete mode 100644 app/javascript/mastodon/features/standalone/public_timeline/index.js create mode 100644 app/javascript/mastodon/features/subscribed_languages_modal/index.js create mode 100644 app/javascript/mastodon/features/ui/components/disabled_account_banner.js delete mode 100644 app/javascript/mastodon/features/ui/components/document_title.js create mode 100644 app/javascript/mastodon/features/ui/components/filter_modal.js rename app/javascript/mastodon/features/ui/components/{follow_requests_nav_link.js => follow_requests_column_link.js} (52%) create mode 100644 app/javascript/mastodon/features/ui/components/header.js create mode 100644 app/javascript/mastodon/features/ui/components/image_modal.js create mode 100644 app/javascript/mastodon/features/ui/components/sign_in_banner.js delete mode 100644 app/javascript/mastodon/features/ui/components/tabs_bar.js create mode 100644 app/javascript/mastodon/locales/fy.json create mode 100644 app/javascript/mastodon/locales/ig.json create mode 100644 app/javascript/mastodon/locales/my.json create mode 100644 app/javascript/mastodon/locales/whitelist_fy.json create mode 100644 app/javascript/mastodon/locales/whitelist_ig.json create mode 100644 app/javascript/mastodon/locales/whitelist_my.json create mode 100644 app/javascript/mastodon/permissions.js delete mode 100644 app/javascript/mastodon/reducers/rules.js create mode 100644 app/javascript/mastodon/reducers/server.js create mode 100644 app/javascript/mastodon/reducers/tags.js delete mode 100644 app/javascript/mastodon/storage/db.js delete mode 100644 app/javascript/mastodon/storage/modifier.js create mode 100644 app/javascript/mastodon/utils/filters.js create mode 100644 app/javascript/mastodon/utils/icons.js delete mode 100644 app/javascript/packs/about.js delete mode 100644 app/javascript/styles/fonts/montserrat.scss create mode 100644 app/javascript/styles/mastodon/branding.scss delete mode 100644 app/javascript/styles/mastodon/compact_header.scss delete mode 100644 app/javascript/styles/mastodon/footer.scss delete mode 100644 app/javascript/styles/mastodon/introduction.scss create mode 100644 app/lib/ascii_folding.rb create mode 100644 app/lib/hashtag_normalizer.rb create mode 100644 app/lib/status_cache_hydrator.rb create mode 100644 app/lib/translation_service.rb create mode 100644 app/lib/translation_service/deepl.rb create mode 100644 app/lib/translation_service/libre_translate.rb create mode 100644 app/lib/translation_service/translation.rb create mode 100644 app/lib/vacuum.rb rename app/{workers/scheduler/doorkeeper_cleanup_scheduler.rb => lib/vacuum/access_tokens_vacuum.rb} (56%) create mode 100644 app/lib/vacuum/backups_vacuum.rb create mode 100644 app/lib/vacuum/feeds_vacuum.rb create mode 100644 app/lib/vacuum/media_attachments_vacuum.rb create mode 100644 app/lib/vacuum/preview_cards_vacuum.rb create mode 100644 app/lib/vacuum/statuses_vacuum.rb create mode 100644 app/lib/vacuum/system_keys_vacuum.rb create mode 100644 app/models/account/field.rb delete mode 100644 app/models/concerns/user_roles.rb create mode 100644 app/models/content_retention_policy.rb create mode 100644 app/models/custom_filter_keyword.rb create mode 100644 app/models/custom_filter_status.rb create mode 100644 app/models/extended_description.rb create mode 100644 app/models/form/status_filter_batch_action.rb create mode 100644 app/models/preview_card_trend.rb create mode 100644 app/models/privacy_policy.rb create mode 100644 app/models/status_trend.rb create mode 100644 app/models/tag_follow.rb create mode 100644 app/models/user_role.rb create mode 100644 app/models/webhook.rb create mode 100644 app/policies/admin/status_policy.rb create mode 100644 app/policies/audit_log_policy.rb create mode 100644 app/policies/canonical_email_block_policy.rb create mode 100644 app/policies/dashboard_policy.rb create mode 100644 app/policies/user_role_policy.rb create mode 100644 app/policies/webhook_policy.rb create mode 100644 app/presenters/filter_result_presenter.rb create mode 100644 app/presenters/tag_relationships_presenter.rb create mode 100644 app/presenters/webhooks/event_presenter.rb create mode 100644 app/serializers/rest/admin/canonical_email_block_serializer.rb create mode 100644 app/serializers/rest/admin/domain_allow_serializer.rb create mode 100644 app/serializers/rest/admin/domain_block_serializer.rb create mode 100644 app/serializers/rest/admin/email_domain_block_serializer.rb create mode 100644 app/serializers/rest/admin/existing_domain_block_error_serializer.rb create mode 100644 app/serializers/rest/admin/ip_block_serializer.rb create mode 100644 app/serializers/rest/admin/webhook_event_serializer.rb create mode 100644 app/serializers/rest/domain_block_serializer.rb create mode 100644 app/serializers/rest/extended_description_serializer.rb create mode 100644 app/serializers/rest/filter_keyword_serializer.rb create mode 100644 app/serializers/rest/filter_result_serializer.rb create mode 100644 app/serializers/rest/filter_status_serializer.rb create mode 100644 app/serializers/rest/privacy_policy_serializer.rb create mode 100644 app/serializers/rest/role_serializer.rb create mode 100644 app/serializers/rest/translation_serializer.rb create mode 100644 app/serializers/rest/v1/filter_serializer.rb create mode 100644 app/serializers/rest/v1/instance_serializer.rb create mode 100644 app/services/activitypub/fetch_featured_tags_collection_service.rb create mode 100644 app/services/activitypub/fetch_remote_actor_service.rb create mode 100644 app/services/create_featured_tag_service.rb create mode 100644 app/services/remove_featured_tag_service.rb create mode 100644 app/services/translate_status_service.rb create mode 100644 app/services/webhook_service.rb create mode 100644 app/validators/language_validator.rb delete mode 100644 app/views/about/_domain_blocks.html.haml delete mode 100644 app/views/about/_logged_in.html.haml delete mode 100644 app/views/about/_login.html.haml delete mode 100644 app/views/about/_registration.html.haml delete mode 100644 app/views/about/more.html.haml delete mode 100644 app/views/about/terms.html.haml delete mode 100644 app/views/accounts/_bio.html.haml delete mode 100644 app/views/accounts/_header.html.haml delete mode 100644 app/views/accounts/_moved.html.haml create mode 100644 app/views/admin/reports/_media_attachments.html.haml create mode 100644 app/views/admin/roles/_form.html.haml create mode 100644 app/views/admin/roles/_role.html.haml create mode 100644 app/views/admin/roles/edit.html.haml create mode 100644 app/views/admin/roles/index.html.haml create mode 100644 app/views/admin/roles/new.html.haml create mode 100644 app/views/admin/settings/about/show.html.haml create mode 100644 app/views/admin/settings/appearance/show.html.haml create mode 100644 app/views/admin/settings/branding/show.html.haml create mode 100644 app/views/admin/settings/content_retention/show.html.haml create mode 100644 app/views/admin/settings/discovery/show.html.haml delete mode 100644 app/views/admin/settings/edit.html.haml create mode 100644 app/views/admin/settings/registrations/show.html.haml create mode 100644 app/views/admin/settings/shared/_links.html.haml create mode 100644 app/views/admin/status_edits/_status_edit.html.haml create mode 100644 app/views/admin/statuses/show.html.haml create mode 100644 app/views/admin/users/roles/show.html.haml create mode 100644 app/views/admin/webhooks/_form.html.haml create mode 100644 app/views/admin/webhooks/_webhook.html.haml create mode 100644 app/views/admin/webhooks/edit.html.haml create mode 100644 app/views/admin/webhooks/index.html.haml create mode 100644 app/views/admin/webhooks/new.html.haml create mode 100644 app/views/admin/webhooks/show.html.haml create mode 100644 app/views/auth/registrations/rules.html.haml create mode 100644 app/views/custom_css/show.css.erb delete mode 100644 app/views/directories/index.html.haml delete mode 100644 app/views/filters/_fields.html.haml create mode 100644 app/views/filters/_filter.html.haml create mode 100644 app/views/filters/_filter_fields.html.haml create mode 100644 app/views/filters/_keyword_fields.html.haml create mode 100644 app/views/filters/statuses/_status_filter.html.haml create mode 100644 app/views/filters/statuses/index.html.haml delete mode 100644 app/views/layouts/public.html.haml delete mode 100644 app/views/notification_mailer/digest.html.haml delete mode 100644 app/views/notification_mailer/digest.text.erb create mode 100644 app/views/privacy/show.html.haml delete mode 100644 app/views/public_timelines/show.html.haml delete mode 100644 app/views/remote_follow/new.html.haml delete mode 100644 app/views/remote_interaction/new.html.haml create mode 100644 app/views/shared/_web_app.html.haml delete mode 100644 app/views/tags/_og.html.haml create mode 100644 app/workers/activitypub/account_raw_distribution_worker.rb create mode 100644 app/workers/activitypub/synchronize_featured_tags_collection_worker.rb delete mode 100644 app/workers/digest_mailer_worker.rb create mode 100644 app/workers/remove_featured_tag_worker.rb delete mode 100644 app/workers/scheduler/backup_cleanup_scheduler.rb delete mode 100644 app/workers/scheduler/email_scheduler.rb delete mode 100644 app/workers/scheduler/feed_cleanup_scheduler.rb delete mode 100644 app/workers/scheduler/media_cleanup_scheduler.rb create mode 100644 app/workers/scheduler/suspended_user_cleanup_scheduler.rb create mode 100644 app/workers/scheduler/vacuum_scheduler.rb create mode 100644 app/workers/trigger_webhook_worker.rb create mode 100644 app/workers/webhooks/delivery_worker.rb delete mode 100644 boxfile.yml create mode 100644 chart/README.md create mode 100644 chart/dev-values.yaml delete mode 100644 chart/readme.md create mode 100644 config/locales/activerecord.en-GB.yml create mode 100644 config/locales/activerecord.fy.yml create mode 100644 config/locales/activerecord.ig.yml create mode 100644 config/locales/activerecord.my.yml create mode 100644 config/locales/devise.en-GB.yml create mode 100644 config/locales/devise.fy.yml create mode 100644 config/locales/devise.ig.yml create mode 100644 config/locales/devise.my.yml create mode 100644 config/locales/doorkeeper.fy.yml create mode 100644 config/locales/doorkeeper.ig.yml create mode 100644 config/locales/doorkeeper.my.yml create mode 100644 config/locales/fy.yml create mode 100644 config/locales/ig.yml create mode 100644 config/locales/my.yml create mode 100644 config/locales/simple_form.en-GB.yml create mode 100644 config/locales/simple_form.fy.yml create mode 100644 config/locales/simple_form.ig.yml create mode 100644 config/locales/simple_form.my.yml create mode 100644 config/roles.yml create mode 100644 db/migrate/20220606044941_create_webhooks.rb create mode 100644 db/migrate/20220611210335_create_user_roles.rb create mode 100644 db/migrate/20220611212541_add_role_id_to_users.rb create mode 100644 db/migrate/20220613110628_create_custom_filter_keywords.rb create mode 100644 db/migrate/20220613110711_migrate_custom_filters.rb create mode 100644 db/migrate/20220613110834_add_action_to_custom_filters.rb create mode 100644 db/migrate/20220710102457_add_display_name_to_tags.rb create mode 100644 db/migrate/20220714171049_create_tag_follows.rb create mode 100644 db/migrate/20220808101323_create_custom_filter_statuses.rb create mode 100644 db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb create mode 100644 db/migrate/20220824233535_create_status_trends.rb create mode 100644 db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb create mode 100644 db/migrate/20220829192633_add_languages_to_follows.rb create mode 100644 db/migrate/20220829192658_add_languages_to_follow_requests.rb create mode 100644 db/migrate/20221006061337_create_preview_card_trends.rb create mode 100644 db/migrate/20221012181003_add_blurhash_to_site_uploads.rb create mode 100644 db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb create mode 100644 db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb create mode 100644 db/migrate/20221104133904_add_name_to_featured_tags.rb create mode 100644 db/post_migrate/20220527114923_remove_filtered_languages_from_users.rb create mode 100644 db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb create mode 100644 db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb create mode 100644 db/post_migrate/20220617202502_migrate_roles.rb create mode 100644 db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb create mode 100644 db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb create mode 100644 db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb create mode 100644 db/post_migrate/20221101190723_backfill_admin_action_logs.rb create mode 100644 db/seeds/01_web_app.rb create mode 100644 db/seeds/02_instance_actor.rb create mode 100644 db/seeds/03_roles.rb create mode 100644 db/seeds/04_admin.rb create mode 100644 dist/local/nginx.conf create mode 100644 docker-compose.local.yml create mode 100644 jsconfig.json create mode 100644 lib/assets/wordmark.dark.css create mode 100644 lib/assets/wordmark.dark.png create mode 100644 lib/assets/wordmark.light.css create mode 100644 lib/assets/wordmark.light.png create mode 100644 lib/simple_navigation/item_extensions.rb create mode 100644 lib/tasks/branding.rake delete mode 100644 nanobox/nginx-local.conf delete mode 100644 nanobox/nginx-stream.conf.erb delete mode 100644 nanobox/nginx-web.conf.erb delete mode 100644 public/browserconfig.xml create mode 100755 public/emoji/1f6dd.svg create mode 100755 public/emoji/1f6de.svg create mode 100755 public/emoji/1f6df.svg create mode 100755 public/emoji/1f7f0.svg create mode 100755 public/emoji/1f91d-1f3fb.svg create mode 100755 public/emoji/1f91d-1f3fc.svg create mode 100755 public/emoji/1f91d-1f3fd.svg create mode 100755 public/emoji/1f91d-1f3fe.svg create mode 100755 public/emoji/1f91d-1f3ff.svg create mode 100755 public/emoji/1f979.svg create mode 100755 public/emoji/1f9cc.svg create mode 100755 public/emoji/1fa7b.svg create mode 100755 public/emoji/1fa7c.svg create mode 100755 public/emoji/1faa9.svg create mode 100755 public/emoji/1faaa.svg create mode 100755 public/emoji/1faab.svg create mode 100755 public/emoji/1faac.svg create mode 100755 public/emoji/1fab7.svg create mode 100755 public/emoji/1fab8.svg create mode 100755 public/emoji/1fab9.svg create mode 100755 public/emoji/1faba.svg create mode 100755 public/emoji/1fac3-1f3fb.svg create mode 100755 public/emoji/1fac3-1f3fc.svg create mode 100755 public/emoji/1fac3-1f3fd.svg create mode 100755 public/emoji/1fac3-1f3fe.svg create mode 100755 public/emoji/1fac3-1f3ff.svg create mode 100755 public/emoji/1fac3.svg create mode 100755 public/emoji/1fac4-1f3fb.svg create mode 100755 public/emoji/1fac4-1f3fc.svg create mode 100755 public/emoji/1fac4-1f3fd.svg create mode 100755 public/emoji/1fac4-1f3fe.svg create mode 100755 public/emoji/1fac4-1f3ff.svg create mode 100755 public/emoji/1fac4.svg create mode 100755 public/emoji/1fac5-1f3fb.svg create mode 100755 public/emoji/1fac5-1f3fc.svg create mode 100755 public/emoji/1fac5-1f3fd.svg create mode 100755 public/emoji/1fac5-1f3fe.svg create mode 100755 public/emoji/1fac5-1f3ff.svg create mode 100755 public/emoji/1fac5.svg create mode 100755 public/emoji/1fad7.svg create mode 100755 public/emoji/1fad8.svg create mode 100755 public/emoji/1fad9.svg create mode 100755 public/emoji/1fae0.svg create mode 100755 public/emoji/1fae1.svg create mode 100755 public/emoji/1fae2.svg create mode 100755 public/emoji/1fae3.svg create mode 100755 public/emoji/1fae4.svg create mode 100755 public/emoji/1fae5.svg create mode 100755 public/emoji/1fae6.svg create mode 100755 public/emoji/1fae7.svg create mode 100755 public/emoji/1faf0-1f3fb.svg create mode 100755 public/emoji/1faf0-1f3fc.svg create mode 100755 public/emoji/1faf0-1f3fd.svg create mode 100755 public/emoji/1faf0-1f3fe.svg create mode 100755 public/emoji/1faf0-1f3ff.svg create mode 100755 public/emoji/1faf0.svg create mode 100755 public/emoji/1faf1-1f3fb-200d-1faf2-1f3fc.svg create mode 100755 public/emoji/1faf1-1f3fb-200d-1faf2-1f3fd.svg create mode 100755 public/emoji/1faf1-1f3fb-200d-1faf2-1f3fe.svg create mode 100755 public/emoji/1faf1-1f3fb-200d-1faf2-1f3ff.svg create mode 100755 public/emoji/1faf1-1f3fb.svg create mode 100755 public/emoji/1faf1-1f3fc-200d-1faf2-1f3fb.svg create mode 100755 public/emoji/1faf1-1f3fc-200d-1faf2-1f3fd.svg create mode 100755 public/emoji/1faf1-1f3fc-200d-1faf2-1f3fe.svg create mode 100755 public/emoji/1faf1-1f3fc-200d-1faf2-1f3ff.svg create mode 100755 public/emoji/1faf1-1f3fc.svg create mode 100755 public/emoji/1faf1-1f3fd-200d-1faf2-1f3fb.svg create mode 100755 public/emoji/1faf1-1f3fd-200d-1faf2-1f3fc.svg create mode 100755 public/emoji/1faf1-1f3fd-200d-1faf2-1f3fe.svg create mode 100755 public/emoji/1faf1-1f3fd-200d-1faf2-1f3ff.svg create mode 100755 public/emoji/1faf1-1f3fd.svg create mode 100755 public/emoji/1faf1-1f3fe-200d-1faf2-1f3fb.svg create mode 100755 public/emoji/1faf1-1f3fe-200d-1faf2-1f3fc.svg create mode 100755 public/emoji/1faf1-1f3fe-200d-1faf2-1f3fd.svg create mode 100755 public/emoji/1faf1-1f3fe-200d-1faf2-1f3ff.svg create mode 100755 public/emoji/1faf1-1f3fe.svg create mode 100755 public/emoji/1faf1-1f3ff-200d-1faf2-1f3fb.svg create mode 100755 public/emoji/1faf1-1f3ff-200d-1faf2-1f3fc.svg create mode 100755 public/emoji/1faf1-1f3ff-200d-1faf2-1f3fd.svg create mode 100755 public/emoji/1faf1-1f3ff-200d-1faf2-1f3fe.svg create mode 100755 public/emoji/1faf1-1f3ff.svg create mode 100755 public/emoji/1faf1.svg create mode 100755 public/emoji/1faf2-1f3fb.svg create mode 100755 public/emoji/1faf2-1f3fc.svg create mode 100755 public/emoji/1faf2-1f3fd.svg create mode 100755 public/emoji/1faf2-1f3fe.svg create mode 100755 public/emoji/1faf2-1f3ff.svg create mode 100755 public/emoji/1faf2.svg create mode 100755 public/emoji/1faf3-1f3fb.svg create mode 100755 public/emoji/1faf3-1f3fc.svg create mode 100755 public/emoji/1faf3-1f3fd.svg create mode 100755 public/emoji/1faf3-1f3fe.svg create mode 100755 public/emoji/1faf3-1f3ff.svg create mode 100755 public/emoji/1faf3.svg create mode 100755 public/emoji/1faf4-1f3fb.svg create mode 100755 public/emoji/1faf4-1f3fc.svg create mode 100755 public/emoji/1faf4-1f3fd.svg create mode 100755 public/emoji/1faf4-1f3fe.svg create mode 100755 public/emoji/1faf4-1f3ff.svg create mode 100755 public/emoji/1faf4.svg create mode 100755 public/emoji/1faf5-1f3fb.svg create mode 100755 public/emoji/1faf5-1f3fc.svg create mode 100755 public/emoji/1faf5-1f3fd.svg create mode 100755 public/emoji/1faf5-1f3fe.svg create mode 100755 public/emoji/1faf5-1f3ff.svg create mode 100755 public/emoji/1faf5.svg create mode 100755 public/emoji/1faf6-1f3fb.svg create mode 100755 public/emoji/1faf6-1f3fc.svg create mode 100755 public/emoji/1faf6-1f3fd.svg create mode 100755 public/emoji/1faf6-1f3fe.svg create mode 100755 public/emoji/1faf6-1f3ff.svg create mode 100755 public/emoji/1faf6.svg delete mode 100644 public/favicon-dev.ico delete mode 100644 public/mask-icon.svg delete mode 100644 public/mstile-150x150.png delete mode 100644 public/shortcuts/direct.png delete mode 100644 public/shortcuts/new-status.png delete mode 100644 public/shortcuts/notifications.png delete mode 100644 public/shortcuts/profile.png create mode 120000 public/sw.js.map create mode 100644 spec/config/initializers/rack_attack_spec.rb delete mode 100644 spec/controllers/account_follow_controller_spec.rb delete mode 100644 spec/controllers/account_unfollow_controller_spec.rb create mode 100644 spec/controllers/admin/settings/branding_controller_spec.rb delete mode 100644 spec/controllers/admin/settings_controller_spec.rb create mode 100644 spec/controllers/admin/users/roles_controller.rb rename spec/controllers/admin/{ => users}/two_factor_authentications_controller_spec.rb (90%) create mode 100644 spec/controllers/api/v1/admin/domain_allows_controller_spec.rb create mode 100644 spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb create mode 100644 spec/controllers/api/v1/followed_tags_controller_spec.rb create mode 100644 spec/controllers/api/v1/tags_controller_spec.rb create mode 100644 spec/controllers/api/v2/filters/keywords_controller_spec.rb create mode 100644 spec/controllers/api/v2/filters/statuses_controller_spec.rb create mode 100644 spec/controllers/api/v2/filters_controller_spec.rb delete mode 100644 spec/controllers/remote_follow_controller_spec.rb delete mode 100644 spec/controllers/remote_interaction_controller_spec.rb create mode 100644 spec/fabricators/access_grant_fabricator.rb create mode 100644 spec/fabricators/custom_filter_keyword_fabricator.rb create mode 100644 spec/fabricators/custom_filter_status_fabricator.rb create mode 100644 spec/fabricators/tag_follow_fabricator.rb create mode 100644 spec/fabricators/user_role_fabricator.rb create mode 100644 spec/fabricators/webhook_fabricator.rb create mode 100644 spec/fixtures/files/utf8-followers.txt create mode 100644 spec/lib/hashtag_normalizer_spec.rb create mode 100644 spec/lib/status_cache_hydrator_spec.rb create mode 100644 spec/lib/vacuum/access_tokens_vacuum_spec.rb create mode 100644 spec/lib/vacuum/backups_vacuum_spec.rb create mode 100644 spec/lib/vacuum/feeds_vacuum_spec.rb create mode 100644 spec/lib/vacuum/media_attachments_vacuum_spec.rb create mode 100644 spec/lib/vacuum/preview_cards_vacuum_spec.rb create mode 100644 spec/lib/vacuum/statuses_vacuum_spec.rb create mode 100644 spec/lib/vacuum/system_keys_vacuum_spec.rb create mode 100644 spec/models/account/field_spec.rb create mode 100644 spec/models/custom_filter_keyword_spec.rb create mode 100644 spec/models/preview_card_trend_spec.rb create mode 100644 spec/models/status_trend_spec.rb create mode 100644 spec/models/tag_follow_spec.rb create mode 100644 spec/models/user_role_spec.rb create mode 100644 spec/models/webhook_spec.rb create mode 100644 spec/presenters/status_relationships_presenter_spec.rb create mode 100644 spec/requests/area_pages_spec.rb create mode 100644 spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb create mode 100644 spec/services/activitypub/fetch_remote_actor_service_spec.rb create mode 100644 spec/services/activitypub/fetch_remote_key_service_spec.rb delete mode 100644 spec/views/about/show.html.haml_spec.rb delete mode 100644 spec/workers/digest_mailer_worker_spec.rb delete mode 100644 spec/workers/scheduler/feed_cleanup_scheduler_spec.rb delete mode 100644 spec/workers/scheduler/media_cleanup_scheduler_spec.rb create mode 100644 stylelint.config.js diff --git a/.circleci/config.yml b/.circleci/config.yml index ff5bdff7a14ec0..a18765a0c96c87 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -134,6 +134,12 @@ jobs: - run: command: ./bin/rails tests:migrations:populate_v2_4 name: Populate database with test data + - run: + command: ./bin/rails db:migrate VERSION=20180707154237 + name: Run migrations up to v2.4.3 + - run: + command: ./bin/rails tests:migrations:populate_v2_4_3 + name: Populate database with test data - run: command: ./bin/rails db:migrate name: Run all remaining migrations @@ -168,14 +174,22 @@ jobs: - run: command: ./bin/rails tests:migrations:populate_v2_4 name: Populate database with test data + - run: + command: ./bin/rails db:migrate VERSION=20180707154237 + name: Run migrations up to v2.4.3 + environment: + SKIP_POST_DEPLOYMENT_MIGRATIONS: true + - run: + command: ./bin/rails tests:migrations:populate_v2_4_3 + name: Populate database with test data - run: command: ./bin/rails db:migrate - name: Run all pre-deployment migrations + name: Run all remaining pre-deployment migrations environment: SKIP_POST_DEPLOYMENT_MIGRATIONS: true - run: command: ./bin/rails db:migrate - name: Run all post-deployment remaining migrations + name: Run all post-deployment migrations - run: command: ./bin/rails tests:migrations:check_database name: Check migration result diff --git a/.codeclimate.yml b/.codeclimate.yml index ee9022cdaf839f..59051aae7a1245 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -26,13 +26,11 @@ plugins: bundler-audit: enabled: true eslint: - enabled: true - channel: eslint-7 + enabled: false rubocop: - enabled: true - channel: rubocop-1-9-1 + enabled: false sass-lint: - enabled: true + enabled: false exclude_patterns: - spec/ - vendor/asset/ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9d9e54d4f8c034..47497794fb63fa 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -20,7 +20,7 @@ "forwardPorts": [3000, 4000], // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "bundle install --path vendor/bundle && yarn install && ./bin/rails db:setup", + "postCreateCommand": "bundle install --path vendor/bundle && yarn install && git checkout -- Gemfile.lock && ./bin/rails db:setup", // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 538f6cccde8c20..46f42c4549360d 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -27,6 +27,7 @@ services: ES_ENABLED: 'true' ES_HOST: es ES_PORT: '9200' + LIBRE_TRANSLATE_ENDPOINT: http://libretranslate:5000 # Overrides default command so things don't shut down after the process ends. command: sleep infinity networks: @@ -72,6 +73,12 @@ services: soft: -1 hard: -1 + libretranslate: + image: libretranslate/libretranslate:v1.2.9 + restart: unless-stopped + networks: + - internal_network + volumes: postgres-data: redis-data: diff --git a/.env.nanobox b/.env.nanobox deleted file mode 100644 index 51dfdbd58fb95d..00000000000000 --- a/.env.nanobox +++ /dev/null @@ -1,254 +0,0 @@ -# Service dependencies -# You may set REDIS_URL instead for more advanced options -REDIS_HOST=$DATA_REDIS_HOST -REDIS_PORT=6379 -# REDIS_DB=0 - -# You may set DATABASE_URL instead for more advanced options -DB_HOST=$DATA_DB_HOST -DB_USER=$DATA_DB_USER -DB_NAME=gonano -DB_PASS=$DATA_DB_PASS -DB_PORT=5432 - -# DATABASE_URL=postgresql://$DATA_DB_USER:$DATA_DB_PASS@$DATA_DB_HOST/gonano - -# Optional Elasticsearch configuration -ES_ENABLED=true -ES_HOST=$DATA_ELASTIC_HOST -ES_PORT=9200 - -BIND=0.0.0.0 - -# Federation -# Note: Changing LOCAL_DOMAIN at a later time will cause unwanted side effects, including breaking all existing federation. -# LOCAL_DOMAIN should *NOT* contain the protocol part of the domain e.g https://example.com. -LOCAL_DOMAIN=${APP_NAME}.nanoapp.io - -# Changing LOCAL_HTTPS in production is no longer supported. (Mastodon will always serve https:// links) - -# Use this only if you need to run mastodon on a different domain than the one used for federation. -# You can read more about this option on https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Serving_a_different_domain.md -# DO *NOT* USE THIS UNLESS YOU KNOW *EXACTLY* WHAT YOU ARE DOING. -# WEB_DOMAIN=mastodon.example.com - -# Use this if you want to have several aliases handler@example1.com -# handler@example2.com etc. for the same user. LOCAL_DOMAIN should not -# be added. Comma separated values -# ALTERNATE_DOMAINS=example1.com,example2.com - -# Application secrets -# Generate each with the `rake secret` task (`nanobox run bundle exec rake secret`) -SECRET_KEY_BASE=$SECRET_KEY_BASE -OTP_SECRET=$OTP_SECRET - -# VAPID keys (used for push notifications) -# You can generate the keys using the following command (first is the private key, second is the public one) -# You should only generate this once per instance. If you later decide to change it, all push subscription will -# be invalidated, requiring the users to access the website again to resubscribe. -# -# Generate with `rake mastodon:webpush:generate_vapid_key` task (`nanobox run bundle exec rake mastodon:webpush:generate_vapid_key`) -# -# For more information visit https://rossta.net/blog/using-the-web-push-api-with-vapid.html -VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY -VAPID_PUBLIC_KEY=$VAPID_PUBLIC_KEY - -# Registrations -# Single user mode will disable registrations and redirect frontpage to the first profile -# SINGLE_USER_MODE=true -# Prevent registrations with following e-mail domains -# EMAIL_DOMAIN_BLACKLIST=example1.com|example2.de|etc -# Only allow registrations with the following e-mail domains -# EMAIL_DOMAIN_WHITELIST=example1.com|example2.de|etc - -# Optionally change default language -# DEFAULT_LOCALE=de - -# E-mail configuration -# Note: Mailgun and SparkPost (https://sparkpo.st/smtp) each have good free tiers -# If you want to use an SMTP server without authentication (e.g local Postfix relay) -# then set SMTP_AUTH_METHOD and SMTP_OPENSSL_VERIFY_MODE to 'none' and -# *comment* SMTP_LOGIN and SMTP_PASSWORD (leaving them blank is not enough). -SMTP_SERVER=$SMTP_SERVER -SMTP_PORT=587 -SMTP_LOGIN=$SMTP_LOGIN -SMTP_PASSWORD=$SMTP_PASSWORD -SMTP_FROM_ADDRESS=notifications@${APP_NAME}.nanoapp.io -#SMTP_REPLY_TO= -#SMTP_DOMAIN= # defaults to LOCAL_DOMAIN -#SMTP_DELIVERY_METHOD=smtp # delivery method can also be sendmail -#SMTP_AUTH_METHOD=plain -#SMTP_CA_FILE=/etc/ssl/certs/ca-certificates.crt -#SMTP_OPENSSL_VERIFY_MODE=peer -#SMTP_ENABLE_STARTTLS_AUTO=true -#SMTP_TLS=true - -# Optional user upload path and URL (images, avatars). Default is :rails_root/public/system. If you set this variable, you are responsible for making your HTTP server (eg. nginx) serve these files. -# PAPERCLIP_ROOT_PATH=/var/lib/mastodon/public-system -# PAPERCLIP_ROOT_URL=/system - -# Optional asset host for multi-server setups -# The asset host must allow cross origin request from WEB_DOMAIN or LOCAL_DOMAIN -# if WEB_DOMAIN is not set. For example, the server may have the -# following header field: -# Access-Control-Allow-Origin: https://example.com/ -# CDN_HOST=https://assets.example.com - -# S3 (optional) -# The attachment host must allow cross origin request from WEB_DOMAIN or -# LOCAL_DOMAIN if WEB_DOMAIN is not set. For example, the server may have the -# following header field: -# Access-Control-Allow-Origin: https://192.168.1.123:9000/ -# S3_ENABLED=true -# S3_BUCKET= -# AWS_ACCESS_KEY_ID= -# AWS_SECRET_ACCESS_KEY= -# S3_REGION= -# S3_PROTOCOL=http -# S3_HOSTNAME=192.168.1.123:9000 - -# S3 (Minio Config (optional) Please check Minio instance for details) -# The attachment host must allow cross origin request - see the description -# above. -# S3_ENABLED=true -# S3_BUCKET= -# AWS_ACCESS_KEY_ID= -# AWS_SECRET_ACCESS_KEY= -# S3_REGION= -# S3_PROTOCOL=https -# S3_HOSTNAME= -# 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. -# SWIFT_ENABLED=true -# SWIFT_USERNAME= -# For Keystone V3, the value for SWIFT_TENANT should be the project name -# SWIFT_TENANT= -# SWIFT_PASSWORD= -# Some OpenStack V3 providers require PROJECT_ID (optional) -# SWIFT_PROJECT_ID= -# Keystone V2 and V3 URLs are supported. Use a V3 URL if possible to avoid -# issues with token rate-limiting during high load. -# SWIFT_AUTH_URL= -# SWIFT_CONTAINER= -# SWIFT_OBJECT_URL= -# SWIFT_REGION= -# Defaults to 'default' -# SWIFT_DOMAIN_NAME= -# Defaults to 60 seconds. Set to 0 to disable -# SWIFT_CACHE_TTL= - -# Optional alias for S3 (e.g. to serve files on a custom domain, possibly using Cloudfront or Cloudflare) -# S3_ALIAS_HOST= - -# Streaming API integration -# STREAMING_API_BASE_URL= - -# Advanced settings -# If you need to use pgBouncer, you need to disable prepared statements: -# PREPARED_STATEMENTS=false - -# Cluster number setting for streaming API server. -# If you comment out following line, cluster number will be `numOfCpuCores - 1`. -# STREAMING_CLUSTER_NUM=1 - -# Docker mastodon user -# If you use Docker, you may want to assign UID/GID manually. -# UID=1000 -# GID=1000 - -# LDAP authentication (optional) -# LDAP_ENABLED=true -# LDAP_HOST=localhost -# LDAP_PORT=389 -# LDAP_METHOD=simple_tls -# LDAP_BASE= -# LDAP_BIND_DN= -# LDAP_PASSWORD= -# LDAP_UID=cn -# LDAP_MAIL=mail -# LDAP_SEARCH_FILTER=(|(%{uid}=%{email})(%{mail}=%{email})) -# LDAP_UID_CONVERSION_ENABLED=true -# LDAP_UID_CONVERSION_SEARCH=., - -# LDAP_UID_CONVERSION_REPLACE=_ - -# PAM authentication (optional) -# PAM authentication uses for the email generation the "email" pam variable -# and optional as fallback PAM_DEFAULT_SUFFIX -# The pam environment variable "email" is provided by: -# https://github.com/devkral/pam_email_extractor -# PAM_ENABLED=true -# Fallback email domain for email address generation (LOCAL_DOMAIN by default) -# PAM_EMAIL_DOMAIN=example.com -# Name of the pam service (pam "auth" section is evaluated) -# PAM_DEFAULT_SERVICE=rpam -# Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) -# PAM_CONTROLLED_SERVICE=rpam - -# Optional CAS authentication (cf. omniauth-cas) : -# CAS_ENABLED=true -# CAS_URL=https://sso.myserver.com/ -# CAS_HOST=sso.myserver.com/ -# CAS_PORT=443 -# CAS_SSL=true -# CAS_VALIDATE_URL= -# CAS_CALLBACK_URL= -# CAS_LOGOUT_URL= -# CAS_LOGIN_URL= -# CAS_UID_FIELD='user' -# CAS_CA_PATH= -# CAS_DISABLE_SSL_VERIFICATION=false -# CAS_UID_KEY='user' -# CAS_NAME_KEY='name' -# CAS_EMAIL_KEY='email' -# CAS_NICKNAME_KEY='nickname' -# CAS_FIRST_NAME_KEY='firstname' -# CAS_LAST_NAME_KEY='lastname' -# CAS_LOCATION_KEY='location' -# CAS_IMAGE_KEY='image' -# CAS_PHONE_KEY='phone' -# CAS_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true - -# Optional SAML authentication (cf. omniauth-saml) -# SAML_ENABLED=true -# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback -# SAML_ISSUER=https://example.com -# SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO -# SAML_IDP_CERT= -# SAML_IDP_CERT_FINGERPRINT= -# SAML_NAME_IDENTIFIER_FORMAT= -# SAML_CERT= -# SAML_PRIVATE_KEY= -# SAML_SECURITY_WANT_ASSERTION_SIGNED=true -# SAML_SECURITY_WANT_ASSERTION_ENCRYPTED=true -# SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true -# SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" -# SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.16.840.1.113730.3.1.241" -# SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME="urn:oid:2.5.4.42" -# SAML_ATTRIBUTES_STATEMENTS_LAST_NAME="urn:oid:2.5.4.4" -# SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED= -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= - -# Use HTTP proxy for outgoing request (optional) -# http_proxy=http://gateway.local:8118 -# Access control for hidden service. -# ALLOW_ACCESS_TO_HIDDEN_SERVICE=true diff --git a/.env.production.sample b/.env.production.sample index 4fc58072f1d455..5eecb8bdea4907 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -67,3 +67,11 @@ S3_BUCKET=files.example.com AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= S3_ALIAS_HOST=files.example.com + +# IP and session retention +# ----------------------- +# Make sure to modify the scheduling of ip_cleanup_scheduler in config/sidekiq.yml +# to be less than daily if you lower IP_RETENTION_PERIOD below two days (172800). +# ----------------------- +IP_RETENTION_PERIOD=31556952 +SESSION_RETENTION_PERIOD=31556952 diff --git a/.eslintrc.js b/.eslintrc.js index 2a882f59c6ca7c..e4ada6fe0d1623 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -12,7 +12,7 @@ module.exports = { ATTACHMENT_HOST: false, }, - parser: 'babel-eslint', + parser: '@babel/eslint-parser', plugins: [ 'react', @@ -27,7 +27,7 @@ module.exports = { experimentalObjectRestSpread: true, jsx: true, }, - ecmaVersion: 2018, + ecmaVersion: 2021, }, settings: { diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.github/ISSUE_TEMPLATE/1.bug_report.yml index 9cdf813f7bad03..cdd08d2b0d5454 100644 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1.bug_report.yml @@ -31,6 +31,11 @@ body: description: What happened? validations: required: true + - type: textarea + attributes: + label: Detailed description + validations: + required: false - type: textarea attributes: label: Specifications @@ -38,5 +43,14 @@ body: What version or commit hash of Mastodon did you find this bug in? If a front-end issue, what browser and operating systems were you using? + placeholder: | + Mastodon 3.5.3 (or Edge) + Ruby 2.7.6 (or v3.1.2) + Node.js 16.18.0 + + Google Chrome 106.0.5249.119 + Firefox 105.0.3 + + etc... validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 7c0dbaf6702ea1..fd62889d051288 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,7 +2,4 @@ blank_issues_enabled: false contact_links: - name: GitHub Discussions url: https://github.com/mastodon/mastodon/discussions - about: Please ask and answer questions here. - - name: Bug Bounty Program - url: https://app.intigriti.com/programs/mastodon/mastodonio/detail - about: Please report security vulnerabilities here. + about: Please ask and answer questions here. \ No newline at end of file diff --git a/.github/stylelint-matcher.json b/.github/stylelint-matcher.json new file mode 100644 index 00000000000000..cdfd4086bd4200 --- /dev/null +++ b/.github/stylelint-matcher.json @@ -0,0 +1,21 @@ +{ + "problemMatcher": [ + { + "owner": "stylelint", + "pattern": [ + { + "regexp": "^([^\\s].*)$", + "file": 1 + }, + { + "regexp": "^\\s+((\\d+):(\\d+))?\\s+(✖|×)\\s+(.*)\\s{2,}(.*)$", + "line": 2, + "column": 3, + "message": 5, + "code": 6, + "loop": true + } + ] + } + ] +} diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 68a06c35593a08..e0336f4fef519e 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -11,14 +11,17 @@ on: paths: - .github/workflows/build-image.yml - Dockerfile +permissions: + contents: read + jobs: build-image: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 - - uses: docker/login-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 + - uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml index be38a096de6f15..a9d8ea2eae388e 100644 --- a/.github/workflows/check-i18n.yml +++ b/.github/workflows/check-i18n.yml @@ -9,12 +9,15 @@ on: env: RAILS_ENV: test +permissions: + contents: read + jobs: check-i18n: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install system dependencies run: | sudo apt-get update diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 00000000000000..cd8cb12c457cad --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,83 @@ +--- +################################# +################################# +## Super Linter GitHub Actions ## +################################# +################################# +name: Lint Code Base + +# +# Documentation: +# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions +# + +############################# +# Start the job on all push # +############################# +on: + push: + branches-ignore: [main] + # Remove the line above to run when pushing to master + pull_request: + branches: [main] + +############### +# Set the Job # +############### +permissions: + checks: write + contents: read + pull-requests: write + statuses: write + +jobs: + build: + # Name the Job + name: Lint Code Base + # Set the agent to run on + runs-on: ubuntu-latest + + ################## + # Load all steps # + ################## + steps: + ########################## + # Checkout the code base # + ########################## + - name: Checkout Code + uses: actions/checkout@v3 + with: + # Full git history is needed to get a proper list of changed files within `super-linter` + fetch-depth: 0 + + - name: Set-up Node.js + uses: actions/setup-node@v3 + with: + node-version: 16.x + cache: yarn + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Set-up RuboCop Problem Mathcher + uses: r7kamura/rubocop-problem-matchers-action@v1 + - name: Set-up Stylelint Problem Matcher + uses: xt0rted/stylelint-problem-matcher@v1 + # https://github.com/xt0rted/stylelint-problem-matcher/issues/360 + - run: echo "::add-matcher::.github/stylelint-matcher.json" + + ################################ + # Run Linter against code base # + ################################ + - name: Lint Code Base + uses: github/super-linter@v4 + env: + CSS_FILE_NAME: stylelint.config.js + DEFAULT_BRANCH: main + NO_COLOR: 1 # https://github.com/xt0rted/stylelint-problem-matcher/issues/360 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JAVASCRIPT_ES_CONFIG_FILE: .eslintrc.js + LINTER_RULES_PATH: . + RUBY_CONFIG_FILE: .rubocop.yml + VALIDATE_ALL_CODEBASE: false + VALIDATE_CSS: true + VALIDATE_JAVASCRIPT_ES: true + VALIDATE_RUBY: true diff --git a/.github/workflows/test-chart.yml b/.github/workflows/test-chart.yml new file mode 100644 index 00000000000000..b9ff808559ee74 --- /dev/null +++ b/.github/workflows/test-chart.yml @@ -0,0 +1,138 @@ +# This is a GitHub workflow defining a set of jobs with a set of steps. +# ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions +# +name: Test chart + +on: + pull_request: + paths: + - "chart/**" + - "!**.md" + - ".github/workflows/test-chart.yml" + push: + paths: + - "chart/**" + - "!**.md" + - ".github/workflows/test-chart.yml" + branches-ignore: + - "dependabot/**" + workflow_dispatch: + +permissions: + contents: read + +defaults: + run: + working-directory: chart + +jobs: + lint-templates: + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.x" + + - name: Install dependencies (yamllint) + run: pip install yamllint + + - run: helm dependency update + + - name: helm lint + run: | + helm lint . \ + --values dev-values.yaml + + - name: helm template + run: | + helm template . \ + --values dev-values.yaml \ + --output-dir rendered-templates + + - name: yamllint (only on templates we manage) + run: | + rm -rf rendered-templates/mastodon/charts + + yamllint rendered-templates \ + --config-data "{rules: {indentation: {spaces: 2}, line-length: disable}}" + + # This job helps us validate that rendered templates are valid k8s resources + # against a k8s api-server, via "helm template --validate", but also that a + # basic configuration can be used to successfully startup mastodon. + # + test-install: + runs-on: ubuntu-22.04 + timeout-minutes: 15 + + strategy: + fail-fast: false + matrix: + include: + # k3s-channel reference: https://update.k3s.io/v1-release/channels + - k3s-channel: latest + - k3s-channel: stable + + # This represents the oldest configuration we test against. + # + # The k8s version chosen is based on the oldest still supported k8s + # version among two managed k8s services, GKE, EKS. + # - GKE: https://endoflife.date/google-kubernetes-engine + # - EKS: https://endoflife.date/amazon-eks + # + # The helm client's version can influence what helper functions is + # available for use in the templates, currently we need v3.6.0 or + # higher. + # + - k3s-channel: v1.21 + helm-version: v3.6.0 + + steps: + - uses: actions/checkout@v3 + + # This action starts a k8s cluster with NetworkPolicy enforcement and + # installs both kubectl and helm. + # + # ref: https://github.com/jupyterhub/action-k3s-helm#readme + # + - uses: jupyterhub/action-k3s-helm@v3 + with: + k3s-channel: ${{ matrix.k3s-channel }} + helm-version: ${{ matrix.helm-version }} + metrics-enabled: false + traefik-enabled: false + docker-enabled: false + + - run: helm dependency update + + # Validate rendered helm templates against the k8s api-server + - name: helm template --validate + run: | + helm template --validate mastodon . \ + --values dev-values.yaml + + - name: helm install + run: | + helm install mastodon . \ + --values dev-values.yaml \ + --timeout 10m + + # This actions provides a report about the state of the k8s cluster, + # providing logs etc on anything that has failed and workloads marked as + # important. + # + # ref: https://github.com/jupyterhub/action-k8s-namespace-report#readme + # + - name: Kubernetes namespace report + uses: jupyterhub/action-k8s-namespace-report@v1 + if: always() + with: + important-workloads: >- + deploy/mastodon-sidekiq + deploy/mastodon-streaming + deploy/mastodon-web + job/mastodon-assets-precompile + job/mastodon-chewy-upgrade + job/mastodon-create-admin + job/mastodon-db-migrate diff --git a/.gitignore b/.gitignore index 25c8388e16a024..c63d6e97fcc315 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ .env .env.production .env.development +.env.local /node_modules/ /build/ @@ -44,6 +45,9 @@ /redis /elasticsearch +# ignore Helm charts +/chart/*.tgz + # ignore Helm dependency charts /chart/charts/*.tgz @@ -66,3 +70,5 @@ yarn-debug.log # Ignore Docker option files docker-compose.override.yml + +dist/local/ssl diff --git a/.rubocop.yml b/.rubocop.yml index a7693742645609..8dc2d1c4794cf7 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -67,7 +67,7 @@ Lint/UselessAccessModifier: - class_methods Metrics/AbcSize: - Max: 100 + Max: 115 Exclude: - 'lib/mastodon/*_cli.rb' @@ -84,7 +84,7 @@ Metrics/BlockNesting: Metrics/ClassLength: CountComments: false - Max: 400 + Max: 500 Exclude: - 'lib/mastodon/*_cli.rb' @@ -281,6 +281,9 @@ Style/RedundantRegexpEscape: Style/RedundantReturn: Enabled: true +Style/RedundantBegin: + Enabled: false + Style/RegexpLiteral: Enabled: false diff --git a/.ruby-gemset b/.ruby-gemset new file mode 100644 index 00000000000000..2b97bf65d8f6b0 --- /dev/null +++ b/.ruby-gemset @@ -0,0 +1 @@ +mastodon diff --git a/.ruby-version b/.ruby-version index 75a22a26ac4a92..b0f2dcb32fc28c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.3 +3.0.4 diff --git a/.sass-lint.yml b/.sass-lint.yml deleted file mode 100644 index a84adff3fba2f2..00000000000000 --- a/.sass-lint.yml +++ /dev/null @@ -1,37 +0,0 @@ -# Linter Documentation: -# https://github.com/sasstools/sass-lint/tree/v1.13.1/docs/options - -files: - include: app/javascript/styles/**/*.scss - ignore: - - app/javascript/styles/mastodon/reset.scss - -rules: - # Disallows - no-color-literals: 0 - no-css-comments: 0 - no-duplicate-properties: 0 - no-ids: 0 - no-important: 0 - no-mergeable-selectors: 0 - no-misspelled-properties: 0 - no-qualifying-elements: 0 - no-transition-all: 0 - no-vendor-prefixes: 0 - - # Nesting - force-element-nesting: 0 - force-attribute-nesting: 0 - force-pseudo-nesting: 0 - - # Name Formats - class-name-format: 0 - leading-zero: 0 - - # Style Guide - attribute-quotes: 0 - hex-length: 0 - indentation: 0 - nesting-depth: 0 - property-sort-order: 0 - quotes: 0 diff --git a/AUTHORS.md b/AUTHORS.md index 9fc5f44f18fdf5..18b9f2d70869c8 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -15,32 +15,32 @@ and provided thanks to the work of the following contributors: * [noellabo](https://github.com/noellabo) * [abcang](https://github.com/abcang) * [yiskah](https://github.com/yiskah) +* [tribela](https://github.com/tribela) * [mayaeh](https://github.com/mayaeh) * [nolanlawson](https://github.com/nolanlawson) * [ysksn](https://github.com/ysksn) -* [tribela](https://github.com/tribela) * [sorin-davidoi](https://github.com/sorin-davidoi) * [lynlynlynx](https://github.com/lynlynlynx) * [m4sk1n](mailto:me@m4sk.in) * [Marcin Mikołajczak](mailto:me@m4sk.in) -* [renatolond](https://github.com/renatolond) * [shleeable](https://github.com/shleeable) -* [alpaca-tc](https://github.com/alpaca-tc) +* [renatolond](https://github.com/renatolond) * [zunda](https://github.com/zunda) +* [alpaca-tc](https://github.com/alpaca-tc) * [nclm](https://github.com/nclm) * [ineffyble](https://github.com/ineffyble) * [ariasuni](https://github.com/ariasuni) * [Masoud Abkenar](mailto:ampbox@gmail.com) * [blackle](https://github.com/blackle) * [Quent-in](https://github.com/Quent-in) -* [JantsoP](https://github.com/JantsoP) * [Brawaru](https://github.com/Brawaru) +* [JantsoP](https://github.com/JantsoP) +* [trwnh](https://github.com/trwnh) * [nullkal](https://github.com/nullkal) * [yookoala](https://github.com/yookoala) * [dunn](https://github.com/dunn) * [Aditoo17](https://github.com/Aditoo17) * [Quenty31](https://github.com/Quenty31) -* [marek-lach](https://github.com/marek-lach) * [shuheiktgw](https://github.com/shuheiktgw) * [ashfurrow](https://github.com/ashfurrow) * [danhunsaker](https://github.com/danhunsaker) @@ -48,7 +48,6 @@ and provided thanks to the work of the following contributors: * [Jeroen](mailto:jeroenpraat@users.noreply.github.com) * [takayamaki](https://github.com/takayamaki) * [masarakki](https://github.com/masarakki) -* [trwnh](https://github.com/trwnh) * [ticky](https://github.com/ticky) * [ThisIsMissEm](https://github.com/ThisIsMissEm) * [hinaloe](https://github.com/hinaloe) @@ -57,16 +56,19 @@ and provided thanks to the work of the following contributors: * [Wonderfall](https://github.com/Wonderfall) * [matteoaquila](https://github.com/matteoaquila) * [yukimochi](https://github.com/yukimochi) -* [palindromordnilap](https://github.com/palindromordnilap) +* [nightpool](https://github.com/nightpool) +* [alixrossi](https://github.com/alixrossi) * [rkarabut](https://github.com/rkarabut) * [jeroenpraat](mailto:jeroenpraat@users.noreply.github.com) -* [nightpool](https://github.com/nightpool) +* [marek-lach](https://github.com/marek-lach) * [Artoria2e5](https://github.com/Artoria2e5) +* [rinsuki](https://github.com/rinsuki) * [marrus-sh](https://github.com/marrus-sh) * [krainboltgreene](https://github.com/krainboltgreene) * [pfigel](https://github.com/pfigel) * [BoFFire](https://github.com/BoFFire) * [Aldarone](https://github.com/Aldarone) +* [deepy](https://github.com/deepy) * [clworld](https://github.com/clworld) * [MasterGroosha](https://github.com/MasterGroosha) * [dracos](https://github.com/dracos) @@ -75,7 +77,6 @@ and provided thanks to the work of the following contributors: * [Sylvhem](https://github.com/Sylvhem) * [koyuawsmbrtn](https://github.com/koyuawsmbrtn) * [MitarashiDango](https://github.com/MitarashiDango) -* [rinsuki](https://github.com/rinsuki) * [angristan](https://github.com/angristan) * [JeanGauthier](https://github.com/JeanGauthier) * [kschaper](https://github.com/kschaper) @@ -87,14 +88,15 @@ and provided thanks to the work of the following contributors: * [MightyPork](https://github.com/MightyPork) * [ashleyhull-versent](https://github.com/ashleyhull-versent) * [yhirano55](https://github.com/yhirano55) +* [mashirozx](https://github.com/mashirozx) * [devkral](https://github.com/devkral) * [camponez](https://github.com/camponez) * [Hugo Gameiro](mailto:hmgameiro@gmail.com) +* [Marek Ľach](mailto:graweeld@googlemail.com) * [SerCom_KC](mailto:szescxz@gmail.com) * [aschmitz](https://github.com/aschmitz) * [mfmfuyu](https://github.com/mfmfuyu) * [kedamaDQ](https://github.com/kedamaDQ) -* [mashirozx](https://github.com/mashirozx) * [fpiesche](https://github.com/fpiesche) * [gandaro](https://github.com/gandaro) * [johnsudaar](https://github.com/johnsudaar) @@ -106,8 +108,10 @@ and provided thanks to the work of the following contributors: * [hikari-no-yume](https://github.com/hikari-no-yume) * [seefood](https://github.com/seefood) * [jackjennings](https://github.com/jackjennings) +* [sunny](https://github.com/sunny) * [puckipedia](https://github.com/puckipedia) -* [spla](mailto:spla@mastodont.cat) +* [splaGit](https://github.com/splaGit) +* [tateisu](https://github.com/tateisu) * [walf443](https://github.com/walf443) * [JoelQ](https://github.com/JoelQ) * [mistydemeo](https://github.com/mistydemeo) @@ -118,13 +122,15 @@ and provided thanks to the work of the following contributors: * [tsuwatch](https://github.com/tsuwatch) * [progval](https://github.com/progval) * [victorhck](https://github.com/victorhck) +* [Izorkin](https://github.com/Izorkin) * [manuelviens](mailto:manuelviens@users.noreply.github.com) -* [tateisu](https://github.com/tateisu) * [fvh-P](https://github.com/fvh-P) * [lfuelling](https://github.com/lfuelling) * [rtucker](https://github.com/rtucker) * [Anna e só](mailto:contraexemplos@gmail.com) +* [danieljakots](https://github.com/danieljakots) * [dariusk](https://github.com/dariusk) +* [Gomasy](https://github.com/Gomasy) * [kazu9su](https://github.com/kazu9su) * [komic](https://github.com/komic) * [lmorchard](https://github.com/lmorchard) @@ -137,6 +143,7 @@ and provided thanks to the work of the following contributors: * [goofy-bz](mailto:goofy@babelzilla.org) * [kadiix](https://github.com/kadiix) * [kodacs](https://github.com/kodacs) +* [luzpaz](https://github.com/luzpaz) * [marcin mikołajczak](mailto:me@m4sk.in) * [berkes](https://github.com/berkes) * [KScl](https://github.com/KScl) @@ -145,23 +152,26 @@ and provided thanks to the work of the following contributors: * [AA4ch1](https://github.com/AA4ch1) * [alexgleason](https://github.com/alexgleason) * [cpytel](https://github.com/cpytel) +* [cutls](https://github.com/cutls) * [northerner](https://github.com/northerner) * [weex](https://github.com/weex) +* [erbridge](https://github.com/erbridge) * [fhemberger](https://github.com/fhemberger) -* [Gomasy](https://github.com/Gomasy) * [greysteil](https://github.com/greysteil) * [henrycatalinismith](https://github.com/henrycatalinismith) +* [HolgerHuo](https://github.com/HolgerHuo) * [d6rkaiz](https://github.com/d6rkaiz) * [ladyisatis](https://github.com/ladyisatis) * [JMendyk](https://github.com/JMendyk) +* [kescherCode](https://github.com/kescherCode) * [JohnD28](https://github.com/JohnD28) * [znz](https://github.com/znz) * [saper](https://github.com/saper) * [Naouak](https://github.com/Naouak) * [pawelngei](https://github.com/pawelngei) +* [rgroothuijsen](https://github.com/rgroothuijsen) * [reneklacan](https://github.com/reneklacan) * [ekiru](https://github.com/ekiru) -* [Izorkin](https://github.com/Izorkin) * [unasuke](https://github.com/unasuke) * [geta6](https://github.com/geta6) * [happycoloredbanana](https://github.com/happycoloredbanana) @@ -174,7 +184,6 @@ and provided thanks to the work of the following contributors: * [aji-su](https://github.com/aji-su) * [ikuradon](https://github.com/ikuradon) * [nzws](https://github.com/nzws) -* [duxovni](https://github.com/duxovni) * [SuperSandro2000](https://github.com/SuperSandro2000) * [178inaba](https://github.com/178inaba) * [acid-chicken](https://github.com/acid-chicken) @@ -183,7 +192,6 @@ and provided thanks to the work of the following contributors: * [aablinov](https://github.com/aablinov) * [stalker314314](https://github.com/stalker314314) * [cohosh](https://github.com/cohosh) -* [cutls](https://github.com/cutls) * [huertanix](https://github.com/huertanix) * [eleboucher](https://github.com/eleboucher) * [halkeye](https://github.com/halkeye) @@ -191,6 +199,7 @@ and provided thanks to the work of the following contributors: * [treby](https://github.com/treby) * [jpdevries](https://github.com/jpdevries) * [gdpelican](https://github.com/gdpelican) +* [pbzweihander](https://github.com/pbzweihander) * [MonaLisaOverrdrive](https://github.com/MonaLisaOverrdrive) * [Kurtis Rainbolt-Greene](mailto:me@kurtisrainboltgreene.name) * [panarom](https://github.com/panarom) @@ -201,7 +210,6 @@ and provided thanks to the work of the following contributors: * [pierreozoux](https://github.com/pierreozoux) * [qguv](https://github.com/qguv) * [Ram Lmn](mailto:ramlmn@users.noreply.github.com) -* [rgroothuijsen](https://github.com/rgroothuijsen) * [Sascha](mailto:sascha@serenitylabs.cloud) * [harukasan](https://github.com/harukasan) * [stamak](https://github.com/stamak) @@ -217,11 +225,14 @@ and provided thanks to the work of the following contributors: * [chr-1x](https://github.com/chr-1x) * [esetomo](https://github.com/esetomo) * [foxiehkins](https://github.com/foxiehkins) +* [gol-cha](https://github.com/gol-cha) * [highemerly](https://github.com/highemerly) * [hoodie](mailto:hoodiekitten@outlook.com) * [kaiyou](https://github.com/kaiyou) * [007lva](https://github.com/007lva) * [luzi82](https://github.com/luzi82) +* [prplecake](https://github.com/prplecake) +* [duxovni](https://github.com/duxovni) * [slice](https://github.com/slice) * [tmm576](https://github.com/tmm576) * [unsmell](mailto:unsmell@users.noreply.github.com) @@ -251,25 +262,27 @@ and provided thanks to the work of the following contributors: * [cdutson](https://github.com/cdutson) * [farlistener](https://github.com/farlistener) * [baby-gnu](https://github.com/baby-gnu) -* [danieljakots](https://github.com/danieljakots) * [divergentdave](https://github.com/divergentdave) * [DavidLibeau](https://github.com/DavidLibeau) * [dmerejkowsky](https://github.com/dmerejkowsky) * [ddevault](https://github.com/ddevault) +* [emilyst](https://github.com/emilyst) +* [consideRatio](https://github.com/consideRatio) * [Fjoerfoks](https://github.com/Fjoerfoks) * [fmauNeko](https://github.com/fmauNeko) * [gloaec](https://github.com/gloaec) * [unstabler](https://github.com/unstabler) * [potato4d](https://github.com/potato4d) * [h-izumi](https://github.com/h-izumi) -* [HolgerHuo](https://github.com/HolgerHuo) * [ErikXXon](https://github.com/ErikXXon) * [ian-kelling](https://github.com/ian-kelling) * [eltociear](https://github.com/eltociear) * [immae](https://github.com/immae) * [J0WI](https://github.com/J0WI) -* [vahnj](https://github.com/vahnj) +* [koboldunderlord](https://github.com/koboldunderlord) * [foozmeat](https://github.com/foozmeat) +* [jgsmith](https://github.com/jgsmith) +* [raggi](https://github.com/raggi) * [jasonrhodes](https://github.com/jasonrhodes) * [Jason Snell](mailto:jason@newrelic.com) * [jviide](https://github.com/jviide) @@ -287,21 +300,25 @@ and provided thanks to the work of the following contributors: * [Markus Amalthea Magnuson](mailto:markus.magnuson@gmail.com) * [madmath03](https://github.com/madmath03) * [mig5](https://github.com/mig5) +* [mohe2015](https://github.com/mohe2015) * [moritzheiber](https://github.com/moritzheiber) * [Nathaniel Suchy](mailto:me@lunorian.is) * [ndarville](https://github.com/ndarville) * [NimaBoscarino](https://github.com/NimaBoscarino) * [aquarla](https://github.com/aquarla) * [Abzol](https://github.com/Abzol) +* [unextro](https://github.com/unextro) * [PatOnTheBack](https://github.com/PatOnTheBack) * [xPaw](https://github.com/xPaw) * [petzah](https://github.com/petzah) * [PeterDaveHello](https://github.com/PeterDaveHello) * [ignisf](https://github.com/ignisf) +* [postmodern](https://github.com/postmodern) * [lumenwrites](https://github.com/lumenwrites) * [remram44](https://github.com/remram44) * [sts10](https://github.com/sts10) * [u1-liquid](https://github.com/u1-liquid) +* [SISheogorath](https://github.com/SISheogorath) * [rosylilly](https://github.com/rosylilly) * [withshubh](https://github.com/withshubh) * [sim6](https://github.com/sim6) @@ -328,23 +345,23 @@ and provided thanks to the work of the following contributors: * [bsky](mailto:me@imbsky.net) * [codl](https://github.com/codl) * [cpsdqs](https://github.com/cpsdqs) +* [dogelover911](https://github.com/dogelover911) * [barzamin](https://github.com/barzamin) -* [gol-cha](https://github.com/gol-cha) * [gunchleoc](https://github.com/gunchleoc) * [fhalna](https://github.com/fhalna) * [haoyayoi](https://github.com/haoyayoi) +* [helloworldstack](https://github.com/helloworldstack) * [ik11235](https://github.com/ik11235) * [kawax](https://github.com/kawax) * [shrft](https://github.com/shrft) * [luigi](mailto:lvargas@rankia.com) -* [luzpaz](https://github.com/luzpaz) * [mbajur](https://github.com/mbajur) * [matsurai25](https://github.com/matsurai25) * [mecab](https://github.com/mecab) * [nicobz25](https://github.com/nicobz25) * [niwatori24](https://github.com/niwatori24) * [noiob](https://github.com/noiob) -* [oliverkeeble](https://github.com/oliverkeeble) +* [oliverkeeble](mailto:oliverkeeble@users.noreply.github.com) * [partev](https://github.com/partev) * [pinfort](https://github.com/pinfort) * [rbaumert](https://github.com/rbaumert) @@ -360,7 +377,7 @@ and provided thanks to the work of the following contributors: * [clarfonthey](https://github.com/clarfonthey) * [cygnan](https://github.com/cygnan) * [Awea](https://github.com/Awea) -* [eai04191](https://github.com/eai04191) +* [single-right-quote](https://github.com/single-right-quote) * [8398a7](https://github.com/8398a7) * [857b](https://github.com/857b) * [insom](https://github.com/insom) @@ -373,9 +390,10 @@ and provided thanks to the work of the following contributors: * [unleashed](https://github.com/unleashed) * [alxrcs](https://github.com/alxrcs) * [console-cowboy](https://github.com/console-cowboy) +* [Saiv46](https://github.com/Saiv46) * [Alkarex](https://github.com/Alkarex) * [a2](https://github.com/a2) -* [alfiedotwtf](https://github.com/alfiedotwtf) +* [Alfie John](mailto:33c6c91f3bb4a391082e8a29642cafaf@alfie.wtf) * [0xa](https://github.com/0xa) * [ashpieboop](https://github.com/ashpieboop) * [virtualpain](https://github.com/virtualpain) @@ -391,24 +409,34 @@ and provided thanks to the work of the following contributors: * [orlea](https://github.com/orlea) * [armandfardeau](https://github.com/armandfardeau) * [raboof](https://github.com/raboof) +* [v-aisac](https://github.com/v-aisac) +* [gi-yt](https://github.com/gi-yt) +* [boahc077](https://github.com/boahc077) * [aldatsa](https://github.com/aldatsa) * [jumbosushi](https://github.com/jumbosushi) * [acuteaura](https://github.com/acuteaura) * [ayumin](https://github.com/ayumin) * [bzg](https://github.com/bzg) * [BastienDurel](https://github.com/BastienDurel) +* [bearice](https://github.com/bearice) * [li-bei](https://github.com/li-bei) +* [hardillb](https://github.com/hardillb) * [Benedikt Geißler](mailto:benedikt@g5r.eu) * [BenisonSebastian](https://github.com/BenisonSebastian) * [Blake](mailto:blake.barnett@postmates.com) * [Brad Janke](mailto:brad.janke@gmail.com) +* [braydofficial](https://github.com/braydofficial) * [bclindner](https://github.com/bclindner) * [brycied00d](https://github.com/brycied00d) * [carlosjs23](https://github.com/carlosjs23) +* [WyriHaximus](https://github.com/WyriHaximus) * [cgxxx](https://github.com/cgxxx) * [kibitan](https://github.com/kibitan) +* [cdzombak](https://github.com/cdzombak) * [chrisheninger](https://github.com/chrisheninger) * [chris-martin](https://github.com/chris-martin) +* [offbyone](https://github.com/offbyone) +* [cclauss](https://github.com/cclauss) * [DoubleMalt](https://github.com/DoubleMalt) * [Moosh-be](https://github.com/Moosh-be) * [cchoi12](https://github.com/cchoi12) @@ -417,6 +445,8 @@ and provided thanks to the work of the following contributors: * [csu](https://github.com/csu) * [kklleemm](https://github.com/kklleemm) * [colindean](https://github.com/colindean) +* [CommanderRoot](https://github.com/CommanderRoot) +* [connorshea](https://github.com/connorshea) * [DeeUnderscore](https://github.com/DeeUnderscore) * [dachinat](https://github.com/dachinat) * [Daggertooth](mailto:dev@monsterpit.net) @@ -428,35 +458,40 @@ and provided thanks to the work of the following contributors: * [dar5hak](https://github.com/dar5hak) * [kant](https://github.com/kant) * [maxolasersquad](https://github.com/maxolasersquad) -* [singingwolfboy](https://github.com/singingwolfboy) -* [caldwell](https://github.com/caldwell) -* [davidcelis](https://github.com/davidcelis) -* [davefp](https://github.com/davefp) -* [hannahwhy](https://github.com/hannahwhy) -* [debanshuk](https://github.com/debanshuk) -* [mascali33](https://github.com/mascali33) -* [DerekNonGeneric](https://github.com/DerekNonGeneric) -* [dblandin](https://github.com/dblandin) -* [Aranaur](https://github.com/Aranaur) -* [dtschust](https://github.com/dtschust) -* [Dryusdan](https://github.com/Dryusdan) -* [d3vgru](https://github.com/d3vgru) -* [Elizafox](https://github.com/Elizafox) -* [enewhuis](https://github.com/enewhuis) -* [ericblade](https://github.com/ericblade) -* [mikoim](https://github.com/mikoim) -* [espenronnevik](https://github.com/espenronnevik) +* [David Baumgold](mailto:david@davidbaumgold.com) +* [David Caldwell](mailto:david+github@porkrind.org) +* [David Celis](mailto:me@davidcel.is) +* [David Hewitt](mailto:davidmhewitt@users.noreply.github.com) +* [David Underwood](mailto:davefp@gmail.com) +* [David Yip](mailto:yipdw@member.fsf.org) +* [Debanshu Kundu](mailto:debanshu.kundu@joshtechnologygroup.com) +* [Denis Teyssier](mailto:admin@mascali.ovh) +* [Derek Lewis](mailto:derekcecillewis@gmail.com) +* [Devon Blandin](mailto:dblandin@gmail.com) +* [Drew Gates](mailto:aranaur@users.noreply.github.com) +* [Drew Schuster](mailto:dtschust@gmail.com) +* [Dryusdan](mailto:dryusdan@dryusdan.fr) +* [Eai](mailto:eai@mizle.net) +* [Ed Knutson](mailto:knutsoned@gmail.com) +* [Effy Elden](mailto:effy@effy.space) +* [Elizabeth Myers](mailto:elizabeth@interlinked.me) +* [Eric](mailto:enewhuis@gmail.com) +* [Eric Blade](mailto:blade.eric@gmail.com) +* [Eshin Kunishima](mailto:mikoim@users.noreply.github.com) +* [Espen Rønnevik](mailto:espen@ronnevik.net) * [Expenses](mailto:expenses@airmail.cc) -* [fabianonline](https://github.com/fabianonline) -* [shello](https://github.com/shello) -* [Finariel](https://github.com/Finariel) -* [siuying](https://github.com/siuying) -* [zoc](https://github.com/zoc) -* [fwenzel](https://github.com/fwenzel) -* [gabrielrumiranda](https://github.com/gabrielrumiranda) -* [GenbuHase](https://github.com/GenbuHase) -* [nilsding](https://github.com/nilsding) -* [hattori6789](https://github.com/hattori6789) +* [Fabian Schlenz](mailto:mail@fabianonline.de) +* [Faye Duxovni](mailto:duxovni@duxovni.org) +* [Filipe Rodrigues](mailto:shello@shello.org) +* [Finariel](mailto:finariel@gmail.com) +* [Francis Chong](mailto:francis@ignition.hk) +* [Franck Zoccolo](mailto:franck@zoccolo.com) +* [Fred Wenzel](mailto:fwenzel@users.noreply.github.com) +* [Gabriel Rubens](mailto:gabrielrumiranda@gmail.com) +* [Gaelan Steele](mailto:gbs@canishe.com) +* [Genbu Hase](mailto:hasegenbu@gmail.com) +* [Georg Gadinger](mailto:nilsding@nilsding.org) +* [George Hattori](mailto:hattori6789@users.noreply.github.com) * [Gergely Nagy](mailto:algernon@users.noreply.github.com) * [Giuseppe Pignataro](mailto:rogepix@gmail.com) * [Greg V](mailto:greg@unrelenting.technology) @@ -466,7 +501,9 @@ and provided thanks to the work of the following contributors: * [György Nádudvari](mailto:reedcourty@users.noreply.github.com) * [HIKARU KOBORI](mailto:hk.uec.univ@gmail.com) * [Haelwenn Monnier](mailto:lanodan@users.noreply.github.com) +* [Hampton Lintorn-Catlin](mailto:hcatlin@gmail.com) * [Harmon](mailto:harmon758@gmail.com) +* [Hayden](mailto:contact@winisreallybored.com) * [HellPie](mailto:hellpie@users.noreply.github.com) * [Herbert Kagumba](mailto:habukagumba@gmail.com) * [Hiroe Jun](mailto:jun.hiroe@gmail.com) @@ -479,6 +516,7 @@ and provided thanks to the work of the following contributors: * [Ian McDowell](mailto:me@ianmcdowell.net) * [Iijima Yasushi](mailto:kurage.cc@gmail.com) * [Ingo Blechschmidt](mailto:iblech@web.de) +* [Irie Aoi](mailto:eai@mizle.net) * [J Yeary](mailto:usbsnowcrash@users.noreply.github.com) * [Jack Michaud](mailto:jack-michaud@users.noreply.github.com) * [Jakub Mendyk](mailto:jakubmendyk.szkola@gmail.com) @@ -493,6 +531,7 @@ and provided thanks to the work of the following contributors: * [Jo Decker](mailto:trolldecker@users.noreply.github.com) * [Joan Montané](mailto:jmontane@users.noreply.github.com) * [Joe](mailto:401283+htmlbyjoe@users.noreply.github.com) +* [Joe Friedl](mailto:stuff@joefriedl.net) * [Jonathan Klee](mailto:klee.jonathan@gmail.com) * [Jordan Guerder](mailto:jguerder@fr.pulseheberg.net) * [Joseph Mingrone](mailto:jehops@users.noreply.github.com) @@ -502,6 +541,7 @@ and provided thanks to the work of the following contributors: * [Julien](mailto:tiwy57@users.noreply.github.com) * [Julien Deswaef](mailto:juego@requiem4tv.com) * [June Sallou](mailto:jnsll@users.noreply.github.com) +* [Justin Thomas](mailto:justin@jdt.io) * [Jérémy Benoist](mailto:j0k3r@users.noreply.github.com) * [KEINOS](mailto:github@keinos.com) * [Kairui Song | 宋恺睿](mailto:ryncsn@gmail.com) @@ -522,6 +562,7 @@ and provided thanks to the work of the following contributors: * [Mantas](mailto:mistermantas@users.noreply.github.com) * [Mareena Kunjachan](mailto:mareenakunjachan@gmail.com) * [Marek Lach](mailto:marek.brohatwack.lach@gmail.com) +* [Markus Petzsch](mailto:markus@petzsch.eu) * [Markus R](mailto:wirehack7@users.noreply.github.com) * [Marty McGuire](mailto:schmartissimo@gmail.com) * [Marvin Kopf](mailto:marvinkopf@posteo.de) @@ -531,12 +572,15 @@ and provided thanks to the work of the following contributors: * [Mathias B](mailto:10813340+mathias-b@users.noreply.github.com) * [Mathieu Brunot](mailto:mb.mathieu.brunot@gmail.com) * [Matt](mailto:matt-auckland@users.noreply.github.com) +* [Matt Corallo](mailto:649246+thebluematt@users.noreply.github.com) * [Matt Sweetman](mailto:webroo@gmail.com) +* [Matthias Bethke](mailto:matthias@towiski.de) * [Matthias Beyer](mailto:mail@beyermatthias.de) * [Matthias Jouan](mailto:matthias.jouan@gmail.com) * [Matthieu Paret](mailto:matthieuparet69@gmail.com) * [Maxime BORGES](mailto:maxime.borges@gmail.com) * [Mayu Laierlence](mailto:minacle@live.com) +* [Meisam](mailto:39205857+mftabriz@users.noreply.github.com) * [Michael Deeb](mailto:michaeldeeb@me.com) * [Michael Vieira](mailto:dtox94@gmail.com) * [Michel](mailto:michel@cyweo.com) @@ -558,6 +602,7 @@ and provided thanks to the work of the following contributors: * [Nanamachi](mailto:town7.haruki@gmail.com) * [Nathaniel Ekoniak](mailto:nekoniak@ennate.tech) * [NecroTechno](mailto:necrotechno@riseup.net) +* [Nicholas La Roux](mailto:larouxn@gmail.com) * [Nick Gerakines](mailto:nick@gerakines.net) * [Nicolai von Neudeck](mailto:nicolai@vonneudeck.com) * [Ninetailed](mailto:ninetailed@gmail.com) @@ -575,18 +620,25 @@ and provided thanks to the work of the following contributors: * [PatrickRWells](mailto:32802366+patrickrwells@users.noreply.github.com) * [Paul](mailto:naydex.mc+github@gmail.com) * [Pete Keen](mailto:pete@petekeen.net) +* [Pierre Bourdon](mailto:delroth@gmail.com) * [Pierre-Morgan Gate](mailto:pgate@users.noreply.github.com) * [Ratmir Karabut](mailto:rkarabut@sfmodern.ru) * [Reto Kromer](mailto:retokromer@users.noreply.github.com) +* [Rob Petti](mailto:rob.petti@gmail.com) * [Rob Watson](mailto:rfwatson@users.noreply.github.com) +* [Robert Laurenz](mailto:8169746+laurenzcodes@users.noreply.github.com) * [Rohan Sharma](mailto:i.am.lone.survivor@protonmail.com) +* [Roni Laukkarinen](mailto:roni@laukkarinen.info) * [Ryan Freebern](mailto:ryan@freebern.org) * [Ryan Wade](mailto:ryan.wade@protonmail.com) * [Ryo Kajiwara](mailto:kfe-fecn6.prussian@s01.info) * [S.H](mailto:gamelinks007@gmail.com) +* [SJang1](mailto:git@sjang.dev) * [Sadiq Saif](mailto:staticsafe@users.noreply.github.com) * [Sam Hewitt](mailto:hewittsamuel@gmail.com) +* [Samuel Kaiser](mailto:sk22@mailbox.org) * [Sara Aimée Smiseth](mailto:51710585+sarasmiseth@users.noreply.github.com) +* [Sara Golemon](mailto:pollita@php.net) * [Satoshi KOJIMA](mailto:skoji@mac.com) * [ScienJus](mailto:i@scienjus.com) * [Scott Larkin](mailto:scott@codeclimate.com) @@ -607,6 +659,7 @@ and provided thanks to the work of the following contributors: * [Spanky](mailto:2788886+spankyworks@users.noreply.github.com) * [Stanislas](mailto:stanislas.lange@pm.me) * [StefOfficiel](mailto:pichard.stephane@free.fr) +* [Stefano Pigozzi](mailto:ste.pigozzi@gmail.com) * [Steven Tappert](mailto:admin@dark-it.net) * [Stéphane Guillou](mailto:stephane.guillou@member.fsf.org) * [Su Yang](mailto:soulteary@users.noreply.github.com) @@ -619,13 +672,16 @@ and provided thanks to the work of the following contributors: * [TakesxiSximada](mailto:takesxi.sximada@gmail.com) * [Tao Bror Bojlén](mailto:brortao@users.noreply.github.com) * [Taras Gogol](mailto:taras2358@gmail.com) +* [The Stranjer](mailto:791672+thestranjer@users.noreply.github.com) * [TheInventrix](mailto:theinventrix@users.noreply.github.com) * [TheMainOne](mailto:50847364+theevilskeleton@users.noreply.github.com) * [Thomas Alberola](mailto:thomas@needacoffee.fr) +* [Thomas Citharel](mailto:github@tcit.fr) * [Toby Deshane](mailto:fortyseven@users.noreply.github.com) * [Toby Pinder](mailto:gigitrix@gmail.com) * [Tomonori Murakami](mailto:crosslife777@gmail.com) * [TomoyaShibata](mailto:wind.of.hometown@gmail.com) +* [Tony Jiang](mailto:yujiang99@gmail.com) * [Treyssat-Vincent Nino](mailto:treyssatvincent@users.noreply.github.com) * [Truong Nguyen](mailto:truongnmt.dev@gmail.com) * [Udo Kramer](mailto:optik@fluffel.io) @@ -634,6 +690,7 @@ and provided thanks to the work of the following contributors: * [Ushitora Anqou](mailto:ushitora_anqou@yahoo.co.jp) * [Valentin Lorentz](mailto:progval+git@progval.net) * [Vladimir Mincev](mailto:vladimir@canicinteractive.com) +* [Vyr Cossont](mailto:vyrcossont@users.noreply.github.com) * [Waldir Pimenta](mailto:waldyrious@gmail.com) * [Wenceslao Páez Chávez](mailto:wcpaez@gmail.com) * [Wesley Ellis](mailto:tahnok@gmail.com) @@ -648,10 +705,12 @@ and provided thanks to the work of the following contributors: * [YaQ](mailto:i_k_o_m_a_7@yahoo.co.jp) * [Yanaken](mailto:yanakend@gmail.com) * [Yann Klis](mailto:yann.klis@gmail.com) +* [Yarden Shoham](mailto:hrsi88@gmail.com) * [Yağızhan](mailto:35808275+yagizhan49@users.noreply.github.com) * [Yeechan Lu](mailto:wz.bluesnow@gmail.com) * [Your Name](mailto:lorenzd@gmail.com) * [Yusuke Abe](mailto:moonset20@gmail.com) +* [Zach Flanders](mailto:zachflanders@gmail.com) * [Zach Neill](mailto:neillz@berea.edu) * [Zachary Spector](mailto:logicaldash@gmail.com) * [ZiiX](mailto:ziix@users.noreply.github.com) @@ -666,8 +725,8 @@ and provided thanks to the work of the following contributors: * [chrolis](mailto:chrolis@users.noreply.github.com) * [cormo](mailto:cormorant2+github@gmail.com) * [d0p1](mailto:dopi-sama@hush.com) -* [dogelover911](mailto:84288771+dogelover911@users.noreply.github.com) * [dxwc](mailto:dxwc@users.noreply.github.com) +* [eai04191](mailto:eai@mizle.net) * [evilny0](mailto:evilny0@moomoocamp.net) * [febrezo](mailto:felixbrezo@gmail.com) * [fsubal](mailto:fsubal@users.noreply.github.com) @@ -678,7 +737,6 @@ and provided thanks to the work of the following contributors: * [hakoai](mailto:hk--76@qa2.so-net.ne.jp) * [haosbvnker](mailto:github@chaosbunker.com) * [heguro](mailto:65112898+heguro@users.noreply.github.com) -* [helloworldstack](mailto:66512512+helloworldstack@users.noreply.github.com) * [ichi_i](mailto:51489410+ichi-i@users.noreply.github.com) * [isati](mailto:phil@juchnowi.cz) * [jacob](mailto:jacobherringtondeveloper@gmail.com) @@ -688,15 +746,18 @@ and provided thanks to the work of the following contributors: * [jooops](mailto:joops@autistici.org) * [jukper](mailto:jukkaperanto@gmail.com) * [jumoru](mailto:jumoru@mailbox.org) +* [k.bigwheel (kazufumi nishida)](mailto:k.bigwheel+eng@gmail.com) * [kaias1jp](mailto:kaias1jp@gmail.com) * [karlyeurl](mailto:karl.yeurl@gmail.com) * [kawaguchi](mailto:jiikko@users.noreply.github.com) * [kedama](mailto:32974885+kedamadq@users.noreply.github.com) +* [keiya](mailto:keiya_21@yahoo.co.jp) * [kuro5hin](mailto:rusty@kuro5hin.org) * [leo60228](mailto:leo@60228.dev) * [matildepark](mailto:matilde.park@pm.me) * [maxypy](mailto:maxime@mpigou.fr) * [mhe](mailto:mail@marcus-herrmann.com) +* [mickkael](mailto:19755421+mickkael@users.noreply.github.com) * [mike castleman](mailto:m@mlcastle.net) * [mimikun](mailto:dzdzble_effort_311@outlook.jp) * [mohemohe](mailto:mohemohe@users.noreply.github.com) @@ -707,9 +768,11 @@ and provided thanks to the work of the following contributors: * [notozeki](mailto:notozeki@users.noreply.github.com) * [ntl-purism](mailto:57806346+ntl-purism@users.noreply.github.com) * [nzws](mailto:git-yuzu@svk.jp) +* [pea-sys](mailto:49807271+pea-sys@users.noreply.github.com) * [potpro](mailto:pptppctt@gmail.com) * [proxy](mailto:51172302+3n-k1@users.noreply.github.com) * [rch850](mailto:rich850@gmail.com) +* [rcombs](mailto:rcombs@rcombs.me) * [roikale](mailto:roikale@users.noreply.github.com) * [rysiekpl](mailto:rysiek@hackerspace.pl) * [sasanquaneuf](mailto:sasanquaneuf@gmail.com) @@ -726,13 +789,13 @@ and provided thanks to the work of the following contributors: * [tmyt](mailto:shigure@refy.net) * [trevDev()](mailto:trev@trevdev.ca) * [tsia](mailto:github@tsia.de) +* [txt-file](mailto:44214237+txt-file@users.noreply.github.com) * [utam0k](mailto:k0ma@utam0k.jp) * [vpzomtrrfrt](mailto:vpzomtrrfrt@gmail.com) * [walfie](mailto:walfington@gmail.com) * [y-temp4](mailto:y.temp4@gmail.com) * [ymmtmdk](mailto:ymmtmdk@gmail.com) * [yoshipc](mailto:yoooo@yoshipc.net) -* [zunda](mailto:zundan@gmail.com) * [Özcan Zafer AYAN](mailto:ozcanzaferayan@gmail.com) * [ばん](mailto:detteiu0321@gmail.com) * [ふるふる](mailto:frfs@users.noreply.github.com) @@ -752,599 +815,951 @@ This document is provided for informational purposes only. Since it is only upda Following people have contributed to translation of Mastodon: - GunChleoc (*Scottish Gaelic*) -- ケインツロ 👾 (KNTRO) (*Spanish, Argentina*) -- Sveinn í Felli (sveinki) (*Icelandic*) +- ケインツロ ⚧️👾🛸 (KNTRO) (*Spanish, Argentina*) - Hồ Nhất Duy (honhatduy) (*Vietnamese*) +- Sveinn í Felli (sveinki) (*Icelandic*) +- Kristaps (Kristaps_M) (*Latvian*) +- NCAA (*Danish, French*) - Zoltán Gera (gerazo) (*Hungarian*) -- Kristaps_M (*Latvian*) -- NCAA (*French, Danish*) -- adrmzz (*Sardinian*) -- Xosé M. (XoseM) (*Spanish, Galician*) -- Ramdziana F Y (rafeyu) (*Indonesian*) -- Jeong Arm (Kjwon15) (*Spanish, Japanese, Korean, Esperanto*) +- ghose (XoseM) (*Galician, Spanish*) +- Jeong Arm (Kjwon15) (*Korean, Esperanto, Japanese, Spanish*) - Emanuel Pina (emanuelpina) (*Portuguese*) -- qezwan (*Persian, Sorani (Kurdish)*) -- Besnik_b (*Albanian*) -- ButterflyOfFire (BoFFire) (*French, Arabic, Kabyle*) +- Reyzadren (*Ido, Malay*) - Thai Localization (thl10n) (*Thai*) +- Besnik_b (*Albanian*) +- Joene (joenepraat) (*Dutch*) - Cyax (Cyaxares) (*Kurmanji (Kurdish)*) +- adrmzz (*Sardinian*) +- Ramdziana F Y (rafeyu) (*Indonesian*) +- xatier (*Chinese Traditional, Chinese Traditional, Hong Kong*) +- qezwan (*Sorani (Kurdish), Persian*) +- spla (*Catalan, Spanish*) +- ButterflyOfFire (BoFFire) (*Arabic, French, Kabyle*) +- Martin (miles) (*Slovenian*) +- නාමල් ජයසිංහ (nimnaya) (*Sinhala*) +- Asier Iturralde Sarasola (aldatsa) (*Basque*) +- Ondřej Pokorný (unextro) (*Czech*) +- Roboron (*Spanish*) - taicv (*Vietnamese*) +- koyu (*German*) - Daniele Lira Mereb (danilmereb) (*Portuguese, Brazilian*) -- spla (*Spanish, Catalan*) +- T. E. Kalaycı (tekrei) (*Turkish*) - Evert Prants (IcyDiamond) (*Estonian*) -- koyu (*German*) -- Alix Rossi (palindromordnilap) (*French, Esperanto, Corsican*) -- Joene (joenepraat) (*Dutch*) +- Yair Mahalalel (yairm) (*Hebrew*) +- Ihor Hordiichuk (ihor_ck) (*Ukrainian*) +- Alessandro Levati (Oct326) (*Italian*) +- Kimmo Kujansuu (mrkujansuu) (*Finnish*) +- Alix Rossi (palindromordnilap) (*Corsican, Esperanto, French*) +- Danial Behzadi (danialbehzadi) (*Persian*) - stan ionut (stanionut12) (*Romanian*) - Mastodon 中文译者 (mastodon-linguist) (*Chinese Simplified*) - Kristijan Tkalec (lapor) (*Slovenian*) -- Danial Behzadi (danialbehzadi) (*Persian*) -- Asier Iturralde Sarasola (aldatsa) (*Basque*) +Alexander Sorokin (Brawaru) (*Russian, Vietnamese, Swedish, Portuguese, Tamil, Kabyle, Polish, Italian, Catalan, Armenian, Hungarian, Albanian, Greek, Galician, Korean, Ukrainian, German, Danish, French*) - ManeraKai (*Arabic*) - мачко (ma4ko) (*Bulgarian*) -- Roboron (*Spanish*) -- Alessandro Levati (Oct326) (*Italian*) -- xatier (*Chinese Traditional, Chinese Traditional, Hong Kong*) -- Ondřej Pokorný (unextro) (*Czech*) -- Alexander Sorokin (Brawaru) (*French, Catalan, Danish, German, Greek, Hungarian, Armenian, Korean, Portuguese, Russian, Albanian, Swedish, Ukrainian, Vietnamese, Galician*) - kamee (*Armenian*) -- Michal Stanke (mstanke) (*Czech*) +- Yamagishi Kazutoshi (ykzts) (*Japanese, Icelandic, Sorani (Kurdish), Albanian, Vietnamese, Chinese Simplified*) +- Takeçi (polygoat) (*French, Italian*) +- REMOVED_USER (*Czech*) - borys_sh (*Ukrainian*) - Imre Kristoffer Eilertsen (DandelionSprout) (*Norwegian*) -- yeft (*Chinese Traditional, Chinese Traditional, Hong Kong*) +- Marek Ľach (mareklach) (*Slovak, Polish*) +- yeft (*Chinese Traditional, Hong Kong, Chinese Traditional*) +- D. Cederberg (cederberget) (*Swedish*) - Miguel Mayol (mitcoes) (*Spanish, Catalan*) -- Marek Ľach (mareklach) (*Polish, Slovak*) +- enolp (*Asturian*) - Manuel Viens (manuelviens) (*French*) -- Kimmo Kujansuu (mrkujansuu) (*Finnish*) +- cybergene (*Japanese*) +- REMOVED_USER (*Turkish*) +- xpil (*Polish, Scottish Gaelic*) +- Balázs Meskó (mesko.balazs) (*Hungarian, Czech*) - Koala Yeung (yookoala) (*Chinese Traditional, Hong Kong*) -- enolp (*Asturian*) - Osoitz (*Basque*) -- Peterandre (*Norwegian, Norwegian Nynorsk*) -- tzium (*Sardinian*) +- Amir Rubinstein - TAU (AmirrTAU) (*Hebrew, Indonesian*) - Maya Minatsuki (mayaeh) (*Japanese*) -- Mélanie Chauvel (ariasuni) (*French, Arabic, Czech, German, Greek, Hungarian, Slovenian, Ukrainian, Chinese Simplified, Portuguese, Brazilian, Persian, Norwegian Nynorsk, Esperanto, Breton, Corsican, Sardinian, Kabyle*) -- T. E. Kalaycı (tekrei) (*Turkish*) -- Takeçi (polygoat) (*French, Italian*) +- Peterandre (*Norwegian Nynorsk, Norwegian*) +Mélanie Chauvel (ariasuni) (*French, Esperanto, Norwegian Nynorsk, Persian, Kabyle, Sardinian, Corsican, Breton, Portuguese, Brazilian, Arabic, Chinese Simplified, Ukrainian, Slovenian, Greek, German, Czech, Hungarian*) +- tzium (*Sardinian*) +- Diluns (*Occitan*) - Galician Translator (Galician_translator) (*Galician*) +- Marcin Mikołajczak (mkljczkk) (*Polish, Czech, Russian*) +- Jeff Huang (s8321414) (*Chinese Traditional*) +- Pixelcode (realpixelcode) (*German*) +- Allen Zhong (AstroProfundis) (*Chinese Simplified*) - lamnatos (*Greek*) - Sean Young (assanges) (*Chinese Traditional*) +- retiolus (*Catalan, French, Spanish*) - tolstoevsky (*Russian*) -- Ihor Hordiichuk (ihor_ck) (*Ukrainian*) - Ali Demirtaş (alidemirtas) (*Turkish*) -- Jasmine Cam Andrever (gourmas) (*Cornish*) +- J. Cam Andrever-Wright (gourmas) (*Cornish*) - coxde (*Chinese Simplified*) +- Dremski (*Bulgarian*) - gagik_ (*Armenian*) - Masoud Abkenar (mabkenar) (*Persian*) - arshat (*Kazakh*) -- Marcin Mikołajczak (mkljczkk) (*Czech, Polish, Russian*) -- Jeff Huang (s8321414) (*Chinese Traditional*) +- Ira (seefood) (*Hebrew*) +- Linerly (*Indonesian*) - Blak Ouille (BlakOuille16) (*French*) - e (diveedd) (*Kurmanji (Kurdish)*) - Em St Cenydd (cancennau) (*Welsh*) -- Diluns (*Occitan*) +- Tigran (tigransimonyan) (*Armenian*) +- Draacoun (*Portuguese, Brazilian*) +- REMOVED_USER (*Turkish*) - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48.moe) (mnh48) (*Malay*) -- Tagomago (tagomago) (*French, Spanish*) -- Jurica (ahjk) (*Croatian*) +- Tagomago (tagomago) (*Spanish, French*) +- Ashun (ashune) (*Croatian*) - Aditoo17 (*Czech*) -- Tigran (tigransimonyan) (*Armenian*) - vishnuvaratharajan (*Tamil*) - pulmonarycosignerkindness (*Swedish*) - calypsoopenmail (*French*) -- cybergene (cyber-gene) (*Japanese*) +- REMOVED_USER (*Kabyle*) +- snerk (*Norwegian Nynorsk*) +- Sebastian (SebastianBerlin) (*German*) +- lisawe (*Norwegian*) +- serratrad (*Catalan*) - Bran_Ruz (*Breton*) +- ViktorOn (*Russian, Danish*) - Gearguy (*Finnish*) +- Andi Chandler (andibing) (*English, United Kingdom*) +- Tor Egil Hoftun Kvæstad (Taloran) (*Norwegian Nynorsk*) - GiorgioHerbie (*Italian*) -- Balázs Meskó (mesko.balazs) (*Czech, Hungarian*) -- Martin (miles) (*Slovenian*) +- හෙළබස සමූහය (HelaBasa) (*Sinhala*) +- kat (katktv) (*Ukrainian, Russian*) +- Yi-Jyun Pan (pan93412) (*Chinese Traditional*) +- Fjoerfoks (fryskefirefox) (*Frisian, Dutch*) +- Eshagh (eshagh79) (*Persian*) - regulartranslator (*Portuguese, Brazilian*) - Saederup92 (*Danish*) -- ozzii (*French, Serbian (Cyrillic)*) +- ozzii (Serbian (Cyrillic), French) - Irfan (Irfan_Radz) (*Malay*) -- Yi-Jyun Pan (pan93412) (*Chinese Traditional*) - ClearlyClaire (*French, Icelandic*) +- Sokratis Alichanidis (alichani) (*Greek*) +- Jiří Podhorecký (trendspotter) (*Czech*) - Akarshan Biswas (biswasab) (*Bengali, Sanskrit*) +- Robert Wolniak (Szkodnix) (*Polish*) +- Jan Lindblom (janlindblom) (*Swedish*) +- Dewi (Unkorneg) (*Breton, French*) - Kristoffer Grundström (Umeaboy) (*Swedish*) - Rafael H L Moretti (Moretti) (*Portuguese, Brazilian*) - d5Ziif3K (*Ukrainian*) -- හෙළබස (HelaBasa) (*Sinhala*) -- xpil (*Polish*) -- Rojdayek (*Kurmanji (Kurdish)*) +- Nemu (Dormemulo) (*Esperanto, French, Italian, Ido, Afrikaans*) +- Johan Mynhardt (johanmynhardt) (*Afrikaans*) +- Rojdayek (Kurmanji (Kurdish)) +- REMOVED_USER (*Portuguese, Brazilian*) +- GCardo (*Portuguese, Brazilian*) - christalleras (*Norwegian Nynorsk*) -- Allen Zhong (AstroProfundis) (*Chinese Simplified*) -- Taloran (*Norwegian Nynorsk*) -- Sokratis Alichanidis (alichani) (*Greek*) +- diorama (*Italian*) +- Jaz-Michael King (jazmichaelking) (*Welsh*) - Catalina (catalina.st) (*Romanian*) -- otrapersona (*Spanish, Spanish, Mexico*) - Ryo (DrRyo) (*Korean*) -- Mauzi (*German, Swedish*) +- otrapersona (*Spanish, Mexico, Spanish*) +- Frontier Translation Ltd. (frontier-translation) (*Chinese Simplified*) +- Mauzi (*Swedish, German*) +- Clopsy87 (*Italian*) - atarashiako (*Chinese Simplified*) - erictapen (*German*) +- zhen liao (az0189re) (*Chinese Simplified*) - 101010 (101010pl) (*Polish*) -- Jaz-Michael King (jazmichaelking) (*Welsh*) +- REMOVED_USER (*Norwegian*) - axi (*Finnish*) - silkevicious (*Italian*) - Floxu (fredrikdim1) (*Norwegian Nynorsk*) -- NadieAishi (*Spanish, Spanish, Mexico*) +- Nic Dafis (nicdafis) (*Welsh*) +- NadieAishi (*Spanish, Mexico, Spanish*) +- 戸渡生野 (aomyouza2543) (*Thai*) +- Tjipke van der Heide (vancha) (*Frisian*) +- Erik Mogensen (mogsie) (*Norwegian*) +- pomoch (*Chinese Traditional, Hong Kong*) +- Alexandre Brito (alexbrito) (*Portuguese, Brazilian*) - Bertil Hedkvist (Berrahed) (*Swedish*) - William(ѕ)ⁿ (wmlgr) (*Spanish*) -- Eshagh (eshagh79) (*Persian*) - LNDDYL (*Chinese Traditional*) +- tanketom (*Norwegian Nynorsk*) - norayr (*Armenian*) +- l3ycle (*German*) +- strubbl (*German*) - Satnam S Virdi (pika10singh) (*Punjabi*) - Tiago Epifânio (tfve) (*Portuguese*) - Mentor Gashi (mentorgashi.com) (*Albanian*) +- Sid (autinerd1) (*Dutch, German*) - carolinagiorno (*Portuguese, Brazilian*) +- Em_i (emiliencoss) (*French*) +- Liam O (liamoshan) (*Irish*) - Hayk Khachatryan (brutusromanus123) (*Armenian*) - Roby Thomas (roby.thomas) (*Malayalam*) +- ThonyVezbe (*Breton*) +- Percy (kecrily) (*Chinese Simplified*) - Bharat Kumar (Marwari) (*Hindi*) - Austra Muizniece (aus_m) (*Latvian*) -- ThonyVezbe (*Breton*) +- Urubu Lageano (urubulageano) (*Portuguese, Brazilian*) - Just Spanish (7_7) (*Spanish, Mexico*) - v4vachan (*Malayalam*) - bilfri (*Danish*) +- IamHappy (mrmx2013) (*Ukrainian*) - dkdarshan760 (*Sanskrit*) - Timur Seber (seber) (*Tatar*) - Slimane Selyan AMIRI (SelyanKab) (*Kabyle*) - VaiTon (*Italian*) -- Vik (ViktorOn) (*Danish, Russian*) - tykayn (*French*) -- GCardo (*Portuguese, Brazilian*) +- Abdulaziz Aljaber (kuwaitna) (*Arabic*) - taoxvx (*Danish*) -- Hrach Mkrtchyan (mhrach87) (*Armenian*) +- Hrach Mkrtchyan (hrachmk) (*Armenian*) - sabri (thetomatoisavegetable) (*Spanish, Spanish, Argentina*) -- Dewi (Unkorneg) (*French, Breton*) - CoelacanthusHex (*Chinese Simplified*) - Rhys Harrison (rhedders) (*Esperanto*) -- syncopams (*Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*) +- syncopams (*Chinese Traditional, Hong Kong, Chinese Traditional, Chinese Simplified*) - SteinarK (*Norwegian Nynorsk*) +- REMOVED_USER (*Standard Moroccan Tamazight*) - Maxine B. Vågnes (vagnes) (*Norwegian, Norwegian Nynorsk*) -- Hakim Oubouali (zenata1) (*Standard Moroccan Tamazight*) +- Rikard Linde (rikardlinde) (*Swedish*) - ahangarha (*Persian*) - Lalo Tafolla (lalotafo) (*Spanish, Spanish, Mexico*) -- dashersyed (*Urdu (Pakistan)*) +- Larissa Cruz (larissacruz) (*Portuguese, Brazilian*) +- dashersyed (Urdu (Pakistan)) +- camerongreer21 (*English, United Kingdom*) +- REMOVED_USER (*Ukrainian*) - Conight Wang (xfddwhh) (*Chinese Simplified*) - liffon (*Swedish*) - Damjan Dimitrioski (gnud) (*Macedonian*) -- Rikard Linde (rikardlinde) (*Swedish*) - rondnunes (*Portuguese, Brazilian*) -- strubbl (*German*) - PPNplus (*Thai*) -- Frontier Translation Ltd. (frontier-translation) (*Chinese Simplified*) +- Steven Ritchie (Steaph38) (*Scottish Gaelic*) +- 游荡 (MamaShip) (*Chinese Simplified*) +- Edward Navarro (EdwardNavarro) (*Spanish*) - shioko (*Chinese Simplified*) +- gnu-ewm (*Polish*) - Kahina Mess (K_hina) (*Kabyle*) +- Hexandcube (hexandcube) (*Polish*) +- Scott Starkey (yekrats) (*Esperanto*) - ZiriSut (*Kabyle*) +- FreddyG (*Esperanto*) +- mynameismonkey (*Welsh*) - Groosha (groosha) (*Russian*) -- Hexandcube (hexandcube) (*Polish*) - Gwenn (Belvar) (*Breton*) -- 游荡 (MamaShip) (*Chinese Simplified*) - StanleyFrew (*French*) -- mynameismonkey (*Welsh*) -- Edward Navarro (EdwardNavarro) (*Spanish*) +- cathalgarvey (*Irish*) - Nikita Epifanov (Nikets) (*Russian*) +- REMOVED_USER (*Finnish*) - jaranta (*Finnish*) - Slobodan Simić (Слободан Симић) (slsimic) (*Serbian (Cyrillic)*) -- retiolus (*Catalan*) -- iVampireSP (*Chinese Simplified, Chinese Traditional*) +- iVampireSP (*Chinese Traditional, Chinese Simplified*) - Felicia Jongleur (midsommar) (*Swedish*) - Denys (dector) (*Ukrainian*) - Mo_der Steven (SakuraPuare) (*Chinese Simplified*) +- REMOVED_USER (*German*) +- Kishin Sagume (kishinsagi) (*Chinese Simplified*) +- bennepharaoh (*Chinese Simplified*) - Vanege (*Esperanto*) +- hibiya inemuri (hibiya) (*Korean*) - Jess Rafn (therealyez) (*Danish*) - Stasiek Michalski (hellcp) (*Polish*) - dxwc (*Bengali*) -- Filbert Salim (gamesbert6) (*Indonesian*) +- Heran Membingung (heranmembingung) (*Indonesian*) +- Parodper (*Galician*) +- rbnval (*Catalan*) - Liboide (*Spanish*) +- hemnaren (*Norwegian Nynorsk*) - jmontane (*Catalan*) +- Andy Kleinert (AndyKl) (*German*) - Chris Kay (chriskarasoulis) (*Greek*) +- CrowdinBRUH (*Vietnamese*) +- Rhoslyn Prys (Rhoslyn) (*Welsh*) +- abidin toumi (Zet24) (*Arabic*) - Johan Schiff (schyffel) (*Swedish*) - Rex_sa (rex07) (*Arabic*) +- amedcj (*Kurmanji (Kurdish)*) - Arunmozhi (tecoholic) (*Tamil*) - zer0-x (ZER0-X) (*Arabic*) -- kat (katktv) (*Russian, Ukrainian*) +- staticnoisexyz (*Czech*) - Lauren Liberda (selfisekai) (*Polish*) +- Michael Zeevi (maze88) (*Hebrew*) - oti4500 (*Hungarian, Ukrainian*) - Delta (Delta-Time) (*Japanese*) -- Michael Zeevi (maze88) (*Hebrew*) +- Marc Antoine Thevenet (MATsxm) (*French*) +- AlexKoala (alexkoala) (*Korean*) - SarfarazAhmed (*Urdu (Pakistan)*) +- Ahmad Dakhlallah (MIUIArabia) (*Arabic*) - Mats Gunnar Ahlqvist (goqbi) (*Swedish*) - diazepan (*Spanish, Spanish, Argentina*) +- Tiger:blank (tsagaanbar) (*Chinese Simplified*) +- REMOVED_USER (*Chinese Simplified*) - marzuquccen (*Kabyle*) - atriix (*Swedish*) +- Laur (melaur) (*Romanian*) - VictorCorreia (victorcorreia1984) (*Afrikaans*) - Remito (remitocat) (*Japanese*) -- AlexKoala (alexkoala) (*Korean*) - Juan José Salvador Piedra (JuanjoSalvador) (*Spanish*) -- BurekzFinezt (*Serbian (Cyrillic)*) +- REMOVED_USER (*Norwegian*) - 森の子リスのミーコの大冒険 (Phroneris) (*Japanese*) +- Gim_Garam (*Korean*) +- BurekzFinezt (*Serbian (Cyrillic)*) +- Pēteris Caune (cuu508) (*Latvian*) - asnomgtu (*Hungarian*) +- bendigeidfran (*Welsh*) - SHeija (*Finnish*) - Врабац (Slovorad) (*Serbian (Cyrillic)*) - Dženan (Dzenan) (*Swedish*) -- Jack R (isaac.97_WT) (*Spanish*) +- Gabriel Beecham (lancet) (*Irish*) - antonyho (*Chinese Traditional, Hong Kong*) -- FreddyG (*Esperanto*) -- andruhov (*Russian, Ukrainian*) +- Jack R (isaac.97_WT) (*Spanish*) +- Henrik Mattsson-Mårn (rchk) (*Swedish*) +- Oguzhan Aydin (aoguzhan) (*Turkish*) +- Soran730 (*Chinese Simplified*) +- andruhov (*Ukrainian, Russian*) +- 北䑓如法 (Nyoho) (*Japanese*) - phena109 (*Chinese Traditional, Hong Kong*) -- Aryamik Sharma (Aryamik) (*Swedish, Hindi*) +- Aryamik Sharma (Aryamik) (*Hindi, Swedish*) - Unmual (*Spanish*) +- Tobias Bannert (toba) (*German*) - Adrián Graña (alaris83) (*Spanish*) -- cruz2020 (*Portuguese*) - vpei (*Chinese Simplified*) +- cruz2020 (*Portuguese*) +- papapep (h9f2ycHh-ktOd6_Y) (*Catalan*) +- Roj (roj1512) (*Sorani (Kurdish), Kurmanji (Kurdish)*) - るいーね (ruine) (*Japanese*) +- aujawindar (*Norwegian Nynorsk*) +- irithys (*Chinese Simplified*) - Sam Tux (imahbub) (*Bengali*) - igordrozniak (*Polish*) +- Johannes Nilsson (nlssn) (*Swedish*) - Michał Sidor (michcioperz) (*Polish*) - Isaac Huang (caasih) (*Chinese Traditional*) - AW Unad (awcodify) (*Indonesian*) - 1Alino (*Slovak*) - Cutls (cutls) (*Japanese*) -- Goudarz Jafari (Goudarz) (*Persian*) -- Parodper (*Galician*) +- Goudarz Jafari (GoudarzJafari) (*Persian*) +- Daniel Strömholm (stromholm) (*Swedish*) - 1 (Ipsumry) (*Spanish*) - Falling Snowdin (tghgg) (*Vietnamese*) +- Paulino Michelazzo (pmichelazzo) (*Portuguese, Brazilian*) +- Y.Yamashiro (uist1idrju3i) (*Japanese*) - Rasmus Lindroth (RasmusLindroth) (*Swedish*) - Gianfranco Fronteddu (gianfro.gianfro) (*Sardinian*) - Andrea Lo Iacono (niels0n) (*Italian*) - fucsia (*Italian*) - Vedran Serbu (SerenoXGen) (*Croatian*) +- Raphael Das Gupta (das-g) (*Esperanto, German*) +- yanchan09 (*Estonian*) +- ainmeolai (*Irish*) +- REMOVED_USER (*Norwegian*) +- mian42 (*Bulgarian*) - Kinshuk Sunil (kinshuksunil) (*Hindi*) -- Ullas Joseph (ullasjoseph) (*Malayalam*) - al_._ (*German, Russian*) +- Ullas Joseph (ullasjoseph) (*Malayalam*) +- sanoth (*Swedish*) +- Aftab Alam (iaftabalam) (*Hindi*) +- frumble (*German*) +- juanda097 (juanda-097) (*Spanish*) - Matthías Páll Gissurarson (icetritlo) (*Icelandic*) -- Percy (kecrily) (*Chinese Simplified*) -- Yu-Pai Liu (tedliou) (*Chinese Traditional*) +- Russian Retro (retrograde) (*Russian*) - KcKcZi (*Chinese Simplified*) +- Yu-Pai Liu (tedliou) (*Chinese Traditional*) - Amarin Cemthong (acitmaster) (*Thai*) -- Johannes Nilsson (nlssn) (*Swedish*) -- juanda097 (juanda-097) (*Spanish*) +- Etinew (*Hebrew*) - xsml (*Chinese Simplified*) +- S.J. L. (samijuhanilii) (*Finnish*) - Anunnakey (*Macedonian*) - erikkemp (*Dutch*) +- Tsl (muun) (*Chinese Simplified*) +- Renato "Lond" Cerqueira (renatolond) (*Portuguese, Brazilian*) +- Úna-Minh Kavanagh (yunitex) (*Irish*) +- kongk (*Norwegian Nynorsk*) - erikstl (*Esperanto*) - twpenguin (*Chinese Traditional*) +- JeremyStarTM (*German*) - Po-chiang Chao (bobchao) (*Chinese Traditional*) - Marcus Myge (mygg-priv) (*Norwegian*) - Esther (esthermations) (*Portuguese*) +- Jiri Grönroos (spammemoreplease) (*Finnish*) - MadeInSteak (*Finnish*) +- witoharmuth (*Swedish*) +- MESHAL45 (*Arabic*) +- mcdutchie (*Dutch*) +- Michal Špondr (michalspondr) (*Czech*) - t_aus_m (*German*) -- serapolis (*Japanese, Chinese Simplified, Chinese Traditional, Chinese Traditional, Hong Kong*) +- kaki7777 (*Japanese, Chinese Traditional*) - Heimen Stoffels (Vistaus) (*Dutch*) +- serapolis (*Chinese Traditional, Hong Kong, Chinese Traditional, Japanese, Chinese Simplified*) - Rajarshi Guha (rajarshiguha) (*Bengali*) +- Amir Reza (ElAmir) (*Persian*) +- REMOVED_USER (*Norwegian*) +- MohammadSaleh Kamyab (mskf1383) (*Persian*) +- REMOVED_USER (*Romanian*) - Gopal Sharma (gopalvirat) (*Hindi*) +- Вероніка Някшу (pampushkaveronica) (*Russian, Romanian*) - Linnéa (lesbian_subnet) (*Swedish*) -- 北䑓如法 (Nyoho) (*Japanese*) -- abidin toumi (Zet24) (*Arabic*) -- Tofiq Abdula (Xwla) (*Sorani (Kurdish)*) +- Valentin (HDValentin) (*German*) +- dragnucs2 (*Arabic*) - Carlos Solís (csolisr) (*Esperanto*) -- Yamagishi Kazutoshi (ykzts) (*Japanese, Vietnamese, Icelandic, Sorani (Kurdish)*) +- Tofiq Abdula (Xwla) (*Sorani (Kurdish)*) +- halcek (*Slovak*) +- Tobias Kunze (rixxian) (*German*) - Parthan S Ramanujam (parthan) (*Tamil*) - Kasper Nymand (KasperNymand) (*Danish*) -- subram (*Turkish*) - TS (morte) (*Finnish*) -- SensDeViata (*Ukrainian*) +- REMOVED_USER (*German*) +- REMOVED_USER (*Basque*) +- subram (*Turkish*) +- Gudwin (*Spanish, Mexico, Spanish*) - Ptrcmd (ptrcmd) (*Chinese Traditional*) +- shmuelHal (*Hebrew*) +- SensDeViata (*Ukrainian*) - megaleo (*Portuguese, Brazilian*) +- Acursen (*German*) +- NurKai Kai (nurkaiyttv) (*German*) +- Guttorm (ghveem) (*Norwegian Nynorsk*) - SergioFMiranda (*Portuguese, Brazilian*) -- hiroTS (*Chinese Traditional*) +- Danni Lundgren (dannilundgren) (*Danish*) - Vivek K J (Vivekkj) (*Malayalam*) -- arielcostas3 (*Galician*) +- hiroTS (*Chinese Traditional*) +- teadesu (*Portuguese, Brazilian*) +- petartrajkov (*Macedonian*) +- Ariel Costas (arielcostas3) (*Galician*) +- Ch. (sftblw) (*Korean*) +- Rintan (*Japanese*) +- Jair Henrique (jairhenrique) (*Portuguese, Brazilian*) +- sorcun (*Turkish*) +- filippodb (*Italian*) - johne32rus23 (*Russian*) -- AzureNya (*Chinese Simplified*) - OctolinGamer (octolingamer) (*Portuguese, Brazilian*) -- filippodb (*Italian*) +- AzureNya (*Chinese Simplified*) - Ram varma (ram4varma) (*Tamil*) +- REMOVED_USER (Sorani (Kurdish)) +- REMOVED_USER (*Portuguese, Brazilian*) +- seanmhade (*Irish*) - sanser (*Russian*) -- Y.Yamashiro (uist1idrju3i) (*Japanese*) +- Vijay (vijayatmin) (*Tamil*) +- Anomalion (*German*) - Pukima (Pukimaa) (*German*) -- diorama (*Italian*) -- frumble (*German*) +- Curtis Lee (CansCurtis) (*Chinese Traditional*) +- โบโลน่าไวรัส (nullxyz_) (*Thai*) +- ふぁーらんど (farland1717) (*Japanese*) +- 3wen (*Breton*) +- rlafuente (*Portuguese*) +- Ильзира Рахматуллина (rahmatullinailzira53) (*Tatar*) +- Code Man (codemansrc) (*Russian*) +- Philip Gillißen (guerda) (*German*) - Daniel Dimitrov (daniel.dimitrov) (*Bulgarian*) +- Anton (atjn) (*Danish*) - kekkepikkuni (*Tamil*) - MODcraft (*Chinese Simplified*) - oorsutri (*Tamil*) +- wortfeld (*German*) - Neo_Chen (NeoChen1024) (*Chinese Traditional*) +- Stereopolex (*Polish*) +- NxOne14 (*Bulgarian*) +- Juan Ortiz (Kloido) (*Spanish, Catalan*) - Nithin V (Nithin896) (*Tamil*) +- strikeCunny2245 (*Icelandic*) - Miro Rauhala (mirorauhala) (*Finnish*) +- nicoduesing (duconi) (*German, Esperanto*) +- Gnonthgol (*Norwegian Nynorsk*) +- WKobes (*Dutch*) - Oymate (*Bengali*) +- mikwee (*Hebrew*) +- EzigboOmenana (*Igbo, Cornish*) +- yan Wato (janWato) (*Hindi*) +- Papuass (*Latvian*) +- Vincent Orback (vincentorback) (*Swedish*) +- chettoy (*Chinese Simplified*) +- 19 (nineteen) (*Chinese Simplified*) - ಚಿರಾಗ್ ನಟರಾಜ್ (chiraag-nataraj) (*Kannada*) +- Layik Hama (layik) (*Sorani (Kurdish)*) - Guillaume Turchini (orion78fr) (*French*) +- Andri Yngvason (andryng) (*Icelandic*) - Aswin C (officialcjunior) (*Malayalam*) -- Ganesh D (auntgd) (*Marathi*) - Yuval Nehemia (yuvalne) (*Hebrew*) - mawoka-myblock (mawoka) (*German*) -- dragnucs2 (*Arabic*) +- Ganesh D (auntgd) (*Marathi*) +- Lens0021 (lens0021) (*Korean*) +- An Gafraíoch (angafraioch) (*Irish*) +- Michael Smith (michaelshmitty) (*Dutch*) - Ryan Ho (koungho) (*Chinese Traditional*) -- Tejas Harad (h_tejas) (*Marathi*) +- tunisiano187 (*French*) +- Peter van Mever (SpacemanSpiff) (*Dutch*) - Pedro Henrique (exploronauta) (*Portuguese, Brazilian*) -- Amir Reza (ElAmir) (*Persian*) -- Tatsuto "Laminne" Yamamoto (laminne) (*Japanese*) +- REMOVED_USER (*Esperanto, Italian, Japanese*) +- Tejas Harad (h_tejas) (*Marathi*) +- Balázs Meskó (meskobalazs) (*Hungarian*) - Vasanthan (vasanthan) (*Tamil*) +- Tatsuto "Laminne" Yamamoto (laminne) (*Japanese*) +- slbtty (shenlebantongying) (*Chinese Simplified*) - 硫酸鶏 (acid_chicken) (*Japanese*) - programizer (*German*) +- guessimmaterialgrl (*Chinese Simplified*) - clarmin b8 (clarminb8) (*Sorani (Kurdish)*) +- Maria Riegler (riegler3m) (*German*) - manukp (*Malayalam*) -- psymyn (*Hebrew*) - earth dweller (sanethoughtyt) (*Marathi*) +- psymyn (*Hebrew*) +- Aaraon Thomas (aaraon) (*Portuguese, Brazilian*) +- Rafael Viana (rafacnec) (*Portuguese, Brazilian*) - Marek Ľach (marek-lach) (*Slovak*) - meijerivoi (toilet) (*Finnish*) - essaar (*Tamil*) -- Nemuj (Dentrado) (*Japanese, Esperanto*) - serubeena (*Swedish*) -- Rintan (*Japanese*) -- Karol Kosek (krkkPL) (*Polish*) +- RqndomHax (*French*) +- REMOVED_USER (*Polish*) +- ギャラ (gyara) (*Chinese Simplified, Japanese*) - Khó͘ Tiatlêng (khotiatleng) (*Chinese Traditional, Taigi*) -- valarivan (*Tamil*) -- Hernik (hernik27) (*Czech*) - revarioba (*Spanish*) - friedbeans (*Croatian*) +- An (AnTheMaker) (*German*) - kuchengrab (*German*) +- Hernik (hernik27) (*Czech*) +- valarivan (*Tamil*) +- אדם לוין (adamlevin) (*Hebrew*) +- Vít Horčička (legvita123) (*Czech*) - Abi Turi (abi123) (*Georgian*) +- Thomas Munkholt (munkholt) (*Danish*) +- pparescasellas (*Catalan*) - Hinaloe (hinaloe) (*Japanese*) -- Sebastián Andil (Selrond) (*Slovak*) - Ifnuth (*German*) -- Asbjørn Olling (a2) (*Danish*) +- Sebastián Andil (Selrond) (*Slovak*) +- boni777 (*Chinese Simplified*) - KEINOS (*Japanese*) -- Balázs Meskó (meskobalazs) (*Hungarian*) -- Artem Mikhalitsin (artemmikhalitsin) (*Russian*) -- Algustionesa Yoshi (algustionesa) (*Indonesian*) -- Bottle (suryasalem2010) (*Tamil*) +- Asbjørn Olling (a2) (*Danish*) +- REMOVED_USER (*Chinese Traditional, Hong Kong*) +- DarkShy Community (ponyfrost.mc) (*Russian*) +- Dennis Reimund (reimunddennis7) (*German*) +- jocafeli (*Spanish, Mexico*) - Wrya ali (John12) (*Sorani (Kurdish)*) +- Bottle (suryasalem2010) (*Tamil*) +- Algustionesa Yoshi (algustionesa) (*Indonesian*) - JzshAC (*Chinese Simplified*) +- Artem Mikhalitsin (artemmikhalitsin) (*Russian*) - siamano (*Thai, Esperanto*) -- gnu-ewm (*Polish*) -- Antillion (antillion99) (*Spanish*) +- KARARTI44 (kararti44) (*Turkish*) +- c0c (*Irish*) +- Stefano S. (Sting1_JP) (*Italian*) +- tommil (*Finnish*) +- Ignacio Lis (ilis) (*Galician*) - Steven Tappert (sammy8806) (*German*) -- Reg3xp (*Persian*) +- Antillion (antillion99) (*Spanish*) +- K.B.Dharun Krishna (kbdharun) (*Tamil*) - Wassim EL BOUHAMIDI (elbouhamidiw) (*Arabic*) +- Reg3xp (*Persian*) +- florentVgn (*French*) +- Matt (Exbu) (*Dutch*) - Maciej Błędkowski (mble) (*Polish*) - gowthamanb (*Tamil*) - hiphipvargas (*Portuguese*) -- tunisiano187 (*French*) +- GabuVictor (*Portuguese, Brazilian*) +- Pverte (*French*) +- REMOVED_USER (*Spanish*) +- Surindaku (*Chinese Simplified*) - Arttu Ylhävuori (arttu.ylhavuori) (*Finnish*) -- Ch. (sftblw) (*Korean*) -- eorn (*Breton*) +- Pabllo Soares (pabllosoarez) (*Portuguese, Brazilian*) - Jona (88wcJoWl) (*Spanish*) -- Mikkel B. Goldschmidt (mikkelbjoern) (*Danish*) -- Timo Tijhof (Krinkle) (*Dutch*) - Ka2n (kaanmetu) (*Turkish*) - tctovsli (*Norwegian Nynorsk*) -- mecqor labi (mecqorlabi) (*Persian*) +- Timo Tijhof (Krinkle) (*Dutch*) +- SamitiMed (samiti3d) (*Thai*) +- Mikkel B. Goldschmidt (mikkelbjoern) (*Danish*) - Odyssey346 (alexader612) (*Norwegian*) +- mecqor labi (mecqorlabi) (*Persian*) +- Cù Huy Phúc Khang (taamee) (*Vietnamese*) +- Oskari Lavinto (olavinto) (*Finnish*) +- Philippe Lemaire (philippe-lemaire) (*Esperanto*) - vjasiegd (*Polish*) -- Eban (ebanDev) (*French, Esperanto*) -- SamitiMed (samiti3d) (*Thai*) +- Eban (ebanDev) (*Esperanto, French*) - Nícolas Lavinicki (nclavinicki) (*Portuguese, Brazilian*) +- REMOVED_USER (*Portuguese, Brazilian*) - Rekan Adl (rekan-adl1) (*Sorani (Kurdish)*) -- Antara2Cinta (Se7enTime) (*Indonesian*) -- Yassine Aït-El-Mouden (yaitelmouden) (*Standard Moroccan Tamazight*) - VSx86 (*Russian*) - umelard (*Hebrew*) +- Antara2Cinta (Se7enTime) (*Indonesian*) +- Lucas_NL (*Dutch*) +- Yassine Aït-El-Mouden (yaitelmouden) (*Standard Moroccan Tamazight*) +- Mathieu Marquer (slasherfun) (*French*) +- Haerul Fuad (Dokuwiki) (*Indonesian*) - parnikkapore (*Thai*) -- Lagash (lagash) (*Esperanto*) +- Michelle M (MichelleMMM) (*Dutch*) +- malbona (*Esperanto*) - Sherwan Othman (sherwanothman11) (*Sorani (Kurdish)*) -- SKELET (*Danish*) -- Exbu (*Dutch*) +- Lagash (lagash) (*Esperanto*) - Chine Sebastien (chine.sebastien) (*French*) -- Fei Yang (Fei1Yang) (*Chinese Traditional*) +- bgme (*Chinese Simplified*) +- Rafael V. (Rafaeeel) (*Portuguese, Brazilian*) +- SKELET (*Danish*) - A A (sebastien.chine) (*French*) +- Project Z (projectz.1338) (*German*) +- Fei Yang (Fei1Yang) (*Chinese Traditional*) - Ğani (freegnu) (*Tatar*) -- enipra (*Armenian*) -- Renato "Lond" Cerqueira (renatolond) (*Portuguese, Brazilian*) - musix (*Persian*) -- ギャラ (gyara) (*Japanese, Chinese Simplified*) +- REMOVED_USER (*German*) - ALEM FARID (faridatcemlulaqbayli) (*Kabyle*) +- Jean-Pierre MÉRESSE (Jipem) (*French*) +- enipra (*Armenian*) +- Serhiy Dmytryshyn (dies) (*Ukrainian*) +- Eric Brulatout (ebrulato) (*Esperanto*) - Hougo (hougo) (*French*) -- Mordi Sacks (MordiSacks) (*Hebrew*) -- Trinsec (*Dutch*) -- Adrián Lattes (haztecaso) (*Spanish*) +- Sonstwer (*German*) +- Pedro Fernandes (djprmf) (*Portuguese*) +- REMOVED_USER (*Norwegian*) - Tigran's Tips (tigrank08) (*Armenian*) - 亜緯丹穂 (ayiniho) (*Japanese*) +- maisui (*Chinese Simplified*) +- Trinsec (*Dutch*) +- Adrián Lattes (haztecaso) (*Spanish*) +- webkinzfrog (*Polish*) - ybardapurkar (*Marathi*) +- Mordi Sacks (MordiSacks) (*Hebrew*) +- Manuel Tassi (Mannivu) (*Italian*) - Szabolcs Gál (galszabolcs810624) (*Hungarian*) -- Vladislav Săcrieriu (vladislavs14) (*Romanian*) +- rikrise (*Swedish*) +- when_hurts (*German*) +- Wojciech Bigosinski (wbigos2) (*Polish*) +- Vladislav S (vladislavs) (*Romanian*) +- mikslatvis (*Latvian*) +- MartinAlstad (*Norwegian*) - TracyJacks (*Chinese Simplified*) - rasheedgm (*Kannada*) -- danreznik (*Hebrew*) - Cirelli (cirelli94) (*Italian*) +- danreznik (*Hebrew*) +- iraline (*Portuguese, Brazilian*) +- Seán Mór (seanmor3) (*Irish*) +- vianaweb (*Portuguese, Brazilian*) - Siddharastro Doraku (sidharastro) (*Spanish, Mexico*) -- lexxai (*Ukrainian*) +- REMOVED_USER (*Spanish*) - omquylzu (*Latvian*) +- Arthegor (*French*) - Navjot Singh (nspeaks) (*Hindi*) - mkljczk (*Polish*) - Belkacem Mohammed (belkacem77) (*Kabyle*) +- Showfom (*Chinese Simplified*) +- xemyst (*Catalan*) +- lexxai (*Ukrainian*) - c6ristian (*German*) -- damascene (*Arabic*) +- svetlozaurus (*Bulgarian*) - Ozai (*German*) +- damascene (*Arabic*) +- Jan Ainali (Ainali) (*Swedish*) - Sahak Petrosyan (petrosyan) (*Armenian*) +- Metehan Özyürek (MetehanOzyurek) (*Turkish*) +- Сау Рэмсон (sawrams) (*Russian*) +- metehan-arslan (*Turkish*) - Viorel-Cătălin Răpițeanu (rapiteanu) (*Romanian*) -- Siddhartha Sarathi Basu (quinoa_biryani) (*Bengali*) +- Sébastien SERRE (sebastienserre) (*French*) +- Eugen Caruntu (eugencaruntu) (*Romanian*) +- Kevin Scannell (kscanne) (*Irish*) - Pachara Chantawong (pachara2202) (*Thai*) -- Skew (noan.perrot) (*French*) +- bensch.dev (*German*) +- LIZH (*French*) +- Siddhartha Sarathi Basu (quinoa_biryani) (*Bengali*) +- Overflow Cat (OverflowCat) (*Chinese Traditional, Chinese Simplified*) +- Stephan Voeth (svoeth) (*German*) - Zijian Zhao (jobs2512821228) (*Chinese Simplified*) -- Overflow Cat (OverflowCat) (*Chinese Simplified, Chinese Traditional*) +- bugboy-20 (*Esperanto, Italian*) +- SouthFox (*Chinese Simplified*) +- Noan (SkewRam) (*French*) - dbeaver (*German*) -- zordsdavini (*Lithuanian*) -- Guru Prasath Anandapadmanaban (guruprasath) (*Tamil*) - turtle836 (*German*) +- Guru Prasath Anandapadmanaban (guruprasath) (*Tamil*) +- zordsdavini (*Lithuanian*) +- Susanna Ånäs (susanna.anas) (*Finnish*) +- Alessandro (alephoto85) (*Italian*) - Marcepanek_ (thekingmarcepan) (*Polish*) -- Feruz Oripov (FeruzOripov) (*Russian*) +- Choi Younsoo (usagicore) (*Korean*) - Yann Aguettaz (yann-a) (*French*) +- zylosophe (*French*) +- Celso Fernandes (Celsof) (*Portuguese, Brazilian*) +- Feruz Oripov (FeruzOripov) (*Russian*) +- REMOVED_USER (*French*) +- Bui Huy Quang (bhuyquang1) (*Vietnamese*) +- bogomilshopov (*Bulgarian*) +- REMOVED_USER (*Burmese*) +- Kaede (kaedech) (*Japanese*) - Mick Onio (xgc.redes) (*Asturian*) - Malik Mann (dermalikmann) (*German*) - padulafacundo (*Spanish*) +- r3dsp1 (*Chinese Traditional, Hong Kong*) - dadosch (*German*) -- hg6 (*Hindi*) - Tianqi Zhang (tina.zhang040609) (*Chinese Simplified*) -- r3dsp1 (*Chinese Traditional, Hong Kong*) -- johannes hove-henriksen (J0hsHH) (*Norwegian*) +- HybridGlucose (*Chinese Traditional*) +- vmichalak (*French*) +- hg6 (*Hindi*) +- marivisales (*Portuguese, Brazilian*) - Orlando Murcio (Atos20) (*Spanish, Mexico*) -- cenegd (*Chinese Simplified*) +- maa123 (*Japanese*) +- Julian Doser (julian21) (*English, United Kingdom, German*) +- johannes hove-henriksen (J0hsHH) (*Norwegian*) +- Alexander Ivanov (Saiv46) (*Russian*) +- unstable.icu (*Chinese Simplified*) +- Padraic Calpin (padraic-padraic) (*Slovenian*) - Youngeon Lee (YoungeonLee) (*Korean*) +- LeJun (le-jun) (*French*) - shdy (*German*) -- Umi (mtrumi) (*Chinese Simplified, Chinese Traditional, Hong Kong*) -- Padraic Calpin (padraic-padraic) (*Slovenian*) -- Ильзира Рахматуллина (rahmatullinailzira53) (*Tatar*) +- REMOVED_USER (*French*) +- Yonjae Lee (yonjlee) (*Korean*) +- cenegd (*Chinese Simplified*) - piupiupiudiu (*Chinese Simplified*) -- Pixelcode (realpixelcode) (*German*) -- Dennis Reimund (reimunddennis7) (*German*) +- Umi (mtrumi) (*Chinese Traditional, Hong Kong, Chinese Simplified*) - Yogesh K S (yogi) (*Kannada*) +- Ulong32 (*Japanese*) - Adithya K (adithyak04) (*Malayalam*) - DAI JIE (daijie) (*Chinese Simplified*) +- Mihael Budeč (milli.pretili) (*Croatian*) - Hugh Liu (youloveonlymeh) (*Chinese Simplified*) -- Rakino (rakino) (*Chinese Simplified*) - ZQYD (*Chinese Simplified*) - X.M (kimonoki) (*Chinese Simplified*) -- boni777 (*Chinese Simplified*) +- Rakino (rakino) (*Chinese Simplified*) +- paziy Georgi (paziygeorgi4) (*Dutch*) +- Komeil Parseh (mmdbalkhi) (*Persian*) - Jothipazhani Nagarajan (jothipazhani.n) (*Tamil*) -- Miquel Sabaté Solà (mssola) (*Catalan*) +- tikky9 (*Portuguese, Brazilian*) +- horsm (*Finnish*) +- BenJule (*German*) - Stanisław Jelnicki (JelNiSlaw) (*Polish*) +- Yananas (wangyanyan.hy) (*Chinese Simplified*) +- Vivamus (elaaksu) (*Turkish*) +- ihealyou (*Italian*) - AmazighNM (*Kabyle*) +- Miquel Sabaté Solà (mssola) (*Catalan*) +- residuum (*German*) +- nua_kr (*Korean*) +- Andrea Mazzilli (andreamazzilli) (*Italian*) +- Paula SIMON (EncoreEutIlFalluQueJeLeSusse) (*French*) +- hallomaurits (*Dutch*) +- Erfan Kheyrollahi Qaroğlu (ekm507) (*Persian*) +- REMOVED_USER (*Galician, Spanish*) - alnd hezh (alndhezh) (*Sorani (Kurdish)*) -- CloudSet (*Chinese Simplified*) - Clash Clans (KURD12345) (*Sorani (Kurdish)*) -- Metehan Özyürek (MetehanOzyurek) (*Turkish*) -- Paula SIMON (EncoreEutIlFalluQueJeLeSusse) (*French*) +- ruok (*Chinese Simplified*) +- Frederik-FJ (*German*) +- CloudSet (*Chinese Simplified*) - Solid Rhino (SolidRhino) (*Dutch*) -- nua_kr (*Korean*) -- hallomaurits (*Dutch*) -- 林水溶 (shuiRong) (*Chinese Simplified*) -- rikrise (*Swedish*) -- Takeshi Umeda (noellabo) (*Japanese*) +- hussama (*Portuguese, Brazilian*) +- jazzynico (*French*) - k_taka (peaceroad) (*Japanese*) +- 林水溶 (shuiRong) (*Chinese Simplified*) +- Peter Lutz (theellutzo) (*German*) - Sébastien Feugère (smonff) (*French*) +- AnalGoddess770 (*Hebrew*) +- Sven Goller (svengoller) (*German*) +- Ahmet (ahmetlii) (*Turkish*) +- hosted22 (*German*) - Hallo Abdullah (hallo_hamza12) (*Sorani (Kurdish)*) -- hussama (*Portuguese, Brazilian*) -- EzigboOmenana (*Cornish*) +- Karam Hamada (TheKaram) (*Arabic*) +- Takeshi Umeda (noellabo) (*Japanese*) +- SnDer (*Dutch*) - Robert Yano (throwcalmbobaway) (*Spanish, Mexico*) -- Yasin İsa YILDIRIM (redsfyre) (*Turkish*) -- PifyZ (*French*) -- Tagada (Tagadda) (*French*) -- eichkat3r (*German*) -- Ashok314 (ashok314) (*Hindi*) +- Gustav Lindqvist (Reedyn) (*Swedish*) +- Dagur Ammendrup (dagurp) (*Icelandic*) +- shafouz (*Portuguese, Brazilian*) +- Miguel Branco (mglbranco) (*Galician*) +- Sergey Panteleev (saundefined) (*Russian*) +- Tom_ (*Czech*) - Zlr- (cZeler) (*French*) -- SnDer (*Dutch*) -- OminousCry (*Russian*) +- Ashok314 (ashok314) (*Hindi*) +- PifyZ (*French*) +- Zeyi Fan (fanzeyi) (*Chinese Simplified*) +- OminousCry (*Russian, Ukrainian*) - Adam Sapiński (Adamos9898) (*Polish*) -- Tom_ (*Czech*) -- shafouz (*Portuguese, Brazilian*) -- Shrinivasan T (tshrinivasan) (*Tamil*) -- Kk (kishorkumara3) (*Kannada*) -- Swati Sani (swatisani) (*Urdu (Pakistan)*) -- papayaisnotafood (*Chinese Traditional*) -- さっかりんにーさん (saccharin23) (*Japanese*) +- eichkat3r (*German*) +- Yasin İsa YILDIRIM (redsfyre) (*Turkish*) +- Tagada (Tagadda) (*French*) +- gasrios (*Portuguese, Brazilian*) +- 夜楓Yoka (Yoka2627) (*Chinese Simplified*) +- AniCommieDDR (*Russian*) +- Nathaël Noguès (NatNgs) (*French*) - Daniel M. (daniconil) (*Catalan*) - César Daniel Cavanzo Quintero (LeinadCQ) (*Esperanto*) -- Nathaël Noguès (NatNgs) (*French*) -- 夜楓Yoka (Yoka2627) (*Chinese Simplified*) +- Noam Tamim (noamtm) (*Hebrew*) +- papayaisnotafood (*Chinese Traditional*) +- さっかりんにーさん (saccharin23) (*Japanese*) +- Marcin Wolski (martinwolski) (*Polish*) +- REMOVED_USER (*Chinese Simplified*) +- Kk (kishorkumara3) (*Kannada*) +- Shrinivasan T (tshrinivasan) (*Tamil*) +- REMOVED_USER (Urdu (Pakistan)) +- Kakarico Bra (kakarico20) (*Portuguese, Brazilian*) +- Swati Sani (swatisani) (*Urdu (Pakistan)*) +- 快乐的老鼠宝宝 (LaoShuBaby) (*Chinese Simplified, Chinese Traditional*) - Mt Front (mtfront) (*Chinese Simplified*) -- Artem (Artem4ik) (*Russian*) -- Robin van der Vliet (RobinvanderVliet) (*Esperanto*) -- Tradjincal (tradjincal) (*French*) - SusVersiva (*Catalan*) +- REMOVED_USER (*Portuguese, Brazilian*) +- Avinash Mg (hatman290) (*Malayalam*) +- kruijs (*Dutch*) +- Artem (Artem4ik) (*Russian*) - Zinkokooo (*Basque*) -- Marvin (magicmarvman) (*German*) +- 劉昌賢 (twcctz500) (*Chinese Traditional*) - Vikatakavi (*Kannada*) +- Tradjincal (tradjincal) (*French*) +- Robin van der Vliet (RobinvanderVliet) (*Esperanto*) +- Marvin (magicmarvman) (*German*) - pullopen (*Chinese Simplified*) -- sergioaraujo1 (*Portuguese, Brazilian*) -- prabhjot (*Hindi*) -- CyberAmoeba (pseudoobscura) (*Chinese Simplified*) -- mmokhi (*Persian*) +- Tealk (*German*) +- tibequadorian (*German*) +- Henk Bulder (henkbulder) (*Dutch*) +- Edison Lee (edisonlee55) (*Chinese Traditional*) +- mpdude (*German*) +- Rijk van Geijtenbeek (rvangeijtenbeek) (*Dutch*) - Entelekheia-ousia (*Chinese Simplified*) +- REMOVED_USER (*Spanish*) +- sergioaraujo1 (*Portuguese, Brazilian*) - Livingston Samuel (livingston) (*Tamil*) +- mmokhi (*Persian*) - tsundoker (*Malayalam*) -- skaaarrr (*German*) -- Pierre Morvan (Iriep) (*Breton*) +- CyberAmoeba (pseudoobscura) (*Chinese Simplified*) +- prabhjot (*Hindi*) +- Ikka Putri (ikka240290) (*Indonesian, Danish, English, United Kingdom*) - Paz Galindo (paz.almendra.g) (*Spanish*) -- fedot (*Russian*) -- mkljczk (mykylyjczyk) (*Polish*) - Ricardo Colin (rysard) (*Spanish*) -- Philipp Fischbeck (PFischbeck) (*German*) +- Pierre Morvan (Iriep) (*Breton*) - oscfd (*Spanish*) +- Thies Mueller (thies00) (*German*) +- Lyra (teromene) (*French*) +- Kedr (lava20121991) (*Esperanto*) +- mkljczk (mykylyjczyk) (*Polish*) +- fedot (*Russian*) +- Philipp Fischbeck (PFischbeck) (*German*) +- Hasan Berkay Çağır (berkaycagir) (*Turkish*) +- Silvestri Nicola (nick99silver) (*Italian*) +- skaaarrr (*German*) +- Mo Rijndael (mo_rijndael) (*Russian*) +- tsesunnaallun (orezraey) (*Portuguese, Brazilian*) +- Lukas Fülling (lfuelling) (*German*) +- Algo (algovigura) (*Indonesian*) +- REMOVED_USER (*Spanish*) +- setthemfree (*Ukrainian*) +- i fly (ifly3years) (*Chinese Simplified*) +- ralozkolya (*Georgian*) - Zoé Bőle (zoe1337) (*German*) +- Ville Rantanen (vrntnn) (*Finnish*) - GaggiX (*Italian*) - JackXu (Merman-Jack) (*Chinese Simplified*) -- Lukas Fülling (lfuelling) (*German*) -- ralozkolya (*Georgian*) -- Jason Gibson (barberpike606) (*Slovenian, Chinese Simplified*) -- Dremski (*Bulgarian*) -- Kaede (kaedech) (*Japanese*) -- Aymeric (AymBroussier) (*French*) -- mashirozx (*Chinese Simplified*) -- María José Vera (mjverap) (*Spanish*) -- asala4544 (*Basque*) -- ronee (*Kurmanji (Kurdish)*) -- qwerty287 (*German*) -- pezcurrel (*Italian*) -- Anoop (anoopp) (*Malayalam*) +- ceonia (*Chinese Traditional, Hong Kong*) +- Emirhan Yavuz (takomlii) (*Turkish*) +- teezeh (*German*) +- MevLyshkin (Leinnan) (*Polish*) - Apple (blackteaovo) (*Chinese Simplified*) -- Lilian Nabati (Lilounab49) (*French*) -- ru_mactunnag (*Scottish Gaelic*) -- Nocta (*French*) +- qwerty287 (*German*) - Tangcuyu (*Chinese Simplified*) +- Nocta (*French*) +- ru_mactunnag (*Scottish Gaelic*) +- Lilian Nabati (Lilounab49) (*French*) +- lokalisoija (*Finnish*) - Dennis Reimund (reimund_dennis) (*German*) -- Albatroz Jeremias (albjeremias) (*Portuguese*) -- Xurxo Guerra (xguerrap) (*Galician*) +- ronee (*Kurmanji (Kurdish)*) +- EricVogt_ (*Spanish*) +- yu miao (metaxx.dev) (*Chinese Simplified*) +- Anoop (anoopp) (*Malayalam*) - Samir Tighzert (samir_t7) (*Kabyle*) -- lokalisoija (*Finnish*) +- sn02 (*German*) +- Yui Karasuma (yui87) (*Japanese*) +- asala4544 (*Basque*) +- Thibaut Rousseau (thiht44) (*French*) +- Jason Gibson (barberpike606) (*Slovenian, Chinese Simplified*) +- Sugar NO (g1024116707) (*Chinese Simplified*) +- Aymeric (AymBroussier) (*French*) +- pezcurrel (*Italian*) +- Xurxo Guerra (xguerrap) (*Galician*) +- nicosomb (*French*) +- Albatroz Jeremias (albjeremias) (*Portuguese*) +- María José Vera (mjverap) (*Spanish*) +- mashirozx (*Chinese Simplified*) - codl (*French*) -- thisdudeisvegan (braydofficial) (*German*) -- tamaina (*Japanese*) +- Doug (douglasalvespe) (*Portuguese, Brazilian*) - Matias Lavik (matiaslavik) (*Norwegian Nynorsk*) -- Aman Alam (aalam) (*Punjabi*) +- random_person (*Spanish*) +- whoeta (wh0eta) (*Russian*) +- xpac1985 (xpac) (*German*) +- thisdudeisvegan (braydofficial) (*German*) +- Fleva (*Sardinian*) +- Anonymous (Anonymous666) (*Russian*) +- Mohammad Adnan Mahmood (adnanmig) (*Arabic*) +- ÀŘǾŚ PÀŚĦÀÍ (arospashai) (*Sorani (Kurdish)*) +- mikel (mikelalas) (*Spanish*) +- Trond Boksasp (boksasp) (*Norwegian*) +- asretro (*Chinese Traditional, Hong Kong*) - Holger Huo (holgerhuo) (*Chinese Simplified*) -- Amith Raj Shetty (amithraj1989) (*Kannada*) +- Aman Alam (aalam) (*Punjabi*) +- smedvedev (*Russian*) +- Jay Lonnquist (crowkeep) (*Japanese*) - mimikun (*Japanese*) +- Mohd Bilal (mdb571) (*Malayalam*) +- veer66 (*Thai*) +- OpenAlgeria (*Arabic*) +- Rave (nayumi-464812844) (*Vietnamese*) +- ReavedNetwork (*German*) +- Michael (Discostu36) (*German*) +- tamaina (*Japanese*) +- sk22 (*German*) - Ragnars Eggerts (rmegg1933) (*Latvian*) -- ÀŘǾŚ PÀŚĦÀÍ (arospashai) (*Sorani (Kurdish)*) -- smedvedev (*Russian*) - Sais Lakshmanan (Saislakshmanan) (*Tamil*) -- Mohammad Adnan Mahmood (adnanmig) (*Arabic*) -- OpenAlgeria (*Arabic*) -- Trond Boksasp (boksasp) (*Norwegian*) -- Doug (douglasalvespe) (*Portuguese, Brazilian*) -- Mohd Bilal (mdb571) (*Malayalam*) -- Fleva (*Sardinian*) -- xpac1985 (xpac) (*German*) -- mikel (mikelalas) (*Spanish*) -- random_person (*Spanish*) -- asretro (*Chinese Traditional, Hong Kong*) -- Arĝentakato (argxentakato) (*Japanese*) -- Nithya Mary (nithyamary25) (*Tamil*) -- Azad ahmad (dashty) (*Sorani (Kurdish)*) +- Amith Raj Shetty (amithraj1989) (*Kannada*) - Bartek Fijałkowski (brateq) (*Polish*) +- Asbeltrion (*Spanish*) +- Michael Horstmann (mhrstmnn) (*German*) +- Joffrey Abeilard (Abeilard14) (*French*) +- capiscuas (*Spanish*) +- djoerd (*Dutch*) +- REMOVED_USER (*Spanish*) +- NeverMine17 (*Russian*) +- songxianj (songxian_jiang) (*Chinese Simplified*) +- Ács Zoltán (zoli111) (*Hungarian*) +- haaninjo (*Swedish*) +- REMOVED_USER (*Esperanto*) +- Philip Molares (DerMolly) (*German*) +- ChalkPE (amato0617) (*Korean*) - ebrezhoneg (*Breton*) +- 디떱 (diddub) (*Korean*) +- Hans (hansj) (*German*) +- Nithya Mary (nithyamary25) (*Tamil*) +- kavitha129 (*Tamil*) +- waweic (*German*) +- Aries (orlea) (*Japanese*) +- おさ (osapon) (*Japanese*) +- Abijeet Patro (Abijeet) (*Basque*) +- centumix (*Japanese*) +- Martin Müller (muellermartin) (*German*) +- tateisu (*Japanese*) +- Arĝentakato (argxentakato) (*Japanese*) +- Benjamin Cobb (benjamincobb) (*German*) +- deanerschnitzel (*German*) +- Jill H. (kokakiwi) (*French*) - maksutheam (*Finnish*) +- d0p1 (d0p1s4m4) (*French*) - majorblazr (*Danish*) -- Jill H. (kokakiwi) (*French*) - Patrice Boivin (patriceboivin58) (*French*) -- centumix (*Japanese*) - 江尚寒 (jiangshanghan) (*Chinese Simplified*) -- hud5634j (*Spanish*) -- おさ (osapon) (*Japanese*) -- Jiniux (*Italian*) -- Hannah (Aniqueper1) (*Chinese Simplified*) -- Ni Futchi (futchitwo) (*Japanese*) -- dobrado (*Portuguese, Brazilian*) -- dcapillae (*Spanish*) +- HSD Channel (kvdbve34) (*Russian*) +- alwyn joe (iomedivh200) (*Chinese Simplified*) +- ZHY (sheepzh) (*Chinese Simplified*) +- Bei Li (libei) (*Chinese Simplified*) +- Aluo (Aluo_rbszd) (*Chinese Simplified*) +- clarkzjw (*Chinese Simplified*) +- Noah Luppe (noahlup) (*German*) +- araghunde (*Galician*) +- BratishkaErik (*Russian*) +- Bunny9568 (*Chinese Simplified*) +- SamOak (*Portuguese, Brazilian*) - Ranj A Abdulqadir (RanjAhmed) (*Sorani (Kurdish)*) -- Kurdish Translator (Kurdish.boy) (*Sorani (Kurdish)*) - Amir Kurdo (kuraking202) (*Sorani (Kurdish)*) -- umonaca (*Chinese Simplified*) -- Jari Ronkainen (ronchaine) (*Finnish*) -- djoerd (*Dutch*) -- Savarín Electrográfico Marmota Intergalactica (herrero.maty) (*Spanish*) - 于晚霞 (xissshawww) (*Chinese Simplified*) -- tateisu (*Japanese*) -- NeverMine17 (*Russian*) +- Fyuoxyjidyho Moiodyyiodyhi (fyuodchiodmoiidiiduh86) (*Chinese Simplified*) +- RPD0911 (*Hungarian*) +- dcapillae (*Spanish*) +- dobrado (*Portuguese, Brazilian*) +- Hannah (Aniqueper1) (*Chinese Simplified*) +- Azad ahmad (dashty) (*Sorani (Kurdish)*) +- Uri Chachick (urich.404) (*Hebrew*) +- Bnoru (*Portuguese, Brazilian*) +- Jiniux (*Italian*) +- REMOVED_USER (*German*) +- Salh_haji6 (Sorani (Kurdish)) +- Kurdish Translator (*Kurdish.boy) (Sorani (Kurdish)*) +- Beagle (beagleworks) (*Japanese*) +- hud5634j (*Spanish*) +- Kisaragi Hiu (flyingfeather1501) (*Chinese Traditional*) +- Dominik Ziegler (dodomedia) (*German*) - soheilkhanalipur (*Persian*) -- SamOak (*Portuguese, Brazilian*) -- kavitha129 (*Tamil*) -- Salh_haji6 (*Sorani (Kurdish)*) - Brodi (brodi1) (*Dutch*) -- capiscuas (*Spanish*) -- HSD Channel (kvdbve34) (*Russian*) -- Abijeet Patro (Abijeet) (*Basque*) -- Ács Zoltán (zoli111) (*Hungarian*) -- Benjamin Cobb (benjamincobb) (*German*) -- waweic (*German*) -- Aries (orlea) (*Japanese*) +- Savarín Electrográfico Marmota Intergalactica (herrero.maty) (*Spanish*) +- Ni Futchi (futchitwo) (*Japanese*) +- Zois Lee (gcnwm) (*Chinese Simplified*) +- Arnold Marko (atomicmind) (*Slovenian*) +- scholzco (*German*) +- Jari Ronkainen (ronchaine) (*Finnish*) +- umonaca (*Chinese Simplified*) diff --git a/Aptfile b/Aptfile index 9235141ad5e1d7..a52eef4e184e88 100644 --- a/Aptfile +++ b/Aptfile @@ -1,8 +1,8 @@ ffmpeg libicu[0-9][0-9] libicu-dev -libidn11 -libidn11-dev +libidn12 +libidn-dev libpq-dev libxdamage1 libxfixes3 diff --git a/CHANGELOG.md b/CHANGELOG.md index ed4cdd881a3a9e..b1ad9e5fd90aee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,216 @@ Changelog All notable changes to this project will be documented in this file. +## [4.0.2] - 2022-11-15 +### Fixed + +- Fix wrong color on mentions hidden behind content warning in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20724)) +- Fix filters from other users being used in the streaming service ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20719)) +- Fix `unsafe-eval` being used when `wasm-unsafe-eval` is enough in Content Security Policy ([Gargron](https://github.com/mastodon/mastodon/pull/20729), [prplecake](https://github.com/mastodon/mastodon/pull/20606)) + +## [4.0.1] - 2022-11-14 +### Fixed + +- Fix nodes order being sometimes mangled when rewriting emoji ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20677)) + +## [4.0.0] - 2022-11-14 + +Some of the features in this release have been funded through the [NGI0 Discovery](https://nlnet.nl/discovery) Fund, a fund established by [NLnet](https://nlnet.nl/) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322. + +### Added + +- Add ability to filter followed accounts' posts by language ([Gargron](https://github.com/mastodon/mastodon/pull/19095), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19268)) +- **Add ability to follow hashtags** ([Gargron](https://github.com/mastodon/mastodon/pull/18809), [Gargron](https://github.com/mastodon/mastodon/pull/18862), [Gargron](https://github.com/mastodon/mastodon/pull/19472), [noellabo](https://github.com/mastodon/mastodon/pull/18924)) +- Add ability to filter individual posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18945)) +- **Add ability to translate posts** ([Gargron](https://github.com/mastodon/mastodon/pull/19218), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19433), [Gargron](https://github.com/mastodon/mastodon/pull/19453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19434), [Gargron](https://github.com/mastodon/mastodon/pull/19388), [ykzts](https://github.com/mastodon/mastodon/pull/19244), [Gargron](https://github.com/mastodon/mastodon/pull/19245)) +- Add featured tags to web UI ([noellabo](https://github.com/mastodon/mastodon/pull/19408), [noellabo](https://github.com/mastodon/mastodon/pull/19380), [noellabo](https://github.com/mastodon/mastodon/pull/19358), [noellabo](https://github.com/mastodon/mastodon/pull/19409), [Gargron](https://github.com/mastodon/mastodon/pull/19382), [ykzts](https://github.com/mastodon/mastodon/pull/19418), [noellabo](https://github.com/mastodon/mastodon/pull/19403), [noellabo](https://github.com/mastodon/mastodon/pull/19404), [Gargron](https://github.com/mastodon/mastodon/pull/19398), [Gargron](https://github.com/mastodon/mastodon/pull/19712), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20018)) +- **Add support for language preferences for trending statuses and links** ([Gargron](https://github.com/mastodon/mastodon/pull/18288), [Gargron](https://github.com/mastodon/mastodon/pull/19349), [ykzts](https://github.com/mastodon/mastodon/pull/19335)) + - Previously, you could only see trends in your current language + - For less popular languages, that meant empty trends + - Now, trends in your preferred languages' are shown on top, with others beneath +- Add server rules to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/19296)) +- Add privacy icons to report modal in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19190)) +- Add `noopener` to links to remote profiles in web UI ([shleeable](https://github.com/mastodon/mastodon/pull/19014)) +- Add option to open original page in dropdowns of remote content in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20299)) +- Add warning for sensitive audio posts in web UI ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17885)) +- Add language attribute to posts in web UI ([tribela](https://github.com/mastodon/mastodon/pull/18544)) +- Add support for uploading WebP files ([Saiv46](https://github.com/mastodon/mastodon/pull/18506)) +- Add support for uploading `audio/vnd.wave` files ([tribela](https://github.com/mastodon/mastodon/pull/18737)) +- Add support for uploading AVIF files ([txt-file](https://github.com/mastodon/mastodon/pull/19647)) +- Add support for uploading HEIC files ([Gargron](https://github.com/mastodon/mastodon/pull/19618)) +- Add more debug information when processing remote accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15605), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19209)) +- **Add retention policy for cached content and media** ([Gargron](https://github.com/mastodon/mastodon/pull/19232), [zunda](https://github.com/mastodon/mastodon/pull/19478), [Gargron](https://github.com/mastodon/mastodon/pull/19458), [Gargron](https://github.com/mastodon/mastodon/pull/19248)) + - Set for how long remote posts or media should be cached on your server + - Hands-off alternative to `tootctl` commands +- **Add customizable user roles** ([Gargron](https://github.com/mastodon/mastodon/pull/18641), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18812), [Gargron](https://github.com/mastodon/mastodon/pull/19040), [tribela](https://github.com/mastodon/mastodon/pull/18825), [tribela](https://github.com/mastodon/mastodon/pull/18826), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18776), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18777), [unextro](https://github.com/mastodon/mastodon/pull/18786), [tribela](https://github.com/mastodon/mastodon/pull/18824), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19436)) + - Previously, there were 3 hard-coded roles, user, moderator, and admin + - Create your own roles and decide which permissions they should have +- Add notifications for new reports ([Gargron](https://github.com/mastodon/mastodon/pull/18697), [Gargron](https://github.com/mastodon/mastodon/pull/19475)) +- Add ability to select all accounts matching search for batch actions in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19053), [Gargron](https://github.com/mastodon/mastodon/pull/19054)) +- Add ability to view previous edits of a status in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19462)) +- Add ability to block sign-ups from IP ([Gargron](https://github.com/mastodon/mastodon/pull/19037)) +- **Add webhooks to admin UI** ([Gargron](https://github.com/mastodon/mastodon/pull/18510)) +- Add admin API for managing domain allows ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18668)) +- Add admin API for managing domain blocks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18247)) +- Add admin API for managing e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19066)) +- Add admin API for managing canonical e-mail blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19067)) +- Add admin API for managing IP blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19065), [trwnh](https://github.com/mastodon/mastodon/pull/20207)) +- Add `sensitized` attribute to accounts in admin REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20094)) +- Add `services` and `metadata` to the NodeInfo endpoint ([MFTabriz](https://github.com/mastodon/mastodon/pull/18563)) +- Add `--remove-role` option to `tootctl accounts modify` ([Gargron](https://github.com/mastodon/mastodon/pull/19477)) +- Add `--days` option to `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/18425)) +- Add `EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18642)) +- Add `IP_RETENTION_PERIOD` and `SESSION_RETENTION_PERIOD` environment variables ([kescherCode](https://github.com/mastodon/mastodon/pull/18757)) +- Add `http_hidden_proxy` environment variable ([tribela](https://github.com/mastodon/mastodon/pull/18427)) +- Add `ENABLE_STARTTLS` environment variable ([erbridge](https://github.com/mastodon/mastodon/pull/20321)) +- Add caching for payload serialization during fan-out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19637), [Gargron](https://github.com/mastodon/mastodon/pull/19642), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19746), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19747), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19963)) +- Add assets from Twemoji 14.0 ([Gargron](https://github.com/mastodon/mastodon/pull/19733)) +- Add reputation and followers score boost to SQL-only account search ([Gargron](https://github.com/mastodon/mastodon/pull/19251)) +- Add Scots, Balaibalan, Láadan, Lingua Franca Nova, Lojban, Toki Pona to languages list ([VyrCossont](https://github.com/mastodon/mastodon/pull/20168)) +- Set autocomplete hints for e-mail, password and OTP fields ([rcombs](https://github.com/mastodon/mastodon/pull/19833), [offbyone](https://github.com/mastodon/mastodon/pull/19946), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20071)) +- Add support for DigitalOcean Spaces in setup wizard ([v-aisac](https://github.com/mastodon/mastodon/pull/20573)) + +### Changed + +- **Change brand color and logotypes** ([Gargron](https://github.com/mastodon/mastodon/pull/18592), [Gargron](https://github.com/mastodon/mastodon/pull/18639), [Gargron](https://github.com/mastodon/mastodon/pull/18691), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18634), [Gargron](https://github.com/mastodon/mastodon/pull/19254), [mayaeh](https://github.com/mastodon/mastodon/pull/18710)) +- **Change post editing to be enabled in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/19103)) +- **Change web UI to work for logged-out users** ([Gargron](https://github.com/mastodon/mastodon/pull/18961), [Gargron](https://github.com/mastodon/mastodon/pull/19250), [Gargron](https://github.com/mastodon/mastodon/pull/19294), [Gargron](https://github.com/mastodon/mastodon/pull/19306), [Gargron](https://github.com/mastodon/mastodon/pull/19315), [ykzts](https://github.com/mastodon/mastodon/pull/19322), [Gargron](https://github.com/mastodon/mastodon/pull/19412), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19437), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19415), [Gargron](https://github.com/mastodon/mastodon/pull/19348), [Gargron](https://github.com/mastodon/mastodon/pull/19295), [Gargron](https://github.com/mastodon/mastodon/pull/19422), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19414), [Gargron](https://github.com/mastodon/mastodon/pull/19319), [Gargron](https://github.com/mastodon/mastodon/pull/19345), [Gargron](https://github.com/mastodon/mastodon/pull/19310), [Gargron](https://github.com/mastodon/mastodon/pull/19301), [Gargron](https://github.com/mastodon/mastodon/pull/19423), [ykzts](https://github.com/mastodon/mastodon/pull/19471), [ykzts](https://github.com/mastodon/mastodon/pull/19333), [ykzts](https://github.com/mastodon/mastodon/pull/19337), [ykzts](https://github.com/mastodon/mastodon/pull/19272), [ykzts](https://github.com/mastodon/mastodon/pull/19468), [Gargron](https://github.com/mastodon/mastodon/pull/19466), [Gargron](https://github.com/mastodon/mastodon/pull/19457), [Gargron](https://github.com/mastodon/mastodon/pull/19426), [Gargron](https://github.com/mastodon/mastodon/pull/19427), [Gargron](https://github.com/mastodon/mastodon/pull/19421), [Gargron](https://github.com/mastodon/mastodon/pull/19417), [Gargron](https://github.com/mastodon/mastodon/pull/19413), [Gargron](https://github.com/mastodon/mastodon/pull/19397), [Gargron](https://github.com/mastodon/mastodon/pull/19387), [Gargron](https://github.com/mastodon/mastodon/pull/19396), [Gargron](https://github.com/mastodon/mastodon/pull/19385), [ykzts](https://github.com/mastodon/mastodon/pull/19334), [ykzts](https://github.com/mastodon/mastodon/pull/19329), [Gargron](https://github.com/mastodon/mastodon/pull/19324), [Gargron](https://github.com/mastodon/mastodon/pull/19318), [Gargron](https://github.com/mastodon/mastodon/pull/19316), [Gargron](https://github.com/mastodon/mastodon/pull/19263), [trwnh](https://github.com/mastodon/mastodon/pull/19305), [ykzts](https://github.com/mastodon/mastodon/pull/19273), [Gargron](https://github.com/mastodon/mastodon/pull/19801), [Gargron](https://github.com/mastodon/mastodon/pull/19790), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19773), [Gargron](https://github.com/mastodon/mastodon/pull/19798), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19724), [Gargron](https://github.com/mastodon/mastodon/pull/19709), [Gargron](https://github.com/mastodon/mastodon/pull/19514), [Gargron](https://github.com/mastodon/mastodon/pull/19562), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19981), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19978), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20148), [Gargron](https://github.com/mastodon/mastodon/pull/20302), [cutls](https://github.com/mastodon/mastodon/pull/20400)) + - The web app can now be accessed without being logged in + - No more `/web` prefix on web app paths + - Profiles, posts, and other public pages now use the same interface for logged in and logged out users + - The web app displays a server information banner + - Pop-up windows for remote interaction have been replaced with a modal window + - No need to type in your username for remote interaction, copy-paste-to-search method explained + - Various hints throughout the app explain what the different timelines are + - New about page design + - New privacy policy page design shows when the policy was last updated + - All sections of the web app now have appropriate window titles + - The layout of the interface has been streamlined between different screen sizes + - Posts now use more horizontal space +- Change label of publish button to be "Publish" again in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18583)) +- Change language to be carried over on reply in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18557)) +- Change "Unfollow" to "Cancel follow request" when request still pending in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/19363)) +- **Change post filtering system** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18058), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19050), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18894), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19051), [noellabo](https://github.com/mastodon/mastodon/pull/18923), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18744), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19878), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/20567)) + - Filtered keywords and phrases can now be grouped into named categories + - Filtered posts show which exact filter was hit + - Individual posts can be added to a filter + - You can peek inside filtered posts anyway +- Change path of privacy policy page from `/terms` to `/privacy-policy` ([Gargron](https://github.com/mastodon/mastodon/pull/19249)) +- Change how hashtags are normalized ([Gargron](https://github.com/mastodon/mastodon/pull/18795), [Gargron](https://github.com/mastodon/mastodon/pull/18863), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18854)) +- Change settings area to be separated into categories in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19407), [Gargron](https://github.com/mastodon/mastodon/pull/19533)) +- Change "No accounts selected" errors to use the appropriate noun in admin UI ([prplecake](https://github.com/mastodon/mastodon/pull/19356)) +- Change e-mail domain blocks to match subdomains of blocked domains ([Gargron](https://github.com/mastodon/mastodon/pull/18979)) +- Change custom emoji file size limit from 50 KB to 256 KB ([Gargron](https://github.com/mastodon/mastodon/pull/18788)) +- Change "Allow trends without prior review" setting to also work for trending posts ([Gargron](https://github.com/mastodon/mastodon/pull/17977)) +- Change admin announcements form to use single inputs for date and time in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18321)) +- Change search API to be accessible without being logged in ([Gargron](https://github.com/mastodon/mastodon/pull/18963), [Gargron](https://github.com/mastodon/mastodon/pull/19326)) +- Change following and followers API to be accessible without being logged in ([Gargron](https://github.com/mastodon/mastodon/pull/18964)) +- Change `AUTHORIZED_FETCH` to not block unauthenticated REST API access ([Gargron](https://github.com/mastodon/mastodon/pull/19803)) +- Change Helm configuration ([deepy](https://github.com/mastodon/mastodon/pull/18997), [jgsmith](https://github.com/mastodon/mastodon/pull/18415), [deepy](https://github.com/mastodon/mastodon/pull/18941)) +- Change mentions of blocked users to not be processed ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19725)) +- Change max. thumbnail dimensions to 640x360px (360p) ([Gargron](https://github.com/mastodon/mastodon/pull/19619)) +- Change post-processing to be deferred only for large media types ([Gargron](https://github.com/mastodon/mastodon/pull/19617)) +- Change link verification to only work for https links without unicode ([Gargron](https://github.com/mastodon/mastodon/pull/20304), [Gargron](https://github.com/mastodon/mastodon/pull/20295)) +- Change account deletion requests to spread out over time ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20222)) +- Change larger reblogs/favourites numbers to be shortened in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20303)) +- Change incoming activity processing to happen in `ingress` queue ([Gargron](https://github.com/mastodon/mastodon/pull/20264)) +- Change notifications to not link show preview cards in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20335)) +- Change amount of replies returned for logged out users in REST API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20355)) +- Change in-app links to keep you in-app in web UI ([trwnh](https://github.com/mastodon/mastodon/pull/20540), [Gargron](https://github.com/mastodon/mastodon/pull/20628)) +- Change table header to be sticky in admin UI ([sk22](https://github.com/mastodon/mastodon/pull/20442)) + +### Removed + +- Remove setting that disables account deletes ([Gargron](https://github.com/mastodon/mastodon/pull/17683)) +- Remove digest e-mails ([Gargron](https://github.com/mastodon/mastodon/pull/17985)) +- Remove unnecessary sections from welcome e-mail ([Gargron](https://github.com/mastodon/mastodon/pull/19299)) +- Remove item titles from RSS feeds ([Gargron](https://github.com/mastodon/mastodon/pull/18640)) +- Remove volume number from hashtags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19253)) +- Remove Nanobox configuration ([tonyjiang](https://github.com/mastodon/mastodon/pull/17881)) + +### Fixed + +- Fix rules with same priority being sorted non-deterministically ([Gargron](https://github.com/mastodon/mastodon/pull/20623)) +- Fix error when invalid domain name is submitted ([Gargron](https://github.com/mastodon/mastodon/pull/19474)) +- Fix icons having an image role ([Gargron](https://github.com/mastodon/mastodon/pull/20600)) +- Fix connections to IPv6-only servers ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20108)) +- Fix unnecessary service worker registration and preloading when logged out in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20341)) +- Fix unnecessary and slow regex construction ([raggi](https://github.com/mastodon/mastodon/pull/20215)) +- Fix `mailers` queue not being used for mailers ([Gargron](https://github.com/mastodon/mastodon/pull/20274)) +- Fix error in webfinger redirect handling ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20260)) +- Fix report category not being set to `violation` if rule IDs are provided ([trwnh](https://github.com/mastodon/mastodon/pull/20137)) +- Fix nodeinfo metadata attribute being an array instead of an object ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20114)) +- Fix account endorsements not being idempotent ([trwnh](https://github.com/mastodon/mastodon/pull/20118)) +- Fix status and rule IDs not being strings in admin reports REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20122)) +- Fix error on invalid `replies_policy` in REST API ([trwnh](https://github.com/mastodon/mastodon/pull/20126)) +- Fix redrafting a currently-editing post not leaving edit mode in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20023)) +- Fix performance by avoiding method cache busts ([raggi](https://github.com/mastodon/mastodon/pull/19957)) +- Fix opening the language picker scrolling the single-column view to the top in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19983)) +- Fix content warning button missing `aria-expanded` attribute in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19975)) +- Fix redundant `aria-pressed` attributes in web UI ([Brawaru](https://github.com/mastodon/mastodon/pull/19912)) +- Fix crash when external auth provider has no display name set ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19962)) +- Fix followers count not being updated when migrating follows ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19998)) +- Fix double button to clear emoji search input in web UI ([sunny](https://github.com/mastodon/mastodon/pull/19888)) +- Fix missing null check on applications on strike disputes ([kescherCode](https://github.com/mastodon/mastodon/pull/19851)) +- Fix featured tags not saving preferred casing ([Gargron](https://github.com/mastodon/mastodon/pull/19732)) +- Fix language not being saved when editing status ([Gargron](https://github.com/mastodon/mastodon/pull/19543)) +- Fix not being able to input featured tag with hash symbol ([Gargron](https://github.com/mastodon/mastodon/pull/19535)) +- Fix user clean-up scheduler crash when an unconfirmed account has a moderation note ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19629)) +- Fix being unable to withdraw follow request when confirmation modal is disabled in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19687)) +- Fix inaccurate admin log entry for re-sending confirmation e-mails ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19674)) +- Fix edits not being immediately reflected ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19673)) +- Fix bookmark import stopping at the first failure ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19669)) +- Fix account action type validation ([Gargron](https://github.com/mastodon/mastodon/pull/19476)) +- Fix upload progress not communicating processing phase in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19530)) +- Fix wrong host being used for custom.css when asset host configured ([Gargron](https://github.com/mastodon/mastodon/pull/19521)) +- Fix account migration form ever using outdated account data ([Gargron](https://github.com/mastodon/mastodon/pull/18429), [nightpool](https://github.com/mastodon/mastodon/pull/19883)) +- Fix error when uploading malformed CSV import ([Gargron](https://github.com/mastodon/mastodon/pull/19509)) +- Fix avatars not using image tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19488)) +- Fix handling of duplicate and out-of-order notifications in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19693)) +- Fix reblogs being discarded after the reblogged status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19731)) +- Fix indexing scheduler trying to index when Elasticsearch is disabled ([Gargron](https://github.com/mastodon/mastodon/pull/19805)) +- Fix n+1 queries when rendering initial state JSON ([Gargron](https://github.com/mastodon/mastodon/pull/19795)) +- Fix n+1 query during status removal ([Gargron](https://github.com/mastodon/mastodon/pull/19753)) +- Fix OCR not working due to Content Security Policy in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/18817)) +- Fix `nofollow` rel being removed in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19455)) +- Fix language dropdown causing zoom on mobile devices in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19428)) +- Fix button to dismiss suggestions not showing up in search results in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19325)) +- Fix language dropdown sometimes not appearing in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19246)) +- Fix quickly switching notification filters resulting in empty or incorrect list in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19052), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18960)) +- Fix media modal link button in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18877)) +- Fix error upon successful account migration ([Gargron](https://github.com/mastodon/mastodon/pull/19386)) +- Fix negatives values in search index causing queries to fail ([Gargron](https://github.com/mastodon/mastodon/pull/19464), [Gargron](https://github.com/mastodon/mastodon/pull/19481)) +- Fix error when searching for invalid URL ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18580)) +- Fix IP blocks not having a unique index ([Gargron](https://github.com/mastodon/mastodon/pull/19456)) +- Fix remote account in contact account setting not being used ([Gargron](https://github.com/mastodon/mastodon/pull/19351)) +- Fix swallowing mentions of unconfirmed/unapproved users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19191)) +- Fix incorrect and slow cache invalidation when blocking domain and removing media attachments ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19062)) +- Fix HTTPs redirect behaviour when running as I2P service ([gi-yt](https://github.com/mastodon/mastodon/pull/18929)) +- Fix deleted pinned posts potentially counting towards the pinned posts limit ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19005)) +- Fix compatibility with OpenSSL 3.0 ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18449)) +- Fix error when a remote report includes a private post the server has no access to ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18760)) +- Fix suspicious sign-in mails never being sent ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18599)) +- Fix fallback locale when somehow user's locale is an empty string ([tribela](https://github.com/mastodon/mastodon/pull/18543)) +- Fix avatar/header not being deleted locally when deleted on remote account ([tribela](https://github.com/mastodon/mastodon/pull/18973)) +- Fix missing `,` in Blurhash validation ([noellabo](https://github.com/mastodon/mastodon/pull/18660)) +- Fix order by most recent not working for relationships page in admin UI ([tribela](https://github.com/mastodon/mastodon/pull/18996)) +- Fix uncaught error when invalid date is supplied to API ([Gargron](https://github.com/mastodon/mastodon/pull/19480)) +- Fix REST API sometimes returning HTML on error ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19135)) +- Fix ambiguous column names in `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/19206)) +- Fix ambiguous column names in `tootctl search deploy` ([mashirozx](https://github.com/mastodon/mastodon/pull/18993)) +- Fix `CDN_HOST` not being used in some asset URLs ([tribela](https://github.com/mastodon/mastodon/pull/18662)) +- Fix `CAS_DISPLAY_NAME`, `SAML_DISPLAY_NAME` and `OIDC_DISPLAY_NAME` being ignored ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18568)) +- Fix various typos in comments throughout the codebase ([luzpaz](https://github.com/mastodon/mastodon/pull/18604)) +- Fix CSV import error when rows include unicode characters ([HamptonMakes](https://github.com/mastodon/mastodon/pull/20592)) + +### Security + +- Fix being able to spoof link verification ([Gargron](https://github.com/mastodon/mastodon/pull/20217)) +- Fix emoji substitution not applying only to text nodes in backend code ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20641)) +- Fix emoji substitution not applying only to text nodes in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20640)) +- Fix rate limiting for paths with formats ([Gargron](https://github.com/mastodon/mastodon/pull/20675)) +- Fix out-of-bound reads in blurhash transcoder ([delroth](https://github.com/mastodon/mastodon/pull/20388)) + ## [3.5.3] - 2022-05-26 ### Added @@ -75,7 +285,7 @@ All notable changes to this project will be documented in this file. - Remove IP matching from e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/18190)) - The IPs of the blocked e-mail domain or its MX records are no longer checked - Previously it was too easy to block e-mail providers by mistake - + ## Fixed - Fix compatibility with Friendica's pinned posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18254), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18260)) @@ -122,7 +332,7 @@ All notable changes to this project will be documented in this file. ### Fixed -- Fix error resposes for `from` search prefix ([single-right-quote](https://github.com/mastodon/mastodon/pull/17963)) +- Fix error responses for `from` search prefix ([single-right-quote](https://github.com/mastodon/mastodon/pull/17963)) - Fix dangling language-specific trends ([Gargron](https://github.com/mastodon/mastodon/pull/17997)) - Fix extremely rare race condition when deleting a status or account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17994)) - Fix trends returning less results per page when filtered in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/17996)) @@ -257,7 +467,7 @@ All notable changes to this project will be documented in this file. - Remove profile directory link from main navigation panel in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17688)) - **Remove language detection through cld3** ([Gargron](https://github.com/mastodon/mastodon/pull/17478), [ykzts](https://github.com/mastodon/mastodon/pull/17539), [Gargron](https://github.com/mastodon/mastodon/pull/17496), [Gargron](https://github.com/mastodon/mastodon/pull/17722)) - cld3 is very inaccurate on short-form content even with unique alphabets - - Post language can be overriden individually using `language` param + - Post language can be overridden individually using `language` param - Otherwise, it defaults to the user's interface language - Remove support for `OAUTH_REDIRECT_AT_SIGN_IN` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17287)) - Use `OMNIAUTH_ONLY` instead diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3f51c4bd0a0b4b..9963054b394237 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,6 +42,8 @@ It is not always possible to phrase every change in such a manner, but it is des - Code style rules (rubocop, eslint) - Normalization of locale files (i18n-tasks) +**Note**: You may need to log in and authorise the GitHub account your fork of this repository belongs to with CircleCI to enable some of the automated checks to run. + ## Documentation The [Mastodon documentation](https://docs.joinmastodon.org) is a statically generated site. You can [submit merge requests to mastodon/documentation](https://github.com/mastodon/documentation). diff --git a/Dockerfile b/Dockerfile index 2073cbebff1541..cf311fef235c2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ SHELL ["/bin/bash", "-c"] RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections # Install Node v16 (LTS) -ENV NODE_VER="16.14.2" +ENV NODE_VER="16.17.1" RUN ARCH= && \ dpkgArch="$(dpkg --print-architecture)" && \ case "${dpkgArch##*-}" in \ @@ -19,7 +19,7 @@ RUN ARCH= && \ esac && \ echo "Etc/UTC" > /etc/localtime && \ apt-get update && \ - apt-get install -y --no-install-recommends ca-certificates wget python apt-utils && \ + apt-get install -y --no-install-recommends ca-certificates wget python3 apt-utils && \ cd ~ && \ wget -q https://nodejs.org/download/release/v$NODE_VER/node-v$NODE_VER-linux-$ARCH.tar.gz && \ tar xf node-v$NODE_VER-linux-$ARCH.tar.gz && \ @@ -27,7 +27,7 @@ RUN ARCH= && \ mv node-v$NODE_VER-linux-$ARCH /opt/node # Install Ruby 3.0 -ENV RUBY_VER="3.0.3" +ENV RUBY_VER="3.0.4" RUN apt-get update && \ apt-get install -y --no-install-recommends build-essential \ bison libyaml-dev libgdbm-dev libreadline-dev libjemalloc-dev \ diff --git a/Dockerfile.local b/Dockerfile.local new file mode 100644 index 00000000000000..62808fa16b960a --- /dev/null +++ b/Dockerfile.local @@ -0,0 +1,113 @@ +FROM ubuntu:20.04 as build-dep + +# Use bash for the shell +SHELL ["/bin/bash", "-c"] +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections + +# Install Node v16 (LTS) +ENV NODE_VER="16.17.1" +RUN ARCH= && \ + dpkgArch="$(dpkg --print-architecture)" && \ + case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac && \ + echo "Etc/UTC" > /etc/localtime && \ + apt-get update && \ + apt-get install -y --no-install-recommends ca-certificates wget python3 apt-utils && \ + cd ~ && \ + wget -q https://nodejs.org/download/release/v$NODE_VER/node-v$NODE_VER-linux-$ARCH.tar.gz && \ + tar xf node-v$NODE_VER-linux-$ARCH.tar.gz && \ + rm node-v$NODE_VER-linux-$ARCH.tar.gz && \ + mv node-v$NODE_VER-linux-$ARCH /opt/node + +# Install Ruby 3.0 +ENV RUBY_VER="3.0.4" +RUN apt-get update && \ + apt-get install -y --no-install-recommends build-essential \ + bison libyaml-dev libgdbm-dev libreadline-dev libjemalloc-dev \ + libncurses5-dev libffi-dev zlib1g-dev libssl-dev && \ + cd ~ && \ + wget https://cache.ruby-lang.org/pub/ruby/${RUBY_VER%.*}/ruby-$RUBY_VER.tar.gz && \ + tar xf ruby-$RUBY_VER.tar.gz && \ + cd ruby-$RUBY_VER && \ + ./configure --prefix=/opt/ruby \ + --with-jemalloc \ + --with-shared \ + --disable-install-doc && \ + make -j"$(nproc)" > /dev/null && \ + make install && \ + rm -rf ../ruby-$RUBY_VER.tar.gz ../ruby-$RUBY_VER + +ENV PATH="${PATH}:/opt/ruby/bin:/opt/node/bin" + +RUN npm install -g npm@latest && \ + npm install -g yarn && \ + gem install bundler && \ + apt-get update && \ + apt-get install -y --no-install-recommends git libicu-dev libidn11-dev \ + libpq-dev shared-mime-info + +COPY Gemfile* package.json yarn.lock /opt/mastodon/ + +RUN cd /opt/mastodon && \ + bundle config set --local deployment 'true' && \ + bundle config set silence_root_warning true && \ + bundle install -j"$(nproc)" && \ + yarn install --pure-lockfile + +# Add more PATHs to the PATH +ENV PATH="${PATH}:/opt/ruby/bin:/opt/node/bin:/opt/mastodon/bin" + +# Create the mastodon user +ARG UID=991 +ARG GID=991 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN apt-get update && \ + echo "Etc/UTC" > /etc/localtime && \ + apt-get install -y --no-install-recommends whois wget && \ + addgroup --gid $GID mastodon && \ + useradd -m -u $UID -g $GID -d /opt/mastodon mastodon && \ + echo "mastodon:$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 | mkpasswd -s -m sha-256)" | chpasswd && \ + rm -rf /var/lib/apt/lists/* + +# Install mastodon runtime deps +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections +RUN apt-get update && \ + apt-get -y --no-install-recommends install \ + libssl1.1 libpq5 imagemagick ffmpeg libjemalloc2 \ + libicu66 libidn11 libyaml-0-2 \ + file ca-certificates tzdata libreadline8 gcc tini apt-utils && \ + ln -s /opt/mastodon /mastodon && \ + gem install bundler && \ + rm -rf /var/cache && \ + rm -rf /var/lib/apt/lists/* + +# Copy over mastodon source, and dependencies from building, and set permissions +COPY --chown=mastodon:mastodon . /opt/mastodon + +# Run mastodon services in prod mode +ENV RAILS_ENV="development" +ENV NODE_ENV="development" + +# Tell rails to serve static files +ENV RAILS_SERVE_STATIC_FILES="true" +ENV BIND="0.0.0.0" + +# Set the run user +USER mastodon + +# Precompile assets +RUN cd ~ && \ + OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder rails assets:precompile && \ + yarn cache clean + +# Set the work dir and the container entry point +WORKDIR /opt/mastodon +ENTRYPOINT ["/usr/bin/tini", "--"] +EXPOSE 3000 4000 diff --git a/Gemfile b/Gemfile index 2e77fb42a69025..355b7e43f87add 100644 --- a/Gemfile +++ b/Gemfile @@ -7,16 +7,16 @@ gem 'pkg-config', '~> 1.4' gem 'rexml', '~> 3.2' gem 'puma', '~> 5.6' -gem 'rails', '~> 6.1.6' +gem 'rails', '~> 6.1.7' gem 'sprockets', '~> 3.7.2' gem 'thor', '~> 1.2' -gem 'rack', '~> 2.2.3' +gem 'rack', '~> 2.2.4' gem 'hamlit-rails', '~> 0.2' -gem 'pg', '~> 1.3' +gem 'pg', '~> 1.4' gem 'makara', '~> 0.5' gem 'pghero', '~> 2.8' -gem 'dotenv-rails', '~> 2.7' +gem 'dotenv-rails', '~> 2.8' gem 'aws-sdk-s3', '~> 1.114', require: false gem 'fog-core', '<= 2.1.0' @@ -26,7 +26,7 @@ gem 'blurhash', '~> 0.1' gem 'active_model_serializers', '~> 0.10' gem 'addressable', '~> 2.8' -gem 'bootsnap', '~> 1.11.1', require: false +gem 'bootsnap', '~> 1.13.0', require: false gem 'browser' gem 'charlock_holmes', '~> 0.7.7' gem 'chewy', '~> 7.2' @@ -40,22 +40,22 @@ end gem 'net-ldap', '~> 0.17' gem 'omniauth-cas', '~> 2.0' gem 'omniauth-saml', '~> 1.10' -gem 'gitlab-omniauth-openid-connect', '~>0.9.1', require: 'omniauth_openid_connect' +gem 'gitlab-omniauth-openid-connect', '~>0.10.0', require: 'omniauth_openid_connect' gem 'omniauth', '~> 1.9' gem 'omniauth-rails_csrf_protection', '~> 0.1' gem 'color_diff', '~> 0.1' gem 'discard', '~> 1.2' -gem 'doorkeeper', '~> 5.5' +gem 'doorkeeper', '~> 5.6' gem 'ed25519', '~> 1.3' gem 'fast_blank', '~> 1.0' gem 'fastimage' gem 'hiredis', '~> 0.6' -gem 'redis-namespace', '~> 1.8' +gem 'redis-namespace', '~> 1.9' gem 'htmlentities', '~> 4.3' -gem 'http', '~> 5.0' +gem 'http', '~> 5.1' gem 'http_accept_language', '~> 2.1' -gem 'httplog', '~> 1.5.0' +gem 'httplog', '~> 1.6.0' gem 'idn-ruby', require: 'idn' gem 'kaminari', '~> 1.2' gem 'link_header', '~> 0.0' @@ -72,17 +72,18 @@ gem 'rack-attack', '~> 6.6' gem 'rack-cors', '~> 1.1', require: 'rack/cors' gem 'rails-i18n', '~> 6.0' gem 'rails-settings-cached', '~> 0.6' +gem 'redcarpet', '~> 3.5' gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis'] gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'rqrcode', '~> 2.1' gem 'ruby-progressbar', '~> 1.11' gem 'sanitize', '~> 6.0' gem 'scenic', '~> 1.6' -gem 'sidekiq', '~> 6.4' +gem 'sidekiq', '~> 6.5' gem 'sidekiq-scheduler', '~> 4.0' gem 'sidekiq-unique-jobs', '~> 7.1' gem 'sidekiq-bulk', '~> 0.2.0' -gem 'simple-navigation', '~> 4.3' +gem 'simple-navigation', '~> 4.4' gem 'simple_form', '~> 5.1' gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie' gem 'stoplight', '~> 3.0.0' @@ -91,18 +92,18 @@ gem 'tty-prompt', '~> 0.23', require: false gem 'twitter-text', '~> 3.1.0' gem 'tzinfo-data', '~> 1.2022' gem 'webpacker', '~> 5.4' -gem 'webpush', '~> 0.3' -gem 'webauthn', '~> 3.0.0.alpha1' +gem 'webpush', github: 'ClearlyClaire/webpush', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9' +gem 'webauthn', '~> 2.5' gem 'json-ld' gem 'json-ld-preloaded', '~> 3.2' gem 'rdf-normalize', '~> 0.5' group :development, :test do - gem 'fabrication', '~> 2.28' + gem 'fabrication', '~> 2.30' gem 'fuubar', '~> 2.5' gem 'i18n-tasks', '~> 1.0', require: false - gem 'pry-byebug', '~> 3.9' + gem 'pry-byebug', '~> 3.10' gem 'pry-rails', '~> 0.3' gem 'rspec-rails', '~> 5.1' end @@ -114,13 +115,14 @@ end group :test do gem 'capybara', '~> 3.37' gem 'climate_control', '~> 0.2' - gem 'faker', '~> 2.21' - gem 'microformats', '~> 4.2' + gem 'faker', '~> 2.23' + gem 'microformats', '~> 4.4' gem 'rails-controller-testing', '~> 1.0' gem 'rspec-sidekiq', '~> 3.1' gem 'simplecov', '~> 0.21', require: false - gem 'webmock', '~> 3.14' - gem 'rspec_junit_formatter', '~> 0.5' + gem 'webmock', '~> 3.18' + gem 'rspec_junit_formatter', '~> 0.6' + gem 'rack-test', '~> 2.0' end group :development do @@ -132,9 +134,9 @@ group :development do gem 'letter_opener', '~> 1.8' gem 'letter_opener_web', '~> 2.0' gem 'memory_profiler' - gem 'rubocop', '~> 1.29', require: false - gem 'rubocop-rails', '~> 2.14', require: false - gem 'brakeman', '~> 5.2', require: false + gem 'rubocop', '~> 1.30', require: false + gem 'rubocop-rails', '~> 2.15', require: false + gem 'brakeman', '~> 5.3', require: false gem 'bundler-audit', '~> 0.9', require: false gem 'capistrano', '~> 3.17' @@ -151,5 +153,5 @@ end gem 'concurrent-ruby', require: false gem 'connection_pool', require: false - gem 'xorcist', '~> 1.1' +gem 'cocoon', '~> 1.2' diff --git a/Gemfile.lock b/Gemfile.lock index e12fdc237dc4a4..b6e09e5dfe1053 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,40 +1,49 @@ +GIT + remote: https://github.com/ClearlyClaire/webpush.git + revision: f14a4d52e201128b1b00245d11b6de80d6cfdcd9 + ref: f14a4d52e201128b1b00245d11b6de80d6cfdcd9 + specs: + webpush (0.3.8) + hkdf (~> 0.2) + jwt (~> 2.0) + GEM remote: https://rubygems.org/ specs: - actioncable (6.1.6) - actionpack (= 6.1.6) - activesupport (= 6.1.6) + actioncable (6.1.7) + actionpack (= 6.1.7) + activesupport (= 6.1.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.6) - actionpack (= 6.1.6) - activejob (= 6.1.6) - activerecord (= 6.1.6) - activestorage (= 6.1.6) - activesupport (= 6.1.6) + actionmailbox (6.1.7) + actionpack (= 6.1.7) + activejob (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) mail (>= 2.7.1) - actionmailer (6.1.6) - actionpack (= 6.1.6) - actionview (= 6.1.6) - activejob (= 6.1.6) - activesupport (= 6.1.6) + actionmailer (6.1.7) + actionpack (= 6.1.7) + actionview (= 6.1.7) + activejob (= 6.1.7) + activesupport (= 6.1.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.6) - actionview (= 6.1.6) - activesupport (= 6.1.6) + actionpack (6.1.7) + actionview (= 6.1.7) + activesupport (= 6.1.7) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.6) - actionpack (= 6.1.6) - activerecord (= 6.1.6) - activestorage (= 6.1.6) - activesupport (= 6.1.6) + actiontext (6.1.7) + actionpack (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) nokogiri (>= 1.8.5) - actionview (6.1.6) - activesupport (= 6.1.6) + actionview (6.1.7) + activesupport (= 6.1.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -45,31 +54,31 @@ GEM case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) active_record_query_trace (1.8) - activejob (6.1.6) - activesupport (= 6.1.6) + activejob (6.1.7) + activesupport (= 6.1.7) globalid (>= 0.3.6) - activemodel (6.1.6) - activesupport (= 6.1.6) - activerecord (6.1.6) - activemodel (= 6.1.6) - activesupport (= 6.1.6) - activestorage (6.1.6) - actionpack (= 6.1.6) - activejob (= 6.1.6) - activerecord (= 6.1.6) - activesupport (= 6.1.6) + activemodel (6.1.7) + activesupport (= 6.1.7) + activerecord (6.1.7) + activemodel (= 6.1.7) + activesupport (= 6.1.7) + activestorage (6.1.7) + actionpack (= 6.1.7) + activejob (= 6.1.7) + activerecord (= 6.1.7) + activesupport (= 6.1.7) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.6) + activesupport (6.1.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) aes_key_wrap (1.1.0) - airbrussh (1.4.0) + airbrussh (1.4.1) sshkit (>= 1.6.1, != 1.7.0) android_key_attestation (0.3.0) annotate (3.2.0) @@ -79,7 +88,7 @@ GEM attr_encrypted (3.1.0) encryptor (~> 3.0.0) attr_required (1.0.1) - awrence (1.1.1) + awrence (1.2.1) aws-eventstream (1.2.0) aws-partitions (1.587.0) aws-sdk-core (3.130.2) @@ -101,12 +110,11 @@ GEM coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) - better_html (1.0.16) - actionview (>= 4.0) - activesupport (>= 4.0) + better_html (2.0.1) + actionview (>= 6.0) + activesupport (>= 6.0) ast (~> 2.0) erubi (~> 1.4) - html_tokenizer (~> 0.0.6) parser (>= 2.4) smart_properties bindata (2.4.10) @@ -114,22 +122,22 @@ GEM debug_inspector (>= 0.0.1) blurhash (0.1.6) ffi (~> 1.14) - bootsnap (1.11.1) + bootsnap (1.13.0) msgpack (~> 1.2) - brakeman (5.2.3) + brakeman (5.3.1) browser (4.2.0) brpoplpush-redis_script (0.1.2) concurrent-ruby (~> 1.0, >= 1.0.5) redis (>= 1.0, <= 5.0) builder (3.2.4) - bullet (7.0.1) + bullet (7.0.3) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) - bundler-audit (0.9.0.1) + bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) thor (~> 1.0) byebug (11.1.3) - capistrano (3.17.0) + capistrano (3.17.1) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) @@ -163,13 +171,14 @@ GEM elasticsearch-dsl chunky_png (1.4.0) climate_control (0.2.0) + cocoon (1.2.15) coderay (1.1.3) color_diff (0.1) concurrent-ruby (1.1.10) - connection_pool (2.2.5) - cose (1.0.0) + connection_pool (2.3.0) + cose (1.2.1) cbor (~> 0.5.9) - openssl-signature_algorithm (~> 0.4.0) + openssl-signature_algorithm (~> 1.0) crack (0.4.5) rexml crass (1.0.6) @@ -197,11 +206,11 @@ GEM docile (1.3.4) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.5.4) + doorkeeper (5.6.0) railties (>= 5) - dotenv (2.7.6) - dotenv-rails (2.7.6) - dotenv (= 2.7.6) + dotenv (2.8.1) + dotenv-rails (2.8.1) + dotenv (= 2.8.1) railties (>= 3.2) ed25519 (1.3.0) elasticsearch (7.13.3) @@ -214,12 +223,12 @@ GEM faraday (~> 1) multi_json encryptor (3.0.0) - erubi (1.10.0) + erubi (1.11.0) et-orbi (1.2.7) tzinfo excon (0.76.0) - fabrication (2.28.0) - faker (2.21.0) + fabrication (2.30.0) + faker (2.23.0) i18n (>= 1.8.11, < 2) faraday (1.9.3) faraday-em_http (~> 1.0) @@ -263,15 +272,15 @@ GEM fog-json (>= 1.0) ipaddress (>= 0.8) formatador (0.2.5) - fugit (1.5.3) + fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) fuubar (2.5.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) - gitlab-omniauth-openid-connect (0.9.1) + gitlab-omniauth-openid-connect (0.10.0) addressable (~> 2.7) - omniauth (~> 1.9) + omniauth (>= 1.9, < 3) openid_connect (~> 1.2) globalid (1.0.0) activesupport (>= 5.0) @@ -289,27 +298,26 @@ GEM highline (2.0.3) hiredis (0.6.3) hkdf (0.3.0) - html_tokenizer (0.0.7) htmlentities (4.3.4) - http (5.0.4) + http (5.1.0) addressable (~> 2.8) http-cookie (~> 1.0) http-form_data (~> 2.2) llhttp-ffi (~> 0.4.0) - http-cookie (1.0.4) + http-cookie (1.0.5) domain_name (~> 0.5) http-form_data (2.3.0) http_accept_language (2.1.1) httpclient (2.8.3) - httplog (1.5.0) - rack (>= 1.0) + httplog (1.6.0) + rack (>= 2.0) rainbow (>= 2.0.0) - i18n (1.10.0) + i18n (1.12.0) concurrent-ruby (~> 1.0) - i18n-tasks (1.0.10) + i18n-tasks (1.0.12) activesupport (>= 4.0.2) ast (>= 2.1.0) - better_html (~> 1.0) + better_html (>= 1.0, < 3.0) erubi highline (>= 2.0.0) i18n @@ -320,24 +328,24 @@ GEM idn-ruby (0.1.4) ipaddress (0.8.3) jmespath (1.6.1) - json (2.5.1) + json (2.6.2) json-canonicalization (0.3.0) json-jwt (1.13.0) activesupport (>= 4.2) aes_key_wrap bindata - json-ld (3.2.0) + json-ld (3.2.3) htmlentities (~> 4.3) json-canonicalization (~> 0.3) link_header (~> 0.0, >= 0.0.8) multi_json (~> 1.15) rack (~> 2.2) - rdf (~> 3.2) + rdf (~> 3.2, >= 3.2.9) json-ld-preloaded (3.2.0) json-ld (~> 3.2) rdf (~> 3.2) jsonapi-renderer (0.2.2) - jwt (2.2.2) + jwt (2.4.1) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -374,7 +382,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.18.0) + loofah (2.19.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -387,7 +395,7 @@ GEM matrix (0.4.2) memory_profiler (1.0.0) method_source (1.0.0) - microformats (4.3.1) + microformats (4.4.1) json (~> 2.2) nokogiri (~> 1.10) mime-types (3.4.1) @@ -395,16 +403,16 @@ GEM mime-types-data (3.2022.0105) mini_mime (1.1.2) mini_portile2 (2.8.0) - minitest (5.15.0) - msgpack (1.5.1) + minitest (5.16.3) + msgpack (1.5.4) multi_json (1.15.0) multipart-post (2.1.1) - net-ldap (0.17.0) - net-scp (3.0.0) - net-ssh (>= 2.6.5, < 7.0.0) - net-ssh (6.1.0) + net-ldap (0.17.1) + net-scp (4.0.0.rc1) + net-ssh (>= 2.6.5, < 8.0.0) + net-ssh (7.0.1) nio4r (2.5.8) - nokogiri (1.13.6) + nokogiri (1.13.9) mini_portile2 (~> 2.8.0) racc (~> 1.4) nsa (0.2.8) @@ -412,8 +420,8 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.13.11) - omniauth (1.9.1) + oj (3.13.21) + omniauth (1.9.2) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) omniauth-cas (2.0.0) @@ -436,20 +444,21 @@ GEM validate_email validate_url webfinger (>= 1.0.1) - openssl (2.2.0) - openssl-signature_algorithm (0.4.0) + openssl (3.0.0) + openssl-signature_algorithm (1.2.1) + openssl (> 2.0, < 3.1) orm_adapter (0.5.0) ox (2.14.11) parallel (1.22.1) - parser (3.1.2.0) + parser (3.1.2.1) ast (~> 2.4.1) parslet (2.0.0) pastel (0.8.0) tty-color (~> 0.5) - pg (1.3.5) + pg (1.4.3) pghero (2.8.3) activerecord (>= 5) - pkg-config (1.4.7) + pkg-config (1.4.9) posix-spawn (0.3.15) premailer (1.14.2) addressable @@ -459,22 +468,22 @@ GEM actionmailer (>= 3) premailer (~> 1.7, >= 1.7.9) private_address_check (0.5.0) - pry (0.13.1) + pry (0.14.1) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.9.0) + pry-byebug (3.10.1) byebug (~> 11.0) - pry (~> 0.13.0) + pry (>= 0.13, < 0.15) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (4.0.7) - puma (5.6.4) + public_suffix (5.0.0) + puma (5.6.5) nio4r (~> 2.0) pundit (2.2.0) activesupport (>= 3.0.0) raabro (1.4.0) racc (1.6.0) - rack (2.2.3) + rack (2.2.4) rack-attack (6.6.1) rack (>= 1.0, < 3) rack-cors (1.1.1) @@ -487,22 +496,22 @@ GEM rack (>= 2.1.0) rack-proxy (0.7.0) rack - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (6.1.6) - actioncable (= 6.1.6) - actionmailbox (= 6.1.6) - actionmailer (= 6.1.6) - actionpack (= 6.1.6) - actiontext (= 6.1.6) - actionview (= 6.1.6) - activejob (= 6.1.6) - activemodel (= 6.1.6) - activerecord (= 6.1.6) - activestorage (= 6.1.6) - activesupport (= 6.1.6) + rack-test (2.0.2) + rack (>= 1.3) + rails (6.1.7) + actioncable (= 6.1.7) + actionmailbox (= 6.1.7) + actionmailer (= 6.1.7) + actionpack (= 6.1.7) + actiontext (= 6.1.7) + actionview (= 6.1.7) + activejob (= 6.1.7) + activemodel (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) bundler (>= 1.15.0) - railties (= 6.1.6) + railties (= 6.1.7) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -511,29 +520,30 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.2) + rails-html-sanitizer (1.4.3) loofah (~> 2.3) rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) rails-settings-cached (0.6.6) rails (>= 4.2.0) - railties (6.1.6) - actionpack (= 6.1.6) - activesupport (= 6.1.6) + railties (6.1.7) + actionpack (= 6.1.7) + activesupport (= 6.1.7) method_source rake (>= 12.2) thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) - rdf (3.2.3) + rdf (3.2.9) link_header (~> 0.0, >= 0.0.8) rdf-normalize (0.5.0) rdf (~> 3.2) + redcarpet (3.5.1) redis (4.5.1) - redis-namespace (1.8.2) - redis (>= 3.0.4) - regexp_parser (2.4.0) + redis-namespace (1.9.0) + redis (>= 4) + regexp_parser (2.5.0) request_store (1.5.1) rack (>= 1.4) responders (3.0.1) @@ -542,7 +552,7 @@ GEM rexml (3.2.5) rotp (6.2.0) rpam2 (4.0.2) - rqrcode (2.1.1) + rqrcode (2.1.2) chunky_png (~> 1.0) rqrcode_core (~> 1.0) rqrcode_core (1.2.0) @@ -565,21 +575,21 @@ GEM rspec-sidekiq (3.1.0) rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) - rspec-support (3.11.0) - rspec_junit_formatter (0.5.1) + rspec-support (3.11.1) + rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.29.1) + rubocop (1.30.1) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.17.0, < 2.0) + rubocop-ast (>= 1.18.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.18.0) parser (>= 3.1.1.0) - rubocop-rails (2.14.2) + rubocop-rails (2.15.0) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -588,7 +598,7 @@ GEM nokogiri (>= 1.10.5) rexml ruby2_keywords (0.0.5) - rufus-scheduler (3.8.1) + rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) safety_net_attestation (0.4.0) jwt (~> 2.0) @@ -598,25 +608,24 @@ GEM scenic (1.6.0) activerecord (>= 4.0.0) railties (>= 4.0.0) - securecompare (1.0.0) semantic_range (3.0.0) - sidekiq (6.4.2) - connection_pool (>= 2.2.2) + sidekiq (6.5.7) + connection_pool (>= 2.2.5) rack (~> 2.0) - redis (>= 4.2.0) + redis (>= 4.5.0, < 5) sidekiq-bulk (0.2.0) sidekiq - sidekiq-scheduler (4.0.0) + sidekiq-scheduler (4.0.3) redis (>= 4.2.0) rufus-scheduler (~> 3.2) - sidekiq (>= 4) + sidekiq (>= 4, < 7) tilt (>= 1.4.0) - sidekiq-unique-jobs (7.1.22) + sidekiq-unique-jobs (7.1.27) brpoplpush-redis_script (> 0.1.1, <= 2.0.0) concurrent-ruby (~> 1.0, >= 1.0.5) sidekiq (>= 5.0, < 8.0) thor (>= 0.20, < 3.0) - simple-navigation (4.3.0) + simple-navigation (4.4.0) activesupport (>= 2.3.2) simple_form (5.1.0) actionpack (>= 5.2) @@ -638,7 +647,7 @@ GEM sshkit (1.21.2) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stackprof (0.2.19) + stackprof (0.2.22) statsd-ruby (1.5.0) stoplight (3.0.0) strong_migrations (0.7.9) @@ -653,10 +662,11 @@ GEM terrapin (0.6.0) climate_control (>= 0.0.3, < 1.0) thor (1.2.1) - tilt (2.0.10) - tpm-key_attestation (0.9.0) + tilt (2.0.11) + tpm-key_attestation (0.11.0) bindata (~> 2.4) - openssl-signature_algorithm (~> 0.4.0) + openssl (> 2.0, < 3.1) + openssl-signature_algorithm (~> 1.0) tty-color (0.6.0) tty-cursor (0.7.1) tty-prompt (0.23.1) @@ -670,37 +680,36 @@ GEM twitter-text (3.1.0) idn-ruby unf (~> 0.1.0) - tzinfo (2.0.4) + tzinfo (2.0.5) concurrent-ruby (~> 1.0) - tzinfo-data (1.2022.1) + tzinfo-data (1.2022.4) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext - unf_ext (0.0.8) - unicode-display_width (2.1.0) - uniform_notifier (1.14.2) + unf_ext (0.0.8.2) + unicode-display_width (2.3.0) + uniform_notifier (1.16.0) validate_email (0.1.6) activemodel (>= 3.0) mail (>= 2.2.5) - validate_url (1.0.13) + validate_url (1.0.15) activemodel (>= 3.0.0) public_suffix warden (1.2.9) rack (>= 2.0.9) - webauthn (3.0.0.alpha1) + webauthn (2.5.2) android_key_attestation (~> 0.3.0) awrence (~> 1.1) bindata (~> 2.4) cbor (~> 0.5.9) - cose (~> 1.0) - openssl (~> 2.0) + cose (~> 1.1) + openssl (>= 2.2, < 3.1) safety_net_attestation (~> 0.4.0) - securecompare (~> 1.0) - tpm-key_attestation (~> 0.9.0) + tpm-key_attestation (~> 0.11.0) webfinger (1.2.0) activesupport httpclient (>= 2.4) - webmock (3.14.0) + webmock (3.18.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -709,17 +718,14 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) - webpush (0.3.8) - hkdf (~> 0.2) - jwt (~> 2.0) websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wisper (2.0.1) - xorcist (1.1.2) + xorcist (1.1.3) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.5.4) + zeitwerk (2.6.0) PLATFORMS ruby @@ -733,8 +739,8 @@ DEPENDENCIES better_errors (~> 2.9) binding_of_caller (~> 1.0) blurhash (~> 0.1) - bootsnap (~> 1.11.1) - brakeman (~> 5.2) + bootsnap (~> 1.13.0) + brakeman (~> 5.3) browser bullet (~> 7.0) bundler-audit (~> 0.9) @@ -746,6 +752,7 @@ DEPENDENCIES charlock_holmes (~> 0.7.7) chewy (~> 7.2) climate_control (~> 0.2) + cocoon (~> 1.2) color_diff (~> 0.1) concurrent-ruby connection_pool @@ -753,23 +760,23 @@ DEPENDENCIES devise-two-factor (~> 4.0) devise_pam_authenticatable2 (~> 9.2) discard (~> 1.2) - doorkeeper (~> 5.5) - dotenv-rails (~> 2.7) + doorkeeper (~> 5.6) + dotenv-rails (~> 2.8) ed25519 (~> 1.3) - fabrication (~> 2.28) - faker (~> 2.21) + fabrication (~> 2.30) + faker (~> 2.23) fast_blank (~> 1.0) fastimage fog-core (<= 2.1.0) fog-openstack (~> 0.3) fuubar (~> 2.5) - gitlab-omniauth-openid-connect (~> 0.9.1) + gitlab-omniauth-openid-connect (~> 0.10.0) hamlit-rails (~> 0.2) hiredis (~> 0.6) htmlentities (~> 4.3) - http (~> 5.0) + http (~> 5.1) http_accept_language (~> 2.1) - httplog (~> 1.5.0) + httplog (~> 1.6.0) i18n-tasks (~> 1.0) idn-ruby json-ld @@ -783,7 +790,7 @@ DEPENDENCIES makara (~> 0.5) mario-redis-lock (~> 1.2) memory_profiler - microformats (~> 4.2) + microformats (~> 4.4) mime-types (~> 3.4.1) net-ldap (~> 0.17) nokogiri (~> 1.13) @@ -795,41 +802,43 @@ DEPENDENCIES omniauth-saml (~> 1.10) ox (~> 2.14) parslet - pg (~> 1.3) + pg (~> 1.4) pghero (~> 2.8) pkg-config (~> 1.4) posix-spawn premailer-rails private_address_check (~> 0.5) - pry-byebug (~> 3.9) + pry-byebug (~> 3.10) pry-rails (~> 0.3) puma (~> 5.6) pundit (~> 2.2) - rack (~> 2.2.3) + rack (~> 2.2.4) rack-attack (~> 6.6) rack-cors (~> 1.1) - rails (~> 6.1.6) + rack-test (~> 2.0) + rails (~> 6.1.7) rails-controller-testing (~> 1.0) rails-i18n (~> 6.0) rails-settings-cached (~> 0.6) rdf-normalize (~> 0.5) + redcarpet (~> 3.5) redis (~> 4.5) - redis-namespace (~> 1.8) + redis-namespace (~> 1.9) rexml (~> 3.2) rqrcode (~> 2.1) rspec-rails (~> 5.1) rspec-sidekiq (~> 3.1) - rspec_junit_formatter (~> 0.5) - rubocop (~> 1.29) - rubocop-rails (~> 2.14) + rspec_junit_formatter (~> 0.6) + rubocop (~> 1.30) + rubocop-rails (~> 2.15) ruby-progressbar (~> 1.11) sanitize (~> 6.0) scenic (~> 1.6) - sidekiq (~> 6.4) + sidekiq (~> 6.5) sidekiq-bulk (~> 0.2.0) sidekiq-scheduler (~> 4.0) sidekiq-unique-jobs (~> 7.1) - simple-navigation (~> 4.3) + simple-navigation (~> 4.4) simple_form (~> 5.1) simplecov (~> 0.21) sprockets (~> 3.7.2) @@ -841,8 +850,8 @@ DEPENDENCIES tty-prompt (~> 0.23) twitter-text (~> 3.1.0) tzinfo-data (~> 1.2022) - webauthn (~> 3.0.0.alpha1) - webmock (~> 3.14) + webauthn (~> 2.5) + webmock (~> 3.18) webpacker (~> 5.4) - webpush (~> 0.3) + webpush! xorcist (~> 1.1) diff --git a/README.md b/README.md index 4b48e071d8f641..5019bd09750ce8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ -![Mastodon](https://i.imgur.com/NhZc40l.png) -======== +

+ + + Mastodon +

[![GitHub release](https://img.shields.io/github/release/mastodon/mastodon.svg)][releases] [![Build Status](https://img.shields.io/circleci/project/github/mastodon/mastodon.svg)][circleci] @@ -35,7 +38,7 @@ Click below to **learn more** in a video: ## Features - + ### No vendor lock-in: Fully interoperable with any conforming platform @@ -69,8 +72,8 @@ Mastodon acts as an OAuth2 provider, so 3rd party apps can use the REST and Stre - **PostgreSQL** 9.5+ - **Redis** 4+ -- **Ruby** 2.5+ -- **Node.js** 12+ +- **Ruby** 2.6+ +- **Node.js** 14+ The repository includes deployment configurations for **Docker and docker-compose** as well as specific platforms like **Heroku**, **Scalingo**, and **Nanobox**. The [**standalone** installation guide](https://docs.joinmastodon.org/admin/install/) is available in the documentation. diff --git a/SECURITY.md b/SECURITY.md index 62e23f73609fd1..ccc7c1034624e2 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,6 +1,6 @@ # Security Policy -If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you should submit the report through our [Bug Bounty Program][bug-bounty]. Alternatively, you can reach us at . +If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at . You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk. @@ -10,11 +10,8 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through ## Supported Versions -| Version | Supported | -| ------- | ------------------ | -| 3.5.x | Yes | -| 3.4.x | Yes | -| 3.3.x | No | -| < 3.3 | No | - -[bug-bounty]: https://app.intigriti.com/programs/mastodon/mastodonio/detail +| Version | Supported | +| ------- | ----------| +| 4.0.x | Yes | +| 3.5.x | Yes | +| < 3.5 | No | diff --git a/app.json b/app.json index c694908c539fb1..4f05a64f516800 100644 --- a/app.json +++ b/app.json @@ -79,8 +79,13 @@ "description": "SMTP server certificate verification mode. Defaults is 'peer'.", "required": false }, + "SMTP_ENABLE_STARTTLS": { + "description": "Enable STARTTLS? Default is 'auto'.", + "value": "auto", + "required": false + }, "SMTP_ENABLE_STARTTLS_AUTO": { - "description": "Enable STARTTLS if SMTP server supports it? Default is true.", + "description": "Enable STARTTLS if SMTP server supports it? Deprecated by SMTP_ENABLE_STARTTLS.", "required": false } }, diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb index d7e78d6b917c65..1043486140da0b 100644 --- a/app/controllers/about_controller.rb +++ b/app/controllers/about_controller.rb @@ -1,68 +1,19 @@ # frozen_string_literal: true class AboutController < ApplicationController - include RegistrationSpamConcern + include WebAppControllerConcern - layout 'public' + skip_before_action :require_functional! - before_action :require_open_federation!, only: [:show, :more] - before_action :set_body_classes, only: :show before_action :set_instance_presenter - before_action :set_expires_in, only: [:more, :terms] - before_action :set_registration_form_time, only: :show - skip_before_action :require_functional!, only: [:more, :terms] - - def show; end - - def more - flash.now[:notice] = I18n.t('about.instance_actor_flash') if params[:instance_actor] - - toc_generator = TOCGenerator.new(@instance_presenter.site_extended_description) - - @rules = Rule.ordered - @contents = toc_generator.html - @table_of_contents = toc_generator.toc - @blocks = DomainBlock.with_user_facing_limitations.by_severity if display_blocks? + def show + expires_in 0, public: true unless user_signed_in? end - def terms; end - - helper_method :display_blocks? - helper_method :display_blocks_rationale? - helper_method :public_fetch_mode? - helper_method :new_user - private - def require_open_federation! - not_found if whitelist_mode? - end - - def display_blocks? - Setting.show_domain_blocks == 'all' || (Setting.show_domain_blocks == 'users' && user_signed_in?) - end - - def display_blocks_rationale? - Setting.show_domain_blocks_rationale == 'all' || (Setting.show_domain_blocks_rationale == 'users' && user_signed_in?) - end - - def new_user - User.new.tap do |user| - user.build_account - user.build_invite_request - end - end - def set_instance_presenter @instance_presenter = InstancePresenter.new end - - def set_body_classes - @hide_navbar = true - end - - def set_expires_in - expires_in 0, public: true - end end diff --git a/app/controllers/account_follow_controller.rb b/app/controllers/account_follow_controller.rb deleted file mode 100644 index 33394074db4453..00000000000000 --- a/app/controllers/account_follow_controller.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -class AccountFollowController < ApplicationController - include AccountControllerConcern - - before_action :authenticate_user! - - def create - FollowService.new.call(current_user.account, @account, with_rate_limit: true) - redirect_to account_path(@account) - end -end diff --git a/app/controllers/account_unfollow_controller.rb b/app/controllers/account_unfollow_controller.rb deleted file mode 100644 index 378ec86dc62e5b..00000000000000 --- a/app/controllers/account_unfollow_controller.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -class AccountUnfollowController < ApplicationController - include AccountControllerConcern - - before_action :authenticate_user! - - def create - UnfollowService.new.call(current_user.account, @account) - redirect_to account_path(@account) - end -end diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index fe7d934dc33b0b..5ceea5d3c1ef3f 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -7,9 +7,8 @@ class AccountsController < ApplicationController include AccountControllerConcern include SignatureAuthentication - before_action :require_signature!, if: -> { request.format == :json && authorized_fetch_mode? } + before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_cache_headers - before_action :set_body_classes skip_around_action :set_locale, if: -> { [:json, :rss].include?(request.format&.to_sym) } skip_before_action :require_functional!, unless: :whitelist_mode? @@ -18,24 +17,6 @@ def show respond_to do |format| format.html do expires_in 0, public: true unless user_signed_in? - - @pinned_statuses = [] - @endorsed_accounts = @account.endorsed_accounts.to_a.sample(4) - @featured_hashtags = @account.featured_tags.order(statuses_count: :desc) - - if current_account && @account.blocking?(current_account) - @statuses = [] - return - end - - @pinned_statuses = cached_filtered_status_pins if show_pinned_statuses? - @statuses = cached_filtered_status_page - @rss_url = rss_url - - unless @statuses.empty? - @older_url = older_url if @statuses.last.id > filtered_statuses.last.id - @newer_url = newer_url if @statuses.first.id < filtered_statuses.first.id - end end format.rss do @@ -55,18 +36,6 @@ def show private - def set_body_classes - @body_classes = 'with-modals' - end - - def show_pinned_statuses? - [replies_requested?, media_requested?, tag_requested?, params[:max_id].present?, params[:min_id].present?].none? - end - - def filtered_pinned_statuses - @account.pinned_statuses.where(visibility: [:public, :unlisted]) - end - def filtered_statuses default_statuses.tap do |statuses| statuses.merge!(hashtag_scope) if tag_requested? @@ -113,26 +82,6 @@ def rss_url end end - def older_url - pagination_url(max_id: @statuses.last.id) - end - - def newer_url - pagination_url(min_id: @statuses.first.id) - end - - def pagination_url(max_id: nil, min_id: nil) - if tag_requested? - short_account_tag_url(@account, params[:tag], max_id: max_id, min_id: min_id) - elsif media_requested? - short_account_media_url(@account, max_id: max_id, min_id: min_id) - elsif replies_requested? - short_account_with_replies_url(@account, max_id: max_id, min_id: min_id) - else - short_account_url(@account, max_id: max_id, min_id: min_id) - end - end - def media_requested? request.path.split('.').first.end_with?('/media') && !tag_requested? end @@ -145,13 +94,6 @@ def tag_requested? request.path.split('.').first.end_with?(Addressable::URI.parse("/tagged/#{params[:tag]}").normalize) end - def cached_filtered_status_pins - cache_collection( - filtered_pinned_statuses, - Status - ) - end - def cached_filtered_status_page cache_collection_paginated_by_id( filtered_statuses, diff --git a/app/controllers/activitypub/claims_controller.rb b/app/controllers/activitypub/claims_controller.rb index 08ad952df14d9d..339333e462ccc3 100644 --- a/app/controllers/activitypub/claims_controller.rb +++ b/app/controllers/activitypub/claims_controller.rb @@ -6,7 +6,7 @@ class ActivityPub::ClaimsController < ActivityPub::BaseController skip_before_action :authenticate_user! - before_action :require_signature! + before_action :require_account_signature! before_action :set_claim_result def create diff --git a/app/controllers/activitypub/collections_controller.rb b/app/controllers/activitypub/collections_controller.rb index e4e994a9855c3b..d94a285eaec09e 100644 --- a/app/controllers/activitypub/collections_controller.rb +++ b/app/controllers/activitypub/collections_controller.rb @@ -4,7 +4,7 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController include SignatureVerification include AccountOwnedConcern - before_action :require_signature!, if: :authorized_fetch_mode? + before_action :require_account_signature!, if: :authorized_fetch_mode? before_action :set_items before_action :set_size before_action :set_type diff --git a/app/controllers/activitypub/followers_synchronizations_controller.rb b/app/controllers/activitypub/followers_synchronizations_controller.rb index 940b77cf0a1d86..4e445bcb1f95a7 100644 --- a/app/controllers/activitypub/followers_synchronizations_controller.rb +++ b/app/controllers/activitypub/followers_synchronizations_controller.rb @@ -4,7 +4,7 @@ class ActivityPub::FollowersSynchronizationsController < ActivityPub::BaseContro include SignatureVerification include AccountOwnedConcern - before_action :require_signature! + before_action :require_account_signature! before_action :set_items before_action :set_cache_headers diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb index 92dcb5ac77570e..5ee85474e7efc1 100644 --- a/app/controllers/activitypub/inboxes_controller.rb +++ b/app/controllers/activitypub/inboxes_controller.rb @@ -6,7 +6,7 @@ class ActivityPub::InboxesController < ActivityPub::BaseController include AccountOwnedConcern before_action :skip_unknown_actor_activity - before_action :require_signature! + before_action :require_actor_signature! skip_before_action :authenticate_user! def create @@ -49,17 +49,17 @@ def body end def upgrade_account - if signed_request_account.ostatus? + if signed_request_account&.ostatus? signed_request_account.update(last_webfingered_at: nil) ResolveAccountWorker.perform_async(signed_request_account.acct) end - DeliveryFailureTracker.reset!(signed_request_account.inbox_url) + DeliveryFailureTracker.reset!(signed_request_actor.inbox_url) end def process_collection_synchronization raw_params = request.headers['Collection-Synchronization'] - return if raw_params.blank? || ENV['DISABLE_FOLLOWERS_SYNCHRONIZATION'] == 'true' + return if raw_params.blank? || ENV['DISABLE_FOLLOWERS_SYNCHRONIZATION'] == 'true' || signed_request_account.nil? # Re-using the syntax for signature parameters tree = SignatureParamsParser.new.parse(raw_params) @@ -71,6 +71,6 @@ def process_collection_synchronization end def process_payload - ActivityPub::ProcessingWorker.perform_async(signed_request_account.id, body, @account&.id) + ActivityPub::ProcessingWorker.perform_async(signed_request_actor.id, body, @account&.id, signed_request_actor.class.name) end end diff --git a/app/controllers/activitypub/outboxes_controller.rb b/app/controllers/activitypub/outboxes_controller.rb index cd3992502d7354..60d201f763bad8 100644 --- a/app/controllers/activitypub/outboxes_controller.rb +++ b/app/controllers/activitypub/outboxes_controller.rb @@ -6,7 +6,7 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController include SignatureVerification include AccountOwnedConcern - before_action :require_signature!, if: :authorized_fetch_mode? + before_action :require_account_signature!, if: :authorized_fetch_mode? before_action :set_statuses before_action :set_cache_headers diff --git a/app/controllers/activitypub/replies_controller.rb b/app/controllers/activitypub/replies_controller.rb index 4ff7cfa080f238..8e0f9de2eeb78e 100644 --- a/app/controllers/activitypub/replies_controller.rb +++ b/app/controllers/activitypub/replies_controller.rb @@ -7,7 +7,7 @@ class ActivityPub::RepliesController < ActivityPub::BaseController DESCENDANTS_LIMIT = 60 - before_action :require_signature!, if: :authorized_fetch_mode? + before_action :require_account_signature!, if: :authorized_fetch_mode? before_action :set_status before_action :set_cache_headers before_action :set_replies diff --git a/app/controllers/admin/account_actions_controller.rb b/app/controllers/admin/account_actions_controller.rb index ea56fa0ac72295..3f2e28b6ae5927 100644 --- a/app/controllers/admin/account_actions_controller.rb +++ b/app/controllers/admin/account_actions_controller.rb @@ -5,11 +5,15 @@ class AccountActionsController < BaseController before_action :set_account def new + authorize @account, :show? + @account_action = Admin::AccountAction.new(type: params[:type], report_id: params[:report_id], send_email_notification: true, include_statuses: true) @warning_presets = AccountWarningPreset.all end def create + authorize @account, :show? + account_action = Admin::AccountAction.new(resource_params) account_action.target_account = @account account_action.current_account = current_account diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index e0ae71b9f2feda..40bf685c53a11f 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -14,7 +14,13 @@ def index end def batch - @form = Form::AccountBatch.new(form_account_batch_params.merge(current_account: current_account, action: action_from_button)) + authorize :account, :index? + + @form = Form::AccountBatch.new(form_account_batch_params) + @form.current_account = current_account + @form.action = action_from_button + @form.select_all_matching = params[:select_all_matching] + @form.query = filtered_accounts @form.save rescue ActionController::ParameterMissing flash[:alert] = I18n.t('admin.accounts.no_account_selected') diff --git a/app/controllers/admin/action_logs_controller.rb b/app/controllers/admin/action_logs_controller.rb index 2d77620df7b8d9..42edec15a39de5 100644 --- a/app/controllers/admin/action_logs_controller.rb +++ b/app/controllers/admin/action_logs_controller.rb @@ -4,7 +4,10 @@ module Admin class ActionLogsController < BaseController before_action :set_action_logs - def index; end + def index + authorize :audit_log, :index? + @auditable_accounts = Account.where(id: Admin::ActionLog.reorder(nil).select('distinct account_id')).select(:id, :username) + end private diff --git a/app/controllers/admin/base_controller.rb b/app/controllers/admin/base_controller.rb index 7b81a2b01d1b4a..5b7a7ec11acf3e 100644 --- a/app/controllers/admin/base_controller.rb +++ b/app/controllers/admin/base_controller.rb @@ -7,8 +7,8 @@ class BaseController < ApplicationController layout 'admin' - before_action :require_staff! before_action :set_body_classes + after_action :verify_authorized private diff --git a/app/controllers/admin/confirmations_controller.rb b/app/controllers/admin/confirmations_controller.rb index efe7dcbd4b3a40..6f4e42679722e2 100644 --- a/app/controllers/admin/confirmations_controller.rb +++ b/app/controllers/admin/confirmations_controller.rb @@ -17,7 +17,7 @@ def resend @user.resend_confirmation_instructions - log_action :confirm, @user + log_action :resend, @user flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success') redirect_to admin_accounts_path diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index 71efb543e1aef4..00d069cdfb0b46 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -29,10 +29,12 @@ def create end def batch + authorize :custom_emoji, :index? + @form = Form::CustomEmojiBatch.new(form_custom_emoji_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.custom_emojis.no_emoji_selected') rescue Mastodon::NotPermittedError flash[:alert] = I18n.t('admin.custom_emojis.not_permitted') ensure diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb index da9c6dd1622124..924b623ad87416 100644 --- a/app/controllers/admin/dashboard_controller.rb +++ b/app/controllers/admin/dashboard_controller.rb @@ -5,7 +5,9 @@ class DashboardController < BaseController include Redisable def index - @system_checks = Admin::SystemCheck.perform + authorize :dashboard, :index? + + @system_checks = Admin::SystemCheck.perform(current_user) @time_period = (29.days.ago.to_date...Time.now.utc.to_date) @pending_users_count = User.pending.count @pending_reports_count = Report.unresolved.count diff --git a/app/controllers/admin/email_domain_blocks_controller.rb b/app/controllers/admin/email_domain_blocks_controller.rb index a4bbbba5bad2f5..593457b94e476c 100644 --- a/app/controllers/admin/email_domain_blocks_controller.rb +++ b/app/controllers/admin/email_domain_blocks_controller.rb @@ -12,6 +12,8 @@ def index end def batch + authorize :email_domain_block, :index? + @form = Form::EmailDomainBlockBatch.new(form_email_domain_block_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing diff --git a/app/controllers/admin/follow_recommendations_controller.rb b/app/controllers/admin/follow_recommendations_controller.rb index e3eac62b3638ac..841e3cc7fbf86a 100644 --- a/app/controllers/admin/follow_recommendations_controller.rb +++ b/app/controllers/admin/follow_recommendations_controller.rb @@ -12,6 +12,8 @@ def show end def update + authorize :follow_recommendation, :show? + @form = Form::AccountBatch.new(form_account_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing diff --git a/app/controllers/admin/ip_blocks_controller.rb b/app/controllers/admin/ip_blocks_controller.rb index 92b8b0d2b8a260..1bd7ec8059672c 100644 --- a/app/controllers/admin/ip_blocks_controller.rb +++ b/app/controllers/admin/ip_blocks_controller.rb @@ -5,7 +5,7 @@ class IpBlocksController < BaseController def index authorize :ip_block, :index? - @ip_blocks = IpBlock.page(params[:page]) + @ip_blocks = IpBlock.order(ip: :asc).page(params[:page]) @form = Form::IpBlockBatch.new end @@ -29,6 +29,8 @@ def create end def batch + authorize :ip_block, :index? + @form = Form::IpBlockBatch.new(form_ip_block_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing diff --git a/app/controllers/admin/relationships_controller.rb b/app/controllers/admin/relationships_controller.rb index 085ded21c03e13..67645f05465afb 100644 --- a/app/controllers/admin/relationships_controller.rb +++ b/app/controllers/admin/relationships_controller.rb @@ -7,7 +7,7 @@ class RelationshipsController < BaseController PER_PAGE = 40 def index - authorize :account, :index? + authorize @account, :show? @accounts = RelationshipFilter.new(@account, filter_params).results.includes(:account_stat, user: [:ips, :invite_request]).page(params[:page]).per(PER_PAGE) @form = Form::AccountBatch.new diff --git a/app/controllers/admin/roles_controller.rb b/app/controllers/admin/roles_controller.rb index 13f56e9beb52b9..d76aa745bdcf14 100644 --- a/app/controllers/admin/roles_controller.rb +++ b/app/controllers/admin/roles_controller.rb @@ -2,20 +2,66 @@ module Admin class RolesController < BaseController - before_action :set_user + before_action :set_role, except: [:index, :new, :create] - def promote - authorize @user, :promote? - @user.promote! - log_action :promote, @user - redirect_to admin_account_path(@user.account_id) + def index + authorize :user_role, :index? + + @roles = UserRole.order(position: :desc).page(params[:page]) + end + + def new + authorize :user_role, :create? + + @role = UserRole.new + end + + def create + authorize :user_role, :create? + + @role = UserRole.new(resource_params) + @role.current_account = current_account + + if @role.save + log_action :create, @role + redirect_to admin_roles_path + else + render :new + end + end + + def edit + authorize @role, :update? + end + + def update + authorize @role, :update? + + @role.current_account = current_account + + if @role.update(resource_params) + log_action :update, @role + redirect_to admin_roles_path + else + render :edit + end + end + + def destroy + authorize @role, :destroy? + @role.destroy! + log_action :destroy, @role + redirect_to admin_roles_path + end + + private + + def set_role + @role = UserRole.find(params[:id]) end - def demote - authorize @user, :demote? - @user.demote! - log_action :demote, @user - redirect_to admin_account_path(@user.account_id) + def resource_params + params.require(:user_role).permit(:name, :color, :highlighted, :position, permissions_as_keys: []) end end end diff --git a/app/controllers/admin/settings/about_controller.rb b/app/controllers/admin/settings/about_controller.rb new file mode 100644 index 00000000000000..86327fe397e756 --- /dev/null +++ b/app/controllers/admin/settings/about_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::AboutController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_about_path + end +end diff --git a/app/controllers/admin/settings/appearance_controller.rb b/app/controllers/admin/settings/appearance_controller.rb new file mode 100644 index 00000000000000..39b2448d80627b --- /dev/null +++ b/app/controllers/admin/settings/appearance_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::AppearanceController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_appearance_path + end +end diff --git a/app/controllers/admin/settings/branding_controller.rb b/app/controllers/admin/settings/branding_controller.rb new file mode 100644 index 00000000000000..4a4d76f4974aeb --- /dev/null +++ b/app/controllers/admin/settings/branding_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::BrandingController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_branding_path + end +end diff --git a/app/controllers/admin/settings/content_retention_controller.rb b/app/controllers/admin/settings/content_retention_controller.rb new file mode 100644 index 00000000000000..b88336a2c49d5c --- /dev/null +++ b/app/controllers/admin/settings/content_retention_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::ContentRetentionController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_content_retention_path + end +end diff --git a/app/controllers/admin/settings/discovery_controller.rb b/app/controllers/admin/settings/discovery_controller.rb new file mode 100644 index 00000000000000..be4b57f79a9822 --- /dev/null +++ b/app/controllers/admin/settings/discovery_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::DiscoveryController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_discovery_path + end +end diff --git a/app/controllers/admin/settings/registrations_controller.rb b/app/controllers/admin/settings/registrations_controller.rb new file mode 100644 index 00000000000000..b4a74349c08929 --- /dev/null +++ b/app/controllers/admin/settings/registrations_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::RegistrationsController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_registrations_path + end +end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index dc1c79b7fd7747..338a3638c405a7 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -2,7 +2,7 @@ module Admin class SettingsController < BaseController - def edit + def show authorize :settings, :show? @admin_settings = Form::AdminSettings.new @@ -15,14 +15,18 @@ def update if @admin_settings.save flash[:notice] = I18n.t('generic.changes_saved_msg') - redirect_to edit_admin_settings_path + redirect_to after_update_redirect_path else - render :edit + render :show end end private + def after_update_redirect_path + raise NotImplementedError + end + def settings_params params.require(:form_admin_settings).permit(*Form::AdminSettings::KEYS) end diff --git a/app/controllers/admin/site_uploads_controller.rb b/app/controllers/admin/site_uploads_controller.rb index cacecedb0a1255..a5d2cf41cf121d 100644 --- a/app/controllers/admin/site_uploads_controller.rb +++ b/app/controllers/admin/site_uploads_controller.rb @@ -9,7 +9,7 @@ def destroy @site_upload.destroy! - redirect_to edit_admin_settings_path, notice: I18n.t('admin.site_uploads.destroyed_msg') + redirect_to admin_settings_path, notice: I18n.t('admin.site_uploads.destroyed_msg') end private diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb index 817c0caa9000b9..b80cd20f560665 100644 --- a/app/controllers/admin/statuses_controller.rb +++ b/app/controllers/admin/statuses_controller.rb @@ -3,17 +3,24 @@ module Admin class StatusesController < BaseController before_action :set_account - before_action :set_statuses + before_action :set_statuses, except: :show + before_action :set_status, only: :show PER_PAGE = 20 def index - authorize :status, :index? + authorize [:admin, :status], :index? @status_batch_action = Admin::StatusBatchAction.new end + def show + authorize [:admin, @status], :show? + end + def batch + authorize [:admin, :status], :index? + @status_batch_action = Admin::StatusBatchAction.new(admin_status_batch_action_params.merge(current_account: current_account, report_id: params[:report_id], type: action_from_button)) @status_batch_action.save! rescue ActionController::ParameterMissing @@ -30,6 +37,7 @@ def admin_status_batch_action_params def after_create_redirect_path report_id = @status_batch_action&.report_id || params[:report_id] + if report_id.present? admin_report_path(report_id) else @@ -41,6 +49,10 @@ def set_account @account = Account.find(params[:account_id]) end + def set_status + @status = @account.statuses.find(params[:id]) + end + def set_statuses @statuses = Admin::StatusFilter.new(@account, filter_params).results.preload(:application, :preloadable_poll, :media_attachments, active_mentions: :account, reblog: [:account, :application, :preloadable_poll, :media_attachments, active_mentions: :account]).page(params[:page]).per(PER_PAGE) end diff --git a/app/controllers/admin/subscriptions_controller.rb b/app/controllers/admin/subscriptions_controller.rb deleted file mode 100644 index 40500ef43f5a7d..00000000000000 --- a/app/controllers/admin/subscriptions_controller.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -module Admin - class SubscriptionsController < BaseController - def index - authorize :subscription, :index? - @subscriptions = ordered_subscriptions.page(requested_page) - end - - private - - def ordered_subscriptions - Subscription.order(id: :desc).includes(:account) - end - - def requested_page - params[:page].to_i - end - end -end diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb index 749e2f144d3a2b..4f727c398a0be0 100644 --- a/app/controllers/admin/tags_controller.rb +++ b/app/controllers/admin/tags_controller.rb @@ -16,6 +16,8 @@ def update if @tag.update(tag_params.merge(reviewed_at: Time.now.utc)) redirect_to admin_tag_path(@tag.id), notice: I18n.t('admin.tags.updated_msg') else + @time_period = (6.days.ago.to_date...Time.now.utc.to_date) + render :show end end @@ -27,7 +29,7 @@ def set_tag end def tag_params - params.require(:tag).permit(:name, :trendable, :usable, :listable) + params.require(:tag).permit(:name, :display_name, :trendable, :usable, :listable) end end end diff --git a/app/controllers/admin/trends/links/preview_card_providers_controller.rb b/app/controllers/admin/trends/links/preview_card_providers_controller.rb index 40a466cd630433..768b79f8dbce45 100644 --- a/app/controllers/admin/trends/links/preview_card_providers_controller.rb +++ b/app/controllers/admin/trends/links/preview_card_providers_controller.rb @@ -2,17 +2,19 @@ class Admin::Trends::Links::PreviewCardProvidersController < Admin::BaseController def index - authorize :preview_card_provider, :index? + authorize :preview_card_provider, :review? @preview_card_providers = filtered_preview_card_providers.page(params[:page]) @form = Trends::PreviewCardProviderBatch.new end def batch + authorize :preview_card_provider, :review? + @form = Trends::PreviewCardProviderBatch.new(trends_preview_card_provider_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.links.publishers.no_publisher_selected') ensure redirect_to admin_trends_links_preview_card_providers_path(filter_params) end diff --git a/app/controllers/admin/trends/links_controller.rb b/app/controllers/admin/trends/links_controller.rb index 434eec5feea3ad..83d68eba63c321 100644 --- a/app/controllers/admin/trends/links_controller.rb +++ b/app/controllers/admin/trends/links_controller.rb @@ -2,17 +2,20 @@ class Admin::Trends::LinksController < Admin::BaseController def index - authorize :preview_card, :index? + authorize :preview_card, :review? + @locales = PreviewCardTrend.pluck('distinct language') @preview_cards = filtered_preview_cards.page(params[:page]) @form = Trends::PreviewCardBatch.new end def batch + authorize :preview_card, :review? + @form = Trends::PreviewCardBatch.new(trends_preview_card_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.links.no_link_selected') ensure redirect_to admin_trends_links_path(filter_params) end diff --git a/app/controllers/admin/trends/statuses_controller.rb b/app/controllers/admin/trends/statuses_controller.rb index 7662427387dc4d..3d8b53ea8a0444 100644 --- a/app/controllers/admin/trends/statuses_controller.rb +++ b/app/controllers/admin/trends/statuses_controller.rb @@ -2,17 +2,20 @@ class Admin::Trends::StatusesController < Admin::BaseController def index - authorize :status, :index? + authorize [:admin, :status], :review? + @locales = StatusTrend.pluck('distinct language') @statuses = filtered_statuses.page(params[:page]) @form = Trends::StatusBatch.new end def batch + authorize [:admin, :status], :review? + @form = Trends::StatusBatch.new(trends_status_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.statuses.no_status_selected') ensure redirect_to admin_trends_statuses_path(filter_params) end diff --git a/app/controllers/admin/trends/tags_controller.rb b/app/controllers/admin/trends/tags_controller.rb index f4d1ec0d1f6725..f5946448ae1f71 100644 --- a/app/controllers/admin/trends/tags_controller.rb +++ b/app/controllers/admin/trends/tags_controller.rb @@ -2,17 +2,19 @@ class Admin::Trends::TagsController < Admin::BaseController def index - authorize :tag, :index? + authorize :tag, :review? @tags = filtered_tags.page(params[:page]) @form = Trends::TagBatch.new end def batch + authorize :tag, :review? + @form = Trends::TagBatch.new(trends_tag_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.tags.no_tag_selected') ensure redirect_to admin_trends_tags_path(filter_params) end diff --git a/app/controllers/admin/users/roles_controller.rb b/app/controllers/admin/users/roles_controller.rb new file mode 100644 index 00000000000000..f5dfc643d472d7 --- /dev/null +++ b/app/controllers/admin/users/roles_controller.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Admin + class Users::RolesController < BaseController + before_action :set_user + + def show + authorize @user, :change_role? + end + + def update + authorize @user, :change_role? + + @user.current_account = current_account + + if @user.update(resource_params) + log_action :change_role, @user + redirect_to admin_account_path(@user.account_id), notice: I18n.t('admin.accounts.change_role.changed_msg') + else + render :show + end + end + + private + + def set_user + @user = User.find(params[:user_id]) + end + + def resource_params + params.require(:user).permit(:role_id) + end + end +end diff --git a/app/controllers/admin/two_factor_authentications_controller.rb b/app/controllers/admin/users/two_factor_authentications_controller.rb similarity index 86% rename from app/controllers/admin/two_factor_authentications_controller.rb rename to app/controllers/admin/users/two_factor_authentications_controller.rb index f7fb7eb8fe3197..5e3fb2b3cfb9b3 100644 --- a/app/controllers/admin/two_factor_authentications_controller.rb +++ b/app/controllers/admin/users/two_factor_authentications_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Admin - class TwoFactorAuthenticationsController < BaseController + class Users::TwoFactorAuthenticationsController < BaseController before_action :set_target_user def destroy diff --git a/app/controllers/admin/webhooks/secrets_controller.rb b/app/controllers/admin/webhooks/secrets_controller.rb new file mode 100644 index 00000000000000..16af1cf7b6e59c --- /dev/null +++ b/app/controllers/admin/webhooks/secrets_controller.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Admin + class Webhooks::SecretsController < BaseController + before_action :set_webhook + + def rotate + authorize @webhook, :rotate_secret? + @webhook.rotate_secret! + redirect_to admin_webhook_path(@webhook) + end + + private + + def set_webhook + @webhook = Webhook.find(params[:webhook_id]) + end + end +end diff --git a/app/controllers/admin/webhooks_controller.rb b/app/controllers/admin/webhooks_controller.rb new file mode 100644 index 00000000000000..d6fb1a4eaf3009 --- /dev/null +++ b/app/controllers/admin/webhooks_controller.rb @@ -0,0 +1,77 @@ +# frozen_string_literal: true + +module Admin + class WebhooksController < BaseController + before_action :set_webhook, except: [:index, :new, :create] + + def index + authorize :webhook, :index? + + @webhooks = Webhook.page(params[:page]) + end + + def new + authorize :webhook, :create? + + @webhook = Webhook.new + end + + def create + authorize :webhook, :create? + + @webhook = Webhook.new(resource_params) + + if @webhook.save + redirect_to admin_webhook_path(@webhook) + else + render :new + end + end + + def show + authorize @webhook, :show? + end + + def edit + authorize @webhook, :update? + end + + def update + authorize @webhook, :update? + + if @webhook.update(resource_params) + redirect_to admin_webhook_path(@webhook) + else + render :show + end + end + + def enable + authorize @webhook, :enable? + @webhook.enable! + redirect_to admin_webhook_path(@webhook) + end + + def disable + authorize @webhook, :disable? + @webhook.disable! + redirect_to admin_webhook_path(@webhook) + end + + def destroy + authorize @webhook, :destroy? + @webhook.destroy! + redirect_to admin_webhooks_path + end + + private + + def set_webhook + @webhook = Webhook.find(params[:id]) + end + + def resource_params + params.require(:webhook).permit(:url, events: []) + end + end +end diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 2e393fbb6f4d0f..665425f2965db5 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -24,6 +24,10 @@ class Api::BaseController < ApplicationController render json: { error: 'Duplicate record' }, status: 422 end + rescue_from Date::Error do + render json: { error: 'Invalid date supplied' }, status: 422 + end + rescue_from ActiveRecord::RecordNotFound do render json: { error: 'Record not found' }, status: 404 end @@ -53,7 +57,7 @@ class Api::BaseController < ApplicationController render json: { error: I18n.t('errors.429') }, status: 429 end - rescue_from ActionController::ParameterMissing do |e| + rescue_from ActionController::ParameterMissing, Mastodon::InvalidParameterError do |e| render json: { error: e.to_s }, status: 400 end @@ -129,6 +133,12 @@ def set_cache_headers end def disallow_unauthenticated_api_access? - authorized_fetch_mode? + ENV['DISALLOW_UNAUTHENTICATED_API_ACCESS'] == 'true' || Rails.configuration.x.whitelist_mode + end + + private + + def respond_with_error(code) + render json: { error: Rack::Utils::HTTP_STATUS_CODES[code] }, status: code end end diff --git a/app/controllers/api/v1/accounts/follower_accounts_controller.rb b/app/controllers/api/v1/accounts/follower_accounts_controller.rb index a665863ebf4816..b61de13b913be0 100644 --- a/app/controllers/api/v1/accounts/follower_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/follower_accounts_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Api::V1::Accounts::FollowerAccountsController < Api::BaseController - before_action -> { doorkeeper_authorize! :read, :'read:accounts' } + before_action -> { authorize_if_got_token! :read, :'read:accounts' } before_action :set_account after_action :insert_pagination_headers diff --git a/app/controllers/api/v1/accounts/following_accounts_controller.rb b/app/controllers/api/v1/accounts/following_accounts_controller.rb index 7d885a212f2c34..37d3c2d7834b76 100644 --- a/app/controllers/api/v1/accounts/following_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/following_accounts_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Api::V1::Accounts::FollowingAccountsController < Api::BaseController - before_action -> { doorkeeper_authorize! :read, :'read:accounts' } + before_action -> { authorize_if_got_token! :read, :'read:accounts' } before_action :set_account after_action :insert_pagination_headers diff --git a/app/controllers/api/v1/accounts/pins_controller.rb b/app/controllers/api/v1/accounts/pins_controller.rb index 3915b566933501..73f845c6143a04 100644 --- a/app/controllers/api/v1/accounts/pins_controller.rb +++ b/app/controllers/api/v1/accounts/pins_controller.rb @@ -8,7 +8,7 @@ class Api::V1::Accounts::PinsController < Api::BaseController before_action :set_account def create - AccountPin.create!(account: current_account, target_account: @account) + AccountPin.find_or_create_by!(account: current_account, target_account: @account) render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter end diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index 5537cc9b0bd9e4..be84720aa9cbeb 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -30,12 +30,12 @@ def create self.response_body = Oj.dump(response.body) self.status = response.status rescue ActiveRecord::RecordInvalid => e - render json: ValidationErrorFormatter.new(e, :'account.username' => :username, :'invite_request.text' => :reason).as_json, status: :unprocessable_entity + render json: ValidationErrorFormatter.new(e, 'account.username': :username, 'invite_request.text': :reason).as_json, status: :unprocessable_entity end def follow - follow = FollowService.new.call(current_user.account, @account, reblogs: params.key?(:reblogs) ? truthy_param?(:reblogs) : nil, notify: params.key?(:notify) ? truthy_param?(:notify) : nil, with_rate_limit: true) - options = @account.locked? || current_user.account.silenced? ? {} : { following_map: { @account.id => { reblogs: follow.show_reblogs?, notify: follow.notify? } }, requested_map: { @account.id => false } } + follow = FollowService.new.call(current_user.account, @account, reblogs: params.key?(:reblogs) ? truthy_param?(:reblogs) : nil, notify: params.key?(:notify) ? truthy_param?(:notify) : nil, languages: params.key?(:languages) ? params[:languages] : nil, with_rate_limit: true) + options = @account.locked? || current_user.account.silenced? ? {} : { following_map: { @account.id => { reblogs: follow.show_reblogs?, notify: follow.notify?, languages: follow.languages } }, requested_map: { @account.id => false } } render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships(**options) end diff --git a/app/controllers/api/v1/admin/account_actions_controller.rb b/app/controllers/api/v1/admin/account_actions_controller.rb index 6c9e04402c9947..7249797a40bb09 100644 --- a/app/controllers/api/v1/admin/account_actions_controller.rb +++ b/app/controllers/api/v1/admin/account_actions_controller.rb @@ -1,11 +1,16 @@ # frozen_string_literal: true class Api::V1::Admin::AccountActionsController < Api::BaseController + include Authorization + before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:accounts' } - before_action :require_staff! before_action :set_account + after_action :verify_authorized + def create + authorize @account, :show? + account_action = Admin::AccountAction.new(resource_params) account_action.target_account = @account account_action.current_account = current_account diff --git a/app/controllers/api/v1/admin/accounts_controller.rb b/app/controllers/api/v1/admin/accounts_controller.rb index 65ed69f7ba444e..ae7f7d0762b553 100644 --- a/app/controllers/api/v1/admin/accounts_controller.rb +++ b/app/controllers/api/v1/admin/accounts_controller.rb @@ -8,11 +8,11 @@ class Api::V1::Admin::AccountsController < Api::BaseController before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:accounts' }, only: [:index, :show] before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:accounts' }, except: [:index, :show] - before_action :require_staff! before_action :set_accounts, only: :index before_action :set_account, except: :index before_action :require_local_account!, only: [:enable, :approve, :reject] + after_action :verify_authorized after_action :insert_pagination_headers, only: :index FILTER_PARAMS = %i( @@ -60,14 +60,13 @@ def approve def reject authorize @account.user, :reject? DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false) - render json: @account, serializer: REST::Admin::AccountSerializer + render_empty end def destroy authorize @account, :destroy? - json = render_to_body json: @account, serializer: REST::Admin::AccountSerializer Admin::AccountDeletionWorker.perform_async(@account.id) - render json: json + render_empty end def unsensitive @@ -119,7 +118,9 @@ def translated_filter_params translated_params[:status] = status.to_s if params[status].present? end - translated_params[:permissions] = 'staff' if params[:staff].present? + if params[:staff].present? + translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id) + end translated_params end diff --git a/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb new file mode 100644 index 00000000000000..9ef1b3be715c86 --- /dev/null +++ b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb @@ -0,0 +1,95 @@ +# frozen_string_literal: true + +class Api::V1::Admin::CanonicalEmailBlocksController < Api::BaseController + include Authorization + include AccountableConcern + + LIMIT = 100 + + before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:canonical_email_blocks' }, only: [:index, :show, :test] + before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:canonical_email_blocks' }, except: [:index, :show, :test] + + before_action :set_canonical_email_blocks, only: :index + before_action :set_canonical_email_blocks_from_test, only: [:test] + before_action :set_canonical_email_block, only: [:show, :destroy] + + after_action :verify_authorized + after_action :insert_pagination_headers, only: :index + + PAGINATION_PARAMS = %i(limit).freeze + + def index + authorize :canonical_email_block, :index? + render json: @canonical_email_blocks, each_serializer: REST::Admin::CanonicalEmailBlockSerializer + end + + def show + authorize @canonical_email_block, :show? + render json: @canonical_email_block, serializer: REST::Admin::CanonicalEmailBlockSerializer + end + + def test + authorize :canonical_email_block, :test? + render json: @canonical_email_blocks, each_serializer: REST::Admin::CanonicalEmailBlockSerializer + end + + def create + authorize :canonical_email_block, :create? + @canonical_email_block = CanonicalEmailBlock.create!(resource_params) + log_action :create, @canonical_email_block + render json: @canonical_email_block, serializer: REST::Admin::CanonicalEmailBlockSerializer + end + + def destroy + authorize @canonical_email_block, :destroy? + @canonical_email_block.destroy! + log_action :destroy, @canonical_email_block + render_empty + end + + private + + def resource_params + params.permit(:canonical_email_hash, :email) + end + + def set_canonical_email_blocks + @canonical_email_blocks = CanonicalEmailBlock.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) + end + + def set_canonical_email_blocks_from_test + @canonical_email_blocks = CanonicalEmailBlock.matching_email(params[:email]) + end + + def set_canonical_email_block + @canonical_email_block = CanonicalEmailBlock.find(params[:id]) + end + + def insert_pagination_headers + set_pagination_headers(next_path, prev_path) + end + + def next_path + api_v1_admin_canonical_email_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? + end + + def prev_path + api_v1_admin_canonical_email_blocks_url(pagination_params(min_id: pagination_since_id)) unless @canonical_email_blocks.empty? + end + + def pagination_max_id + @canonical_email_blocks.last.id + end + + def pagination_since_id + @canonical_email_blocks.first.id + end + + def records_continue? + @canonical_email_blocks.size == limit_param(LIMIT) + end + + def pagination_params(core_params) + params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params) + end +end diff --git a/app/controllers/api/v1/admin/dimensions_controller.rb b/app/controllers/api/v1/admin/dimensions_controller.rb index 49a5be1c365d92..4a72ad08be75d3 100644 --- a/app/controllers/api/v1/admin/dimensions_controller.rb +++ b/app/controllers/api/v1/admin/dimensions_controller.rb @@ -1,11 +1,15 @@ # frozen_string_literal: true class Api::V1::Admin::DimensionsController < Api::BaseController + include Authorization + before_action -> { authorize_if_got_token! :'admin:read' } - before_action :require_staff! before_action :set_dimensions + after_action :verify_authorized + def create + authorize :dashboard, :index? render json: @dimensions, each_serializer: REST::Admin::DimensionSerializer end diff --git a/app/controllers/api/v1/admin/domain_allows_controller.rb b/app/controllers/api/v1/admin/domain_allows_controller.rb new file mode 100644 index 00000000000000..0658199f0fc16d --- /dev/null +++ b/app/controllers/api/v1/admin/domain_allows_controller.rb @@ -0,0 +1,95 @@ +# frozen_string_literal: true + +class Api::V1::Admin::DomainAllowsController < Api::BaseController + include Authorization + include AccountableConcern + + LIMIT = 100 + + before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:domain_allows' }, only: [:index, :show] + before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:domain_allows' }, except: [:index, :show] + before_action :set_domain_allows, only: :index + before_action :set_domain_allow, only: [:show, :destroy] + + after_action :verify_authorized + after_action :insert_pagination_headers, only: :index + + PAGINATION_PARAMS = %i(limit).freeze + + def create + authorize :domain_allow, :create? + + @domain_allow = DomainAllow.find_by(resource_params) + + if @domain_allow.nil? + @domain_allow = DomainAllow.create!(resource_params) + log_action :create, @domain_allow + end + + render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer + end + + def index + authorize :domain_allow, :index? + render json: @domain_allows, each_serializer: REST::Admin::DomainAllowSerializer + end + + def show + authorize @domain_allow, :show? + render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer + end + + def destroy + authorize @domain_allow, :destroy? + UnallowDomainService.new.call(@domain_allow) + log_action :destroy, @domain_allow + render_empty + end + + private + + def set_domain_allows + @domain_allows = filtered_domain_allows.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) + end + + def set_domain_allow + @domain_allow = DomainAllow.find(params[:id]) + end + + def filtered_domain_allows + # TODO: no filtering yet + DomainAllow.all + end + + def insert_pagination_headers + set_pagination_headers(next_path, prev_path) + end + + def next_path + api_v1_admin_domain_allows_url(pagination_params(max_id: pagination_max_id)) if records_continue? + end + + def prev_path + api_v1_admin_domain_allows_url(pagination_params(min_id: pagination_since_id)) unless @domain_allows.empty? + end + + def pagination_max_id + @domain_allows.last.id + end + + def pagination_since_id + @domain_allows.first.id + end + + def records_continue? + @domain_allows.size == limit_param(LIMIT) + end + + def pagination_params(core_params) + params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params) + end + + def resource_params + params.permit(:domain) + end +end diff --git a/app/controllers/api/v1/admin/domain_blocks_controller.rb b/app/controllers/api/v1/admin/domain_blocks_controller.rb new file mode 100644 index 00000000000000..df5b1b3fcb89dd --- /dev/null +++ b/app/controllers/api/v1/admin/domain_blocks_controller.rb @@ -0,0 +1,108 @@ +# frozen_string_literal: true + +class Api::V1::Admin::DomainBlocksController < Api::BaseController + include Authorization + include AccountableConcern + + LIMIT = 100 + + before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:domain_blocks' }, only: [:index, :show] + before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:domain_blocks' }, except: [:index, :show] + before_action :set_domain_blocks, only: :index + before_action :set_domain_block, only: [:show, :update, :destroy] + + after_action :verify_authorized + after_action :insert_pagination_headers, only: :index + + PAGINATION_PARAMS = %i(limit).freeze + + def create + authorize :domain_block, :create? + + existing_domain_block = resource_params[:domain].present? ? DomainBlock.rule_for(resource_params[:domain]) : nil + return render json: existing_domain_block, serializer: REST::Admin::ExistingDomainBlockErrorSerializer, status: 422 if existing_domain_block.present? + + @domain_block = DomainBlock.create!(resource_params) + DomainBlockWorker.perform_async(@domain_block.id) + log_action :create, @domain_block + render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer + end + + def index + authorize :domain_block, :index? + render json: @domain_blocks, each_serializer: REST::Admin::DomainBlockSerializer + end + + def show + authorize @domain_block, :show? + render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer + end + + def update + authorize @domain_block, :update? + @domain_block.update(domain_block_params) + severity_changed = @domain_block.severity_changed? + @domain_block.save! + DomainBlockWorker.perform_async(@domain_block.id, severity_changed) + log_action :update, @domain_block + render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer + end + + def destroy + authorize @domain_block, :destroy? + UnblockDomainService.new.call(@domain_block) + log_action :destroy, @domain_block + render_empty + end + + private + + def set_domain_blocks + @domain_blocks = filtered_domain_blocks.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) + end + + def set_domain_block + @domain_block = DomainBlock.find(params[:id]) + end + + def filtered_domain_blocks + # TODO: no filtering yet + DomainBlock.all + end + + def domain_block_params + params.permit(:severity, :reject_media, :reject_reports, :private_comment, :public_comment, :obfuscate) + end + + def insert_pagination_headers + set_pagination_headers(next_path, prev_path) + end + + def next_path + api_v1_admin_domain_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? + end + + def prev_path + api_v1_admin_domain_blocks_url(pagination_params(min_id: pagination_since_id)) unless @domain_blocks.empty? + end + + def pagination_max_id + @domain_blocks.last.id + end + + def pagination_since_id + @domain_blocks.first.id + end + + def records_continue? + @domain_blocks.size == limit_param(LIMIT) + end + + def pagination_params(core_params) + params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params) + end + + def resource_params + params.permit(:domain, :severity, :reject_media, :reject_reports, :private_comment, :public_comment, :obfuscate) + end +end diff --git a/app/controllers/api/v1/admin/email_domain_blocks_controller.rb b/app/controllers/api/v1/admin/email_domain_blocks_controller.rb new file mode 100644 index 00000000000000..e53d0b1573a57c --- /dev/null +++ b/app/controllers/api/v1/admin/email_domain_blocks_controller.rb @@ -0,0 +1,88 @@ +# frozen_string_literal: true + +class Api::V1::Admin::EmailDomainBlocksController < Api::BaseController + include Authorization + include AccountableConcern + + LIMIT = 100 + + before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:email_domain_blocks' }, only: [:index, :show] + before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:email_domain_blocks' }, except: [:index, :show] + before_action :set_email_domain_blocks, only: :index + before_action :set_email_domain_block, only: [:show, :destroy] + + after_action :verify_authorized + after_action :insert_pagination_headers, only: :index + + PAGINATION_PARAMS = %i( + limit + ).freeze + + def create + authorize :email_domain_block, :create? + + @email_domain_block = EmailDomainBlock.create!(resource_params) + log_action :create, @email_domain_block + + render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer + end + + def index + authorize :email_domain_block, :index? + render json: @email_domain_blocks, each_serializer: REST::Admin::EmailDomainBlockSerializer + end + + def show + authorize @email_domain_block, :show? + render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer + end + + def destroy + authorize @email_domain_block, :destroy? + @email_domain_block.destroy! + log_action :destroy, @email_domain_block + render_empty + end + + private + + def set_email_domain_blocks + @email_domain_blocks = EmailDomainBlock.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) + end + + def set_email_domain_block + @email_domain_block = EmailDomainBlock.find(params[:id]) + end + + def resource_params + params.permit(:domain) + end + + def insert_pagination_headers + set_pagination_headers(next_path, prev_path) + end + + def next_path + api_v1_admin_email_domain_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? + end + + def prev_path + api_v1_admin_email_domain_blocks_url(pagination_params(min_id: pagination_since_id)) unless @email_domain_blocks.empty? + end + + def pagination_max_id + @email_domain_blocks.last.id + end + + def pagination_since_id + @email_domain_blocks.first.id + end + + def records_continue? + @email_domain_blocks.size == limit_param(LIMIT) + end + + def pagination_params(core_params) + params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params) + end +end diff --git a/app/controllers/api/v1/admin/ip_blocks_controller.rb b/app/controllers/api/v1/admin/ip_blocks_controller.rb new file mode 100644 index 00000000000000..201ab6b1ffa14c --- /dev/null +++ b/app/controllers/api/v1/admin/ip_blocks_controller.rb @@ -0,0 +1,93 @@ +# frozen_string_literal: true + +class Api::V1::Admin::IpBlocksController < Api::BaseController + include Authorization + include AccountableConcern + + LIMIT = 100 + + before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:ip_blocks' }, only: [:index, :show] + before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:ip_blocks' }, except: [:index, :show] + before_action :set_ip_blocks, only: :index + before_action :set_ip_block, only: [:show, :update, :destroy] + + after_action :verify_authorized + after_action :insert_pagination_headers, only: :index + + PAGINATION_PARAMS = %i( + limit + ).freeze + + def create + authorize :ip_block, :create? + @ip_block = IpBlock.create!(resource_params) + log_action :create, @ip_block + render json: @ip_block, serializer: REST::Admin::IpBlockSerializer + end + + def index + authorize :ip_block, :index? + render json: @ip_blocks, each_serializer: REST::Admin::IpBlockSerializer + end + + def show + authorize @ip_block, :show? + render json: @ip_block, serializer: REST::Admin::IpBlockSerializer + end + + def update + authorize @ip_block, :update? + @ip_block.update(resource_params) + log_action :update, @ip_block + render json: @ip_block, serializer: REST::Admin::IpBlockSerializer + end + + def destroy + authorize @ip_block, :destroy? + @ip_block.destroy! + log_action :destroy, @ip_block + render_empty + end + + private + + def set_ip_blocks + @ip_blocks = IpBlock.order(id: :desc).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) + end + + def set_ip_block + @ip_block = IpBlock.find(params[:id]) + end + + def resource_params + params.permit(:ip, :severity, :comment, :expires_in) + end + + def insert_pagination_headers + set_pagination_headers(next_path, prev_path) + end + + def next_path + api_v1_admin_ip_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? + end + + def prev_path + api_v1_admin_ip_blocks_url(pagination_params(min_id: pagination_since_id)) unless @ip_blocks.empty? + end + + def pagination_max_id + @ip_blocks.last.id + end + + def pagination_since_id + @ip_blocks.first.id + end + + def records_continue? + @ip_blocks.size == limit_param(LIMIT) + end + + def pagination_params(core_params) + params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params) + end +end diff --git a/app/controllers/api/v1/admin/measures_controller.rb b/app/controllers/api/v1/admin/measures_controller.rb index da95d34220dc80..d78d7e10b33ac4 100644 --- a/app/controllers/api/v1/admin/measures_controller.rb +++ b/app/controllers/api/v1/admin/measures_controller.rb @@ -1,11 +1,15 @@ # frozen_string_literal: true class Api::V1::Admin::MeasuresController < Api::BaseController + include Authorization + before_action -> { authorize_if_got_token! :'admin:read' } - before_action :require_staff! before_action :set_measures + after_action :verify_authorized + def create + authorize :dashboard, :index? render json: @measures, each_serializer: REST::Admin::MeasureSerializer end diff --git a/app/controllers/api/v1/admin/reports_controller.rb b/app/controllers/api/v1/admin/reports_controller.rb index 865ba3d23c8824..9dfb181a288e6b 100644 --- a/app/controllers/api/v1/admin/reports_controller.rb +++ b/app/controllers/api/v1/admin/reports_controller.rb @@ -8,10 +8,10 @@ class Api::V1::Admin::ReportsController < Api::BaseController before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:reports' }, only: [:index, :show] before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:reports' }, except: [:index, :show] - before_action :require_staff! before_action :set_reports, only: :index before_action :set_report, except: :index + after_action :verify_authorized after_action :insert_pagination_headers, only: :index FILTER_PARAMS = %i( diff --git a/app/controllers/api/v1/admin/retention_controller.rb b/app/controllers/api/v1/admin/retention_controller.rb index 98d1a3d813fb9c..59d6b838833fd0 100644 --- a/app/controllers/api/v1/admin/retention_controller.rb +++ b/app/controllers/api/v1/admin/retention_controller.rb @@ -1,11 +1,15 @@ # frozen_string_literal: true class Api::V1::Admin::RetentionController < Api::BaseController + include Authorization + before_action -> { authorize_if_got_token! :'admin:read' } - before_action :require_staff! before_action :set_cohorts + after_action :verify_authorized + def create + authorize :dashboard, :index? render json: @cohorts, each_serializer: REST::Admin::CohortSerializer end diff --git a/app/controllers/api/v1/admin/trends/links_controller.rb b/app/controllers/api/v1/admin/trends/links_controller.rb index 0a191fe4b26ffb..cc6388980657ab 100644 --- a/app/controllers/api/v1/admin/trends/links_controller.rb +++ b/app/controllers/api/v1/admin/trends/links_controller.rb @@ -1,17 +1,19 @@ # frozen_string_literal: true -class Api::V1::Admin::Trends::LinksController < Api::BaseController +class Api::V1::Admin::Trends::LinksController < Api::V1::Trends::LinksController before_action -> { authorize_if_got_token! :'admin:read' } - before_action :require_staff! - before_action :set_links - - def index - render json: @links, each_serializer: REST::Trends::LinkSerializer - end private - def set_links - @links = Trends.links.query.limit(limit_param(10)) + def enabled? + super || current_user&.can?(:manage_taxonomies) + end + + def links_from_trends + if current_user&.can?(:manage_taxonomies) + Trends.links.query + else + super + end end end diff --git a/app/controllers/api/v1/admin/trends/statuses_controller.rb b/app/controllers/api/v1/admin/trends/statuses_controller.rb index cb145f165c33b0..c39f77363c6d93 100644 --- a/app/controllers/api/v1/admin/trends/statuses_controller.rb +++ b/app/controllers/api/v1/admin/trends/statuses_controller.rb @@ -1,17 +1,19 @@ # frozen_string_literal: true -class Api::V1::Admin::Trends::StatusesController < Api::BaseController +class Api::V1::Admin::Trends::StatusesController < Api::V1::Trends::StatusesController before_action -> { authorize_if_got_token! :'admin:read' } - before_action :require_staff! - before_action :set_statuses - - def index - render json: @statuses, each_serializer: REST::StatusSerializer - end private - def set_statuses - @statuses = cache_collection(Trends.statuses.query.limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status) + def enabled? + super || current_user&.can?(:manage_taxonomies) + end + + def statuses_from_trends + if current_user&.can?(:manage_taxonomies) + Trends.statuses.query + else + super + end end end diff --git a/app/controllers/api/v1/admin/trends/tags_controller.rb b/app/controllers/api/v1/admin/trends/tags_controller.rb index 9c28b0412b495d..f3c0c4b6b4b674 100644 --- a/app/controllers/api/v1/admin/trends/tags_controller.rb +++ b/app/controllers/api/v1/admin/trends/tags_controller.rb @@ -1,17 +1,19 @@ # frozen_string_literal: true -class Api::V1::Admin::Trends::TagsController < Api::BaseController +class Api::V1::Admin::Trends::TagsController < Api::V1::Trends::TagsController before_action -> { authorize_if_got_token! :'admin:read' } - before_action :require_staff! - before_action :set_tags - - def index - render json: @tags, each_serializer: REST::Admin::TagSerializer - end private - def set_tags - @tags = Trends.tags.query.limit(limit_param(10)) + def enabled? + super || current_user&.can?(:manage_taxonomies) + end + + def tags_from_trends + if current_user&.can?(:manage_taxonomies) + Trends.tags.query + else + super + end end end diff --git a/app/controllers/api/v1/featured_tags/suggestions_controller.rb b/app/controllers/api/v1/featured_tags/suggestions_controller.rb index 75545d3c7f7930..76633210a1dd9c 100644 --- a/app/controllers/api/v1/featured_tags/suggestions_controller.rb +++ b/app/controllers/api/v1/featured_tags/suggestions_controller.rb @@ -6,7 +6,7 @@ class Api::V1::FeaturedTags::SuggestionsController < Api::BaseController before_action :set_recently_used_tags, only: :index def index - render json: @recently_used_tags, each_serializer: REST::TagSerializer + render json: @recently_used_tags, each_serializer: REST::TagSerializer, relationships: TagRelationshipsPresenter.new(@recently_used_tags, current_user&.account_id) end private diff --git a/app/controllers/api/v1/featured_tags_controller.rb b/app/controllers/api/v1/featured_tags_controller.rb index e4e836c9711dd4..edb42a94ea6b20 100644 --- a/app/controllers/api/v1/featured_tags_controller.rb +++ b/app/controllers/api/v1/featured_tags_controller.rb @@ -13,14 +13,12 @@ def index end def create - @featured_tag = current_account.featured_tags.new(featured_tag_params) - @featured_tag.reset_data - @featured_tag.save! - render json: @featured_tag, serializer: REST::FeaturedTagSerializer + featured_tag = CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name]) + render json: featured_tag, serializer: REST::FeaturedTagSerializer end def destroy - @featured_tag.destroy! + RemoveFeaturedTagWorker.perform_async(current_account.id, @featured_tag.id) render_empty end diff --git a/app/controllers/api/v1/filters_controller.rb b/app/controllers/api/v1/filters_controller.rb index b0ace3af04c2f7..149139b40a1291 100644 --- a/app/controllers/api/v1/filters_controller.rb +++ b/app/controllers/api/v1/filters_controller.rb @@ -8,21 +8,32 @@ class Api::V1::FiltersController < Api::BaseController before_action :set_filter, only: [:show, :update, :destroy] def index - render json: @filters, each_serializer: REST::FilterSerializer + render json: @filters, each_serializer: REST::V1::FilterSerializer end def create - @filter = current_account.custom_filters.create!(resource_params) - render json: @filter, serializer: REST::FilterSerializer + ApplicationRecord.transaction do + filter_category = current_account.custom_filters.create!(resource_params) + @filter = filter_category.keywords.create!(keyword_params) + end + + render json: @filter, serializer: REST::V1::FilterSerializer end def show - render json: @filter, serializer: REST::FilterSerializer + render json: @filter, serializer: REST::V1::FilterSerializer end def update - @filter.update!(resource_params) - render json: @filter, serializer: REST::FilterSerializer + ApplicationRecord.transaction do + @filter.update!(keyword_params) + @filter.custom_filter.assign_attributes(filter_params) + raise Mastodon::ValidationError, I18n.t('filters.errors.deprecated_api_multiple_keywords') if @filter.custom_filter.changed? && @filter.custom_filter.keywords.count > 1 + + @filter.custom_filter.save! + end + + render json: @filter, serializer: REST::V1::FilterSerializer end def destroy @@ -33,14 +44,22 @@ def destroy private def set_filters - @filters = current_account.custom_filters + @filters = CustomFilterKeyword.includes(:custom_filter).where(custom_filter: { account: current_account }) end def set_filter - @filter = current_account.custom_filters.find(params[:id]) + @filter = CustomFilterKeyword.includes(:custom_filter).where(custom_filter: { account: current_account }).find(params[:id]) end def resource_params - params.permit(:phrase, :expires_in, :irreversible, :whole_word, context: []) + params.permit(:phrase, :expires_in, :irreversible, context: []) + end + + def filter_params + resource_params.slice(:expires_in, :irreversible, :context) + end + + def keyword_params + resource_params.slice(:phrase, :whole_word) end end diff --git a/app/controllers/api/v1/followed_tags_controller.rb b/app/controllers/api/v1/followed_tags_controller.rb new file mode 100644 index 00000000000000..f0dfd044cc0ce4 --- /dev/null +++ b/app/controllers/api/v1/followed_tags_controller.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +class Api::V1::FollowedTagsController < Api::BaseController + TAGS_LIMIT = 100 + + before_action -> { doorkeeper_authorize! :follow, :read, :'read:follows' }, except: :show + before_action :require_user! + before_action :set_results + + after_action :insert_pagination_headers, only: :show + + def index + render json: @results.map(&:tag), each_serializer: REST::TagSerializer, relationships: TagRelationshipsPresenter.new(@results.map(&:tag), current_user&.account_id) + end + + private + + def set_results + @results = TagFollow.where(account: current_account).joins(:tag).eager_load(:tag).to_a_paginated_by_id( + limit_param(TAGS_LIMIT), + params_slice(:max_id, :since_id, :min_id) + ) + end + + def insert_pagination_headers + set_pagination_headers(next_path, prev_path) + end + + def next_path + api_v1_followed_tags_url pagination_params(max_id: pagination_max_id) if records_continue? + end + + def prev_path + api_v1_followed_tags_url pagination_params(since_id: pagination_since_id) unless @results.empty? + end + + def pagination_max_id + @results.last.id + end + + def pagination_since_id + @results.first.id + end + + def records_continue? + @results.size == limit_param(TAG_LIMIT) + end + + def pagination_params(core_params) + params.slice(:limit).permit(:limit).merge(core_params) + end +end diff --git a/app/controllers/api/v1/instances/domain_blocks_controller.rb b/app/controllers/api/v1/instances/domain_blocks_controller.rb new file mode 100644 index 00000000000000..37a6906fb6b5c1 --- /dev/null +++ b/app/controllers/api/v1/instances/domain_blocks_controller.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Api::V1::Instances::DomainBlocksController < Api::BaseController + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? + + before_action :require_enabled_api! + before_action :set_domain_blocks + + def index + expires_in 3.minutes, public: true + render json: @domain_blocks, each_serializer: REST::DomainBlockSerializer, with_comment: (Setting.show_domain_blocks_rationale == 'all' || (Setting.show_domain_blocks_rationale == 'users' && user_signed_in?)) + end + + private + + def require_enabled_api! + head 404 unless Setting.show_domain_blocks == 'all' || (Setting.show_domain_blocks == 'users' && user_signed_in?) + end + + def set_domain_blocks + @domain_blocks = DomainBlock.with_user_facing_limitations.by_severity + end +end diff --git a/app/controllers/api/v1/instances/extended_descriptions_controller.rb b/app/controllers/api/v1/instances/extended_descriptions_controller.rb new file mode 100644 index 00000000000000..c72e16cff2c8bc --- /dev/null +++ b/app/controllers/api/v1/instances/extended_descriptions_controller.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class Api::V1::Instances::ExtendedDescriptionsController < Api::BaseController + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? + + before_action :set_extended_description + + def show + expires_in 3.minutes, public: true + render json: @extended_description, serializer: REST::ExtendedDescriptionSerializer + end + + private + + def set_extended_description + @extended_description = ExtendedDescription.current + end +end diff --git a/app/controllers/api/v1/instances/privacy_policies_controller.rb b/app/controllers/api/v1/instances/privacy_policies_controller.rb new file mode 100644 index 00000000000000..dbd69f54d4ab48 --- /dev/null +++ b/app/controllers/api/v1/instances/privacy_policies_controller.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class Api::V1::Instances::PrivacyPoliciesController < Api::BaseController + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? + + before_action :set_privacy_policy + + def show + expires_in 1.day, public: true + render json: @privacy_policy, serializer: REST::PrivacyPolicySerializer + end + + private + + def set_privacy_policy + @privacy_policy = PrivacyPolicy.current + end +end diff --git a/app/controllers/api/v1/instances_controller.rb b/app/controllers/api/v1/instances_controller.rb index 5b5058a7bf7516..913319a86983f4 100644 --- a/app/controllers/api/v1/instances_controller.rb +++ b/app/controllers/api/v1/instances_controller.rb @@ -6,6 +6,6 @@ class Api::V1::InstancesController < Api::BaseController def show expires_in 3.minutes, public: true - render_with_cache json: {}, serializer: REST::InstanceSerializer, root: 'instance' + render_with_cache json: InstancePresenter.new, serializer: REST::V1::InstanceSerializer, root: 'instance' end end diff --git a/app/controllers/api/v1/lists_controller.rb b/app/controllers/api/v1/lists_controller.rb index e5ac45fefb3bd3..843ca2ec2b69b5 100644 --- a/app/controllers/api/v1/lists_controller.rb +++ b/app/controllers/api/v1/lists_controller.rb @@ -7,6 +7,10 @@ class Api::V1::ListsController < Api::BaseController before_action :require_user! before_action :set_list, except: [:index, :create] + rescue_from ArgumentError do |e| + render json: { error: e.to_s }, status: 422 + end + def index @lists = List.where(account: current_account).all render json: @lists, each_serializer: REST::ListSerializer diff --git a/app/controllers/api/v1/push/subscriptions_controller.rb b/app/controllers/api/v1/push/subscriptions_controller.rb index 47f2e6440c84f5..7148d63a4ee34b 100644 --- a/app/controllers/api/v1/push/subscriptions_controller.rb +++ b/app/controllers/api/v1/push/subscriptions_controller.rb @@ -52,6 +52,6 @@ def subscription_params def data_params return {} if params[:data].blank? - params.require(:data).permit(:policy, alerts: [:follow, :follow_request, :favourite, :reblog, :mention, :poll, :status]) + params.require(:data).permit(:policy, alerts: Notification::TYPES) end end diff --git a/app/controllers/api/v1/statuses/translations_controller.rb b/app/controllers/api/v1/statuses/translations_controller.rb new file mode 100644 index 00000000000000..540b17d0092c13 --- /dev/null +++ b/app/controllers/api/v1/statuses/translations_controller.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class Api::V1::Statuses::TranslationsController < Api::BaseController + include Authorization + + before_action -> { doorkeeper_authorize! :read, :'read:statuses' } + before_action :set_status + before_action :set_translation + + rescue_from TranslationService::NotConfiguredError, with: :not_found + rescue_from TranslationService::UnexpectedResponseError, TranslationService::QuotaExceededError, TranslationService::TooManyRequestsError, with: :service_unavailable + + def create + render json: @translation, serializer: REST::TranslationSerializer + end + + private + + def set_status + @status = Status.find(params[:status_id]) + authorize @status, :show? + rescue Mastodon::NotPermittedError + not_found + end + + def set_translation + @translation = TranslateStatusService.new.call(@status, content_locale) + end +end diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 9270117dad5842..6290a1746a81c1 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -18,14 +18,29 @@ class Api::V1::StatusesController < Api::BaseController # than this anyway CONTEXT_LIMIT = 4_096 + # This remains expensive and we don't want to show everything to logged-out users + ANCESTORS_LIMIT = 40 + DESCENDANTS_LIMIT = 60 + DESCENDANTS_DEPTH_LIMIT = 20 + def show @status = cache_collection([@status], Status).first render json: @status, serializer: REST::StatusSerializer end def context - ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(CONTEXT_LIMIT, current_account) - descendants_results = @status.descendants(CONTEXT_LIMIT, current_account) + ancestors_limit = CONTEXT_LIMIT + descendants_limit = CONTEXT_LIMIT + descendants_depth_limit = nil + + if current_account.nil? + ancestors_limit = ANCESTORS_LIMIT + descendants_limit = DESCENDANTS_LIMIT + descendants_depth_limit = DESCENDANTS_DEPTH_LIMIT + end + + ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(ancestors_limit, current_account) + descendants_results = @status.descendants(descendants_limit, current_account, descendants_depth_limit) loaded_ancestors = cache_collection(ancestors_results, Status) loaded_descendants = cache_collection(descendants_results, Status) @@ -65,6 +80,7 @@ def update text: status_params[:status], media_ids: status_params[:media_ids], sensitive: status_params[:sensitive], + language: status_params[:language], spoiler_text: status_params[:spoiler_text], poll: status_params[:poll] ) @@ -76,7 +92,8 @@ def destroy @status = Status.where(account: current_account).find(params[:id]) authorize @status, :destroy? - @status.discard + @status.discard_with_reblogs + StatusPin.find_by(status: @status)&.destroy @status.account.statuses_count = @status.account.statuses_count - 1 json = render_to_body json: @status, serializer: REST::StatusSerializer, source_requested: true diff --git a/app/controllers/api/v1/tags_controller.rb b/app/controllers/api/v1/tags_controller.rb new file mode 100644 index 00000000000000..32f71bdce2aa2a --- /dev/null +++ b/app/controllers/api/v1/tags_controller.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class Api::V1::TagsController < Api::BaseController + before_action -> { doorkeeper_authorize! :follow, :write, :'write:follows' }, except: :show + before_action :require_user!, except: :show + before_action :set_or_create_tag + + override_rate_limit_headers :follow, family: :follows + + def show + render json: @tag, serializer: REST::TagSerializer + end + + def follow + TagFollow.create!(tag: @tag, account: current_account, rate_limit: true) + render json: @tag, serializer: REST::TagSerializer + end + + def unfollow + TagFollow.find_by(account: current_account, tag: @tag)&.destroy! + render json: @tag, serializer: REST::TagSerializer + end + + private + + def set_or_create_tag + return not_found unless Tag::HASHTAG_NAME_RE.match?(params[:id]) + @tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id]) + end +end diff --git a/app/controllers/api/v1/timelines/area_controller.rb b/app/controllers/api/v1/timelines/area_controller.rb index a41e1d9fb8d2e9..1b0e065f589a16 100644 --- a/app/controllers/api/v1/timelines/area_controller.rb +++ b/app/controllers/api/v1/timelines/area_controller.rb @@ -15,15 +15,17 @@ def show def load_area areas = {} - for value in Rails.application.config.instances_area do - areas[value["group_name"]] = value["instances"] + Rails.application.config.instances_area.each do |value| + areas[value['group_name']] = value['instances'] end - if areas.has_key?(params[:id].downcase) - @instances = areas[params[:id].downcase] - else - @instances = nil - end + # rubocop:disable Style/EmptyElse + @instances = if areas.key?(params[:id].downcase) + areas[params[:id].downcase] + else + nil + end + # rubocop:enable Style/EmptyElse end def load_statuses diff --git a/app/controllers/api/v1/trends/links_controller.rb b/app/controllers/api/v1/trends/links_controller.rb index 2385fe4380d2ae..8ff3b364e2c511 100644 --- a/app/controllers/api/v1/trends/links_controller.rb +++ b/app/controllers/api/v1/trends/links_controller.rb @@ -13,10 +13,14 @@ def index private + def enabled? + Setting.trends + end + def set_links @links = begin - if Setting.trends - links_from_trends + if enabled? + links_from_trends.offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT)) else [] end @@ -24,7 +28,9 @@ def set_links end def links_from_trends - Trends.links.query.allowed.in_locale(content_locale).offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT)) + scope = Trends.links.query.allowed.in_locale(content_locale) + scope = scope.filtered_for(current_account) if user_signed_in? + scope end def insert_pagination_headers diff --git a/app/controllers/api/v1/trends/statuses_controller.rb b/app/controllers/api/v1/trends/statuses_controller.rb index 1f2fff582de4eb..c275d5fc816f5f 100644 --- a/app/controllers/api/v1/trends/statuses_controller.rb +++ b/app/controllers/api/v1/trends/statuses_controller.rb @@ -11,10 +11,14 @@ def index private + def enabled? + Setting.trends + end + def set_statuses @statuses = begin - if Setting.trends - cache_collection(statuses_from_trends, Status) + if enabled? + cache_collection(statuses_from_trends.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status) else [] end @@ -24,7 +28,7 @@ def set_statuses def statuses_from_trends scope = Trends.statuses.query.allowed.in_locale(content_locale) scope = scope.filtered_for(current_account) if user_signed_in? - scope.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT)) + scope end def insert_pagination_headers diff --git a/app/controllers/api/v1/trends/tags_controller.rb b/app/controllers/api/v1/trends/tags_controller.rb index 38003f599afb99..21adfa2a1fc6db 100644 --- a/app/controllers/api/v1/trends/tags_controller.rb +++ b/app/controllers/api/v1/trends/tags_controller.rb @@ -8,21 +8,29 @@ class Api::V1::Trends::TagsController < Api::BaseController DEFAULT_TAGS_LIMIT = 10 def index - render json: @tags, each_serializer: REST::TagSerializer + render json: @tags, each_serializer: REST::TagSerializer, relationships: TagRelationshipsPresenter.new(@tags, current_user&.account_id) end private + def enabled? + Setting.trends + end + def set_tags @tags = begin - if Setting.trends - Trends.tags.query.allowed.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT)) + if enabled? + tags_from_trends.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT)) else [] end end end + def tags_from_trends + Trends.tags.query.allowed + end + def insert_pagination_headers set_pagination_headers(next_path, prev_path) end diff --git a/app/controllers/api/v2/admin/accounts_controller.rb b/app/controllers/api/v2/admin/accounts_controller.rb index a89e6835ee10ed..b25831aa09e9ec 100644 --- a/app/controllers/api/v2/admin/accounts_controller.rb +++ b/app/controllers/api/v2/admin/accounts_controller.rb @@ -11,6 +11,7 @@ class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController email ip invited_by + role_ids ).freeze PAGINATION_PARAMS = (%i(limit) + FILTER_PARAMS).freeze @@ -18,11 +19,21 @@ class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController private def filtered_accounts - AccountFilter.new(filter_params).results + AccountFilter.new(translated_filter_params).results + end + + def translated_filter_params + translated_params = filter_params.slice(*AccountFilter::KEYS) + + if params[:permissions] == 'staff' + translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id) + end + + translated_params end def filter_params - params.permit(*FILTER_PARAMS) + params.permit(*FILTER_PARAMS, role_ids: []) end def pagination_params(core_params) diff --git a/app/controllers/api/v2/filters/keywords_controller.rb b/app/controllers/api/v2/filters/keywords_controller.rb new file mode 100644 index 00000000000000..c63e1d986b1926 --- /dev/null +++ b/app/controllers/api/v2/filters/keywords_controller.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +class Api::V2::Filters::KeywordsController < Api::BaseController + before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] + before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] + before_action :require_user! + + before_action :set_keywords, only: :index + before_action :set_keyword, only: [:show, :update, :destroy] + + def index + render json: @keywords, each_serializer: REST::FilterKeywordSerializer + end + + def create + @keyword = current_account.custom_filters.find(params[:filter_id]).keywords.create!(resource_params) + + render json: @keyword, serializer: REST::FilterKeywordSerializer + end + + def show + render json: @keyword, serializer: REST::FilterKeywordSerializer + end + + def update + @keyword.update!(resource_params) + + render json: @keyword, serializer: REST::FilterKeywordSerializer + end + + def destroy + @keyword.destroy! + render_empty + end + + private + + def set_keywords + filter = current_account.custom_filters.includes(:keywords).find(params[:filter_id]) + @keywords = filter.keywords + end + + def set_keyword + @keyword = CustomFilterKeyword.includes(:custom_filter).where(custom_filter: { account: current_account }).find(params[:id]) + end + + def resource_params + params.permit(:keyword, :whole_word) + end +end diff --git a/app/controllers/api/v2/filters/statuses_controller.rb b/app/controllers/api/v2/filters/statuses_controller.rb new file mode 100644 index 00000000000000..755c14cffa8909 --- /dev/null +++ b/app/controllers/api/v2/filters/statuses_controller.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +class Api::V2::Filters::StatusesController < Api::BaseController + before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] + before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] + before_action :require_user! + + before_action :set_status_filters, only: :index + before_action :set_status_filter, only: [:show, :destroy] + + def index + render json: @status_filters, each_serializer: REST::FilterStatusSerializer + end + + def create + @status_filter = current_account.custom_filters.find(params[:filter_id]).statuses.create!(resource_params) + + render json: @status_filter, serializer: REST::FilterStatusSerializer + end + + def show + render json: @status_filter, serializer: REST::FilterStatusSerializer + end + + def destroy + @status_filter.destroy! + render_empty + end + + private + + def set_status_filters + filter = current_account.custom_filters.includes(:statuses).find(params[:filter_id]) + @status_filters = filter.statuses + end + + def set_status_filter + @status_filter = CustomFilterStatus.includes(:custom_filter).where(custom_filter: { account: current_account }).find(params[:id]) + end + + def resource_params + params.permit(:status_id) + end +end diff --git a/app/controllers/api/v2/filters_controller.rb b/app/controllers/api/v2/filters_controller.rb new file mode 100644 index 00000000000000..8ff3076cfba2f6 --- /dev/null +++ b/app/controllers/api/v2/filters_controller.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +class Api::V2::FiltersController < Api::BaseController + before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] + before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] + before_action :require_user! + before_action :set_filters, only: :index + before_action :set_filter, only: [:show, :update, :destroy] + + def index + render json: @filters, each_serializer: REST::FilterSerializer, rules_requested: true + end + + def create + @filter = current_account.custom_filters.create!(resource_params) + + render json: @filter, serializer: REST::FilterSerializer, rules_requested: true + end + + def show + render json: @filter, serializer: REST::FilterSerializer, rules_requested: true + end + + def update + @filter.update!(resource_params) + + render json: @filter, serializer: REST::FilterSerializer, rules_requested: true + end + + def destroy + @filter.destroy! + render_empty + end + + private + + def set_filters + @filters = current_account.custom_filters.includes(:keywords) + end + + def set_filter + @filter = current_account.custom_filters.find(params[:id]) + end + + def resource_params + params.permit(:title, :expires_in, :filter_action, context: [], keywords_attributes: [:id, :keyword, :whole_word, :_destroy]) + end +end diff --git a/app/controllers/api/v2/instances_controller.rb b/app/controllers/api/v2/instances_controller.rb new file mode 100644 index 00000000000000..bcd90cff22e6ae --- /dev/null +++ b/app/controllers/api/v2/instances_controller.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +class Api::V2::InstancesController < Api::V1::InstancesController + def show + expires_in 3.minutes, public: true + render_with_cache json: InstancePresenter.new, serializer: REST::InstanceSerializer, root: 'instance' + end +end diff --git a/app/controllers/api/v2/media_controller.rb b/app/controllers/api/v2/media_controller.rb index 0c1baf01d0bbd6..288f847f17c5dd 100644 --- a/app/controllers/api/v2/media_controller.rb +++ b/app/controllers/api/v2/media_controller.rb @@ -3,7 +3,7 @@ class Api::V2::MediaController < Api::V1::MediaController def create @media_attachment = current_account.media_attachments.create!({ delay_processing: true }.merge(media_attachment_params)) - render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: 202 + render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: @media_attachment.not_processed? ? 202 : 200 rescue Paperclip::Errors::NotIdentifiedByImageMagickError render json: file_type_error, status: 422 rescue Paperclip::Error diff --git a/app/controllers/api/v2/search_controller.rb b/app/controllers/api/v2/search_controller.rb index a3056013338556..4d20aeb10fca69 100644 --- a/app/controllers/api/v2/search_controller.rb +++ b/app/controllers/api/v2/search_controller.rb @@ -5,8 +5,8 @@ class Api::V2::SearchController < Api::BaseController RESULTS_LIMIT = 20 - before_action -> { doorkeeper_authorize! :read, :'read:search' } - before_action :require_user! + before_action -> { authorize_if_got_token! :read, :'read:search' } + before_action :validate_search_params! def index @search = Search.new(search_results) @@ -19,6 +19,16 @@ def index private + def validate_search_params! + params.require(:q) + + return if user_signed_in? + + return render json: { error: 'Search queries pagination is not supported without authentication' }, status: 401 if params[:offset].present? + + render json: { error: 'Search queries that resolve remote resources are not supported without authentication' }, status: 401 if truthy_param?(:resolve) + end + def search_results SearchService.new.call( params[:q], diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3d2f8280b15f21..615536b963aa8c 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -56,14 +56,6 @@ def store_current_location store_location_for(:user, request.url) unless [:json, :rss].include?(request.format&.to_sym) end - def require_admin! - forbidden unless current_user&.admin? - end - - def require_staff! - forbidden unless current_user&.staff? - end - def require_functional! redirect_to edit_user_registration_path unless current_user.functional? end diff --git a/app/controllers/auth/omniauth_callbacks_controller.rb b/app/controllers/auth/omniauth_callbacks_controller.rb index f9cf6d6551f681..3d7962de56cb50 100644 --- a/app/controllers/auth/omniauth_callbacks_controller.rb +++ b/app/controllers/auth/omniauth_callbacks_controller.rb @@ -18,7 +18,8 @@ def self.provides_callback_for(provider) ) sign_in_and_redirect @user, event: :authentication - set_flash_message(:notice, :success, kind: Devise.omniauth_configs[provider].strategy.display_name.capitalize) if is_navigational_format? + label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize) + set_flash_message(:notice, :success, kind: label) if is_navigational_format? else session["devise.#{provider}_data"] = request.env['omniauth.auth'] redirect_to new_user_registration_url diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index 1c3adbd786bd91..14e0d9a363de81 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -14,6 +14,8 @@ class Auth::RegistrationsController < Devise::RegistrationsController before_action :set_body_classes, only: [:new, :create, :edit, :update] before_action :require_not_suspended!, only: [:update] before_action :set_cache_headers, only: [:edit, :update] + before_action :set_rules, only: :new + before_action :require_rules_acceptance!, only: :new before_action :set_registration_form_time, only: :new skip_before_action :require_functional!, only: [:edit, :update] @@ -55,7 +57,7 @@ def build_resource(hash = nil) def configure_sign_up_params devise_parameter_sanitizer.permit(:sign_up) do |u| - u.permit({ account_attributes: [:username], invite_request_attributes: [:text] }, :email, :password, :password_confirmation, :invite_code, :agreement, :website, :confirm_password) + u.permit({ account_attributes: [:username, :display_name], invite_request_attributes: [:text] }, :email, :password, :password_confirmation, :invite_code, :agreement, :website, :confirm_password) end end @@ -82,7 +84,7 @@ def after_update_path_for(_resource) end def check_enabled_registrations - redirect_to root_path if single_user_mode? || omniauth_only? || !allowed_registrations? + redirect_to root_path if single_user_mode? || omniauth_only? || !allowed_registrations? || ip_blocked? end def allowed_registrations? @@ -93,6 +95,10 @@ def omniauth_only? ENV['OMNIAUTH_ONLY'] == 'true' end + def ip_blocked? + IpBlock.where(severity: :sign_up_block).where('ip >>= ?', request.remote_ip.to_s).exists? + end + def invite_code if params[:user] params[:user][:invite_code] @@ -134,6 +140,19 @@ def require_not_suspended! forbidden if current_account.suspended? end + def set_rules + @rules = Rule.ordered + end + + def require_rules_acceptance! + return if @rules.empty? || (session[:accept_token].present? && params[:accept] == session[:accept_token]) + + @accept_token = session[:accept_token] = SecureRandom.hex + @invite_code = invite_code + + set_locale { render :rules } + end + def set_cache_headers response.headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate' end diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index c4c8151e33314b..f9a55eb4bd067e 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -7,11 +7,18 @@ class Auth::SessionsController < Devise::SessionsController skip_before_action :require_functional! skip_before_action :update_user_sign_in + prepend_before_action :check_suspicious!, only: [:create] + include TwoFactorAuthenticationConcern before_action :set_instance_presenter, only: [:new] before_action :set_body_classes + def check_suspicious! + user = find_user + @login_is_suspicious = suspicious_sign_in?(user) unless user.nil? + end + def create super do |resource| # We only need to call this if this hasn't already been @@ -142,7 +149,7 @@ def on_authentication_success(user, security_measure) user_agent: request.user_agent ) - UserMailer.suspicious_sign_in(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later! if suspicious_sign_in?(user) + UserMailer.suspicious_sign_in(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later! if @login_is_suspicious end def suspicious_sign_in?(user) diff --git a/app/controllers/concerns/account_controller_concern.rb b/app/controllers/concerns/account_controller_concern.rb index 11eac0eb6bfc3f..2f7d84df04dba3 100644 --- a/app/controllers/concerns/account_controller_concern.rb +++ b/app/controllers/concerns/account_controller_concern.rb @@ -3,13 +3,12 @@ module AccountControllerConcern extend ActiveSupport::Concern + include WebAppControllerConcern include AccountOwnedConcern FOLLOW_PER_PAGE = 12 included do - layout 'public' - before_action :set_instance_presenter before_action :set_link_headers, if: -> { request.format.nil? || request.format == :html } end diff --git a/app/controllers/concerns/accountable_concern.rb b/app/controllers/concerns/accountable_concern.rb index 87d62478da2844..c1349915f84dab 100644 --- a/app/controllers/concerns/accountable_concern.rb +++ b/app/controllers/concerns/accountable_concern.rb @@ -3,7 +3,11 @@ module AccountableConcern extend ActiveSupport::Concern - def log_action(action, target, options = {}) - Admin::ActionLog.create(account: current_account, action: action, target: target, recorded_changes: options.stringify_keys) + def log_action(action, target) + Admin::ActionLog.create( + account: current_account, + action: action, + target: target + ) end end diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index 4dd0cac55da060..2394574b3bede0 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -45,10 +45,14 @@ class SignatureParamsTransformer < Parslet::Transform end end - def require_signature! + def require_account_signature! render plain: signature_verification_failure_reason, status: signature_verification_failure_code unless signed_request_account end + def require_actor_signature! + render plain: signature_verification_failure_reason, status: signature_verification_failure_code unless signed_request_actor + end + def signed_request? request.headers['Signature'].present? end @@ -68,7 +72,11 @@ def signature_key_id end def signed_request_account - return @signed_request_account if defined?(@signed_request_account) + signed_request_actor.is_a?(Account) ? signed_request_actor : nil + end + + def signed_request_actor + return @signed_request_actor if defined?(@signed_request_actor) raise SignatureVerificationError, 'Request not signed' unless signed_request? raise SignatureVerificationError, 'Incompatible request signature. keyId and signature are required' if missing_required_signature_parameters? @@ -78,26 +86,30 @@ def signed_request_account verify_signature_strength! verify_body_digest! - account = account_from_key_id(signature_params['keyId']) + actor = actor_from_key_id(signature_params['keyId']) - raise SignatureVerificationError, "Public key not found for key #{signature_params['keyId']}" if account.nil? + raise SignatureVerificationError, "Public key not found for key #{signature_params['keyId']}" if actor.nil? signature = Base64.decode64(signature_params['signature']) compare_signed_string = build_signed_string - return account unless verify_signature(account, signature, compare_signed_string).nil? + return actor unless verify_signature(actor, signature, compare_signed_string).nil? - account = stoplight_wrap_request { account.possibly_stale? ? account.refresh! : account_refresh_key(account) } + actor = stoplight_wrap_request { actor_refresh_key!(actor) } - raise SignatureVerificationError, "Public key not found for key #{signature_params['keyId']}" if account.nil? + raise SignatureVerificationError, "Public key not found for key #{signature_params['keyId']}" if actor.nil? - return account unless verify_signature(account, signature, compare_signed_string).nil? + return actor unless verify_signature(actor, signature, compare_signed_string).nil? - @signature_verification_failure_reason = "Verification failed for #{account.username}@#{account.domain} #{account.uri} using rsa-sha256 (RSASSA-PKCS1-v1_5 with SHA-256)" - @signed_request_account = nil + fail_with! "Verification failed for #{actor.to_log_human_identifier} #{actor.uri} using rsa-sha256 (RSASSA-PKCS1-v1_5 with SHA-256)" rescue SignatureVerificationError => e - @signature_verification_failure_reason = e.message - @signed_request_account = nil + fail_with! e.message + rescue HTTP::Error, OpenSSL::SSL::SSLError => e + fail_with! "Failed to fetch remote data: #{e.message}" + rescue Mastodon::UnexpectedResponseError + fail_with! 'Failed to fetch remote data (got unexpected reply from server)' + rescue Stoplight::Error::RedLight + fail_with! 'Fetching attempt skipped because of recent connection failure' end def request_body @@ -106,6 +118,11 @@ def request_body private + def fail_with!(message) + @signature_verification_failure_reason = message + @signed_request_actor = nil + end + def signature_params @signature_params ||= begin raw_signature = request.headers['Signature'] @@ -138,13 +155,23 @@ def verify_body_digest! digests = request.headers['Digest'].split(',').map { |digest| digest.split('=', 2) }.map { |key, value| [key.downcase, value] } sha256 = digests.assoc('sha-256') raise SignatureVerificationError, "Mastodon only supports SHA-256 in Digest header. Offered algorithms: #{digests.map(&:first).join(', ')}" if sha256.nil? - raise SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{sha256[1]}" if body_digest != sha256[1] + + return if body_digest == sha256[1] + + digest_size = begin + Base64.strict_decode64(sha256[1].strip).length + rescue ArgumentError + raise SignatureVerificationError, "Invalid Digest value. The provided Digest value is not a valid base64 string. Given digest: #{sha256[1]}" + end + + raise SignatureVerificationError, "Invalid Digest value. The provided Digest value is not a SHA-256 digest. Given digest: #{sha256[1]}" if digest_size != 32 + raise SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{sha256[1]}" end - def verify_signature(account, signature, compare_signed_string) - if account.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), signature, compare_signed_string) - @signed_request_account = account - @signed_request_account + def verify_signature(actor, signature, compare_signed_string) + if actor.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), signature, compare_signed_string) + @signed_request_actor = actor + @signed_request_actor end rescue OpenSSL::PKey::RSAError nil @@ -207,7 +234,7 @@ def missing_required_signature_parameters? signature_params['keyId'].blank? || signature_params['signature'].blank? end - def account_from_key_id(key_id) + def actor_from_key_id(key_id) domain = key_id.start_with?('acct:') ? key_id.split('@').last : key_id if domain_not_allowed?(domain) @@ -216,27 +243,34 @@ def account_from_key_id(key_id) end if key_id.start_with?('acct:') - stoplight_wrap_request { ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, '')) } + stoplight_wrap_request { ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, ''), suppress_errors: false) } elsif !ActivityPub::TagManager.instance.local_uri?(key_id) - account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account) - account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) } + account = ActivityPub::TagManager.instance.uri_to_actor(key_id) + account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false, suppress_errors: false) } account end - rescue Mastodon::HostValidationError - nil + rescue Mastodon::PrivateNetworkAddressError => e + raise SignatureVerificationError, "Requests to private network addresses are disallowed (tried to query #{e.host})" + rescue Mastodon::HostValidationError, ActivityPub::FetchRemoteActorService::Error, ActivityPub::FetchRemoteKeyService::Error, Webfinger::Error => e + raise SignatureVerificationError, e.message end def stoplight_wrap_request(&block) Stoplight("source:#{request.remote_ip}", &block) - .with_fallback { nil } .with_threshold(1) .with_cool_off_time(5.minutes.seconds) .with_error_handler { |error, handle| error.is_a?(HTTP::Error) || error.is_a?(OpenSSL::SSL::SSLError) ? handle.call(error) : raise(error) } .run end - def account_refresh_key(account) - return if account.local? || !account.activitypub? - ActivityPub::FetchRemoteAccountService.new.call(account.uri, only_key: true) + def actor_refresh_key!(actor) + return if actor.local? || !actor.activitypub? + return actor.refresh! if actor.respond_to?(:refresh!) && actor.possibly_stale? + + ActivityPub::FetchRemoteActorService.new.call(actor.uri, only_key: true, suppress_errors: false) + rescue Mastodon::PrivateNetworkAddressError => e + raise SignatureVerificationError, "Requests to private network addresses are disallowed (tried to query #{e.host})" + rescue Mastodon::HostValidationError, ActivityPub::FetchRemoteActorService::Error, Webfinger::Error => e + raise SignatureVerificationError, e.message end end diff --git a/app/controllers/concerns/status_controller_concern.rb b/app/controllers/concerns/status_controller_concern.rb deleted file mode 100644 index 62a7cf5086a218..00000000000000 --- a/app/controllers/concerns/status_controller_concern.rb +++ /dev/null @@ -1,87 +0,0 @@ -# frozen_string_literal: true - -module StatusControllerConcern - extend ActiveSupport::Concern - - ANCESTORS_LIMIT = 40 - DESCENDANTS_LIMIT = 60 - DESCENDANTS_DEPTH_LIMIT = 20 - - def create_descendant_thread(starting_depth, statuses) - depth = starting_depth + statuses.size - - if depth < DESCENDANTS_DEPTH_LIMIT - { - statuses: statuses, - starting_depth: starting_depth, - } - else - next_status = statuses.pop - - { - statuses: statuses, - starting_depth: starting_depth, - next_status: next_status, - } - end - end - - def set_ancestors - @ancestors = @status.reply? ? cache_collection(@status.ancestors(ANCESTORS_LIMIT, current_account), Status) : [] - @next_ancestor = @ancestors.size < ANCESTORS_LIMIT ? nil : @ancestors.shift - end - - def set_descendants - @max_descendant_thread_id = params[:max_descendant_thread_id]&.to_i - @since_descendant_thread_id = params[:since_descendant_thread_id]&.to_i - - descendants = cache_collection( - @status.descendants( - DESCENDANTS_LIMIT, - current_account, - @max_descendant_thread_id, - @since_descendant_thread_id, - DESCENDANTS_DEPTH_LIMIT - ), - Status - ) - - @descendant_threads = [] - - if descendants.present? - statuses = [descendants.first] - starting_depth = 0 - - descendants.drop(1).each_with_index do |descendant, index| - if descendants[index].id == descendant.in_reply_to_id - statuses << descendant - else - @descendant_threads << create_descendant_thread(starting_depth, statuses) - - # The thread is broken, assume it's a reply to the root status - starting_depth = 0 - - # ... unless we can find its ancestor in one of the already-processed threads - @descendant_threads.reverse_each do |descendant_thread| - statuses = descendant_thread[:statuses] - - index = statuses.find_index do |thread_status| - thread_status.id == descendant.in_reply_to_id - end - - if index.present? - starting_depth = descendant_thread[:starting_depth] + index + 1 - break - end - end - - statuses = [descendant] - end - end - - @descendant_threads << create_descendant_thread(starting_depth, statuses) - end - - @max_descendant_thread_id = @descendant_threads.pop[:statuses].first.id if descendants.size >= DESCENDANTS_LIMIT - end -end diff --git a/app/controllers/concerns/web_app_controller_concern.rb b/app/controllers/concerns/web_app_controller_concern.rb new file mode 100644 index 00000000000000..c671ce785c7dfe --- /dev/null +++ b/app/controllers/concerns/web_app_controller_concern.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module WebAppControllerConcern + extend ActiveSupport::Concern + + included do + before_action :redirect_unauthenticated_to_permalinks! + before_action :set_app_body_class + before_action :set_referrer_policy_header + end + + def set_app_body_class + @body_classes = 'app-body' + end + + def set_referrer_policy_header + response.headers['Referrer-Policy'] = 'origin' + end + + def redirect_unauthenticated_to_permalinks! + return if user_signed_in? + + redirect_path = PermalinkRedirector.new(request.path).redirect_path + + redirect_to(redirect_path) if redirect_path.present? + end +end diff --git a/app/controllers/custom_css_controller.rb b/app/controllers/custom_css_controller.rb index e1dc5eaf6d3af4..9270c467dc4018 100644 --- a/app/controllers/custom_css_controller.rb +++ b/app/controllers/custom_css_controller.rb @@ -13,6 +13,6 @@ class CustomCssController < ApplicationController def show expires_in 3.minutes, public: true request.session_options[:skip] = true - render plain: Setting.custom_css || '', content_type: 'text/css' + render content_type: 'text/css' end end diff --git a/app/controllers/directories_controller.rb b/app/controllers/directories_controller.rb deleted file mode 100644 index f28c5b2afb54da..00000000000000 --- a/app/controllers/directories_controller.rb +++ /dev/null @@ -1,32 +0,0 @@ -# frozen_string_literal: true - -class DirectoriesController < ApplicationController - layout 'public' - - before_action :authenticate_user!, if: :whitelist_mode? - before_action :require_enabled! - before_action :set_instance_presenter - before_action :set_accounts - - skip_before_action :require_functional!, unless: :whitelist_mode? - - def index - render :index - end - - private - - def require_enabled! - return not_found unless Setting.profile_directory - end - - def set_accounts - @accounts = Account.local.discoverable.by_recent_status.page(params[:page]).per(20).tap do |query| - query.merge!(Account.not_excluded_by_account(current_account)) if current_account - end - end - - def set_instance_presenter - @instance_presenter = InstancePresenter.new - end -end diff --git a/app/controllers/filters/statuses_controller.rb b/app/controllers/filters/statuses_controller.rb new file mode 100644 index 00000000000000..cc493c22c64105 --- /dev/null +++ b/app/controllers/filters/statuses_controller.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +class Filters::StatusesController < ApplicationController + layout 'admin' + + before_action :authenticate_user! + before_action :set_filter + before_action :set_status_filters + before_action :set_body_classes + + PER_PAGE = 20 + + def index + @status_filter_batch_action = Form::StatusFilterBatchAction.new + end + + def batch + @status_filter_batch_action = Form::StatusFilterBatchAction.new(status_filter_batch_action_params.merge(current_account: current_account, filter_id: params[:filter_id], type: action_from_button)) + @status_filter_batch_action.save! + rescue ActionController::ParameterMissing + flash[:alert] = I18n.t('admin.statuses.no_status_selected') + ensure + redirect_to edit_filter_path(@filter) + end + + private + + def set_filter + @filter = current_account.custom_filters.find(params[:filter_id]) + end + + def set_status_filters + @status_filters = @filter.statuses.preload(:status).page(params[:page]).per(PER_PAGE) + end + + def status_filter_batch_action_params + params.require(:form_status_filter_batch_action).permit(status_filter_ids: []) + end + + def action_from_button + if params[:remove] + 'remove' + end + end + + def set_body_classes + @body_classes = 'admin' + end +end diff --git a/app/controllers/filters_controller.rb b/app/controllers/filters_controller.rb index 79a1ab02b1fb7f..cc5cb5d9f286bb 100644 --- a/app/controllers/filters_controller.rb +++ b/app/controllers/filters_controller.rb @@ -4,16 +4,16 @@ class FiltersController < ApplicationController layout 'admin' before_action :authenticate_user! - before_action :set_filters, only: :index before_action :set_filter, only: [:edit, :update, :destroy] before_action :set_body_classes def index - @filters = current_account.custom_filters.order(:phrase) + @filters = current_account.custom_filters.includes(:keywords, :statuses).order(:phrase) end def new - @filter = current_account.custom_filters.build + @filter = current_account.custom_filters.build(action: :warn) + @filter.keywords.build end def create @@ -43,16 +43,12 @@ def destroy private - def set_filters - @filters = current_account.custom_filters - end - def set_filter @filter = current_account.custom_filters.find(params[:id]) end def resource_params - params.require(:custom_filter).permit(:phrase, :expires_in, :irreversible, :whole_word, context: []) + params.require(:custom_filter).permit(:title, :expires_in, :filter_action, context: [], keywords_attributes: [:id, :keyword, :whole_word, :_destroy]) end def set_body_classes diff --git a/app/controllers/follower_accounts_controller.rb b/app/controllers/follower_accounts_controller.rb index f3f8336c95fc7d..e4d8cc49509711 100644 --- a/app/controllers/follower_accounts_controller.rb +++ b/app/controllers/follower_accounts_controller.rb @@ -3,8 +3,9 @@ class FollowerAccountsController < ApplicationController include AccountControllerConcern include SignatureVerification + include WebAppControllerConcern - before_action :require_signature!, if: -> { request.format == :json && authorized_fetch_mode? } + before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_cache_headers skip_around_action :set_locale, if: -> { request.format == :json } @@ -14,10 +15,6 @@ def index respond_to do |format| format.html do expires_in 0, public: true unless user_signed_in? - - next if @account.hide_collections? - - follows end format.json do diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb index 69f0321f83519e..f84dca1e5acfaf 100644 --- a/app/controllers/following_accounts_controller.rb +++ b/app/controllers/following_accounts_controller.rb @@ -3,8 +3,9 @@ class FollowingAccountsController < ApplicationController include AccountControllerConcern include SignatureVerification + include WebAppControllerConcern - before_action :require_signature!, if: -> { request.format == :json && authorized_fetch_mode? } + before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_cache_headers skip_around_action :set_locale, if: -> { request.format == :json } @@ -14,10 +15,6 @@ def index respond_to do |format| format.html do expires_in 0, public: true unless user_signed_in? - - next if @account.hide_collections? - - follows end format.json do diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 7e443eb9e74e21..d8ee82a7a24447 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,33 +1,17 @@ # frozen_string_literal: true class HomeController < ApplicationController - before_action :redirect_unauthenticated_to_permalinks! - before_action :authenticate_user! - before_action :set_referrer_policy_header + include WebAppControllerConcern + + before_action :set_instance_presenter def index - @body_classes = 'app-body' + expires_in 0, public: true unless user_signed_in? end private - def redirect_unauthenticated_to_permalinks! - return if user_signed_in? - - redirect_to(PermalinkRedirector.new(request.path).redirect_path || default_redirect_path) - end - - def default_redirect_path - if request.path.start_with?('/web') || whitelist_mode? - new_user_session_path - elsif single_user_mode? - short_account_path(Account.local.without_suspended.where('id > 0').first) - else - about_path - end - end - - def set_referrer_policy_header - response.headers['Referrer-Policy'] = 'origin' + def set_instance_presenter + @instance_presenter = InstancePresenter.new end end diff --git a/app/controllers/privacy_controller.rb b/app/controllers/privacy_controller.rb new file mode 100644 index 00000000000000..2c98bf3bf4644d --- /dev/null +++ b/app/controllers/privacy_controller.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class PrivacyController < ApplicationController + include WebAppControllerConcern + + skip_before_action :require_functional! + + before_action :set_instance_presenter + + def show + expires_in 0, public: true if current_account.nil? + end + + private + + def set_instance_presenter + @instance_presenter = InstancePresenter.new + end +end diff --git a/app/controllers/public_timelines_controller.rb b/app/controllers/public_timelines_controller.rb deleted file mode 100644 index 1332ba16c2bac4..00000000000000 --- a/app/controllers/public_timelines_controller.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -class PublicTimelinesController < ApplicationController - layout 'public' - - before_action :authenticate_user!, if: :whitelist_mode? - before_action :require_enabled! - before_action :set_body_classes - before_action :set_instance_presenter - - def show; end - - private - - def require_enabled! - not_found unless Setting.timeline_preview - end - - def set_body_classes - @body_classes = 'with-modals' - end - - def set_instance_presenter - @instance_presenter = InstancePresenter.new - end -end diff --git a/app/controllers/remote_follow_controller.rb b/app/controllers/remote_follow_controller.rb deleted file mode 100644 index db1604644f124c..00000000000000 --- a/app/controllers/remote_follow_controller.rb +++ /dev/null @@ -1,41 +0,0 @@ -# frozen_string_literal: true - -class RemoteFollowController < ApplicationController - include AccountOwnedConcern - - layout 'modal' - - before_action :set_body_classes - - skip_before_action :require_functional! - - def new - @remote_follow = RemoteFollow.new(session_params) - end - - def create - @remote_follow = RemoteFollow.new(resource_params) - - if @remote_follow.valid? - session[:remote_follow] = @remote_follow.acct - redirect_to @remote_follow.subscribe_address_for(@account) - else - render :new - end - end - - private - - def resource_params - params.require(:remote_follow).permit(:acct) - end - - def session_params - { acct: session[:remote_follow] || current_account&.username } - end - - def set_body_classes - @body_classes = 'modal-layout' - @hide_header = true - end -end diff --git a/app/controllers/remote_interaction_controller.rb b/app/controllers/remote_interaction_controller.rb deleted file mode 100644 index 6c29a2b9ffed27..00000000000000 --- a/app/controllers/remote_interaction_controller.rb +++ /dev/null @@ -1,55 +0,0 @@ -# frozen_string_literal: true - -class RemoteInteractionController < ApplicationController - include Authorization - - layout 'modal' - - before_action :authenticate_user!, if: :whitelist_mode? - before_action :set_interaction_type - before_action :set_status - before_action :set_body_classes - - skip_before_action :require_functional!, unless: :whitelist_mode? - - def new - @remote_follow = RemoteFollow.new(session_params) - end - - def create - @remote_follow = RemoteFollow.new(resource_params) - - if @remote_follow.valid? - session[:remote_follow] = @remote_follow.acct - redirect_to @remote_follow.interact_address_for(@status) - else - render :new - end - end - - private - - def resource_params - params.require(:remote_follow).permit(:acct) - end - - def session_params - { acct: session[:remote_follow] || current_account&.username } - end - - def set_status - @status = Status.find(params[:id]) - authorize @status, :show? - rescue Mastodon::NotPermittedError - not_found - end - - def set_body_classes - @body_classes = 'modal-layout' - @hide_header = true - end - - def set_interaction_type - @interaction_type = %w(reply reblog favourite).include?(params[:type]) ? params[:type] : 'reply' - end -end diff --git a/app/controllers/settings/deletes_controller.rb b/app/controllers/settings/deletes_controller.rb index e0dd5edcb19762..bb096567a9ceea 100644 --- a/app/controllers/settings/deletes_controller.rb +++ b/app/controllers/settings/deletes_controller.rb @@ -4,7 +4,6 @@ class Settings::DeletesController < Settings::BaseController skip_before_action :require_functional! before_action :require_not_suspended! - before_action :check_enabled_deletion def show @confirmation = Form::DeleteConfirmation.new @@ -21,10 +20,6 @@ def destroy private - def check_enabled_deletion - redirect_to root_path unless Setting.open_deletion - end - def resource_params params.require(:form_delete_confirmation).permit(:password, :username) end diff --git a/app/controllers/settings/featured_tags_controller.rb b/app/controllers/settings/featured_tags_controller.rb index e805527d07c63a..c384402650981e 100644 --- a/app/controllers/settings/featured_tags_controller.rb +++ b/app/controllers/settings/featured_tags_controller.rb @@ -10,10 +10,9 @@ def index end def create - @featured_tag = current_account.featured_tags.new(featured_tag_params) - @featured_tag.reset_data + @featured_tag = CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name], force: false) - if @featured_tag.save + if @featured_tag.valid? redirect_to settings_featured_tags_path else set_featured_tags @@ -24,7 +23,7 @@ def create end def destroy - @featured_tag.destroy! + RemoveFeaturedTagService.new.call(current_account, @featured_tag) redirect_to settings_featured_tags_path end diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index bfe651bc667554..f5d5c12449b52d 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -55,7 +55,7 @@ def user_settings_params :setting_trends, :setting_crop_images, :setting_always_send_emails, - notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account trending_tag appeal), + notification_emails: %i(follow follow_request reblog favourite mention report pending_account trending_tag appeal), interactions: %i(must_be_follower must_be_following must_be_following_dm) ) end diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index c52170d08188ac..9eb7ad691d4dc4 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -1,21 +1,18 @@ # frozen_string_literal: true class StatusesController < ApplicationController - include StatusControllerConcern + include WebAppControllerConcern include SignatureAuthentication include Authorization include AccountOwnedConcern - layout 'public' - - before_action :require_signature!, only: [:show, :activity], if: -> { request.format == :json && authorized_fetch_mode? } + before_action :require_account_signature!, only: [:show, :activity], if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_status before_action :set_instance_presenter before_action :set_link_headers before_action :redirect_to_original, only: :show - before_action :set_referrer_policy_header, only: :show before_action :set_cache_headers - before_action :set_body_classes + before_action :set_body_classes, only: :embed skip_around_action :set_locale, if: -> { request.format == :json } skip_before_action :require_functional!, only: [:show, :embed], unless: :whitelist_mode? @@ -28,8 +25,6 @@ def show respond_to do |format| format.html do expires_in 10.seconds, public: true if current_account.nil? - set_ancestors - set_descendants end format.json do @@ -77,8 +72,4 @@ def set_instance_presenter def redirect_to_original redirect_to ActivityPub::TagManager.instance.url_for(@status.reblog) if @status.reblog? end - - def set_referrer_policy_header - response.headers['Referrer-Policy'] = 'origin' unless @status.distributable? - end end diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index b82da8f0cd9e62..f0a0993506a829 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -2,18 +2,16 @@ class TagsController < ApplicationController include SignatureVerification + include WebAppControllerConcern PAGE_SIZE = 20 PAGE_SIZE_MAX = 200 - layout 'public' - - before_action :require_signature!, if: -> { request.format == :json && authorized_fetch_mode? } + before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :authenticate_user!, if: :whitelist_mode? before_action :set_local before_action :set_tag before_action :set_statuses - before_action :set_body_classes before_action :set_instance_presenter skip_before_action :require_functional!, unless: :whitelist_mode? @@ -21,7 +19,7 @@ class TagsController < ApplicationController def show respond_to do |format| format.html do - expires_in 0, public: true + expires_in 0, public: true unless user_signed_in? end format.rss do @@ -54,10 +52,6 @@ def set_statuses end end - def set_body_classes - @body_classes = 'with-modals' - end - def set_instance_presenter @instance_presenter = InstancePresenter.new end diff --git a/app/helpers/account_area_helper.rb b/app/helpers/account_area_helper.rb index 268042f2ebbde8..e64fbaa6f1ed3b 100644 --- a/app/helpers/account_area_helper.rb +++ b/app/helpers/account_area_helper.rb @@ -2,34 +2,32 @@ module AccountAreaHelper json_file_path = "#{Rails.root}/app/javascript/area_settings.json" - conf = open(json_file_path) do |io| - JSON.load(io) + conf = File.open(json_file_path) do |io| + JSON.parse(io.read) end - HUMAN_AREAS = conf["areas"] + HUMAN_AREAS = conf['areas'] HUMAN_AREA_IDS = {} HUMAN_AREAS.each do |area| - HUMAN_AREA_IDS[area["area-id"]] = area + HUMAN_AREA_IDS[area['area-id']] = area end - def human_area(area_id) - HUMAN_AREA_IDS[area_id]["area-name"] + HUMAN_AREA_IDS[area_id]['area-name'] end def get_area_eng_name(area_id) - HUMAN_AREA_IDS[area_id]["area-eng-name"] + HUMAN_AREA_IDS[area_id]['area-eng-name'] end def get_area_short_name(area_id) - HUMAN_AREA_IDS[area_id]["area-short-name"] + HUMAN_AREA_IDS[area_id]['area-short-name'] end def get_area_id_from_area_no(area_no) - HUMAN_AREAS[area_no]["area-id"] + HUMAN_AREAS[area_no]['area-id'] end def area_id_list HUMAN_AREA_IDS.keys end - end diff --git a/app/helpers/accounts_helper.rb b/app/helpers/accounts_helper.rb index 557f60f26f6df0..6301919a9e12dc 100644 --- a/app/helpers/accounts_helper.rb +++ b/app/helpers/accounts_helper.rb @@ -20,62 +20,10 @@ def acct(account) end def account_action_button(account) - if user_signed_in? - if account.id == current_user.account_id - link_to settings_profile_url, class: 'button logo-button' do - safe_join([svg_logo, t('settings.edit_profile')]) - end - elsif current_account.following?(account) || current_account.requested?(account) - link_to account_unfollow_path(account), class: 'button logo-button button--destructive', data: { method: :post } do - safe_join([svg_logo, t('accounts.unfollow')]) - end - elsif !(account.memorial? || account.moved?) - link_to account_follow_path(account), class: "button logo-button#{account.blocking?(current_account) ? ' disabled' : ''}", data: { method: :post } do - safe_join([svg_logo, t('accounts.follow')]) - end - end - elsif !(account.memorial? || account.moved?) - link_to account_remote_follow_path(account), class: 'button logo-button modal-button', target: '_new' do - safe_join([svg_logo, t('accounts.follow')]) - end - end - end - - def minimal_account_action_button(account) - if user_signed_in? - return if account.id == current_user.account_id - - if current_account.following?(account) || current_account.requested?(account) - link_to account_unfollow_path(account), class: 'icon-button active', data: { method: :post }, title: t('accounts.unfollow') do - fa_icon('user-times fw') - end - elsif !(account.memorial? || account.moved?) - link_to account_follow_path(account), class: "icon-button#{account.blocking?(current_account) ? ' disabled' : ''}", data: { method: :post }, title: t('accounts.follow') do - fa_icon('user-plus fw') - end - end - elsif !(account.memorial? || account.moved?) - link_to account_remote_follow_path(account), class: 'icon-button modal-button', target: '_new', title: t('accounts.follow') do - fa_icon('user-plus fw') - end - end - end + return if account.memorial? || account.moved? - def account_badge(account, all: false) - if account.bot? - content_tag(:div, content_tag(:div, t('accounts.roles.bot'), class: 'account-role bot'), class: 'roles') - elsif account.group? - content_tag(:div, content_tag(:div, t('accounts.roles.group'), class: 'account-role group'), class: 'roles') - elsif (Setting.show_staff_badge && account.user_staff?) || all - content_tag(:div, class: 'roles') do - if all && !account.user_staff? - content_tag(:div, t('admin.accounts.roles.user'), class: 'account-role') - elsif account.user_admin? - content_tag(:div, t('accounts.roles.admin'), class: 'account-role admin') - elsif account.user_moderator? - content_tag(:div, t('accounts.roles.moderator'), class: 'account-role moderator') - end - end + link_to ActivityPub::TagManager.instance.url_for(account), class: 'button logo-button', target: '_new' do + safe_join([logo_as_symbol, t('accounts.follow')]) end end @@ -99,12 +47,4 @@ def account_description(account) [prepend_str, account.note].join(' · ') end - - def svg_logo - content_tag(:svg, tag(:use, 'xlink:href' => '#mastodon-svg-logo'), 'viewBox' => '0 0 216.4144 232.00976') - end - - def svg_logo_full - content_tag(:svg, tag(:use, 'xlink:href' => '#mastodon-svg-logo-full'), 'viewBox' => '0 0 713.35878 175.8678') - end end diff --git a/app/helpers/admin/action_logs_helper.rb b/app/helpers/admin/action_logs_helper.rb index 47eeeaac3a8eed..215ecea0d7ffb3 100644 --- a/app/helpers/admin/action_logs_helper.rb +++ b/app/helpers/admin/action_logs_helper.rb @@ -2,64 +2,37 @@ module Admin::ActionLogsHelper def log_target(log) - if log.target - linkable_log_target(log.target) - else - log_target_from_history(log.target_type, log.recorded_changes) - end - end - - private - - def linkable_log_target(record) - case record.class.name + case log.target_type when 'Account' - link_to record.acct, admin_account_path(record.id) + link_to (log.human_identifier.presence || I18n.t('admin.action_logs.deleted_account')), admin_account_path(log.target_id) when 'User' - link_to record.account.acct, admin_account_path(record.account_id) - when 'CustomEmoji' - record.shortcode + if log.route_param.present? + link_to log.human_identifier, admin_account_path(log.route_param) + else + I18n.t('admin.action_logs.deleted_account') + end + when 'UserRole' + link_to log.human_identifier, admin_roles_path(log.target_id) when 'Report' - link_to "##{record.id}", admin_report_path(record) + link_to "##{log.human_identifier.presence || log.target_id}", admin_report_path(log.target_id) when 'DomainBlock', 'DomainAllow', 'EmailDomainBlock', 'UnavailableDomain' - link_to record.domain, "https://#{record.domain}" + link_to log.human_identifier, "https://#{log.human_identifier.presence}" when 'Status' - link_to record.account.acct, ActivityPub::TagManager.instance.url_for(record) + link_to log.human_identifier, log.permalink when 'AccountWarning' - link_to record.target_account.acct, admin_account_path(record.target_account_id) + link_to log.human_identifier, admin_account_path(log.target_id) when 'Announcement' - link_to truncate(record.text), edit_admin_announcement_path(record.id) - when 'IpBlock' - "#{record.ip}/#{record.ip.prefix} (#{I18n.t("simple_form.labels.ip_block.severities.#{record.severity}")})" - when 'Instance' - record.domain + link_to truncate(log.human_identifier), edit_admin_announcement_path(log.target_id) + when 'IpBlock', 'Instance', 'CustomEmoji' + log.human_identifier + when 'CanonicalEmailBlock' + content_tag(:samp, (log.human_identifier.presence || '')[0...7], title: log.human_identifier) when 'Appeal' - link_to record.account.acct, disputes_strike_path(record.strike) - end - end - - def log_target_from_history(type, attributes) - case type - when 'User' - attributes['username'] - when 'CustomEmoji' - attributes['shortcode'] - when 'DomainBlock', 'DomainAllow', 'EmailDomainBlock', 'UnavailableDomain' - link_to attributes['domain'], "https://#{attributes['domain']}" - when 'Status' - tmp_status = Status.new(attributes.except('reblogs_count', 'favourites_count')) - - if tmp_status.account - link_to tmp_status.account&.acct || "##{tmp_status.account_id}", admin_account_path(tmp_status.account_id) + if log.route_param.present? + link_to log.human_identifier, disputes_strike_path(log.route_param.presence) else - I18n.t('admin.action_logs.deleted_status') + I18n.t('admin.action_logs.deleted_account') end - when 'Announcement' - truncate(attributes['text'].is_a?(Array) ? attributes['text'].last : attributes['text']) - when 'IpBlock' - "#{attributes['ip']}/#{attributes['ip'].prefix} (#{I18n.t("simple_form.labels.ip_block.severities.#{attributes['severity']}")})" - when 'Instance' - attributes['domain'] end end end diff --git a/app/helpers/admin/settings_helper.rb b/app/helpers/admin/settings_helper.rb index baf14ab2574e3f..a133b4e7d9b74f 100644 --- a/app/helpers/admin/settings_helper.rb +++ b/app/helpers/admin/settings_helper.rb @@ -1,11 +1,4 @@ # frozen_string_literal: true module Admin::SettingsHelper - def site_upload_delete_hint(hint, var) - upload = SiteUpload.find_by(var: var.to_s) - return hint unless upload - - link = link_to t('admin.site_uploads.delete'), admin_site_upload_path(upload), data: { method: :delete } - safe_join([hint, link], '
'.html_safe) - end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index bba7070d0d6def..4c20f1e1404d73 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -83,11 +83,8 @@ def link_to_login(name = nil, html_options = nil, &block) end def provider_sign_in_link(provider) - link_to I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize), omniauth_authorize_path(:user, provider), class: "button button-#{provider}", method: :post - end - - def open_deletion? - Setting.open_deletion + label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize) + link_to label, omniauth_authorize_path(:user, provider), class: "button button-#{provider}", method: :post end def locale_direction @@ -98,11 +95,6 @@ def locale_direction end end - def favicon_path - env_suffix = Rails.env.production? ? '' : '-dev' - "/favicon#{env_suffix}.ico" - end - def title Rails.env.production? ? site_title : "#{site_title} (Dev)" end @@ -146,8 +138,8 @@ def interrelationships_icon(relationships, account_id) end end - def custom_emoji_tag(custom_emoji, animate = true) - if animate + def custom_emoji_tag(custom_emoji) + if prefers_autoplay? image_tag(custom_emoji.image.url, class: 'emojione', alt: ":#{custom_emoji.shortcode}:") else image_tag(custom_emoji.image.url(:static), class: 'emojione custom-emoji', alt: ":#{custom_emoji.shortcode}", 'data-original' => full_asset_url(custom_emoji.image.url), 'data-static' => full_asset_url(custom_emoji.image.url(:static))) @@ -197,15 +189,12 @@ def storage_host? def quote_wrap(text, line_width: 80, break_sequence: "\n") text = word_wrap(text, line_width: line_width - 2, break_sequence: break_sequence) - text.split("\n").map { |line| '> ' + line }.join("\n") + text.split("\n").map { |line| "> #{line}" }.join("\n") end def render_initial_state state_params = { - settings: { - known_fediverse: Setting.show_known_fediverse_at_about_page, - }, - + settings: {}, text: [params[:title], params[:text], params[:url]].compact.join(' '), } @@ -214,7 +203,7 @@ def render_initial_state permit_visibilities.shift(permit_visibilities.index(default_privacy) + 1) if default_privacy.present? state_params[:visibility] = params[:visibility] if permit_visibilities.include? params[:visibility] - if user_signed_in? + if user_signed_in? && current_user.functional? state_params[:settings] = state_params[:settings].merge(Web::Setting.find_by(user: current_user)&.data || {}) state_params[:push_subscription] = current_account.user.web_push_subscription(current_session) state_params[:current_account] = current_account @@ -222,6 +211,15 @@ def render_initial_state state_params[:admin] = Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')) end + if user_signed_in? && !current_user.functional? + state_params[:disabled_account] = current_account + state_params[:moved_to_account] = current_account.moved_to_account + end + + if single_user_mode? + state_params[:owner] = Account.local.without_suspended.where('id > 0').first + end + json = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(state_params), serializer: InitialStateSerializer).to_json # rubocop:disable Rails/OutputSafety content_tag(:script, json_escape(json).html_safe, id: 'initial-state', type: 'application/json') diff --git a/app/helpers/branding_helper.rb b/app/helpers/branding_helper.rb new file mode 100644 index 00000000000000..ad7702aea71a8b --- /dev/null +++ b/app/helpers/branding_helper.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module BrandingHelper + def logo_as_symbol(version = :icon) + case version + when :icon + _logo_as_symbol_icon + when :wordmark + _logo_as_symbol_wordmark + end + end + + def _logo_as_symbol_wordmark + content_tag(:svg, tag(:use, href: '#logo-symbol-wordmark'), viewBox: '0 0 261 66', class: 'logo logo--wordmark') + end + + def _logo_as_symbol_icon + content_tag(:svg, tag(:use, href: '#logo-symbol-icon'), viewBox: '0 0 79 79', class: 'logo logo--icon') + end + + def render_logo + image_pack_tag('logo.svg', alt: 'Mastodon', class: 'logo logo--icon') + end + + def render_symbol(version = :icon) + path = begin + case version + when :icon + 'logo-symbol-icon.svg' + when :wordmark + 'logo-symbol-wordmark.svg' + end + end + + render(file: Rails.root.join('app', 'javascript', 'images', path)).html_safe # rubocop:disable Rails/OutputSafety + end +end diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb index 4da68500a1b2aa..f41104709e9926 100644 --- a/app/helpers/home_helper.rb +++ b/app/helpers/home_helper.rb @@ -23,7 +23,7 @@ def account_link_to(account, button = '', path: nil) else link_to(path || ActivityPub::TagManager.instance.url_for(account), class: 'account__display-name') do content_tag(:div, class: 'account__avatar-wrapper') do - image_tag(full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url), class: 'account__avatar') + image_tag(full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url), class: 'account__avatar', width: 46, height: 46) end + content_tag(:span, class: 'display-name') do content_tag(:bdi) do diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index 4077e19bdf0052..fff073cedbd1f7 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true +# rubocop:disable Metrics/ModuleLength, Style/WordArray module LanguagesHelper ISO_639_1 = { @@ -97,7 +98,7 @@ module LanguagesHelper lg: ['Ganda', 'Luganda'].freeze, li: ['Limburgish', 'Limburgs'].freeze, ln: ['Lingala', 'Lingála'].freeze, - lo: ['Lao', 'ພາສາ'].freeze, + lo: ['Lao', 'ລາວ'].freeze, lt: ['Lithuanian', 'lietuvių kalba'].freeze, lu: ['Luba-Katanga', 'Tshiluba'].freeze, lv: ['Latvian', 'latviešu valoda'].freeze, @@ -189,8 +190,14 @@ module LanguagesHelper ISO_639_3 = { ast: ['Asturian', 'Asturianu'].freeze, ckb: ['Sorani (Kurdish)', 'سۆرانی'].freeze, + jbo: ['Lojban', 'la .lojban.'].freeze, kab: ['Kabyle', 'Taqbaylit'].freeze, kmr: ['Kurmanji (Kurdish)', 'Kurmancî'].freeze, + ldn: ['Láadan', 'Láadan'].freeze, + lfn: ['Lingua Franca Nova', 'lingua franca nova'].freeze, + sco: ['Scots', 'Scots'].freeze, + tok: ['Toki Pona', 'toki pona'].freeze, + zba: ['Balaibalan', 'باليبلن'].freeze, zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze, }.freeze @@ -259,3 +266,5 @@ def available_locale_or_nil(locale_name) locale_name.to_sym if locale_name.present? && I18n.available_locales.include?(locale_name.to_sym) end end + +# rubocop:enable Metrics/ModuleLength, Style/WordArray diff --git a/app/helpers/routing_helper.rb b/app/helpers/routing_helper.rb index f95f46a5609755..0d5a8505a20486 100644 --- a/app/helpers/routing_helper.rb +++ b/app/helpers/routing_helper.rb @@ -16,7 +16,11 @@ def default_url_options def full_asset_url(source, **options) source = ActionController::Base.helpers.asset_url(source, **options) unless use_storage? - URI.join(root_url, source).to_s + URI.join(asset_host, source).to_s + end + + def asset_host + Rails.configuration.action_controller.asset_host || root_url end def full_pack_url(source, **options) diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 955c424fccd156..8158323161b385 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -1,9 +1,10 @@ # frozen_string_literal: true require_relative('account_area_helper') -include AccountAreaHelper module SettingsHelper + include AccountAreaHelper + def filterable_languages LanguagesHelper::SUPPORTED_LOCALES.keys end diff --git a/app/javascript/area_settings.json b/app/javascript/area_settings.json index 26836d0fd2f142..469033078984ad 100644 --- a/app/javascript/area_settings.json +++ b/app/javascript/area_settings.json @@ -115,6 +115,12 @@ "instance-name": "fedibird", "instance-short-name": "FD", "instance-eng-name": "remote-fedibird" + }, + + "mastodon-japan.net": { + "instance-name": "mastodon-japan", + "instance-short-name": "MJ", + "instance-eng-name": "remote-mastodon-japan" } }, "instance-areas": diff --git a/app/javascript/fonts/montserrat/Montserrat-Medium.ttf b/app/javascript/fonts/montserrat/Montserrat-Medium.ttf deleted file mode 100644 index 88d70b89c3f2740e9b9c80881616136b5f697091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192488 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
VsBJm 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 diff --git a/app/javascript/fonts/montserrat/Montserrat-Regular.ttf b/app/javascript/fonts/montserrat/Montserrat-Regular.ttf deleted file mode 100644 index 29ca85d4a8bcfb20443653e7305c7e981b03eec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191860 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ύ-#QDTU#HGX) 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 diff --git a/app/javascript/fonts/montserrat/Montserrat-Regular.woff b/app/javascript/fonts/montserrat/Montserrat-Regular.woff deleted file mode 100644 index af3b5ec44a985f622e0c236b5ced7ad2fac3e855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81244 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 z zBG@={^B9>s%AWNT$|V1rKAr5G6^J!#HBqhEUNT!@^B9G8+A<&k5mr8WLdbaCR=V%F zXtL{J)U`9xWVrant%HmicZ!-WR!2Ph!ySJhZ7TcST8awJfKbV~>@!|za+@B2x$%;R zYPqDN($djqe4<+AA)JbBPPgCn?6(c&vUIIjn3HRK-{zbx^^?e*?2G=*2Ge{xgVC9= z*$*Of?RbFsL8n*uyJ4>#$+V-}j3@b-#8{BUq7I*+e_J+Ht67Az5}C6AST-b2{G5r8 zV7-g!d1CUyVuq_>K1Jw$46_inG@4MWF0QU;M{w%3llz3YmXS(D!?W_bYiCS_lKucc z{oA5VO<%I+Gq#On2t8zBK;qKlYP&kTqbR*}*@$P4sd+j2KymTW`5Et}zfwN2gBl`g zS5Hz0F}3`1q{7AIcCX+ziTFLv>`gaEBFKDo-+p~V*dCy6{-2)D)xpkl zQ}=#Bh6_THO@fAHkR}M!mli7f#ka~=_Ud#b`!Vn>4%A1^dyvW>_cvy3H^Bwz>mHU* zSb?I3pWp1|(9c62xdQj67slq6^Js7G9uI!yu&xN0Q_S(cE!w8g32D1XQC++r}VCum_s{!4Z(plYP1uzysUs7YYc47HA2WP=C9 z1I_ldN$p7ya?9W;B_zYe3$*@b+KZPb>L@>Q)mE2FVZjqKT3EKMKlRw)t2Gu#a%{c$ zP>i;o{6}G@FpPFCy3fwVHG2v@XoeNLuun$=oxxDZCTQK^eRQ8@GdfR)@7*?CJLJmS z1sjR2zH9%t$M1e2N#(C7!zlVaSntuhg1z5kisx_w1CJF6h{a?q&IejW&k+ENDG(yG zKEv`wclPnXhiY84K8YnvuMR%);CKhJ%3fO!G~*7oY_HvR*F`zufXk(KQfs%>YE?2d zH6IbFoDa+A({;yw_v5EyHZ7=~Pk5XKYRO0*G5eTSM3wG_`a#{OJR}hFx`EA<5h^7!5(TQra784Gp$pt83%+w$ve~ zHeM?)ZpEawv@1t$mAW?SE4OY8GwYB)LUvOtW01lQ`|OoPNS<*9p}Zh%Sp4Wnw?6j) z!vQMo(nCZ16q$Q(X0E(tQEq&=g=^6nOkV_c%HY5>AWr>;xjg#!`R$oaHy(9SbTbjb zoE!Ny?p?y5N6S-S7kAaI^xg5gX0TrZnr^`!e@Gi|w#!1IW|c9hr!_suZg2nj zj-K?6^6|@ltJ#vjc}j9~rBqm*ls157(b3Q~-)6v;OHUNC`>;|;x#}opdzV1aoGZ~e z|DDV=^ill^L4DrstE--8WoP9^&ZRN$H_AQGbA!2K!wWaG1!+G~dtG)HyRd8HWaJSo zJD{yJVBDc&G2jL>dRp=vw<9L=Cc10dEB2kj@3j@oUM7$@Romo)HGrPTCAg=#o(fdc zxNFv$-8w%$I5ck7z9Bd;2I9Cqe7~-mX$#qrGovGe#|Wr5z-+IHS-9QdD`NNg5D|Ok zT_I)SDHZbMjOMDAFaj&DKhd@FzSBxsJ3Y!6RkOov6YT?n3qn6x+f^i6DpIGUq}qYR zJMXTLg)7Z%lNxe^-CIRu|%+wJh}Y zF|2n>q!dO{{7h2(kdCy0di*S%@dZPFq9-M8l2o#``GiLQ(3L)o@^u_GOukCy%{eqDDXYgFuXvi$J_-iDnVVBAzent5DqY8cG-(*DI4 zn;y>r+ttxBETACk&Puj_u)k$b7<2YJ*=-E>uRASiZXuo+>xm2Pm9rYQ_W<-)7ay%x zx#2FRRmk!`j=LzQf1;8yY}FR%o5VAg99fA_TnRv}L~N== zhNncNszlnLh0!`=-MC=7>qg$Z96kYG!z9rd(>~7z-v$3udGXrb65XloG7rY_bL)R8j^D zZ6=d!CK_#~qQT>p;K?lTL??I(9s>6XFo-P}RCI}+HQ?+)#B!~4u^L%%LR33@8Uhm=8k}O4EY76Z;w*O@JPn!QO3w}#@K_-@PN+f zp3VqJXY6)ucw%kzbZw+Va9FI?--)j2>a&_-xVry`#C(&2&#H1D*$I#+6G*xOBw-7Z zKLvdy1xaOs#C1V(>mV^9kW2?i(g&pQ%=HC{>w5s#H!&{RJ}yz(6Wq+wvfEm{8S5Wn z_D7^0Ramz*!k~jk(W6mdql8syVGy#2hhwFve)@>3${A*hfWHADn$eZWReU6FJ_Ux{ zH1342`kZ;!MZ$Gv@q@-iS1J9lDC2l8TroaPFL(~p7*&Z7i!8fS_ zRXseQQX)_@3NMGIRg3(P(kFN7rhq-601!2+Gw}|o%PU);K|`iNhoM2sx<>Lhi(C!8^k+YE_?@vl70hLB%bN48@{t`Wk)5)Uoj8)6 zzsWk3$^z469b0Cd5oH}|W}Wh79X#l51?l}A(Az1{+uzgMPTV*n-8j> z5CJ0{&HCQghAv9W3XdW=)Cp=qN2N56!>EUA;|X6zBm zGON(b93nnKhT#b)92OF7txoNT9sC&l~%NtRt1MYMG1e0 z#*l1tW*VF@%aXt&1b==tKs_yMVROF&t?&ILQzEF>fXX6QfWx*-#u`c6AYcK9!{Hj7 zqREUlhojL368AG9k1Oy%8PB<}_v6*+P?ZSc*H4DnN^FjAr06V(H2FM{#i>p4K-2+N zFnZwP^!)6?3}}ugWz59Fq`iiZyr)nn4avbwiXeE?xfP0%Y4T6U|L269EsgXOdcEy> zXT6%mOC)sryw)WTQc=*|Z@YENuKPY!WT~8%`dF`7BUjVJ9B0{b|MiL2m$*yHy1;hM z%@SH~yuw5pJ1MV_ZywPnUDl7+;x2u(VP_ln!?U-gfHs3AexUBJmV#27G+48#)_pyP zx^-qv=NZ330;!SFOU%fAsi)MI*2;JRR?_%};px@FvpDyF{6`^Ysd?|xu=yL!I;I-~ z{n)_kQ`)W+{xz088SP6f)%mQ?-c1V6&0OMbP((igh2tIsfQ z0QrWQYo{cJd4o5eM4)}|l%df*mmTSf21Z+u{6bHOVXThn(?X6iaaNjYqLxa?f_(gg z)5-OT$n4-z{Cr-3OxFt_bsUDt&{E0NP=r~T5x1d0o{u%>4$$Y0y3gkDdtOXsnR6GX zZ~WZI*!T#$yNtf`*pzIybla%~CN=g{U<#4`)Y>b_ zT+>8NJWo2Ft5@oEpl?<-Dyq{0+$x2BHi%8N6uROxG)M_C#u~`sNCm08e(`BC645~-N*m`3^gUs@3k*ZNFx|jY`^=zd_a;y z|1X(tR4^iwIo3)5{oxAMHr8t2JtYL~rC2Cj#4KhzW_9--2lDzQUnoq(RAF0Tb?%-6 zg8ou26d__hwLP_Zeg6*f>Ls@$w9ABLn`L$Eo&oaqrL-fw%dBd+nGgAOX2xOQjheM~+w%?GDG{xo3VU?L?4zmtr1#E< z=^KK2c>61KTX*1BUGsbAD)gUpklA0Lw9k-S(%38GJ=dgCf{6i^w`v(3NcMMb8KkeX z|HeB&uruBune+4%L0vM0kh70C9NqA}8>a@B^)Fh43Cxpw4xpR$<*>{b!X2VZ^gR#! z_};hUgsUY6oxIu%36MV@7nNkU$>~|c{Ln>i6}Asv_?~9F0`;Mb7uqm<-}B8r@@L8W zIvBd&t^W4;ivajWe(7|*deQ3>j-bxryKN)=^7pu}g?J-B^-|zg3nui9D!wTb#na(t zEE{&|N*YZ$i3uJGHcm`AUmi=nJP(QqhJR;mJKmdkXmO20%W-I)lX-jVV|W5l+L@lj z@Kd%_2hm~pFY+Fed$O13^r$qRL~|ntr3U^m)kN9Lu94KgenSL-$R6g0{cWNI8>Fq5 zS{_fFa65SQ z6y`OjM<$Ev$(#B2$R+JyPFzn;{lR&C=*ThA$4huO;wIemXg|9ky_T&)rfoL2o_Z`? zE*hYkp5bH^PvSOAy2Ryf3R}w#xHiC?>f>XN`FkjsW(sXI^;*elEIPGx)yh;W0{!PD z3AC!^qg(b(&hkAdq*ZJnXF<`lm<5P$^%fM!FN&PwrpQ%H0DNop8uY96i})XWMdZWh zqU7uiPnM@1UJcX50k*8j_!nn>`D>euy$9Z@2*=puUG}O$RlS&#b|M~60lRCvwY}%& zsgTRxF}rNpgDS!?2i`<15Bz%9w(WaRkExi;Sp8iF-B#85@VNwmrc&M3_2s&=iOyq{ zG6lc$MuEi>uJ2(^bl8cZ(%-0aKPUz8O8BIy`5Zevt3^GQFQ!G^njJ?M9!9ITx)k{w zVK#l1M;%xmwGCHk3ZJW~52hFM$*H}tSK&`eQ*+ zp36l4ElDj)CdP8|N-$W)SqxIp{s}s}2`4+i$-E}|;ec8eUCiZV{t&QC9-KT6C!fH{ zZg8>yoSUqcg%oQ!ISo#pgOkB<^4)KrSf63x@UG!b7sy|z^6J2ij8t+QGqtXCYk~{g z^X%Nf4VElS<{FDrAJBDEe{-|#H?%sVkhaO`m-j$2VQ-ts*@fpe`?Rnub**hnJ7GTo zMVYdB&Cj!=dpV3sdwMS}X1?fbV*rI6IA zhbLp-=b1C-YT>;_N0GDSfUBxaL;)>j$UpmK7$=b2E!1(vw^?FpRCX6iqL$#BW=I+` zS8T0T8xvO=p*Z}&O=rl4nDqqRs~KyQovgaT=K5C6Cm?J#()(nqsws7Hy#;1DF4v2*df8k4SAO&Js;JmU4WNOq{e^?A zX&;SR9^G^^vHde>` zn0!_%>ia_^DKLRt=~RX)c*;e7&p%#;XD=hLs$TfvmLDV4HF8e((5lIEnnUj{$G-Q8 z|4n0U#Ip$<=+9U+-w=PFc%@@oh@dq{vJ>O_gnDJA5|UgYn`cM4PkJCr(6&HI2Fc*@ z2Dh>#x6!6^waFO+(EKJ{+h|A#yhIWehK< zp->xYjeQYL%VTRCI3o<>$Lycs#XH!QUVDN{Jn};RcR=PnV6!LYBI3SZ(SKLqX<*t? zoTqRwGKKWo$dEB?Z#TZ)!(6pI3ZsUvabR)@$A=IKRqRq3V#OSc^G#OaacpqV`Ssuw%Bg{Rpu%z^DoWe*tc%G^y zVIr?sb=>GdH$8L-Hn}=*siy68AQz{;j2^B077zwGSX_TT2QQDZAl>dCiiMbL>5 zsNp5KvZ_?+oRAA2{m@>1MwYYFSLPAC78;(vNo%nJ&h}*Ed7kW3+^}a}4!S>lFSN=A z$q{|4NnX=PPx~GLJ>%LfN;%N5e@)+V}Co`k% z;9z47dCiq8m$zv45-H9FO^HE&^93`V3iNjqhNwRS_vnlmlu}$Huw%qLD=BDDgr<|} zg!c+df!SKh>cvG3Te3l)+M>1AGpTh{9xt>QqUnsb z?0C+4k?;Q6Lv^3*8uUhKA5ios=10-C3tdOr?WCw|g(`6&1dRe&C! zkG?Y;L$-JaVeYtvKC9|OXxzFg#bGmj&8AGHv!61(37e`_YJvoOs>pwopPb2lDC`*C z4-;t+IWM73mk&2m(GzUg;7o?Z%f!;r3>4*;7I#XPqB&I3W9sCDBk}|~{l%5Ubo`4i zS?Lh%KO9r`syn`v^&*%4bvw~$tUAE6KUN>`(91VE>Nz%in}Avf-1|u+#wQ(~7sx9e zk(a>BdoTzS^p36*X~-9kuB1W=(wD!P2FR zIDCjOcan}o2t_=!)BE>j6>V6Dq3tR+do&k}u)uZdKyDWr!bJc3TVjBM&N_7cVB@Cq zwxx*JtoDnZ7zBT`PmyT3p`W5($9?}4g6yL(I8T3kDhs9CJ#M0{q%Pu>CM%BxKEz%$>koA1Icp3L8zsvD#g=CfR zGYUE}yG?&F+b)f48oTXaIo~xtqgJiWKq=P=x6Mke?NFr<6cfPj1nw{4IAGRkbvhla zKyW7$^t{|3i}CZ{Lj3d!;b*Ra2h8-Jg{c!Eb=t~Q5n@Z4`e}KROqUrkawK%NUP2sM zwm!f+#+qJY61ek`847S3r#sMb7{G8Byy$;t?|m_VB|Zu)F=tgF8g-ChPdgen;da&> zu^MF03X?Sxey2IEoOEqnIe+=x~7K8Nm+yuy#U7*jK;`i8h!i=b+HpRrUC-X6MC4AfyNnIxaPb=$jpvG)@xh%?vX}D@o8%b zh1?ZK6BcH5Y3mvL+}X%XHcAoNv$IJJ?RXV7s%6@9D+>*s7`8?n+DoI{jZJx(r&jJ> zE32Il_dfxo#}1PGD>c#Xx$&9DF6R8JEtBp!5xU1t>a8mc63snwc8=)+YkOpOp4~WE zSCI$pThvt^6C@i~(Rbckl-c*=1f5q==TBR-UH22@62Y9Gbcf%w2Qhxq9>#VG63nqB zB$Ei9F|;8hrwJZ0vOJ}>WXN$*~B?@#1kXWbvaik$E~Be?eALL{|SEq^1$1{!LsBD6TF$ zpd?7GNI|XSQ~&fs%En!HK<}H3KD@PFBtgo1B)>dA6jKWc6PH0#qe7D(W~O%dCXPv_ri*pL z>9t$}wE|ElR!JwpA}4MFC%#1|4tFPV_&>pNL41A@TSoKzR}0xCs`r2K^;J=IM9a1~ z1b3GJ0fGg0cL?t8!7aE$2o~Jk-DTtM?(Xgmd*iTy$2oVrcmLj3caPDddvz_To^#f! zYU595Adn2wodeiujM($Z|3t|5^vrCo=7<7(4P zG9QzJ8|T(BvCr6#6%Ow~VQyhvTnUzo>QJ}G$p0O4{~3Jmrj0U!aNWJo=!6&;B#v?T zv~i@`aYV4n#AeC_9Li+!vxFqGB)%;8lq{sGEJR2EVjBPfAAn5Ckr2<3#2tvw1SBPY zk|2vRCP-r;$dO4)CrHbB)=n(aj$71DiCT@nTutiaiS6e}PT)znZOyc4P2+3Lk@8H( z^UQL8PGx$|CI_1dvLV^TF%}Ot7bdT<>WEZWqEr>2G=w$HaIT58TP|N#3pAxXY>8f^ z_^<}6{~A>Dp;EUtQ*%31H~v(i)Ya4%)$}>kR2$WFUDX^=7Jf%9{+e9yVO+GfTX4Hv zG|pP^)L*m{Sa9xKw0QfS9f)*E(RT8qTJ}Pv?e0g#_$6Z7UUg-~g>~CYb(zg2Z`)OM z%`w`-%_it?_O$!({>RqsT}*%n0y-1~#MhSps;2*A!byiu`*9my@(&rJj~ikPZ=+9d z$Mp!sjtIpKbjMC~$MyNgj`_z8eZ)>dkL>jRdQhtK;$98I|Kj8&?&SRoFN-(Y|2Xt)D6Jp66A?`wF>ce&ehd5Cwp zpL2PvySoG3J%r!gkKH|%Bj24NKcpkyuOUCaMBar&J`6?P7e_uG$=xN(JuJ!HH_1Kz zn79Qp+>kPW3>bid47YxjH;|PekxC$W<*l*p&8{sd&K5XpdkeU@3A+G|UI5E3ZcmAC z(ujdnnRhsu59*os9GQ;-dUvjR5Au5VjCzlD8+Rld5BeMT0vnIM{CCj&M?z@#=-F0; z;>J%x_nrHn*7=tZo$!BGxb-HErkvfQt}|QNqcacPGKbOIG!>7UQu^;CetF1GNvykE zV|%xWo39G1(n897C+u z;qTS~0oK92)`5A}p@$2QlnY-97GO;mQ1%y~$1CtO)W|9;{j}7fYun(Ah&!J_py^pm{~>}cKdP+*aW8w!$xHP zMVnd97yOfLK6c!RZF;Ob9_k7i&eieyuzG?{a% zjUhLCMB9QTT;L;4Nt0)w8H%K|Bo${ArsA#-X;<;I~vIq(#Serd{cPlDO6)mzP~t^_!>=ET8j$Cu6%(Umzmd;T$8S@ z?VFO#8~5&2qx1S)&BJz1^cxV%A^iQW?%tc`&2uO&cB5?iXwB1hj{bG#sKW6=vglKp zrB}CGYg_;CU*o?cNF9uthX?NNU6yqHh0=yA!(>%_C^M(rG_Iq~&{@=)Oe0IPN`C$; z%&)(B284aez-QLUkkmD&GOk(_aS@MFC-)*l�JCU8l=A=5)$b)yS{kHcGnsjsDl4 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
  • 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 Hb6WraV$xGG diff --git a/app/javascript/icons/android-chrome-144x144.png b/app/javascript/icons/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..698fb4a260b13621d40468ad5f3fb3438568748d GIT binary patch literal 5810 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 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/android-chrome-192x192.png b/app/javascript/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6b632648f6b18918881287c8a8b295cbc81eb7 GIT binary patch literal 8741 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 P00000NkvXXu0mjfxX8FH literal 0 HcmV?d00001 diff --git a/app/javascript/icons/android-chrome-256x256.png b/app/javascript/icons/android-chrome-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..51e3849a263062ccefb246dfcd2130114ee040ae GIT binary patch literal 11993 zcmb7qWn7d`{O!_R3sQpA0@Bh7!Y;7jE-j^mf`D{M_tFwlOLvF}NGRR$BLwM=m2RXv zmfg$$-go!az4K;fUd;2%oS8XuzTeM@($;)MLCQ=D001c9FsKdyfb-DA0TAOpRFl+T zQ2;$_bVD_Usw01T1gyLdfrNA%hUEw>}=Q+@!2lvHRS(5 zT^THvIr;Px#o}jvXRq&5$?yT^S<8QpHh60GvuMnVo18APpYT@S6gTytjav`{(g^*Si9jiAV^fy!gk4D(5T1f?3v%?81ME_9mn@lTeMYdm%_z)W4pYk zM`^>GfVTZZgEtH^GT!GUx3_!I()MUf)%owo9z9iW2lRjZwB%zD*`hvo^D)OYM070K ziPSZ?A+kJ=Cc2a^TybVdp1DQH9=K<_mQ@%H7Z-n^7MV(?={9v)s^Zp188}n^GF~y2D`lW$y zqLhO~G@j$a*oB+Eu-!ou276`2$37#H7!R)cK1?H+@0q=55pZ5*Dh@Tmr-h`CDr}j_ z=|7FW`{s;L8w=wj$OQz@3Z5k0?(n+4F-ZyGON@~3f44**h6Jkg|6yJdREucVYrX#D*dCha32% z(MycN^YYI>D1u_EC62+(fsVT;zjL-p4S74CBjrHtrvXhhBUU^oe*Uye0mgsry?d+$ zy05Dp;=nId$C5bILZNidMMC*x`&Q6V5?oe56+obkUx zQ+H~ocFD%oJ`<@Ezc1qB;FB_kcCE55&@=cve_}1p32aLCw4IJSO|k2KaXHz@NbjEq z`)4Dmkiw_go`lYgd{n&DG(7>TU+UyDYFm~D*K*S(RKy1HfdGP_d|tdHX0qZUU8T@~ zWvVq1Op$kCp5!~C@|hH>Zvi&CHQ4%!o(PFSM`T#BlpYbhIO^y=hJ7) znI^3-Y7WHn25-sViIf8q8lz?(jm?EUA*>=9CbOb-Ldb1fzk

    x$PD?pMSt8kZo-Xt$@&-U^KoraSWy@N!k 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 IM6N<$g5H0PY5)KL literal 0 HcmV?d00001 diff --git a/app/javascript/icons/apple-touch-icon-144x144.png b/app/javascript/icons/apple-touch-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..698fb4a260b13621d40468ad5f3fb3438568748d GIT binary patch literal 5810 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 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/apple-touch-icon-152x152.png b/app/javascript/icons/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc93cc2888c02a3a2f1b4563858a2fe46d82c0c GIT binary patch literal 6177 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 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/apple-touch-icon-167x167.png b/app/javascript/icons/apple-touch-icon-167x167.png new file mode 100644 index 0000000000000000000000000000000000000000..9bbbf53120cc00b5246829f5bc4b51b9cc7e0cc3 GIT binary patch literal 7041 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 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/apple-touch-icon-180x180.png b/app/javascript/icons/apple-touch-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..329b803b91899248e364bd86dc39b299f3305852 GIT binary patch literal 7709 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 Tp-LX600000NkvXXu0mjft7$~4 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/apple-touch-icon-60x60.png b/app/javascript/icons/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..011285b564703b7bcb85bae65f9cd208e6c883aa GIT binary patch literal 1761 zcmV<71|Io|P)zy$)ss0m6`?h-+08OI$2axgxL#=y8v3EX?(K*OxcE5mv1x%R;XdF7mc*{HtH+ z(`V#@q#sp7kE~wJ4|{|$J^>;qB|zv6Mi6LbFw-x89)08MQ5180)I^l&$Yb2@4#s@rNb|3L9{u_k;mH%sjPVJ&=`D;q z-bEUc(BkkR{k?C8yLLwBjvt#@x$NrKly|?EF*(^TN4UeCjX(XNk@8%K9`n#*Drb(~ z_}1LSlt>tV;NAXjetZb+T=!-xp8Wz#8MNuI;RoO2m(CsqNJyol0N~NtWzTqywSI$a z51U{1!g`^AER%K}8lOzY@WbzhzxnZDl8Ryzgu$DBd*th1UfB%qqaW}}XO9bEk`T%n z2BW$LxV|L1JbJJ^!V)X%c|#+rsy~eV}~)_@;Ag80NKaF#hCc zJIWvczyGcOnU8BLH|SRjyLW_f=_Zy9KxcL{&di2lfDz;TIZZ+Vf}wA6b0?p_G`X*L zeYJe0+Pgy$pq#6d_RT44xe zEA4w4^N5*o*Cl3vIy7y5Jwnc0ny*T_eQ{ubCMG2_h@_ALKssrizSBB|vu@NQbgJjv zYT}aa{Xq9__qJQoP-gN_v0ZI=-le6?lCD=Zl5n@ATdv~r_bHP;e>%#z9<^$8RrN@a za7`gyF6r}Uiqdeh9C_tpMeC{fJYKa{J?!y=a~)W|S~5~`?}rSOiy?r4AtS!!uYYU= zenUt*(~;-bFP@J^CnWyP#I(HS?Oo0_NnFZ+)@+`Hvj1oDmW-vwuVaq%cpN2olmgxOU(5lkZf% z{K=C<20&oW^1&JgjvNS(DJPGGU;bp_w?921q*B&EN|U*yHPXQP(7pz`aN=liaId#? zg*m%SDU;9zuhAS4(b?0%;r+pm&5f;pJ_Zm8LrRkf1O{`qcWn9SLBCRr@G|2O~UTePVv!~9)_JD*zM9OlBBryO+I_P0{+MP0KuTgyD zQ`g+}{zDz5pZAy}XV08Rq?s6O^09Y@UZc!i`bMH^``;F2yuRrsG*Uy-?m=`v0`hE4= zUn(BlQ|Gt`A(xj+mRmE+j2(Y%oI4X@(a^(gzXR!DX5X)99bWGyvrm1=^uWAwvqli; zdR3n}6$Bnzwy<5wE{z0@3=RF)&qqFe}19`lbM z_I7QqZTVxRShz?eENcK*wDd!6y%|8y-kO834rm6T+s54R$f(!Q^?D&W??@7nQVx+= zwDheuVL>o!fPj`gbL@K13=j#5CrYFY2S6(06w-gi;$Xfqc)=Wm4FJlpKmr`sCS(LX zC0-xA=4a$ArMdI#d1z_{qr!W&RpR00000NkvXXu0mjf D`i*y$ literal 0 HcmV?d00001 diff --git a/app/javascript/icons/apple-touch-icon-72x72.png b/app/javascript/icons/apple-touch-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..16679d5731a6d62d7088d02b0590891f884ab737 GIT binary patch literal 2262 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 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/favicon-48x48.png b/app/javascript/icons/favicon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..259676c0a9217ed353269ec3dccb50cca399dfba GIT binary patch literal 1680 zcmV;B252XO#7&rk08IL#|xZO0G(e>EFnil;< z(_%P@yr5~g+%%jiEW}xCagFAP8VsCtv}lj6MjsgJL*{I@^t7f%aEcLgs^N^mpQ!oa z-3*+f1XMM0t%(}d7PL9+A)MlTeefYJ9$v+{4qLF1fuW+SLDW=+P+bv%W+yy?^5PKc zt3xQ%D2GNXl*q_(L4gC=wHo0Y7{nJM=wjZ|2kxKKd|*V36+_ z2Jp{6aqQn4fm0QBC_WeO0VVL3s`xPwPSuakK8<0p`QZI1G<*Nuy}QFan3#r!IJ-v! ze2>Pk*}UTthp%`L=cra+gn@zh?9(WQI{2+a{v`g& zqxh~-EnW=7`qe=UXAA>aG&g|qLLanh35bAzI?*aO-8_Dc-)mEMFm zxz3Bf=}@>`1{TlrLp2}vi!~44ej_Y(*RBX0a!7JrQ+Ys+Ycl%+C{`}<^4(O=7?wzeP#^^H0Qw zO;2|mYOdUW`T3CeO7?D8;&RlSegR!9pc@pA>=6S#`#4PcFFX?v{9k{LlK$Qu;`P7! zoW4GT1$6TO8w;>!cY#0}@cug?(%-Y)C-|R!6ej)c8@UzlXi>I4A` z@JRxKq`zy6c%YBo3z7cz4Mc$Ga@d*qLnyPe#-7;$ibr-!0^Sai{;tik0Mcgx9!Wq* z>T)`369GzQdx&lG0-3uR^KK_b92&pg156@RNRRQ9ITw z>FLMJ`cBf{y0%xi{+BF3;&RfOa`;r3nNqz$FH}=@+~a!UB5a0rU>6NlkYr z0xU_5S1HMjpg6EY7T^=Sk+OA-EFdu8j^&}2OZYvI{^vL)sR0xRw)e^c1aG8lUEM7Y zpm%(;X5sWc{|ox*Z0p1Sfj}DY-Wxu_8zJ(5PXeTGN&4?e)3IZH=wBZLGOE-jES%ET zkBKGCf;Upil}6$ElgnC2UwP;svl#Gywe^HE(aq*XP}LopG3L4Ov4N za?_g{vN12auI+3N8K>Wyay{IC`}f^Gmw(%PBMH=hAU(C0ztPVt;3=Mvo}$vZ&(c%y zpbmx>#eUhH+a)eYp^t(nma{Z+%tMo>=vawOlOa=N| z#BisXaArOLr30_IBXe9hvLgsl4N!Fxj&um98kiuR8J~2f7YRpZ7krO`=iqZS#(fLp zJd}>~HTb-jJJRb#MQR#sb*tB#Yl3PMOkgcg)#gae`RyU;&9&yPSZC%+mQ|6CY!8l8 z-K06%4&&1ekrpwWEED$RXP~NsS0s-hy(R4N-Ml=Zs_Ct?C%Ym&MeN~@ygdE{sOk_n zeu@|_HA8xe*`i*KV;_L3o@h|ugc;SK!KQR8VT&3Vj`T-bL~(31tjI^8Y9LN=bUU*} zW-=V%@SSjLY!bIc7jPU|O>NPQ;3)iF1fPL||0b2!YHP-EaQH3wf(Q&82y zM{t%HgEI(Dv_#rfjlE(D^d|=YVrmHPAco*+YVa3f<(_}zG4NBPe;53>0)`(Bm)!QK agna>obe_C{6JZko0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/javascript/images/elephant-fren.png b/app/javascript/images/elephant-fren.png deleted file mode 100644 index 38b1e3cba5a677da3cc109e3a149112b8d940b5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34530 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 - diff --git a/app/javascript/images/icon_done.svg b/app/javascript/images/icon_done.svg deleted file mode 100644 index 446af14d9970b9..00000000000000 --- a/app/javascript/images/icon_done.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_email.svg b/app/javascript/images/icon_email.svg deleted file mode 100644 index 6d0ad9d9ba6e80..00000000000000 --- a/app/javascript/images/icon_email.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_file_download.svg b/app/javascript/images/icon_file_download.svg deleted file mode 100644 index 53e97e4f8af1f2..00000000000000 --- a/app/javascript/images/icon_file_download.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_flag.svg b/app/javascript/images/icon_flag.svg deleted file mode 100644 index 3939c9d2b3702c..00000000000000 --- a/app/javascript/images/icon_flag.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/app/javascript/images/icon_grade.svg b/app/javascript/images/icon_grade.svg deleted file mode 100644 index f48b468899a4b3..00000000000000 --- a/app/javascript/images/icon_grade.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_lock_open.svg b/app/javascript/images/icon_lock_open.svg deleted file mode 100644 index 3288b46d673bd5..00000000000000 --- a/app/javascript/images/icon_lock_open.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_person_add.svg b/app/javascript/images/icon_person_add.svg deleted file mode 100644 index 068b8ae7cc1615..00000000000000 --- a/app/javascript/images/icon_person_add.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_reply.svg b/app/javascript/images/icon_reply.svg deleted file mode 100644 index cf6a09abc602a5..00000000000000 --- a/app/javascript/images/icon_reply.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icons/icon_cached.svg b/app/javascript/images/icons/icon_cached.svg new file mode 100644 index 00000000000000..d938e9badba9cb --- /dev/null +++ b/app/javascript/images/icons/icon_cached.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_done.svg b/app/javascript/images/icons/icon_done.svg new file mode 100644 index 00000000000000..a35ab87a1500c3 --- /dev/null +++ b/app/javascript/images/icons/icon_done.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_email.svg b/app/javascript/images/icons/icon_email.svg new file mode 100644 index 00000000000000..0215b6f3a751f2 --- /dev/null +++ b/app/javascript/images/icons/icon_email.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_file_download.svg b/app/javascript/images/icons/icon_file_download.svg new file mode 100644 index 00000000000000..dc6d6bce34bfa1 --- /dev/null +++ b/app/javascript/images/icons/icon_file_download.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_flag.svg b/app/javascript/images/icons/icon_flag.svg new file mode 100644 index 00000000000000..fe07808fa93582 --- /dev/null +++ b/app/javascript/images/icons/icon_flag.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_grade.svg b/app/javascript/images/icons/icon_grade.svg new file mode 100644 index 00000000000000..f8dd93864cdfe7 --- /dev/null +++ b/app/javascript/images/icons/icon_grade.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_lock_open.svg b/app/javascript/images/icons/icon_lock_open.svg new file mode 100644 index 00000000000000..12f559beb45f28 --- /dev/null +++ b/app/javascript/images/icons/icon_lock_open.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_person_add.svg b/app/javascript/images/icons/icon_person_add.svg new file mode 100644 index 00000000000000..37053633326c2e --- /dev/null +++ b/app/javascript/images/icons/icon_person_add.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/icons/icon_reply.svg b/app/javascript/images/icons/icon_reply.svg new file mode 100644 index 00000000000000..9f99e4cbfc2715 --- /dev/null +++ b/app/javascript/images/icons/icon_reply.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/images/logo-symbol-icon.svg b/app/javascript/images/logo-symbol-icon.svg new file mode 100644 index 00000000000000..56cf03921aa52c --- /dev/null +++ b/app/javascript/images/logo-symbol-icon.svg @@ -0,0 +1,2 @@ + + diff --git a/app/javascript/images/logo-symbol-wordmark.svg b/app/javascript/images/logo-symbol-wordmark.svg new file mode 100644 index 00000000000000..7e7f7b087c1b58 --- /dev/null +++ b/app/javascript/images/logo-symbol-wordmark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/app/javascript/images/logo.svg b/app/javascript/images/logo.svg index 034a9c2217716a..11d0c30c56271b 100644 --- a/app/javascript/images/logo.svg +++ b/app/javascript/images/logo.svg @@ -1 +1,10 @@ - + + + + + + + + + + diff --git a/app/javascript/images/logo_alt.svg b/app/javascript/images/logo_alt.svg deleted file mode 100644 index 102d4c787e1cd8..00000000000000 --- a/app/javascript/images/logo_alt.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/javascript/images/logo_transparent_black.svg b/app/javascript/images/logo_transparent_black.svg deleted file mode 100644 index e44bcf5e14b043..00000000000000 --- a/app/javascript/images/logo_transparent_black.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/javascript/images/logo_transparent_white.svg b/app/javascript/images/logo_transparent_white.svg deleted file mode 100644 index f061ffe4c7534d..00000000000000 --- a/app/javascript/images/logo_transparent_white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/javascript/images/mailer/icon_cached.png b/app/javascript/images/mailer/icon_cached.png index 5c993dbee56a4ceff2a1d4da1908e755be1c5e3b..73bf9d198d488b1bc1207769cfee0cf92a76290b 100644 GIT binary patch literal 1133 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE4M+yv$zf+;U@`G@aSW+oe0!I%C8bn`{X>23 zZrLdD8B8ur4h&5!3>*xb3X=3*FtF@sXOxz!XuV$M>23zqHtVSMA_`j@i8Iep2g>uJP^acY2fZ?C?YV_h-`mBX-~Wf}LDQo> zF#&U?b9a3%ax9F~(>QmU^=ReJ1s3|^BF~?qNoF+i$;a)PXF2mjySTs6=QDjwJ{~T6 z9$Cw<%EyN@#3xi8^WL!eCu=~%>w{4>t)Yx}jvVmiS!B){aZKWz`F;kj4+_UNgfvv; zrM?WC#`PfWn5rF!mmdH4_8C!Dji-%jav6&laFaadytJk~?Q(a>W-gOjGRcXNqXkvExdR-1I}EA@#(g#n=Rc;~CBw%}kdg00002VoOIv0RM-N z%)bBt010qNS#tmY0Ac_D0Ad07lCjVL000McNliru;sF-~5Dv|S!8HH?0XRuSK~zY` z?UJ!d15pq~Z-}5`rEQ9|8$yKm9VsmqF>M0L4`>--d$Gzl*w}7bUz`G=Iz^B=|_5hS5mKy~zFmZ@F!Nymk!qB(@kKTJ@Ad)B>VMiGN zx4*=7X->)jST6*4E(&PUr$flXS!3FC=}|2RNbISz2DuA2a8=W+HFH+CvUl z*i|hE>Coq_DB#6N34o%23u8_(aAyKC?PZA@V_TlA42D#wr8cn6p(HW!5KAk>HI`N! zNfK`<#ECrxTOX3d9$(4zn_gDTbJ}CzL6T^=KVdeg5!)0<5-s4$n$%AJSl_{h!w%2@ R6^Q@<002ovPDHLkV1goft$F|e diff --git a/app/javascript/images/mailer/icon_done.png b/app/javascript/images/mailer/icon_done.png index f7f95a0e8d30ca14b25ad3e83416cce39bfae1fe..bc669b7b63761470e1e046f15b7ce82c22cea1ed 100644 GIT binary patch literal 477 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvG8AvYpRA>UE3<7*YT!Hj|Qh>EDivduNKuM5a zFaww9#g6~=dWR%lUn>)7D9^aN_6`FBqmQSHV@L(#+iQXWu7v__AOEX(?kzgI*5>+k zHP3fbyr)&4+j;)Umph-|oZD_4SlqwI^7vD8`8Vr6pFINsZ^|~t-qGK-yDEi||0@f# z7AMOB2`2_1Qa~kNNwQs8-Qd%}z{teHA)w#@W-MqpT`uwA+oyv}cCWixLsT0XLWDRR zgd`k<1dzyYEHPKFeXRa_v6R8@wfx@@p>Iqs=Aj#z3fU(yFt9N)lrS+!urOTUWJnNT za8PGxaAaVZOF-gKUc;M!=;Qyq7=RkX8N@u8SUjAV0-TrxoR~P!NG2u@CT0$-q!UvI g-}2Nn2&n$Tt@Ks=7Jp1H&~^p}Pgg&ebxsLQ06Uwk!2kdN literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOvO%~Asif`Z`?qFoCO|{#S9EW zB_ParFHODzC@5Lt8c`CQpH@mmtT}V`<;yxP*IJii(`mK z=i7@5xf&bEf?)M|fhN_#NqW6WgqL%lk#{++Fwjw0ObXqc=azH$K1lTKL0Lf6l%69(DW? zBhWBxz;oL=>#gs;?FxUjZ%y>vjmclnpFecEbo+t^MyTXkpE9wmLn^oAa?iHS~=KE{D+`kX+?|ygK zhhOQ&(yQ(Dk9R#civ19CH%*tVAT7a6FaPbs`|IAlK9I9!jrD@14C^?~TwA-==FjXa zwURT|E-j7TE^t7w@u$VkR)%$4JztXpCLL$`{4t4}agXSXe*Gwp2a^xftjSSqSijl8 z{pw!%W6vhUpI^7f7%oKQliMNgnwmi8i(mVfhE@*$)m!e$G!&qb8|Gr`3olhs;`XeOmm3JPTc-w)2$zW16 zST#`KEx$}?Z!r=nQ) z#{lGtHcZTU!e`%b(q02ai0gnyUdFy1uL`US(ZCGyIV z2Y~MGjbW5H>9&rcCq+3NWVH1UhG}UFfxPR|3na5&ubX?&eM0T4cmIEWoB8Q~_Uv8R zv!!?511tQ6&~t-fT51s3ggW(`_OF$Y?F6|cq4I@2rcHks!dm{pJi?^_viuptj}7l` z%zuAap+V7!L7SP0fw6(XfkC;EA&ixU0nBq_VqC+=!2ssGaTk=x_1Pf`(QO?y0P zovEkU%4)64tmm)g-rA~h(y#P=iq(U^yJB}wQ?=ak?yry7p6GH9a~Avkob%4494Ic` zUFtk3oFjEuCHFJoQP#uISg(SbjwYl@}N9zhc>V-_UO7yJ@?ozuNbq wY{8meKO-w%K2LwVWY^kVuFTl7Hc;#bXRkn*)Vuljj)N3kdg00002b3#c}2nbc| zMg#x=010qNS#tmY5_A9n5_AFHW*>L}000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S* zE^l&Yo9;Xs00033NklG z*~$Q2H_>qhI8*i7$4bU0Z&eL5!1+(XQ{Psa-@SClun73>U;tppu}P^pacl>`L3sy> z_Z|S)^W~5I)e`{s9r;-fShNTRUiq=8#@@LLg%L{us?Qz)c$kJ-ysrglY-9jn-#&nW zk#XTy4scNtSvvF5Ox6O@P;;Tx2B^-RFMX>7Sfv~wYyjH>dK&?{`IR=SZJ*{=8rXJN hYpD)@E!9Tb=?e@?K{NciD?k7M002ovPDHLkV1mr)n-%~7 diff --git a/app/javascript/images/mailer/icon_file_download.png b/app/javascript/images/mailer/icon_file_download.png index 3f7ac429b86840a8ec14e97197aa51cf7f584b84..26ffddbdd02c304fcdd21d6ca1b7c455c31dee98 100644 GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvG8AvYpRA>UE_yc@GT!Hj|B+&14F9RsVS`y?J z%<#XwzJcTXj2@uCS5FtmkP61P=L2Ul0*!fK&CEr<2n-}+D>D6O2V z{P)-b$7VKODU*x~2*$yhqTtQl?9I2?xMwmPP-eKm!C=G0&k4UOvO%~Asif`Z`?qFoCO|{#S9EW zB_ParFHODzC@5Lt8c`CQpH@mmtT}V`<;yxP*H-Xi(`n# z@#F*vR*Qr6CI(ptP8dG0|Ng)EKWAg||DPI$O#924+yt)mUFUeT<*`Xq#oLHp1z+nn z!6n)5hD|na3zSb>=QC^SS9;4Fz}NOqovr241%~ebt2-LR7MF@mWn}o7vEkjEoxBTy Pb}@Lm`njxgN@xNA!S+pr diff --git a/app/javascript/images/mailer/icon_flag.png b/app/javascript/images/mailer/icon_flag.png new file mode 100644 index 0000000000000000000000000000000000000000..7e078fede78825aa84e711798f2647320414b12a GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvG8AvYpRA>UE6a#!hT!Hj|yx_dz>z_bH+$BMN z!3_T;eHu1Duiqr`Y@b`ZDo}W>r;B4q1>@VZ?v6(p7#s}0S#3N&H9$szk#i~opM#U? z0};kIAAe{YPS9mwXy~6)doX}KS@zDggR!zcr3G>9;-v+V?BS&avFz#2vOT2*@$CJj z23HSOO4cOoWo~p(5a3{8LZPDbXT5%~gs<<_gAIITuOIB-+cxj@gOz-8uO2MpduC;^ vviYyojn&O}tt{3x_j4lY-SCQ$fkA(NW`>OWe}ykVhckG(`njxgN@xNA0quI= literal 0 HcmV?d00001 diff --git a/app/javascript/images/mailer/icon_grade.png b/app/javascript/images/mailer/icon_grade.png index 8c212b7eef634924d34a59dbcc9baa4aa7e10671..94615fc4a7f6454057af71ef9091df4b9840dffe 100644 GIT binary patch literal 1959 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 literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOvO%~Asif`Z`?qFoCO|{#S9EW zB_ParFHODzC@5Lt8c`CQpH@mmtT}V`<;yx0|O(Ir;B5V z$MLIIeEpal1==3^C3IHt*0*sVu-wtz+%9lOyVEeig7G4=#=DaD_a4NRecmCU=92Ej z-?Ab;-)d@2{_<73v|8?-+<4`H!>bj$ejW%&TY0AUZ`QZzt)*$(cG!kHNHld$7I2!d zgZcW$o#``HJe@eJI)(2sL+p<#+kVr7nKBQ!Hp^cukIB1yCA_DcH{kj;P0Rd>3m3!m zH@~kGTD;QD@PW^oOGyWGr!3oGW1z*>lbCBbRqV4qlgZbws?tm*XAjnh2C^1R+`e|Z zL_3fu0@pZ&1@Z}X~#i`x!g>6Lr_=;^9NsnmL%NDajm*=v0l fhVHsl=Q)3>u)pWgx+4#OLB`gTe~DWM4fn24Or diff --git a/app/javascript/images/mailer/icon_person_add.png b/app/javascript/images/mailer/icon_person_add.png index 6290a42aeda69ede03b74adde3a29019df2e1748..9fe966391e543597343a4be8e5a4b2cf00c6d5d5 100644 GIT binary patch literal 1440 zcmah}dr*=I5dYvSaX67)R;MGKPFY$RX6mWn`+@l)9*L%?XD=yhEV)zh-H z!c#0hB*6z{HY(;6rgWx(CRvi9CR#Zb6{LB1e>ZnKv-{iq&FpV>c6RnGF(w>^v_%2{ zfQlf5kjyAwa7znwBn=%z0KnpX5g~yT7Hq2hgqZ_46?4!k2)>a1z*0WHhlR;J3M#+0 zdCM|h$TG^?r5P_QAIb1rnq(RGCpEOg{tYjwdHURMrK0B(FQGSQU zQQ1^)5F|0GP1Uv{zbed{(MMLS8)YI-fnDPeN=lF3DMmGj;F#JRD0)SYlbVd*q^t*6 zjkdMOl9)ggxd7Sl8K4NnHEE5!e0`-$hls)%heCHNf(%30jh@L*aM?IH5SfT?gE_dl# z@Lq%-l%YwYLrll_879n#Ey+S5BiTTkW0F7Gj2j69^=4Ya&3d;$Gx?J&+6>qf)$DpY z8^Cak>kE&=5hz_XB=l_L8L4GT)AvQSp$7M?>A4;jeBpq2*CmL@ErQjSKb1%?)%e*&SwMoi1061v|Jpv4Xr)IN!1N&1>9_)fTVaV zuF@A3tzYY^Sv_q(GildriI#%`;!lrxM&Sdn^O_@j?S~b{%caX*Ue8?6eEa#v7?NpYT+jU$5{z7)c(%?^F)uLV;D}!-bHQv+}T8R2$GO^w(S@H zvs2|2E{-;sfOHs-w77n}(G0C54V` zJp#U5LJgl#LG9*2ebB$yakvnM0X}S?Gvm;xr5}NM1WQ_0(Z6tNOliVJ@pwo77;LxQ zG|iCiL7WTP9Op~D(R_i#WZX`uW!G8=V_;Qvz2Z!nCIF7&(Q z1J&uddNHF&bITga_j!^OQG^&_x?bUc=lqVq#kA~VQjV(O%krP?zMB1%M;A#6^=45d)b9vcY>z;&?6)aM{E$ z-Sbhj40;>f4Q#57Q40gMkb>2RM3A*GT~AFNMF=Qs$nzZu2Tq%sh1T7k+SkJKnv+s# zFhh`&MU$CtB2DFe?#bW69r~i)Rx6f7UxlPWHY%b)BI$#>sJ^IEHRblCVX95)x^KAN zXj;EAZp(!cY(;`$$ErF}v*3(SBawkP>SjgP!)1mNNk8~%YS^@A;%ZKK<8|0DwY2UC zGa}EctcT-Aqg!3N<({(Siq~9KrbX`Z?kYR|5z?M@6qtL*W zLYG}{VRARp9xfhe3K35IiAeFf8;bzVFVO1L>>X~M;&O00ywEAY7S4D0uaM~QgRl87 Yg}vlA3U>9-yBDg6(3p_gpp^W706SofOaK4? literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOvO%~Asif`Z`?qFoCO|{#S9EW zB_ParFHODzC@5Lt8c`CQpH@mmtT}V`<;yxP|L8XI4rH1xad(KasfQi!-+|Jo&KvtI1oB!%lqlN%0pWO`K0W^nd3V)x4`! z=HHQd%fGI42MW9~y)~%{BoMbGbfq^)fN_@XlMm|OjAMNkw*$rZEt37)HSzHLyMIkW zLDKA2C-i4q{keJ9Tet-zz2K@dUwzT@fcp~;&%fbpQU+3^JWCs7gzQ?;q92oQ&)?;; zx`44vW$N>sS8_$1Lc3@EY7w&MdRaC7z-$Hc=?7FNct3bNVco~0H)bpBE?()a@=WN( z43BfF7nV(&;k`gU^P_2~3#jdj($_AKHu0&?9$(mEqI~xI z`e{p_W{TcwDO>9N(qvap-V*nhwySpeXQqTq_P)R+U!O14|7^+C%yg@ndCU7(aQXFS z6>;8rSS;;Xd|9o;=C1SoK+n2GD;HPQsJ~cneyg>wm-Ge8FCwL7<$=>zh~+o=ec9RX zDt&3{7t2z&({5XLu+06!Q+44^iGi*2+@s0&m_(~(w4T_gE#3RV^;L$qTWN)`NSRt} zW|>u^-NL>P4lAt89S^2oo_%e>@jrr{X~mpcMQ)cbS$?tI+FtE+wL)gq4a;6n_3f9x zOFrxUw39{DcJ;;=Q_S`W=5>L1_Ukvk2>CTJ>h^h)!YOCVn^e-xRPXw&efvUVw)ccL zcf^)okNTI+RGY5w@6k`*CEC#+>e;H=PgTow)qno8>q6g`#r3{=Cxu*c zZ4S52`uO{dcq>qj>uPD+;|s}GBI3n<*fQof1vuX~-q9zOy;P&yTY&c?PxU3&D-z*u zkugmfI`Mt{%iC(an-|IK6Ltx%=-VCa9M)4*0c2P9-TvXbkxSRnr2Y90^Q%u~UkRla za4yXC@&&TR_bgue=hcPCFZJf`APL^O`47T=ZGWHP;Ndwf zLBrPl|F#H^lXYb;YJZ(>R8);_y7@Bt*V$Y})tDyV7v}N7=O+m19o+e4wxpBSujDKK ym!~PJ#x|Y&vr{28zUilu?Nt9sDxL(;7wtojCtm*ZASet}2zk2txvXk4UOvO%~Asif`Z`?qFoCO|{#S9EW zB_ParFHODzC@5Lt8c`CQpH@mmtT}V`<;yxP|-e57sn8f z<8PN~l^4{dMgco*K=;@-}g{qE(@d6O1SEtD+s z%KLRJanYd;0gjf!WoIXLEZY$9!NOo_m=tf=t9?15^~d-t84mBLyXX1x{%xR77(8A5 KT-G@yGywq2bas;f diff --git a/app/javascript/images/mailer/icon_warning.png b/app/javascript/images/mailer/icon_warning.png deleted file mode 100644 index 7baaac61cb82648d9acc63fdbdd4a8aaa7249e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pI!hgaBK>#JO#9RmX+gQtsQNW|f{)BUp!If%6HkJr-c zy5Jfc!nIWH=-i5qc?Z^}e^A=nZarN$cFH?$R!5u0ZRdT(l+K;*dBWfNQ(;2N40-v= z$(5WbM&bs>v6lSC-m{d|bJ)%_#<}=0?(vRV;#K|7|G<^WHpv-j{FBTynOcp%vHwv^ zxy$%?mC#a-C7*cK=$`QkTFeysCfNG|SEK@WO5-`!B&lA;_ygtz!Y5{!XcjO`n-n+K z_MgCn)k|5J^5*`#&u*t&#CF}Tal_1(nQt4#6P}d#Gw!~{>cz=ycWUvc?w5O%xBU_; zx!d>uzFoka9`RU?oW|{wKc`)5-JJBk@%X1t?w8h`m7lz#dZv{H(@EcWnJw$0B7wof N;OXk;vd$@?2>|`!jAQ@+ diff --git a/app/javascript/images/mailer/logo.png b/app/javascript/images/mailer/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..784be9539f3474c23364de385bbab7b56d8ede28 GIT binary patch literal 1150 zcmV-^1cCdBP)NI^#;DCt0jPC0Y& z8{DQ9Z{T6vg_jH*?7zZGxC;;C4Yb2;ZqzC0RJh5#SPc^fn4gZl@g-F9Ircz`;KFrH zJcLBkiFB26hU0rAlFzZM#y`YFTnJIl#(0gHE4kQ94_5gCi+O!r!QVR!{bk<-=Vjx4 z=;i^H;U_>hKOx=a_0~1$o=aWM%f_$J$!{1T8+<=>vyp)d(rNex#Q74F4b0pMx>+b2 z`W1BYHe!ZuX*LIOHZU|Vj`yIGeAz)$H`{C6>=t1GqJpOdCkTE&iUlab48^azJ9JVj z8kPm!q)Ilh5znD}KE_rWdqNaD;WKp4lc<*b-5ls-G10Jk=;Tw$#uedr43q;D3pxq| zKQG*aoJ{dUtFWL{(Z-Ao3v%Ymp1X8-Tu=+15oqjR`9a~}*)FTBWyk2&> zG2G@}o0o7;F|b~v1>Qa+vz3lf(!44dE+3`IUic`}^kMq_il059?mcEyBbydb zFqKzv6e?`HRapuL;7YuJA0WyvcojF}P^^l%LHl8EBQXzY-ONtHZ<#QE0K!epzU>fq Q{Qv*}07*qoM6N<$f(0BJF8}}l literal 0 HcmV?d00001 diff --git a/app/javascript/images/mailer/logo_full.png b/app/javascript/images/mailer/logo_full.png deleted file mode 100644 index 82d981fc66452b7ae7cc0c3b8f5408bbae4ef4ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2371 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 diff --git a/app/javascript/images/mailer/logo_transparent.png b/app/javascript/images/mailer/logo_transparent.png deleted file mode 100644 index 6dbcc2e8df3953e009a2365cabf0664561240d13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmVMzCV_|S* zE^l&Yo9;Xs0004bNklnMqfSWO;wS2KZ9<)T?JDkMjx<{K$;X8$n z?H}b}c`R_=QGKqsZ6-@c;k- diff --git a/app/javascript/images/mailer/wordmark.png b/app/javascript/images/mailer/wordmark.png new file mode 100644 index 0000000000000000000000000000000000000000..6772b3318dc35c3ac8d615d4f9fcca6d7cb03900 GIT binary patch literal 6753 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

    !o?EnZ2{Z#AqigB4H^j?blPKlvR<7eRUrqgCe8 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 diff --git a/app/javascript/images/preview.png b/app/javascript/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..3d3a17b23c5591efa47396babc27f56fca979145 GIT binary patch literal 340408 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 =z(8pyc@-$=L!4+&URNERG|CkOL(M)~ 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

      J^ZfYxbAjX%}K;rPLQTUW1JrdzJ7S~&BSQ5F44 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�@L*XTz(OTIG8kZmqkR6XKMg*RW&?0q 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%0D*o*JH{*sJ$kH7TZiI?5ujaOt@kk7sT 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 W6fZ~Fq3Q|2ya0&v#$}S@= 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 S`TmyzL`FhEyjs*S=>GvLj@fen diff --git a/app/javascript/images/reticle.png b/app/javascript/images/reticle.png index 41a5d1c3a8120f60262f6857352292a1049fcc84..a724ac0bcdf53577a4f50e46f5317d196993c5c5 100644 GIT binary patch literal 1439 zcmeAS@N?(olHy`uVBq!ia0vp^DImLc*Dc-h_F-qbhq1aef135gN4F=3NIVs~-l2IzL}A+d#V$;W zk~5?@t9wQ5H>zxKVC@S!zE=2z|BH+Y^GmYKM+6QpS+tLvD_BP3wFSrJb(3z@ZhE8I zBi25p+{S7`{T;noyWQOPTrha{^OufmS=*Y*fK#X6%{1IBSTpzU&m2Y(1_ov;PZ!6K z3dSS_)*dFeMWRdtt zE4%mKcbrt?k!Zx-lwe|9KkNVJ)i*Ubnr==xo*tiD)_(cvw+Gh!x1WBwmAmTtV`Fh^ zFRzJ_nVpNzylLlZOwf?&RN9@PBExlTL4b|ozd0=;C+8n^k>Of$>S&jjM`)ztwB-un zQ`hZcE4p&!)hh+>+UD(oMW(N$Un$0}S-F$-(^ix1#}q=NtJ$Z#%*byxnfpsm5*2&YLVn0N4B#4yLRp4#QOs5 z^@Yvy@-x~U5;K_Je=3>1V8hDOhiB``W{BMWkXFrZQud}|>T-S7-k|rlKN`JlI`vLY zB4nYH95&K0@xhsCO|CXAcqf*@Cft`6hetxjRz>lx?9cSYD* zu*_YY9Om!m`20&tXueR%r1UjXIt!8wH&n&(TYVK@Bc*uy0K*dlty_~D?O3Z9owfXU z%u&7W*sGJOFJk6xs48H!YCkSzxBJEXLtowt>)z`zmD=}Mv8VCW3sKF(koK3oqAEvI zKZGj(Yg{k3>R|X=rrPK03hS(L`7g28)%>zr@;Hmle!Je1sgG`m|4UVC{o0DPCUW`}|m>)%44ASIzmzcj=C{pHF?}{`QcK z?5;Q0zyD^arhW9<&SEy^c@VB5wI=g|{qzjMF(~)ZQ-*7WhBY!FiF3-?E6se9eA~Bhva@lA0Op z=X={Khfeo5ylGZ3Ww}Xzh4vYJSte(5T0RfkEX)PfbKy(G_5}X7F_Nb6Mw< G&;$T^-EgD; literal 2199 zcmbVOYg7|w8V*&fB8W(ot2joA*d_NH6Nwr~Vj>p-qvDDlCz$~v4^~MLK&*hmkRSwt zbJrok#^a3JB`W4~3D^w@ zmctxS8p>osvQQ$6Ndt)tsRxA!GFUJXWu&3MWqTD z9yE~d#TI(e*?a+m;vt;nij`UvQp%87+j7kI443|wT#mN}fl!r3qEbc9c0oY63RP*t zRcgT7`+d~`H$O-wSDJ)tO@;apHy_c+V-Q%VQ7M4;ndZnp;ROX@daxkGgNR@e6B!5; zN`zo3oycH;3?>7VvZP=rVTKR?zZoQBPLWOR@;~h}E5drxwEZ{?*x}Mz0jnCZ@))!YW{JOTixX`06>k@EmepE+#x_Eiq?RAn)_<*}y(l>ER;5yNf?h}&H zGB>rj+$V46XT1*{Y)6VLlUVwHU1L6@w7EycbbMp;NK>5PptY)X&yc1pkfHW(w%f}1 z_gB?@)|WY$hd-SU?D{?j8qc9y(7X?Sy`U4aZHnbj*VC><6^xImwYkW8>mS& zN5khGgNcVkovxyhZec}F#ihx+fk7|K@$)7P(tqyHIPz4xyDT9lC!Ta~e&>xdj~^72 z6E&IH`i+EIyd+fD+}_Aj9xrb_dwzrKZFQHOXwiccwkL3`TQN@tw<-Ja#zhyUrPOVX z^>t>$^X7x?*E@h3G$0LJnALE${(Rz#qKVSEKz?`wZ^x4ewtH%i`#y2fz86Dq>j3trtn zT)mqma($oUzbs@mQusP zEaTtgQjWmrT>q_6(7Ds8z!^5!i+MMEf8p(44XhO<2)Ip-LYH~d$D_GTUtJWLYm%n) z8NS{&x3`~4N!Mpwph%k<^ z#rf#feFe9kO&l%+$hT4)Pb6P4*FR%l3!V0=*hl*9C*lv}yOBAGn~Q`mDV^3~gUg(@ zmKOHsygD8N8Qhj}{nnTTh7W)XcdaZ-?hbxjziwSgpWboX%k0V&*1c8h8MMydv!)_{ zw6H9@$(6}QPhL(px?i}f7@qfaZeU4nOJQ4Pwo%U+voE=DYES!53MKcezM|G>yAg`n z>ALF0bK{T{$eVfe$%>81D+s^; zG9nqYIk)ww^YE8Nc}Y&D`GN5Yw-MSm4jU=(YFYe*uMpfu8^X diff --git a/app/javascript/images/screen_federation.svg b/app/javascript/images/screen_federation.svg deleted file mode 100644 index 7019a7356a6539..00000000000000 --- a/app/javascript/images/screen_federation.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/javascript/images/screen_hello.svg b/app/javascript/images/screen_hello.svg deleted file mode 100644 index 7bcdd0afd573f6..00000000000000 --- a/app/javascript/images/screen_hello.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/javascript/images/screen_interactions.svg b/app/javascript/images/screen_interactions.svg deleted file mode 100644 index 66a36f97804aad..00000000000000 --- a/app/javascript/images/screen_interactions.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/javascript/images/void.png b/app/javascript/images/void.png index d730666880b736f0dc2d16343bac0bd91b221126..c2b803c13273c87888b717b68ab8dde7cd59f1cb 100644 GIT binary patch delta 62 zcmZ3-7%)M?f`f^Hfq^L?;uVk*_jGX#sbEaDXy*F2xQTJ9+vCM6B@EADWdK}L#ix!7fqSs-p diff --git a/app/javascript/mastodon/actions/accounts.js b/app/javascript/mastodon/actions/accounts.js index eedf61dc99e48c..f61f06e408f7f5 100644 --- a/app/javascript/mastodon/actions/accounts.js +++ b/app/javascript/mastodon/actions/accounts.js @@ -536,10 +536,12 @@ export function expandFollowingFail(id, error) { export function fetchRelationships(accountIds) { return (dispatch, getState) => { - const loadedRelationships = getState().get('relationships'); + const state = getState(); + const loadedRelationships = state.get('relationships'); const newAccountIds = accountIds.filter(id => loadedRelationships.get(id, null) === null); + const signedIn = !!state.getIn(['meta', 'me']); - if (newAccountIds.length === 0) { + if (!signedIn || newAccountIds.length === 0) { return; } diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index bd4c1d0024fd93..a9b7efc4a3dd9e 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -1,18 +1,20 @@ -import api from '../api'; -import { CancelToken, isCancel } from 'axios'; +import axios from 'axios'; import { throttle } from 'lodash'; -import { search as emojiSearch } from '../features/emoji/emoji_mart_search_light'; -import { tagHistory } from '../settings'; +import { defineMessages } from 'react-intl'; +import api from 'mastodon/api'; +import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light'; +import { tagHistory } from 'mastodon/settings'; +import resizeImage from 'mastodon/utils/resize_image'; +import { showAlert, showAlertForError } from './alerts'; import { useEmoji } from './emojis'; -import resizeImage from '../utils/resize_image'; -import { importFetchedAccounts } from './importer'; -import { updateTimeline } from './timelines'; -import { showAlertForError } from './alerts'; -import { showAlert } from './alerts'; +import { importFetchedAccounts, importFetchedStatus } from './importer'; import { openModal } from './modal'; -import { defineMessages } from 'react-intl'; +import { updateTimeline } from './timelines'; -let cancelFetchComposeSuggestionsAccounts, cancelFetchComposeSuggestionsTags; +/** @type {AbortController | undefined} */ +let fetchComposeSuggestionsAccountsController; +/** @type {AbortController | undefined} */ +let fetchComposeSuggestionsTagsController; export const COMPOSE_CHANGE = 'COMPOSE_CHANGE'; export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST'; @@ -23,11 +25,13 @@ export const COMPOSE_REPLY_CANCEL = 'COMPOSE_REPLY_CANCEL'; export const COMPOSE_DIRECT = 'COMPOSE_DIRECT'; export const COMPOSE_MENTION = 'COMPOSE_MENTION'; export const COMPOSE_RESET = 'COMPOSE_RESET'; -export const COMPOSE_UPLOAD_REQUEST = 'COMPOSE_UPLOAD_REQUEST'; -export const COMPOSE_UPLOAD_SUCCESS = 'COMPOSE_UPLOAD_SUCCESS'; -export const COMPOSE_UPLOAD_FAIL = 'COMPOSE_UPLOAD_FAIL'; -export const COMPOSE_UPLOAD_PROGRESS = 'COMPOSE_UPLOAD_PROGRESS'; -export const COMPOSE_UPLOAD_UNDO = 'COMPOSE_UPLOAD_UNDO'; + +export const COMPOSE_UPLOAD_REQUEST = 'COMPOSE_UPLOAD_REQUEST'; +export const COMPOSE_UPLOAD_SUCCESS = 'COMPOSE_UPLOAD_SUCCESS'; +export const COMPOSE_UPLOAD_FAIL = 'COMPOSE_UPLOAD_FAIL'; +export const COMPOSE_UPLOAD_PROGRESS = 'COMPOSE_UPLOAD_PROGRESS'; +export const COMPOSE_UPLOAD_PROCESSING = 'COMPOSE_UPLOAD_PROCESSING'; +export const COMPOSE_UPLOAD_UNDO = 'COMPOSE_UPLOAD_UNDO'; export const THUMBNAIL_UPLOAD_REQUEST = 'THUMBNAIL_UPLOAD_REQUEST'; export const THUMBNAIL_UPLOAD_SUCCESS = 'THUMBNAIL_UPLOAD_SUCCESS'; @@ -77,10 +81,8 @@ const messages = defineMessages({ uploadErrorPoll: { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' }, }); -const COMPOSE_PANEL_BREAKPOINT = 600 + (285 * 1) + (10 * 1); - export const ensureComposeIsVisible = (getState, routerHistory) => { - if (!getState().getIn(['compose', 'mounted']) && window.innerWidth < COMPOSE_PANEL_BREAKPOINT) { + if (!getState().getIn(['compose', 'mounted'])) { routerHistory.push('/publish'); } }; @@ -192,6 +194,10 @@ export function submitCompose(routerHistory) { } }; + if (statusId) { + dispatch(importFetchedStatus({ ...response.data })); + } + if (statusId === null && response.data.visibility !== 'direct') { insertIfOnline('home'); } @@ -268,13 +274,16 @@ export function uploadCompose(files) { if (status === 200) { dispatch(uploadComposeSuccess(data, f)); } else if (status === 202) { + dispatch(uploadComposeProcessing()); + let tryCount = 1; + const poll = () => { api(getState).get(`/api/v1/media/${data.id}`).then(response => { if (response.status === 200) { dispatch(uploadComposeSuccess(response.data, f)); } else if (response.status === 206) { - let retryAfter = (Math.log2(tryCount) || 1) * 1000; + const retryAfter = (Math.log2(tryCount) || 1) * 1000; tryCount += 1; setTimeout(() => poll(), retryAfter); } @@ -289,6 +298,10 @@ export function uploadCompose(files) { }; }; +export const uploadComposeProcessing = () => ({ + type: COMPOSE_UPLOAD_PROCESSING, +}); + export const uploadThumbnail = (id, file) => (dispatch, getState) => { dispatch(uploadThumbnailRequest()); @@ -433,8 +446,8 @@ export function undoUploadCompose(media_id) { }; export function clearComposeSuggestions() { - if (cancelFetchComposeSuggestionsAccounts) { - cancelFetchComposeSuggestionsAccounts(); + if (fetchComposeSuggestionsAccountsController) { + fetchComposeSuggestionsAccountsController.abort(); } return { type: COMPOSE_SUGGESTIONS_CLEAR, @@ -442,14 +455,14 @@ export function clearComposeSuggestions() { }; const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => { - if (cancelFetchComposeSuggestionsAccounts) { - cancelFetchComposeSuggestionsAccounts(); + if (fetchComposeSuggestionsAccountsController) { + fetchComposeSuggestionsAccountsController.abort(); } + fetchComposeSuggestionsAccountsController = new AbortController(); + api(getState).get('/api/v1/accounts/search', { - cancelToken: new CancelToken(cancel => { - cancelFetchComposeSuggestionsAccounts = cancel; - }), + signal: fetchComposeSuggestionsAccountsController.signal, params: { q: token.slice(1), @@ -460,9 +473,11 @@ const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => dispatch(importFetchedAccounts(response.data)); dispatch(readyComposeSuggestionsAccounts(token, response.data)); }).catch(error => { - if (!isCancel(error)) { + if (!axios.isCancel(error)) { dispatch(showAlertForError(error)); } + }).finally(() => { + fetchComposeSuggestionsAccountsController = undefined; }); }, 200, { leading: true, trailing: true }); @@ -472,16 +487,16 @@ const fetchComposeSuggestionsEmojis = (dispatch, getState, token) => { }; const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => { - if (cancelFetchComposeSuggestionsTags) { - cancelFetchComposeSuggestionsTags(); + if (fetchComposeSuggestionsTagsController) { + fetchComposeSuggestionsTagsController.abort(); } dispatch(updateSuggestionTags(token)); + fetchComposeSuggestionsTagsController = new AbortController(); + api(getState).get('/api/v2/search', { - cancelToken: new CancelToken(cancel => { - cancelFetchComposeSuggestionsTags = cancel; - }), + signal: fetchComposeSuggestionsTagsController.signal, params: { type: 'hashtags', @@ -493,9 +508,11 @@ const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => { }).then(({ data }) => { dispatch(readyComposeSuggestionsTags(token, data.hashtags)); }).catch(error => { - if (!isCancel(error)) { + if (!axios.isCancel(error)) { dispatch(showAlertForError(error)); } + }).finally(() => { + fetchComposeSuggestionsTagsController = undefined; }); }, 200, { leading: true, trailing: true }); @@ -606,7 +623,20 @@ function insertIntoTagHistory(recognizedTags, text) { const state = getState(); const oldHistory = state.getIn(['compose', 'tagHistory']); const me = state.getIn(['meta', 'me']); - const names = recognizedTags.map(tag => text.match(new RegExp(`#${tag.name}`, 'i'))[0].slice(1)); + + // FIXME: Matching input hashtags with recognized hashtags has become more + // complicated because of new normalization rules, it's no longer just + // a case sensitivity issue + const names = recognizedTags.map(tag => { + const matches = text.match(new RegExp(`#${tag.name}`, 'i')); + + if (matches && matches.length > 0) { + return matches[0].slice(1); + } else { + return tag.name; + } + }); + const intersectedOldHistory = oldHistory.filter(name => names.findIndex(newName => newName.toLowerCase() === name.toLowerCase()) === -1); names.push(...intersectedOldHistory.toJS()); diff --git a/app/javascript/mastodon/actions/featured_tags.js b/app/javascript/mastodon/actions/featured_tags.js new file mode 100644 index 00000000000000..18bb615394571c --- /dev/null +++ b/app/javascript/mastodon/actions/featured_tags.js @@ -0,0 +1,34 @@ +import api from '../api'; + +export const FEATURED_TAGS_FETCH_REQUEST = 'FEATURED_TAGS_FETCH_REQUEST'; +export const FEATURED_TAGS_FETCH_SUCCESS = 'FEATURED_TAGS_FETCH_SUCCESS'; +export const FEATURED_TAGS_FETCH_FAIL = 'FEATURED_TAGS_FETCH_FAIL'; + +export const fetchFeaturedTags = (id) => (dispatch, getState) => { + if (getState().getIn(['user_lists', 'featured_tags', id, 'items'])) { + return; + } + + dispatch(fetchFeaturedTagsRequest(id)); + + api(getState).get(`/api/v1/accounts/${id}/featured_tags`) + .then(({ data }) => dispatch(fetchFeaturedTagsSuccess(id, data))) + .catch(err => dispatch(fetchFeaturedTagsFail(id, err))); +}; + +export const fetchFeaturedTagsRequest = (id) => ({ + type: FEATURED_TAGS_FETCH_REQUEST, + id, +}); + +export const fetchFeaturedTagsSuccess = (id, tags) => ({ + type: FEATURED_TAGS_FETCH_SUCCESS, + id, + tags, +}); + +export const fetchFeaturedTagsFail = (id, error) => ({ + type: FEATURED_TAGS_FETCH_FAIL, + id, + error, +}); diff --git a/app/javascript/mastodon/actions/filters.js b/app/javascript/mastodon/actions/filters.js index 7fa1c9a70d15a8..e9c609fc87c9be 100644 --- a/app/javascript/mastodon/actions/filters.js +++ b/app/javascript/mastodon/actions/filters.js @@ -1,9 +1,24 @@ import api from '../api'; +import { openModal } from './modal'; export const FILTERS_FETCH_REQUEST = 'FILTERS_FETCH_REQUEST'; export const FILTERS_FETCH_SUCCESS = 'FILTERS_FETCH_SUCCESS'; export const FILTERS_FETCH_FAIL = 'FILTERS_FETCH_FAIL'; +export const FILTERS_STATUS_CREATE_REQUEST = 'FILTERS_STATUS_CREATE_REQUEST'; +export const FILTERS_STATUS_CREATE_SUCCESS = 'FILTERS_STATUS_CREATE_SUCCESS'; +export const FILTERS_STATUS_CREATE_FAIL = 'FILTERS_STATUS_CREATE_FAIL'; + +export const FILTERS_CREATE_REQUEST = 'FILTERS_CREATE_REQUEST'; +export const FILTERS_CREATE_SUCCESS = 'FILTERS_CREATE_SUCCESS'; +export const FILTERS_CREATE_FAIL = 'FILTERS_CREATE_FAIL'; + +export const initAddFilter = (status, { contextType }) => dispatch => + dispatch(openModal('FILTER', { + statusId: status?.get('id'), + contextType: contextType, + })); + export const fetchFilters = () => (dispatch, getState) => { dispatch({ type: FILTERS_FETCH_REQUEST, @@ -11,7 +26,7 @@ export const fetchFilters = () => (dispatch, getState) => { }); api(getState) - .get('/api/v1/filters') + .get('/api/v2/filters') .then(({ data }) => dispatch({ type: FILTERS_FETCH_SUCCESS, filters: data, @@ -24,3 +39,55 @@ export const fetchFilters = () => (dispatch, getState) => { skipAlert: true, })); }; + +export const createFilterStatus = (params, onSuccess, onFail) => (dispatch, getState) => { + dispatch(createFilterStatusRequest()); + + api(getState).post(`/api/v2/filters/${params.filter_id}/statuses`, params).then(response => { + dispatch(createFilterStatusSuccess(response.data)); + if (onSuccess) onSuccess(); + }).catch(error => { + dispatch(createFilterStatusFail(error)); + if (onFail) onFail(); + }); +}; + +export const createFilterStatusRequest = () => ({ + type: FILTERS_STATUS_CREATE_REQUEST, +}); + +export const createFilterStatusSuccess = filter_status => ({ + type: FILTERS_STATUS_CREATE_SUCCESS, + filter_status, +}); + +export const createFilterStatusFail = error => ({ + type: FILTERS_STATUS_CREATE_FAIL, + error, +}); + +export const createFilter = (params, onSuccess, onFail) => (dispatch, getState) => { + dispatch(createFilterRequest()); + + api(getState).post('/api/v2/filters', params).then(response => { + dispatch(createFilterSuccess(response.data)); + if (onSuccess) onSuccess(response.data); + }).catch(error => { + dispatch(createFilterFail(error)); + if (onFail) onFail(); + }); +}; + +export const createFilterRequest = () => ({ + type: FILTERS_CREATE_REQUEST, +}); + +export const createFilterSuccess = filter => ({ + type: FILTERS_CREATE_SUCCESS, + filter, +}); + +export const createFilterFail = error => ({ + type: FILTERS_CREATE_FAIL, + error, +}); diff --git a/app/javascript/mastodon/actions/importer/index.js b/app/javascript/mastodon/actions/importer/index.js index f4372fb31d0783..9c69be601edc8a 100644 --- a/app/javascript/mastodon/actions/importer/index.js +++ b/app/javascript/mastodon/actions/importer/index.js @@ -5,6 +5,7 @@ export const ACCOUNTS_IMPORT = 'ACCOUNTS_IMPORT'; export const STATUS_IMPORT = 'STATUS_IMPORT'; export const STATUSES_IMPORT = 'STATUSES_IMPORT'; export const POLLS_IMPORT = 'POLLS_IMPORT'; +export const FILTERS_IMPORT = 'FILTERS_IMPORT'; function pushUnique(array, object) { if (array.every(element => element.id !== object.id)) { @@ -28,6 +29,10 @@ export function importStatuses(statuses) { return { type: STATUSES_IMPORT, statuses }; } +export function importFilters(filters) { + return { type: FILTERS_IMPORT, filters }; +} + export function importPolls(polls) { return { type: POLLS_IMPORT, polls }; } @@ -61,11 +66,16 @@ export function importFetchedStatuses(statuses) { const accounts = []; const normalStatuses = []; const polls = []; + const filters = []; function processStatus(status) { pushUnique(normalStatuses, normalizeStatus(status, getState().getIn(['statuses', status.id]))); pushUnique(accounts, status.account); + if (status.filtered) { + status.filtered.forEach(result => pushUnique(filters, result.filter)); + } + if (status.reblog && status.reblog.id) { processStatus(status.reblog); } @@ -80,6 +90,7 @@ export function importFetchedStatuses(statuses) { dispatch(importPolls(polls)); dispatch(importFetchedAccounts(accounts)); dispatch(importStatuses(normalStatuses)); + dispatch(importFilters(filters)); }; } diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js index ca76e3494d15a9..8a22f83fa4314c 100644 --- a/app/javascript/mastodon/actions/importer/normalizer.js +++ b/app/javascript/mastodon/actions/importer/normalizer.js @@ -42,6 +42,14 @@ export function normalizeAccount(account) { return account; } +export function normalizeFilterResult(result) { + const normalResult = { ...result }; + + normalResult.filter = normalResult.filter.id; + + return normalResult; +} + export function normalizeStatus(status, normalOldStatus) { const normalStatus = { ...status }; normalStatus.account = status.account.id; @@ -54,6 +62,10 @@ export function normalizeStatus(status, normalOldStatus) { normalStatus.poll = status.poll.id; } + if (status.filtered) { + normalStatus.filtered = status.filtered.map(normalizeFilterResult); + } + // Only calculate these values when status first encountered and // when the underlying values change. Otherwise keep the ones // already in the reducer diff --git a/app/javascript/mastodon/actions/markers.js b/app/javascript/mastodon/actions/markers.js index 16a3df8f6381c6..b7f406cb86b85e 100644 --- a/app/javascript/mastodon/actions/markers.js +++ b/app/javascript/mastodon/actions/markers.js @@ -1,6 +1,7 @@ import api from '../api'; import { debounce } from 'lodash'; import compareId from '../compare_id'; +import { List as ImmutableList } from 'immutable'; export const MARKERS_FETCH_REQUEST = 'MARKERS_FETCH_REQUEST'; export const MARKERS_FETCH_SUCCESS = 'MARKERS_FETCH_SUCCESS'; @@ -11,7 +12,7 @@ export const synchronouslySubmitMarkers = () => (dispatch, getState) => { const accessToken = getState().getIn(['meta', 'access_token'], ''); const params = _buildParams(getState()); - if (Object.keys(params).length === 0) { + if (Object.keys(params).length === 0 || accessToken === '') { return; } @@ -63,7 +64,7 @@ export const synchronouslySubmitMarkers = () => (dispatch, getState) => { const _buildParams = (state) => { const params = {}; - const lastHomeId = state.getIn(['timelines', 'home', 'items']).find(item => item !== null); + const lastHomeId = state.getIn(['timelines', 'home', 'items'], ImmutableList()).find(item => item !== null); const lastNotificationId = state.getIn(['notifications', 'lastReadId']); if (lastHomeId && compareId(lastHomeId, state.getIn(['markers', 'home'])) > 0) { @@ -82,9 +83,10 @@ const _buildParams = (state) => { }; const debouncedSubmitMarkers = debounce((dispatch, getState) => { - const params = _buildParams(getState()); + const accessToken = getState().getIn(['meta', 'access_token'], ''); + const params = _buildParams(getState()); - if (Object.keys(params).length === 0) { + if (Object.keys(params).length === 0 || accessToken === '') { return; } diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index 96cf628d693a47..d4588db2c9462a 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -12,10 +12,8 @@ import { saveSettings } from './settings'; import { defineMessages } from 'react-intl'; import { List as ImmutableList } from 'immutable'; import { unescapeHTML } from '../utils/html'; -import { getFiltersRegex } from '../selectors'; import { usePendingItems as preferPendingItems } from 'mastodon/initial_state'; import compareId from 'mastodon/compare_id'; -import { searchTextFromRawStatus } from 'mastodon/actions/importer/normalizer'; import { requestNotificationPermission } from '../utils/notifications'; export const NOTIFICATIONS_UPDATE = 'NOTIFICATIONS_UPDATE'; @@ -62,20 +60,17 @@ export function updateNotifications(notification, intlMessages, intlLocale) { const showInColumn = activeFilter === 'all' ? getState().getIn(['settings', 'notifications', 'shows', notification.type], true) : activeFilter === notification.type; const showAlert = getState().getIn(['settings', 'notifications', 'alerts', notification.type], true); const playSound = getState().getIn(['settings', 'notifications', 'sounds', notification.type], true); - const filters = getFiltersRegex(getState(), { contextType: 'notifications' }); let filtered = false; - if (['mention', 'status'].includes(notification.type)) { - const dropRegex = filters[0]; - const regex = filters[1]; - const searchIndex = searchTextFromRawStatus(notification.status); + if (['mention', 'status'].includes(notification.type) && notification.status.filtered) { + const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications')); - if (dropRegex && dropRegex.test(searchIndex)) { + if (filters.some(result => result.filter.filter_action === 'hide')) { return; } - filtered = regex && regex.test(searchIndex); + filtered = filters.length > 0; } if (['follow_request'].includes(notification.type)) { @@ -91,6 +86,10 @@ export function updateNotifications(notification, intlMessages, intlLocale) { dispatch(importFetchedStatus(notification.status)); } + if (notification.report) { + dispatch(importFetchedAccount(notification.report.target_account)); + } + dispatch({ type: NOTIFICATIONS_UPDATE, notification, @@ -134,6 +133,7 @@ const excludeTypesFromFilter = filter => { 'status', 'update', 'admin.sign_up', + 'admin.report', ]); return allTypes.filterNot(item => item === filter).toJS(); @@ -141,15 +141,22 @@ const excludeTypesFromFilter = filter => { const noOp = () => {}; -export function expandNotifications({ maxId } = {}, done = noOp) { +let expandNotificationsController = new AbortController(); + +export function expandNotifications({ maxId, forceLoad } = {}, done = noOp) { return (dispatch, getState) => { const activeFilter = getState().getIn(['settings', 'notifications', 'quickFilter', 'active']); const notifications = getState().get('notifications'); const isLoadingMore = !!maxId; if (notifications.get('isLoading')) { - done(); - return; + if (forceLoad) { + expandNotificationsController.abort(); + expandNotificationsController = new AbortController(); + } else { + done(); + return; + } } const params = { @@ -174,11 +181,12 @@ export function expandNotifications({ maxId } = {}, done = noOp) { dispatch(expandNotificationsRequest(isLoadingMore)); - api(getState).get('/api/v1/notifications', { params }).then(response => { + api(getState).get('/api/v1/notifications', { params, signal: expandNotificationsController.signal }).then(response => { const next = getLinks(response).refs.find(link => link.rel === 'next'); dispatch(importFetchedAccounts(response.data.map(item => item.account))); dispatch(importFetchedStatuses(response.data.map(item => item.status).filter(status => !!status))); + dispatch(importFetchedAccounts(response.data.filter(item => item.report).map(item => item.report.target_account))); dispatch(expandNotificationsSuccess(response.data, next ? next.uri : null, isLoadingMore, isLoadingRecent, isLoadingRecent && preferPendingItems)); fetchRelatedRelationships(dispatch, response.data); @@ -214,7 +222,7 @@ export function expandNotificationsFail(error, isLoadingMore) { type: NOTIFICATIONS_EXPAND_FAIL, error, skipLoading: !isLoadingMore, - skipAlert: !isLoadingMore, + skipAlert: !isLoadingMore || error.name === 'AbortError', }; }; @@ -242,7 +250,7 @@ export function setFilter (filterType) { path: ['notifications', 'quickFilter', 'active'], value: filterType, }); - dispatch(expandNotifications()); + dispatch(expandNotifications({ forceLoad: true })); dispatch(saveSettings()); }; }; diff --git a/app/javascript/mastodon/actions/push_notifications/index.js b/app/javascript/mastodon/actions/push_notifications/index.js index 2ffec500a9573e..9dcc4bd4bb4472 100644 --- a/app/javascript/mastodon/actions/push_notifications/index.js +++ b/app/javascript/mastodon/actions/push_notifications/index.js @@ -1,19 +1,5 @@ -import { - SET_BROWSER_SUPPORT, - SET_SUBSCRIPTION, - CLEAR_SUBSCRIPTION, - SET_ALERTS, - setAlerts, -} from './setter'; -import { register, saveSettings } from './registerer'; - -export { - SET_BROWSER_SUPPORT, - SET_SUBSCRIPTION, - CLEAR_SUBSCRIPTION, - SET_ALERTS, - register, -}; +import { setAlerts } from './setter'; +import { saveSettings } from './registerer'; export function changeAlerts(path, value) { return dispatch => { @@ -21,3 +7,11 @@ export function changeAlerts(path, value) { dispatch(saveSettings()); }; } + +export { + CLEAR_SUBSCRIPTION, + SET_BROWSER_SUPPORT, + SET_SUBSCRIPTION, + SET_ALERTS, +} from './setter'; +export { register } from './registerer'; diff --git a/app/javascript/mastodon/actions/rules.js b/app/javascript/mastodon/actions/rules.js deleted file mode 100644 index 34e60a121e0aad..00000000000000 --- a/app/javascript/mastodon/actions/rules.js +++ /dev/null @@ -1,27 +0,0 @@ -import api from '../api'; - -export const RULES_FETCH_REQUEST = 'RULES_FETCH_REQUEST'; -export const RULES_FETCH_SUCCESS = 'RULES_FETCH_SUCCESS'; -export const RULES_FETCH_FAIL = 'RULES_FETCH_FAIL'; - -export const fetchRules = () => (dispatch, getState) => { - dispatch(fetchRulesRequest()); - - api(getState) - .get('/api/v1/instance').then(({ data }) => dispatch(fetchRulesSuccess(data.rules))) - .catch(err => dispatch(fetchRulesFail(err))); -}; - -const fetchRulesRequest = () => ({ - type: RULES_FETCH_REQUEST, -}); - -const fetchRulesSuccess = rules => ({ - type: RULES_FETCH_SUCCESS, - rules, -}); - -const fetchRulesFail = error => ({ - type: RULES_FETCH_FAIL, - error, -}); diff --git a/app/javascript/mastodon/actions/search.js b/app/javascript/mastodon/actions/search.js index 37560a74cba6c4..e333c0ea7ccd96 100644 --- a/app/javascript/mastodon/actions/search.js +++ b/app/javascript/mastodon/actions/search.js @@ -29,7 +29,8 @@ export function clearSearch() { export function submitSearch() { return (dispatch, getState) => { - const value = getState().getIn(['search', 'value']); + const value = getState().getIn(['search', 'value']); + const signedIn = !!getState().getIn(['meta', 'me']); if (value.length === 0) { dispatch(fetchSearchSuccess({ accounts: [], statuses: [], hashtags: [] }, '')); @@ -41,7 +42,7 @@ export function submitSearch() { api(getState).get('/api/v2/search', { params: { q: value, - resolve: true, + resolve: signedIn, limit: 5, }, }).then(response => { diff --git a/app/javascript/mastodon/actions/server.js b/app/javascript/mastodon/actions/server.js new file mode 100644 index 00000000000000..31d4aea1000c61 --- /dev/null +++ b/app/javascript/mastodon/actions/server.js @@ -0,0 +1,91 @@ +import api from '../api'; +import { importFetchedAccount } from './importer'; + +export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST'; +export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS'; +export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL'; + +export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST'; +export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS'; +export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL'; + +export const SERVER_DOMAIN_BLOCKS_FETCH_REQUEST = 'SERVER_DOMAIN_BLOCKS_FETCH_REQUEST'; +export const SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS = 'SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS'; +export const SERVER_DOMAIN_BLOCKS_FETCH_FAIL = 'SERVER_DOMAIN_BLOCKS_FETCH_FAIL'; + +export const fetchServer = () => (dispatch, getState) => { + dispatch(fetchServerRequest()); + + api(getState) + .get('/api/v2/instance').then(({ data }) => { + if (data.contact.account) dispatch(importFetchedAccount(data.contact.account)); + dispatch(fetchServerSuccess(data)); + }).catch(err => dispatch(fetchServerFail(err))); +}; + +const fetchServerRequest = () => ({ + type: SERVER_FETCH_REQUEST, +}); + +const fetchServerSuccess = server => ({ + type: SERVER_FETCH_SUCCESS, + server, +}); + +const fetchServerFail = error => ({ + type: SERVER_FETCH_FAIL, + error, +}); + +export const fetchExtendedDescription = () => (dispatch, getState) => { + dispatch(fetchExtendedDescriptionRequest()); + + api(getState) + .get('/api/v1/instance/extended_description') + .then(({ data }) => dispatch(fetchExtendedDescriptionSuccess(data))) + .catch(err => dispatch(fetchExtendedDescriptionFail(err))); +}; + +const fetchExtendedDescriptionRequest = () => ({ + type: EXTENDED_DESCRIPTION_REQUEST, +}); + +const fetchExtendedDescriptionSuccess = description => ({ + type: EXTENDED_DESCRIPTION_SUCCESS, + description, +}); + +const fetchExtendedDescriptionFail = error => ({ + type: EXTENDED_DESCRIPTION_FAIL, + error, +}); + +export const fetchDomainBlocks = () => (dispatch, getState) => { + dispatch(fetchDomainBlocksRequest()); + + api(getState) + .get('/api/v1/instance/domain_blocks') + .then(({ data }) => dispatch(fetchDomainBlocksSuccess(true, data))) + .catch(err => { + if (err.response.status === 404) { + dispatch(fetchDomainBlocksSuccess(false, [])); + } else { + dispatch(fetchDomainBlocksFail(err)); + } + }); +}; + +const fetchDomainBlocksRequest = () => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, +}); + +const fetchDomainBlocksSuccess = (isAvailable, blocks) => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, + isAvailable, + blocks, +}); + +const fetchDomainBlocksFail = error => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_FAIL, + error, +}); diff --git a/app/javascript/mastodon/actions/statuses.js b/app/javascript/mastodon/actions/statuses.js index adc24eabfbfc04..4ae1b21e011aee 100644 --- a/app/javascript/mastodon/actions/statuses.js +++ b/app/javascript/mastodon/actions/statuses.js @@ -34,6 +34,11 @@ export const STATUS_FETCH_SOURCE_REQUEST = 'STATUS_FETCH_SOURCE_REQUEST'; export const STATUS_FETCH_SOURCE_SUCCESS = 'STATUS_FETCH_SOURCE_SUCCESS'; export const STATUS_FETCH_SOURCE_FAIL = 'STATUS_FETCH_SOURCE_FAIL'; +export const STATUS_TRANSLATE_REQUEST = 'STATUS_TRANSLATE_REQUEST'; +export const STATUS_TRANSLATE_SUCCESS = 'STATUS_TRANSLATE_SUCCESS'; +export const STATUS_TRANSLATE_FAIL = 'STATUS_TRANSLATE_FAIL'; +export const STATUS_TRANSLATE_UNDO = 'STATUS_TRANSLATE_UNDO'; + export function fetchStatusRequest(id, skipLoading) { return { type: STATUS_FETCH_REQUEST, @@ -42,9 +47,9 @@ export function fetchStatusRequest(id, skipLoading) { }; }; -export function fetchStatus(id) { +export function fetchStatus(id, forceFetch = false) { return (dispatch, getState) => { - const skipLoading = getState().getIn(['statuses', id], null) !== null; + const skipLoading = !forceFetch && getState().getIn(['statuses', id], null) !== null; dispatch(fetchContext(id)); @@ -309,4 +314,36 @@ export function toggleStatusCollapse(id, isCollapsed) { id, isCollapsed, }; -} +}; + +export const translateStatus = id => (dispatch, getState) => { + dispatch(translateStatusRequest(id)); + + api(getState).post(`/api/v1/statuses/${id}/translate`).then(response => { + dispatch(translateStatusSuccess(id, response.data)); + }).catch(error => { + dispatch(translateStatusFail(id, error)); + }); +}; + +export const translateStatusRequest = id => ({ + type: STATUS_TRANSLATE_REQUEST, + id, +}); + +export const translateStatusSuccess = (id, translation) => ({ + type: STATUS_TRANSLATE_SUCCESS, + id, + translation, +}); + +export const translateStatusFail = (id, error) => ({ + type: STATUS_TRANSLATE_FAIL, + id, + error, +}); + +export const undoStatusTranslation = id => ({ + type: STATUS_TRANSLATE_UNDO, + id, +}); diff --git a/app/javascript/mastodon/actions/streaming.js b/app/javascript/mastodon/actions/streaming.js index ae3b8a44cfb03d..e56695d1264da8 100644 --- a/app/javascript/mastodon/actions/streaming.js +++ b/app/javascript/mastodon/actions/streaming.js @@ -22,7 +22,6 @@ import { updateReaction as updateAnnouncementsReaction, deleteAnnouncement, } from './announcements'; -import { fetchFilters } from './filters'; import { getLocale } from '../locales'; const { messages } = getLocale(); @@ -98,9 +97,6 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti case 'conversation': dispatch(updateConversations(JSON.parse(data.payload))); break; - case 'filters_changed': - dispatch(fetchFilters()); - break; case 'announcement': dispatch(updateAnnouncements(JSON.parse(data.payload))); break; @@ -150,10 +146,10 @@ export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) => /** * @param {string} columnId - * @param {string} area + * @param {string} area * @return {function(): void} */ -export const connectAreaStream = (columnId, area) => +export const connectAreaStream = (columnId, area) => connectTimelineStream(`area:${columnId}:${area}`, 'area', { area: area }, { fillGaps: () => fillAreaTimelineGaps(columnId, area) }); /** diff --git a/app/javascript/mastodon/actions/tags.js b/app/javascript/mastodon/actions/tags.js new file mode 100644 index 00000000000000..37e79d4cbab1de --- /dev/null +++ b/app/javascript/mastodon/actions/tags.js @@ -0,0 +1,92 @@ +import api from '../api'; + +export const HASHTAG_FETCH_REQUEST = 'HASHTAG_FETCH_REQUEST'; +export const HASHTAG_FETCH_SUCCESS = 'HASHTAG_FETCH_SUCCESS'; +export const HASHTAG_FETCH_FAIL = 'HASHTAG_FETCH_FAIL'; + +export const HASHTAG_FOLLOW_REQUEST = 'HASHTAG_FOLLOW_REQUEST'; +export const HASHTAG_FOLLOW_SUCCESS = 'HASHTAG_FOLLOW_SUCCESS'; +export const HASHTAG_FOLLOW_FAIL = 'HASHTAG_FOLLOW_FAIL'; + +export const HASHTAG_UNFOLLOW_REQUEST = 'HASHTAG_UNFOLLOW_REQUEST'; +export const HASHTAG_UNFOLLOW_SUCCESS = 'HASHTAG_UNFOLLOW_SUCCESS'; +export const HASHTAG_UNFOLLOW_FAIL = 'HASHTAG_UNFOLLOW_FAIL'; + +export const fetchHashtag = name => (dispatch, getState) => { + dispatch(fetchHashtagRequest()); + + api(getState).get(`/api/v1/tags/${name}`).then(({ data }) => { + dispatch(fetchHashtagSuccess(name, data)); + }).catch(err => { + dispatch(fetchHashtagFail(err)); + }); +}; + +export const fetchHashtagRequest = () => ({ + type: HASHTAG_FETCH_REQUEST, +}); + +export const fetchHashtagSuccess = (name, tag) => ({ + type: HASHTAG_FETCH_SUCCESS, + name, + tag, +}); + +export const fetchHashtagFail = error => ({ + type: HASHTAG_FETCH_FAIL, + error, +}); + +export const followHashtag = name => (dispatch, getState) => { + dispatch(followHashtagRequest(name)); + + api(getState).post(`/api/v1/tags/${name}/follow`).then(({ data }) => { + dispatch(followHashtagSuccess(name, data)); + }).catch(err => { + dispatch(followHashtagFail(name, err)); + }); +}; + +export const followHashtagRequest = name => ({ + type: HASHTAG_FOLLOW_REQUEST, + name, +}); + +export const followHashtagSuccess = (name, tag) => ({ + type: HASHTAG_FOLLOW_SUCCESS, + name, + tag, +}); + +export const followHashtagFail = (name, error) => ({ + type: HASHTAG_FOLLOW_FAIL, + name, + error, +}); + +export const unfollowHashtag = name => (dispatch, getState) => { + dispatch(unfollowHashtagRequest(name)); + + api(getState).post(`/api/v1/tags/${name}/unfollow`).then(({ data }) => { + dispatch(unfollowHashtagSuccess(name, data)); + }).catch(err => { + dispatch(unfollowHashtagFail(name, err)); + }); +}; + +export const unfollowHashtagRequest = name => ({ + type: HASHTAG_UNFOLLOW_REQUEST, + name, +}); + +export const unfollowHashtagSuccess = (name, tag) => ({ + type: HASHTAG_UNFOLLOW_SUCCESS, + name, + tag, +}); + +export const unfollowHashtagFail = (name, error) => ({ + type: HASHTAG_UNFOLLOW_FAIL, + name, + error, +}); diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index cc785308dcc28c..2f61ac4cd5dab7 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -143,8 +143,8 @@ export function fillTimelineGaps(timelineId, path, params = {}, done = noOp) { export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('home', '/api/v1/timelines/home', { max_id: maxId }, done); export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, max_id: maxId, only_media: !!onlyMedia }, done); export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); -export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId }); -export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); +export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, tagged, max_id: maxId }); +export const expandAccountFeaturedTimeline = (accountId, { tagged } = {}) => expandTimeline(`account:${accountId}:pinned${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true, tagged }); export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); export const expandAreaTimeline = (columnId, area, { maxId } = {}, done = noOp) => expandTimeline(`area:${columnId}:${area}`, `/api/v1/timelines/area/${area}`, { max_id: maxId }, done); export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); diff --git a/app/javascript/mastodon/api.js b/app/javascript/mastodon/api.js index 645ef65006d80a..6bbddbef66257a 100644 --- a/app/javascript/mastodon/api.js +++ b/app/javascript/mastodon/api.js @@ -1,20 +1,31 @@ +// @ts-check + import axios from 'axios'; import LinkHeader from 'http-link-header'; import ready from './ready'; +/** + * @param {import('axios').AxiosResponse} response + * @returns {LinkHeader} + */ export const getLinks = response => { const value = response.headers.link; if (!value) { - return { refs: [] }; + return new LinkHeader(); } return LinkHeader.parse(value); }; +/** @type {import('axios').RawAxiosRequestHeaders} */ const csrfHeader = {}; +/** + * @returns {void} + */ const setCSRFHeader = () => { + /** @type {HTMLMetaElement | null} */ const csrfToken = document.querySelector('meta[name=csrf-token]'); if (csrfToken) { @@ -24,6 +35,10 @@ const setCSRFHeader = () => { ready(setCSRFHeader); +/** + * @param {() => import('immutable').Map} getState + * @returns {import('axios').RawAxiosRequestHeaders} + */ const authorizationHeaderFromState = getState => { const accessToken = getState && getState().getIn(['meta', 'access_token'], ''); @@ -36,17 +51,25 @@ const authorizationHeaderFromState = getState => { }; }; -export default getState => axios.create({ - headers: { - ...csrfHeader, - ...authorizationHeaderFromState(getState), - }, - - transformResponse: [function (data) { - try { - return JSON.parse(data); - } catch(Exception) { - return data; - } - }], -}); +/** + * @param {() => import('immutable').Map} getState + * @returns {import('axios').AxiosInstance} + */ +export default function api(getState) { + return axios.create({ + headers: { + ...csrfHeader, + ...authorizationHeaderFromState(getState), + }, + + transformResponse: [ + function (data) { + try { + return JSON.parse(data); + } catch { + return data; + } + }, + ], + }); +} diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap index 76ab3374ae8488..7fbdedeb23f11f 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap @@ -6,14 +6,17 @@ exports[` Autoplay renders a animated avatar 1`] = ` onMouseEnter={[Function]} onMouseLeave={[Function]} style={ - Object { - "backgroundImage": "url(/animated/alice.gif)", - "backgroundSize": "100px 100px", + { "height": "100px", "width": "100px", } } -/> +> + alice + `; exports[` Still renders a still avatar 1`] = ` @@ -22,12 +25,15 @@ exports[` Still renders a still avatar 1`] = ` onMouseEnter={[Function]} onMouseLeave={[Function]} style={ - Object { - "backgroundImage": "url(/static/alice.jpg)", - "backgroundSize": "100px 100px", + { "height": "100px", "width": "100px", } } -/> +> + alice + `; diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap index d59fee42f66e5c..f8385357a39b50 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap @@ -3,22 +3,52 @@ exports[`
      +
      + > + alice +
      +
      +
      + > + eve@blackhat.lair +
      +
      `; diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap index 86fbba917b7391..bfc091d450a33a 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap @@ -4,6 +4,7 @@ exports[` @@ -53,6 +59,7 @@ exports[` diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap index 0f27473af4edbb..9c37580d74114e 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap @@ -10,7 +10,7 @@ exports[` renders display name + account name 1`] = ` Foo

      ", } } diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.js index af9f119c82c173..7aebb124cb6a2d 100644 --- a/app/javascript/mastodon/components/account.js +++ b/app/javascript/mastodon/components/account.js @@ -3,12 +3,13 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import Avatar from './avatar'; import DisplayName from './display_name'; -import Permalink from './permalink'; import IconButton from './icon_button'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { me } from '../initial_state'; import RelativeTimestamp from './relative_timestamp'; +import Skeleton from 'mastodon/components/skeleton'; +import { Link } from 'react-router-dom'; const messages = defineMessages({ follow: { id: 'account.follow', defaultMessage: 'Follow' }, @@ -26,7 +27,8 @@ export default @injectIntl class Account extends ImmutablePureComponent { static propTypes = { - account: ImmutablePropTypes.map.isRequired, + size: PropTypes.number, + account: ImmutablePropTypes.map, onFollow: PropTypes.func.isRequired, onBlock: PropTypes.func.isRequired, onMute: PropTypes.func.isRequired, @@ -39,6 +41,10 @@ class Account extends ImmutablePureComponent { onActionClick: PropTypes.func, }; + static defaultProps = { + size: 46, + }; + handleFollow = () => { this.props.onFollow(this.props.account); } @@ -64,10 +70,19 @@ class Account extends ImmutablePureComponent { } render () { - const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction } = this.props; + const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props; if (!account) { - return
      ; + return ( +
      +
      +
      +
      + +
      +
      +
      + ); } if (hidden) { @@ -125,11 +140,11 @@ class Account extends ImmutablePureComponent { return (
      - -
      + +
      {mute_expires_at} -
      +
      {buttons} diff --git a/app/javascript/mastodon/components/admin/Trends.js b/app/javascript/mastodon/components/admin/Trends.js index 635bdf37d56d1c..9530c2a5be6fe8 100644 --- a/app/javascript/mastodon/components/admin/Trends.js +++ b/app/javascript/mastodon/components/admin/Trends.js @@ -50,7 +50,7 @@ export default class Trends extends React.PureComponent { day.uses)} diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.js index fbe948c5b02371..b1aebc73ecbaab 100644 --- a/app/javascript/mastodon/components/animated_number.js +++ b/app/javascript/mastodon/components/animated_number.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { FormattedNumber } from 'react-intl'; +import ShortNumber from 'mastodon/components/short_number'; import TransitionMotion from 'react-motion/lib/TransitionMotion'; import spring from 'react-motion/lib/spring'; import { reduceMotion } from 'mastodon/initial_state'; @@ -51,7 +51,7 @@ export default class AnimatedNumber extends React.PureComponent { const { direction } = this.state; if (reduceMotion) { - return obfuscate ? obfuscatedCount(value) : ; + return obfuscate ? obfuscatedCount(value) : ; } const styles = [{ @@ -65,7 +65,7 @@ export default class AnimatedNumber extends React.PureComponent { {items => ( {items.map(({ key, data, style }) => ( - 0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}>{obfuscate ? obfuscatedCount(data) : } + 0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}>{obfuscate ? obfuscatedCount(data) : } ))} )} diff --git a/app/javascript/mastodon/components/area.js b/app/javascript/mastodon/components/area.js index 0e11476de4d610..5c5b8db179695c 100644 --- a/app/javascript/mastodon/components/area.js +++ b/app/javascript/mastodon/components/area.js @@ -1,21 +1,20 @@ import React from 'react'; -import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; class Area extends React.PureComponent { static propTypes = { - account: ImmutablePropTypes.map.isRequired + account: ImmutablePropTypes.map.isRequired, }; constructor (props, context) { super(props, context); this.props = props; - var area_data = require("../../area_settings.json"); - var areas = area_data['areas']; - this.instances = area_data['instances']; + var area_data = require('../../area_settings.json'); + var areas = area_data.areas; + this.instances = area_data.instances; this.config = []; - areas.forEach(function(data, index, arr) { + areas.forEach(function(data) { this.config[data['area-id']] = data; }, this); this.get_area_eng_name = this.get_area_eng_name.bind(this); @@ -40,9 +39,9 @@ class Area extends React.PureComponent { var area_id = 0; }; try{ - var area_eng_name = this.config[area_id]["area-eng-name"]; + var area_eng_name = this.config[area_id]['area-eng-name']; } catch (e) { - var area_eng_name = this.config[0]["area-eng-name"]; + var area_eng_name = this.config[0]['area-eng-name']; } return (area_eng_name); } @@ -52,7 +51,7 @@ class Area extends React.PureComponent { var domain = splittedName[splittedName.length - 1]; try{ var instanceSetting = this.instances[domain]; - var area_eng_name = instanceSetting["instance-eng-name"]; + var area_eng_name = instanceSetting['instance-eng-name']; }catch (e) { return this.get_local_area_eng_name(0); } @@ -72,9 +71,9 @@ class Area extends React.PureComponent { var area_id = 0; }; try{ - var area_short_name = this.config[area_id]["area-short-name"]; + var area_short_name = this.config[area_id]['area-short-name']; } catch (e) { - var area_short_name = this.config[0]["area-short-name"]; + var area_short_name = this.config[0]['area-short-name']; } return (area_short_name); } @@ -84,7 +83,7 @@ class Area extends React.PureComponent { var domain = splittedName[splittedName.length - 1]; try{ var instanceSetting = this.instances[domain]; - var area_short_name = instanceSetting["instance-short-name"]; + var area_short_name = instanceSetting['instance-short-name']; }catch (e) { return this.get_local_area_short_name(0); } @@ -94,6 +93,7 @@ class Area extends React.PureComponent { is_local(account){ return (account.get('username') === account.get('acct')); } + } export default Area; diff --git a/app/javascript/mastodon/components/area_avatar.js b/app/javascript/mastodon/components/area_avatar.js index 5e456319e86a01..fb955a4cea7ee0 100644 --- a/app/javascript/mastodon/components/area_avatar.js +++ b/app/javascript/mastodon/components/area_avatar.js @@ -5,7 +5,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; class Area_avatar extends Area { static propTypes = { - account: ImmutablePropTypes.map.isRequired + account: ImmutablePropTypes.map.isRequired, }; constructor (props, context) { @@ -14,7 +14,7 @@ class Area_avatar extends Area { } get_area_class_name(account){ - return ("account__avatar__area-" + this.get_area_eng_name(account)); + return ('account__avatar__area-' + this.get_area_eng_name(account)); } render () { @@ -24,6 +24,7 @@ class Area_avatar extends Area {
      ); } + } export default Area_avatar; diff --git a/app/javascript/mastodon/components/area_header.js b/app/javascript/mastodon/components/area_header.js index d7836e10ff558a..486fd5cb2d3ebc 100644 --- a/app/javascript/mastodon/components/area_header.js +++ b/app/javascript/mastodon/components/area_header.js @@ -5,7 +5,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; class Area_header extends Area { static propTypes = { - account: ImmutablePropTypes.map.isRequired + account: ImmutablePropTypes.map.isRequired, }; constructor (props, context) { super(props, context); @@ -13,16 +13,17 @@ class Area_header extends Area { } get_area_class_name(account){ - return ("account__header__area-" + this.get_area_eng_name(account)); + return ('account__header__area-' + this.get_area_eng_name(account)); } render () { return ( - + {this.get_area_short_name(this.props.account)} ); } + } export default Area_header; diff --git a/app/javascript/mastodon/components/avatar.js b/app/javascript/mastodon/components/avatar.js index 12ab7d2dfe410d..e617c288901f10 100644 --- a/app/javascript/mastodon/components/avatar.js +++ b/app/javascript/mastodon/components/avatar.js @@ -42,28 +42,20 @@ export default class Avatar extends React.PureComponent { ...this.props.style, width: `${size}px`, height: `${size}px`, - backgroundSize: `${size}px ${size}px`, }; - if (account) { - const src = account.get('avatar'); - const staticSrc = account.get('avatar_static'); + let src; - if (hovering || animate) { - style.backgroundImage = `url(${src})`; - } else { - style.backgroundImage = `url(${staticSrc})`; - } + if (hovering || animate) { + src = account?.get('avatar'); + } else { + src = account?.get('avatar_static'); } - return ( -
      +
      + {src && {account?.get('acct')}} +
      ); } diff --git a/app/javascript/mastodon/components/avatar_composite.js b/app/javascript/mastodon/components/avatar_composite.js index 5d5b897492fec0..220bf5b4f8e131 100644 --- a/app/javascript/mastodon/components/avatar_composite.js +++ b/app/javascript/mastodon/components/avatar_composite.js @@ -2,6 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { autoPlayGif } from '../initial_state'; +import Avatar from './avatar'; export default class AvatarComposite extends React.PureComponent { @@ -74,12 +75,12 @@ export default class AvatarComposite extends React.PureComponent { bottom: bottom, width: `${width}%`, height: `${height}%`, - backgroundSize: 'cover', - backgroundImage: `url(${account.get(animate ? 'avatar' : 'avatar_static')})`, }; return ( -
      +
      + +
      ); } diff --git a/app/javascript/mastodon/components/avatar_overlay.js b/app/javascript/mastodon/components/avatar_overlay.js index 3ec1d77304f585..8d5d44ea560485 100644 --- a/app/javascript/mastodon/components/avatar_overlay.js +++ b/app/javascript/mastodon/components/avatar_overlay.js @@ -2,6 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { autoPlayGif } from '../initial_state'; +import Avatar from './avatar'; export default class AvatarOverlay extends React.PureComponent { @@ -9,27 +10,40 @@ export default class AvatarOverlay extends React.PureComponent { account: ImmutablePropTypes.map.isRequired, friend: ImmutablePropTypes.map.isRequired, animate: PropTypes.bool, + size: PropTypes.number, + baseSize: PropTypes.number, + overlaySize: PropTypes.number, }; static defaultProps = { animate: autoPlayGif, + size: 46, + baseSize: 36, + overlaySize: 24, }; - render() { - const { account, friend, animate } = this.props; + state = { + hovering: false, + }; + + handleMouseEnter = () => { + if (this.props.animate) return; + this.setState({ hovering: true }); + } - const baseStyle = { - backgroundImage: `url(${account.get(animate ? 'avatar' : 'avatar_static')})`, - }; + handleMouseLeave = () => { + if (this.props.animate) return; + this.setState({ hovering: false }); + } - const overlayStyle = { - backgroundImage: `url(${friend.get(animate ? 'avatar' : 'avatar_static')})`, - }; + render() { + const { account, friend, animate, size, baseSize, overlaySize } = this.props; + const { hovering } = this.state; return ( -
      -
      -
      +
      +
      +
      ); } diff --git a/app/javascript/mastodon/components/button.js b/app/javascript/mastodon/components/button.js index 85b2d78ca9ee69..42ce01f38451ea 100644 --- a/app/javascript/mastodon/components/button.js +++ b/app/javascript/mastodon/components/button.js @@ -6,6 +6,7 @@ export default class Button extends React.PureComponent { static propTypes = { text: PropTypes.node, + type: PropTypes.string, onClick: PropTypes.func, disabled: PropTypes.bool, block: PropTypes.bool, @@ -15,8 +16,12 @@ export default class Button extends React.PureComponent { children: PropTypes.node, }; + static defaultProps = { + type: 'button', + }; + handleClick = (e) => { - if (!this.props.disabled) { + if (!this.props.disabled && this.props.onClick) { this.props.onClick(e); } } @@ -42,6 +47,7 @@ export default class Button extends React.PureComponent { onClick={this.handleClick} ref={this.setRef} title={this.props.title} + type={this.props.type} > {this.props.text || this.props.children} diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.js index cbbc490a83b9d7..7850a93ecedc54 100644 --- a/app/javascript/mastodon/components/column_header.js +++ b/app/javascript/mastodon/components/column_header.js @@ -17,6 +17,7 @@ class ColumnHeader extends React.PureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -56,7 +57,7 @@ class ColumnHeader extends React.PureComponent { } handleTitleClick = () => { - this.props.onClick(); + this.props.onClick?.(); } handleMoveLeft = () => { @@ -145,13 +146,12 @@ class ColumnHeader extends React.PureComponent { collapsedContent.push(moveButtons); } - if (children || (multiColumn && this.props.onPin)) { + if (this.context.identity.signedIn && (children || (multiColumn && this.props.onPin))) { collapseButton = (

      + + + +
      ); } diff --git a/app/javascript/mastodon/components/hashtag.js b/app/javascript/mastodon/components/hashtag.js index 7f442d189ca561..e516fc0867dff5 100644 --- a/app/javascript/mastodon/components/hashtag.js +++ b/app/javascript/mastodon/components/hashtag.js @@ -4,7 +4,7 @@ import { Sparklines, SparklinesCurve } from 'react-sparklines'; import { FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import Permalink from './permalink'; +import { Link } from 'react-router-dom'; import ShortNumber from 'mastodon/components/short_number'; import Skeleton from 'mastodon/components/skeleton'; import classNames from 'classnames'; @@ -41,10 +41,11 @@ class SilentErrorBoundary extends React.Component { export const accountsCountRenderer = (displayNumber, pluralReady) => ( {displayNumber}, + days: 2, }} /> ); @@ -52,10 +53,8 @@ export const accountsCountRenderer = (displayNumber, pluralReady) => ( export const ImmutableHashtag = ({ hashtag }) => ( day.get('uses')).toArray()} /> ); @@ -64,38 +63,51 @@ ImmutableHashtag.propTypes = { hashtag: ImmutablePropTypes.map.isRequired, }; -const Hashtag = ({ name, href, to, people, uses, history, className }) => ( +const Hashtag = ({ name, to, people, uses, history, className, description, withGraph }) => (
      - + {name ? #{name} : } - + - {typeof people !== 'undefined' ? : } + {description ? ( + {description} + ) : ( + typeof people !== 'undefined' ? : + )}
      -
      - {typeof uses !== 'undefined' ? : } -
      - -
      - - 0)}> - - - -
      + {typeof uses !== 'undefined' && ( +
      + +
      + )} + + {withGraph && ( +
      + + 0)}> + + + +
      + )}
      ); Hashtag.propTypes = { name: PropTypes.string, - href: PropTypes.string, to: PropTypes.string, people: PropTypes.number, + description: PropTypes.node, uses: PropTypes.number, history: PropTypes.arrayOf(PropTypes.number), className: PropTypes.string, + withGraph: PropTypes.bool, +}; + +Hashtag.defaultProps = { + withGraph: true, }; export default Hashtag; diff --git a/app/javascript/mastodon/components/icon.js b/app/javascript/mastodon/components/icon.js index d8a17722fed2a7..d3d7c591d675d7 100644 --- a/app/javascript/mastodon/components/icon.js +++ b/app/javascript/mastodon/components/icon.js @@ -14,7 +14,7 @@ export default class Icon extends React.PureComponent { const { id, className, fixedWidth, ...other } = this.props; return ( - + ); } diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.js index 6a653675b83cd3..49858f2e23043c 100644 --- a/app/javascript/mastodon/components/icon_button.js +++ b/app/javascript/mastodon/components/icon_button.js @@ -16,7 +16,6 @@ export default class IconButton extends React.PureComponent { onKeyPress: PropTypes.func, size: PropTypes.number, active: PropTypes.bool, - pressed: PropTypes.bool, expanded: PropTypes.bool, style: PropTypes.object, activeStyle: PropTypes.object, @@ -98,7 +97,6 @@ export default class IconButton extends React.PureComponent { icon, inverted, overlay, - pressed, tabIndex, title, counter, @@ -131,7 +129,7 @@ export default class IconButton extends React.PureComponent { ); - if (href) { + if (href && !this.prop) { contents = (
      {contents} @@ -141,8 +139,8 @@ export default class IconButton extends React.PureComponent { return ( ); diff --git a/app/javascript/mastodon/components/logo.js b/app/javascript/mastodon/components/logo.js index d1c7f08a91d8df..ee5c22496cc60c 100644 --- a/app/javascript/mastodon/components/logo.js +++ b/app/javascript/mastodon/components/logo.js @@ -1,8 +1,9 @@ import React from 'react'; const Logo = () => ( - - + + Mastodon + ); diff --git a/app/javascript/mastodon/components/missing_indicator.js b/app/javascript/mastodon/components/missing_indicator.js index 7b0101bab852aa..05e0d653d7037c 100644 --- a/app/javascript/mastodon/components/missing_indicator.js +++ b/app/javascript/mastodon/components/missing_indicator.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import illustration from 'mastodon/../images/elephant_ui_disappointed.svg'; import classNames from 'classnames'; +import { Helmet } from 'react-helmet'; const MissingIndicator = ({ fullPage }) => (
      @@ -14,6 +15,10 @@ const MissingIndicator = ({ fullPage }) => (
      + + + +
      ); diff --git a/app/javascript/mastodon/components/navigation_portal.js b/app/javascript/mastodon/components/navigation_portal.js new file mode 100644 index 00000000000000..45407be43e5b29 --- /dev/null +++ b/app/javascript/mastodon/components/navigation_portal.js @@ -0,0 +1,35 @@ +import React from 'react'; +import { Switch, Route, withRouter } from 'react-router-dom'; +import { showTrends } from 'mastodon/initial_state'; +import Trends from 'mastodon/features/getting_started/containers/trends_container'; +import AccountNavigation from 'mastodon/features/account/navigation'; + +const DefaultNavigation = () => ( + <> + {showTrends && ( + <> +
      + + + )} + +); + +export default @withRouter +class NavigationPortal extends React.PureComponent { + + render () { + return ( + + + + + + + + + + ); + } + +} diff --git a/app/javascript/mastodon/components/not_signed_in_indicator.js b/app/javascript/mastodon/components/not_signed_in_indicator.js new file mode 100644 index 00000000000000..b440c6be2f7045 --- /dev/null +++ b/app/javascript/mastodon/components/not_signed_in_indicator.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { FormattedMessage } from 'react-intl'; + +const NotSignedInIndicator = () => ( +
      +
      + +
      +
      +); + +export default NotSignedInIndicator; diff --git a/app/javascript/mastodon/components/permalink.js b/app/javascript/mastodon/components/permalink.js deleted file mode 100644 index b369e98126d36d..00000000000000 --- a/app/javascript/mastodon/components/permalink.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -export default class Permalink extends React.PureComponent { - - static contextTypes = { - router: PropTypes.object, - }; - - static propTypes = { - className: PropTypes.string, - href: PropTypes.string.isRequired, - to: PropTypes.string.isRequired, - children: PropTypes.node, - onInterceptClick: PropTypes.func, - }; - - handleClick = e => { - if (this.props.onInterceptClick && this.props.onInterceptClick()) { - e.preventDefault(); - return; - } - - if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) { - e.preventDefault(); - this.context.router.history.push(this.props.to); - } - } - - render () { - const { href, children, className, onInterceptClick, ...other } = this.props; - - return ( -
      - {children} - - ); - } - -} diff --git a/app/javascript/mastodon/components/poll.js b/app/javascript/mastodon/components/poll.js index 85aa28816ca2bc..3e643168e6899d 100644 --- a/app/javascript/mastodon/components/poll.js +++ b/app/javascript/mastodon/components/poll.js @@ -34,6 +34,10 @@ const makeEmojiMap = record => record.get('emojis').reduce((obj, emoji) => { export default @injectIntl class Poll extends ImmutablePureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { poll: ImmutablePropTypes.map, intl: PropTypes.object.isRequired, @@ -217,7 +221,7 @@ class Poll extends ImmutablePureComponent {
      - {!showResults && } + {!showResults && } {showResults && !this.props.disabled && · } {votesCount} {poll.get('expires_at') && · {timeRemaining}} diff --git a/app/javascript/mastodon/components/server_banner.js b/app/javascript/mastodon/components/server_banner.js new file mode 100644 index 00000000000000..617fdecdfe8241 --- /dev/null +++ b/app/javascript/mastodon/components/server_banner.js @@ -0,0 +1,93 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; +import { connect } from 'react-redux'; +import { fetchServer } from 'mastodon/actions/server'; +import ShortNumber from 'mastodon/components/short_number'; +import Skeleton from 'mastodon/components/skeleton'; +import Account from 'mastodon/containers/account_container'; +import { domain } from 'mastodon/initial_state'; +import Image from 'mastodon/components/image'; +import { Link } from 'react-router-dom'; + +const messages = defineMessages({ + aboutActiveUsers: { id: 'server_banner.about_active_users', defaultMessage: 'People using this server during the last 30 days (Monthly Active Users)' }, +}); + +const mapStateToProps = state => ({ + server: state.getIn(['server', 'server']), +}); + +export default @connect(mapStateToProps) +@injectIntl +class ServerBanner extends React.PureComponent { + + static propTypes = { + server: PropTypes.object, + dispatch: PropTypes.func, + intl: PropTypes.object, + }; + + componentDidMount () { + const { dispatch } = this.props; + dispatch(fetchServer()); + } + + render () { + const { server, intl } = this.props; + const isLoading = server.get('isLoading'); + + return ( +
      +
      + {domain}, mastodon: Mastodon }} /> +
      + + + +
      + {isLoading ? ( + <> + +
      + +
      + + + ) : server.get('description')} +
      + +
      +
      +

      + + +
      + +
      +

      + + {isLoading ? ( + <> + +
      + + + ) : ( + <> + +
      + + + )} +
      +
      + +
      + + +
      + ); + } + +} diff --git a/app/javascript/mastodon/components/setting_select.js b/app/javascript/mastodon/components/setting_select.js index 7af146b13b9863..a09e19269bf434 100644 --- a/app/javascript/mastodon/components/setting_select.js +++ b/app/javascript/mastodon/components/setting_select.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { injectIntl } from 'react-intl'; class SettingSelect extends React.PureComponent { @@ -20,7 +20,7 @@ class SettingSelect extends React.PureComponent { handleChange = (e) => { this.props.onChange(this.props.settingKey, e.target.value); if (this.props.settingKey.toString() === ['area', 'body'].toString()) { - this.context.router.history.push('/timelines/area'); + this.context.router.history.push('/areas'); } } @@ -28,19 +28,19 @@ class SettingSelect extends React.PureComponent { const { settings, settingKey, groups, intl } = this.props; return ( - ); } diff --git a/app/javascript/mastodon/components/setting_text.js b/app/javascript/mastodon/components/setting_text.js deleted file mode 100644 index a6dde4c0f103e0..00000000000000 --- a/app/javascript/mastodon/components/setting_text.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; - -export default class SettingText extends React.PureComponent { - - static propTypes = { - settings: ImmutablePropTypes.map.isRequired, - settingKey: PropTypes.array.isRequired, - label: PropTypes.string.isRequired, - onChange: PropTypes.func.isRequired, - }; - - handleChange = (e) => { - this.props.onChange(this.props.settingKey, e.target.value); - } - - render () { - const { settings, settingKey, label } = this.props; - - return ( - - ); - } - -} diff --git a/app/javascript/mastodon/components/skeleton.js b/app/javascript/mastodon/components/skeleton.js index 09093e99c757ad..6a17ffb261ef16 100644 --- a/app/javascript/mastodon/components/skeleton.js +++ b/app/javascript/mastodon/components/skeleton.js @@ -4,8 +4,8 @@ import PropTypes from 'prop-types'; const Skeleton = ({ width, height }) => ; Skeleton.propTypes = { - width: PropTypes.number, - height: PropTypes.number, + width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), }; export default Skeleton; diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 916f2f3ce72c71..8a9468ef185fdc 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -3,7 +3,6 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import Avatar from './avatar'; import AvatarOverlay from './avatar_overlay'; -import AvatarComposite from './avatar_composite'; import RelativeTimestamp from './relative_timestamp'; import DisplayName from './display_name'; import StatusContent from './status_content'; @@ -71,7 +70,6 @@ class Status extends ImmutablePureComponent { static propTypes = { status: ImmutablePropTypes.map, account: ImmutablePropTypes.map, - otherAccounts: ImmutablePropTypes.list, onClick: PropTypes.func, onReply: PropTypes.func, onFavourite: PropTypes.func, @@ -83,10 +81,13 @@ class Status extends ImmutablePureComponent { onOpenMedia: PropTypes.func, onOpenVideo: PropTypes.func, onBlock: PropTypes.func, + onAddFilter: PropTypes.func, onEmbed: PropTypes.func, onHeightChange: PropTypes.func, onToggleHidden: PropTypes.func, onToggleCollapsed: PropTypes.func, + onTranslate: PropTypes.func, + onInteractionModal: PropTypes.func, muted: PropTypes.bool, hidden: PropTypes.bool, unread: PropTypes.bool, @@ -119,6 +120,7 @@ class Status extends ImmutablePureComponent { state = { showMedia: defaultMediaVisibility(this.props.status), statusId: undefined, + forceFilter: undefined, }; static getDerivedStateFromProps(nextProps, prevState) { @@ -172,6 +174,10 @@ class Status extends ImmutablePureComponent { this.props.onToggleCollapsed(this._properStatus(), isCollapsed); } + handleTranslate = () => { + this.props.onTranslate(this._properStatus()); + } + renderLoadingMediaGallery () { return
      ; } @@ -280,6 +286,15 @@ class Status extends ImmutablePureComponent { this.handleToggleMediaVisibility(); } + handleUnfilterClick = e => { + this.setState({ forceFilter: false }); + e.preventDefault(); + } + + handleFilterClick = () => { + this.setState({ forceFilter: true }); + } + _properStatus () { const { status } = this.props; @@ -298,7 +313,7 @@ class Status extends ImmutablePureComponent { let media = null; let statusAvatar, prepend, rebloggedByText; let statusAreaAvatar = null; - const { intl, hidden, featured, otherAccounts, unread, showThread, scrollKey, pictureInPicture } = this.props; + const { intl, hidden, featured, unread, showThread, scrollKey, pictureInPicture } = this.props; let { status, account, ...other } = this.props; @@ -331,7 +346,8 @@ class Status extends ImmutablePureComponent { ); } - if (status.get('filtered') || status.getIn(['reblog', 'filtered'])) { + const matchedFilters = status.get('matched_filters'); + if (this.state.forceFilter === undefined ? matchedFilters : this.state.forceFilter) { const minHandlers = this.props.muted ? {} : { moveUp: this.handleHotkeyMoveUp, moveDown: this.handleHotkeyMoveDown, @@ -340,7 +356,11 @@ class Status extends ImmutablePureComponent { return (
      - + : {matchedFilters.join(', ')}. + {' '} +
      ); @@ -359,7 +379,7 @@ class Status extends ImmutablePureComponent { prepend = (
      - }} /> + }} />
      ); @@ -367,6 +387,15 @@ class Status extends ImmutablePureComponent { account = status.get('account'); status = status.get('reblog'); + } else if (showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id'])) { + const display_name_html = { __html: status.getIn(['account', 'display_name_html']) }; + + prepend = ( +
      +
      + }} /> +
      + ); } if (pictureInPicture.get('inUse')) { @@ -397,6 +426,10 @@ class Status extends ImmutablePureComponent { height={110} cacheWidth={this.props.cacheMediaWidth} deployPictureInPicture={pictureInPicture.get('available') ? this.handleDeployPictureInPicture : undefined} + sensitive={status.get('sensitive')} + blurhash={attachment.get('blurhash')} + visible={this.state.showMedia} + onToggleVisibility={this.handleToggleMediaVisibility} /> )} @@ -444,7 +477,7 @@ class Status extends ImmutablePureComponent { ); } - } else if (status.get('spoiler_text').length === 0 && status.get('card')) { + } else if (status.get('spoiler_text').length === 0 && status.get('card') && !this.props.muted) { media = ( 0) { - statusAvatar = ; - } else if (account === undefined || account === null) { - statusAvatar = ; + if (account === undefined || account === null) { + statusAvatar = ; statusAreaAvatar = ; } else { statusAvatar = ; @@ -481,29 +512,35 @@ class Status extends ImmutablePureComponent { {prepend} diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js index 1d8fe23dae8685..2a1fedb93bf458 100644 --- a/app/javascript/mastodon/components/status_action_bar.js +++ b/app/javascript/mastodon/components/status_action_bar.js @@ -6,8 +6,9 @@ import IconButton from './icon_button'; import DropdownMenuContainer from '../containers/dropdown_menu_container'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { me, isStaff } from '../initial_state'; +import { me } from '../initial_state'; import classNames from 'classnames'; +import { PERMISSION_MANAGE_USERS } from 'mastodon/permissions'; const messages = defineMessages({ delete: { id: 'status.delete', defaultMessage: 'Delete' }, @@ -38,10 +39,13 @@ const messages = defineMessages({ admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' }, admin_status: { id: 'status.admin_status', defaultMessage: 'Open this status in the moderation interface' }, copy: { id: 'status.copy', defaultMessage: 'Copy link to status' }, + hide: { id: 'status.hide', defaultMessage: 'Hide toot' }, blockDomain: { id: 'account.block_domain', defaultMessage: 'Block domain {domain}' }, unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' }, unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' }, unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' }, + filter: { id: 'status.filter', defaultMessage: 'Filter this post' }, + openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' }, }); const mapStateToProps = (state, { status }) => ({ @@ -54,6 +58,7 @@ class StatusActionBar extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -76,6 +81,9 @@ class StatusActionBar extends ImmutablePureComponent { onMuteConversation: PropTypes.func, onPin: PropTypes.func, onBookmark: PropTypes.func, + onFilter: PropTypes.func, + onAddFilter: PropTypes.func, + onInteractionModal: PropTypes.func, withDismiss: PropTypes.bool, withCounters: PropTypes.bool, scrollKey: PropTypes.string, @@ -91,10 +99,12 @@ class StatusActionBar extends ImmutablePureComponent { ] handleReplyClick = () => { - if (me) { + const { signedIn } = this.context.identity; + + if (signedIn) { this.props.onReply(this.props.status, this.context.router.history); } else { - this._openInteractionDialog('reply'); + this.props.onInteractionModal('reply', this.props.status); } } @@ -108,25 +118,25 @@ class StatusActionBar extends ImmutablePureComponent { } handleFavouriteClick = () => { - if (me) { + const { signedIn } = this.context.identity; + + if (signedIn) { this.props.onFavourite(this.props.status); } else { - this._openInteractionDialog('favourite'); + this.props.onInteractionModal('favourite', this.props.status); } } handleReblogClick = e => { - if (me) { + const { signedIn } = this.context.identity; + + if (signedIn) { this.props.onReblog(this.props.status, e); } else { - this._openInteractionDialog('reblog'); + this.props.onInteractionModal('reblog', this.props.status); } } - _openInteractionDialog = type => { - window.open(`/interact/${this.props.status.get('id')}?type=${type}`, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); - } - handleBookmarkClick = () => { this.props.onBookmark(this.props.status); } @@ -207,40 +217,40 @@ class StatusActionBar extends ImmutablePureComponent { this.props.onMuteConversation(this.props.status); } - handleCopy = () => { - const url = this.props.status.get('url'); - const textarea = document.createElement('textarea'); - - textarea.textContent = url; - textarea.style.position = 'fixed'; - - document.body.appendChild(textarea); + handleFilterClick = () => { + this.props.onAddFilter(this.props.status); + } - try { - textarea.select(); - document.execCommand('copy'); - } catch (e) { + handleCopy = () => { + const url = this.props.status.get('url'); + navigator.clipboard.writeText(url); + } - } finally { - document.body.removeChild(textarea); - } + handleHideClick = () => { + this.props.onFilter(); } render () { const { status, relationship, intl, withDismiss, withCounters, scrollKey } = this.props; + const { signedIn } = this.context.identity; - const anonymousAccess = !me; + const anonymousAccess = !signedIn; const publicStatus = ['public', 'unlisted'].includes(status.get('visibility')); const pinnableStatus = ['public', 'unlisted', 'private'].includes(status.get('visibility')); const mutingConversation = status.get('muted'); const account = status.get('account'); const writtenByMe = status.getIn(['account', 'id']) === me; + const isRemote = status.getIn(['account', 'username']) !== status.getIn(['account', 'acct']); let menu = []; menu.push({ text: intl.formatMessage(messages.open), action: this.handleOpen }); if (publicStatus) { + if (isRemote) { + menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: status.get('url') }); + } + menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy }); menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed }); } @@ -261,7 +271,7 @@ class StatusActionBar extends ImmutablePureComponent { } if (writtenByMe) { - // menu.push({ text: intl.formatMessage(messages.edit), action: this.handleEditClick }); + menu.push({ text: intl.formatMessage(messages.edit), action: this.handleEditClick }); menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick }); menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick }); } else { @@ -281,6 +291,12 @@ class StatusActionBar extends ImmutablePureComponent { menu.push({ text: intl.formatMessage(messages.block, { name: account.get('username') }), action: this.handleBlockClick }); } + if (!this.props.onFilter) { + menu.push(null); + menu.push({ text: intl.formatMessage(messages.filter), action: this.handleFilterClick }); + menu.push(null); + } + menu.push({ text: intl.formatMessage(messages.report, { name: account.get('username') }), action: this.handleReport }); if (account.get('acct') !== account.get('username')) { @@ -295,10 +311,10 @@ class StatusActionBar extends ImmutablePureComponent { } } - if (isStaff) { + if ((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) { menu.push(null); menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` }); - menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses?id=${status.get('id')}` }); + menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` }); } } @@ -326,18 +342,25 @@ class StatusActionBar extends ImmutablePureComponent { } const shareButton = ('share' in navigator) && publicStatus && ( - + + ); + + const filterButton = this.props.onFilter && ( + ); return (
      - - - + + + + {shareButton} -
      + {filterButton} + +
      lang[0] === translation.get('detected_source_language')); + const languageName = language ? language[2] : translation.get('detected_source_language'); + const provider = translation.get('provider'); + + return ( +
      +
      + +
      + + +
      + ); + } + + return ( + + ); + } + +} + +export default @injectIntl +class StatusContent extends React.PureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { status: ImmutablePropTypes.map.isRequired, expanded: PropTypes.bool, - showThread: PropTypes.bool, onExpandedToggle: PropTypes.func, + onTranslate: PropTypes.func, onClick: PropTypes.func, collapsable: PropTypes.bool, onCollapsedToggle: PropTypes.func, + intl: PropTypes.object, }; state = { @@ -37,41 +77,45 @@ export default class StatusContent extends React.PureComponent { return; } + const { status, onCollapsedToggle } = this.props; const links = node.querySelectorAll('a'); + let link, mention; + for (var i = 0; i < links.length; ++i) { - let link = links[i]; + link = links[i]; + if (link.classList.contains('status-link')) { continue; } + link.classList.add('status-link'); - let mention = this.props.status.get('mentions').find(item => link.href === item.get('url')); + mention = this.props.status.get('mentions').find(item => link.href === item.get('url')); if (mention) { link.addEventListener('click', this.onMentionClick.bind(this, mention), false); link.setAttribute('title', mention.get('acct')); + link.setAttribute('href', `/@${mention.get('acct')}`); } else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) { link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false); + link.setAttribute('href', `/tags/${link.text.slice(1)}`); } else { link.setAttribute('title', link.href); link.classList.add('unhandled-link'); } - - link.setAttribute('target', '_blank'); - link.setAttribute('rel', 'noopener noreferrer'); } - if (this.props.status.get('collapsed', null) === null) { - let collapsed = - this.props.collapsable - && this.props.onClick - && node.clientHeight > MAX_HEIGHT - && this.props.status.get('spoiler_text').length === 0; + if (status.get('collapsed', null) === null && onCollapsedToggle) { + const { collapsable, onClick } = this.props; - if(this.props.onCollapsedToggle) this.props.onCollapsedToggle(collapsed); + const collapsed = + collapsable + && onClick + && node.clientHeight > MAX_HEIGHT + && status.get('spoiler_text').length === 0; - this.props.status.set('collapsed', collapsed); + onCollapsedToggle(collapsed); } } @@ -163,44 +207,51 @@ export default class StatusContent extends React.PureComponent { } } + handleTranslate = () => { + this.props.onTranslate(); + } + setRef = (c) => { this.node = c; } render () { - const { status } = this.props; + const { status, intl } = this.props; const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; const renderReadMore = this.props.onClick && status.get('collapsed'); - const renderViewThread = this.props.showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id']); + const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language'); - const content = { __html: status.get('contentHtml') }; + const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') }; const spoilerContent = { __html: status.get('spoilerHtml') }; + const lang = status.get('translation') ? intl.locale : status.get('language'); const classNames = classnames('status__content', { 'status__content--with-action': this.props.onClick && this.context.router, 'status__content--with-spoiler': status.get('spoiler_text').length > 0, 'status__content--collapsed': renderReadMore, }); - const showThreadButton = ( - - ); - - const readMoreButton = ( + const readMoreButton = renderReadMore && ( ); + const translateButton = renderTranslate && ( + + ); + + const poll = !!status.get('poll') && ( + + ); + if (status.get('spoiler_text').length > 0) { let mentionsPlaceholder = ''; const mentionLinks = status.get('mentions').map(item => ( - + @{item.get('username')} - + )).reduce((aggregate, item) => [...aggregate, item, ' '], []); const toggleText = hidden ? : ; @@ -212,44 +263,39 @@ export default class StatusContent extends React.PureComponent { return (
      {mentionsPlaceholder} -
      +
      - {!hidden && !!status.get('poll') && } - - {renderViewThread && showThreadButton} + {!hidden && poll} + {!hidden && translateButton}
      ); } else if (this.props.onClick) { - const output = [ -
      -
      - - {!!status.get('poll') && } - - {renderViewThread && showThreadButton} -
      , - ]; + return ( + <> +
      +
      - if (renderReadMore) { - output.push(readMoreButton); - } + {poll} + {translateButton} +
      - return output; + {readMoreButton} + + ); } else { return (
      -
      - - {!!status.get('poll') && } +
      - {renderViewThread && showThreadButton} + {poll} + {translateButton}
      ); } diff --git a/app/javascript/mastodon/components/timeline_hint.js b/app/javascript/mastodon/components/timeline_hint.js index fb55a62ccaee24..ac9a79dcc0d618 100644 --- a/app/javascript/mastodon/components/timeline_hint.js +++ b/app/javascript/mastodon/components/timeline_hint.js @@ -6,7 +6,7 @@ const TimelineHint = ({ resource, url }) => (

      - +
      ); diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.js index 0c3f6afa855c62..724719f74fc55d 100644 --- a/app/javascript/mastodon/containers/mastodon.js +++ b/app/javascript/mastodon/containers/mastodon.js @@ -1,21 +1,24 @@ -import React from 'react'; -import { Provider } from 'react-redux'; import PropTypes from 'prop-types'; -import configureStore from '../store/configureStore'; +import React from 'react'; +import { Helmet } from 'react-helmet'; +import { IntlProvider, addLocaleData } from 'react-intl'; +import { Provider as ReduxProvider } from 'react-redux'; import { BrowserRouter, Route } from 'react-router-dom'; import { ScrollContext } from 'react-router-scroll-4'; -import UI from '../features/ui'; -import { fetchCustomEmojis } from '../actions/custom_emojis'; -import { hydrateStore } from '../actions/store'; -import { connectUserStream } from '../actions/streaming'; -import { IntlProvider, addLocaleData } from 'react-intl'; -import { getLocale } from '../locales'; -import initialState from '../initial_state'; -import ErrorBoundary from '../components/error_boundary'; +import configureStore from 'mastodon/store/configureStore'; +import UI from 'mastodon/features/ui'; +import { fetchCustomEmojis } from 'mastodon/actions/custom_emojis'; +import { hydrateStore } from 'mastodon/actions/store'; +import { connectUserStream } from 'mastodon/actions/streaming'; +import ErrorBoundary from 'mastodon/components/error_boundary'; +import initialState, { title as siteTitle } from 'mastodon/initial_state'; +import { getLocale } from 'mastodon/locales'; const { localeData, messages } = getLocale(); addLocaleData(localeData); +const title = process.env.NODE_ENV === 'production' ? siteTitle : `${siteTitle} (Dev)`; + export const store = configureStore(); const hydrateAction = hydrateStore(initialState); @@ -25,7 +28,9 @@ store.dispatch(fetchCustomEmojis()); const createIdentityContext = state => ({ signedIn: !!state.meta.me, accountId: state.meta.me, + disabledAccountId: state.meta.disabled_account_id, accessToken: state.meta.access_token, + permissions: state.role ? state.role.permissions : 0, }); export default class Mastodon extends React.PureComponent { @@ -38,6 +43,7 @@ export default class Mastodon extends React.PureComponent { identity: PropTypes.shape({ signedIn: PropTypes.bool.isRequired, accountId: PropTypes.string, + disabledAccountId: PropTypes.string, accessToken: PropTypes.string, }).isRequired, }; @@ -72,15 +78,17 @@ export default class Mastodon extends React.PureComponent { return ( - + - + + + - + ); } diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index ef0aca13a6d947..294105f259128f 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -25,6 +25,8 @@ import { revealStatus, toggleStatusCollapse, editStatus, + translateStatus, + undoStatusTranslation, } from '../actions/statuses'; import { unmuteAccount, @@ -34,6 +36,9 @@ import { blockDomain, unblockDomain, } from '../actions/domain_blocks'; +import { + initAddFilter, +} from '../actions/filters'; import { initMuteModal } from '../actions/mutes'; import { initBlockModal } from '../actions/blocks'; import { initBoostModal } from '../actions/boosts'; @@ -66,7 +71,7 @@ const makeMapStateToProps = () => { return mapStateToProps; }; -const mapDispatchToProps = (dispatch, { intl }) => ({ +const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ onReply (status, router) { dispatch((_, getState) => { @@ -147,6 +152,14 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ dispatch(editStatus(status.get('id'), history)); }, + onTranslate (status) { + if (status.get('translation')) { + dispatch(undoStatusTranslation(status.get('id'))); + } else { + dispatch(translateStatus(status.get('id'))); + } + }, + onDirect (account, router) { dispatch(directCompose(account, router)); }, @@ -176,6 +189,10 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ dispatch(initReport(status.get('account'), status)); }, + onAddFilter (status) { + dispatch(initAddFilter(status, { contextType })); + }, + onMute (account) { dispatch(initMuteModal(account)); }, @@ -220,6 +237,14 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ dispatch(deployPictureInPicture(status.get('id'), status.getIn(['account', 'id']), type, mediaProps)); }, + onInteractionModal (type, status) { + dispatch(openModal('INTERACTION', { + type, + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); + }, + }); export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status)); diff --git a/app/javascript/mastodon/containers/timeline_container.js b/app/javascript/mastodon/containers/timeline_container.js deleted file mode 100644 index ed8095f90e23a5..00000000000000 --- a/app/javascript/mastodon/containers/timeline_container.js +++ /dev/null @@ -1,62 +0,0 @@ -import React, { Fragment } from 'react'; -import ReactDOM from 'react-dom'; -import { Provider } from 'react-redux'; -import PropTypes from 'prop-types'; -import configureStore from '../store/configureStore'; -import { hydrateStore } from '../actions/store'; -import { IntlProvider, addLocaleData } from 'react-intl'; -import { getLocale } from '../locales'; -import PublicTimeline from '../features/standalone/public_timeline'; -import HashtagTimeline from '../features/standalone/hashtag_timeline'; -import ModalContainer from '../features/ui/containers/modal_container'; -import initialState from '../initial_state'; - -const { localeData, messages } = getLocale(); -addLocaleData(localeData); - -const store = configureStore(); - -if (initialState) { - store.dispatch(hydrateStore(initialState)); -} - -export default class TimelineContainer extends React.PureComponent { - - static propTypes = { - locale: PropTypes.string.isRequired, - hashtag: PropTypes.string, - local: PropTypes.bool, - }; - - static defaultProps = { - local: !initialState.settings.known_fediverse, - }; - - render () { - const { locale, hashtag, local } = this.props; - - let timeline; - - if (hashtag) { - timeline = ; - } else { - timeline = ; - } - - return ( - - - - {timeline} - - {ReactDOM.createPortal( - , - document.getElementById('modal-container'), - )} - - - - ); - } - -} diff --git a/app/javascript/mastodon/extra_polyfills.js b/app/javascript/mastodon/extra_polyfills.js index 13c4f6da9ef436..395f1ed0506d60 100644 --- a/app/javascript/mastodon/extra_polyfills.js +++ b/app/javascript/mastodon/extra_polyfills.js @@ -1,3 +1,4 @@ +import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; import 'intersection-observer'; import 'requestidlecallback'; import objectFitImages from 'object-fit-images'; diff --git a/app/javascript/mastodon/features/about/index.js b/app/javascript/mastodon/features/about/index.js new file mode 100644 index 00000000000000..e59f737386da64 --- /dev/null +++ b/app/javascript/mastodon/features/about/index.js @@ -0,0 +1,219 @@ +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; +import PropTypes from 'prop-types'; +import Column from 'mastodon/components/column'; +import LinkFooter from 'mastodon/features/ui/components/link_footer'; +import { Helmet } from 'react-helmet'; +import { fetchServer, fetchExtendedDescription, fetchDomainBlocks } from 'mastodon/actions/server'; +import Account from 'mastodon/containers/account_container'; +import Skeleton from 'mastodon/components/skeleton'; +import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; +import Image from 'mastodon/components/image'; + +const messages = defineMessages({ + title: { id: 'column.about', defaultMessage: 'About' }, + rules: { id: 'about.rules', defaultMessage: 'Server rules' }, + blocks: { id: 'about.blocks', defaultMessage: 'Moderated servers' }, + silenced: { id: 'about.domain_blocks.silenced.title', defaultMessage: 'Limited' }, + silencedExplanation: { id: 'about.domain_blocks.silenced.explanation', defaultMessage: 'You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.' }, + suspended: { id: 'about.domain_blocks.suspended.title', defaultMessage: 'Suspended' }, + suspendedExplanation: { id: 'about.domain_blocks.suspended.explanation', defaultMessage: 'No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.' }, +}); + +const severityMessages = { + silence: { + title: messages.silenced, + explanation: messages.silencedExplanation, + }, + + suspend: { + title: messages.suspended, + explanation: messages.suspendedExplanation, + }, +}; + +const mapStateToProps = state => ({ + server: state.getIn(['server', 'server']), + extendedDescription: state.getIn(['server', 'extendedDescription']), + domainBlocks: state.getIn(['server', 'domainBlocks']), +}); + +class Section extends React.PureComponent { + + static propTypes = { + title: PropTypes.string, + children: PropTypes.node, + open: PropTypes.bool, + onOpen: PropTypes.func, + }; + + state = { + collapsed: !this.props.open, + }; + + handleClick = () => { + const { onOpen } = this.props; + const { collapsed } = this.state; + + this.setState({ collapsed: !collapsed }, () => onOpen && onOpen()); + } + + render () { + const { title, children } = this.props; + const { collapsed } = this.state; + + return ( +
      +
      + {title} +
      + + {!collapsed && ( +
      {children}
      + )} +
      + ); + } + +} + +export default @connect(mapStateToProps) +@injectIntl +class About extends React.PureComponent { + + static propTypes = { + server: ImmutablePropTypes.map, + extendedDescription: ImmutablePropTypes.map, + domainBlocks: ImmutablePropTypes.contains({ + isLoading: PropTypes.bool, + isAvailable: PropTypes.bool, + items: ImmutablePropTypes.list, + }), + dispatch: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + multiColumn: PropTypes.bool, + }; + + componentDidMount () { + const { dispatch } = this.props; + dispatch(fetchServer()); + dispatch(fetchExtendedDescription()); + } + + handleDomainBlocksOpen = () => { + const { dispatch } = this.props; + dispatch(fetchDomainBlocks()); + } + + render () { + const { multiColumn, intl, server, extendedDescription, domainBlocks } = this.props; + const isLoading = server.get('isLoading'); + + return ( + +
      +
      + `${value} ${key.replace('@', '')}`).join(', ')} className='about__header__hero' /> +

      {isLoading ? : server.get('domain')}

      +

      Mastodon }} />

      +
      + +
      +
      +

      + + +
      + +
      + +
      +

      + + {isLoading ? : {server.getIn(['contact', 'email'])}} +
      +
      + +
      + {extendedDescription.get('isLoading') ? ( + <> + +
      + +
      + +
      + + + ) : (extendedDescription.get('content')?.length > 0 ? ( +
      + ) : ( +

      + ))} +
      + +
      + {!isLoading && (server.get('rules').isEmpty() ? ( +

      + ) : ( +
        + {server.get('rules').map(rule => ( +
      1. + {rule.get('text')} +
      2. + ))} +
      + ))} +
      + +
      + {domainBlocks.get('isLoading') ? ( + <> + +
      + + + ) : (domainBlocks.get('isAvailable') ? ( + <> +

      + +
      + {domainBlocks.get('items').map(block => ( +
      +
      +
      {block.get('domain')}
      + {intl.formatMessage(severityMessages[block.get('severity')].title)} +
      + +

      {(block.get('comment') || '').length > 0 ? block.get('comment') : }

      +
      + ))} +
      + + ) : ( +

      + ))} +
      + + + +
      +

      +
      +
      + + + {intl.formatMessage(messages.title)} + + +
      + ); + } + +} diff --git a/app/javascript/mastodon/features/account/components/featured_tags.js b/app/javascript/mastodon/features/account/components/featured_tags.js new file mode 100644 index 00000000000000..24a3f217145292 --- /dev/null +++ b/app/javascript/mastodon/features/account/components/featured_tags.js @@ -0,0 +1,52 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import Hashtag from 'mastodon/components/hashtag'; + +const messages = defineMessages({ + lastStatusAt: { id: 'account.featured_tags.last_status_at', defaultMessage: 'Last post on {date}' }, + empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' }, +}); + +export default @injectIntl +class FeaturedTags extends ImmutablePureComponent { + + static contextTypes = { + router: PropTypes.object, + }; + + static propTypes = { + account: ImmutablePropTypes.map, + featuredTags: ImmutablePropTypes.list, + tagged: PropTypes.string, + intl: PropTypes.object.isRequired, + }; + + render () { + const { account, featuredTags, intl } = this.props; + + if (!account || account.get('suspended') || featuredTags.isEmpty()) { + return null; + } + + return ( +
      +

      }} />

      + + {featuredTags.take(3).map(featuredTag => ( + 0) ? intl.formatMessage(messages.lastStatusAt, { date: intl.formatDate(featuredTag.get('last_status_at'), { month: 'short', day: '2-digit' }) }) : intl.formatMessage(messages.empty)} + /> + ))} +
      + ); + } + +} diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js index 81f359704ca727..92dcf2f87431c1 100644 --- a/app/javascript/mastodon/features/account/components/header.js +++ b/app/javascript/mastodon/features/account/components/header.js @@ -5,7 +5,7 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import Button from 'mastodon/components/button'; import Area_header from '../../../components/area_header'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { autoPlayGif, me, isStaff } from 'mastodon/initial_state'; +import { autoPlayGif, me, domain } from 'mastodon/initial_state'; import classNames from 'classnames'; import Icon from 'mastodon/components/icon'; import IconButton from 'mastodon/components/icon_button'; @@ -15,11 +15,13 @@ import ShortNumber from 'mastodon/components/short_number'; import { NavLink } from 'react-router-dom'; import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container'; import AccountNoteContainer from '../containers/account_note_container'; +import { PERMISSION_MANAGE_USERS } from 'mastodon/permissions'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, follow: { id: 'account.follow', defaultMessage: 'Follow' }, - cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Cancel follow request' }, + cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request' }, requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request' }, unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' }, edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, @@ -51,8 +53,18 @@ const messages = defineMessages({ unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' }, add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' }, admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' }, + languages: { id: 'account.languages', defaultMessage: 'Change subscribed languages' }, + openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' }, }); +const titleFromAccount = account => { + const displayName = account.get('display_name'); + const acct = account.get('acct') === account.get('username') ? `${account.get('username')}@${domain}` : account.get('acct'); + const prefix = displayName.trim().length === 0 ? account.get('username') : displayName; + + return `${prefix} (@${acct})`; +}; + const dateFormatOptions = { month: 'short', day: 'numeric', @@ -65,6 +77,10 @@ const dateFormatOptions = { export default @injectIntl class Header extends ImmutablePureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { account: ImmutablePropTypes.map, identity_props: ImmutablePropTypes.list, @@ -81,6 +97,9 @@ class Header extends ImmutablePureComponent { onEndorseToggle: PropTypes.func.isRequired, onAddToList: PropTypes.func.isRequired, onEditAccountNote: PropTypes.func.isRequired, + onChangeLanguages: PropTypes.func.isRequired, + onInteractionModal: PropTypes.func.isRequired, + onOpenAvatar: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, domain: PropTypes.string.isRequired, hidden: PropTypes.bool, @@ -124,14 +143,24 @@ class Header extends ImmutablePureComponent { } } + handleAvatarClick = e => { + if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { + e.preventDefault(); + this.props.onOpenAvatar(); + } + } + render () { const { account, hidden, intl, domain } = this.props; + const { signedIn } = this.context.identity; if (!account) { return null; } - const suspended = account.get('suspended'); + const suspended = account.get('suspended'); + const isRemote = account.get('acct') !== account.get('username'); + const remoteDomain = isRemote ? account.get('acct').split('@')[1] : null; let info = []; let actionBtn = ''; @@ -156,12 +185,12 @@ class Header extends ImmutablePureComponent { } if (me !== account.get('id')) { - if (!account.get('relationship')) { // Wait until the relationship is loaded + if (signedIn && !account.get('relationship')) { // Wait until the relationship is loaded actionBtn = ''; } else if (account.getIn(['relationship', 'requested'])) { actionBtn =
      ); diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.js b/app/javascript/mastodon/features/account_timeline/components/moved_note.js index 2e32d660f84997..daff47a9d6779f 100644 --- a/app/javascript/mastodon/features/account_timeline/components/moved_note.js +++ b/app/javascript/mastodon/features/account_timeline/components/moved_note.js @@ -1,47 +1,35 @@ import React from 'react'; -import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import AvatarOverlay from '../../../components/avatar_overlay'; import DisplayName from '../../../components/display_name'; -import Icon from 'mastodon/components/icon'; +import { Link } from 'react-router-dom'; export default class MovedNote extends ImmutablePureComponent { - static contextTypes = { - router: PropTypes.object, - }; - static propTypes = { from: ImmutablePropTypes.map.isRequired, to: ImmutablePropTypes.map.isRequired, }; - handleAccountClick = e => { - if (e.button === 0) { - e.preventDefault(); - this.context.router.history.push(`/@${this.props.to.get('acct')}`); - } - - e.stopPropagation(); - } - render () { const { from, to } = this.props; - const displayNameHtml = { __html: from.get('display_name_html') }; return ( -
      -
      -
      - }} /> +
      +
      + }} />
      -
      -
      - -
      +
      + +
      + + + + +
      ); } diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.js index 371794dd758268..f53cd248079d5d 100644 --- a/app/javascript/mastodon/features/account_timeline/containers/header_container.js +++ b/app/javascript/mastodon/features/account_timeline/containers/header_container.js @@ -23,6 +23,7 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import { unfollowModal } from '../../../initial_state'; const messages = defineMessages({ + cancelFollowRequestConfirm: { id: 'confirmations.cancel_follow_request.confirm', defaultMessage: 'Withdraw request' }, unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' }, }); @@ -42,7 +43,7 @@ const makeMapStateToProps = () => { const mapDispatchToProps = (dispatch, { intl }) => ({ onFollow (account) { - if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) { + if (account.getIn(['relationship', 'following'])) { if (unfollowModal) { dispatch(openModal('CONFIRM', { message: @{account.get('acct')} }} />, @@ -52,11 +53,29 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ } else { dispatch(unfollowAccount(account.get('id'))); } + } else if (account.getIn(['relationship', 'requested'])) { + if (unfollowModal) { + dispatch(openModal('CONFIRM', { + message: @{account.get('acct')}
      }} />, + confirm: intl.formatMessage(messages.cancelFollowRequestConfirm), + onConfirm: () => dispatch(unfollowAccount(account.get('id'))), + })); + } else { + dispatch(unfollowAccount(account.get('id'))); + } } else { dispatch(followAccount(account.get('id'))); } }, + onInteractionModal (account) { + dispatch(openModal('INTERACTION', { + type: 'follow', + accountId: account.get('id'), + url: account.get('url'), + })); + }, + onBlock (account) { if (account.getIn(['relationship', 'blocking'])) { dispatch(unblockAccount(account.get('id'))); @@ -121,12 +140,25 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ dispatch(unblockDomain(domain)); }, - onAddToList(account){ + onAddToList (account) { dispatch(openModal('LIST_ADDER', { accountId: account.get('id'), })); }, + onChangeLanguages (account) { + dispatch(openModal('SUBSCRIBED_LANGUAGES', { + accountId: account.get('id'), + })); + }, + + onOpenAvatar (account) { + dispatch(openModal('IMAGE', { + src: account.get('avatar'), + alt: account.get('acct'), + })); + }, + }); export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Header)); diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.js index 5b592c5a76ceea..525837c72caf41 100644 --- a/app/javascript/mastodon/features/account_timeline/index.js +++ b/app/javascript/mastodon/features/account_timeline/index.js @@ -18,19 +18,22 @@ import { me } from 'mastodon/initial_state'; import { connectTimeline, disconnectTimeline } from 'mastodon/actions/timelines'; import LimitedAccountHint from './components/limited_account_hint'; import { getAccountHidden } from 'mastodon/selectors'; +import { fetchFeaturedTags } from '../../actions/featured_tags'; +import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; const emptyList = ImmutableList(); -const mapStateToProps = (state, { params: { acct, id }, withReplies = false }) => { - const accountId = id || state.getIn(['accounts_map', acct]); +const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = false }) => { + const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); if (!accountId) { return { isLoading: true, + statusIds: emptyList, }; } - const path = withReplies ? `${accountId}:with_replies` : accountId; + const path = withReplies ? `${accountId}:with_replies` : `${accountId}${tagged ? `:${tagged}` : ''}`; return { accountId, @@ -38,7 +41,7 @@ const mapStateToProps = (state, { params: { acct, id }, withReplies = false }) = remoteUrl: state.getIn(['accounts', accountId, 'url']), isAccount: !!state.getIn(['accounts', accountId]), statusIds: state.getIn(['timelines', `account:${path}`, 'items'], emptyList), - featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], emptyList), + featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned${tagged ? `:${tagged}` : ''}`, 'items'], emptyList), isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']), hasMore: state.getIn(['timelines', `account:${path}`, 'hasMore']), suspended: state.getIn(['accounts', accountId, 'suspended'], false), @@ -62,6 +65,7 @@ class AccountTimeline extends ImmutablePureComponent { params: PropTypes.shape({ acct: PropTypes.string, id: PropTypes.string, + tagged: PropTypes.string, }).isRequired, accountId: PropTypes.string, dispatch: PropTypes.func.isRequired, @@ -80,15 +84,16 @@ class AccountTimeline extends ImmutablePureComponent { }; _load () { - const { accountId, withReplies, dispatch } = this.props; + const { accountId, withReplies, params: { tagged }, dispatch } = this.props; dispatch(fetchAccount(accountId)); if (!withReplies) { - dispatch(expandAccountFeaturedTimeline(accountId)); + dispatch(expandAccountFeaturedTimeline(accountId, { tagged })); } - dispatch(expandAccountTimeline(accountId, { withReplies })); + dispatch(fetchFeaturedTags(accountId)); + dispatch(expandAccountTimeline(accountId, { withReplies, tagged })); if (accountId === me) { dispatch(connectTimeline(`account:${me}`)); @@ -106,12 +111,17 @@ class AccountTimeline extends ImmutablePureComponent { } componentDidUpdate (prevProps) { - const { params: { acct }, accountId, dispatch } = this.props; + const { params: { acct, tagged }, accountId, withReplies, dispatch } = this.props; if (prevProps.accountId !== accountId && accountId) { this._load(); } else if (prevProps.params.acct !== acct) { dispatch(lookupAccount(acct)); + } else if (prevProps.params.tagged !== tagged) { + if (!withReplies) { + dispatch(expandAccountFeaturedTimeline(accountId, { tagged })); + } + dispatch(expandAccountTimeline(accountId, { withReplies, tagged })); } if (prevProps.accountId === me && accountId !== me) { @@ -128,25 +138,23 @@ class AccountTimeline extends ImmutablePureComponent { } handleLoadMore = maxId => { - this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies })); + this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies, tagged: this.props.params.tagged })); } render () { const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props; - if (!isAccount) { + if (isLoading && statusIds.isEmpty()) { return ( - - + ); - } - - if (!statusIds && isLoading) { + } else if (!isLoading && !isAccount) { return ( - + + ); } @@ -174,7 +182,7 @@ class AccountTimeline extends ImmutablePureComponent { } + prepend={} alwaysPrepend append={remoteMessage} scrollKey='account_timeline' diff --git a/app/javascript/mastodon/features/area_timeline/components/column_settings.js b/app/javascript/mastodon/features/area_timeline/components/column_settings.js index b47fbec73192fb..73b8222d575b42 100644 --- a/app/javascript/mastodon/features/area_timeline/components/column_settings.js +++ b/app/javascript/mastodon/features/area_timeline/components/column_settings.js @@ -1,19 +1,15 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { injectIntl, FormattedMessage } from 'react-intl'; import SettingSelect from '../../../components/setting_select'; -const messages = defineMessages({ - filter_area: { id: 'area.column_settings.filter_area', defaultMessage: 'Filter out by area' }, - settings: { id: 'area.settings', defaultMessage: 'Column settings' }, -}); - export default @injectIntl class ColumnSettings extends React.PureComponent { static propTypes = { settings: ImmutablePropTypes.map.isRequired, + pinned: PropTypes.bool.isRequired, onChange: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; @@ -22,22 +18,30 @@ class ColumnSettings extends React.PureComponent { var area_data = require('../../../../area_settings.json'); var groups = area_data['instance-areas']; var areas = new Array(); - groups.map((option, index) => { + groups.map((option) => { areas[option.group_id] = option.group_name; }); return areas; } render () { - const { settings, onChange } = this.props; + const { settings, pinned, onChange } = this.props; var areas = this.readAreas(); + var settingKey = []; + if (pinned) { + // そのカラムが固定されていたら ['settings', 'columns', $UUID, 'params', 'id'] に地域名を格納 + settingKey = ['id']; + } else { + // 固定されていなければ、 ['settings', 'area', 'area', 'body'] に地域名を格納 + settingKey = ['area', 'body']; + } return (
      - +
      ); diff --git a/app/javascript/mastodon/features/area_timeline/containers/column_settings_container.js b/app/javascript/mastodon/features/area_timeline/containers/column_settings_container.js index d80e225fcf27d3..50ae5b59d20a6a 100644 --- a/app/javascript/mastodon/features/area_timeline/containers/column_settings_container.js +++ b/app/javascript/mastodon/features/area_timeline/containers/column_settings_container.js @@ -10,16 +10,17 @@ const mapStateToProps = (state, { columnId }) => { return { settings: (uuid && index >= 0) ? columns.get(index).get('params') : state.getIn(['settings', 'area']), + pinned: !!columnId, }; }; const mapDispatchToProps = (dispatch, { columnId }) => { return { - onChange (key, checked) { + onChange (key, areaName) { if (columnId) { - dispatch(changeColumnParams(columnId, key, checked)); + dispatch(changeColumnParams(columnId, key, areaName)); } else { - dispatch(changeSetting(['area', ...key], checked)); + dispatch(changeSetting(['area', ...key], areaName)); } }, }; diff --git a/app/javascript/mastodon/features/area_timeline/index.js b/app/javascript/mastodon/features/area_timeline/index.js index 6ce4ab2dac525b..7a4e764b0e3fc8 100644 --- a/app/javascript/mastodon/features/area_timeline/index.js +++ b/app/javascript/mastodon/features/area_timeline/index.js @@ -11,6 +11,8 @@ import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ColumnSettingsContainer from './containers/column_settings_container'; import { connectAreaStream } from '../../actions/streaming'; +import { Helmet } from 'react-helmet'; +import DismissableBanner from 'mastodon/components/dismissable_banner'; const messages = defineMessages({ title: { id: 'column.area', defaultMessage: 'Area timeline' }, @@ -114,6 +116,10 @@ class AreaTimeline extends React.PureComponent { + + + + } bindToDocument={!multiColumn} /> + + + {intl.formatMessage(messages.title)} + + ); } diff --git a/app/javascript/mastodon/features/area_timeline_redirect/index.js b/app/javascript/mastodon/features/area_timeline_redirect/index.js index c93455fab9f1dc..fae7208e32d2bb 100644 --- a/app/javascript/mastodon/features/area_timeline_redirect/index.js +++ b/app/javascript/mastodon/features/area_timeline_redirect/index.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; -import { Redirect } from 'react-router'; +import { Redirect } from 'react-router-dom'; const mapStateToProps = state => ({ area: state.getIn(['settings', 'area']).getIn(['area', 'body']), diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.js index c47f55dd1ea8a4..00854d0e497160 100644 --- a/app/javascript/mastodon/features/audio/index.js +++ b/app/javascript/mastodon/features/audio/index.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; +import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; import { formatTime } from 'mastodon/features/video'; import Icon from 'mastodon/components/icon'; import classNames from 'classnames'; @@ -8,6 +8,9 @@ import { throttle } from 'lodash'; import { getPointerPosition, fileNameFromURL } from 'mastodon/features/video'; import { debounce } from 'lodash'; import Visualizer from './visualizer'; +import { displayMedia, useBlurhash } from '../../initial_state'; +import Blurhash from '../../components/blurhash'; +import { is } from 'immutable'; const messages = defineMessages({ play: { id: 'video.play', defaultMessage: 'Play' }, @@ -15,6 +18,7 @@ const messages = defineMessages({ mute: { id: 'video.mute', defaultMessage: 'Mute sound' }, unmute: { id: 'video.unmute', defaultMessage: 'Unmute sound' }, download: { id: 'video.download', defaultMessage: 'Download file' }, + hide: { id: 'audio.hide', defaultMessage: 'Hide audio' }, }); const TICK_SIZE = 10; @@ -30,10 +34,14 @@ class Audio extends React.PureComponent { duration: PropTypes.number, width: PropTypes.number, height: PropTypes.number, + sensitive: PropTypes.bool, editable: PropTypes.bool, fullscreen: PropTypes.bool, intl: PropTypes.object.isRequired, + blurhash: PropTypes.string, cacheWidth: PropTypes.func, + visible: PropTypes.bool, + onToggleVisibility: PropTypes.func, backgroundColor: PropTypes.string, foregroundColor: PropTypes.string, accentColor: PropTypes.string, @@ -53,6 +61,7 @@ class Audio extends React.PureComponent { muted: false, volume: 0.5, dragging: false, + revealed: this.props.visible !== undefined ? this.props.visible : (displayMedia !== 'hide_all' && !this.props.sensitive || displayMedia === 'show_all'), }; constructor (props) { @@ -78,6 +87,8 @@ class Audio extends React.PureComponent { backgroundColor: this.props.backgroundColor, foregroundColor: this.props.foregroundColor, accentColor: this.props.accentColor, + sensitive: this.props.sensitive, + visible: this.props.visible, }; } @@ -126,6 +137,12 @@ class Audio extends React.PureComponent { } } + componentWillReceiveProps (nextProps) { + if (!is(nextProps.visible, this.props.visible) && nextProps.visible !== undefined) { + this.setState({ revealed: nextProps.visible }); + } + } + componentWillUnmount () { window.removeEventListener('scroll', this.handleScroll); window.removeEventListener('resize', this.handleResize); @@ -189,6 +206,14 @@ class Audio extends React.PureComponent { }); } + toggleReveal = () => { + if (this.props.onToggleVisibility) { + this.props.onToggleVisibility(); + } else { + this.setState({ revealed: !this.state.revealed }); + } + } + handleVolumeMouseDown = e => { document.addEventListener('mousemove', this.handleMouseVolSlide, true); document.addEventListener('mouseup', this.handleVolumeMouseUp, true); @@ -433,13 +458,29 @@ class Audio extends React.PureComponent { } render () { - const { src, intl, alt, editable, autoPlay } = this.props; - const { paused, muted, volume, currentTime, duration, buffer, dragging } = this.state; + const { src, intl, alt, editable, autoPlay, sensitive, blurhash } = this.props; + const { paused, muted, volume, currentTime, duration, buffer, dragging, revealed } = this.state; const progress = Math.min((currentTime / duration) * 100, 100); + let warning; + if (sensitive) { + warning = ; + } else { + warning = ; + } + return ( -
      -
      + + {(revealed || editable) && + />}
      @@ -508,6 +555,7 @@ class Audio extends React.PureComponent {
      + {!editable && } diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.js b/app/javascript/mastodon/features/bookmarked_statuses/index.js index 8f41b0f9514fd5..097be17c968714 100644 --- a/app/javascript/mastodon/features/bookmarked_statuses/index.js +++ b/app/javascript/mastodon/features/bookmarked_statuses/index.js @@ -1,15 +1,16 @@ -import React from 'react'; -import { connect } from 'react-redux'; +import { debounce } from 'lodash'; import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { fetchBookmarkedStatuses, expandBookmarkedStatuses } from '../../actions/bookmarks'; -import Column from '../ui/components/column'; -import ColumnHeader from '../../components/column_header'; -import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; -import StatusList from '../../components/status_list'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { debounce } from 'lodash'; +import { connect } from 'react-redux'; +import { fetchBookmarkedStatuses, expandBookmarkedStatuses } from 'mastodon/actions/bookmarks'; +import { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns'; +import ColumnHeader from 'mastodon/components/column_header'; +import StatusList from 'mastodon/components/status_list'; +import Column from 'mastodon/features/ui/components/column'; const messages = defineMessages({ heading: { id: 'column.bookmarks', defaultMessage: 'Bookmarks' }, @@ -95,6 +96,11 @@ class Bookmarks extends ImmutablePureComponent { emptyMessage={emptyMessage} bindToDocument={!multiColumn} /> + + + {intl.formatMessage(messages.heading)} + + ); } diff --git a/app/javascript/mastodon/features/closed_registrations_modal/index.js b/app/javascript/mastodon/features/closed_registrations_modal/index.js new file mode 100644 index 00000000000000..275bd50aad6f20 --- /dev/null +++ b/app/javascript/mastodon/features/closed_registrations_modal/index.js @@ -0,0 +1,75 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import { FormattedMessage } from 'react-intl'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { domain } from 'mastodon/initial_state'; +import { fetchServer } from 'mastodon/actions/server'; + +const mapStateToProps = state => ({ + message: state.getIn(['server', 'server', 'registrations', 'message']), +}); + +export default @connect(mapStateToProps) +class ClosedRegistrationsModal extends ImmutablePureComponent { + + componentDidMount () { + const { dispatch } = this.props; + dispatch(fetchServer()); + } + + render () { + let closedRegistrationsMessage; + + if (this.props.message) { + closedRegistrationsMessage = ( +

      + ); + } else { + closedRegistrationsMessage = ( +

      + {domain} }} + /> +

      + ); + } + + return ( +
      +
      +

      +

      + +

      +
      + +
      +
      +

      + {closedRegistrationsMessage} +
      + +
      +

      +

      + +

      + +
      +
      +
      + ); + } + +}; diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.js index 30f77604867c25..7b3f8845f6b2e4 100644 --- a/app/javascript/mastodon/features/community_timeline/index.js +++ b/app/javascript/mastodon/features/community_timeline/index.js @@ -9,6 +9,9 @@ import { expandCommunityTimeline } from '../../actions/timelines'; import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import ColumnSettingsContainer from './containers/column_settings_container'; import { connectCommunityStream } from '../../actions/streaming'; +import { Helmet } from 'react-helmet'; +import { domain } from 'mastodon/initial_state'; +import DismissableBanner from 'mastodon/components/dismissable_banner'; const messages = defineMessages({ title: { id: 'column.community', defaultMessage: 'Local timeline' }, @@ -33,6 +36,7 @@ class CommunityTimeline extends React.PureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static defaultProps = { @@ -69,18 +73,30 @@ class CommunityTimeline extends React.PureComponent { componentDidMount () { const { dispatch, onlyMedia } = this.props; + const { signedIn } = this.context.identity; dispatch(expandCommunityTimeline({ onlyMedia })); - this.disconnect = dispatch(connectCommunityStream({ onlyMedia })); + + if (signedIn) { + this.disconnect = dispatch(connectCommunityStream({ onlyMedia })); + } } componentDidUpdate (prevProps) { + const { signedIn } = this.context.identity; + if (prevProps.onlyMedia !== this.props.onlyMedia) { const { dispatch, onlyMedia } = this.props; - this.disconnect(); + if (this.disconnect) { + this.disconnect(); + } + dispatch(expandCommunityTimeline({ onlyMedia })); - this.disconnect = dispatch(connectCommunityStream({ onlyMedia })); + + if (signedIn) { + this.disconnect = dispatch(connectCommunityStream({ onlyMedia })); + } } } @@ -120,6 +136,10 @@ class CommunityTimeline extends React.PureComponent { + + + + } bindToDocument={!multiColumn} /> + + + {intl.formatMessage(messages.title)} + + ); } diff --git a/app/javascript/mastodon/features/compose/components/action_bar.js b/app/javascript/mastodon/features/compose/components/action_bar.js index 4ff0b7b94b6120..ceed928bf5233b 100644 --- a/app/javascript/mastodon/features/compose/components/action_bar.js +++ b/app/javascript/mastodon/features/compose/components/action_bar.js @@ -56,7 +56,7 @@ class ActionBar extends React.PureComponent { return (
      - +
      ); diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.js index 4620d1c4313074..6a65f44da3aba2 100644 --- a/app/javascript/mastodon/features/compose/components/compose_form.js +++ b/app/javascript/mastodon/features/compose/components/compose_form.js @@ -27,7 +27,7 @@ const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u20 const messages = defineMessages({ placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' }, spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' }, - publish: { id: 'compose_form.publish', defaultMessage: 'Toot' }, + publish: { id: 'compose_form.publish', defaultMessage: 'Publish' }, publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}!' }, saveChanges: { id: 'compose_form.save_changes', defaultMessage: 'Save changes' }, }); @@ -93,7 +93,7 @@ class ComposeForm extends ImmutablePureComponent { return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (isOnlyWhitespace && !anyMedia)); } - handleSubmit = () => { + handleSubmit = (e) => { if (this.props.text !== this.autosuggestTextarea.textarea.value) { // Something changed the text inside the textarea (e.g. browser extensions like Grammarly) // Update the state to match the current text @@ -105,6 +105,10 @@ class ComposeForm extends ImmutablePureComponent { } this.props.onSubmit(this.context.router ? this.context.router.history : null); + + if (e) { + e.preventDefault(); + } } onSuggestionsClearRequested = () => { @@ -217,7 +221,7 @@ class ComposeForm extends ImmutablePureComponent { } return ( -
      + @@ -279,10 +283,15 @@ class ComposeForm extends ImmutablePureComponent {
      -
      -
      + ); } diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js index f433e4de9faa6a..8cca8af2a8a490 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js @@ -96,12 +96,12 @@ class ModifierPickerMenu extends React.PureComponent { return (
      - - - - - - + + + + + +
      ); } diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.js index d76490c775f89b..bf56fd0faef588 100644 --- a/app/javascript/mastodon/features/compose/components/language_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/language_dropdown.js @@ -8,6 +8,7 @@ import spring from 'react-motion/lib/spring'; import { supportsPassiveEvents } from 'detect-passive-events'; import classNames from 'classnames'; import { languages as preloadedLanguages } from 'mastodon/initial_state'; +import { loupeIcon, deleteIcon } from 'mastodon/utils/icons'; import fuzzysort from 'fuzzysort'; const messages = defineMessages({ @@ -16,22 +17,6 @@ const messages = defineMessages({ clear: { id: 'emoji_button.clear', defaultMessage: 'Clear' }, }); -// Copied from emoji-mart for consistency with emoji picker and since -// they don't export the icons in the package -const icons = { - loupe: ( - - - - ), - - delete: ( - - - - ), -}; - const listenerOptions = supportsPassiveEvents ? { passive: true } : false; class LanguageDropdownMenu extends React.PureComponent { @@ -66,6 +51,15 @@ class LanguageDropdownMenu extends React.PureComponent { document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); this.setState({ mounted: true }); + + // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need + // to wait for a frame before focusing + requestAnimationFrame(() => { + if (this.node) { + const element = this.node.querySelector('input[type="search"]'); + if (element) element.focus(); + } + }); } componentWillUnmount () { @@ -241,8 +235,8 @@ class LanguageDropdownMenu extends React.PureComponent { // react-overlays
      - - + +
      diff --git a/app/javascript/mastodon/features/compose/components/navigation_bar.js b/app/javascript/mastodon/features/compose/components/navigation_bar.js index e6ba7d8b73d15f..be979af505e899 100644 --- a/app/javascript/mastodon/features/compose/components/navigation_bar.js +++ b/app/javascript/mastodon/features/compose/components/navigation_bar.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ActionBar from './action_bar'; import Avatar from '../../../components/avatar'; -import Permalink from '../../../components/permalink'; +import { Link } from 'react-router-dom'; import IconButton from '../../../components/icon_button'; import { FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; @@ -19,15 +19,15 @@ export default class NavigationBar extends ImmutablePureComponent { render () { return (
      - + {this.props.account.get('acct')} - - + +
      - + @{this.props.account.get('acct')} - +
      diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index db49f90eb4cb95..ede29b8a08a97e 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -157,7 +157,7 @@ class PollForm extends ImmutablePureComponent {
      - + {/* eslint-disable-next-line jsx-a11y/no-onchange */} + +
      + +
      + {results.map(this.renderItem)} + {isSearching && this.renderCreateNew(searchValue) } +
      + + + ); + } + +} diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.js b/app/javascript/mastodon/features/follow_recommendations/components/account.js index ffc0ab00cc21de..14f4e7e1b3a013 100644 --- a/app/javascript/mastodon/features/follow_recommendations/components/account.js +++ b/app/javascript/mastodon/features/follow_recommendations/components/account.js @@ -6,7 +6,7 @@ import { connect } from 'react-redux'; import { makeGetAccount } from 'mastodon/selectors'; import Avatar from 'mastodon/components/avatar'; import DisplayName from 'mastodon/components/display_name'; -import Permalink from 'mastodon/components/permalink'; +import { Link } from 'react-router-dom'; import IconButton from 'mastodon/components/icon_button'; import { injectIntl, defineMessages } from 'react-intl'; import { followAccount, unfollowAccount } from 'mastodon/actions/accounts'; @@ -66,13 +66,13 @@ class Account extends ImmutablePureComponent { return (
      - +
      {getFirstSentence(account.get('note_plain'))}
      -
      +
      {button} diff --git a/app/javascript/mastodon/features/follow_recommendations/index.js b/app/javascript/mastodon/features/follow_recommendations/index.js index b5a71aef5b3fff..5f7baa64cae192 100644 --- a/app/javascript/mastodon/features/follow_recommendations/index.js +++ b/app/javascript/mastodon/features/follow_recommendations/index.js @@ -10,9 +10,9 @@ import { requestBrowserPermission } from 'mastodon/actions/notifications'; import { markAsPartial } from 'mastodon/actions/timelines'; import Column from 'mastodon/features/ui/components/column'; import Account from './components/account'; -import Logo from 'mastodon/components/logo'; import imageGreeting from 'mastodon/../images/elephant_ui_greeting.svg'; import Button from 'mastodon/components/button'; +import { Helmet } from 'react-helmet'; const mapStateToProps = state => ({ suggestions: state.getIn(['suggestions', 'items']), @@ -78,7 +78,10 @@ class FollowRecommendations extends ImmutablePureComponent {
      - + + + +

      @@ -102,6 +105,10 @@ class FollowRecommendations extends ImmutablePureComponent { )}
      + + + +
      ); } diff --git a/app/javascript/mastodon/features/follow_requests/components/account_authorize.js b/app/javascript/mastodon/features/follow_requests/components/account_authorize.js index 263a7ae1626332..d41f331e5e1aac 100644 --- a/app/javascript/mastodon/features/follow_requests/components/account_authorize.js +++ b/app/javascript/mastodon/features/follow_requests/components/account_authorize.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import Permalink from '../../../components/permalink'; +import { Link } from 'react-router-dom'; import Avatar from '../../../components/avatar'; import DisplayName from '../../../components/display_name'; import IconButton from '../../../components/icon_button'; @@ -30,10 +30,10 @@ class AccountAuthorize extends ImmutablePureComponent { return (
      - +
      -
      +
      diff --git a/app/javascript/mastodon/features/follow_requests/index.js b/app/javascript/mastodon/features/follow_requests/index.js index 1f9b635bb78185..d16aa7737edbc1 100644 --- a/app/javascript/mastodon/features/follow_requests/index.js +++ b/app/javascript/mastodon/features/follow_requests/index.js @@ -12,6 +12,7 @@ import AccountAuthorizeContainer from './containers/account_authorize_container' import { fetchFollowRequests, expandFollowRequests } from '../../actions/accounts'; import ScrollableList from '../../components/scrollable_list'; import { me } from '../../initial_state'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' }, @@ -87,6 +88,10 @@ class FollowRequests extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/mastodon/features/followers/index.js b/app/javascript/mastodon/features/followers/index.js index 5b7f402f8d9f8d..277eb702fb6338 100644 --- a/app/javascript/mastodon/features/followers/index.js +++ b/app/javascript/mastodon/features/followers/index.js @@ -21,9 +21,10 @@ import MissingIndicator from 'mastodon/components/missing_indicator'; import TimelineHint from 'mastodon/components/timeline_hint'; import LimitedAccountHint from '../account_timeline/components/limited_account_hint'; import { getAccountHidden } from 'mastodon/selectors'; +import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; const mapStateToProps = (state, { params: { acct, id } }) => { - const accountId = id || state.getIn(['accounts_map', acct]); + const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); if (!accountId) { return { diff --git a/app/javascript/mastodon/features/following/index.js b/app/javascript/mastodon/features/following/index.js index 143082d760a086..e23d9b35cdfd0a 100644 --- a/app/javascript/mastodon/features/following/index.js +++ b/app/javascript/mastodon/features/following/index.js @@ -21,9 +21,10 @@ import MissingIndicator from 'mastodon/components/missing_indicator'; import TimelineHint from 'mastodon/components/timeline_hint'; import LimitedAccountHint from '../account_timeline/components/limited_account_hint'; import { getAccountHidden } from 'mastodon/selectors'; +import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; const mapStateToProps = (state, { params: { acct, id } }) => { - const accountId = id || state.getIn(['accounts_map', acct]); + const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); if (!accountId) { return { diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js index 36524de7d2f0bd..27b9f2677c5899 100644 --- a/app/javascript/mastodon/features/getting_started/index.js +++ b/app/javascript/mastodon/features/getting_started/index.js @@ -1,8 +1,9 @@ import React from 'react'; -import Column from '../ui/components/column'; +import Column from 'mastodon/components/column'; +import ColumnHeader from 'mastodon/components/column_header'; import ColumnLink from '../ui/components/column_link'; import ColumnSubheading from '../ui/components/column_subheading'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; @@ -11,9 +12,9 @@ import { me, showTrends } from '../../initial_state'; import { fetchFollowRequests } from 'mastodon/actions/accounts'; import { List as ImmutableList } from 'immutable'; import NavigationContainer from '../compose/containers/navigation_container'; -import Icon from 'mastodon/components/icon'; import LinkFooter from 'mastodon/features/ui/components/link_footer'; import TrendsContainer from './containers/trends_container'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' }, @@ -41,7 +42,6 @@ const messages = defineMessages({ const mapStateToProps = state => ({ myAccount: state.getIn(['accounts', me]), - columns: state.getIn(['settings', 'columns']), unreadFollowRequests: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size, }); @@ -59,20 +59,18 @@ const badgeDisplay = (number, limit) => { } }; -const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2); - export default @connect(mapStateToProps, mapDispatchToProps) @injectIntl class GettingStarted extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object.isRequired, + identity: PropTypes.object, }; static propTypes = { intl: PropTypes.object.isRequired, - myAccount: ImmutablePropTypes.map.isRequired, - columns: ImmutablePropTypes.list, + myAccount: ImmutablePropTypes.map, multiColumn: PropTypes.bool, fetchFollowRequests: PropTypes.func.isRequired, unreadFollowRequests: PropTypes.number, @@ -80,10 +78,10 @@ class GettingStarted extends ImmutablePureComponent { }; componentDidMount () { - const { fetchFollowRequests, multiColumn } = this.props; + const { fetchFollowRequests } = this.props; + const { signedIn } = this.context.identity; - if (!multiColumn && window.innerWidth >= NAVIGATION_PANEL_BREAKPOINT) { - this.context.router.history.replace('/home'); + if (!signedIn) { return; } @@ -91,92 +89,67 @@ class GettingStarted extends ImmutablePureComponent { } render () { - const { intl, myAccount, columns, multiColumn, unreadFollowRequests } = this.props; + const { intl, myAccount, multiColumn, unreadFollowRequests } = this.props; + const { signedIn } = this.context.identity; const navItems = []; - let height = (multiColumn) ? 0 : 60; - - if (multiColumn) { - navItems.push( - , - ); - height += 34; - } navItems.push( - , + , ); - height += 48; - if (multiColumn) { + if (showTrends) { navItems.push( - , - , - , + , ); + } - height += 48*3; + navItems.push( + , + , + , + ); + if (signedIn) { navItems.push( , - ); - - height += 34; - } - - if (multiColumn && !columns.find(item => item.get('id') === 'HOME')) { - navItems.push( , + , + , + , + , ); - height += 48; - } - - navItems.push( - , - , - , - , - ); - height += 48*4; + if (myAccount.get('locked') || unreadFollowRequests > 0) { + navItems.push(); + } - if (myAccount.get('locked') || unreadFollowRequests > 0) { - navItems.push(); - height += 48; - } - - if (!multiColumn) { navItems.push( , , ); - - height += 34 + 48; } return ( - - {multiColumn &&
      -

      - -

      -
      } - -
      -
      - {!multiColumn && } + + {(signedIn && !multiColumn) ? : } + +
      +
      {navItems}
      {!multiColumn &&
      } - +
      - {multiColumn && showTrends && } + {(multiColumn && showTrends) && } + + + {intl.formatMessage(messages.menu)} + + ); } diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.js index 6a808eb306c482..b635c35291c5f9 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.js +++ b/app/javascript/mastodon/features/hashtag_timeline/index.js @@ -1,31 +1,49 @@ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; import StatusListContainer from '../ui/containers/status_list_container'; -import Column from '../../components/column'; -import ColumnHeader from '../../components/column_header'; +import Column from 'mastodon/components/column'; +import ColumnHeader from 'mastodon/components/column_header'; import ColumnSettingsContainer from './containers/column_settings_container'; -import { expandHashtagTimeline, clearTimeline } from '../../actions/timelines'; -import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; -import { FormattedMessage } from 'react-intl'; -import { connectHashtagStream } from '../../actions/streaming'; +import { expandHashtagTimeline, clearTimeline } from 'mastodon/actions/timelines'; +import { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns'; +import { injectIntl, FormattedMessage, defineMessages } from 'react-intl'; +import { connectHashtagStream } from 'mastodon/actions/streaming'; import { isEqual } from 'lodash'; +import { fetchHashtag, followHashtag, unfollowHashtag } from 'mastodon/actions/tags'; +import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; +import { Helmet } from 'react-helmet'; + +const messages = defineMessages({ + followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' }, + unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' }, +}); const mapStateToProps = (state, props) => ({ hasUnread: state.getIn(['timelines', `hashtag:${props.params.id}${props.params.local ? ':local' : ''}`, 'unread']) > 0, + tag: state.getIn(['tags', props.params.id]), }); export default @connect(mapStateToProps) +@injectIntl class HashtagTimeline extends React.PureComponent { disconnects = []; + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { params: PropTypes.object.isRequired, columnId: PropTypes.string, dispatch: PropTypes.func.isRequired, hasUnread: PropTypes.bool, + tag: ImmutablePropTypes.map, multiColumn: PropTypes.bool, + intl: PropTypes.object, }; handlePin = () => { @@ -39,7 +57,8 @@ class HashtagTimeline extends React.PureComponent { } title = () => { - let title = [this.props.params.id]; + const { id } = this.props.params; + const title = [id]; if (this.additionalFor('any')) { title.push(' ', ); @@ -76,6 +95,12 @@ class HashtagTimeline extends React.PureComponent { } _subscribe (dispatch, id, tags = {}, local) { + const { signedIn } = this.context.identity; + + if (!signedIn) { + return; + } + let any = (tags.any || []).map(tag => tag.value); let all = (tags.all || []).map(tag => tag.value); let none = (tags.none || []).map(tag => tag.value); @@ -95,23 +120,34 @@ class HashtagTimeline extends React.PureComponent { this.disconnects = []; } - componentDidMount () { + _unload () { + const { dispatch } = this.props; + const { id, local } = this.props.params; + + this._unsubscribe(); + dispatch(clearTimeline(`hashtag:${id}${local ? ':local' : ''}`)); + } + + _load() { const { dispatch } = this.props; const { id, tags, local } = this.props.params; this._subscribe(dispatch, id, tags, local); dispatch(expandHashtagTimeline(id, { tags, local })); + dispatch(fetchHashtag(id)); } - componentWillReceiveProps (nextProps) { - const { dispatch, params } = this.props; - const { id, tags, local } = nextProps.params; + componentDidMount () { + this._load(); + } + + componentDidUpdate (prevProps) { + const { params } = this.props; + const { id, tags, local } = prevProps.params; if (id !== params.id || !isEqual(tags, params.tags) || !isEqual(local, params.local)) { - this._unsubscribe(); - this._subscribe(dispatch, id, tags, local); - dispatch(clearTimeline(`hashtag:${id}${local ? ':local' : ''}`)); - dispatch(expandHashtagTimeline(id, { tags, local })); + this._unload(); + this._load(); } } @@ -124,14 +160,45 @@ class HashtagTimeline extends React.PureComponent { } handleLoadMore = maxId => { - const { id, tags, local } = this.props.params; - this.props.dispatch(expandHashtagTimeline(id, { maxId, tags, local })); + const { dispatch, params } = this.props; + const { id, tags, local } = params; + + dispatch(expandHashtagTimeline(id, { maxId, tags, local })); + } + + handleFollow = () => { + const { dispatch, params, tag } = this.props; + const { id } = params; + const { signedIn } = this.context.identity; + + if (!signedIn) { + return; + } + + if (tag.get('following')) { + dispatch(unfollowHashtag(id)); + } else { + dispatch(followHashtag(id)); + } } render () { - const { hasUnread, columnId, multiColumn } = this.props; + const { hasUnread, columnId, multiColumn, tag, intl } = this.props; const { id, local } = this.props.params; const pinned = !!columnId; + const { signedIn } = this.context.identity; + + let followButton; + + if (tag) { + const following = tag.get('following'); + + followButton = ( + + ); + } return ( @@ -144,6 +211,7 @@ class HashtagTimeline extends React.PureComponent { onClick={this.handleHeaderClick} pinned={pinned} multiColumn={multiColumn} + extraButton={followButton} showBackButton > {columnId && } @@ -157,6 +225,11 @@ class HashtagTimeline extends React.PureComponent { emptyMessage={} bindToDocument={!multiColumn} /> + + + #{id} + + ); } diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.js index dc440f2fe00a9f..ae11ccbe4719f8 100644 --- a/app/javascript/mastodon/features/home_timeline/index.js +++ b/app/javascript/mastodon/features/home_timeline/index.js @@ -13,6 +13,8 @@ import { fetchAnnouncements, toggleShowAnnouncements } from 'mastodon/actions/an import AnnouncementsContainer from 'mastodon/features/getting_started/containers/announcements_container'; import classNames from 'classnames'; import IconWithBadge from 'mastodon/components/icon_with_badge'; +import NotSignedInIndicator from 'mastodon/components/not_signed_in_indicator'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ title: { id: 'column.home', defaultMessage: 'Home' }, @@ -32,6 +34,10 @@ export default @connect(mapStateToProps) @injectIntl class HomeTimeline extends React.PureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { dispatch: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, @@ -113,16 +119,17 @@ class HomeTimeline extends React.PureComponent { render () { const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; const pinned = !!columnId; + const { signedIn } = this.context.identity; let announcementsButton = null; if (hasAnnouncements) { announcementsButton = ( +
      + ); + } + +} + +export default @connect(mapStateToProps, mapDispatchToProps) +class InteractionModal extends React.PureComponent { + + static propTypes = { + displayNameHtml: PropTypes.string, + url: PropTypes.string, + type: PropTypes.oneOf(['reply', 'reblog', 'favourite', 'follow']), + onSignupClick: PropTypes.func.isRequired, + }; + + handleSignupClick = () => { + this.props.onSignupClick(); + } + + render () { + const { url, type, displayNameHtml } = this.props; + + const name = ; + + let title, actionDescription, icon; + + switch(type) { + case 'reply': + icon = ; + title = ; + actionDescription = ; + break; + case 'reblog': + icon = ; + title = ; + actionDescription = ; + break; + case 'favourite': + icon = ; + title = ; + actionDescription = ; + break; + case 'follow': + icon = ; + title = ; + actionDescription = ; + break; + } + + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + return ( +
      +
      +

      {icon} {title}

      +

      {actionDescription}

      +
      + +
      +
      +

      + + {signupButton} +
      + +
      +

      +

      + +
      +
      +
      + ); + } + +} diff --git a/app/javascript/mastodon/features/introduction/index.js b/app/javascript/mastodon/features/introduction/index.js deleted file mode 100644 index 5820750a4ee0bd..00000000000000 --- a/app/javascript/mastodon/features/introduction/index.js +++ /dev/null @@ -1,197 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import ReactSwipeableViews from 'react-swipeable-views'; -import classNames from 'classnames'; -import { connect } from 'react-redux'; -import { FormattedMessage } from 'react-intl'; -import { closeOnboarding } from '../../actions/onboarding'; -import screenHello from '../../../images/screen_hello.svg'; -import screenFederation from '../../../images/screen_federation.svg'; -import screenInteractions from '../../../images/screen_interactions.svg'; -import logoTransparent from '../../../images/logo_transparent.svg'; -import { disableSwiping } from 'mastodon/initial_state'; - -const FrameWelcome = ({ domain, onNext }) => ( -
      -
      - -
      - -
      -

      -

      {domain} }} />

      -
      - -
      - -
      -
      -); - -FrameWelcome.propTypes = { - domain: PropTypes.string.isRequired, - onNext: PropTypes.func.isRequired, -}; - -const FrameFederation = ({ onNext }) => ( -
      -
      - -
      - -
      -
      -

      -

      -
      - -
      -

      -

      -
      - -
      -

      -

      -
      -
      - -
      - -
      -
      -); - -FrameFederation.propTypes = { - onNext: PropTypes.func.isRequired, -}; - -const FrameInteractions = ({ onNext }) => ( -
      -
      - -
      - -
      -
      -

      -

      -
      - -
      -

      -

      -
      - -
      -

      -

      -
      -
      - -
      - -
      -
      -); - -FrameInteractions.propTypes = { - onNext: PropTypes.func.isRequired, -}; - -export default @connect(state => ({ domain: state.getIn(['meta', 'domain']) })) -class Introduction extends React.PureComponent { - - static propTypes = { - domain: PropTypes.string.isRequired, - dispatch: PropTypes.func.isRequired, - }; - - state = { - currentIndex: 0, - }; - - componentWillMount () { - this.pages = [ - , - , - , - ]; - } - - componentDidMount() { - window.addEventListener('keyup', this.handleKeyUp); - } - - componentWillUnmount() { - window.addEventListener('keyup', this.handleKeyUp); - } - - handleDot = (e) => { - const i = Number(e.currentTarget.getAttribute('data-index')); - e.preventDefault(); - this.setState({ currentIndex: i }); - } - - handlePrev = () => { - this.setState(({ currentIndex }) => ({ - currentIndex: Math.max(0, currentIndex - 1), - })); - } - - handleNext = () => { - const { pages } = this; - - this.setState(({ currentIndex }) => ({ - currentIndex: Math.min(currentIndex + 1, pages.length - 1), - })); - } - - handleSwipe = (index) => { - this.setState({ currentIndex: index }); - } - - handleFinish = () => { - this.props.dispatch(closeOnboarding()); - } - - handleKeyUp = ({ key }) => { - switch (key) { - case 'ArrowLeft': - this.handlePrev(); - break; - case 'ArrowRight': - this.handleNext(); - break; - } - } - - render () { - const { currentIndex } = this.state; - const { pages } = this; - - return ( -
      - - {pages.map((page, i) => ( -
      {page}
      - ))} -
      - -
      - {pages.map((_, i) => ( -
      - ))} -
      -
      - ); - } - -} diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.js index 8f1631d8295d6d..9a870478da1419 100644 --- a/app/javascript/mastodon/features/keyboard_shortcuts/index.js +++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.js @@ -1,9 +1,10 @@ import React from 'react'; -import Column from '../ui/components/column'; -import ColumnBackButtonSlim from '../../components/column_back_button_slim'; +import Column from 'mastodon/components/column'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import ColumnHeader from 'mastodon/components/column_header'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' }, @@ -21,8 +22,13 @@ class KeyboardShortcuts extends ImmutablePureComponent { const { intl, multiColumn } = this.props; return ( - - + + +
      @@ -159,6 +165,10 @@ class KeyboardShortcuts extends ImmutablePureComponent {
      + + + +
      ); } diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.js index 8010274f880254..f1829d34dd2a16 100644 --- a/app/javascript/mastodon/features/list_timeline/index.js +++ b/app/javascript/mastodon/features/list_timeline/index.js @@ -1,21 +1,22 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import StatusListContainer from '../ui/containers/status_list_container'; -import Column from '../../components/column'; -import ColumnBackButton from '../../components/column_back_button'; -import ColumnHeader from '../../components/column_header'; -import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; -import { connectListStream } from '../../actions/streaming'; -import { expandListTimeline } from '../../actions/timelines'; -import { fetchList, deleteList, updateList } from '../../actions/lists'; -import { openModal } from '../../actions/modal'; -import MissingIndicator from '../../components/missing_indicator'; -import LoadingIndicator from '../../components/loading_indicator'; +import { connect } from 'react-redux'; +import { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns'; +import { fetchList, deleteList, updateList } from 'mastodon/actions/lists'; +import { openModal } from 'mastodon/actions/modal'; +import { connectListStream } from 'mastodon/actions/streaming'; +import { expandListTimeline } from 'mastodon/actions/timelines'; +import Column from 'mastodon/components/column'; +import ColumnBackButton from 'mastodon/components/column_back_button'; +import ColumnHeader from 'mastodon/components/column_header'; import Icon from 'mastodon/components/icon'; +import LoadingIndicator from 'mastodon/components/loading_indicator'; +import MissingIndicator from 'mastodon/components/missing_indicator'; import RadioButton from 'mastodon/components/radio_button'; +import StatusListContainer from 'mastodon/features/ui/containers/status_list_container'; const messages = defineMessages({ deleteMessage: { id: 'confirmations.delete_list.message', defaultMessage: 'Are you sure you want to permanently delete this list?' }, @@ -177,11 +178,11 @@ class ListTimeline extends React.PureComponent { multiColumn={multiColumn} >
      - -
      @@ -208,6 +209,11 @@ class ListTimeline extends React.PureComponent { emptyMessage={} bindToDocument={!multiColumn} /> + + + {title} + +
      ); } diff --git a/app/javascript/mastodon/features/lists/components/new_list_form.js b/app/javascript/mastodon/features/lists/components/new_list_form.js index 7faf50be81c484..f790ccbe60fb47 100644 --- a/app/javascript/mastodon/features/lists/components/new_list_form.js +++ b/app/javascript/mastodon/features/lists/components/new_list_form.js @@ -1,8 +1,8 @@ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; -import { changeListEditorTitle, submitListEditor } from '../../../actions/lists'; -import IconButton from '../../../components/icon_button'; +import { changeListEditorTitle, submitListEditor } from 'mastodon/actions/lists'; +import Button from 'mastodon/components/button'; import { defineMessages, injectIntl } from 'react-intl'; const messages = defineMessages({ @@ -65,10 +65,9 @@ class NewListForm extends React.PureComponent { /> - diff --git a/app/javascript/mastodon/features/lists/index.js b/app/javascript/mastodon/features/lists/index.js index 809d79d99810f9..3a0b1373a6025c 100644 --- a/app/javascript/mastodon/features/lists/index.js +++ b/app/javascript/mastodon/features/lists/index.js @@ -1,18 +1,19 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import LoadingIndicator from '../../components/loading_indicator'; -import Column from '../ui/components/column'; -import ColumnBackButtonSlim from '../../components/column_back_button_slim'; -import { fetchLists } from '../../actions/lists'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import ColumnLink from '../ui/components/column_link'; -import ColumnSubheading from '../ui/components/column_subheading'; -import NewListForm from './components/new_list_form'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; import { createSelector } from 'reselect'; -import ScrollableList from '../../components/scrollable_list'; +import { fetchLists } from 'mastodon/actions/lists'; +import LoadingIndicator from 'mastodon/components/loading_indicator'; +import ScrollableList from 'mastodon/components/scrollable_list'; +import Column from 'mastodon/components/column'; +import ColumnHeader from 'mastodon/components/column_header'; +import ColumnLink from 'mastodon/features/ui/components/column_link'; +import ColumnSubheading from 'mastodon/features/ui/components/column_subheading'; +import NewListForm from './components/new_list_form'; const messages = defineMessages({ heading: { id: 'column.lists', defaultMessage: 'Lists' }, @@ -61,8 +62,8 @@ class Lists extends ImmutablePureComponent { const emptyMessage = ; return ( - - + + @@ -76,6 +77,11 @@ class Lists extends ImmutablePureComponent { , )} + + + {intl.formatMessage(messages.heading)} + + ); } diff --git a/app/javascript/mastodon/features/mutes/index.js b/app/javascript/mastodon/features/mutes/index.js index c21433cc414465..65df6149febd5e 100644 --- a/app/javascript/mastodon/features/mutes/index.js +++ b/app/javascript/mastodon/features/mutes/index.js @@ -11,6 +11,7 @@ import ColumnBackButtonSlim from '../../components/column_back_button_slim'; import AccountContainer from '../../containers/account_container'; import { fetchMutes, expandMutes } from '../../actions/mutes'; import ScrollableList from '../../components/scrollable_list'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.mutes', defaultMessage: 'Muted users' }, @@ -72,6 +73,10 @@ class Mutes extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.js index 1cdb2408677524..a38f8d3c2db2f4 100644 --- a/app/javascript/mastodon/features/notifications/components/column_settings.js +++ b/app/javascript/mastodon/features/notifications/components/column_settings.js @@ -5,10 +5,14 @@ import { FormattedMessage } from 'react-intl'; import ClearColumnButton from './clear_column_button'; import GrantPermissionButton from './grant_permission_button'; import SettingToggle from './setting_toggle'; -import { isStaff } from 'mastodon/initial_state'; +import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_REPORTS } from 'mastodon/permissions'; export default class ColumnSettings extends React.PureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { settings: ImmutablePropTypes.map.isRequired, pushSettings: ImmutablePropTypes.map.isRequired, @@ -17,7 +21,7 @@ export default class ColumnSettings extends React.PureComponent { onRequestNotificationPermission: PropTypes.func, alertsEnabled: PropTypes.bool, browserSupport: PropTypes.bool, - browserPermission: PropTypes.bool, + browserPermission: PropTypes.string, }; onPushChange = (path, checked) => { @@ -166,7 +170,7 @@ export default class ColumnSettings extends React.PureComponent {
      - {isStaff && ( + {((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) && (
      @@ -178,6 +182,19 @@ export default class ColumnSettings extends React.PureComponent {
      )} + + {((this.context.identity.permissions & PERMISSION_MANAGE_REPORTS) === PERMISSION_MANAGE_REPORTS) && ( +
      + + +
      + + {showPushSettings && } + + +
      +
      + )}
      ); } diff --git a/app/javascript/mastodon/features/notifications/components/follow_request.js b/app/javascript/mastodon/features/notifications/components/follow_request.js index 9ef3fde7eb060b..08de875e362ac7 100644 --- a/app/javascript/mastodon/features/notifications/components/follow_request.js +++ b/app/javascript/mastodon/features/notifications/components/follow_request.js @@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import Avatar from 'mastodon/components/avatar'; import DisplayName from 'mastodon/components/display_name'; -import Permalink from 'mastodon/components/permalink'; +import { Link } from 'react-router-dom'; import IconButton from 'mastodon/components/icon_button'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; @@ -42,10 +42,10 @@ class FollowRequest extends ImmutablePureComponent { return (
      - +
      -
      +
      diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.js index 9198e9c9d88894..ea2c9c0a42eb76 100644 --- a/app/javascript/mastodon/features/notifications/components/notification.js +++ b/app/javascript/mastodon/features/notifications/components/notification.js @@ -7,9 +7,10 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import { me } from 'mastodon/initial_state'; import StatusContainer from 'mastodon/containers/status_container'; import AccountContainer from 'mastodon/containers/account_container'; +import Report from './report'; import FollowRequestContainer from '../containers/follow_request_container'; import Icon from 'mastodon/components/icon'; -import Permalink from 'mastodon/components/permalink'; +import { Link } from 'react-router-dom'; import classNames from 'classnames'; const messages = defineMessages({ @@ -21,6 +22,7 @@ const messages = defineMessages({ status: { id: 'notification.status', defaultMessage: '{name} just posted' }, update: { id: 'notification.update', defaultMessage: '{name} edited a post' }, adminSignUp: { id: 'notification.admin.sign_up', defaultMessage: '{name} signed up' }, + adminReport: { id: 'notification.admin.report', defaultMessage: '{name} reported {target}' }, }); const notificationForScreenReader = (intl, message, timestamp) => { @@ -367,11 +369,41 @@ class Notification extends ImmutablePureComponent { ); } + renderAdminReport (notification, account, link) { + const { intl, unread, report } = this.props; + + if (!report) { + return null; + } + + const targetAccount = report.get('target_account'); + const targetDisplayNameHtml = { __html: targetAccount.get('display_name_html') }; + const targetLink = ; + + return ( + +
      +
      +
      + +
      + + + + +
      + +
      +
      + ); + } + render () { const { notification } = this.props; const account = notification.get('account'); const displayNameHtml = { __html: account.get('display_name_html') }; - const link = ; + const link = ; switch(notification.get('type')) { case 'follow': @@ -392,6 +424,8 @@ class Notification extends ImmutablePureComponent { return this.renderPoll(notification, account); case 'admin.sign_up': return this.renderAdminSignUp(notification, account, link); + case 'admin.report': + return this.renderAdminReport(notification, account, link); } return null; diff --git a/app/javascript/mastodon/features/notifications/components/report.js b/app/javascript/mastodon/features/notifications/components/report.js new file mode 100644 index 00000000000000..3ce3eb9d32f5fa --- /dev/null +++ b/app/javascript/mastodon/features/notifications/components/report.js @@ -0,0 +1,62 @@ +import React, { Fragment } from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import PropTypes from 'prop-types'; +import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import AvatarOverlay from 'mastodon/components/avatar_overlay'; +import RelativeTimestamp from 'mastodon/components/relative_timestamp'; + +const messages = defineMessages({ + openReport: { id: 'report_notification.open', defaultMessage: 'Open report' }, + other: { id: 'report_notification.categories.other', defaultMessage: 'Other' }, + spam: { id: 'report_notification.categories.spam', defaultMessage: 'Spam' }, + violation: { id: 'report_notification.categories.violation', defaultMessage: 'Rule violation' }, +}); + +export default @injectIntl +class Report extends ImmutablePureComponent { + + static propTypes = { + account: ImmutablePropTypes.map.isRequired, + report: ImmutablePropTypes.map.isRequired, + hidden: PropTypes.bool, + intl: PropTypes.object.isRequired, + }; + + render () { + const { intl, hidden, report, account } = this.props; + + if (!report) { + return null; + } + + if (hidden) { + return ( + + {report.get('id')} + + ); + } + + return ( +
      +
      + +
      + +
      +
      + · +
      + {intl.formatMessage(messages[report.get('category')])} +
      + + +
      +
      + ); + } + +} diff --git a/app/javascript/mastodon/features/notifications/containers/notification_container.js b/app/javascript/mastodon/features/notifications/containers/notification_container.js index 5c984197faa9bf..8bd5b3d782bd6b 100644 --- a/app/javascript/mastodon/features/notifications/containers/notification_container.js +++ b/app/javascript/mastodon/features/notifications/containers/notification_container.js @@ -1,5 +1,5 @@ import { connect } from 'react-redux'; -import { makeGetNotification, makeGetStatus } from '../../../selectors'; +import { makeGetNotification, makeGetStatus, makeGetReport } from '../../../selectors'; import Notification from '../components/notification'; import { initBoostModal } from '../../../actions/boosts'; import { mentionCompose } from '../../../actions/compose'; @@ -18,12 +18,14 @@ import { boostModal } from '../../../initial_state'; const makeMapStateToProps = () => { const getNotification = makeGetNotification(); const getStatus = makeGetStatus(); + const getReport = makeGetReport(); const mapStateToProps = (state, props) => { const notification = getNotification(state, props.notification, props.accountId); return { notification: notification, status: notification.get('status') ? getStatus(state, { id: notification.get('status') }) : null, + report: notification.get('report') ? getReport(state, notification.get('report'), notification.getIn(['report', 'target_account', 'id'])) : null, }; }; diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.js index a6a277d7ed9e2b..826a7e9ad3cebb 100644 --- a/app/javascript/mastodon/features/notifications/index.js +++ b/app/javascript/mastodon/features/notifications/index.js @@ -26,6 +26,8 @@ import LoadGap from '../../components/load_gap'; import Icon from 'mastodon/components/icon'; import compareId from 'mastodon/compare_id'; import NotificationsPermissionBanner from './components/notifications_permission_banner'; +import NotSignedInIndicator from 'mastodon/components/not_signed_in_indicator'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ title: { id: 'column.notifications', defaultMessage: 'Notifications' }, @@ -56,7 +58,7 @@ const getNotifications = createSelector([ const mapStateToProps = state => ({ showFilterBar: state.getIn(['settings', 'notifications', 'quickFilter', 'show']), notifications: getNotifications(state), - isLoading: state.getIn(['notifications', 'isLoading'], true), + isLoading: state.getIn(['notifications', 'isLoading'], 0) > 0, isUnread: state.getIn(['notifications', 'unread']) > 0 || state.getIn(['notifications', 'pendingItems']).size > 0, hasMore: state.getIn(['notifications', 'hasMore']), numPending: state.getIn(['notifications', 'pendingItems'], ImmutableList()).size, @@ -69,6 +71,10 @@ export default @connect(mapStateToProps) @injectIntl class Notifications extends React.PureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { columnId: PropTypes.string, notifications: ImmutablePropTypes.list.isRequired, @@ -178,10 +184,11 @@ class Notifications extends React.PureComponent { const { intl, notifications, isLoading, isUnread, columnId, multiColumn, hasMore, numPending, showFilterBar, lastReadId, canMarkAsRead, needsNotificationPermission } = this.props; const pinned = !!columnId; const emptyMessage = ; + const { signedIn } = this.context.identity; let scrollableContent = null; - const filterBarContainer = showFilterBar + const filterBarContainer = (signedIn && showFilterBar) ? () : null; @@ -211,26 +218,32 @@ class Notifications extends React.PureComponent { this.scrollableContent = scrollableContent; - const scrollContainer = ( - } - alwaysPrepend - emptyMessage={emptyMessage} - onLoadMore={this.handleLoadOlder} - onLoadPending={this.handleLoadPending} - onScrollToTop={this.handleScrollToTop} - onScroll={this.handleScroll} - bindToDocument={!multiColumn} - > - {scrollableContent} - - ); + let scrollContainer; + + if (signedIn) { + scrollContainer = ( + } + alwaysPrepend + emptyMessage={emptyMessage} + onLoadMore={this.handleLoadOlder} + onLoadPending={this.handleLoadPending} + onScrollToTop={this.handleScrollToTop} + onScroll={this.handleScroll} + bindToDocument={!multiColumn} + > + {scrollableContent} + + ); + } else { + scrollContainer = ; + } let extraButton = null; @@ -262,8 +275,14 @@ class Notifications extends React.PureComponent { > + {filterBarContainer} {scrollContainer} + + + {intl.formatMessage(messages.title)} + + ); } diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.js index 0cb42b25aac652..0dff834c3d9a0f 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.js +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.js @@ -43,6 +43,7 @@ class Footer extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -67,26 +68,44 @@ class Footer extends ImmutablePureComponent { }; handleReplyClick = () => { - const { dispatch, askReplyConfirmation, intl } = this.props; - - if (askReplyConfirmation) { - dispatch(openModal('CONFIRM', { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: this._performReply, - })); + const { dispatch, askReplyConfirmation, status, intl } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + if (askReplyConfirmation) { + dispatch(openModal('CONFIRM', { + message: intl.formatMessage(messages.replyMessage), + confirm: intl.formatMessage(messages.replyConfirm), + onConfirm: this._performReply, + })); + } else { + this._performReply(); + } } else { - this._performReply(); + dispatch(openModal('INTERACTION', { + type: 'reply', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } }; handleFavouriteClick = () => { const { dispatch, status } = this.props; - - if (status.get('favourited')) { - dispatch(unfavourite(status)); + const { signedIn } = this.context.identity; + + if (signedIn) { + if (status.get('favourited')) { + dispatch(unfavourite(status)); + } else { + dispatch(favourite(status)); + } } else { - dispatch(favourite(status)); + dispatch(openModal('INTERACTION', { + type: 'favourite', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } }; @@ -97,13 +116,22 @@ class Footer extends ImmutablePureComponent { handleReblogClick = e => { const { dispatch, status } = this.props; - - if (status.get('reblogged')) { - dispatch(unreblog(status)); - } else if ((e && e.shiftKey) || !boostModal) { - this._performReblog(status); + const { signedIn } = this.context.identity; + + if (signedIn) { + if (status.get('reblogged')) { + dispatch(unreblog(status)); + } else if ((e && e.shiftKey) || !boostModal) { + this._performReblog(status); + } else { + dispatch(initBoostModal({ status, onReblog: this._performReblog })); + } } else { - dispatch(initBoostModal({ status, onReblog: this._performReblog })); + dispatch(openModal('INTERACTION', { + type: 'reblog', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } }; @@ -154,9 +182,9 @@ class Footer extends ImmutablePureComponent { return (
      - - - {withOpenButton && } + + + {withOpenButton && }
      ); } diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.js index 67b13f10aa7bfd..c6790ea063aee0 100644 --- a/app/javascript/mastodon/features/pinned_statuses/index.js +++ b/app/javascript/mastodon/features/pinned_statuses/index.js @@ -8,6 +8,7 @@ import ColumnBackButtonSlim from '../../components/column_back_button_slim'; import StatusList from '../../components/status_list'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.pins', defaultMessage: 'Pinned post' }, @@ -54,6 +55,9 @@ class PinnedStatuses extends ImmutablePureComponent { hasMore={hasMore} bindToDocument={!multiColumn} /> + + + ); } diff --git a/app/javascript/mastodon/features/privacy_policy/index.js b/app/javascript/mastodon/features/privacy_policy/index.js new file mode 100644 index 00000000000000..3df487e8ff7dba --- /dev/null +++ b/app/javascript/mastodon/features/privacy_policy/index.js @@ -0,0 +1,61 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Helmet } from 'react-helmet'; +import { FormattedMessage, FormattedDate, injectIntl, defineMessages } from 'react-intl'; +import Column from 'mastodon/components/column'; +import api from 'mastodon/api'; +import Skeleton from 'mastodon/components/skeleton'; + +const messages = defineMessages({ + title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' }, +}); + +export default @injectIntl +class PrivacyPolicy extends React.PureComponent { + + static propTypes = { + intl: PropTypes.object, + multiColumn: PropTypes.bool, + }; + + state = { + content: null, + lastUpdated: null, + isLoading: true, + }; + + componentDidMount () { + api().get('/api/v1/instance/privacy_policy').then(({ data }) => { + this.setState({ content: data.content, lastUpdated: data.updated_at, isLoading: false }); + }).catch(() => { + this.setState({ isLoading: false }); + }); + } + + render () { + const { intl, multiColumn } = this.props; + const { isLoading, content, lastUpdated } = this.state; + + return ( + +
      +
      +

      +

      : }} />

      +
      + +
      +
      + + + {intl.formatMessage(messages.title)} + + + + ); + } + +} diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.js index b1d5518af55625..a41be07e1526a5 100644 --- a/app/javascript/mastodon/features/public_timeline/index.js +++ b/app/javascript/mastodon/features/public_timeline/index.js @@ -9,6 +9,8 @@ import { expandPublicTimeline } from '../../actions/timelines'; import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import ColumnSettingsContainer from './containers/column_settings_container'; import { connectPublicStream } from '../../actions/streaming'; +import { Helmet } from 'react-helmet'; +import DismissableBanner from 'mastodon/components/dismissable_banner'; const messages = defineMessages({ title: { id: 'column.public', defaultMessage: 'Federated timeline' }, @@ -35,6 +37,7 @@ class PublicTimeline extends React.PureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static defaultProps = { @@ -72,18 +75,30 @@ class PublicTimeline extends React.PureComponent { componentDidMount () { const { dispatch, onlyMedia, onlyRemote } = this.props; + const { signedIn } = this.context.identity; dispatch(expandPublicTimeline({ onlyMedia, onlyRemote })); - this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + + if (signedIn) { + this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + } } componentDidUpdate (prevProps) { + const { signedIn } = this.context.identity; + if (prevProps.onlyMedia !== this.props.onlyMedia || prevProps.onlyRemote !== this.props.onlyRemote) { const { dispatch, onlyMedia, onlyRemote } = this.props; - this.disconnect(); + if (this.disconnect) { + this.disconnect(); + } + dispatch(expandPublicTimeline({ onlyMedia, onlyRemote })); - this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + + if (signedIn) { + this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + } } } @@ -123,6 +138,10 @@ class PublicTimeline extends React.PureComponent { + + + + } bindToDocument={!multiColumn} /> + + + {intl.formatMessage(messages.title)} + + ); } diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.js index 7704a049f41198..36ca11d1a7be2b 100644 --- a/app/javascript/mastodon/features/reblogs/index.js +++ b/app/javascript/mastodon/features/reblogs/index.js @@ -11,6 +11,7 @@ import Column from '../ui/components/column'; import ScrollableList from '../../components/scrollable_list'; import Icon from 'mastodon/components/icon'; import ColumnHeader from '../../components/column_header'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ refresh: { id: 'refresh', defaultMessage: 'Refresh' }, @@ -67,7 +68,7 @@ class Reblogs extends ImmutablePureComponent { showBackButton multiColumn={multiColumn} extraButton={( - + )} /> @@ -80,6 +81,10 @@ class Reblogs extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/mastodon/features/report/category.js b/app/javascript/mastodon/features/report/category.js index 9215b3f51edfdc..c6c0a506f3f35b 100644 --- a/app/javascript/mastodon/features/report/category.js +++ b/app/javascript/mastodon/features/report/category.js @@ -5,6 +5,7 @@ import { connect } from 'react-redux'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import Button from 'mastodon/components/button'; import Option from './components/option'; +import { List as ImmutableList } from 'immutable'; const messages = defineMessages({ dislike: { id: 'report.reasons.dislike', defaultMessage: 'I don\'t like it' }, @@ -20,7 +21,7 @@ const messages = defineMessages({ }); const mapStateToProps = state => ({ - rules: state.get('rules'), + rules: state.getIn(['server', 'server', 'rules'], ImmutableList()), }); export default @connect(mapStateToProps) diff --git a/app/javascript/mastodon/features/report/components/status_check_box.js b/app/javascript/mastodon/features/report/components/status_check_box.js index 373c60e21e2944..5366da90be649f 100644 --- a/app/javascript/mastodon/features/report/components/status_check_box.js +++ b/app/javascript/mastodon/features/report/components/status_check_box.js @@ -7,14 +7,25 @@ import DisplayName from 'mastodon/components/display_name'; import RelativeTimestamp from 'mastodon/components/relative_timestamp'; import Option from './option'; import MediaAttachments from 'mastodon/components/media_attachments'; +import { injectIntl, defineMessages } from 'react-intl'; +import Icon from 'mastodon/components/icon'; -export default class StatusCheckBox extends React.PureComponent { +const messages = defineMessages({ + public_short: { id: 'privacy.public.short', defaultMessage: 'Public' }, + unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' }, + private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' }, + direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, +}); + +export default @injectIntl +class StatusCheckBox extends React.PureComponent { static propTypes = { id: PropTypes.string.isRequired, status: ImmutablePropTypes.map.isRequired, checked: PropTypes.bool, onToggle: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, }; handleStatusesToggle = (value, checked) => { @@ -23,12 +34,21 @@ export default class StatusCheckBox extends React.PureComponent { }; render () { - const { status, checked } = this.props; + const { status, checked, intl } = this.props; if (status.get('reblog')) { return null; } + const visibilityIconInfo = { + 'public': { icon: 'globe', text: intl.formatMessage(messages.public_short) }, + 'unlisted': { icon: 'unlock', text: intl.formatMessage(messages.unlisted_short) }, + 'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) }, + 'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) }, + }; + + const visibilityIcon = visibilityIconInfo[status.get('visibility')]; + const labelComponent = (
      @@ -37,7 +57,7 @@ export default class StatusCheckBox extends React.PureComponent {
      - · + ·
      diff --git a/app/javascript/mastodon/features/report/rules.js b/app/javascript/mastodon/features/report/rules.js index f2db0d9e4cc42c..920da68d6382b8 100644 --- a/app/javascript/mastodon/features/report/rules.js +++ b/app/javascript/mastodon/features/report/rules.js @@ -7,7 +7,7 @@ import Button from 'mastodon/components/button'; import Option from './components/option'; const mapStateToProps = state => ({ - rules: state.get('rules'), + rules: state.getIn(['server', 'server', 'rules']), }); export default @connect(mapStateToProps) diff --git a/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js b/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js deleted file mode 100644 index d3d8a6507e6d19..00000000000000 --- a/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js +++ /dev/null @@ -1,90 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandHashtagTimeline } from 'mastodon/actions/timelines'; -import Masonry from 'react-masonry-infinite'; -import { List as ImmutableList } from 'immutable'; -import DetailedStatusContainer from 'mastodon/features/status/containers/detailed_status_container'; -import { debounce } from 'lodash'; -import LoadingIndicator from 'mastodon/components/loading_indicator'; - -const mapStateToProps = (state, { hashtag }) => ({ - statusIds: state.getIn(['timelines', `hashtag:${hashtag}`, 'items'], ImmutableList()), - isLoading: state.getIn(['timelines', `hashtag:${hashtag}`, 'isLoading'], false), - hasMore: state.getIn(['timelines', `hashtag:${hashtag}`, 'hasMore'], false), -}); - -export default @connect(mapStateToProps) -class HashtagTimeline extends React.PureComponent { - - static propTypes = { - dispatch: PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list.isRequired, - isLoading: PropTypes.bool.isRequired, - hasMore: PropTypes.bool.isRequired, - hashtag: PropTypes.string.isRequired, - local: PropTypes.bool.isRequired, - }; - - static defaultProps = { - local: false, - }; - - componentDidMount () { - const { dispatch, hashtag, local } = this.props; - - dispatch(expandHashtagTimeline(hashtag, { local })); - } - - handleLoadMore = () => { - const { dispatch, hashtag, local, statusIds } = this.props; - const maxId = statusIds.last(); - - if (maxId) { - dispatch(expandHashtagTimeline(hashtag, { maxId, local })); - } - } - - setRef = c => { - this.masonry = c; - } - - handleHeightChange = debounce(() => { - if (!this.masonry) { - return; - } - - this.masonry.forcePack(); - }, 50) - - render () { - const { statusIds, hasMore, isLoading } = this.props; - - const sizes = [ - { columns: 1, gutter: 0 }, - { mq: '415px', columns: 1, gutter: 10 }, - { mq: '640px', columns: 2, gutter: 10 }, - { mq: '960px', columns: 3, gutter: 10 }, - { mq: '1255px', columns: 3, gutter: 10 }, - ]; - - const loader = (isLoading && statusIds.isEmpty()) ? : undefined; - - return ( - - {statusIds.map(statusId => ( -
      - -
      - )).toArray()} -
      - ); - } - -} diff --git a/app/javascript/mastodon/features/standalone/public_timeline/index.js b/app/javascript/mastodon/features/standalone/public_timeline/index.js deleted file mode 100644 index 19b0b14be6a35d..00000000000000 --- a/app/javascript/mastodon/features/standalone/public_timeline/index.js +++ /dev/null @@ -1,99 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandPublicTimeline, expandCommunityTimeline } from 'mastodon/actions/timelines'; -import Masonry from 'react-masonry-infinite'; -import { List as ImmutableList, Map as ImmutableMap } from 'immutable'; -import DetailedStatusContainer from 'mastodon/features/status/containers/detailed_status_container'; -import { debounce } from 'lodash'; -import LoadingIndicator from 'mastodon/components/loading_indicator'; - -const mapStateToProps = (state, { local }) => { - const timeline = state.getIn(['timelines', local ? 'community' : 'public'], ImmutableMap()); - - return { - statusIds: timeline.get('items', ImmutableList()), - isLoading: timeline.get('isLoading', false), - hasMore: timeline.get('hasMore', false), - }; -}; - -export default @connect(mapStateToProps) -class PublicTimeline extends React.PureComponent { - - static propTypes = { - dispatch: PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list.isRequired, - isLoading: PropTypes.bool.isRequired, - hasMore: PropTypes.bool.isRequired, - local: PropTypes.bool, - }; - - componentDidMount () { - this._connect(); - } - - componentDidUpdate (prevProps) { - if (prevProps.local !== this.props.local) { - this._connect(); - } - } - - _connect () { - const { dispatch, local } = this.props; - - dispatch(local ? expandCommunityTimeline() : expandPublicTimeline()); - } - - handleLoadMore = () => { - const { dispatch, statusIds, local } = this.props; - const maxId = statusIds.last(); - - if (maxId) { - dispatch(local ? expandCommunityTimeline({ maxId }) : expandPublicTimeline({ maxId })); - } - } - - setRef = c => { - this.masonry = c; - } - - handleHeightChange = debounce(() => { - if (!this.masonry) { - return; - } - - this.masonry.forcePack(); - }, 50) - - render () { - const { statusIds, hasMore, isLoading } = this.props; - - const sizes = [ - { columns: 1, gutter: 0 }, - { mq: '415px', columns: 1, gutter: 10 }, - { mq: '640px', columns: 2, gutter: 10 }, - { mq: '960px', columns: 3, gutter: 10 }, - { mq: '1255px', columns: 3, gutter: 10 }, - ]; - - const loader = (isLoading && statusIds.isEmpty()) ? : undefined; - - return ( - - {statusIds.map(statusId => ( -
      - -
      - )).toArray()} -
      - ); - } - -} diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js index edaff959e6cd5d..c1242754cc908f 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.js +++ b/app/javascript/mastodon/features/status/components/action_bar.js @@ -5,8 +5,9 @@ import IconButton from '../../../components/icon_button'; import ImmutablePropTypes from 'react-immutable-proptypes'; import DropdownMenuContainer from '../../../containers/dropdown_menu_container'; import { defineMessages, injectIntl } from 'react-intl'; -import { me, isStaff } from '../../../initial_state'; +import { me } from '../../../initial_state'; import classNames from 'classnames'; +import { PERMISSION_MANAGE_USERS } from 'mastodon/permissions'; const messages = defineMessages({ delete: { id: 'status.delete', defaultMessage: 'Delete' }, @@ -38,6 +39,7 @@ const messages = defineMessages({ unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' }, unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' }, unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' }, + openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' }, }); const mapStateToProps = (state, { status }) => ({ @@ -50,6 +52,7 @@ class ActionBar extends React.PureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -172,36 +175,28 @@ class ActionBar extends React.PureComponent { } handleCopy = () => { - const url = this.props.status.get('url'); - const textarea = document.createElement('textarea'); - - textarea.textContent = url; - textarea.style.position = 'fixed'; - - document.body.appendChild(textarea); - - try { - textarea.select(); - document.execCommand('copy'); - } catch (e) { - - } finally { - document.body.removeChild(textarea); - } + const url = this.props.status.get('url'); + navigator.clipboard.writeText(url); } render () { const { status, relationship, intl } = this.props; + const { signedIn, permissions } = this.context.identity; const publicStatus = ['public', 'unlisted'].includes(status.get('visibility')); const pinnableStatus = ['public', 'unlisted', 'private'].includes(status.get('visibility')); const mutingConversation = status.get('muted'); const account = status.get('account'); const writtenByMe = status.getIn(['account', 'id']) === me; + const isRemote = status.getIn(['account', 'username']) !== status.getIn(['account', 'acct']); let menu = []; if (publicStatus) { + if (isRemote) { + menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: status.get('url') }); + } + menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy }); menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed }); menu.push(null); @@ -215,7 +210,7 @@ class ActionBar extends React.PureComponent { menu.push({ text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), action: this.handleConversationMuteClick }); menu.push(null); - // menu.push({ text: intl.formatMessage(messages.edit), action: this.handleEditClick }); + menu.push({ text: intl.formatMessage(messages.edit), action: this.handleEditClick }); menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick }); menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick }); } else { @@ -248,10 +243,10 @@ class ActionBar extends React.PureComponent { } } - if (isStaff) { + if ((permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) { menu.push(null); menu.push({ text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` }); - menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses?id=${status.get('id')}` }); + menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` }); } } @@ -284,11 +279,12 @@ class ActionBar extends React.PureComponent {
      +
      + {shareButton} -
      - +
      ); diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.js index 3d81bcb29b626d..82537dd5d9f999 100644 --- a/app/javascript/mastodon/features/status/components/card.js +++ b/app/javascript/mastodon/features/status/components/card.js @@ -247,7 +247,7 @@ export default class Card extends React.PureComponent { {revealed && (
      - + {horizontal && }
      diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index 5e528a180018ae..9dbeb8934ea6fd 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -38,6 +38,7 @@ class DetailedStatus extends ImmutablePureComponent { onOpenMedia: PropTypes.func.isRequired, onOpenVideo: PropTypes.func.isRequired, onToggleHidden: PropTypes.func.isRequired, + onTranslate: PropTypes.func.isRequired, measureHeight: PropTypes.bool, onHeightChange: PropTypes.func, domain: PropTypes.string.isRequired, @@ -104,6 +105,11 @@ class DetailedStatus extends ImmutablePureComponent { window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); } + handleTranslate = () => { + const { onTranslate, status } = this.props; + onTranslate(status); + } + render () { const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status; const outerStyle = { boxSizing: 'border-box' }; @@ -139,7 +145,11 @@ class DetailedStatus extends ImmutablePureComponent { backgroundColor={attachment.getIn(['meta', 'colors', 'background'])} foregroundColor={attachment.getIn(['meta', 'colors', 'foreground'])} accentColor={attachment.getIn(['meta', 'colors', 'accent'])} + sensitive={status.get('sensitive')} + visible={this.props.showMedia} + blurhash={attachment.get('blurhash')} height={150} + onToggleVisibility={this.props.onToggleMediaVisibility} /> ); } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') { @@ -252,20 +262,25 @@ class DetailedStatus extends ImmutablePureComponent { return (
      - +
      - - + +
      - + {media}
      - + {edited}{visibilityLink}{applicationLink}{reblogLink} · {favouriteLink}
      diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index 4d7f24834e42d9..cb67944c94f696 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -7,6 +7,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { createSelector } from 'reselect'; import { fetchStatus } from '../../actions/statuses'; import MissingIndicator from '../../components/missing_indicator'; +import LoadingIndicator from 'mastodon/components/loading_indicator'; import DetailedStatus from './components/detailed_status'; import ActionBar from './components/action_bar'; import Column from '../ui/components/column'; @@ -32,6 +33,8 @@ import { editStatus, hideStatus, revealStatus, + translateStatus, + undoStatusTranslation, } from '../../actions/statuses'; import { unblockAccount, @@ -58,6 +61,7 @@ import { boostModal, deleteModal } from '../../initial_state'; import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen'; import { textForScreenReader, defaultMediaVisibility } from '../../components/status'; import Icon from 'mastodon/components/icon'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, @@ -142,6 +146,7 @@ const makeMapStateToProps = () => { } return { + isLoading: state.getIn(['statuses', props.params.statusId, 'isLoading']), status, ancestorsIds, descendantsIds, @@ -154,18 +159,37 @@ const makeMapStateToProps = () => { return mapStateToProps; }; +const truncate = (str, num) => { + if (str.length > num) { + return str.slice(0, num) + '…'; + } else { + return str; + } +}; + +const titleFromStatus = status => { + const displayName = status.getIn(['account', 'display_name']); + const username = status.getIn(['account', 'username']); + const prefix = displayName.trim().length === 0 ? username : displayName; + const text = status.get('search_index'); + + return `${prefix}: "${truncate(text, 30)}"`; +}; + export default @injectIntl @connect(makeMapStateToProps) class Status extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, status: ImmutablePropTypes.map, + isLoading: PropTypes.bool, ancestorsIds: ImmutablePropTypes.list, descendantsIds: ImmutablePropTypes.list, intl: PropTypes.object.isRequired, @@ -208,10 +232,21 @@ class Status extends ImmutablePureComponent { } handleFavouriteClick = (status) => { - if (status.get('favourited')) { - this.props.dispatch(unfavourite(status)); + const { dispatch } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + if (status.get('favourited')) { + dispatch(unfavourite(status)); + } else { + dispatch(favourite(status)); + } } else { - this.props.dispatch(favourite(status)); + dispatch(openModal('INTERACTION', { + type: 'favourite', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } } @@ -224,15 +259,25 @@ class Status extends ImmutablePureComponent { } handleReplyClick = (status) => { - let { askReplyConfirmation, dispatch, intl } = this.props; - if (askReplyConfirmation) { - dispatch(openModal('CONFIRM', { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(status, this.context.router.history)), - })); + const { askReplyConfirmation, dispatch, intl } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + if (askReplyConfirmation) { + dispatch(openModal('CONFIRM', { + message: intl.formatMessage(messages.replyMessage), + confirm: intl.formatMessage(messages.replyConfirm), + onConfirm: () => dispatch(replyCompose(status, this.context.router.history)), + })); + } else { + dispatch(replyCompose(status, this.context.router.history)); + } } else { - dispatch(replyCompose(status, this.context.router.history)); + dispatch(openModal('INTERACTION', { + type: 'reply', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } } @@ -241,14 +286,25 @@ class Status extends ImmutablePureComponent { } handleReblogClick = (status, e) => { - if (status.get('reblogged')) { - this.props.dispatch(unreblog(status)); - } else { - if ((e && e.shiftKey) || !boostModal) { - this.handleModalReblog(status); + const { dispatch } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + if (status.get('reblogged')) { + dispatch(unreblog(status)); } else { - this.props.dispatch(initBoostModal({ status, onReblog: this.handleModalReblog })); + if ((e && e.shiftKey) || !boostModal) { + this.handleModalReblog(status); + } else { + dispatch(initBoostModal({ status, onReblog: this.handleModalReblog })); + } } + } else { + dispatch(openModal('INTERACTION', { + type: 'reblog', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } } @@ -339,6 +395,16 @@ class Status extends ImmutablePureComponent { } } + handleTranslate = status => { + const { dispatch } = this.props; + + if (status.get('translation')) { + dispatch(undoStatusTranslation(status.get('id'))); + } else { + dispatch(translateStatus(status.get('id'))); + } + } + handleBlockClick = (status) => { const { dispatch } = this.props; const account = status.get('account'); @@ -503,9 +569,17 @@ class Status extends ImmutablePureComponent { render () { let ancestors, descendants; - const { status, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props; + const { isLoading, status, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props; const { fullscreen } = this.state; + if (isLoading) { + return ( + + + + ); + } + if (status === null) { return ( @@ -523,6 +597,9 @@ class Status extends ImmutablePureComponent { descendants =
      {this.renderChildren(descendantsIds)}
      ; } + const isLocal = status.getIn(['account', 'acct'], '').indexOf('@') === -1; + const isIndexable = !status.getIn(['account', 'noindex']); + const handlers = { moveUp: this.handleHotkeyMoveUp, moveDown: this.handleHotkeyMoveDown, @@ -542,7 +619,7 @@ class Status extends ImmutablePureComponent { showBackButton multiColumn={multiColumn} extraButton={( - + )} /> @@ -558,6 +635,7 @@ class Status extends ImmutablePureComponent { onOpenVideo={this.handleOpenVideo} onOpenMedia={this.handleOpenMedia} onToggleHidden={this.handleToggleHidden} + onTranslate={this.handleTranslate} domain={domain} showMedia={this.state.showMedia} onToggleMediaVisibility={this.handleToggleMediaVisibility} @@ -592,6 +670,11 @@ class Status extends ImmutablePureComponent { {descendants}
      + + + {titleFromStatus(status)} + + ); } diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.js b/app/javascript/mastodon/features/subscribed_languages_modal/index.js new file mode 100644 index 00000000000000..a519ceabc5ad9d --- /dev/null +++ b/app/javascript/mastodon/features/subscribed_languages_modal/index.js @@ -0,0 +1,125 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { connect } from 'react-redux'; +import { createSelector } from 'reselect'; +import { is, List as ImmutableList, Set as ImmutableSet } from 'immutable'; +import { languages as preloadedLanguages } from 'mastodon/initial_state'; +import Option from 'mastodon/features/report/components/option'; +import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; +import IconButton from 'mastodon/components/icon_button'; +import Button from 'mastodon/components/button'; +import { followAccount } from 'mastodon/actions/accounts'; + +const messages = defineMessages({ + close: { id: 'lightbox.close', defaultMessage: 'Close' }, +}); + +const getAccountLanguages = createSelector([ + (state, accountId) => state.getIn(['timelines', `account:${accountId}`, 'items'], ImmutableList()), + state => state.get('statuses'), +], (statusIds, statuses) => + new ImmutableSet(statusIds.map(statusId => statuses.get(statusId)).filter(status => !status.get('reblog')).map(status => status.get('language')))); + +const mapStateToProps = (state, { accountId }) => ({ + acct: state.getIn(['accounts', accountId, 'acct']), + availableLanguages: getAccountLanguages(state, accountId), + selectedLanguages: ImmutableSet(state.getIn(['relationships', accountId, 'languages']) || ImmutableList()), +}); + +const mapDispatchToProps = (dispatch, { accountId }) => ({ + + onSubmit (languages) { + dispatch(followAccount(accountId, { languages })); + }, + +}); + +export default @connect(mapStateToProps, mapDispatchToProps) +@injectIntl +class SubscribedLanguagesModal extends ImmutablePureComponent { + + static propTypes = { + accountId: PropTypes.string.isRequired, + acct: PropTypes.string.isRequired, + availableLanguages: ImmutablePropTypes.setOf(PropTypes.string), + selectedLanguages: ImmutablePropTypes.setOf(PropTypes.string), + onClose: PropTypes.func.isRequired, + languages: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)), + intl: PropTypes.object.isRequired, + submit: PropTypes.func.isRequired, + }; + + static defaultProps = { + languages: preloadedLanguages, + }; + + state = { + selectedLanguages: this.props.selectedLanguages, + }; + + handleLanguageToggle = (value, checked) => { + const { selectedLanguages } = this.state; + + if (checked) { + this.setState({ selectedLanguages: selectedLanguages.add(value) }); + } else { + this.setState({ selectedLanguages: selectedLanguages.delete(value) }); + } + }; + + handleSubmit = () => { + this.props.onSubmit(this.state.selectedLanguages.toArray()); + this.props.onClose(); + } + + renderItem (value) { + const language = this.props.languages.find(language => language[0] === value); + const checked = this.state.selectedLanguages.includes(value); + + if (!language) { + return null; + } + + return ( +
      +
      + + {acct} }} /> +
      + +
      +

      + +
      + {availableLanguages.union(selectedLanguages).delete(null).map(value => this.renderItem(value))} +
      + +
      + +
      + +
      +
      +
      + ); + } + +} diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.js index 875b2b75d7e087..67be69d436a938 100644 --- a/app/javascript/mastodon/features/ui/components/actions_modal.js +++ b/app/javascript/mastodon/features/ui/components/actions_modal.js @@ -2,10 +2,6 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import StatusContent from '../../../components/status_content'; -import Avatar from '../../../components/avatar'; -import RelativeTimestamp from '../../../components/relative_timestamp'; -import DisplayName from '../../../components/display_name'; import IconButton from '../../../components/icon_button'; import classNames from 'classnames'; @@ -38,32 +34,8 @@ export default class ActionsModal extends ImmutablePureComponent { } render () { - const status = this.props.status && ( -
      - - - -
      - ); - return (
      - {status} -
        {this.props.actions.map(this.renderAction)}
      diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.js index ab87ee42769187..077ce7b35cfe9e 100644 --- a/app/javascript/mastodon/features/ui/components/boost_modal.js +++ b/app/javascript/mastodon/features/ui/components/boost_modal.js @@ -97,14 +97,13 @@ class BoostModal extends ImmutablePureComponent {
      -
      -
      - - - -
      - - +
      + + + + + +
      diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.js b/app/javascript/mastodon/features/ui/components/bundle_column_error.js index f39ebd900b103e..dfe970ad0bc96c 100644 --- a/app/javascript/mastodon/features/ui/components/bundle_column_error.js +++ b/app/javascript/mastodon/features/ui/components/bundle_column_error.js @@ -1,44 +1,162 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; +import { injectIntl, FormattedMessage } from 'react-intl'; +import Column from 'mastodon/components/column'; +import Button from 'mastodon/components/button'; +import { Helmet } from 'react-helmet'; +import { Link } from 'react-router-dom'; +import classNames from 'classnames'; +import { autoPlayGif } from 'mastodon/initial_state'; -import Column from './column'; -import ColumnHeader from './column_header'; -import ColumnBackButtonSlim from '../../../components/column_back_button_slim'; -import IconButton from '../../../components/icon_button'; +class GIF extends React.PureComponent { -const messages = defineMessages({ - title: { id: 'bundle_column_error.title', defaultMessage: 'Network error' }, - body: { id: 'bundle_column_error.body', defaultMessage: 'Something went wrong while loading this component.' }, - retry: { id: 'bundle_column_error.retry', defaultMessage: 'Try again' }, -}); + static propTypes = { + src: PropTypes.string.isRequired, + staticSrc: PropTypes.string.isRequired, + className: PropTypes.string, + animate: PropTypes.bool, + }; + + static defaultProps = { + animate: autoPlayGif, + }; + + state = { + hovering: false, + }; + + handleMouseEnter = () => { + const { animate } = this.props; + + if (!animate) { + this.setState({ hovering: true }); + } + } + + handleMouseLeave = () => { + const { animate } = this.props; + + if (!animate) { + this.setState({ hovering: false }); + } + } + + render () { + const { src, staticSrc, className, animate } = this.props; + const { hovering } = this.state; + + return ( + + ); + } + +} + +class CopyButton extends React.PureComponent { + + static propTypes = { + children: PropTypes.node.isRequired, + value: PropTypes.string.isRequired, + }; + + state = { + copied: false, + }; + handleClick = () => { + const { value } = this.props; + navigator.clipboard.writeText(value); + this.setState({ copied: true }); + this.timeout = setTimeout(() => this.setState({ copied: false }), 700); + } + + componentWillUnmount () { + if (this.timeout) clearTimeout(this.timeout); + } + + render () { + const { children } = this.props; + const { copied } = this.state; + + return ( + + ); + } + +} + +export default @injectIntl class BundleColumnError extends React.PureComponent { static propTypes = { - onRetry: PropTypes.func.isRequired, + errorType: PropTypes.oneOf(['routing', 'network', 'error']), + onRetry: PropTypes.func, intl: PropTypes.object.isRequired, - } + multiColumn: PropTypes.bool, + stacktrace: PropTypes.string, + }; + + static defaultProps = { + errorType: 'routing', + }; handleRetry = () => { - this.props.onRetry(); + const { onRetry } = this.props; + + if (onRetry) { + onRetry(); + } } render () { - const { intl: { formatMessage } } = this.props; + const { errorType, multiColumn, stacktrace } = this.props; + + let title, body; + + switch(errorType) { + case 'routing': + title = ; + body = ; + break; + case 'network': + title = ; + body = ; + break; + case 'error': + title = ; + body = ; + break; + } return ( - - - +
      - - {formatMessage(messages.body)} + + +
      +

      {title}

      +

      {body}

      + +
      + {errorType === 'network' && } + {errorType === 'error' && } + +
      +
      + + + +
      ); } } - -export default injectIntl(BundleColumnError); diff --git a/app/javascript/mastodon/features/ui/components/column_link.js b/app/javascript/mastodon/features/ui/components/column_link.js index 0a25f1ea203d7b..8eebbf52609b44 100644 --- a/app/javascript/mastodon/features/ui/components/column_link.js +++ b/app/javascript/mastodon/features/ui/components/column_link.js @@ -1,37 +1,41 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Link } from 'react-router-dom'; +import { NavLink } from 'react-router-dom'; import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; -const ColumnLink = ({ icon, text, to, href, method, badge }) => { +const ColumnLink = ({ icon, text, to, href, method, badge, transparent, ...other }) => { + const className = classNames('column-link', { 'column-link--transparent': transparent }); const badgeElement = typeof badge !== 'undefined' ? {badge} : null; + const iconElement = typeof icon === 'string' ? : icon; if (href) { return ( -
      - - {text} + + {iconElement} + {text} {badgeElement} ); } else { return ( - - - {text} + + {iconElement} + {text} {badgeElement} - + ); } }; ColumnLink.propTypes = { - icon: PropTypes.string.isRequired, + icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, text: PropTypes.string.isRequired, to: PropTypes.string, href: PropTypes.string, method: PropTypes.string, badge: PropTypes.node, + transparent: PropTypes.bool, }; export default ColumnLink; diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.js index 0cdfd05d80e2a4..e5ed22584468fd 100644 --- a/app/javascript/mastodon/features/ui/components/column_loading.js +++ b/app/javascript/mastodon/features/ui/components/column_loading.js @@ -10,6 +10,7 @@ export default class ColumnLoading extends ImmutablePureComponent { static propTypes = { title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]), icon: PropTypes.string, + multiColumn: PropTypes.bool, }; static defaultProps = { @@ -18,10 +19,11 @@ export default class ColumnLoading extends ImmutablePureComponent { }; render() { - let { title, icon } = this.props; + let { title, icon, multiColumn } = this.props; + return ( - +
      ); diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.js index 356efd3e860658..f43342ab415d7d 100644 --- a/app/javascript/mastodon/features/ui/components/columns_area.js +++ b/app/javascript/mastodon/features/ui/components/columns_area.js @@ -1,15 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; - -import ReactSwipeableViews from 'react-swipeable-views'; -import TabsBar, { links, getIndex, getLink } from './tabs_bar'; -import { Link } from 'react-router-dom'; - -import { disableSwiping } from 'mastodon/initial_state'; - import BundleContainer from '../containers/bundle_container'; import ColumnLoading from './column_loading'; import DrawerLoading from './drawer_loading'; @@ -28,10 +20,8 @@ import { Directory, AreaTimeline, } from '../../ui/util/async-components'; -import Icon from 'mastodon/components/icon'; import ComposePanel from './compose_panel'; import NavigationPanel from './navigation_panel'; - import { supportsPassiveEvents } from 'detect-passive-events'; import { scrollRight } from '../../../scroll'; @@ -51,41 +41,26 @@ const componentMap = { 'DIRECTORY': Directory, }; -const messages = defineMessages({ - publish: { id: 'compose_form.publish', defaultMessage: 'Toot' }, -}); - -const shouldHideFAB = path => path.match(/^\/statuses\/|^\/@[^/]+\/\d+|^\/publish|^\/explore|^\/getting-started|^\/start/); - -export default @(component => injectIntl(component, { withRef: true })) -class ColumnsArea extends ImmutablePureComponent { +export default class ColumnsArea extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object.isRequired, }; static propTypes = { - intl: PropTypes.object.isRequired, columns: ImmutablePropTypes.list.isRequired, isModalOpen: PropTypes.bool.isRequired, singleColumn: PropTypes.bool, children: PropTypes.node, }; - // Corresponds to (max-width: 600px + (285px * 1) + (10px * 1)) in SCSS - mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 895px)'); + // Corresponds to (max-width: $no-gap-breakpoint + 285px - 1px) in SCSS + mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 1174px)'); state = { - shouldAnimate: false, renderComposePanel: !(this.mediaQuery && this.mediaQuery.matches), } - componentWillReceiveProps() { - if (typeof this.pendingIndex !== 'number' && this.lastIndex !== getIndex(this.context.router.history.location.pathname)) { - this.setState({ shouldAnimate: false }); - } - } - componentDidMount() { if (!this.props.singleColumn) { this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); @@ -100,10 +75,7 @@ class ColumnsArea extends ImmutablePureComponent { this.setState({ renderComposePanel: !this.mediaQuery.matches }); } - this.lastIndex = getIndex(this.context.router.history.location.pathname); this.isRtlLayout = document.getElementsByTagName('body')[0].classList.contains('rtl'); - - this.setState({ shouldAnimate: true }); } componentWillUpdate(nextProps) { @@ -116,13 +88,6 @@ class ColumnsArea extends ImmutablePureComponent { if (this.props.singleColumn !== prevProps.singleColumn && !this.props.singleColumn) { this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); } - - const newIndex = getIndex(this.context.router.history.location.pathname); - - if (this.lastIndex !== newIndex) { - this.lastIndex = newIndex; - this.setState({ shouldAnimate: true }); - } } componentWillUnmount () { @@ -150,31 +115,6 @@ class ColumnsArea extends ImmutablePureComponent { this.setState({ renderComposePanel: !e.matches }); } - handleSwipe = (index) => { - this.pendingIndex = index; - - const nextLinkTranslationId = links[index].props['data-preview-title-id']; - const currentLinkSelector = '.tabs-bar__link.active'; - const nextLinkSelector = `.tabs-bar__link[data-preview-title-id="${nextLinkTranslationId}"]`; - - // HACK: Remove the active class from the current link and set it to the next one - // React-router does this for us, but too late, feeling laggy. - document.querySelector(currentLinkSelector).classList.remove('active'); - document.querySelector(nextLinkSelector).classList.add('active'); - - if (!this.state.shouldAnimate && typeof this.pendingIndex === 'number') { - this.context.router.history.push(getLink(this.pendingIndex)); - this.pendingIndex = null; - } - } - - handleAnimationEnd = () => { - if (typeof this.pendingIndex === 'number') { - this.context.router.history.push(getLink(this.pendingIndex)); - this.pendingIndex = null; - } - } - handleWheel = () => { if (typeof this._interruptScrollAnimation !== 'function') { return; @@ -187,47 +127,19 @@ class ColumnsArea extends ImmutablePureComponent { this.node = node; } - renderView = (link, index) => { - const columnIndex = getIndex(this.context.router.history.location.pathname); - const title = this.props.intl.formatMessage({ id: link.props['data-preview-title-id'] }); - const icon = link.props['data-preview-icon']; - - const view = (index === columnIndex) ? - React.cloneElement(this.props.children) : - ; - - return ( -
      - {view} -
      - ); - } - renderLoading = columnId => () => { - return columnId === 'COMPOSE' ? : ; + return columnId === 'COMPOSE' ? : ; } renderError = (props) => { - return ; + return ; } render () { - const { columns, children, singleColumn, isModalOpen, intl } = this.props; - const { shouldAnimate, renderComposePanel } = this.state; - - const columnIndex = getIndex(this.context.router.history.location.pathname); + const { columns, children, singleColumn, isModalOpen } = this.props; + const { renderComposePanel } = this.state; if (singleColumn) { - const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : ; - - const content = columnIndex !== -1 ? ( - - {links.map(this.renderView)} - - ) : ( -
      {children}
      - ); - return (
      @@ -236,9 +148,9 @@ class ColumnsArea extends ImmutablePureComponent {
      -
      - - {content} +
      +
      +
      {children}
      @@ -246,8 +158,6 @@ class ColumnsArea extends ImmutablePureComponent {
      - - {floatingActionButton}
      ); } diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.js index 3d0c48c7a9687c..92d16b5b34e05e 100644 --- a/app/javascript/mastodon/features/ui/components/compose_panel.js +++ b/app/javascript/mastodon/features/ui/components/compose_panel.js @@ -5,30 +5,62 @@ import SearchContainer from 'mastodon/features/compose/containers/search_contain import ComposeFormContainer from 'mastodon/features/compose/containers/compose_form_container'; import NavigationContainer from 'mastodon/features/compose/containers/navigation_container'; import LinkFooter from './link_footer'; -import { changeComposing } from 'mastodon/actions/compose'; +import ServerBanner from 'mastodon/components/server_banner'; +import { changeComposing, mountCompose, unmountCompose } from 'mastodon/actions/compose'; export default @connect() class ComposePanel extends React.PureComponent { + static contextTypes = { + identity: PropTypes.object.isRequired, + }; + static propTypes = { dispatch: PropTypes.func.isRequired, }; onFocus = () => { - this.props.dispatch(changeComposing(true)); + const { dispatch } = this.props; + dispatch(changeComposing(true)); } onBlur = () => { - this.props.dispatch(changeComposing(false)); + const { dispatch } = this.props; + dispatch(changeComposing(false)); + } + + componentDidMount () { + const { dispatch } = this.props; + dispatch(mountCompose()); + } + + componentWillUnmount () { + const { dispatch } = this.props; + dispatch(unmountCompose()); } render() { + const { signedIn } = this.context.identity; + return (
      - - - + + {!signedIn && ( + + +
      + + )} + + {signedIn && ( + + + + + )} + +
      ); } diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js b/app/javascript/mastodon/features/ui/components/disabled_account_banner.js new file mode 100644 index 00000000000000..cc8cc32850fda8 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/disabled_account_banner.js @@ -0,0 +1,92 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { connect } from 'react-redux'; +import { Link } from 'react-router-dom'; +import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; +import { disabledAccountId, movedToAccountId, domain } from 'mastodon/initial_state'; +import { openModal } from 'mastodon/actions/modal'; +import { logOut } from 'mastodon/utils/log_out'; + +const messages = defineMessages({ + logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' }, + logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' }, +}); + +const mapStateToProps = (state) => ({ + disabledAcct: state.getIn(['accounts', disabledAccountId, 'acct']), + movedToAcct: movedToAccountId ? state.getIn(['accounts', movedToAccountId, 'acct']) : undefined, +}); + +const mapDispatchToProps = (dispatch, { intl }) => ({ + onLogout () { + dispatch(openModal('CONFIRM', { + message: intl.formatMessage(messages.logoutMessage), + confirm: intl.formatMessage(messages.logoutConfirm), + closeWhenConfirm: false, + onConfirm: () => logOut(), + })); + }, +}); + +export default @injectIntl +@connect(mapStateToProps, mapDispatchToProps) +class DisabledAccountBanner extends React.PureComponent { + + static propTypes = { + disabledAcct: PropTypes.string.isRequired, + movedToAcct: PropTypes.string, + onLogout: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + }; + + handleLogOutClick = e => { + e.preventDefault(); + e.stopPropagation(); + + this.props.onLogout(); + + return false; + } + + render () { + const { disabledAcct, movedToAcct } = this.props; + + const disabledAccountLink = ( + + {disabledAcct}@{domain} + + ); + + return ( +
      +

      + {movedToAcct ? ( + {movedToAcct.includes('@') ? movedToAcct : `${movedToAcct}@${domain}`}, + }} + /> + ) : ( + + )} +

      + + + + +
      + ); + } + +}; diff --git a/app/javascript/mastodon/features/ui/components/document_title.js b/app/javascript/mastodon/features/ui/components/document_title.js deleted file mode 100644 index cd081b20c7e2c7..00000000000000 --- a/app/javascript/mastodon/features/ui/components/document_title.js +++ /dev/null @@ -1,41 +0,0 @@ -import { PureComponent } from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import { title } from 'mastodon/initial_state'; - -const mapStateToProps = state => ({ - unread: state.getIn(['missed_updates', 'unread']), -}); - -export default @connect(mapStateToProps) -class DocumentTitle extends PureComponent { - - static propTypes = { - unread: PropTypes.number.isRequired, - }; - - componentDidMount () { - this._sideEffects(); - } - - componentDidUpdate() { - this._sideEffects(); - } - - _sideEffects () { - const { unread } = this.props; - - if (unread > 99) { - document.title = `(*) ${title}`; - } else if (unread > 0) { - document.title = `(${unread}) ${title}`; - } else { - document.title = title; - } - } - - render () { - return null; - } - -} diff --git a/app/javascript/mastodon/features/ui/components/filter_modal.js b/app/javascript/mastodon/features/ui/components/filter_modal.js new file mode 100644 index 00000000000000..376db961d1ef18 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/filter_modal.js @@ -0,0 +1,134 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import { fetchStatus } from 'mastodon/actions/statuses'; +import { fetchFilters, createFilter, createFilterStatus } from 'mastodon/actions/filters'; +import PropTypes from 'prop-types'; +import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import IconButton from 'mastodon/components/icon_button'; +import SelectFilter from 'mastodon/features/filters/select_filter'; +import AddedToFilter from 'mastodon/features/filters/added_to_filter'; + +const messages = defineMessages({ + close: { id: 'lightbox.close', defaultMessage: 'Close' }, +}); + +export default @connect(undefined) +@injectIntl +class FilterModal extends ImmutablePureComponent { + + static propTypes = { + statusId: PropTypes.string.isRequired, + contextType: PropTypes.string, + dispatch: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + }; + + state = { + step: 'select', + filterId: null, + isSubmitting: false, + isSubmitted: false, + }; + + handleNewFilterSuccess = (result) => { + this.handleSelectFilter(result.id); + }; + + handleSuccess = () => { + const { dispatch, statusId } = this.props; + dispatch(fetchStatus(statusId, true)); + this.setState({ isSubmitting: false, isSubmitted: true, step: 'submitted' }); + }; + + handleFail = () => { + this.setState({ isSubmitting: false }); + }; + + handleNextStep = step => { + this.setState({ step }); + }; + + handleSelectFilter = (filterId) => { + const { dispatch, statusId } = this.props; + + this.setState({ isSubmitting: true, filterId }); + + dispatch(createFilterStatus({ + filter_id: filterId, + status_id: statusId, + }, this.handleSuccess, this.handleFail)); + }; + + handleNewFilter = (title) => { + const { dispatch } = this.props; + + this.setState({ isSubmitting: true }); + + dispatch(createFilter({ + title, + context: ['home', 'notifications', 'public', 'thread', 'account'], + action: 'warn', + }, this.handleNewFilterSuccess, this.handleFail)); + }; + + componentDidMount () { + const { dispatch } = this.props; + + dispatch(fetchFilters()); + } + + render () { + const { + intl, + statusId, + contextType, + onClose, + } = this.props; + + const { + step, + filterId, + } = this.state; + + let stepComponent; + + switch(step) { + case 'select': + stepComponent = ( + + ); + break; + case 'create': + stepComponent = null; + break; + case 'submitted': + stepComponent = ( + + ); + } + + return ( +
      +
      + + +
      + +
      + {stepComponent} +
      +
      + ); + } + +} diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.js index a2e6b3d16b291e..ba8aa8f0390a26 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.js +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.js @@ -176,14 +176,14 @@ class FocalPointModal extends ImmutablePureComponent { handleKeyDown = (e) => { if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) { - e.preventDefault(); - e.stopPropagation(); this.props.onChangeDescription(e.target.value); - this.handleSubmit(); + this.handleSubmit(e); } } - handleSubmit = () => { + handleSubmit = (e) => { + e.preventDefault(); + e.stopPropagation(); this.props.onSave(this.props.description, this.props.focusX, this.props.focusY); } @@ -313,7 +313,7 @@ class FocalPointModal extends ImmutablePureComponent {
      -
      +
      {focals &&

      } {thumbnailable && ( @@ -361,12 +361,23 @@ class FocalPointModal extends ImmutablePureComponent {
      - +
      -
      + + ); + } + + return ( +
      +

      + + {signupButton} +
      + ); +}; + +export default SignInBanner; diff --git a/app/javascript/mastodon/features/ui/components/tabs_bar.js b/app/javascript/mastodon/features/ui/components/tabs_bar.js deleted file mode 100644 index cef25b9e495cfd..00000000000000 --- a/app/javascript/mastodon/features/ui/components/tabs_bar.js +++ /dev/null @@ -1,91 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { NavLink, withRouter } from 'react-router-dom'; -import { FormattedMessage, injectIntl } from 'react-intl'; -import { debounce } from 'lodash'; -import { isUserTouching } from '../../../is_mobile'; -import Icon from 'mastodon/components/icon'; -import NotificationsCounterIcon from './notifications_counter_icon'; - -export const links = [ - , - , - , - , - , - , - , -]; - - -// Areaの場合完全一致しないのでスワイプできない。そこで、前方一致に変更 -// 前方一致なのでtabの順序に注意 -export function getIndex (path) { - // return links.findIndex(link => link.props.to === path); - return links.findIndex(link => path.startsWith(link.props.to)); -} - -export function getLink (index) { - return links[index].props.to; -} - -export default @injectIntl -@withRouter -class TabsBar extends React.PureComponent { - - static propTypes = { - intl: PropTypes.object.isRequired, - history: PropTypes.object.isRequired, - } - - setRef = ref => { - this.node = ref; - } - - handleClick = (e) => { - // Only apply optimization for touch devices, which we assume are slower - // We thus avoid the 250ms delay for non-touch devices and the lag for touch devices - if (isUserTouching()) { - e.preventDefault(); - e.persist(); - - requestAnimationFrame(() => { - const tabs = Array(...this.node.querySelectorAll('.tabs-bar__link')); - const currentTab = tabs.find(tab => tab.classList.contains('active')); - const nextTab = tabs.find(tab => tab.contains(e.target)); - const { props: { to } } = links[Array(...this.node.childNodes).indexOf(nextTab)]; - - - if (currentTab !== nextTab) { - if (currentTab) { - currentTab.classList.remove('active'); - } - - const listener = debounce(() => { - nextTab.removeEventListener('transitionend', listener); - this.props.history.push(to); - }, 50); - - nextTab.addEventListener('transitionend', listener); - nextTab.classList.add('active'); - } - }); - } - - } - - render () { - const { intl: { formatMessage } } = this.props; - - return ( -
      - - -
      -
      - ); - } - -} diff --git a/app/javascript/mastodon/features/ui/containers/area_status_list_container.js b/app/javascript/mastodon/features/ui/containers/area_status_list_container.js index be040035d758be..9840c23a089166 100644 --- a/app/javascript/mastodon/features/ui/containers/area_status_list_container.js +++ b/app/javascript/mastodon/features/ui/containers/area_status_list_container.js @@ -36,7 +36,7 @@ const makeMapStateToProps = () => { const getPendingStatusIds = makeGetStatusIds(true); const mapStateToProps = (state, { timelineId, settingTimelineId }) => ({ - statusIds: getStatusIds(state, { type: timelineId, settingId: settingTimelineId}), + statusIds: getStatusIds(state, { type: timelineId, settingId: settingTimelineId }), isLoading: state.getIn(['timelines', timelineId, 'isLoading'], true), isPartial: state.getIn(['timelines', timelineId, 'isPartial'], false), hasMore: state.getIn(['timelines', timelineId, 'hasMore']), diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 779aaaea83f1a0..a2a35de7b3a2e4 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -3,7 +3,7 @@ import React from 'react'; import { HotKeys } from 'react-hotkeys'; import { defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; -import { Redirect, withRouter } from 'react-router-dom'; +import { Redirect, Route, withRouter } from 'react-router-dom'; import PropTypes from 'prop-types'; import NotificationsContainer from './containers/notifications_container'; import LoadingBarContainer from './containers/loading_bar_container'; @@ -13,15 +13,14 @@ import { debounce } from 'lodash'; import { uploadCompose, resetCompose, changeComposeSpoilerness } from '../../actions/compose'; import { expandHomeTimeline } from '../../actions/timelines'; import { expandNotifications } from '../../actions/notifications'; -import { fetchFilters } from '../../actions/filters'; -import { fetchRules } from '../../actions/rules'; +import { fetchServer } from '../../actions/server'; import { clearHeight } from '../../actions/height_cache'; import { focusApp, unfocusApp, changeLayout } from 'mastodon/actions/app'; import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'mastodon/actions/markers'; import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers'; +import BundleColumnError from './components/bundle_column_error'; import UploadArea from './components/upload_area'; import ColumnsAreaContainer from './containers/columns_area_container'; -import DocumentTitle from './components/document_title'; import PictureInPicture from 'mastodon/features/picture_in_picture'; import { Compose, @@ -41,7 +40,6 @@ import { HashtagTimeline, Notifications, FollowRequests, - GenericNotFound, FavouritedStatuses, BookmarkedStatuses, ListTimeline, @@ -55,9 +53,12 @@ import { AreaTimeline, AreaTimelineRedirect, FollowRecommendations, + About, + PrivacyPolicy, } from './util/async-components'; -import { me } from '../../initial_state'; +import initialState, { me, owner, singleUserMode, showTrends } from '../../initial_state'; import { closeOnboarding, INTRODUCTION_VERSION } from 'mastodon/actions/onboarding'; +import Header from './components/header'; // Dummy import, to make sure that ends up in the application bundle. // Without this it ends up in ~8 very commonly used bundles. @@ -113,6 +114,10 @@ const keyMap = { class SwitchingColumnsArea extends React.PureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { children: PropTypes.node, location: PropTypes.object, @@ -142,20 +147,39 @@ class SwitchingColumnsArea extends React.PureComponent { setRef = c => { if (c) { - this.node = c.getWrappedInstance(); + this.node = c; } } render () { const { children, mobile } = this.props; - const redirect = mobile ? : ; + const { signedIn } = this.context.identity; + + let redirect; + + if (signedIn) { + if (mobile) { + redirect = ; + } else { + redirect = ; + } + } else if (singleUserMode && owner && initialState?.accounts[owner]) { + redirect = ; + } else if (showTrends) { + redirect = ; + } else { + redirect = ; + } return ( {redirect} + + + @@ -178,9 +202,10 @@ class SwitchingColumnsArea extends React.PureComponent { + - - + + @@ -200,7 +225,7 @@ class SwitchingColumnsArea extends React.PureComponent { - + ); @@ -215,6 +240,7 @@ class UI extends React.PureComponent { static contextTypes = { router: PropTypes.object.isRequired, + identity: PropTypes.object.isRequired, }; static propTypes = { @@ -270,7 +296,7 @@ class UI extends React.PureComponent { this.dragTargets.push(e.target); } - if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore) { + if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore && this.context.identity.signedIn) { this.setState({ draggingOver: true }); } } @@ -298,7 +324,7 @@ class UI extends React.PureComponent { this.setState({ draggingOver: false }); this.dragTargets = []; - if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore) { + if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore && this.context.identity.signedIn) { this.props.dispatch(uploadCompose(e.dataTransfer.files)); } } @@ -350,6 +376,8 @@ class UI extends React.PureComponent { } componentDidMount () { + const { signedIn } = this.context.identity; + window.addEventListener('focus', this.handleWindowFocus, false); window.addEventListener('blur', this.handleWindowBlur, false); window.addEventListener('beforeunload', this.handleBeforeUnload, false); @@ -366,16 +394,18 @@ class UI extends React.PureComponent { } // On first launch, redirect to the follow recommendations page - if (this.props.firstLaunch) { + if (signedIn && this.props.firstLaunch) { this.context.router.history.replace('/start'); this.props.dispatch(closeOnboarding()); } - this.props.dispatch(fetchMarkers()); - this.props.dispatch(expandHomeTimeline()); - this.props.dispatch(expandNotifications()); - setTimeout(() => this.props.dispatch(fetchFilters()), 500); - setTimeout(() => this.props.dispatch(fetchRules()), 3000); + if (signedIn) { + this.props.dispatch(fetchMarkers()); + this.props.dispatch(expandHomeTimeline()); + this.props.dispatch(expandNotifications()); + + setTimeout(() => this.props.dispatch(fetchServer()), 3000); + } this.hotkeys.__mousetrap__.stopCallback = (e, element) => { return ['TEXTAREA', 'SELECT', 'INPUT'].includes(element.tagName); @@ -544,6 +574,8 @@ class UI extends React.PureComponent { return (
      +
      + {children} @@ -553,7 +585,6 @@ class UI extends React.PureComponent { -
      ); diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index 5cda90b7792a33..3cf61600394a35 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -169,3 +169,27 @@ export function CompareHistoryModal () { export function Explore () { return import(/* webpackChunkName: "features/explore" */'../../explore'); } + +export function FilterModal () { + return import(/*webpackChunkName: "modals/filter_modal" */'../components/filter_modal'); +} + +export function InteractionModal () { + return import(/*webpackChunkName: "modals/interaction_modal" */'../../interaction_modal'); +} + +export function SubscribedLanguagesModal () { + return import(/*webpackChunkName: "modals/subscribed_languages_modal" */'../../subscribed_languages_modal'); +} + +export function ClosedRegistrationsModal () { + return import(/*webpackChunkName: "modals/closed_registrations_modal" */'../../closed_registrations_modal'); +} + +export function About () { + return import(/*webpackChunkName: "features/about" */'../../about'); +} + +export function PrivacyPolicy () { + return import(/*webpackChunkName: "features/privacy_policy" */'../../privacy_policy'); +} diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.js index d452b871f78ecf..2ee06c3ff61266 100644 --- a/app/javascript/mastodon/features/ui/util/react_router_helpers.js +++ b/app/javascript/mastodon/features/ui/util/react_router_helpers.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Switch, Route } from 'react-router-dom'; - +import StackTrace from 'stacktrace-js'; import ColumnLoading from '../components/column_loading'; import BundleColumnError from '../components/bundle_column_error'; import BundleContainer from '../containers/bundle_container'; @@ -42,8 +42,38 @@ export class WrappedRoute extends React.Component { componentParams: {}, }; + static getDerivedStateFromError () { + return { + hasError: true, + }; + }; + + state = { + hasError: false, + stacktrace: '', + }; + + componentDidCatch (error) { + StackTrace.fromError(error).then(stackframes => { + this.setState({ stacktrace: error.toString() + '\n' + stackframes.map(frame => frame.toString()).join('\n') }); + }).catch(err => { + console.error(err); + }); + } + renderComponent = ({ match }) => { const { component, content, multiColumn, componentParams } = this.props; + const { hasError, stacktrace } = this.state; + + if (hasError) { + return ( + + ); + } return ( @@ -53,11 +83,13 @@ export class WrappedRoute extends React.Component { } renderLoading = () => { - return ; + const { multiColumn } = this.props; + + return ; } renderError = (props) => { - return ; + return ; } render () { diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js index a6d54f13495bdf..62fd4ac7209069 100644 --- a/app/javascript/mastodon/initial_state.js +++ b/app/javascript/mastodon/initial_state.js @@ -1,32 +1,136 @@ +// @ts-check + +/** + * @typedef Emoji + * @property {string} shortcode + * @property {string} static_url + * @property {string} url + */ + +/** + * @typedef AccountField + * @property {string} name + * @property {string} value + * @property {string} verified_at + */ + +/** + * @typedef Account + * @property {string} acct + * @property {string} avatar + * @property {string} avatar_static + * @property {boolean} bot + * @property {string} created_at + * @property {boolean=} discoverable + * @property {string} display_name + * @property {Emoji[]} emojis + * @property {AccountField[]} fields + * @property {number} followers_count + * @property {number} following_count + * @property {boolean} group + * @property {string} header + * @property {string} header_static + * @property {string} id + * @property {string=} last_status_at + * @property {boolean} locked + * @property {string} note + * @property {number} statuses_count + * @property {string} url + * @property {string} username + */ + +/** + * @typedef {[code: string, name: string, localName: string]} InitialStateLanguage + */ + +/** + * @typedef InitialStateMeta + * @property {string} access_token + * @property {boolean=} advanced_layout + * @property {boolean} auto_play_gif + * @property {boolean} activity_api_enabled + * @property {string} admin + * @property {boolean=} boost_modal + * @property {boolean} crop_images + * @property {boolean=} delete_modal + * @property {boolean=} disable_swiping + * @property {string=} disabled_account_id + * @property {boolean} display_media + * @property {string} domain + * @property {boolean=} expand_spoilers + * @property {boolean} limited_federation_mode + * @property {string} locale + * @property {string | null} mascot + * @property {string=} me + * @property {string=} moved_to_account_id + * @property {string=} owner + * @property {boolean} profile_directory + * @property {boolean} registrations_open + * @property {boolean} reduce_motion + * @property {string} repository + * @property {boolean} search_enabled + * @property {boolean} single_user_mode + * @property {string} source_url + * @property {string} streaming_api_base_url + * @property {boolean} timeline_preview + * @property {string} title + * @property {boolean} trends + * @property {boolean} unfollow_modal + * @property {boolean} use_blurhash + * @property {boolean=} use_pending_items + * @property {string} version + * @property {boolean} translation_enabled + */ + +/** + * @typedef InitialState + * @property {Record} accounts + * @property {InitialStateLanguage[]} languages + * @property {InitialStateMeta} meta + */ + const element = document.getElementById('initial-state'); -const initialState = element && JSON.parse(element.textContent); +/** @type {InitialState | undefined} */ +const initialState = element?.textContent && JSON.parse(element.textContent); -const getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop]; +/** + * @template {keyof InitialStateMeta} K + * @param {K} prop + * @returns {InitialStateMeta[K] | undefined} + */ +const getMeta = (prop) => initialState?.meta && initialState.meta[prop]; -export const reduceMotion = getMeta('reduce_motion'); +export const activityApiEnabled = getMeta('activity_api_enabled'); export const autoPlayGif = getMeta('auto_play_gif'); -export const displayMedia = getMeta('display_media'); -export const expandSpoilers = getMeta('expand_spoilers'); -export const unfollowModal = getMeta('unfollow_modal'); export const boostModal = getMeta('boost_modal'); +export const cropImages = getMeta('crop_images'); export const deleteModal = getMeta('delete_modal'); -export const me = getMeta('me'); -export const searchEnabled = getMeta('search_enabled'); -export const invitesEnabled = getMeta('invites_enabled'); +export const disableSwiping = getMeta('disable_swiping'); +export const disabledAccountId = getMeta('disabled_account_id'); +export const displayMedia = getMeta('display_media'); +export const domain = getMeta('domain'); +export const expandSpoilers = getMeta('expand_spoilers'); +export const forceSingleColumn = !getMeta('advanced_layout'); export const limitedFederationMode = getMeta('limited_federation_mode'); -export const repository = getMeta('repository'); -export const source_url = getMeta('source_url'); -export const version = getMeta('version'); export const mascot = getMeta('mascot'); +export const me = getMeta('me'); +export const movedToAccountId = getMeta('moved_to_account_id'); +export const owner = getMeta('owner'); export const profile_directory = getMeta('profile_directory'); -export const isStaff = getMeta('is_staff'); -export const forceSingleColumn = !getMeta('advanced_layout'); -export const useBlurhash = getMeta('use_blurhash'); -export const usePendingItems = getMeta('use_pending_items'); +export const reduceMotion = getMeta('reduce_motion'); +export const registrationsOpen = getMeta('registrations_open'); +export const repository = getMeta('repository'); +export const searchEnabled = getMeta('search_enabled'); export const showTrends = getMeta('trends'); +export const singleUserMode = getMeta('single_user_mode'); +export const source_url = getMeta('source_url'); +export const timelinePreview = getMeta('timeline_preview'); export const title = getMeta('title'); -export const cropImages = getMeta('crop_images'); -export const disableSwiping = getMeta('disable_swiping'); -export const languages = initialState && initialState.languages; +export const unfollowModal = getMeta('unfollow_modal'); +export const useBlurhash = getMeta('use_blurhash'); +export const usePendingItems = getMeta('use_pending_items'); +export const version = getMeta('version'); +export const translationEnabled = getMeta('translation_enabled'); +export const languages = initialState?.languages; export default initialState; diff --git a/app/javascript/mastodon/is_mobile.js b/app/javascript/mastodon/is_mobile.js index 2926eb4b1717be..3c8ec1545c0ace 100644 --- a/app/javascript/mastodon/is_mobile.js +++ b/app/javascript/mastodon/is_mobile.js @@ -1,10 +1,19 @@ +// @ts-check + import { supportsPassiveEvents } from 'detect-passive-events'; import { forceSingleColumn } from 'mastodon/initial_state'; const LAYOUT_BREAKPOINT = 630; +/** + * @param {number} width + * @returns {boolean} + */ export const isMobile = width => width <= LAYOUT_BREAKPOINT; +/** + * @returns {string} + */ export const layoutFromWindow = () => { if (isMobile(window.innerWidth)) { return 'mobile'; @@ -17,11 +26,13 @@ export const layoutFromWindow = () => { const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; +const listenerOptions = supportsPassiveEvents ? { passive: true } : false; + let userTouching = false; -let listenerOptions = supportsPassiveEvents ? { passive: true } : false; const touchListener = () => { userTouching = true; + window.removeEventListener('touchstart', touchListener, listenerOptions); }; diff --git a/app/javascript/mastodon/load_polyfills.js b/app/javascript/mastodon/load_polyfills.js index 73eedc9dccdf64..cc5bcd18f1cebb 100644 --- a/app/javascript/mastodon/load_polyfills.js +++ b/app/javascript/mastodon/load_polyfills.js @@ -26,6 +26,7 @@ function loadPolyfills() { // Edge does not have requestIdleCallback and object-fit CSS property. // This avoids shipping them all the polyfills. const needsExtraPolyfills = !( + window.AbortController && window.IntersectionObserver && window.IntersectionObserverEntry && 'isIntersecting' in IntersectionObserverEntry.prototype && diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 650a3b708dc441..854312fdf58d90 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -1,4 +1,16 @@ { + "about.blocks": "Gemodereerde bedieners", + "about.contact": "Kontak:", + "about.disclaimer": "Mastodon is gratis, oop-bron sagteware, en 'n handelsmerk van Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Rede nie beskikbaar nie", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Beperk", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Opgeskort", + "about.not_available": "Hierdie informasie is nie beskikbaar gemaak op hierdie bediener nie.", + "about.powered_by": "Gedesentraliseerde sosiale media bekragtig deur {mastodon}", + "about.rules": "Bediener reëls", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Voeg by of verwyder van lyste", "account.badges.bot": "Bot", @@ -7,31 +19,37 @@ "account.block_domain": "Blokeer alles van {domain}", "account.blocked": "Geblok", "account.browse_more_on_origin_server": "Snuffel rond op oorspronklike profiel", - "account.cancel_follow_request": "Kanselleer volgversoek", + "account.cancel_follow_request": "Onttrek volg aanvraag", "account.direct": "Stuur direkte boodskap aan @{name}", - "account.disable_notifications": "Stop notifying me when @{name} posts", - "account.domain_blocked": "Domain blocked", + "account.disable_notifications": "Hou op om kennisgewings te stuur wanneer @{name} plasings maak", + "account.domain_blocked": "Domein geblok", "account.edit_profile": "Redigeer profiel", "account.enable_notifications": "Stel my in kennis wanneer @{name} plasings maak", "account.endorse": "Beklemtoon op profiel", + "account.featured_tags.last_status_at": "Laaste plasing op {date}", + "account.featured_tags.last_status_never": "Geen plasings", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Volg", "account.followers": "Volgelinge", "account.followers.empty": "Niemand volg tans hierdie gebruiker nie.", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", - "account.following": "Following", + "account.following": "Volg", "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "Die gebruiker volg nie tans iemand nie.", "account.follows_you": "Volg jou", + "account.go_to_profile": "Gaan na profiel", "account.hide_reblogs": "Versteek hupstoot vanaf @{name}", - "account.joined": "{date} aangesluit", + "account.joined_short": "Aangesluit", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Eienaarskap van die skakel was getoets op {date}", "account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.", "account.media": "Media", "account.mention": "Noem @{name}", - "account.moved_to": "{name} is geskuif na:", + "account.moved_to": "{name} het aangedui dat hul nuwe rekening die volgende is:", "account.mute": "Demp @{name}", "account.mute_notifications": "Demp kennisgewings van @{name}", "account.muted": "Gedemp", + "account.open_original_page": "Maak oorspronklike blad oop", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Rapporteer @{name}", @@ -51,23 +69,36 @@ "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", "admin.dashboard.retention.average": "Gemiddeld", - "admin.dashboard.retention.cohort": "Sign-up month", + "admin.dashboard.retention.cohort": "Registrasie-maand", "admin.dashboard.retention.cohort_size": "Nuwe gebruikers", "alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "An unexpected error occurred.", - "alert.unexpected.title": "Oops!", + "alert.rate_limited.title": "Tempo-beperk", + "alert.unexpected.message": "'n Onverwagte fout het voorgekom.", + "alert.unexpected.title": "Oeps!", "announcement.announcement": "Aankondiging", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "boost_modal.combo": "Jy kan {combo} druk om hierdie volgende keer oor te slaan", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Ag nee!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Netwerk fout", "bundle_column_error.retry": "Probeer weer", - "bundle_column_error.title": "Netwerk fout", - "bundle_modal_error.close": "Close", + "bundle_column_error.return": "Gaan terug huistoe", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Maak toe", "bundle_modal_error.message": "Iets het verkeerd gegaan terwyl hierdie komponent besig was om te laai.", "bundle_modal_error.retry": "Probeer weer", - "column.blocks": "Blocked users", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Vind 'n ander bediener", + "closed_registrations_modal.preamble": "Mastodon is gedesentraliseerd, so ongeag van waar jou rekening geskep word, jy sal in staat wees enige iemand op hierdie bediener te volg en interaksie te he. Jy kan dit ook self 'n bediener bestuur!", + "closed_registrations_modal.title": "Aanteken by Mastodon", + "column.about": "Aangaande", + "column.blocks": "Geblokkeerde gebruikers", "column.bookmarks": "Boekmerke", "column.community": "Plaaslike tydlyn", "column.direct": "Direkte boodskappe", @@ -95,9 +126,9 @@ "compose.language.change": "Verander taal", "compose.language.search": "Soek tale...", "compose_form.direct_message_warning_learn_more": "Leer meer", - "compose_form.encryption_warning": "Plasings op Mastodon het nie end-tot-end enkripsie nie. Moet nie enige gevaarlike inligting oor Mastodon deel nie.", + "compose_form.encryption_warning": "Plasings op Mastodon het nie end-tot-end enkripsie nie. Moet nie enige sensitiewe inligting oor Mastodon deel nie.", "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", - "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", + "compose_form.lock_disclaimer": "Jou rekening is nie {locked}. Enigeeen kan jou volg om jou slegs-volgeling plasings te sien.", "compose_form.lock_disclaimer.lock": "gesluit", "compose_form.placeholder": "What is on your mind?", "compose_form.poll.add_option": "Voeg 'n keuse by", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Verwyder hierdie keuse", "compose_form.poll.switch_to_multiple": "Verander die peiling na verskeie keuses", "compose_form.poll.switch_to_single": "Verander die peiling na 'n enkel keuse", - "compose_form.publish": "Toet", + "compose_form.publish": "Publiseer", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Stoor veranderinge", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -114,38 +145,50 @@ "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", - "compose_form.spoiler_placeholder": "Write your warning here", - "confirmation_modal.cancel": "Cancel", - "confirmations.block.block_and_report": "Block & Report", - "confirmations.block.confirm": "Block", - "confirmations.block.message": "Are you sure you want to block {name}?", - "confirmations.delete.confirm": "Delete", + "compose_form.spoiler_placeholder": "Skryf jou waarskuwing hier", + "confirmation_modal.cancel": "Kanselleer", + "confirmations.block.block_and_report": "Block & Rapporteer", + "confirmations.block.confirm": "Blokeer", + "confirmations.block.message": "Is jy seker dat jy {name} wil blok?", + "confirmations.cancel_follow_request.confirm": "Trek aanvaag terug", + "confirmations.cancel_follow_request.message": "Is jy seker dat jy jou aanvraag om {name} te volg, terug wil trek?", + "confirmations.delete.confirm": "Wis uit", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.delete_list.confirm": "Delete", - "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", - "confirmations.discard_edit_media.confirm": "Discard", + "confirmations.delete_list.confirm": "Wis uit", + "confirmations.delete_list.message": "Is jy seker dat jy hierdie lys permanent wil uitwis?", + "confirmations.discard_edit_media.confirm": "Verwerp", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", - "confirmations.logout.confirm": "Log out", - "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.logout.confirm": "Teken Uit", + "confirmations.logout.message": "Is jy seker jy wil uit teken?", "confirmations.mute.confirm": "Mute", "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", - "confirmations.reply.confirm": "Reply", + "confirmations.reply.confirm": "Reageer", "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", "conversation.delete": "Delete conversation", - "conversation.mark_as_read": "Mark as read", - "conversation.open": "View conversation", - "conversation.with": "With {names}", - "directory.federated": "From known fediverse", - "directory.local": "From {domain} only", + "conversation.mark_as_read": "Merk as gelees", + "conversation.open": "Besigtig gesprek", + "conversation.with": "Met {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", + "directory.federated": "Vanaf bekende fediverse", + "directory.local": "Slegs vanaf {domain}", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Rekening instellings", + "disabled_account_banner.text": "Jou rekening {disabledAccount} is tans onaktief.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -159,8 +202,8 @@ "emoji_button.objects": "Objects", "emoji_button.people": "People", "emoji_button.recent": "Frequently used", - "emoji_button.search": "Search...", - "emoji_button.search_results": "Search results", + "emoji_button.search": "Soek...", + "emoji_button.search_results": "Soek resultate", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", "empty_column.account_suspended": "Account suspended", @@ -168,21 +211,21 @@ "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", - "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.community": "Die plaaslike tydlyn is leeg. Skryf iets vir die publiek om die bal aan die rol te kry!", "empty_column.direct": "Jy het nog nie direkte boodskappe nie. Wanneer jy een stuur of ontvang, sal dit hier verskyn.", "empty_column.domain_blocks": "There are no blocked domains yet.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", - "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.follow_requests": "Jy het nog geen volg versoeke nie. Wanneer jy een ontvang, sal dit hier vertoon.", "empty_column.hashtag": "There is nothing in this hashtag yet.", "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", "empty_column.home.suggestions": "See some suggestions", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.lists": "Jy het nog geen lyste nie. Wanneer jy een skep, sal dit hier vertoon.", "empty_column.mutes": "You haven't muted any users yet.", - "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", + "empty_column.notifications": "Jy het nog geen kennisgewings nie. Wanneer ander mense interaksie het met jou, sal dit hier vertoon.", "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.", @@ -190,27 +233,43 @@ "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Report issue", - "explore.search_results": "Search results", + "explore.search_results": "Soek resultate", "explore.suggested_follows": "For you", "explore.title": "Explore", "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Soek of skep", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", - "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", + "follow_recommendations.lead": "Plasings van persone wie jy volg sal in chronologiese volgorde op jou tuis voer vertoon. Jy kan enige tyd ophou om persone te volg en sal dan nie plasings ontvang nie!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "Aangaande", + "footer.directory": "Profielgids", + "footer.get_app": "Kry die Toep", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Sleutelbord kortpaaie", + "footer.privacy_policy": "Privaatheidsbeleid", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy reageer op hierdie plasing.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Omdat Mastodon gedesentraliseerd is, kan jy jou bestaande rekening wat by 'n ander Mastodon bediener of versoenbare platform gehuisves is gebruik indien jy nie 'n rekening hier het nie.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reageer op {name} se plasing", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -233,7 +306,7 @@ "keyboard_shortcuts.boost": "to boost", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", - "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.description": "Beskrywing", "keyboard_shortcuts.direct": "om direkte boodskappe kolom oop te maak", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", @@ -252,12 +325,12 @@ "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "to open pinned toots list", "keyboard_shortcuts.profile": "to open author's profile", - "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.reply": "Reageer op plasing", "keyboard_shortcuts.requests": "to open follow requests list", "keyboard_shortcuts.search": "to focus search", - "keyboard_shortcuts.spoilers": "to show/hide CW field", + "keyboard_shortcuts.spoilers": "Wys/versteek IW veld", "keyboard_shortcuts.start": "to open \"get started\" column", - "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", + "keyboard_shortcuts.toggle_hidden": "Wys/versteek teks agter IW", "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", "keyboard_shortcuts.toot": "to start a brand new toot", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Vertoon profiel in elkgeval", - "limited_account_hint.title": "Hierdie profiel is deur moderators van jou bediener versteek.", + "limited_account_hint.title": "Hierdie profiel is deur moderators van {domain} versteek.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -280,40 +353,42 @@ "lists.replies_policy.list": "Members of the list", "lists.replies_policy.none": "No one", "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", + "lists.search": "Soek tussen mense wat jy volg", + "lists.subheading": "Jou lyste", "load_pending": "{count, plural, one {# new item} other {# new items}}", "loading_indicator.label": "Loading...", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Jou rekening {disabledAccount} is tans onaktief omdat jy na {movedToAccount} verhuis het.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "Aangaande", "navigation_bar.blocks": "Blocked users", - "navigation_bar.bookmarks": "Bookmarks", - "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.bookmarks": "Boekmerke", + "navigation_bar.community_timeline": "Plaaslike tydlyn", "navigation_bar.compose": "Compose new toot", "navigation_bar.direct": "Direkte boodskappe", "navigation_bar.discover": "Discover", "navigation_bar.domain_blocks": "Hidden domains", - "navigation_bar.edit_profile": "Edit profile", + "navigation_bar.edit_profile": "Redigeer profiel", "navigation_bar.explore": "Explore", - "navigation_bar.favourites": "Favourites", + "navigation_bar.favourites": "Gunstelinge", "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", - "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", - "navigation_bar.logout": "Logout", + "navigation_bar.logout": "Teken Uit", "navigation_bar.mutes": "Muted users", "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", - "navigation_bar.preferences": "Preferences", - "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.preferences": "Voorkeure", + "navigation_bar.public_timeline": "Gefedereerde tydlyn", + "navigation_bar.search": "Soek", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,9 +401,10 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", - "notifications.column_settings.favourite": "Favourites:", + "notifications.column_settings.favourite": "Gunstelinge:", "notifications.column_settings.filter_bar.advanced": "Display all categories", "notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.show_bar": "Show filter bar", @@ -336,23 +412,23 @@ "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Mentions:", "notifications.column_settings.poll": "Poll results:", - "notifications.column_settings.push": "Push notifications", + "notifications.column_settings.push": "Stoot kennisgewings", "notifications.column_settings.reblog": "Boosts:", "notifications.column_settings.show": "Show in column", "notifications.column_settings.sound": "Play sound", "notifications.column_settings.status": "New toots:", "notifications.column_settings.unread_notifications.category": "Unread notifications", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.unread_notifications.highlight": "Beklemtoon ongeleesde kennisgewings", "notifications.column_settings.update": "Edits:", "notifications.filter.all": "All", "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favourites", + "notifications.filter.favourites": "Gunstelinge", "notifications.filter.follows": "Follows", "notifications.filter.mentions": "Mentions", "notifications.filter.polls": "Poll results", "notifications.filter.statuses": "Updates from people you follow", "notifications.grant_permission": "Grant permission.", - "notifications.group": "{count} notifications", + "notifications.group": "{count} kennisgewings", "notifications.mark_as_read": "Mark every notification as read", "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Laas opdateer om {date}", + "privacy_policy.title": "Privaatheidsbeleid", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -393,7 +471,7 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "today", - "reply_indicator.cancel": "Cancel", + "reply_indicator.cancel": "Kanselleer", "report.block": "Block", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", "report.categories.other": "Other", @@ -431,20 +509,36 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", - "search.placeholder": "Search", - "search_popout.search_format": "Advanced search format", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", + "search.placeholder": "Soek", + "search.search_or_paste": "Soek of plak URL", + "search_popout.search_format": "Gevorderde soek formaat", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.hashtag": "hits-etiket", "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", - "search_results.accounts": "People", - "search_results.all": "All", - "search_results.hashtags": "Hashtags", - "search_results.nothing_found": "Could not find anything for these search terms", + "search_popout.tips.text": "Eenvoudige teks bring name, gebruiker name en hits-etikette wat ooreenstem, terug", + "search_popout.tips.user": "gebruiker", + "search_results.accounts": "Mense", + "search_results.all": "Alles", + "search_results.hashtags": "Hits-etiket", + "search_results.nothing_found": "Kon niks vind vir hierdie soek terme nie", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", - "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "search_results.title": "Soek vir {q}", + "search_results.total": "{count, number} {count, plural, one {resultaat} other {resultate}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administrasie deur:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", - "status.reply": "Reply", - "status.replyAll": "Reply to thread", + "status.replied_to": "Replied to {name}", + "status.reply": "Reageer", + "status.replyAll": "Reageer in garing", "status.report": "Report @{name}", - "status.sensitive_warning": "Sensitive content", + "status.sensitive_warning": "Sensitiewe inhoud", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "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.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", - "tabs_bar.federated_timeline": "Federated", + "tabs_bar.federated_timeline": "Gefedereerde", "tabs_bar.home": "Home", - "tabs_bar.local_timeline": "Local", - "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", + "tabs_bar.local_timeline": "Plaaslik", + "tabs_bar.notifications": "Kennisgewings", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 1f113213ce4ef5..ddbc30f1eb9913 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -1,42 +1,60 @@ { + "about.blocks": "خوادم تحت الإشراف", + "about.contact": "للاتصال:", + "about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.", + "about.domain_blocks.no_reason_available": "السبب غير متوفر", + "about.domain_blocks.preamble": "يسمح لك ماستدون عموماً بعرض المحتوى من المستخدمين من أي خادم آخر في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم بالذات.", + "about.domain_blocks.silenced.explanation": "عموماً، لن ترى ملفات التعريف والمحتوى من هذا الخادم، إلا إذا كنت تبحث عنه بشكل صريح أو تختار أن تتابعه.", + "about.domain_blocks.silenced.title": "تم كتمه", + "about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.", + "about.domain_blocks.suspended.title": "مُعلّق", + "about.not_available": "لم يتم توفير هذه المعلومات على هذا الخادم.", + "about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}", + "about.rules": "قواعد الخادم", "account.account_note_header": "مُلاحظة", "account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة", - "account.badges.bot": "روبوت", + "account.badges.bot": "بوت", "account.badges.group": "فريق", "account.block": "احجب @{name}", "account.block_domain": "حظر اسم النِّطاق {domain}", "account.blocked": "محظور", "account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي", - "account.cancel_follow_request": "إلغاء طلب المتابَعة", + "account.cancel_follow_request": "إلغاء طلب المتابعة", "account.direct": "مراسلة @{name} بشكل مباشر", "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}", "account.domain_blocked": "اسم النِّطاق محظور", "account.edit_profile": "تعديل الملف الشخصي", "account.enable_notifications": "أشعرني عندما ينشر @{name}", "account.endorse": "أوصِ به على صفحتك الشخصية", + "account.featured_tags.last_status_at": "آخر مشاركة في {date}", + "account.featured_tags.last_status_never": "لا توجد رسائل", + "account.featured_tags.title": "وسوم {name} المميَّزة", "account.follow": "متابعة", "account.followers": "مُتابِعون", "account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.", - "account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two{مُتابعانِ اِثنان} few{{counter} مُتابِعين} many{{counter} مُتابِعًا} other {{counter} مُتابع}}", + "account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two {مُتابعانِ اِثنان} few {{counter} مُتابِعين} many {{counter} مُتابِعًا} other {{counter} مُتابع}}", "account.following": "الإشتراكات", "account.following_counter": "{count, plural, zero{لا يُتابِع} one {يُتابِعُ واحد} two{يُتابِعُ اِثنان} few{يُتابِعُ {counter}} many{يُتابِعُ {counter}} other {يُتابِعُ {counter}}}", "account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.", "account.follows_you": "يُتابِعُك", + "account.go_to_profile": "اذهب إلى الملف الشخصي", "account.hide_reblogs": "إخفاء مشاركات @{name}", - "account.joined": "انضم في {date}", + "account.joined_short": "انضم في", + "account.languages": "تغيير اللغات المشترَك فيها", "account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}", "account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.", "account.media": "وسائط", - "account.mention": "ذِكر @{name}", - "account.moved_to": "لقد انتقل {name} إلى:", - "account.mute": "كَتم @{name}", + "account.mention": "أذكُر @{name}", + "account.moved_to": "أشار {name} إلى أن حسابه الجديد الآن:", + "account.mute": "أكتم @{name}", "account.mute_notifications": "كَتم الإشعارات من @{name}", "account.muted": "مَكتوم", + "account.open_original_page": "افتح الصفحة الأصلية", "account.posts": "منشورات", "account.posts_with_replies": "المنشورات والرُدود", "account.report": "الإبلاغ عن @{name}", "account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة", - "account.share": "مُشاركة الملف الشخصي لـ @{name}", + "account.share": "شارِك الملف التعريفي لـ @{name}", "account.show_reblogs": "عرض مشاركات @{name}", "account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}", "account.unblock": "إلغاء الحَظر عن @{name}", @@ -48,8 +66,8 @@ "account.unmute_notifications": "إلغاء كَتم الإشعارات عن @{name}", "account.unmute_short": "إلغاء الكتم", "account_note.placeholder": "اضغط لإضافة مُلاحظة", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.daily_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بيوم", + "admin.dashboard.monthly_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بالشهور", "admin.dashboard.retention.average": "المعدل", "admin.dashboard.retention.cohort": "شهر التسجيل", "admin.dashboard.retention.cohort_size": "المستخدمون الجدد", @@ -59,14 +77,27 @@ "alert.unexpected.title": "المعذرة!", "announcement.announcement": "إعلان", "attachments_list.unprocessed": "(غير معالَج)", + "audio.hide": "إخفاء المقطع الصوتي", "autosuggest_hashtag.per_week": "{count} في الأسبوع", "boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة", - "bundle_column_error.body": "لقد حدث خطأ ما أثناء تحميل هذا العنصر.", + "bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ", + "bundle_column_error.error.body": "لا يمكن تقديم الصفحة المطلوبة. قد يكون بسبب خطأ في التعليمات البرمجية، أو مشكلة توافق المتصفح.", + "bundle_column_error.error.title": "أوه لا!", + "bundle_column_error.network.body": "حدث خطأ أثناء محاولة تحميل هذه الصفحة. قد يكون هذا بسبب مشكلة مؤقتة في اتصالك بالإنترنت أو هذا الخادم.", + "bundle_column_error.network.title": "خطأ في الشبكة", "bundle_column_error.retry": "إعادة المُحاولة", - "bundle_column_error.title": "خطأ في الشبكة", + "bundle_column_error.return": "العودة إلى الرئيسية", + "bundle_column_error.routing.body": "تعذر العثور على الصفحة المطلوبة. هل أنت متأكد من أنّ عنوان URL في شريط العناوين صحيح؟", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "إغلاق", "bundle_modal_error.message": "لقد حدث خطأ ما أثناء تحميل هذا العنصر.", "bundle_modal_error.retry": "إعادة المُحاولة", + "closed_registrations.other_server_instructions": "بما أن ماستدون لامركزي، يمكنك إنشاء حساب على خادم آخر للاستمرار في التفاعل مع هذا الخادم.", + "closed_registrations_modal.description": "لا يمكن إنشاء حساب على {domain} حاليا، ولكن على فكرة لست بحاجة إلى حساب على {domain} بذاته لاستخدام ماستدون.", + "closed_registrations_modal.find_another_server": "ابحث على خادم آخر", + "closed_registrations_modal.preamble": "ماستدون لامركزي، لذلك بغض النظر عن مكان إنشاء حسابك، سيكون بإمكانك المتابعة والتفاعل مع أي شخص على هذا الخادم. يمكنك حتى أن تستضيفه ذاتياً!", + "closed_registrations_modal.title": "تسجيل حساب في ماستدون", + "column.about": "عن", "column.blocks": "المُستَخدِمون المَحظورون", "column.bookmarks": "الفواصل المرجعية", "column.community": "الخيط الزمني المحلي", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "إزالة هذا الخيار", "compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة", "compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط", - "compose_form.publish": "بوّق", + "compose_form.publish": "انشر", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "احفظ التعديلات", "compose_form.sensitive.hide": "{count, plural, one {الإشارة إلى الوَسط كمُحتوى حسّاس} two{الإشارة إلى الوسطان كمُحتويان حسّاسان} other {الإشارة إلى الوسائط كمُحتويات حسّاسة}}", @@ -119,10 +150,12 @@ "confirmations.block.block_and_report": "حظره والإبلاغ عنه", "confirmations.block.confirm": "حظر", "confirmations.block.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَظرَ {name}؟", + "confirmations.cancel_follow_request.confirm": "إلغاء الطلب", + "confirmations.cancel_follow_request.message": "متأكد من إلغاء طلب متابعة {name}؟", "confirmations.delete.confirm": "حذف", "confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟", "confirmations.delete_list.confirm": "حذف", - "confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمةَ بشكلٍ دائم؟", + "confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟", "confirmations.discard_edit_media.confirm": "تجاهل", "confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، تجاهلها على أي حال؟", "confirmations.domain_block.confirm": "حظر اِسم النِّطاق بشكلٍ كامل", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "اعتبرها كمقروءة", "conversation.open": "اعرض المحادثة", "conversation.with": "بـ {names}", + "copypaste.copied": "تم نسخه", + "copypaste.copy": "انسخ", "directory.federated": "مِن الفديفرس المعروف", "directory.local": "مِن {domain} فقط", "directory.new_arrivals": "الوافدون الجُدد", "directory.recently_active": "نشط مؤخرا", + "disabled_account_banner.account_settings": "إعدادات الحساب", + "disabled_account_banner.text": "حسابك {disabledAccount} معطل حاليا.", + "dismissable_banner.community_timeline": "هذه هي أحدث المشاركات العامة من الأشخاص الذين تُستضاف حساباتهم على {domain}.", + "dismissable_banner.dismiss": "إغلاق", + "dismissable_banner.explore_links": "هذه القصص الإخبارية يتحدث عنها أشخاص على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.", + "dismissable_banner.explore_statuses": "هذه المنشورات مِن هذا الخادم ومِن الخوادم الأخرى في الشبكة اللامركزية تجذب انتباه المستخدمين على هذا الخادم الآن.", + "dismissable_banner.explore_tags": "هذه العلامات تكتسب جذب بين الناس على هذا الخوادم الأخرى للشبكة اللامركزية في الوقت الحالي.", + "dismissable_banner.public_timeline": "هذه هي أحدث المنشورات العامة من الناس على هذا الخادم والخوادم الأخرى للشبكة اللامركزية التي يعرفها هذا الخادم.", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.preview": "هكذا ما سوف يبدو عليه:", "emoji_button.activity": "الأنشطة", @@ -196,21 +239,37 @@ "explore.trending_links": "الأخبار", "explore.trending_statuses": "المنشورات", "explore.trending_tags": "الوسوم", + "filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.", + "filter_modal.added.context_mismatch_title": "عدم تطابق السياق!", + "filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.", + "filter_modal.added.expired_title": "تصفية منتهية الصلاحية!", + "filter_modal.added.review_and_configure": "لمراجعة وزيادة تكوين فئة عوامل التصفية هذه، انتقل إلى {settings_link}.", + "filter_modal.added.review_and_configure_title": "إعدادات التصفية", + "filter_modal.added.settings_link": "صفحة الإعدادات", + "filter_modal.added.short_explanation": "تمت إضافة هذه المشاركة إلى فئة الفلاتر التالية: {title}.", + "filter_modal.added.title": "تمت إضافة عامل التصفية!", + "filter_modal.select_filter.context_mismatch": "لا ينطبق على هذا السياق", + "filter_modal.select_filter.expired": "منتهية الصلاحيّة", + "filter_modal.select_filter.prompt_new": "فئة جديدة: {name}", + "filter_modal.select_filter.search": "البحث أو الإنشاء", + "filter_modal.select_filter.subtitle": "استخدام فئة موجودة أو إنشاء فئة جديدة", + "filter_modal.select_filter.title": "تصفية هذا المنشور", + "filter_modal.title.status": "تصفية منشور", "follow_recommendations.done": "تم", "follow_recommendations.heading": "تابع الأشخاص الذين ترغب في رؤية منشوراتهم! إليك بعض الاقتراحات.", "follow_recommendations.lead": "ستظهر منشورات الأشخاص الذين تُتابعتهم بترتيب تسلسلي زمني على صفحتك الرئيسية. لا تخف إذا ارتكبت أي أخطاء، تستطيع إلغاء متابعة أي شخص في أي وقت تريد!", "follow_request.authorize": "ترخيص", "follow_request.reject": "رفض", "follow_requests.unlocked_explanation": "على الرغم من أن حسابك غير مقفل، فإن موظفين الـ{domain} ظنوا أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.", + "footer.about": "حَول", + "footer.directory": "دليل الصفحات التعريفية", + "footer.get_app": "احصل على التطبيق", + "footer.invite": "دعوة أشخاص", + "footer.keyboard_shortcuts": "اختصارات لوحة المفاتيح", + "footer.privacy_policy": "سياسة الخصوصية", + "footer.source_code": "الاطلاع على الشفرة المصدرية", "generic.saved": "تم الحفظ", - "getting_started.developers": "المُطوِّرون", - "getting_started.directory": "دليل الصفحات التعريفية", - "getting_started.documentation": "الدليل", "getting_started.heading": "استعدّ للبدء", - "getting_started.invite": "دعوة أشخاص", - "getting_started.open_source_notice": "ماستدون برنامج مفتوح المصدر. يمكنك المساهمة، أو الإبلاغ عن تقارير الأخطاء، على جيت هب {github}.", - "getting_started.security": "الأمان", - "getting_started.terms": "شروط الخدمة", "hashtag.column_header.tag_mode.all": "و {additional}", "hashtag.column_header.tag_mode.any": "أو {additional}", "hashtag.column_header.tag_mode.none": "بدون {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "أي كان مِن هذه", "hashtag.column_settings.tag_mode.none": "لا شيء مِن هذه", "hashtag.column_settings.tag_toggle": "إدراج الوسوم الإضافية لهذا العمود", + "hashtag.follow": "اتبع وسم الهاشج", + "hashtag.unfollow": "ألغِ متابعة الوسم", "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "اعرض الترقيات", "home.column_settings.show_replies": "اعرض الردود", "home.hide_announcements": "إخفاء الإعلانات", "home.show_announcements": "إظهار الإعلانات", + "interaction_modal.description.favourite": "مع حساب في ماستدون، يمكنك تفضيل هذا المقال لإبلاغ الناشر بتقديرك وحفظه لاحقا.", + "interaction_modal.description.follow": "مع حساب في ماستدون، يمكنك متابعة {name} لتلقي مشاركاتهم في الصفحه الرئيسيه.", + "interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور لمشاركته مع متابعينك.", + "interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذه المشاركة.", + "interaction_modal.on_another_server": "على خادم مختلف", + "interaction_modal.on_this_server": "على هذا الخادم", + "interaction_modal.other_server_instructions": "انسخ و الصق هذا الرابط في حقل البحث الخاص بك لتطبيق ماستدون المفضل لديك أو واجهة الويب لخادم ماستدون الخاص بك.", + "interaction_modal.preamble": "بما إن ماستدون لامركزي، يمكنك استخدام حسابك الحالي المستضاف بواسطة خادم ماستدون آخر أو منصة متوافقة إذا لم يكن لديك حساب هنا.", + "interaction_modal.title.favourite": "الإعجاب بمنشور {name}", + "interaction_modal.title.follow": "اتبع {name}", + "interaction_modal.title.reblog": "مشاركة منشور {name}", + "interaction_modal.title.reply": "الرد على منشور {name}", "intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}", "intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}", "intervals.full.minutes": "{number, plural, one {# دقيقة} other {# دقائق}}", @@ -268,7 +341,7 @@ "lightbox.next": "التالي", "lightbox.previous": "العودة", "limited_account_hint.action": "إظهار الملف التعريفي على أي حال", - "limited_account_hint.title": "أخف مشرف الخادم هذا الملف التعريفي.", + "limited_account_hint.title": "تم إخفاء هذا الملف الشخصي من قبل مشرفي {domain}.", "lists.account.add": "أضف إلى القائمة", "lists.account.remove": "احذف من القائمة", "lists.delete": "احذف القائمة", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}", "missing_indicator.label": "غير موجود", "missing_indicator.sublabel": "تعذر العثور على هذا المورد", + "moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.", "mute_modal.duration": "المدة", "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", "mute_modal.indefinite": "إلى أجل غير مسمى", - "navigation_bar.apps": "تطبيقات الأجهزة المحمولة", + "navigation_bar.about": "عن", "navigation_bar.blocks": "الحسابات المحجوبة", "navigation_bar.bookmarks": "الفواصل المرجعية", "navigation_bar.community_timeline": "الخيط المحلي", @@ -304,8 +378,6 @@ "navigation_bar.filters": "الكلمات المكتومة", "navigation_bar.follow_requests": "طلبات المتابعة", "navigation_bar.follows_and_followers": "المتابِعين والمتابَعون", - "navigation_bar.info": "عن هذا الخادم", - "navigation_bar.keyboard_shortcuts": "اختصارات لوحة المفاتيح", "navigation_bar.lists": "القوائم", "navigation_bar.logout": "خروج", "navigation_bar.mutes": "الحسابات المكتومة", @@ -313,7 +385,10 @@ "navigation_bar.pins": "المنشورات المُثَبَّتَة", "navigation_bar.preferences": "التفضيلات", "navigation_bar.public_timeline": "الخيط العام الموحد", + "navigation_bar.search": "البحث", "navigation_bar.security": "الأمان", + "not_signed_in_indicator.not_signed_in": "تحتاج إلى تسجيل الدخول للوصول إلى هذا المصدر.", + "notification.admin.report": "{name} أبلغ عن {target}", "notification.admin.sign_up": "أنشأ {name} حسابًا", "notification.favourite": "أُعجِب {name} بمنشورك", "notification.follow": "{name} يتابعك", @@ -326,6 +401,7 @@ "notification.update": "عدّلَ {name} منشورًا", "notifications.clear": "امسح الإخطارات", "notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟", + "notifications.column_settings.admin.report": "التقارير الجديدة:", "notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:", "notifications.column_settings.alert": "إشعارات سطح المكتب", "notifications.column_settings.favourite": "المُفَضَّلة:", @@ -379,15 +455,17 @@ "privacy.public.short": "للعامة", "privacy.unlisted.long": "مرئي للجميع، ولكن مِن دون ميزات الاكتشاف", "privacy.unlisted.short": "غير مدرج", + "privacy_policy.last_updated": "آخر تحديث {date}", + "privacy_policy.title": "سياسة الخصوصية", "refresh": "أنعِش", "regeneration_indicator.label": "جارٍ التحميل…", "regeneration_indicator.sublabel": "جارٍ تجهيز تغذية صفحتك الرئيسية!", "relative_time.days": "{number}ي", "relative_time.full.days": "منذ {number, plural, zero {} one {# يوم} two {# يومين} few {# أيام} many {# أيام} other {# يوم}}", - "relative_time.full.hours": "منذ {number, plural, zero {} one {# ساعة واحدة} two {# ساعتين} few {# ساعات} many {# ساعات} other {# ساعة}}", + "relative_time.full.hours": "منذ {number, plural, zero {} one {ساعة واحدة} two {ساعتَيْن} few {# ساعات} many {# ساعة} other {# ساعة}}", "relative_time.full.just_now": "الآن", - "relative_time.full.minutes": "منذ {number, plural, zero {} one {# دقيقة واحدة} two {# دقيقتين} few {# دقائق} many {# دقيقة} other {# دقائق}}", - "relative_time.full.seconds": "منذ {number, plural, zero {} one {# ثانية واحدة} two {# ثانيتين} few {# ثوانٍ} many {# ثوانٍ} other {# ثانية}}", + "relative_time.full.minutes": "منذ {number, plural, zero {} one {دقيقة} two {دقيقتَيْن} few {# دقائق} many {# دقيقة} other {# دقائق}}", + "relative_time.full.seconds": "منذ {number, plural, zero {} one {ثانية} two {ثانيتَيْن} few {# ثوانٍ} many {# ثانية} other {# ثانية}}", "relative_time.hours": "{number}سا", "relative_time.just_now": "الآن", "relative_time.minutes": "{number}د", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "شُكرًا لَكَ على الإبلاغ، سَوفَ نَنظُرُ فِي هَذَا الأمر.", "report.unfollow": "إلغاء متابعة @{name}", "report.unfollow_explanation": "أنت تتابع هذا الحساب، لإزالة مَنشوراته من تغذيَتِكَ الرئيسة ألغ متابعته.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "آخر", + "report_notification.categories.spam": "مزعج", + "report_notification.categories.violation": "القاعدة المنتهَكة", + "report_notification.open": "فتح التقرير", "search.placeholder": "ابحث", + "search.search_or_paste": "ابحث أو أدخل رابطا تشعبيا URL", "search_popout.search_format": "نمط البحث المتقدم", "search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.", "search_popout.tips.hashtag": "وسم", @@ -444,23 +528,35 @@ "search_results.nothing_found": "تعذر العثور على نتائج تتضمن هذه المصطلحات", "search_results.statuses": "المنشورات", "search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.", + "search_results.title": "البحث عن {q}", "search_results.total": "{count, number} {count, plural, zero {} one {نتيجة} two {نتيجتين} few {نتائج} many {نتائج} other {نتائج}}", + "server_banner.about_active_users": "الأشخاص الذين يستخدمون هذا الخادم خلال الأيام الثلاثين الأخيرة (المستخدمون النشطون شهريًا)", + "server_banner.active_users": "مستخدم نشط", + "server_banner.administered_by": "يُديره:", + "server_banner.introduction": "{domain} هو جزء من الشبكة الاجتماعية اللامركزية التي تعمل بواسطة {mastodon}.", + "server_banner.learn_more": "تعلم المزيد", + "server_banner.server_stats": "إحصائيات الخادم:", + "sign_in_banner.create_account": "أنشئ حسابًا", + "sign_in_banner.sign_in": "لِج", + "sign_in_banner.text": "قم بالولوج بحسابك لمتابعة الصفحات الشخصية أو الوسوم، أو لإضافة الرسائل إلى المفضلة ومشاركتها والرد عليها أو التفاعل بواسطة حسابك المتواجد على خادم مختلف.", "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", "status.block": "احجب @{name}", "status.bookmark": "أضفه إلى الفواصل المرجعية", "status.cancel_reblog_private": "إلغاء الترقية", "status.cannot_reblog": "تعذرت ترقية هذا المنشور", - "status.copy": "نسخ رابط المنشور", + "status.copy": "انسخ رابط الرسالة", "status.delete": "احذف", "status.detailed_status": "تفاصيل المحادثة", "status.direct": "رسالة خاصة إلى @{name}", "status.edit": "تعديل", "status.edited": "عُدّل في {date}", - "status.edited_x_times": "عُدّل {count, plural, zero {} one {{count} مرة} two {{count} مرتين} few {{count} مرات} many {{count} مرات} other {{count} مرة}}", + "status.edited_x_times": "عُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}", "status.embed": "إدماج", "status.favourite": "أضف إلى المفضلة", + "status.filter": "تصفية هذه الرسالة", "status.filtered": "مُصفّى", + "status.hide": "اخف التبويق", "status.history.created": "أنشأه {name} {date}", "status.history.edited": "عدله {name} {date}", "status.load_more": "حمّل المزيد", @@ -479,26 +575,32 @@ "status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "status.redraft": "إزالة و إعادة الصياغة", "status.remove_bookmark": "احذفه مِن الفواصل المرجعية", + "status.replied_to": "رَدًا على {name}", "status.reply": "ردّ", "status.replyAll": "رُد على الخيط", "status.report": "ابلِغ عن @{name}", "status.sensitive_warning": "محتوى حساس", "status.share": "مشاركة", + "status.show_filter_reason": "إظهار على أي حال", "status.show_less": "اعرض أقلّ", "status.show_less_all": "طي الكل", "status.show_more": "أظهر المزيد", "status.show_more_all": "توسيع الكل", - "status.show_thread": "الكشف عن المحادثة", + "status.show_original": "إظهار الأصل", + "status.translate": "ترجم", + "status.translated_from_with": "مترجم من {lang} باستخدام {provider}", "status.uncached_media_warning": "غير متوفر", "status.unmute_conversation": "فك الكتم عن المحادثة", "status.unpin": "فك التدبيس من الصفحة التعريفية", + "subscribed_languages.lead": "فقط المشاركات في اللغات المحددة ستظهر في الرئيسيه وتسرد الجداول الزمنية بعد التغيير. حدد لا شيء لتلقي المشاركات بجميع اللغات.", + "subscribed_languages.save": "حفظ التغييرات", + "subscribed_languages.target": "تغيير اللغات المشتركة لـ {target}", "suggestions.dismiss": "إلغاء الاقتراح", "suggestions.header": "يمكن أن يهمك…", "tabs_bar.federated_timeline": "الموحَّد", "tabs_bar.home": "الرئيسية", "tabs_bar.local_timeline": "الخيط العام المحلي", "tabs_bar.notifications": "الإخطارات", - "tabs_bar.search": "البحث", "time_remaining.days": "{number, plural, one {# يوم} other {# أيام}} متبقية", "time_remaining.hours": "{number, plural, one {# ساعة} other {# ساعات}} متبقية", "time_remaining.minutes": "{number, plural, one {# دقيقة} other {# دقائق}} متبقية", @@ -508,12 +610,12 @@ "timeline_hint.resources.followers": "المتابِعون", "timeline_hint.resources.follows": "المتابَعون", "timeline_hint.resources.statuses": "المنشورات القديمة", - "trends.counter_by_accounts": "{count,plural,zero{} one{{counter} شخص} two{{counter} شخصين} few{{counter} أشخاص } many{{counter} شخص} other{{counter} شخص}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "المتداولة الآن", "ui.beforeunload": "سوف تفقد مسودتك إن تركت ماستدون.", "units.short.billion": "{count} مليار", - "units.short.million": "{count} مليون", - "units.short.thousand": "{count} ألف", + "units.short.million": "{count} مليون", + "units.short.thousand": "{count} ألف", "upload_area.title": "اسحب ثم أفلت للرفع", "upload_button.label": "إضافة وسائط", "upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "جار إعداد OCR (تعرف ضوئي على الرموز)…", "upload_modal.preview_label": "معاينة ({ratio})", "upload_progress.label": "يرفع...", + "upload_progress.processing": "تتم المعالجة…", "video.close": "إغلاق الفيديو", "video.download": "تنزيل الملف", "video.exit_fullscreen": "الخروج من وضع الشاشة المليئة", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 148527b96e72cf..78555dc2ddf86f 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -1,19 +1,34 @@ { - "account.account_note_header": "Note", - "account.add_or_remove_from_list": "Amestar o desaniciar de les llistes", + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "El motivu nun ta disponible", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", + "account.account_note_header": "Nota", + "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Robó", "account.badges.group": "Grupu", "account.block": "Bloquiar a @{name}", - "account.block_domain": "Anubrir tolo de {domain}", - "account.blocked": "Bloquiada", + "account.block_domain": "Block domain {domain}", + "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Encaboxar la solicitú de siguimientu", - "account.direct": "Unviar un mensaxe direutu a @{name}", + "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", - "account.domain_blocked": "Dominiu anubríu", + "account.domain_blocked": "Domain blocked", "account.edit_profile": "Editar el perfil", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Destacar nel perfil", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Siguir", "account.followers": "Siguidores", "account.followers.empty": "Naide sigue a esti usuariu entá.", @@ -22,18 +37,21 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "Esti usuariu entá nun sigue a naide.", "account.follows_you": "Síguete", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Anubrir les comparticiones de @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Data de xunión", + "account.languages": "Change subscribed languages", "account.link_verified_on": "La propiedá d'esti enllaz foi comprobada'l {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mentar a @{name}", - "account.moved_to": "{name} mudóse a:", - "account.mute": "Silenciar a @{name}", + "account.moved_to": "{name} has indicated that their new account is now:", + "account.mute": "Desactivación de los avisos de @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", - "account.posts": "Barritos", - "account.posts_with_replies": "Barritos y rempuestes", + "account.open_original_page": "Abrir la páxina orixinal", + "account.posts": "Artículos", + "account.posts_with_replies": "Artículos y rempuestes", "account.report": "Report @{name}", "account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu", "account.share": "Share @{name}'s profile", @@ -47,26 +65,39 @@ "account.unmute": "Unmute @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", "account.unmute_short": "Unmute", - "account_note.placeholder": "Click to add a note", + "account_note.placeholder": "Calca equí p'amestar una nota", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", + "admin.dashboard.retention.average": "Promediu", "admin.dashboard.retention.cohort": "Sign-up month", "admin.dashboard.retention.cohort_size": "Usuarios nuevos", "alert.rate_limited.message": "Volvi tentalo dempués de la hora: {retry_time, time, medium}.", "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "Asocedió un fallu inesperáu.", + "alert.unexpected.message": "Prodúxose un error inesperáu.", "alert.unexpected.title": "¡Meca!", "announcement.announcement": "Anunciu", "attachments_list.unprocessed": "(ensin procesar)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per selmana", "boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada", - "bundle_column_error.body": "Asocedió daqué malo mentanto se cargaba esti componente.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "¡Meca!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Asocedió daqué malo mentanto se cargaba esti componente.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Darréu que Mastodon ye descentralizáu, pues crear una cuenta n'otru sirvidor y siguir interactuando con esti.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Usuarios bloquiaos", "column.bookmarks": "Marcadores", "column.community": "Llinia temporal llocal", @@ -87,13 +118,13 @@ "column_header.moveRight_settings": "Mover la columna a la drecha", "column_header.pin": "Fixar", "column_header.show_settings": "Amosar axustes", - "column_header.unpin": "Desfixar", + "column_header.unpin": "Lliberar", "column_subheading.settings": "Axustes", "community.column_settings.local_only": "Local only", "community.column_settings.media_only": "Namái multimedia", "community.column_settings.remote_only": "Remote only", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Camudar la llingua", + "compose.language.search": "Buscar llingües…", "compose_form.direct_message_warning_learn_more": "Saber más", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Desaniciar esta escoyeta", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Barritar", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloquiar ya informar", "confirmations.block.confirm": "Bloquiar", "confirmations.block.message": "¿De xuru que quies bloquiar a {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Desaniciar", "confirmations.delete.message": "¿De xuru que quies desaniciar esti estáu?", "confirmations.delete_list.confirm": "Desaniciar", @@ -131,7 +164,7 @@ "confirmations.logout.message": "¿De xuru que quies zarrar la sesión?", "confirmations.mute.confirm": "Silenciar", "confirmations.mute.explanation": "Esto va anubrir los espublizamientos y les sos menciones pero entá va permiti-yos ver los tos espublizamientos y siguite.", - "confirmations.mute.message": "¿De xuru que quies silenciar a {name}?", + "confirmations.mute.message": "¿De xuru que quies desactivar los avisos de {name}?", "confirmations.redraft.confirm": "Desaniciar y reeditar", "confirmations.redraft.message": "¿De xuru que quies desaniciar esti estáu y reeditalu? Van perdese los favoritos y comparticiones, y les rempuestes al toot orixinal van quedar güérfanes.", "confirmations.reply.confirm": "Responder", @@ -142,13 +175,23 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "Con {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Dende'l fediversu", "directory.local": "Dende {domain} namái", "directory.new_arrivals": "Cuentes nueves", "directory.recently_active": "Actividá recién", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Empotra esti estáu nun sitiu web copiando'l códigu d'embaxo.", "embed.preview": "Asina ye cómo va vese:", - "emoji_button.activity": "Actividaes", + "emoji_button.activity": "Actividá", "emoji_button.clear": "Clear", "emoji_button.custom": "Custom", "emoji_button.flags": "Banderes", @@ -169,23 +212,23 @@ "empty_column.blocks": "Entá nun bloquiesti a nengún usuariu.", "empty_column.bookmarked_statuses": "Entá nun tienes nengún barritu en Marcadores. Cuando amiestes unu, va amosase equí.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaez equí.", + "empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.", "empty_column.domain_blocks": "Entá nun hai dominios anubríos.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.", "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", - "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va amosase equí.", + "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va apaecer equí.", "empty_column.hashtag": "Entá nun hai nada nesta etiqueta.", "empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar y conocer a otros usuarios.", "empty_column.home.suggestions": "See some suggestions", "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen estaos nuevos, van apaecer equí.", - "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, va amosase equí.", - "empty_column.mutes": "Entá nun silenciesti a nunengún usuariu.", - "empty_column.notifications": "Entá nun tienes nunengún avisu. Interactúa con otros p'aniciar la conversación.", + "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, va apaecer equí.", + "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", "empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto", "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.", - "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti fallu.", + "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.", "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", @@ -196,21 +239,37 @@ "explore.trending_links": "Noticies", "explore.trending_statuses": "Posts", "explore.trending_tags": "Etiquetes", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Refugar", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Direutoriu de perfiles", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Atayos del tecláu", + "footer.privacy_policy": "Política de privacidá", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Desendolcadores", - "getting_started.directory": "Direutoriu de perfiles", - "getting_started.documentation": "Documentación", "getting_started.heading": "Entamu", - "getting_started.invite": "Convidar a persones", - "getting_started.open_source_notice": "Mastodon ye software de códigu abiertu. Pues collaborar o informar de fallos en GitHub: {github}.", - "getting_started.security": "Axustes de la cuenta", - "getting_started.terms": "Términos del serviciu", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "ensin {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Cualesquiera d'estes", "hashtag.column_settings.tag_mode.none": "Nenguna d'estes", "hashtag.column_settings.tag_toggle": "Incluyir les etiquetes adicionales d'esta columna", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Amosar rempuestes", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "Con una cuenta de Mastodon, pues compartir esti artículu colos perfiles que te sigan.", + "interaction_modal.description.reply": "Con una cuenta de Mastodon, pues responder a esti artículu.", + "interaction_modal.on_another_server": "N'otru sirvidor", + "interaction_modal.on_this_server": "Nesti sirvidor", + "interaction_modal.other_server_instructions": "Copia y apiega esta URL nel campu de busca de la to aplicación favorita de Mastodon o na interfaz web de dalgún sirvidor de Mastodon.", + "interaction_modal.preamble": "Darréu que Mastodon ye descentralizáu, pues usar una cuenta agospiada n'otru sirvidor de Mastodon o n'otra plataforma compatible si nun tienes cuenta nesti sirvidor.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# día} other {# díes}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}", @@ -268,7 +341,7 @@ "lightbox.next": "Siguiente", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Amestar a la llista", "lists.account.remove": "Desaniciar de la llista", "lists.delete": "Desaniciar la llista", @@ -277,7 +350,7 @@ "lists.new.create": "Add list", "lists.new.title_placeholder": "Títulu nuevu de la llista", "lists.replies_policy.followed": "Any followed user", - "lists.replies_policy.list": "Members of the list", + "lists.replies_policy.list": "Miembros de la llista", "lists.replies_policy.none": "No one", "lists.replies_policy.title": "Show replies to:", "lists.search": "Buscar ente la xente que sigues", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Alternar la visibilidá", "missing_indicator.label": "Nun s'atopó", "missing_indicator.sublabel": "Nun se pudo atopar esti recursu", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Aplicaciones pa móviles", + "navigation_bar.about": "About", "navigation_bar.blocks": "Usuarios bloquiaos", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Llinia temporal llocal", @@ -301,19 +375,20 @@ "navigation_bar.edit_profile": "Editar el perfil", "navigation_bar.explore": "Explore", "navigation_bar.favourites": "Favoritos", - "navigation_bar.filters": "Pallabres silenciaes", + "navigation_bar.filters": "Pallabres desactivaes", "navigation_bar.follow_requests": "Solicitúes de siguimientu", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "Tocante a esta instancia", - "navigation_bar.keyboard_shortcuts": "Atayos", "navigation_bar.lists": "Llistes", - "navigation_bar.logout": "Zarrar sesión", + "navigation_bar.logout": "Zarrar la sesión", "navigation_bar.mutes": "Usuarios silenciaos", "navigation_bar.personal": "Personal", - "navigation_bar.pins": "Barritos fixaos", + "navigation_bar.pins": "Artículos fixaos", "navigation_bar.preferences": "Preferencies", "navigation_bar.public_timeline": "Llinia temporal federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguranza", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} siguióte", @@ -326,6 +401,7 @@ "notification.update": "{name} editó l'artículu", "notifications.clear": "Llimpiar avisos", "notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Avisos d'escritoriu", "notifications.column_settings.favourite": "Favoritos:", @@ -371,14 +447,16 @@ "poll_button.add_poll": "Amestar una encuesta", "poll_button.remove_poll": "Quitar la encuesta", "privacy.change": "Adjust status privacy", - "privacy.direct.long": "Post to mentioned users only", + "privacy.direct.long": "Visible for mentioned users only", "privacy.direct.short": "Direct", - "privacy.private.long": "Post to followers only", + "privacy.private.long": "Visible for followers only", "privacy.private.short": "Followers-only", "privacy.public.long": "Visible for all", "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Nun llistar", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Política de privacidá", "refresh": "Refresh", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Tamos tresnando'l feed d'Aniciu!", @@ -394,44 +472,50 @@ "relative_time.seconds": "{number} s", "relative_time.today": "güei", "reply_indicator.cancel": "Encaboxar", - "report.block": "Block", + "report.block": "Bloquiar", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", "report.categories.other": "Other", "report.categories.spam": "Spam", - "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", - "report.category.title_account": "profile", - "report.category.title_status": "post", - "report.close": "Done", - "report.comment.title": "Is there anything else you think we should know?", - "report.forward": "Forward to {target}", - "report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar ellí tamién una copia anónima del informe?", + "report.categories.violation": "El conteníu incumple una o más regles del sirvidor", + "report.category.subtitle": "Escueyi la meyor opción", + "report.category.title": "Dinos qué pasa con esti {type}", + "report.category.title_account": "perfil", + "report.category.title_status": "artículu", + "report.close": "Fecho", + "report.comment.title": "¿Hai daqué más qu'habríemos saber?", + "report.forward": "Reunviar a {target}", + "report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar a esi sirvidor una copia anónima del informe?", "report.mute": "Mute", "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", "report.next": "Siguiente", "report.placeholder": "Comentarios adicionales", "report.reasons.dislike": "I don't like it", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "It's spam", + "report.reasons.dislike_description": "Nun ye daqué que quiera ver", + "report.reasons.other": "Ye daqué más", + "report.reasons.other_description": "La incidencia nun s'axusta a les demás categoríes", + "report.reasons.spam": "Ye spam", "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", "report.reasons.violation": "Incumple les regles del sirvidor", "report.reasons.violation_description": "You are aware that it breaks specific rules", "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", + "report.rules.title": "¿Qué regles s'incumplen?", "report.statuses.subtitle": "Select all that apply", "report.statuses.title": "Are there any posts that back up this report?", "report.submit": "Unviar", "report.target": "Report {target}", - "report.thanks.take_action": "Equí tan les opciones pa controlar qué ver en Mastodon:", + "report.thanks.take_action": "Equí tienes les opciones pa controlar qué ves en Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.title": "Don't want to see this?", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Buscar", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Formatu de gueta avanzada", "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": "etiqueta", @@ -444,14 +528,24 @@ "search_results.nothing_found": "Nun se pudo atopar nada con esos términos de busca", "search_results.statuses": "Barritos", "search_results.statuses_fts_disabled": "Esti sirvidor de Mastodon tien activada la gueta de barritos pol so conteníu.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {resultáu} other {resultaos}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Saber más", + "server_banner.server_stats": "Estadístiques del sirvidor:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Bloquiar a @{name}", "status.bookmark": "Amestar a Marcadores", "status.cancel_reblog_private": "Dexar de compartir", "status.cannot_reblog": "Esti artículu nun se pue compartir", - "status.copy": "Copiar l'enllaz al estáu", + "status.copy": "Copiar l'enllaz al artículu", "status.delete": "Desaniciar", "status.detailed_status": "Detailed conversation view", "status.direct": "Unviar un mensaxe direutu a @{name}", @@ -460,18 +554,20 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Empotrar", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.hide": "Hide toot", + "status.history.created": "{name} creó {date}", + "status.history.edited": "{name} editó {date}", "status.load_more": "Cargar más", "status.media_hidden": "Multimedia anubrida", "status.mention": "Mentar a @{name}", "status.more": "Más", "status.mute": "Silenciar a @{name}", - "status.mute_conversation": "Silenciar la conversación", - "status.open": "Espander esti estáu", + "status.mute_conversation": "Mute conversation", + "status.open": "Espander esti artículu", "status.pin": "Fixar nel perfil", - "status.pinned": "Barritu fixáu", + "status.pinned": "Artículu fixáu", "status.read_more": "Lleer más", "status.reblog": "Compartir", "status.reblog_private": "Compartir cola audiencia orixinal", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Naide nun compartió esti barritu entá. Cuando daquién lo faiga, va amosase equí.", "status.redraft": "Desaniciar y reeditar", "status.remove_bookmark": "Desaniciar de Marcadores", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Conteníu sensible", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Amosar menos", "status.show_less_all": "Amosar menos en too", "status.show_more": "Amosar más", "status.show_more_all": "Amosar más en too", - "status.show_thread": "Amosar el filu", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Non disponible", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Desfixar del perfil", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "Quiciabes t'interese…", "tabs_bar.federated_timeline": "Fediversu", "tabs_bar.home": "Aniciu", "tabs_bar.local_timeline": "Llocal", "tabs_bar.notifications": "Avisos", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {Queda # día} other {Queden # díes}}", "time_remaining.hours": "{number, plural, one {Queda # hora} other {Queden # hores}}", "time_remaining.minutes": "{number, plural, one {Queda # minutu} other {Queden # minutos}}", @@ -508,12 +610,12 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older posts", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", - "trends.trending_now": "Trending now", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "En tendencia", "ui.beforeunload": "El borrador va perdese si coles de Mastodon.", - "units.short.billion": "{count} B", + "units.short.billion": "{count} MM", "units.short.million": "{count} M", - "units.short.thousand": "{count} K", + "units.short.thousand": "{count} mil", "upload_area.title": "Arrastra y suelta pa xubir", "upload_button.label": "Add images, a video or an audio file", "upload_error.limit": "File upload limit exceeded.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Previsualización ({ratio})", "upload_progress.label": "Xubiendo…", + "upload_progress.processing": "Procesando…", "video.close": "Zarrar el videu", "video.download": "Download file", "video.exit_fullscreen": "Colar de la pantalla completa", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 06d4760f0191cb..58a48f4aeced0f 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -1,155 +1,198 @@ { + "about.blocks": "Модерирани сървъри", + "about.contact": "За контакти:", + "about.disclaimer": "Mastodon е безплатен софтуер с отворен изходен код и търговска марка Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Няма налична причина", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Ограничено", + "about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхранявани или обменяни, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.", + "about.domain_blocks.suspended.title": "Спряно", + "about.not_available": "Тази информация не е била направена налична на този сървър.", + "about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}", + "about.rules": "Правила на сървъра", "account.account_note_header": "Бележка", "account.add_or_remove_from_list": "Добави или премахни от списъците", "account.badges.bot": "Бот", "account.badges.group": "Група", - "account.block": "Блокирай", - "account.block_domain": "скрий всичко от (домейн)", + "account.block": "Блокиране на @{name}", + "account.block_domain": "Блокиране на домейн {domain}", "account.blocked": "Блокирани", - "account.browse_more_on_origin_server": "Разгледайте повече в оригиналния профил", - "account.cancel_follow_request": "Откажи искането за следване", - "account.direct": "Direct Message @{name}", - "account.disable_notifications": "Спрете да ме уведомявате, когато @{name} публикува", - "account.domain_blocked": "Скрит домейн", - "account.edit_profile": "Редактирай профила", + "account.browse_more_on_origin_server": "Разглеждане на още в първообразния профил", + "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "Директно съобщение до @{name}", + "account.disable_notifications": "Сприране на известия при публикуване от @{name}", + "account.domain_blocked": "Блокиран домейн", + "account.edit_profile": "Редактиране на профила", "account.enable_notifications": "Уведомявайте ме, когато @{name} публикува", "account.endorse": "Характеристика на профила", - "account.follow": "Последвай", + "account.featured_tags.last_status_at": "Последна публикация на {date}", + "account.featured_tags.last_status_never": "Няма публикации", + "account.featured_tags.title": "{name}'s featured hashtags", + "account.follow": "Последване", "account.followers": "Последователи", - "account.followers.empty": "Все още никой не следва този потребител.", - "account.followers_counter": "{count, plural, one {{counter} Последовател} other {{counter} Последователи}}", - "account.following": "Following", - "account.following_counter": "{count, plural, one {{counter} Последван} other {{counter} Последвани}}", - "account.follows.empty": "Този потребител все още не следва никого.", - "account.follows_you": "Твой последовател", + "account.followers.empty": "Още никой не следва потребителя.", + "account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}", + "account.following": "Последвани", + "account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}", + "account.follows.empty": "Потребителят още никого не следва.", + "account.follows_you": "Ваш последовател", + "account.go_to_profile": "Към профила", "account.hide_reblogs": "Скриване на споделяния от @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Присъединени", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Собствеността върху тази връзка е проверена на {date}", - "account.locked_info": "Този акаунт е поверително заключен. Собственикът преглежда ръчно кой може да го следва.", + "account.locked_info": "Състоянието за поверителността на акаунта е зададено заключено. Собственикът преглежда ръчно от кого може да се следва.", "account.media": "Мултимедия", - "account.mention": "Споменаване", - "account.moved_to": "{name} се премести в:", + "account.mention": "Споменаване на @{name}", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Заглушаване на @{name}", "account.mute_notifications": "Заглушаване на известия от @{name}", "account.muted": "Заглушено", + "account.open_original_page": "Отваряне на оригиналната страница", "account.posts": "Публикации", - "account.posts_with_replies": "Toots with replies", + "account.posts_with_replies": "Публикации и отговори", "account.report": "Докладване на @{name}", - "account.requested": "В очакване на одобрение", - "account.share": "Споделяне на @{name} профила", + "account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване", + "account.share": "Споделяне на профила на @{name}", "account.show_reblogs": "Показване на споделяния от @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Публикация} other {{counter} Публикации}}", - "account.unblock": "Не блокирай", - "account.unblock_domain": "Unhide {domain}", - "account.unblock_short": "Unblock", + "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", + "account.unblock": "Отблокиране на @{name}", + "account.unblock_domain": "Отблокиране на домейн {domain}", + "account.unblock_short": "Отблокирване", "account.unendorse": "Не включвайте в профила", - "account.unfollow": "Не следвай", - "account.unmute": "Раззаглушаване на @{name}", - "account.unmute_notifications": "Раззаглушаване на известия от @{name}", - "account.unmute_short": "Unmute", - "account_note.placeholder": "Click to add a note", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "New users", - "alert.rate_limited.message": "Моля, опитайте отново след {retry_time, time, medium}.", + "account.unfollow": "Стоп на следването", + "account.unmute": "Без заглушаването на @{name}", + "account.unmute_notifications": "Без заглушаване на известия от @{name}", + "account.unmute_short": "Без заглушаването", + "account_note.placeholder": "Щракнете, за да добавите бележка", + "admin.dashboard.daily_retention": "Ниво на задържани на потребители след регистрация, в дни", + "admin.dashboard.monthly_retention": "Ниво на задържани на потребители след регистрация, в месеци", + "admin.dashboard.retention.average": "Средно", + "admin.dashboard.retention.cohort": "Регистрации за месец", + "admin.dashboard.retention.cohort_size": "Нови потребители", + "alert.rate_limited.message": "Опитайте пак след {retry_time, time, medium}.", "alert.rate_limited.title": "Скоростта е ограничена", "alert.unexpected.message": "Възникна неочаквана грешка.", "alert.unexpected.title": "Опаа!", "announcement.announcement": "Оповестяване", - "attachments_list.unprocessed": "(unprocessed)", + "attachments_list.unprocessed": "(необработено)", + "audio.hide": "Скриване на звука", "autosuggest_hashtag.per_week": "{count} на седмица", "boost_modal.combo": "Можете да натиснете {combo}, за да пропуснете това следващия път", - "bundle_column_error.body": "Нещо се обърка при зареждането на този компонент.", - "bundle_column_error.retry": "Опитай отново", - "bundle_column_error.title": "Мрежова грешка", + "bundle_column_error.copy_stacktrace": "Копиране на доклада за грешката", + "bundle_column_error.error.body": "Заявената страница не може да се изобрази. Това може да е заради грешка в кода ни или проблем със съвместимостта на браузъра.", + "bundle_column_error.error.title": "О, не!", + "bundle_column_error.network.body": "Възникна грешка, опитвайки зареждане на страницата. Това може да е заради временен проблем с интернет връзката ви или този сървър.", + "bundle_column_error.network.title": "Мрежова грешка", + "bundle_column_error.retry": "Нов опит", + "bundle_column_error.return": "Обратно към началото", + "bundle_column_error.routing.body": "Заявената страница не може да се намери. Сигурни ли сте, че URL адресът в адресната лента е правилен?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Затваряне", - "bundle_modal_error.message": "Нещо се обърка при зареждането на този компонент.", - "bundle_modal_error.retry": "Опитайте отново", + "bundle_modal_error.message": "Нещо се обърка, зареждайки компонента.", + "bundle_modal_error.retry": "Нов опит", + "closed_registrations.other_server_instructions": "Поради това че Mastodon е децентрализиран, можеш да създадеш акаунт на друг сървър, от който можеш да комуникираш с този.", + "closed_registrations_modal.description": "Създаването на акаунт в {domain} сега не е възможно, но обърнете внимание, че нямате нужда от акаунт конкретно на {domain}, за да ползвате Mastodon.", + "closed_registrations_modal.find_another_server": "Намиране на друг сървър", + "closed_registrations_modal.preamble": "Mastodon е децентрализиран, така че няма значение къде създавате акаунта си, ще може да последвате и взаимодействате с всеки на този сървър. Може дори да стартирате свой собствен сървър!", + "closed_registrations_modal.title": "Регистриране в Mastodon", + "column.about": "Относно", "column.blocks": "Блокирани потребители", "column.bookmarks": "Отметки", - "column.community": "Локална емисия", - "column.direct": "Direct messages", - "column.directory": "Преглед на профили", - "column.domain_blocks": "Hidden domains", + "column.community": "Местна часова ос", + "column.direct": "Директни съобщения", + "column.directory": "Разглеждане на профили", + "column.domain_blocks": "Блокирани домейни", "column.favourites": "Любими", "column.follow_requests": "Заявки за последване", "column.home": "Начало", "column.lists": "Списъци", "column.mutes": "Заглушени потребители", "column.notifications": "Известия", - "column.pins": "Pinned toot", - "column.public": "Публичен канал", + "column.pins": "Закачени публикации", + "column.public": "Федеративна часова ос", "column_back_button.label": "Назад", - "column_header.hide_settings": "Скриване на настройки", + "column_header.hide_settings": "Скриване на настройките", "column_header.moveLeft_settings": "Преместване на колона вляво", "column_header.moveRight_settings": "Преместване на колона вдясно", "column_header.pin": "Закачане", - "column_header.show_settings": "Показване на настройки", + "column_header.show_settings": "Показване на настройките", "column_header.unpin": "Разкачане", "column_subheading.settings": "Настройки", "community.column_settings.local_only": "Само локално", "community.column_settings.media_only": "Media only", "community.column_settings.remote_only": "Само дистанционно", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Смяна на езика", + "compose.language.search": "Търсене на езици...", "compose_form.direct_message_warning_learn_more": "Още информация", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Публикациите в Mastodon не са криптирани от край до край. Не споделяйте никаква чувствителна информация там.", "compose_form.hashtag_warning": "Тази публикация няма да бъде изброена под нито един хаштаг, тъй като е скрита. Само публични публикации могат да се търсят по хаштаг.", "compose_form.lock_disclaimer": "Вашият акаунт не е {locked}. Всеки може да ви последва, за да прегледа вашите публикации само за последователи.", "compose_form.lock_disclaimer.lock": "заключено", - "compose_form.placeholder": "Какво си мислиш?", + "compose_form.placeholder": "Какво мислите?", "compose_form.poll.add_option": "Добавяне на избор", - "compose_form.poll.duration": "Продължителност на анкета", + "compose_form.poll.duration": "Времетраене на анкетата", "compose_form.poll.option_placeholder": "Избор {number}", - "compose_form.poll.remove_option": "Премахване на този избор", + "compose_form.poll.remove_option": "Премахване на избора", "compose_form.poll.switch_to_multiple": "Промяна на анкетата, за да се позволят множество възможни избора", "compose_form.poll.switch_to_single": "Промяна на анкетата, за да се позволи един възможен избор", - "compose_form.publish": "Раздумай", + "compose_form.publish": "Публикуване", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "Запазване на промените", "compose_form.sensitive.hide": "{count, plural, one {Маркиране на мултимедията като деликатна} other {Маркиране на мултимедиите като деликатни}}", "compose_form.sensitive.marked": "{count, plural, one {Мултимедията е маркирана като деликатна} other {Мултимедиите са маркирани като деликатни}}", "compose_form.sensitive.unmarked": "{count, plural, one {Мултимедията не е маркирана като деликатна} other {Мултимедиите не са маркирани като деликатни}}", "compose_form.spoiler.marked": "Текстът е скрит зад предупреждение", "compose_form.spoiler.unmarked": "Текстът не е скрит", - "compose_form.spoiler_placeholder": "Content warning", + "compose_form.spoiler_placeholder": "Тук напишете предупреждението си", "confirmation_modal.cancel": "Отказ", "confirmations.block.block_and_report": "Блокиране и докладване", "confirmations.block.confirm": "Блокиране", - "confirmations.block.message": "Сигурни ли сте, че искате да блокирате {name}?", + "confirmations.block.message": "Наистина ли искате да блокирате {name}?", + "confirmations.cancel_follow_request.confirm": "Оттегляне на заявката", + "confirmations.cancel_follow_request.message": "Наистина ли искате да оттеглите заявката си да последвате {name}?", "confirmations.delete.confirm": "Изтриване", - "confirmations.delete.message": "Are you sure you want to delete this status?", + "confirmations.delete.message": "Наистина ли искате да изтриете публикацията?", "confirmations.delete_list.confirm": "Изтриване", - "confirmations.delete_list.message": "Сигурни ли сте, че искате да изтриете окончателно този списък?", - "confirmations.discard_edit_media.confirm": "Discard", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", - "confirmations.domain_block.confirm": "Hide entire domain", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги този списък?", + "confirmations.discard_edit_media.confirm": "Отхвърляне", + "confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?", + "confirmations.domain_block.confirm": "Блокиране на целия домейн", + "confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публични часови оси или известията си. Вашите последователи от този домейн ще се премахнат.", "confirmations.logout.confirm": "Излизане", - "confirmations.logout.message": "Сигурни ли сте, че искате да излезете?", + "confirmations.logout.message": "Наистина ли искате да излезете?", "confirmations.mute.confirm": "Заглушаване", "confirmations.mute.explanation": "Това ще скрие публикации от тях и публикации, които ги споменават, но все пак ще им позволи да виждат вашите публикации и да ви следват.", - "confirmations.mute.message": "Сигурни ли сте, че искате да заглушите {name}?", + "confirmations.mute.message": "Наистина ли искате да заглушите {name}?", "confirmations.redraft.confirm": "Изтриване и преработване", "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.", "confirmations.reply.confirm": "Отговор", "confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", - "confirmations.unfollow.confirm": "Отследване", - "confirmations.unfollow.message": "Сигурни ли сте, че искате да отследвате {name}?", - "conversation.delete": "Изтриване на разговор", + "confirmations.unfollow.confirm": "Без следване", + "confirmations.unfollow.message": "Наистина ли искате да не следвате {name}?", + "conversation.delete": "Изтриване на разговора", "conversation.mark_as_read": "Маркиране като прочетено", - "conversation.open": "Преглед на разговор", + "conversation.open": "Преглед на разговора", "conversation.with": "С {names}", - "directory.federated": "From known fediverse", + "copypaste.copied": "Копирано", + "copypaste.copy": "Копиране", + "directory.federated": "От познат федивърс", "directory.local": "Само от {domain}", "directory.new_arrivals": "Новодошли", "directory.recently_active": "Наскоро активни", - "embed.instructions": "Embed this status on your website by copying the code below.", + "disabled_account_banner.account_settings": "Настройки на акаунта", + "disabled_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен.", + "dismissable_banner.community_timeline": "Ето най-скорошните публични публикации от хора, чиито акаунти са разположени в {domain}.", + "dismissable_banner.dismiss": "Отхвърляне", + "dismissable_banner.explore_links": "Тези новини се разказват от хората в този и други сървъри на децентрализираната мрежа точно сега.", + "dismissable_banner.explore_statuses": "Тези публикации от този и други сървъри в децентрализираната мрежа набират популярност сега на този сървър.", + "dismissable_banner.explore_tags": "Тези хаштагове сега набират популярност сред хората в този и други сървъри на децентрализирата мрежа.", + "dismissable_banner.public_timeline": "Ето най-скорошните публични публикации от хора в този и други сървъри на децентрализираната мрежа, за които този сървър познава.", + "embed.instructions": "Вградете публикацията в уебсайта си, копирайки кода долу.", "embed.preview": "Ето как ще изглежда:", "emoji_button.activity": "Дейност", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Изчистване", "emoji_button.custom": "Персонализирано", "emoji_button.flags": "Знамена", "emoji_button.food": "Храна и напитки", @@ -158,59 +201,75 @@ "emoji_button.not_found": "Без емоджита!! (╯°□°)╯︵ ┻━┻", "emoji_button.objects": "Предмети", "emoji_button.people": "Хора", - "emoji_button.recent": "Често използвани", + "emoji_button.recent": "Често използвано", "emoji_button.search": "Търсене...", "emoji_button.search_results": "Резултати от търсене", "emoji_button.symbols": "Символи", - "emoji_button.travel": "Пътуване и забележителности", + "emoji_button.travel": "Пътуване и места", "empty_column.account_suspended": "Профилът е спрян", "empty_column.account_timeline": "Тук няма публикации!", "empty_column.account_unavailable": "Няма достъп до профила", - "empty_column.blocks": "Не сте блокирали потребители все още.", + "empty_column.blocks": "Още не сте блокирали никакви потребители.", "empty_column.bookmarked_statuses": "Все още нямате отметнати публикации. Когато отметнете някоя, тя ще се покаже тук.", - "empty_column.community": "Локалната емисия е празна. Напишете нещо публично, за да започнете!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", - "empty_column.domain_blocks": "There are no hidden domains yet.", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.community": "Местна часова ос е празна. Напишете нещо публично, за да завъртите нещата!", + "empty_column.direct": "Все още нямате лични съобщения. Когато изпратите или получите ще се покаже тук.", + "empty_column.domain_blocks": "Още няма блокирани домейни.", + "empty_column.explore_statuses": "Няма нищо популярно в момента. Проверете пак по-късно!", "empty_column.favourited_statuses": "Все още нямате любими публикации. Когато поставите някоя в любими, тя ще се покаже тук.", "empty_column.favourites": "Все още никой не е поставил тази публикация в любими. Когато някой го направи, ще се покаже тук.", - "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.follow_recommendations": "Изглежда, че няма генерирани предложения за вас. Можете да опитате да търсите за хора, които знаете или да разгледате популярните тагове.", "empty_column.follow_requests": "Все още нямате заявки за последване. Когато получите такава, тя ще се покаже тук.", - "empty_column.hashtag": "В този хаштаг няма нищо все още.", - "empty_column.home": "Вашата начална емисия е празна! Посетете {public} или използвайте търсене, за да започнете и да се запознаете с други потребители.", - "empty_column.home.suggestions": "See some suggestions", - "empty_column.list": "There is nothing in this list yet.", + "empty_column.hashtag": "Още няма нищо в този хаштаг.", + "empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}", + "empty_column.home.suggestions": "Преглед на някои предложения", + "empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.", "empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.", - "empty_column.mutes": "Не сте заглушавали потребители все още.", + "empty_column.mutes": "Още не сте заглушавали потребители.", "empty_column.notifications": "Все още нямате известия. Взаимодействайте с другите, за да започнете разговора.", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up", + "empty_column.public": "Тук няма нищо! Напишете нещо публично или ръчно последвайте потребители от други сървъри, за да го напълните", "error.unexpected_crash.explanation": "Поради грешка в нашия код или проблем със съвместимостта на браузъра, тази страница не може да се покаже правилно.", "error.unexpected_crash.explanation_addons": "Тази страница не може да се покаже правилно. Тази грешка вероятно е причинена от добавка на браузъра или инструменти за автоматичен превод.", "error.unexpected_crash.next_steps": "Опитайте да опресните страницата. Ако това не помогне, все още можете да използвате Mastodon чрез различен браузър или приложение.", - "error.unexpected_crash.next_steps_addons": "Опитайте да ги деактивирате и да опресните страницата. Ако това не помогне, може все още да използвате Mastodon чрез различен браузър или приложение.", - "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", + "error.unexpected_crash.next_steps_addons": "Опитайте се да ги изключите и да опресните страницата. Ако това не помогне, то още може да използвате Mastodon чрез различен браузър или приложение.", + "errors.unexpected_crash.copy_stacktrace": "Копиране на stacktrace-а в клипборда", "errors.unexpected_crash.report_issue": "Сигнал за проблем", - "explore.search_results": "Search results", - "explore.suggested_follows": "For you", - "explore.title": "Explore", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", - "follow_recommendations.done": "Done", - "follow_recommendations.heading": "Следвайте хора, които харесвате, за да виждате техните съобщения! Ето някои предложения.", - "follow_recommendations.lead": "Съобщения от хора, които следвате, ще се показват в хронологичен ред на вашата главна страница. Не се страхувайте, че ще сгрешите, по всяко време много лесно можете да спрете да ги следвате!", + "explore.search_results": "Резултати от търсенето", + "explore.suggested_follows": "За вас", + "explore.title": "Разглеждане", + "explore.trending_links": "Новини", + "explore.trending_statuses": "Публикации", + "explore.trending_tags": "Хаштагове", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Несъвпадение на контекста!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Изтекъл филтър!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Настройки на филтъра", + "filter_modal.added.settings_link": "страница с настройки", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Филтърът е добавен!", + "filter_modal.select_filter.context_mismatch": "не е приложимо за този контекст", + "filter_modal.select_filter.expired": "изтекло", + "filter_modal.select_filter.prompt_new": "Нова категория: {name}", + "filter_modal.select_filter.search": "Търсене или създаване", + "filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова", + "filter_modal.select_filter.title": "Филтриране на публ.", + "filter_modal.title.status": "Филтриране на публ.", + "follow_recommendations.done": "Готово", + "follow_recommendations.heading": "Следвайте хора, от които харесвате да виждате публикации! Ето някои предложения.", + "follow_recommendations.lead": "Публикациите от хората, които следвате, ще се показват в хронологично в началния ви инфопоток. Не се страхувайте, че ще сгрешите, по всяко време много лесно може да спрете да ги следвате!", "follow_request.authorize": "Упълномощаване", "follow_request.reject": "Отхвърляне", "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.", + "footer.about": "Относно", + "footer.directory": "Директория на профилите", + "footer.get_app": "Вземане на приложението", + "footer.invite": "Поканване на хора", + "footer.keyboard_shortcuts": "Клавишни съчетания", + "footer.privacy_policy": "Политика за поверителност", + "footer.source_code": "Преглед на изходния код", "generic.saved": "Запазено", - "getting_started.developers": "Разработчици", - "getting_started.directory": "Профилна директория", - "getting_started.documentation": "Документация", "getting_started.heading": "Първи стъпки", - "getting_started.invite": "Поканване на хора", - "getting_started.open_source_notice": "Mastodon е софтуер с отворен код. Можеш да помогнеш или да докладваш за проблеми в Github: {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Условия за ползване", "hashtag.column_header.tag_mode.all": "и {additional}", "hashtag.column_header.tag_mode.any": "или {additional}", "hashtag.column_header.tag_mode.none": "без {additional}", @@ -219,286 +278,329 @@ "hashtag.column_settings.tag_mode.all": "Всичко това", "hashtag.column_settings.tag_mode.any": "Някое от тези", "hashtag.column_settings.tag_mode.none": "Никое от тези", - "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.column_settings.tag_toggle": "Включва допълнителни хаштагове за тази колона", + "hashtag.follow": "Следване на хаштаг", + "hashtag.unfollow": "Спиране на следване на хаштаг", "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Показване на споделяния", "home.column_settings.show_replies": "Показване на отговори", "home.hide_announcements": "Скриване на оповестявания", "home.show_announcements": "Показване на оповестявания", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "На различен сървър", + "interaction_modal.on_this_server": "На този сървър", + "interaction_modal.other_server_instructions": "Копипейстнете този URL адрес в полето за търсене на любимото си приложение Mastodon или мрежови интерфейс на своя Mastodon сървър.", + "interaction_modal.preamble": "Откак Mastodon е децентрализиран, може да употребявате съществуващ акаунт, разположен на друг сървър на Mastodon или съвместима платформа, ако нямате акаунт на този сървър.", + "interaction_modal.title.favourite": "Любими публикации на {name}", + "interaction_modal.title.follow": "Последване на {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Отговаряне на публикацията на {name}", "intervals.full.days": "{number, plural, one {# ден} other {# дни}}", "intervals.full.hours": "{number, plural, one {# час} other {# часа}}", "intervals.full.minutes": "{number, plural, one {# минута} other {# минути}}", - "keyboard_shortcuts.back": "за придвижване назад", - "keyboard_shortcuts.blocked": "за отваряне на списъка с блокирани потребители", + "keyboard_shortcuts.back": "Навигиране назад", + "keyboard_shortcuts.blocked": "Отваряне на списъка с блокирани потребители", "keyboard_shortcuts.boost": "за споделяне", - "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.column": "Съсредоточение на колона", "keyboard_shortcuts.compose": "за фокусиране на текстовото пространство за композиране", "keyboard_shortcuts.description": "Описание", - "keyboard_shortcuts.direct": "to open direct messages column", - "keyboard_shortcuts.down": "за придвижване надолу в списъка", - "keyboard_shortcuts.enter": "to open status", - "keyboard_shortcuts.favourite": "за поставяне в любими", - "keyboard_shortcuts.favourites": "за отваряне на списъка с любими", - "keyboard_shortcuts.federated": "да отвори обединена хронология", - "keyboard_shortcuts.heading": "Keyboard Shortcuts", - "keyboard_shortcuts.home": "за отваряне на началната емисия", + "keyboard_shortcuts.direct": "за отваряне на колоната с директни съобщения", + "keyboard_shortcuts.down": "Преместване надолу в списъка", + "keyboard_shortcuts.enter": "Отваряне на публикация", + "keyboard_shortcuts.favourite": "Любима публикация", + "keyboard_shortcuts.favourites": "Отваряне на списъка с любими", + "keyboard_shortcuts.federated": "Отваряне на федерална часова ос", + "keyboard_shortcuts.heading": "Клавишни съчетания", + "keyboard_shortcuts.home": "Отваряне на началната часова ос", "keyboard_shortcuts.hotkey": "Бърз клавиш", - "keyboard_shortcuts.legend": "за показване на тази легенда", - "keyboard_shortcuts.local": "за отваряне на локалната емисия", - "keyboard_shortcuts.mention": "за споменаване на автор", - "keyboard_shortcuts.muted": "за отваряне на списъка със заглушени потребители", - "keyboard_shortcuts.my_profile": "за отваряне на вашия профил", - "keyboard_shortcuts.notifications": "за отваряне на колоната с известия", - "keyboard_shortcuts.open_media": "за отваряне на мултимедия", - "keyboard_shortcuts.pinned": "за отваряне на списъка със закачени публикации", - "keyboard_shortcuts.profile": "за отваряне на авторския профил", - "keyboard_shortcuts.reply": "за отговаряне", - "keyboard_shortcuts.requests": "за отваряне на списъка със заявки за последване", + "keyboard_shortcuts.legend": "Показване на тази легенда", + "keyboard_shortcuts.local": "Отваряне на местна часова ос", + "keyboard_shortcuts.mention": "Споменаване на автор", + "keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители", + "keyboard_shortcuts.my_profile": "Отваряне на профила ви", + "keyboard_shortcuts.notifications": "Отваряне на колоната с известия", + "keyboard_shortcuts.open_media": "Отваряне на мултимедия", + "keyboard_shortcuts.pinned": "Отваряне на списъка със закачени публикации", + "keyboard_shortcuts.profile": "Отваряне на профила на автора", + "keyboard_shortcuts.reply": "Отговаряне на публикация", + "keyboard_shortcuts.requests": "Отваряне на списъка със заявки за последване", "keyboard_shortcuts.search": "за фокусиране на търсенето", "keyboard_shortcuts.spoilers": "за показване/скриване на ПС полето", "keyboard_shortcuts.start": "за отваряне на колоната \"първи стъпки\"", "keyboard_shortcuts.toggle_hidden": "за показване/скриване на текст зад ПС", - "keyboard_shortcuts.toggle_sensitivity": "за показване/скриване на мултимедия", - "keyboard_shortcuts.toot": "за започване на чисто нова публикация", + "keyboard_shortcuts.toggle_sensitivity": "Показване/скриване на мултимедията", + "keyboard_shortcuts.toot": "Начало на нова публикация", "keyboard_shortcuts.unfocus": "за дефокусиране на текстовото поле за композиране/търсене", - "keyboard_shortcuts.up": "за придвижване нагоре в списъка", - "lightbox.close": "Затвори", - "lightbox.compress": "Компресиране на полето за преглед на изображение", - "lightbox.expand": "Разгъване на полето за преглед на изображение", + "keyboard_shortcuts.up": "Преместване нагоре в списъка", + "lightbox.close": "Затваряне", + "lightbox.compress": "Свиване на полето за преглед на образи", + "lightbox.expand": "Разгъване на полето за преглед на образи", "lightbox.next": "Напред", "lightbox.previous": "Назад", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Покажи профила въпреки това", + "limited_account_hint.title": "Този профил е бил скрит от модераторита на {domain}.", "lists.account.add": "Добавяне към списък", "lists.account.remove": "Премахване от списък", "lists.delete": "Изтриване на списък", - "lists.edit": "Редакция на списък", + "lists.edit": "Промяна на списъка", "lists.edit.submit": "Промяна на заглавие", "lists.new.create": "Добавяне на списък", "lists.new.title_placeholder": "Име на нов списък", "lists.replies_policy.followed": "Някой последван потребител", "lists.replies_policy.list": "Членове на списъка", - "lists.replies_policy.none": "Никой", + "lists.replies_policy.none": "Никого", "lists.replies_policy.title": "Показване на отговори на:", - "lists.search": "Търсене сред хора, които следвате", + "lists.search": "Търсене измежду последваните", "lists.subheading": "Вашите списъци", "load_pending": "{count, plural, one {# нов обект} other {# нови обекти}}", "loading_indicator.label": "Зареждане...", "media_gallery.toggle_visible": "Скриване на {number, plural, one {изображение} other {изображения}}", "missing_indicator.label": "Не е намерено", - "missing_indicator.sublabel": "Този ресурс не може да бъде намерен", - "mute_modal.duration": "Продължителност", - "mute_modal.hide_notifications": "Скриване на известия от този потребител?", + "missing_indicator.sublabel": "Ресурсът не може да се намери", + "moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.", + "mute_modal.duration": "Времетраене", + "mute_modal.hide_notifications": "Скривате ли известията от този потребител?", "mute_modal.indefinite": "Неопределено", - "navigation_bar.apps": "Мобилни приложения", + "navigation_bar.about": "За тази инстанция", "navigation_bar.blocks": "Блокирани потребители", "navigation_bar.bookmarks": "Отметки", - "navigation_bar.community_timeline": "Локална емисия", - "navigation_bar.compose": "Композиране на нова публикация", - "navigation_bar.direct": "Direct messages", + "navigation_bar.community_timeline": "Местна часова ос", + "navigation_bar.compose": "Съставяне на нова публикация", + "navigation_bar.direct": "Директни съобщения", "navigation_bar.discover": "Откриване", - "navigation_bar.domain_blocks": "Hidden domains", - "navigation_bar.edit_profile": "Редактирай профил", - "navigation_bar.explore": "Explore", + "navigation_bar.domain_blocks": "Блокирани домейни", + "navigation_bar.edit_profile": "Редактиране на профила", + "navigation_bar.explore": "Изследване", "navigation_bar.favourites": "Любими", "navigation_bar.filters": "Заглушени думи", "navigation_bar.follow_requests": "Заявки за последване", "navigation_bar.follows_and_followers": "Последвания и последователи", - "navigation_bar.info": "Extended information", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.lists": "Списъци", "navigation_bar.logout": "Излизане", "navigation_bar.mutes": "Заглушени потребители", "navigation_bar.personal": "Лично", "navigation_bar.pins": "Закачени публикации", "navigation_bar.preferences": "Предпочитания", - "navigation_bar.public_timeline": "Публичен канал", + "navigation_bar.public_timeline": "Федеративна часова ос", + "navigation_bar.search": "Търсене", "navigation_bar.security": "Сигурност", - "notification.admin.sign_up": "{name} signed up", - "notification.favourite": "{name} хареса твоята публикация", - "notification.follow": "{name} те последва", + "not_signed_in_indicator.not_signed_in": "Трябва да се регистрирате за достъп до този ресурс.", + "notification.admin.report": "{name} докладва {target}", + "notification.admin.sign_up": "{name} се регистрира", + "notification.favourite": "{name} направи любима ваша публикация", + "notification.follow": "{name} ви последва", "notification.follow_request": "{name} поиска да ви последва", - "notification.mention": "{name} те спомена", + "notification.mention": "{name} ви спомена", "notification.own_poll": "Анкетата ви приключи", - "notification.poll": "Анкета, в която сте гласували, приключи", + "notification.poll": "Анкета, в която гласувахте, приключи", "notification.reblog": "{name} сподели твоята публикация", "notification.status": "{name} току-що публикува", - "notification.update": "{name} edited a post", - "notifications.clear": "Изчистване на известия", - "notifications.clear_confirmation": "Сигурни ли сте, че искате да изчистите окончателно всичките си известия?", - "notifications.column_settings.admin.sign_up": "New sign-ups:", - "notifications.column_settings.alert": "Десктоп известия", - "notifications.column_settings.favourite": "Предпочитани:", + "notification.update": "{name} промени публикация", + "notifications.clear": "Изчистване на известията", + "notifications.clear_confirmation": "Наистина ли искате да изчистите завинаги всичките си известия?", + "notifications.column_settings.admin.report": "Нови доклади:", + "notifications.column_settings.admin.sign_up": "Нови регистрации:", + "notifications.column_settings.alert": "Известия на работния плот", + "notifications.column_settings.favourite": "Любими:", "notifications.column_settings.filter_bar.advanced": "Показване на всички категории", "notifications.column_settings.filter_bar.category": "Лента за бърз филтър", - "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.filter_bar.show_bar": "Показване на лентата с филтри", "notifications.column_settings.follow": "Нови последователи:", "notifications.column_settings.follow_request": "Нови заявки за последване:", "notifications.column_settings.mention": "Споменавания:", "notifications.column_settings.poll": "Резултати от анкета:", "notifications.column_settings.push": "Изскачащи известия", "notifications.column_settings.reblog": "Споделяния:", - "notifications.column_settings.show": "Покажи в колона", + "notifications.column_settings.show": "Показване в колоната", "notifications.column_settings.sound": "Пускане на звук", "notifications.column_settings.status": "Нови публикации:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Edits:", + "notifications.column_settings.unread_notifications.category": "Непрочетени известия", + "notifications.column_settings.unread_notifications.highlight": "Изтъкване на непрочетените известия", + "notifications.column_settings.update": "Редакции:", "notifications.filter.all": "Всичко", "notifications.filter.boosts": "Споделяния", "notifications.filter.favourites": "Любими", "notifications.filter.follows": "Последвания", "notifications.filter.mentions": "Споменавания", - "notifications.filter.polls": "Резултати от анкета", - "notifications.filter.statuses": "Актуализации от хора, които следите", + "notifications.filter.polls": "Резултати от анкетата", + "notifications.filter.statuses": "Новости от последваните", "notifications.grant_permission": "Даване на разрешение.", "notifications.group": "{count} известия", - "notifications.mark_as_read": "Маркиране на всички известия като прочетени", + "notifications.mark_as_read": "Отбелязване на всички известия като прочетени", "notifications.permission_denied": "Известията на работния плот не са налични поради предварително отказана заявка за разрешение в браузъра", "notifications.permission_denied_alert": "Известията на работния плот не могат да бъдат активирани, тъй като разрешението на браузъра е отказвано преди", - "notifications.permission_required": "Известията на работния плот не са налични, тъй като необходимото разрешение не е предоставено.", - "notifications_permission_banner.enable": "Активиране на известията на работния плот", - "notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, активирайте известията на работния плот. Можете да контролирате точно кои типове взаимодействия генерират известия на работния плот чрез бутона {icon} по-горе, след като бъдат активирани.", - "notifications_permission_banner.title": "Никога не пропускайте нищо", + "notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.", + "notifications_permission_banner.enable": "Включване на известията на работния плот", + "notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.", + "notifications_permission_banner.title": "Никога не пропускате нещо", "picture_in_picture.restore": "Връщане обратно", "poll.closed": "Затворено", "poll.refresh": "Опресняване", "poll.total_people": "{count, plural, one {# човек} other {# човека}}", "poll.total_votes": "{count, plural, one {# глас} other {# гласа}}", "poll.vote": "Гласуване", - "poll.voted": "Вие гласувахте за този отговор", - "poll.votes": "{votes, plural, one {# vote} other {# votes}}", + "poll.voted": "Гласувахте за този отговор", + "poll.votes": "{votes, plural, one {# глас} other {# гласа}}", "poll_button.add_poll": "Добавяне на анкета", "poll_button.remove_poll": "Премахване на анкета", - "privacy.change": "Adjust status privacy", - "privacy.direct.long": "Post to mentioned users only", - "privacy.direct.short": "Direct", - "privacy.private.long": "Post to followers only", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.change": "Промяна на поверителността на публикация", + "privacy.direct.long": "Видимо само за споменатите потребители", + "privacy.direct.short": "Само споменатите хора", + "privacy.private.long": "Видимо само за последователите", + "privacy.private.short": "Само последователи", + "privacy.public.long": "Видимо за всички", "privacy.public.short": "Публично", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Скрито", + "privacy_policy.last_updated": "Последно осъвременяване на {date}", + "privacy_policy.title": "Политика за поверителност", "refresh": "Опресняване", "regeneration_indicator.label": "Зареждане…", "regeneration_indicator.sublabel": "Вашата начална емисия се подготвя!", - "relative_time.days": "{number}д", - "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", - "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", - "relative_time.full.just_now": "just now", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", - "relative_time.hours": "{number}ч", + "relative_time.days": "{number}д.", + "relative_time.full.days": "преди {number, plural, one {# ден} other {# дни}}", + "relative_time.full.hours": "преди {number, plural, one {# час} other {# часа}}", + "relative_time.full.just_now": "току-що", + "relative_time.full.minutes": "преди {number, plural, one {# минута} other {# минути}}", + "relative_time.full.seconds": "преди {number, plural, one {# секунда} other {# секунди}}", + "relative_time.hours": "{number}ч.", "relative_time.just_now": "сега", - "relative_time.minutes": "{number}м", - "relative_time.seconds": "{number}с", + "relative_time.minutes": "{number}м.", + "relative_time.seconds": "{number}с.", "relative_time.today": "днес", "reply_indicator.cancel": "Отказ", - "report.block": "Block", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", - "report.categories.spam": "Spam", - "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", - "report.category.title_account": "profile", - "report.category.title_status": "post", - "report.close": "Done", - "report.comment.title": "Is there anything else you think we should know?", - "report.forward": "Препращане към {target}", - "report.forward_hint": "Акаунтът е от друг сървър. Изпращане на анонимно копие на доклада и там?", - "report.mute": "Mute", - "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", - "report.next": "Next", + "report.block": "Блокиране", + "report.block_explanation": "Няма да им виждате публикациите. Те няма да могат да виждат публикациите ви или да ви последват. Те ще могат да казват, че са били блокирани.", + "report.categories.other": "Друго", + "report.categories.spam": "Спам", + "report.categories.violation": "Съдържание, нарушаващо едно или повече правила на сървъра", + "report.category.subtitle": "Изберете най-доброто съвпадение", + "report.category.title": "Разкажете ни какво се случва с това: {type}", + "report.category.title_account": "профил", + "report.category.title_status": "публикация", + "report.close": "Готово", + "report.comment.title": "Има ли нещо друго, което смятате, че трябва да знаем?", + "report.forward": "Препращане до {target}", + "report.forward_hint": "Акаунтът е от друг сървър. Ще изпратите ли анонимно копие на доклада и там?", + "report.mute": "Заглушаване", + "report.mute_explanation": "Няма да виждате публикациите на това лице. То още може да ви следва и да вижда публикациите ви и няма да знае, че е заглушено.", + "report.next": "Напред", "report.placeholder": "Допълнителни коментари", - "report.reasons.dislike": "I don't like it", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "It's spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "It violates server rules", - "report.reasons.violation_description": "You are aware that it breaks specific rules", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.reasons.dislike": "Не ми харесва", + "report.reasons.dislike_description": "Не е нещо, които искам да виждам", + "report.reasons.other": "Нещо друго е", + "report.reasons.other_description": "Проблемът не попада в нито една от другите категории", + "report.reasons.spam": "Спам е", + "report.reasons.spam_description": "Зловредни връзки, фалшиви взаимодействия, или повтарящи се отговори", + "report.reasons.violation": "Нарушава правилата на сървъра", + "report.reasons.violation_description": "Знаете, че нарушава особени правила", + "report.rules.subtitle": "Изберете всичко, което да се прилага", + "report.rules.title": "Кои правила са нарушени?", + "report.statuses.subtitle": "Изберете всичко, което да се прилага", + "report.statuses.title": "Има ли някакви публикации, подкрепящи този доклад?", "report.submit": "Подаване", - "report.target": "Reporting", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report.target": "Докладване на {target}", + "report.thanks.take_action": "Ето възможностите ви за управление какво виждате в Mastodon:", + "report.thanks.take_action_actionable": "Докато преглеждаме това, може да предприемете действие срещу @{name}:", + "report.thanks.title": "Не искате ли да виждате това?", + "report.thanks.title_actionable": "Благодарности за докладването, ще го прегледаме.", + "report.unfollow": "Стоп на следването на @{name}", + "report.unfollow_explanation": "Последвали сте този акаунт. За да не виждате повече публикациите му в началния си инфоканал, то спрете да го следвате.", + "report_notification.attached_statuses": "прикачено {count, plural, one {{count} публикация} other {{count} публикации}}", + "report_notification.categories.other": "Друго", + "report_notification.categories.spam": "Спам", + "report_notification.categories.violation": "Нарушение на правилото", + "report_notification.open": "Отваряне на доклада", "search.placeholder": "Търсене", + "search.search_or_paste": "Търсене или поставяне на URL адрес", "search_popout.search_format": "Формат за разширено търсене", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "хаштаг", - "search_popout.tips.status": "status", + "search_popout.tips.status": "публикация", "search_popout.tips.text": "Обикновеният текст връща съответстващи показвани имена, потребителски имена и хаштагове", "search_popout.tips.user": "потребител", "search_results.accounts": "Хора", - "search_results.all": "All", + "search_results.all": "Всичко", "search_results.hashtags": "Хаштагове", - "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.nothing_found": "Не може да се намери каквото и да било за тези термини при търсене", "search_results.statuses": "Публикации", "search_results.statuses_fts_disabled": "Търсенето на публикации по тяхното съдържание не е активирано за този Mastodon сървър.", + "search_results.title": "Търсене за {q}", "search_results.total": "{count, number} {count, plural, one {резултат} other {резултата}}", + "server_banner.about_active_users": "Ползващите сървъра през последните 30 дни (дейните месечно потребители)", + "server_banner.active_users": "дейни потребители", + "server_banner.administered_by": "Администрира се от:", + "server_banner.introduction": "{domain} е част от децентрализираната социална мрежа, поддържана от {mastodon}.", + "server_banner.learn_more": "Научете повече", + "server_banner.server_stats": "Статистика на сървъра:", + "sign_in_banner.create_account": "Създаване на акаунт", + "sign_in_banner.sign_in": "Вход", + "sign_in_banner.text": "Влезте, за да последвате профили или хаштагове, любимо, споделяне и отговаряне на публикации или взаимодействие от акаунта ви на друг сървър.", "status.admin_account": "Отваряне на интерфейс за модериране за @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Блокиране на @{name}", "status.bookmark": "Отмятане", "status.cancel_reblog_private": "Отсподеляне", "status.cannot_reblog": "Тази публикация не може да бъде споделена", - "status.copy": "Copy link to status", + "status.copy": "Копиране на връзката към публикация", "status.delete": "Изтриване", - "status.detailed_status": "Подробен изглед на разговор", - "status.direct": "Директно съобщение към @{name}", - "status.edit": "Edit", - "status.edited": "Edited {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.detailed_status": "Подробен изглед на разговора", + "status.direct": "Директно съобщение до @{name}", + "status.edit": "Редактиране", + "status.edited": "Редактирано на {date}", + "status.edited_x_times": "Редактирано {count, plural,one {{count} път} other {{count} пъти}}", "status.embed": "Вграждане", - "status.favourite": "Предпочитани", + "status.favourite": "Любимо", + "status.filter": "Филтриране на публ.", "status.filtered": "Филтрирано", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.hide": "Скриване на публ.", + "status.history.created": "{name} създаде {date}", + "status.history.edited": "{name} редактира {date}", "status.load_more": "Зареждане на още", "status.media_hidden": "Мултимедията е скрита", - "status.mention": "Споменаване", + "status.mention": "Споменаване на @{name}", "status.more": "Още", "status.mute": "Заглушаване на @{name}", - "status.mute_conversation": "Заглушаване на разговор", - "status.open": "Expand this status", - "status.pin": "Закачане на профил", + "status.mute_conversation": "Заглушаване на разговора", + "status.open": "Разширяване на публикацията", + "status.pin": "Закачане в профила", "status.pinned": "Закачена публикация", - "status.read_more": "Още информация", + "status.read_more": "Още за четене", "status.reblog": "Споделяне", "status.reblog_private": "Споделяне с оригинална видимост", "status.reblogged_by": "{name} сподели", "status.reblogs.empty": "Все още никой не е споделил тази публикация. Когато някой го направи, ще се покаже тук.", "status.redraft": "Изтриване и преработване", - "status.remove_bookmark": "Премахване на отметка", + "status.remove_bookmark": "Премахване на отметката", + "status.replied_to": "Отговори на {name}", "status.reply": "Отговор", "status.replyAll": "Отговор на тема", "status.report": "Докладване на @{name}", - "status.sensitive_warning": "Деликатно съдържание", + "status.sensitive_warning": "Чувствително съдържание", "status.share": "Споделяне", - "status.show_less": "Покажи по-малко", + "status.show_filter_reason": "Покажи въпреки това", + "status.show_less": "Показване на по-малко", "status.show_less_all": "Покажи по-малко за всички", - "status.show_more": "Покажи повече", - "status.show_more_all": "Покажи повече за всички", - "status.show_thread": "Показване на тема", + "status.show_more": "Показване на повече", + "status.show_more_all": "Показване на повече за всички", + "status.show_original": "Показване на първообраза", + "status.translate": "Превод", + "status.translated_from_with": "Преведено от {lang}, използвайки {provider}", "status.uncached_media_warning": "Не е налично", "status.unmute_conversation": "Раззаглушаване на разговор", - "status.unpin": "Разкачане от профил", + "status.unpin": "Разкачане от профила", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Запазване на промените", + "subscribed_languages.target": "Смяна на езика за {target}", "suggestions.dismiss": "Отхвърляне на предложение", "suggestions.header": "Може да се интересувате от…", - "tabs_bar.federated_timeline": "Обединен", + "tabs_bar.federated_timeline": "Федерална", "tabs_bar.home": "Начало", - "tabs_bar.local_timeline": "Локално", + "tabs_bar.local_timeline": "Местни", "tabs_bar.notifications": "Известия", - "tabs_bar.search": "Търсене", "time_remaining.days": "{number, plural, one {# ден} other {# дни}} остава", "time_remaining.hours": "{number, plural, one {# час} other {# часа}} остава", "time_remaining.minutes": "{number, plural, one {# минута} other {# минути}} остава", @@ -508,40 +610,41 @@ "timeline_hint.resources.followers": "Последователи", "timeline_hint.resources.follows": "Последвани", "timeline_hint.resources.statuses": "По-стари публикации", - "trends.counter_by_accounts": "{count, plural, one {{counter} човек} other {{counter} човека}} говорят", + "trends.counter_by_accounts": "{count, plural, one {{counter} човек} other {{counter} души}} {days, plural, one {за последния {days} ден} other {за последните {days} дни}}", "trends.trending_now": "Налагащи се сега", - "ui.beforeunload": "Черновата ви ще бъде загубена, ако излезете от Mastodon.", + "ui.beforeunload": "Черновата ви ще се загуби, ако излезете от Mastodon.", "units.short.billion": "{count}млрд", "units.short.million": "{count}млн", "units.short.thousand": "{count}хил", "upload_area.title": "Влачене и пускане за качване", - "upload_button.label": "Добави медия", - "upload_error.limit": "Превишен лимит за качване на файлове.", + "upload_button.label": "Добавете файл с образ, видео или звук", + "upload_error.limit": "Превишено ограничение за качване на файлове.", "upload_error.poll": "Качването на файлове не е позволено с анкети.", - "upload_form.audio_description": "Опишете за хора със загуба на слуха", - "upload_form.description": "Опишете за хора със зрителни увреждания", - "upload_form.description_missing": "No description added", - "upload_form.edit": "Редакция", + "upload_form.audio_description": "Опишете за хора със загубен слух", + "upload_form.description": "Опишете за хора със зрително увреждане", + "upload_form.description_missing": "Няма добавено описание", + "upload_form.edit": "Редактиране", "upload_form.thumbnail": "Промяна на миниизображението", - "upload_form.undo": "Отмяна", - "upload_form.video_description": "Опишете за хора със загуба на слуха или зрително увреждане", + "upload_form.undo": "Изтриване", + "upload_form.video_description": "Опишете за хора със загубен слух или зрително увреждане", "upload_modal.analyzing_picture": "Анализ на снимка…", "upload_modal.apply": "Прилагане", - "upload_modal.applying": "Applying…", - "upload_modal.choose_image": "Избор на изображение", + "upload_modal.applying": "Прилагане…", + "upload_modal.choose_image": "Избор на образ", "upload_modal.description_placeholder": "Ах, чудна българска земьо, полюшвай цъфтящи жита", "upload_modal.detect_text": "Откриване на текст от картина", "upload_modal.edit_media": "Редакция на мултимедия", "upload_modal.hint": "Щракнете или плъзнете кръга на визуализацията, за да изберете фокусна точка, която винаги ще бъде видима на всички миниатюри.", - "upload_modal.preparing_ocr": "Подготване на ОРС…", - "upload_modal.preview_label": "Визуализация ({ratio})", - "upload_progress.label": "Uploading…", - "video.close": "Затваряне на видео", - "video.download": "Изтегляне на файл", + "upload_modal.preparing_ocr": "Подготовка за оптично разпознаване на знаци…", + "upload_modal.preview_label": "Нагледно ({ratio})", + "upload_progress.label": "Качване...", + "upload_progress.processing": "Обработка…", + "video.close": "Затваряне на видеото", + "video.download": "Изтегляне на файла", "video.exit_fullscreen": "Изход от цял екран", - "video.expand": "Разгъване на видео", + "video.expand": "Разгъване на видеото", "video.fullscreen": "Цял екран", - "video.hide": "Скриване на видео", + "video.hide": "Скриване на видеото", "video.mute": "Обеззвучаване", "video.pause": "Пауза", "video.play": "Пускане", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index e89f4690b850d1..766c6087745b02 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "বিজ্ঞপ্তি", "account.add_or_remove_from_list": "তালিকাতে যোগ বা অপসারণ করো", "account.badges.bot": "বট", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} থেকে সব লুকাও", "account.blocked": "অবরুদ্ধ", "account.browse_more_on_origin_server": "মূল প্রোফাইলটিতে আরও ব্রাউজ করুন", - "account.cancel_follow_request": "অনুসরণ অনুরোধ বাতিল করো", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name} কে সরাসরি বার্তা", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "ডোমেন গোপন করুন", "account.edit_profile": "প্রোফাইল পরিবর্তন করুন", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "নিজের পাতায় দেখান", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "অনুসরণ", "account.followers": "অনুসরণকারী", "account.followers.empty": "এই ব্যক্তিকে এখনো কেউ অনুসরণ করে না।", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural,one {{counter} জনকে অনুসরণ} other {{counter} জনকে অনুসরণ}}", "account.follows.empty": "এই সদস্য কাওকে এখনো অনুসরণ করেন না.", "account.follows_you": "তোমাকে অনুসরণ করে", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name}'র সমর্থনগুলি লুকিয়ে ফেলুন", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিখে", "account.locked_info": "এই নিবন্ধনের গোপনীয়তার ক্ষেত্র তালা দেওয়া আছে। নিবন্ধনকারী অনুসরণ করার অনুমতি যাদেরকে দেবেন, শুধু তারাই অনুসরণ করতে পারবেন।", "account.media": "মিডিয়া", "account.mention": "@{name} কে উল্লেখ করুন", - "account.moved_to": "{name} কে এখানে সরানো হয়েছে:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "@{name} কে নিঃশব্দ করুন", "account.mute_notifications": "@{name} র প্রজ্ঞাপন আপনার কাছে নিঃশব্দ করুন", "account.muted": "নিঃশব্দ", + "account.open_original_page": "Open original page", "account.posts": "টুট", "account.posts_with_replies": "টুট এবং মতামত", "account.report": "@{name} কে রিপোর্ট করুন", @@ -59,14 +77,27 @@ "alert.unexpected.title": "ওহো!", "announcement.announcement": "ঘোষণা", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "প্রতি সপ্তাহে {count}", "boost_modal.combo": "পরেরবার আপনি {combo} টিপলে এটি আর আসবে না", - "bundle_column_error.body": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "আবার চেষ্টা করুন", - "bundle_column_error.title": "নেটওয়ার্কের সমস্যা", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "বন্ধ করুন", "bundle_modal_error.message": "এই অংশটি দেখাতে যেয়ে কোনো সমস্যা হয়েছে।.", "bundle_modal_error.retry": "আবার চেষ্টা করুন", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "যাদের ব্লক করা হয়েছে", "column.bookmarks": "বুকমার্ক", "column.community": "স্থানীয় সময়সারি", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "এই বিকল্পটি মুছে ফেলুন", "compose_form.poll.switch_to_multiple": "একাধিক পছন্দ অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন", "compose_form.poll.switch_to_single": "একটি একক পছন্দের অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন", - "compose_form.publish": "টুট", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করতে", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "ব্লক করুন এবং রিপোর্ট করুন", "confirmations.block.confirm": "ব্লক করুন", "confirmations.block.message": "আপনি কি নিশ্চিত {name} কে ব্লক করতে চান?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "মুছে ফেলুন", "confirmations.delete.message": "আপনি কি নিশ্চিত যে এই লেখাটি মুছে ফেলতে চান ?", "confirmations.delete_list.confirm": "মুছে ফেলুন", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "পঠিত হিসেবে চিহ্নিত করুন", "conversation.open": "কথপোকথন দেখান", "conversation.with": "{names} এর সঙ্গে", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "পরিচিত ফেডিভারসের থেকে", "directory.local": "শুধু {domain} থেকে", "directory.new_arrivals": "নতুন আগত", "directory.recently_active": "সম্প্রতি সক্রিয়", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "এই লেখাটি আপনার ওয়েবসাইটে যুক্ত করতে নিচের কোডটি বেবহার করুন।", "embed.preview": "সেটা দেখতে এরকম হবে:", "emoji_button.activity": "কার্যকলাপ", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "সম্পন্ন", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "অনুমতি দিন", "follow_request.reject": "প্রত্যাখ্যান করুন", "follow_requests.unlocked_explanation": "আপনার অ্যাকাউন্টটি লক না থাকলেও, {domain} কর্মীরা ভেবেছিলেন যে আপনি এই অ্যাকাউন্টগুলি থেকে ম্যানুয়ালি অনুসরণের অনুরোধগুলি পর্যালোচনা করতে চাইতে পারেন।", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "সংরক্ষণ হয়েছে", - "getting_started.developers": "তৈরিকারকদের জন্য", - "getting_started.directory": "নিজস্ব-পাতাগুলির তালিকা", - "getting_started.documentation": "নথিপত্র", "getting_started.heading": "শুরু করা", - "getting_started.invite": "অন্যদের আমন্ত্রণ করুন", - "getting_started.open_source_notice": "মাস্টাডন একটি মুক্ত সফটওয়্যার। তৈরিতে সাহায্য করতে বা কোনো সমস্যা সম্পর্কে জানাতে আমাদের গিটহাবে যেতে পারেন {github}।", - "getting_started.security": "নিরাপত্তা", - "getting_started.terms": "ব্যবহারের নিয়মাবলী", "hashtag.column_header.tag_mode.all": "এবং {additional}", "hashtag.column_header.tag_mode.any": "অথবা {additional}", "hashtag.column_header.tag_mode.none": "বাদ দিয়ে {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "এর ভেতরে যেকোনোটা", "hashtag.column_settings.tag_mode.none": "এগুলোর একটাও না", "hashtag.column_settings.tag_toggle": "আরো ট্যাগ এই কলামে যুক্ত করতে", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "সাধারণ", "home.column_settings.show_reblogs": "সমর্থনগুলো দেখান", "home.column_settings.show_replies": "মতামত দেখান", "home.hide_announcements": "ঘোষণা লুকান", "home.show_announcements": "ঘোষণা দেখান", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# ঘটা} other {# ঘটা}}", "intervals.full.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}}", @@ -268,7 +341,7 @@ "lightbox.next": "পরবর্তী", "lightbox.previous": "পূর্ববর্তী", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "তালিকাতে যুক্ত করতে", "lists.account.remove": "তালিকা থেকে বাদ দিতে", "lists.delete": "তালিকা মুছে ফেলতে", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "দৃশ্যতার অবস্থা বদলান", "missing_indicator.label": "খুঁজে পাওয়া যায়নি", "missing_indicator.sublabel": "জিনিসটা খুঁজে পাওয়া যায়নি", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "সময়কাল", "mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "মোবাইলের আপ্প", + "navigation_bar.about": "About", "navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী", "navigation_bar.bookmarks": "বুকমার্ক", "navigation_bar.community_timeline": "স্থানীয় সময়রেখা", @@ -304,8 +378,6 @@ "navigation_bar.filters": "বন্ধ করা শব্দ", "navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি", "navigation_bar.follows_and_followers": "অনুসরণ এবং অনুসরণকারী", - "navigation_bar.info": "এই সার্ভার সম্পর্কে", - "navigation_bar.keyboard_shortcuts": "হটকীগুলি", "navigation_bar.lists": "তালিকাগুলো", "navigation_bar.logout": "বাইরে যান", "navigation_bar.mutes": "যাদের কার্যক্রম দেখা বন্ধ আছে", @@ -313,7 +385,10 @@ "navigation_bar.pins": "পিন দেওয়া টুট", "navigation_bar.preferences": "পছন্দসমূহ", "navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা", + "navigation_bar.search": "Search", "navigation_bar.security": "নিরাপত্তা", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন", "notification.follow": "{name} আপনাকে অনুসরণ করেছেন", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "প্রজ্ঞাপনগুলো মুছে ফেলতে", "notifications.clear_confirmation": "আপনি কি নির্চিত প্রজ্ঞাপনগুলো মুছে ফেলতে চান ?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "কম্পিউটারে প্রজ্ঞাপনগুলি", "notifications.column_settings.favourite": "পছন্দের:", @@ -379,6 +455,8 @@ "privacy.public.short": "সর্বজনীন প্রকাশ্য", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "প্রকাশ্য নয়", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "সতেজ করা", "regeneration_indicator.label": "আসছে…", "regeneration_indicator.sublabel": "আপনার বাড়ির-সময়রেখা প্রস্তূত করা হচ্ছে!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "অনুসন্ধান", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "বিস্তারিতভাবে খোঁজার পদ্ধতি", "search_popout.tips.full_text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম আপনার লেখা, পছন্দের লেখা, সমর্থন করা লেখা, আপনাকে উল্লেখকরা কোনো লেখা, যা খুঁজছেন সেরকম কোনো ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো।", "search_popout.tips.hashtag": "হ্যাশট্যাগ", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "টুট", "search_results.statuses_fts_disabled": "তাদের সামগ্রী দ্বারা টুটগুলি অনুসন্ধান এই মস্তোডন সার্ভারে সক্ষম নয়।", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {ফলাফল} other {ফলাফল}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "@{name} র জন্য পরিচালনার ইন্টারফেসে ঢুকুন", "status.admin_status": "যায় লেখাটি পরিচালনার ইন্টারফেসে খুলুন", "status.block": "@{name} কে ব্লক করুন", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "এমবেড করতে", "status.favourite": "পছন্দের করতে", + "status.filter": "Filter this post", "status.filtered": "ছাঁকনিদিত", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "আরো দেখুন", @@ -479,26 +575,32 @@ "status.reblogs.empty": "এখনো কেও এটাতে সমর্থন দেয়নি। যখন কেও দেয়, সেটা তখন এখানে দেখা যাবে।", "status.redraft": "মুছে আবার নতুন করে লিখতে", "status.remove_bookmark": "বুকমার্ক সরান", + "status.replied_to": "Replied to {name}", "status.reply": "মতামত জানাতে", "status.replyAll": "লেখাযুক্ত সবার কাছে মতামত জানাতে", "status.report": "@{name} কে রিপোর্ট করতে", "status.sensitive_warning": "সংবেদনশীল কিছু", "status.share": "অন্যদের জানান", + "status.show_filter_reason": "Show anyway", "status.show_less": "কম দেখতে", "status.show_less_all": "সবগুলোতে কম দেখতে", "status.show_more": "আরো দেখাতে", "status.show_more_all": "সবগুলোতে আরো দেখতে", - "status.show_thread": "আলোচনা দেখতে", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "পাওয়া যাচ্ছে না", "status.unmute_conversation": "আলোচনার প্রজ্ঞাপন চালু করতে", "status.unpin": "নিজের পাতা থেকে পিন করে রাখাটির পিন খুলতে", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "সাহায্যের পরামর্শগুলো সরাতে", "suggestions.header": "আপনি হয়তোবা এগুলোতে আগ্রহী হতে পারেন…", "tabs_bar.federated_timeline": "যুক্তবিশ্ব", "tabs_bar.home": "বাড়ি", "tabs_bar.local_timeline": "স্থানীয়", "tabs_bar.notifications": "প্রজ্ঞাপনগুলো", - "tabs_bar.search": "অনুসন্ধান", "time_remaining.days": "{number, plural, one {# day} other {# days}} বাকি আছে", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} বাকি আছে", "time_remaining.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}} বাকি আছে", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "অনুসরকারীরা", "timeline_hint.resources.follows": "অনুসরণ করে", "timeline_hint.resources.statuses": "পুরনো টুটগুলি", - "trends.counter_by_accounts": "{count, plural,one {{counter} জন ব্যক্তি} other {{counter} জন লোক}} কথা বলছে", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "বর্তমানে জনপ্রিয়", "ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, মাস্টাডন থেকে চলে গেলে এটা মুছে যাবে।", "units.short.billion": "{count}বিলিয়ন", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "পূর্বরূপ({ratio})", "upload_progress.label": "যুক্ত করতে পাঠানো হচ্ছে...", + "upload_progress.processing": "Processing…", "video.close": "ভিডিওটি বন্ধ করতে", "video.download": "ফাইলটি ডাউনলোড করুন", "video.exit_fullscreen": "পূর্ণ পর্দা থেকে বাইরে বের হতে", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index cbe7fc6cb26339..5acbd0ecc6c5c5 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -1,53 +1,71 @@ { + "about.blocks": "Servijerioù habaskaet", + "about.contact": "Darempred :", + "about.disclaimer": "Mastodon zo ur meziant frank, open-source hag ur merk marilhet eus Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Gant Mastodon e c'hellit gwelet danvez hag eskemm gant implijerien·ezed eus forzh peseurt servijer er fedibed peurliesañ. Setu an nemedennoù a zo bet graet evit ar servijer-mañ e-unan.", + "about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.", + "about.domain_blocks.silenced.title": "Bevennet", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Astalet", + "about.not_available": "An titour-mañ ne c'heller ket gwelet war ar servijer-mañ.", + "about.powered_by": "Rouedad sokial digreizenned kaset gant {mastodon}", + "about.rules": "Reolennoù ar servijer", "account.account_note_header": "Notenn", "account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù", "account.badges.bot": "Robot", "account.badges.group": "Strollad", - "account.block": "Berzañ @{name}", - "account.block_domain": "Berzañ pep tra eus {domain}", + "account.block": "Stankañ @{name}", + "account.block_domain": "Stankañ an domani {domain}", "account.blocked": "Stanket", - "account.browse_more_on_origin_server": "Furchal muioc'h war ar profil kentañ", - "account.cancel_follow_request": "Nullañ ar bedadenn heuliañ", - "account.direct": "Kas ur gemennadenn prevez da @{name}", - "account.disable_notifications": "Paouez d'am c'hemenn pa vez toudet gant @{name}", - "account.domain_blocked": "Domani berzet", - "account.edit_profile": "Aozañ ar profil", - "account.enable_notifications": "Ma c'hemenn pa vez toudet gant @{name}", + "account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin", + "account.cancel_follow_request": "Nullañ ar reked heuliañ", + "account.direct": "Kas ur c'hemennad eeun da @{name}", + "account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}", + "account.domain_blocked": "Domani stanket", + "account.edit_profile": "Kemmañ ar profil", + "account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}", "account.endorse": "Lakaat war-wel war ar profil", + "account.featured_tags.last_status_at": "Kannad diwezhañ : {date}", + "account.featured_tags.last_status_never": "Kannad ebet", + "account.featured_tags.title": "Penngerioù-klik {name}", "account.follow": "Heuliañ", - "account.followers": "Heulier·ezed·ien", - "account.followers.empty": "Den na heul an implijer-mañ c'hoazh.", - "account.followers_counter": "{count, plural, other{{counter} Heulier}}", - "account.following": "Following", - "account.following_counter": "{count, plural, other {{counter} Heuliañ}}", + "account.followers": "Tud koumanantet", + "account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.", + "account.followers_counter": "{count, plural, other{{counter} Heulier·ez}}", + "account.following": "Koumanantoù", + "account.following_counter": "{count, plural, one{{counter} C'houmanant} two{{counter} Goumanant} other {{counter} a Goumanant}}", "account.follows.empty": "An implijer·ez-mañ na heul den ebet.", - "account.follows_you": "Ho heul", - "account.hide_reblogs": "Kuzh toudoù rannet gant @{name}", - "account.joined": "Amañ abaoe {date}", + "account.follows_you": "Ho heuilh", + "account.go_to_profile": "Gwelet ar profil", + "account.hide_reblogs": "Kuzh skignadennoù gant @{name}", + "account.joined_short": "Amañ abaoe", + "account.languages": "Cheñch ar yezhoù koumanantet", "account.link_verified_on": "Gwiriet eo bet perc'hennidigezh al liamm d'an deiziad-mañ : {date}", - "account.locked_info": "Prennet eo ar gont-mañ. Dibab a ra ar perc'henn ar re a c'hall heuliañ anezhi pe anezhañ.", + "account.locked_info": "Prennet eo ar gont-mañ. Gant ar perc'henn e vez dibabet piv a c'hall heuliañ anezhi pe anezhañ.", "account.media": "Media", "account.mention": "Menegiñ @{name}", - "account.moved_to": "Dilojet en·he deus {name} da :", + "account.moved_to": "Gant {name} eo bet merket e oa bremañ h·e gont nevez :", "account.mute": "Kuzhat @{name}", - "account.mute_notifications": "Kuzh kemennoù eus @{name}", + "account.mute_notifications": "Kuzh kemennoù a-berzh @{name}", "account.muted": "Kuzhet", - "account.posts": "a doudoù", - "account.posts_with_replies": "Toudoù ha respontoù", + "account.open_original_page": "Open original page", + "account.posts": "Kannadoù", + "account.posts_with_replies": "Kannadoù ha respontoù", "account.report": "Disklêriañ @{name}", "account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ", "account.share": "Skignañ profil @{name}", "account.show_reblogs": "Diskouez skignadennoù @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Toud} other {{counter} Toud}}", + "account.statuses_counter": "{count, plural, one {{counter} C'hannad} two {{counter} Gannad} other {{counter} a Gannadoù}}", "account.unblock": "Diverzañ @{name}", "account.unblock_domain": "Diverzañ an domani {domain}", - "account.unblock_short": "Unblock", + "account.unblock_short": "Distankañ", "account.unendorse": "Paouez da lakaat war-wel war ar profil", "account.unfollow": "Diheuliañ", "account.unmute": "Diguzhat @{name}", - "account.unmute_notifications": "Diguzhat kemennoù a @{name}", - "account.unmute_short": "Unmute", - "account_note.placeholder": "Klikit evit ouzhpenniñ un notenn", + "account.unmute_notifications": "Diguzhat kemennoù a-berzh @{name}", + "account.unmute_short": "Diguzhat", + "account_note.placeholder": "Klikit evit ouzhpennañ un notenn", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", "admin.dashboard.retention.average": "Keidenn", @@ -56,30 +74,43 @@ "alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.", "alert.rate_limited.title": "Feur bevennet", "alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.", - "alert.unexpected.title": "Hopala!", + "alert.unexpected.title": "Hopala !", "announcement.announcement": "Kemenn", "attachments_list.unprocessed": "(ket meret)", + "audio.hide": "Kuzhat ar c'hleved", "autosuggest_hashtag.per_week": "{count} bep sizhun", "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou", - "bundle_column_error.body": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Klask en-dro", - "bundle_column_error.title": "Fazi rouedad", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Serriñ", "bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.", "bundle_modal_error.retry": "Klask en-dro", + "closed_registrations.other_server_instructions": "Peogwir ez eo Mastodon digreizennet e c'heller krouiñ ur gont war ur servijer all ha kenderc'hel da zaremprediñ gant hemañ.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Kavout ur servijer all", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "Diwar-benn", "column.blocks": "Implijer·ezed·ien berzet", "column.bookmarks": "Sinedoù", "column.community": "Red-amzer lec'hel", - "column.direct": "Direct messages", + "column.direct": "Kemennad eeun", "column.directory": "Mont a-dreuz ar profiloù", "column.domain_blocks": "Domani berzet", "column.favourites": "Muiañ-karet", - "column.follow_requests": "Pedadoù heuliañ", + "column.follow_requests": "Rekedoù heuliañ", "column.home": "Degemer", "column.lists": "Listennoù", "column.mutes": "Implijer·ion·ezed kuzhet", "column.notifications": "Kemennoù", - "column.pins": "Toudoù spilhennet", + "column.pins": "Kannadoù spilhennet", "column.public": "Red-amzer kevreet", "column_back_button.label": "Distro", "column_header.hide_settings": "Kuzhat an arventennoù", @@ -92,23 +123,23 @@ "community.column_settings.local_only": "Nemet lec'hel", "community.column_settings.media_only": "Nemet Mediaoù", "community.column_settings.remote_only": "Nemet a-bell", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Cheñch yezh", + "compose.language.search": "Klask yezhoù...", "compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Ne vo ket lakaet an toud-mañ er rolloù gerioù-klik dre mard eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.", - "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal heuliañ ac'hanoc'h evit gwelout ho toudoù prevez.", + "compose_form.encryption_warning": "Kannadoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.", + "compose_form.hashtag_warning": "Ne vo ket listennet ar c'hannad-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet ar c'hannadoù foran a c'hall bezañ klasket dre c'her-klik.", + "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet ho kannadoù prevez.", "compose_form.lock_disclaimer.lock": "prennet", - "compose_form.placeholder": "Petra eh oc'h é soñjal a-barzh ?", + "compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?", "compose_form.poll.add_option": "Ouzhpenniñ un dibab", "compose_form.poll.duration": "Pad ar sontadeg", "compose_form.poll.option_placeholder": "Dibab {number}", "compose_form.poll.remove_option": "Lemel an dibab-mañ", "compose_form.poll.switch_to_multiple": "Kemmañ ar sontadeg evit aotren meur a zibab", "compose_form.poll.switch_to_single": "Kemmañ ar sontadeg evit aotren un dibab hepken", - "compose_form.publish": "Toudañ", + "compose_form.publish": "Embann", "compose_form.publish_loud": "{publish} !", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "Enrollañ ar cheñchamantoù", "compose_form.sensitive.hide": "Merkañ ar media evel kizidik", "compose_form.sensitive.marked": "Merket eo ar media evel kizidik", "compose_form.sensitive.unmarked": "N'eo ket merket ar media evel kizidik", @@ -119,8 +150,10 @@ "confirmations.block.block_and_report": "Berzañ ha Disklêriañ", "confirmations.block.confirm": "Stankañ", "confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?", + "confirmations.cancel_follow_request.confirm": "Nullañ ar reked", + "confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?", "confirmations.delete.confirm": "Dilemel", - "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?", + "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hannad-mañ ?", "confirmations.delete_list.confirm": "Dilemel", "confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?", "confirmations.discard_edit_media.confirm": "Nac'hañ", @@ -130,26 +163,36 @@ "confirmations.logout.confirm": "Digevreañ", "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?", "confirmations.mute.confirm": "Kuzhat", - "confirmations.mute.explanation": "Kuzhat a raio an toudoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met aotren a raio anezhañ·i da welet ho todoù ha a heuliañ ac'hanoc'h.", + "confirmations.mute.explanation": "Kement-se a guzho ar c'hannadoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met ne viro ket outañ·i a welet ho kannadoù nag a heuliañ ac'hanoc'h.", "confirmations.mute.message": "Ha sur oc'h e fell deoc'h kuzhaat {name} ?", "confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro", - "confirmations.redraft.message": "Ha sur oc'h e fell deoc'h dilemel ar statud-mañ hag adlakaat anezhañ er bouilhoñs? Kollet e vo ar merkoù muiañ-karet hag ar skignadennoù hag emzivat e vo ar respontoù d'an toud orin.", + "confirmations.redraft.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hannad-mañ hag e adskrivañ ? Kollet e vo ar merkoù « muiañ-karet » hag ar skignadennoù, hag emzivat e vo ar respontoù d'ar c'hannad orin.", "confirmations.reply.confirm": "Respont", "confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?", "confirmations.unfollow.confirm": "Diheuliañ", - "confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name}?", + "confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?", "conversation.delete": "Dilemel ar gaozeadenn", "conversation.mark_as_read": "Merkañ evel lennet", "conversation.open": "Gwelout ar gaozeadenn", "conversation.with": "Gant {names}", - "directory.federated": "Eus ar c'hevrebed anavezet", + "copypaste.copied": "Eilet", + "copypaste.copy": "Eilañ", + "directory.federated": "Eus ar fedibed anavezet", "directory.local": "Eus {domain} hepken", "directory.new_arrivals": "Degouezhet a-nevez", "directory.recently_active": "Oberiant nevez zo", - "embed.instructions": "Enkorfit ar statud war ho lec'hienn en ur eilañ ar c'hod dindan.", - "embed.preview": "Setu penaos e vo diskouezet:", + "disabled_account_banner.account_settings": "Arventennoù ar gont", + "disabled_account_banner.text": "Ho kont {disabledAccount} zo divev evit bremañ.", + "dismissable_banner.community_timeline": "Setu kannadoù foran nevesañ an dud a zo herberc’hiet o c'hontoù gant {domain}.", + "dismissable_banner.dismiss": "Diverkañ", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "embed.instructions": "Enframmit ar c'hannad-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.", + "embed.preview": "Setu penaos e teuio war wel :", "emoji_button.activity": "Obererezh", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Diverkañ", "emoji_button.custom": "Kempennet", "emoji_button.flags": "Bannieloù", "emoji_button.food": "Boued hag Evaj", @@ -164,22 +207,22 @@ "emoji_button.symbols": "Arouezioù", "emoji_button.travel": "Lec'hioù ha Beajoù", "empty_column.account_suspended": "Kont ehanet", - "empty_column.account_timeline": "Toud ebet amañ!", + "empty_column.account_timeline": "Kannad ebet amañ !", "empty_column.account_unavailable": "Profil dihegerz", "empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.", - "empty_column.bookmarked_statuses": "N'ho peus toud ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan ganeoc'h e teuio war wel amañ.", + "empty_column.bookmarked_statuses": "N'ho peus kannad ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", "empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "N'ho peus kemennad prevez ebet c'hoazh. Pa vo resevet pe kaset unan ganeoc'h e teuio war wel amañ.", "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "N'ho peus toud muiañ-karet ebet c'hoazh. Pa vo lakaet unan ganeoc'h e vo diskouezet amañ.", - "empty_column.favourites": "Den ebet n'eus lakaet an toud-mañ en e reoù muiañ-karet. Pa vo graet gant unan bennak e vo diskouezet amañ.", + "empty_column.favourited_statuses": "N'ho peus kannad muiañ-karet ebet c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", + "empty_column.favourites": "Den ebet n'eus ouzhpennet ar c'hannad-mañ en e reoù muiañ-karet c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.", "empty_column.follow_recommendations": "Seblant a ra ne vez ket genelet damvenegoù evidoc'h. Gallout a rit implijout un enklask evit klask tud hag a vefe anavezet ganeoc'h pe ergerzhout gerioù-klik diouzh ar c'hiz.", - "empty_column.follow_requests": "N'ho peus goulenn heuliañ ebet c'hoazh. Pa resevot reoù e vo diskouezet amañ.", + "empty_column.follow_requests": "N'ho peus reked heuliañ ebet c'hoazh. Pa vo resevet unan e teuio war wel amañ.", "empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.", "empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.", "empty_column.home.suggestions": "Gwellout damvenegoù", - "empty_column.list": "Goullo eo ar roll-mañ evit ar poent. Pa vo toudet gant e izili e vo diskouezet amañ.", + "empty_column.list": "Goullo eo ar roll-mañ evit c'hoazh. Pa vo embannet kannadoù nevez gant e izili e teuint war wel amañ.", "empty_column.lists": "N'ho peus roll ebet c'hoazh. Pa vo krouet unan ganeoc'h e vo diskouezet amañ.", "empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.", "empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.", @@ -191,26 +234,42 @@ "errors.unexpected_crash.copy_stacktrace": "Eilañ ar roudoù diveugañ er golver", "errors.unexpected_crash.report_issue": "Danevellañ ur fazi", "explore.search_results": "Disoc'hoù an enklask", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Evidoc'h", "explore.title": "Ergerzhit", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", + "explore.trending_links": "Keleier", + "explore.trending_statuses": "Kannadoù", "explore.trending_tags": "Gerioù-klik", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "Ar c'hannad-mañ zo bet ouzhpennet d'ar rummad sil-mañ : {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Silañ ar c'hannad-mañ", + "filter_modal.title.status": "Silañ ur c'hannad", "follow_recommendations.done": "Graet", - "follow_recommendations.heading": "Heuliit tud e plijfe deoc'h lenn toudoù! Setu un tamm alioù.", - "follow_recommendations.lead": "Toudoù eus tud heuliet ganeoc'h a zeuio war wel en un urzh amzeroniezhel war ho red degemer. N'ho peus ket aon ober fazioù, gallout a rit paouez heuliañ tud ken aes n'eus forzh pegoulz!", + "follow_recommendations.heading": "Heuilhit tud a blijfe deoc'h lenn o c'hannadoù ! Setu un nebeud erbedadennoù.", + "follow_recommendations.lead": "Kannadoù gant tud a vez heuliet ganeoc'h a zeuio war wel en urzh kronologel war ho red degemer. Arabat kaout aon ober fazioù, diheuliañ tud a c'hellit ober aes ha forzh pegoulz !", "follow_request.authorize": "Aotren", "follow_request.reject": "Nac'hañ", "follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Pellgargañ an arload", + "footer.invite": "Pediñ tud", + "footer.keyboard_shortcuts": "Berradennoù klavier", + "footer.privacy_policy": "Reolennoù prevezded", + "footer.source_code": "Gwelet kod mammenn", "generic.saved": "Enrollet", - "getting_started.developers": "Diorroerien", - "getting_started.directory": "Roll ar profiloù", - "getting_started.documentation": "Teuliadur", "getting_started.heading": "Loc'hañ", - "getting_started.invite": "Pediñ tud", - "getting_started.open_source_notice": "Mastodoñ zo ur meziant digor e darzh. Gallout a rit kenoberzhiañ dezhañ pe danevellañ kudennoù war GitHub e {github}.", - "getting_started.security": "Arventennoù ar gont", - "getting_started.terms": "Divizoù gwerzhañ hollek", "hashtag.column_header.tag_mode.all": "ha {additional}", "hashtag.column_header.tag_mode.any": "pe {additional}", "hashtag.column_header.tag_mode.none": "hep {additional}", @@ -220,24 +279,38 @@ "hashtag.column_settings.tag_mode.any": "Unan e mesk anezho", "hashtag.column_settings.tag_mode.none": "Hini ebet anezho", "hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ", + "hashtag.follow": "Heuliañ ar ger-klik", + "hashtag.unfollow": "Diheuliañ ar ger-klik", "home.column_settings.basic": "Diazez", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_replies": "Diskouez ar respontoù", "home.hide_announcements": "Kuzhat ar c'hemennoù", "home.show_announcements": "Diskouez ar c'hemennoù", + "interaction_modal.description.favourite": "Gant ur gont Mastodon e c'hellit ouzhpennañ ar c'hannad-mañ d'ho re vuiañ-karet evit lakaat an den en deus eñ skrivet da c'houzout e plij deoc'h hag en enrollañ evit diwezhatoc'h.", + "interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev h·e c'h·gannadoù war ho red degemer.", + "interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ ar c'hannad-mañ evit rannañ anezhañ gant ho heulierien·ezed.", + "interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'ar c'hannad-mañ.", + "interaction_modal.on_another_server": "War ur servijer all", + "interaction_modal.on_this_server": "War ar servijer-mañ", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Ouzhpennañ kannad {name} d'ar re vuiañ-karet", + "interaction_modal.title.follow": "Heuliañ {name}", + "interaction_modal.title.reblog": "Skignañ kannad {name}", + "interaction_modal.title.reply": "Respont da gannad {name}", "intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}", "intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}", "intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}", "keyboard_shortcuts.back": "Distreiñ", "keyboard_shortcuts.blocked": "Digeriñ roll an implijer.ezed.rien stanket", - "keyboard_shortcuts.boost": "da skignañ", + "keyboard_shortcuts.boost": "Skignañ ar c'hannad", "keyboard_shortcuts.column": "Fokus ar bann", "keyboard_shortcuts.compose": "Fokus an takad testenn", "keyboard_shortcuts.description": "Deskrivadur", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "evit digeriñ bann ar c'hemennadoù eeun", "keyboard_shortcuts.down": "Diskennañ er roll", - "keyboard_shortcuts.enter": "evit digeriñ un toud", - "keyboard_shortcuts.favourite": "Lakaat an toud evel muiañ-karet", + "keyboard_shortcuts.enter": "Digeriñ ar c'hannad", + "keyboard_shortcuts.favourite": "Ouzhpennañ ar c'hannad d'ar re vuiañ-karet", "keyboard_shortcuts.favourites": "Digeriñ roll an toudoù muiañ-karet", "keyboard_shortcuts.federated": "Digeriñ ar red-amzer kevreet", "keyboard_shortcuts.heading": "Berradennoù klavier", @@ -250,16 +323,16 @@ "keyboard_shortcuts.my_profile": "Digeriñ ho profil", "keyboard_shortcuts.notifications": "Digeriñ bann kemennoù", "keyboard_shortcuts.open_media": "Digeriñ ar media", - "keyboard_shortcuts.pinned": "Digeriñ roll an toudoù spilhennet", + "keyboard_shortcuts.pinned": "Digeriñ roll ar c'hannadoù spilhennet", "keyboard_shortcuts.profile": "Digeriñ profil an aozer.ez", - "keyboard_shortcuts.reply": "da respont", + "keyboard_shortcuts.reply": "Respont d'ar c'hannad", "keyboard_shortcuts.requests": "Digeriñ roll goulennoù heuliañ", "keyboard_shortcuts.search": "Fokus barenn klask", "keyboard_shortcuts.spoilers": "da guzhat/ziguzhat tachenn CW", "keyboard_shortcuts.start": "Digeriñ bann \"Kregiñ\"", "keyboard_shortcuts.toggle_hidden": "da guzhat/ziguzhat an desten a-dreñv CW", "keyboard_shortcuts.toggle_sensitivity": "da guzhat/ziguzhat ur media", - "keyboard_shortcuts.toot": "da gregiñ gant un toud nevez-flamm", + "keyboard_shortcuts.toot": "Kregiñ gant ur c'hannad nevez", "keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask", "keyboard_shortcuts.up": "Pignat er roll", "lightbox.close": "Serriñ", @@ -267,8 +340,8 @@ "lightbox.expand": "Ledanaat boest hewel ar skeudenn", "lightbox.next": "Da-heul", "lightbox.previous": "A-raok", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Diskouez an aelad memes tra", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Ouzhpennañ d'al listenn", "lists.account.remove": "Lemel kuit eus al listenn", "lists.delete": "Dilemel al listenn", @@ -287,46 +360,49 @@ "media_gallery.toggle_visible": "{number, plural, one {Kuzhat ar skeudenn} other {Kuzhat ar skeudenn}}", "missing_indicator.label": "Digavet", "missing_indicator.sublabel": "An danvez-se ne vez ket kavet", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Padelezh", "mute_modal.hide_notifications": "Kuzhat kemenadennoù eus an implijer-se ?", "mute_modal.indefinite": "Amstrizh", - "navigation_bar.apps": "Arloadoù pellgomz", + "navigation_bar.about": "Diwar-benn", "navigation_bar.blocks": "Implijer·ezed·ien berzet", "navigation_bar.bookmarks": "Sinedoù", "navigation_bar.community_timeline": "Red-amzer lec'hel", - "navigation_bar.compose": "Skrivañ un toud nevez", - "navigation_bar.direct": "Direct messages", + "navigation_bar.compose": "Skrivañ ur c'hannad nevez", + "navigation_bar.direct": "Kemennadoù prevez", "navigation_bar.discover": "Dizoleiñ", "navigation_bar.domain_blocks": "Domanioù kuzhet", "navigation_bar.edit_profile": "Aozañ ar profil", - "navigation_bar.explore": "Explore", + "navigation_bar.explore": "Ergerzhit", "navigation_bar.favourites": "Ar re vuiañ-karet", "navigation_bar.filters": "Gerioù kuzhet", "navigation_bar.follow_requests": "Pedadoù heuliañ", "navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien", - "navigation_bar.info": "Diwar-benn an dafariad-mañ", - "navigation_bar.keyboard_shortcuts": "Berradurioù", "navigation_bar.lists": "Listennoù", "navigation_bar.logout": "Digennaskañ", "navigation_bar.mutes": "Implijer·ion·ezed kuzhet", "navigation_bar.personal": "Personel", - "navigation_bar.pins": "Toudoù spilhennet", + "navigation_bar.pins": "Kannadoù spilhennet", "navigation_bar.preferences": "Gwellvezioù", "navigation_bar.public_timeline": "Red-amzer kevreet", + "navigation_bar.search": "Klask", "navigation_bar.security": "Diogelroez", - "notification.admin.sign_up": "{name} signed up", - "notification.favourite": "{name} en/he deus lakaet ho toud en e/he muiañ-karet", + "not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.", + "notification.admin.report": "Disklêriet eo bet {target} gant {name}", + "notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv", + "notification.favourite": "Gant {name} eo bet ouzhpennet ho kannad d'h·e re vuiañ-karet", "notification.follow": "heuliañ a ra {name} ac'hanoc'h", - "notification.follow_request": "{name} en/he deus goulennet da heuliañ ac'hanoc'h", - "notification.mention": "{name} en/he deus meneget ac'hanoc'h", + "notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ", + "notification.mention": "Gant {name} oc'h bet meneget", "notification.own_poll": "Echu eo ho sontadeg", "notification.poll": "Ur sontadeg ho deus mouezhet warnañ a zo echuet", - "notification.reblog": "{name} skignet ho toud", - "notification.status": "{name} en/he deus toudet", - "notification.update": "{name} edited a post", + "notification.reblog": "Skignet eo bet ho kannad gant {name}", + "notification.status": "Emañ {name} o paouez embann", + "notification.update": "Kemmet ez eus bet ur c'hannad gant {name}", "notifications.clear": "Skarzhañ ar c'hemennoù", "notifications.clear_confirmation": "Ha sur oc'h e fell deoc'h skarzhañ ho kemennoù penn-da-benn?", - "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.admin.report": "Disklêriadurioù nevez :", + "notifications.column_settings.admin.sign_up": "Enskrivadurioù nevez :", "notifications.column_settings.alert": "Kemennoù war ar burev", "notifications.column_settings.favourite": "Ar re vuiañ-karet:", "notifications.column_settings.filter_bar.advanced": "Skrammañ an-holl rummadoù", @@ -340,10 +416,10 @@ "notifications.column_settings.reblog": "Skignadennoù:", "notifications.column_settings.show": "Diskouez er bann", "notifications.column_settings.sound": "Seniñ", - "notifications.column_settings.status": "Toudoù nevez:", + "notifications.column_settings.status": "Kannadoù nevez :", "notifications.column_settings.unread_notifications.category": "Kemennoù n'int ket lennet", "notifications.column_settings.unread_notifications.highlight": "Usskediñ kemennoù nevez", - "notifications.column_settings.update": "Edits:", + "notifications.column_settings.update": "Kemmoù :", "notifications.filter.all": "Pep tra", "notifications.filter.boosts": "Skignadennoù", "notifications.filter.favourites": "Muiañ-karet", @@ -370,15 +446,17 @@ "poll.votes": "{votes, plural,one {#votadenn} other {# votadenn}}", "poll_button.add_poll": "Ouzhpennañ ur sontadeg", "poll_button.remove_poll": "Dilemel ar sontadeg", - "privacy.change": "Kemmañ gwelidigezh ar statud", + "privacy.change": "Cheñch prevezded ar c'hannad", "privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Tud meneget hepken", "privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.private.short": "Tud koumanantet hepken", + "privacy.public.long": "Gwelus d'an holl", "privacy.public.short": "Publik", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Anlistennet", + "privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}", + "privacy_policy.title": "Reolennoù Prevezded", "refresh": "Freskaat", "regeneration_indicator.label": "O kargañ…", "regeneration_indicator.sublabel": "War brientiñ emañ ho red degemer!", @@ -394,111 +472,135 @@ "relative_time.seconds": "{number}eil", "relative_time.today": "hiziv", "reply_indicator.cancel": "Nullañ", - "report.block": "Block", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", + "report.block": "Stankañ", + "report.block_explanation": "Ne vo ket gwelet kannadoù ar gont-se ken. Ne welo ket ho kemennadoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.", + "report.categories.other": "All", "report.categories.spam": "Spam", "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", - "report.category.title_account": "profile", - "report.category.title_status": "post", - "report.close": "Done", + "report.category.subtitle": "Choazit ar pezh a glot ar gwellañ", + "report.category.title": "Lârit deomp petra c'hoarvez gant {type}", + "report.category.title_account": "profil", + "report.category.title_status": "ar c'hannad-mañ", + "report.close": "Graet", "report.comment.title": "Is there anything else you think we should know?", "report.forward": "Treuzkas da: {target}", "report.forward_hint": "War ur servijer all emañ ar c'hont-se. Kas dezhañ un adskrid disanv eus an danevell ivez?", - "report.mute": "Mute", - "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", - "report.next": "Next", + "report.mute": "Kuzhat", + "report.mute_explanation": "Ne vo ket gwelet kannadoù ar gont-se ken. Gwelet ho kemennadoù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.", + "report.next": "War-raok", "report.placeholder": "Askelennoù ouzhpenn", - "report.reasons.dislike": "I don't like it", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "It's spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "It violates server rules", - "report.reasons.violation_description": "You are aware that it breaks specific rules", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", + "report.reasons.dislike": "Ne blij ket din", + "report.reasons.dislike_description": "An dra-se na fell ket deoc'h gwelet", + "report.reasons.other": "Un abeg all eo", + "report.reasons.other_description": "Ar gudenn na glot ket gant ar rummadoù all", + "report.reasons.spam": "Spam eo", + "report.reasons.spam_description": "Liammoù gwallyoulet, engouestl faos, respontoù liezek", + "report.reasons.violation": "Terriñ a ra reolennoù ar servijer", + "report.reasons.violation_description": "Gouzout a rit e ya a-enep da reolennoù ar servijer", + "report.rules.subtitle": "Diuzit an holl draoù a glot", + "report.rules.title": "Pesort reolennoù zo bet torret ?", + "report.statuses.subtitle": "Diuzit an holl draoù a glot", "report.statuses.title": "Are there any posts that back up this report?", "report.submit": "Kinnig", "report.target": "O tisklêriañ {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", + "report.thanks.title": "Ne fell ket deoc'h gwelet an dra-se ?", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "All", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Digeriñ an disklêriadur", "search.placeholder": "Klask", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Framm klask araokaet", "search_popout.tips.full_text": "Testenn simpl a adkas toudoù skrivet ganeoc'h, merket ganeoc'h evel miuañ-karet, toudoù skignet, pe e-lec'h oc'h bet meneget, met ivez anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot.", "search_popout.tips.hashtag": "ger-klik", - "search_popout.tips.status": "toud", + "search_popout.tips.status": "kannad", "search_popout.tips.text": "Testenn simpl a adkas anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot", "search_popout.tips.user": "implijer·ez", "search_results.accounts": "Tud", "search_results.all": "All", "search_results.hashtags": "Gerioù-klik", "search_results.nothing_found": "Could not find anything for these search terms", - "search_results.statuses": "a doudoù", - "search_results.statuses_fts_disabled": "Klask toudoù dre oc'h endalc'h n'eo ket aotreet war ar servijer-mañ.", + "search_results.statuses": "Kannadoù", + "search_results.statuses_fts_disabled": "Klask kannadoù dre oc'h endalc'h n'eo ket aotreet war ar servijer-mañ.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {disoc'h} other {a zisoc'h}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Digeriñ etrefas evezherezh evit @{name}", "status.admin_status": "Digeriñ an toud e-barzh an etrefas evezherezh", "status.block": "Berzañ @{name}", "status.bookmark": "Ouzhpennañ d'ar sinedoù", "status.cancel_reblog_private": "Nac'hañ ar skignadenn", - "status.cannot_reblog": "An toud-se ne c'hall ket bezañ skignet", - "status.copy": "Eilañ liamm an toud", + "status.cannot_reblog": "Ar c'hannad-se na c'hall ket bezañ skignet", + "status.copy": "Eilañ liamm ar c'hannad", "status.delete": "Dilemel", "status.detailed_status": "Gwel kaozeadenn munudek", "status.direct": "Kas ur c'hemennad prevez da @{name}", - "status.edit": "Edit", + "status.edit": "Aozañ", "status.edited": "Edited {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Enframmañ", "status.favourite": "Muiañ-karet", + "status.filter": "Silañ ar c'hannad-mañ", "status.filtered": "Silet", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.hide": "Hide toot", + "status.history.created": "Krouet gant {name} {date}", + "status.history.edited": "Kemmet gant {name} {date}", "status.load_more": "Kargañ muioc'h", "status.media_hidden": "Media kuzhet", "status.mention": "Menegiñ @{name}", "status.more": "Muioc'h", "status.mute": "Kuzhat @{name}", "status.mute_conversation": "Kuzhat ar gaozeadenn", - "status.open": "Kreskaat an toud-mañ", + "status.open": "Digeriñ ar c'hannad-mañ", "status.pin": "Spilhennañ d'ar profil", - "status.pinned": "Toud spilhennet", + "status.pinned": "Kannad spilhennet", "status.read_more": "Lenn muioc'h", "status.reblog": "Skignañ", "status.reblog_private": "Skignañ gant ar weledenn gentañ", - "status.reblogged_by": "{name} en/he deus skignet", - "status.reblogs.empty": "Den ebet n'eus skignet an toud-mañ c'hoazh. Pa vo graet gant unan bennak e vo diskouezet amañ.", + "status.reblogged_by": "Skignet gant {name}", + "status.reblogs.empty": "Den ebet n'eus skignet ar c'hannad-mañ c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.", "status.redraft": "Diverkañ ha skrivañ en-dro", "status.remove_bookmark": "Dilemel ar sined", + "status.replied_to": "Replied to {name}", "status.reply": "Respont", "status.replyAll": "Respont d'ar gaozeadenn", "status.report": "Disklêriañ @{name}", "status.sensitive_warning": "Dalc'had kizidik", "status.share": "Rannañ", + "status.show_filter_reason": "Show anyway", "status.show_less": "Diskouez nebeutoc'h", "status.show_less_all": "Diskouez nebeutoc'h evit an holl", "status.show_more": "Diskouez muioc'h", "status.show_more_all": "Diskouez miuoc'h evit an holl", - "status.show_thread": "Diskouez ar gaozeadenn", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Dihegerz", "status.unmute_conversation": "Diguzhat ar gaozeadenn", "status.unpin": "Dispilhennañ eus ar profil", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dilezel damvenegoù", "suggestions.header": "Marteze e vefec'h dedenet gant…", "tabs_bar.federated_timeline": "Kevredet", "tabs_bar.home": "Degemer", "tabs_bar.local_timeline": "Lec'hel", "tabs_bar.notifications": "Kemennoù", - "tabs_bar.search": "Klask", "time_remaining.days": "{number, plural,one {# devezh} other {# a zevezh}} a chom", "time_remaining.hours": "{number, plural, one {# eurvezh} other{# eurvezh}} a chom", "time_remaining.minutes": "{number, plural, one {# munut} other{# a vunut}} a chom", @@ -507,8 +609,8 @@ "timeline_hint.remote_resource_not_displayed": "{resource} eus servijerien all n'int ket skrammet.", "timeline_hint.resources.followers": "Heulier·ezed·ien", "timeline_hint.resources.follows": "Heuliañ", - "timeline_hint.resources.statuses": "Toudoù koshoc'h", - "trends.counter_by_accounts": "{count, plural, one {{counter} den} other {{counter} a zud}} a zo o komz", + "timeline_hint.resources.statuses": "Kannadoù koshoc'h", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Luskad ar mare", "ui.beforeunload": "Kollet e vo ho prell ma kuitit Mastodon.", "units.short.billion": "{count}miliard", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Oc'h aozañ OCR…", "upload_modal.preview_label": "Rakwel ({ratio})", "upload_progress.label": "O pellgargañ...", + "upload_progress.processing": "Processing…", "video.close": "Serriñ ar video", "video.download": "Pellgargañ ar restr", "video.exit_fullscreen": "Kuitaat ar mod skramm leun", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 1072001b410863..4b5fb25e4af955 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidors moderats", + "about.contact": "Contacte:", + "about.disclaimer": "Mastodon és programari lliure de codi obert i una marca comercial de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "No és disponible el motiu", + "about.domain_blocks.preamble": "En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.", + "about.domain_blocks.silenced.explanation": "Generalment no veuràs perfils ni contingut d'aquest servidor, a menys que el cerquis explícitament o optis per seguir-lo.", + "about.domain_blocks.silenced.title": "Limitat", + "about.domain_blocks.suspended.explanation": "No es processaran, emmagatzemaran ni intercanviaran dades d'aquest servidor, fent impossible qualsevol interacció o comunicació amb els seus usuaris.", + "about.domain_blocks.suspended.title": "Suspès", + "about.not_available": "Aquesta informació no és disponible en aquest servidor.", + "about.powered_by": "Xarxa social descentralitzada impulsada per {mastodon}", + "about.rules": "Normes del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Afegeix o elimina de les llistes", "account.badges.bot": "Bot", @@ -7,73 +19,92 @@ "account.block_domain": "Bloqueja el domini {domain}", "account.blocked": "Bloquejat", "account.browse_more_on_origin_server": "Navega més en el perfil original", - "account.cancel_follow_request": "Anul·la la sol·licitud de seguiment", + "account.cancel_follow_request": "Retira la sol·licitud de seguiment", "account.direct": "Envia missatge directe a @{name}", "account.disable_notifications": "No em notifiquis les publicacions de @{name}", - "account.domain_blocked": "Domini bloquejat", + "account.domain_blocked": "Domini blocat", "account.edit_profile": "Edita el perfil", - "account.enable_notifications": "Notifica’m les publicacions de @{name}", - "account.endorse": "Recomana en el teu perfil", + "account.enable_notifications": "Notifica'm les publicacions de @{name}", + "account.endorse": "Recomana en el perfil", + "account.featured_tags.last_status_at": "Última publicació el {date}", + "account.featured_tags.last_status_never": "No hi ha publicacions", + "account.featured_tags.title": "Etiquetes destacades de: {name}", "account.follow": "Segueix", "account.followers": "Seguidors", - "account.followers.empty": "Ningú segueix aquest usuari encara.", + "account.followers.empty": "Encara ningú no segueix aquest usuari.", "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}", "account.following": "Seguint", "account.following_counter": "{count, plural, other {{counter} Seguint}}", "account.follows.empty": "Aquest usuari encara no segueix ningú.", "account.follows_you": "Et segueix", + "account.go_to_profile": "Anar al perfil", "account.hide_reblogs": "Amaga els impulsos de @{name}", - "account.joined": "Membre des de {date}", + "account.joined_short": "S'ha unit", + "account.languages": "Canviar les llengües subscrits", "account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}", "account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.", "account.media": "Multimèdia", "account.mention": "Menciona @{name}", - "account.moved_to": "{name} s'ha traslladat a:", + "account.moved_to": "{name} ha indicat que el seu nou compte ara és:", "account.mute": "Silencia @{name}", "account.mute_notifications": "Silencia les notificacions de @{name}", "account.muted": "Silenciat", + "account.open_original_page": "Obre la pàgina original", "account.posts": "Publicacions", "account.posts_with_replies": "Publicacions i respostes", - "account.report": "Informa sobre @{name}", - "account.requested": "Esperant aprovació. Fes clic per cancel·lar la petició de seguiment", + "account.report": "Informa quant a @{name}", + "account.requested": "S'està esperant l'aprovació. Feu clic per a cancel·lar la petició de seguiment", "account.share": "Comparteix el perfil de @{name}", "account.show_reblogs": "Mostra els impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Publicació} other {{counter} Publicacions}}", "account.unblock": "Desbloqueja @{name}", "account.unblock_domain": "Desbloqueja el domini {domain}", - "account.unblock_short": "Desbloquejar", - "account.unendorse": "No recomanar en el perfil", - "account.unfollow": "Deixar de seguir", + "account.unblock_short": "Desbloqueja", + "account.unendorse": "No recomanis en el perfil", + "account.unfollow": "Deixa de seguir", "account.unmute": "Deixar de silenciar @{name}", - "account.unmute_notifications": "Activar notificacions de @{name}", + "account.unmute_notifications": "Activa les notificacions de @{name}", "account.unmute_short": "Deixa de silenciar", - "account_note.placeholder": "Fes clic per afegir una nota", - "admin.dashboard.daily_retention": "Ràtio de retenció d'usuaris nous, per dia, després del registre", - "admin.dashboard.monthly_retention": "Ràtio de retenció d'usuaris nous, per mes, després del registre", + "account_note.placeholder": "Clica per afegir-hi una nota", + "admin.dashboard.daily_retention": "Ràtio de retenció d'usuaris nous per dia, després del registre", + "admin.dashboard.monthly_retention": "Ràtio de retenció d'usuaris nous per mes, després del registre", "admin.dashboard.retention.average": "Mitjana", - "admin.dashboard.retention.cohort": "Mes del registre", - "admin.dashboard.retention.cohort_size": "Nous usuaris", + "admin.dashboard.retention.cohort": "Mes de registre", + "admin.dashboard.retention.cohort_size": "Usuaris nous", "alert.rate_limited.message": "Si us plau, torna-ho a provar després de {retry_time, time, medium}.", "alert.rate_limited.title": "Límit de freqüència", "alert.unexpected.message": "S'ha produït un error inesperat.", "alert.unexpected.title": "Vaja!", "announcement.announcement": "Anunci", "attachments_list.unprocessed": "(sense processar)", + "audio.hide": "Amaga l'àudio", "autosuggest_hashtag.per_week": "{count} per setmana", - "boost_modal.combo": "Pots prémer {combo} per evitar-ho el pròxim cop", - "bundle_column_error.body": "S'ha produït un error en carregar aquest component.", - "bundle_column_error.retry": "Tornar-ho a provar", - "bundle_column_error.title": "Error de connexió", + "boost_modal.combo": "Podeu prémer {combo} per a evitar-ho el pròxim cop", + "bundle_column_error.copy_stacktrace": "Copia l'informe d'error", + "bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podria ser per un error en el nostre codi o per un problema de compatibilitat del navegador.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "Hi ha hagut un error en intentar carregar aquesta pàgina. Això podria ser per un problema temporal amb la teva connexió a internet o amb aquest servidor.", + "bundle_column_error.network.title": "Error de connexió", + "bundle_column_error.retry": "Torna-ho a provar", + "bundle_column_error.return": "Torna a Inici", + "bundle_column_error.routing.body": "No es pot trobar la pàgina sol·licitada. Segur que la URL de la barra d'adreces és correcta?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Tanca", "bundle_modal_error.message": "S'ha produït un error en carregar aquest component.", - "bundle_modal_error.retry": "Tornar-ho a provar", + "bundle_modal_error.retry": "Torna-ho a provar", + "closed_registrations.other_server_instructions": "Com que Mastodon és descentralitzat, pots crear un compte en un altre servidor i seguir interactuant amb aquest.", + "closed_registrations_modal.description": "No es pot crear un compte a {domain} ara mateix, però tingueu en compte que no necessiteu específicament un compte a {domain} per a usar Mastodon.", + "closed_registrations_modal.find_another_server": "Troba un altre servidor", + "closed_registrations_modal.preamble": "Mastodon és descentralitzat per tant no importa on tinguis el teu compte, seràs capaç de seguir i interactuar amb tothom des d'aquest servidor. Fins i tot pots tenir el compte en el teu propi servidor!", + "closed_registrations_modal.title": "Registrant-se a Mastodon", + "column.about": "Quant a", "column.blocks": "Usuaris bloquejats", "column.bookmarks": "Marcadors", "column.community": "Línia de temps local", "column.direct": "Missatges directes", "column.directory": "Navegar pels perfils", "column.domain_blocks": "Dominis bloquejats", - "column.favourites": "Favorits", + "column.favourites": "Preferits", "column.follow_requests": "Peticions per a seguir-te", "column.home": "Inici", "column.lists": "Llistes", @@ -95,18 +126,18 @@ "compose.language.change": "Canvia d'idioma", "compose.language.search": "Cerca idiomes...", "compose_form.direct_message_warning_learn_more": "Més informació", - "compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació perillosa mitjançant Mastodon.", + "compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació sensible mitjançant Mastodon.", "compose_form.hashtag_warning": "Aquesta publicació no es mostrarà en cap etiqueta, ja que no està llistada. Només les publicacions públiques es poden cercar per etiqueta.", "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure les publicacions de només per a seguidors.", "compose_form.lock_disclaimer.lock": "bloquejat", - "compose_form.placeholder": "Què et passa pel cap?", + "compose_form.placeholder": "Què tens en ment?", "compose_form.poll.add_option": "Afegir una opció", "compose_form.poll.duration": "Durada de l'enquesta", "compose_form.poll.option_placeholder": "Opció {number}", "compose_form.poll.remove_option": "Elimina aquesta opció", "compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions", "compose_form.poll.switch_to_single": "Canvia l’enquesta per permetre una única opció", - "compose_form.publish": "Publicar", + "compose_form.publish": "Publica-ho", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Desa els canvis", "compose_form.sensitive.hide": "{count, plural, one {Marca contingut com a sensible} other {Marca contingut com a sensible}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloqueja i informa", "confirmations.block.confirm": "Bloqueja", "confirmations.block.message": "Segur que vols bloquejar a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar sol·licitud", + "confirmations.cancel_follow_request.message": "Estàs segur que vols retirar la teva sol·licitud de seguiment de {name}?", "confirmations.delete.confirm": "Suprimeix", "confirmations.delete.message": "Segur que vols eliminar la publicació?", "confirmations.delete_list.confirm": "Suprimeix", @@ -133,7 +166,7 @@ "confirmations.mute.explanation": "Això amagarà les seves publicacions i les que els mencionen, però encara els permetrà veure les teves i seguir-te.", "confirmations.mute.message": "Segur que vols silenciar {name}?", "confirmations.redraft.confirm": "Esborra'l i reescriure-lo", - "confirmations.redraft.message": "Segur que vols esborrar aquesta publicació i tornar-la a escriure? Perdràs tots els impulsos i els favorits, i les respostes a la publicació original es quedaran orfes.", + "confirmations.redraft.message": "Segur que vols esborrar aquesta publicació i tornar-la a escriure? Perdràs tots els impulsos i els preferits, i les respostes a la publicació original es quedaran orfes.", "confirmations.reply.confirm": "Respon", "confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?", "confirmations.unfollow.confirm": "Deixa de seguir", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marca com a llegida", "conversation.open": "Mostra la conversa", "conversation.with": "Amb {names}", + "copypaste.copied": "Copiat", + "copypaste.copy": "Copia", "directory.federated": "Del fedivers conegut", "directory.local": "Només de {domain}", "directory.new_arrivals": "Arribades noves", "directory.recently_active": "Recentment actius", + "disabled_account_banner.account_settings": "Paràmetres del compte", + "disabled_account_banner.text": "El teu compte {disabledAccount} està actualment desactivat.", + "dismissable_banner.community_timeline": "Aquestes són les publicacions més recents d'usuaris amb els seus comptes a {domain}.", + "dismissable_banner.dismiss": "Ometre", + "dismissable_banner.explore_links": "Aquests son els enllaços que els usuaris estan comentant ara mateix en aquest i altres servidors de la xarxa descentralitzada.", + "dismissable_banner.explore_statuses": "Aquestes publicacions d'aquest i altres servidors de la xarxa descentralitzada estan guanyant l'atenció ara mateix en aquest servidor.", + "dismissable_banner.explore_tags": "Aquestes etiquetes estan guanyant l'atenció ara mateix dels usuaris d'aquest i altres servidors de la xarxa descentralitzada.", + "dismissable_banner.public_timeline": "Aquestes són les publicacions públiques més recents de persones en aquest i altres servidors de la xarxa descentralitzada que aquest servidor coneix.", "embed.instructions": "Incrusta aquesta publicació a la teva pàgina web copiant el codi següent.", "embed.preview": "Aquí està quin aspecte tindrà:", "emoji_button.activity": "Activitat", @@ -167,7 +210,7 @@ "empty_column.account_timeline": "No hi ha publicacions aquí!", "empty_column.account_unavailable": "Perfil no disponible", "empty_column.blocks": "Encara no has bloquejat cap usuari.", - "empty_column.bookmarked_statuses": "Encara no has marcat com publicació com a preferida. Quan en marquis una apareixerà aquí.", + "empty_column.bookmarked_statuses": "Encara no has marcat cap publicació com a preferida. Quan en marquis una, apareixerà aquí.", "empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!", "empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis, es mostraran aquí.", "empty_column.domain_blocks": "Encara no hi ha dominis bloquejats.", @@ -196,21 +239,37 @@ "explore.trending_links": "Notícies", "explore.trending_statuses": "Publicacions", "explore.trending_tags": "Etiquetes", + "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquesta publicació. Si també vols que la publicació es filtri en aquest context, hauràs d'editar el filtre.", + "filter_modal.added.context_mismatch_title": "El context no coincideix!", + "filter_modal.added.expired_explanation": "La categoria d'aquest filtre ha caducat, necesitaràs canviar la seva data de caducitat per a aplicar-la.", + "filter_modal.added.expired_title": "Filtre caducat!", + "filter_modal.added.review_and_configure": "Per a revisar i configurar aquesta categoria de filtre, ves a {settings_link}.", + "filter_modal.added.review_and_configure_title": "Configuració del filtre", + "filter_modal.added.settings_link": "pàgina de configuració", + "filter_modal.added.short_explanation": "Aquesta publicació s'ha afegit a la següent categoria de filtre: {title}.", + "filter_modal.added.title": "Filtre afegit!", + "filter_modal.select_filter.context_mismatch": "no aplica en aquest context", + "filter_modal.select_filter.expired": "caducat", + "filter_modal.select_filter.prompt_new": "Nova categoria: {name}", + "filter_modal.select_filter.search": "Cerca o crea", + "filter_modal.select_filter.subtitle": "Usa una categoria existent o crea una nova", + "filter_modal.select_filter.title": "Filtra aquesta publicació", + "filter_modal.title.status": "Filtra una publicació", "follow_recommendations.done": "Fet", "follow_recommendations.heading": "Segueix a la gent de la que t'agradaria veure les seves publicacions! Aquí hi ha algunes recomanacions.", - "follow_recommendations.lead": "Les publicacions del usuaris que segueixes es mostraran en ordre cronològic en la teva línia de temps Inici. No tinguis por en cometre errors, pots fàcilment deixar de seguir-los en qualsevol moment!", + "follow_recommendations.lead": "Les publicacions dels usuaris que segueixes es mostraran en ordre cronològic en la teva línia de temps Inici. No tinguis por en cometre errors, pots fàcilment deixar de seguir-los en qualsevol moment!", "follow_request.authorize": "Autoritza", "follow_request.reject": "Rebutja", "follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment d’aquests comptes manualment.", + "footer.about": "Quant a", + "footer.directory": "Directori de perfils", + "footer.get_app": "Aconsegueix l'app", + "footer.invite": "Convida persones", + "footer.keyboard_shortcuts": "Dreceres de teclat", + "footer.privacy_policy": "Política de privadesa", + "footer.source_code": "Mostra el codi font", "generic.saved": "Desat", - "getting_started.developers": "Desenvolupadors", - "getting_started.directory": "Directori de perfils", - "getting_started.documentation": "Documentació", "getting_started.heading": "Primers passos", - "getting_started.invite": "Convidar gent", - "getting_started.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir-hi o informar de problemes a GitHub a {github}.", - "getting_started.security": "Configuració del compte", - "getting_started.terms": "Condicions de servei", "hashtag.column_header.tag_mode.all": "i {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sense {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Qualsevol d’aquests", "hashtag.column_settings.tag_mode.none": "Cap d’aquests", "hashtag.column_settings.tag_toggle": "Inclou etiquetes addicionals per a aquesta columna", + "hashtag.follow": "Segueix etiqueta", + "hashtag.unfollow": "Deixa de seguir etiqueta", "home.column_settings.basic": "Bàsic", "home.column_settings.show_reblogs": "Mostra els impulsos", "home.column_settings.show_replies": "Mostra les respostes", "home.hide_announcements": "Amaga els anuncis", "home.show_announcements": "Mostra els anuncis", + "interaction_modal.description.favourite": "Amb un compte a Mastodon, pots afavorir aquesta publicació perquè l'autor sàpiga que t'ha agradat i desar-la per a més endavant.", + "interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre les seves publicacions en la teva línia de temps d'Inici.", + "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquesta publicació per a compartir-la amb els teus seguidors.", + "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquesta publicació.", + "interaction_modal.on_another_server": "En un servidor diferent", + "interaction_modal.on_this_server": "En aquest servidor", + "interaction_modal.other_server_instructions": "Copia i enganxa aquest enllaç en el camp de cerca de la teva aplicació Mastodon preferida o en l'interfície web del teu servidor Mastodon.", + "interaction_modal.preamble": "Donat que Mastodon és descentralitzat, pots fer servir el teu compte existent a un altre servidor Mastodon o plataforma compatible si és que no tens compte en aquest.", + "interaction_modal.title.favourite": "Marca la publicació de {name}", + "interaction_modal.title.follow": "Segueix {name}", + "interaction_modal.title.reblog": "Impulsa la publicació de {name}", + "interaction_modal.title.reply": "Respon a la publicació de {name}", "intervals.full.days": "{number, plural, one {# dia} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}", @@ -237,7 +310,7 @@ "keyboard_shortcuts.direct": "per obrir la columna de missatges directes", "keyboard_shortcuts.down": "Mou-lo avall en la llista", "keyboard_shortcuts.enter": "Obrir publicació", - "keyboard_shortcuts.favourite": "Afavoreix la publicació", + "keyboard_shortcuts.favourite": "Marca la publicació", "keyboard_shortcuts.favourites": "Obre la llista de preferits", "keyboard_shortcuts.federated": "Obre la línia de temps federada", "keyboard_shortcuts.heading": "Dreceres de teclat", @@ -268,7 +341,7 @@ "lightbox.next": "Següent", "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostra el perfil", - "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors del servidor.", + "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors de {domain}.", "lists.account.add": "Afegeix a la llista", "lists.account.remove": "Elimina de la llista", "lists.delete": "Esborra la llista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Amaga imatge} other {Amaga imatges}}", "missing_indicator.label": "No s'ha trobat", "missing_indicator.sublabel": "Aquest recurs no s'ha trobat", + "moved_to_account_banner.text": "El teu compte {disabledAccount} està actualment desactivat perquè l'has traslladat a {movedToAccount}.", "mute_modal.duration": "Durada", "mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?", "mute_modal.indefinite": "Indefinit", - "navigation_bar.apps": "Aplicacions mòbils", + "navigation_bar.about": "Quant a", "navigation_bar.blocks": "Usuaris bloquejats", "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Línia de temps local", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Paraules silenciades", "navigation_bar.follow_requests": "Sol·licituds de seguiment", "navigation_bar.follows_and_followers": "Seguits i seguidors", - "navigation_bar.info": "Sobre aquest servidor", - "navigation_bar.keyboard_shortcuts": "Dreceres de teclat", "navigation_bar.lists": "Llistes", "navigation_bar.logout": "Tancar sessió", "navigation_bar.mutes": "Usuaris silenciats", @@ -313,9 +385,12 @@ "navigation_bar.pins": "Publicacions fixades", "navigation_bar.preferences": "Preferències", "navigation_bar.public_timeline": "Línia de temps federada", + "navigation_bar.search": "Cerca", "navigation_bar.security": "Seguretat", + "not_signed_in_indicator.not_signed_in": "Necessites registrar-te per a accedir aquest recurs.", + "notification.admin.report": "{name} ha reportat {target}", "notification.admin.sign_up": "{name} s'ha registrat", - "notification.favourite": "{name} ha afavorit la teva publicació", + "notification.favourite": "a {name} li ha agradat la teva publicació", "notification.follow": "{name} et segueix", "notification.follow_request": "{name} ha sol·licitat seguir-te", "notification.mention": "{name} t'ha mencionat", @@ -326,6 +401,7 @@ "notification.update": "{name} ha editat una publicació", "notifications.clear": "Esborra les notificacions", "notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?", + "notifications.column_settings.admin.report": "Nous informes:", "notifications.column_settings.admin.sign_up": "Nous registres:", "notifications.column_settings.alert": "Notificacions d'escriptori", "notifications.column_settings.favourite": "Preferits:", @@ -379,6 +455,8 @@ "privacy.public.short": "Públic", "privacy.unlisted.long": "Visible per tothom però exclosa de les funcions de descobriment", "privacy.unlisted.short": "No llistat", + "privacy_policy.last_updated": "Darrera actualització {date}", + "privacy_policy.title": "Política de Privacitat", "refresh": "Actualitza", "regeneration_indicator.label": "Carregant…", "regeneration_indicator.sublabel": "S'està preparant la teva línia de temps d'Inici!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Gràcies per denunciar-ho. Ho investigarem.", "report.unfollow": "Deixa de seguir @{name}", "report.unfollow_explanation": "Estàs seguint aquest compte. Per no veure les seves publicacions a la teva línia de temps d'Inici, deixa de seguir-lo.", + "report_notification.attached_statuses": "{count, plural, one {{count} publicació} other {{count} publicacions}} attached", + "report_notification.categories.other": "Altres", + "report_notification.categories.spam": "Contingut brossa", + "report_notification.categories.violation": "Violació de norma", + "report_notification.open": "Informe obert", "search.placeholder": "Cerca", + "search.search_or_paste": "Cerqueu o escriu l'URL", "search_popout.search_format": "Format de cerca avançada", "search_popout.tips.full_text": "El text simple recupera publicacions que has escrit, marcat com a preferides, que has impulsat o on t'han esmentat, així com els usuaris, els noms d'usuaris i les etiquetes.", "search_popout.tips.hashtag": "etiqueta", @@ -444,11 +528,21 @@ "search_results.nothing_found": "No s'ha pogut trobar res per a aquests termes de cerca", "search_results.statuses": "Publicacions", "search_results.statuses_fts_disabled": "La cerca de publicacions pel seu contingut no està habilitada en aquest servidor Mastodon.", + "search_results.title": "Cerca de {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", + "server_banner.about_active_users": "Gent fem servir aquest servidor en els darrers 30 dies (Usuaris Actius Mensuals)", + "server_banner.active_users": "usuaris actius", + "server_banner.administered_by": "Administrat per:", + "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada, potenciat per {mastodon}.", + "server_banner.learn_more": "Aprèn més", + "server_banner.server_stats": "Estadístiques del servidor:", + "sign_in_banner.create_account": "Crea un compte", + "sign_in_banner.sign_in": "Inicia sessió", + "sign_in_banner.text": "Inicia la sessió per seguir perfils o etiquetes, afavorir, compartir i respondre a publicacions o interactuar des del teu compte en un servidor diferent.", "status.admin_account": "Obre l'interfície de moderació per a @{name}", "status.admin_status": "Obrir aquesta publicació a la interfície de moderació", "status.block": "Bloqueja @{name}", - "status.bookmark": "Afavoreix", + "status.bookmark": "Marca", "status.cancel_reblog_private": "Desfés l'impuls", "status.cannot_reblog": "Aquesta publicació no es pot impulsar", "status.copy": "Copia l'enllaç a la publicació", @@ -459,8 +553,10 @@ "status.edited": "Editat {date}", "status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}", "status.embed": "Incrusta", - "status.favourite": "Favorit", + "status.favourite": "Preferir", + "status.filter": "Filtra aquesta publicació", "status.filtered": "Filtrat", + "status.hide": "Amaga publicació", "status.history.created": "{name} ha creat {date}", "status.history.edited": "{name} ha editat {date}", "status.load_more": "Carregar-ne més", @@ -479,36 +575,42 @@ "status.reblogs.empty": "Encara ningú no ha impulsat aquesta publicació. Quan algú ho faci, apareixeran aquí.", "status.redraft": "Esborra-la i reescriure-la", "status.remove_bookmark": "Suprimeix el marcador", + "status.replied_to": "Ha respòs a {name}", "status.reply": "Respon", "status.replyAll": "Respon al fil", "status.report": "Denuncia @{name}", "status.sensitive_warning": "Contingut sensible", "status.share": "Comparteix", + "status.show_filter_reason": "Mostra igualment", "status.show_less": "Mostrar-ne menys", "status.show_less_all": "Mostrar-ne menys per a tot", "status.show_more": "Mostrar-ne més", "status.show_more_all": "Mostrar-ne més per a tot", - "status.show_thread": "Mostra el fil", + "status.show_original": "Mostra l'original", + "status.translate": "Tradueix", + "status.translated_from_with": "Traduït des de {lang} usant {provider}", "status.uncached_media_warning": "No està disponible", "status.unmute_conversation": "No silenciïs la conversa", "status.unpin": "No fixis al perfil", + "subscribed_languages.lead": "Només les publicacions en les llengües seleccionades apareixeran en les teves línies de temps \"Inici\" i \"Llistes\" després del canvi. No en seleccionis cap per a rebre publicacions en totes les llengües.", + "subscribed_languages.save": "Desa els canvis", + "subscribed_languages.target": "Canvia les llengües subscrites per a {target}", "suggestions.dismiss": "Ignora el suggeriment", "suggestions.header": "És possible que estiguis interessat en…", "tabs_bar.federated_timeline": "Federat", "tabs_bar.home": "Inici", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificacions", - "tabs_bar.search": "Cerca", "time_remaining.days": "{number, plural, one {# dia} other {# dies}} restants", "time_remaining.hours": "{number, plural, one {# hora} other {# hores}} restants", "time_remaining.minutes": "{number, plural, one {# minut} other {# minuts}} restants", "time_remaining.moments": "Moments restants", "time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants", - "timeline_hint.remote_resource_not_displayed": "{resource} dels altres servidors no son mostrats.", + "timeline_hint.remote_resource_not_displayed": "No es mostren {resource} d'altres servidors.", "timeline_hint.resources.followers": "Seguidors", "timeline_hint.resources.follows": "Seguiments", "timeline_hint.resources.statuses": "Publicacions més antigues", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persones}} parlant-ne", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} persones}} en els passats {days, plural, one {day} other {{days} dies}}", "trends.trending_now": "En tendència", "ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparant OCR…", "upload_modal.preview_label": "Previsualitza ({ratio})", "upload_progress.label": "Pujant...", + "upload_progress.processing": "En procés…", "video.close": "Tanca el vídeo", "video.download": "Descarrega l’arxiu", "video.exit_fullscreen": "Surt de la pantalla completa", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index a642c8a81424e8..ee8c5e224d8df6 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -1,4 +1,16 @@ { + "about.blocks": "ڕاژە سەرپەرشتیکراو", + "about.contact": "پەیوەندی کردن:", + "about.disclaimer": "ماستودۆن بە خۆڕایە، پرۆگرامێکی سەرچاوە کراوەیە، وە نیشانە بازرگانیەکەی ماستودۆن (gGmbH)ە", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "ماستۆدۆن بە گشتی ڕێگەت پێدەدات بە پیشاندانی ناوەڕۆکەکان و کارلێک کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە.", + "about.domain_blocks.silenced.explanation": "بە گشتی ناتوانی زانیاریە تایبەتەکان و ناوەڕۆکی ئەم ڕاژەیە ببینی، مەگەر بە ڕوونی بەدوایدا بگەڕێیت یان هەڵیبژێریت بۆ شوێنکەوتنی.", + "about.domain_blocks.silenced.title": "سنووردار", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "تێبینی ", "account.add_or_remove_from_list": "زیادکردن یان سڕینەوە لە پێرستەکان", "account.badges.bot": "بوت", @@ -7,13 +19,16 @@ "account.block_domain": "بلۆکی هەموو شتێک لە {domain}", "account.blocked": "بلۆککرا", "account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی", - "account.cancel_follow_request": "بەتاڵکردنی داوای شوێنکەوتن", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "پەیامی تایبەت بە @{name}", "account.disable_notifications": "ئاگانامە مەنێرە بۆم کاتێک @{name} پۆست دەکرێت", "account.domain_blocked": "دۆمەین قەپاتکرا", "account.edit_profile": "دەستکاری پرۆفایل", "account.enable_notifications": "ئاگادارم بکەوە کاتێک @{name} بابەتەکان", "account.endorse": "ناساندن لە پرۆفایل", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "شوێنکەوتن", "account.followers": "شوێنکەوتووان", "account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} شوێنکەوتوو} other {{counter} شوێنکەوتوو}}", "account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.", "account.follows_you": "شوێنکەوتووەکانت", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "داشاردنی بووستەکان لە @{name}", - "account.joined": "بەشداری {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "خاوەنداریەتی ئەم لینکە لە {date} چێک کراوە", "account.locked_info": "تایبەتمەندی ئەم هەژمارەیە ڕیکخراوە بۆ قوفڵدراوە. خاوەنەکە بە دەستی پێداچوونەوە دەکات کە کێ دەتوانێت شوێنیان بکەوێت.", "account.media": "میدیا", "account.mention": "ئاماژە @{name}", - "account.moved_to": "{name} گواسترایەوە بۆ:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "بێدەنگکردن @{name}", "account.mute_notifications": "هۆشیارکەرەوەکان لاببە لە @{name}", "account.muted": "بێ دەنگ", + "account.open_original_page": "Open original page", "account.posts": "توتس", "account.posts_with_replies": "توتس و وەڵامەکان", "account.report": "گوزارشت @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "تەححح!", "announcement.announcement": "بانگەواز", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} هەرهەفتە", "boost_modal.combo": "دەتوانیت دەست بنێی بە سەر {combo} بۆ بازدان لە جاری داهاتوو", - "bundle_column_error.body": "هەڵەیەک ڕوویدا لەکاتی بارکردنی ئەم پێکهاتەیە.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "دووبارە هەوڵبدە", - "bundle_column_error.title": "هەڵيی تۆڕ", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "داخستن", "bundle_modal_error.message": "هەڵەیەک ڕوویدا لەکاتی بارکردنی ئەم پێکهاتەیە.", "bundle_modal_error.retry": "دووبارە تاقی بکەوە", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "بەکارهێنەرە بلۆککراوەکان", "column.bookmarks": "نیشانەکان", "column.community": "هێڵی کاتی ناوخۆیی", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "لابردنی ئەم هەڵبژاردەیە", "compose_form.poll.switch_to_multiple": "ڕاپرسی بگۆڕە بۆ ڕێگەدان بە چەند هەڵبژاردنێک", "compose_form.poll.switch_to_single": "گۆڕینی ڕاپرسی بۆ ڕێگەدان بە تاکە هەڵبژاردنێک", - "compose_form.publish": "توت", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "پاشکەوتی گۆڕانکاریەکان", "compose_form.sensitive.hide": "نیشانکردنی میدیا وەک هەستیار", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "بلۆک & گوزارشت", "confirmations.block.confirm": "بلۆک", "confirmations.block.message": "ئایا دڵنیایت لەوەی دەتەوێت {name} بلۆک بکەیت?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "سڕینەوە", "confirmations.delete.message": "ئایا دڵنیایت لەوەی دەتەوێت ئەم توتە بسڕیتەوە?", "confirmations.delete_list.confirm": "سڕینەوە", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "نیشانەکردن وەک خوێندراوە", "conversation.open": "نیشاندان گفتوگۆ", "conversation.with": "لەگەڵ{names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "لە ڕاژەکانی ناسراو", "directory.local": "تەنها لە {domain}", "directory.new_arrivals": "تازە گەیشتنەکان", "directory.recently_active": "بەم دواییانە چالاکە", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ئەم توتە بنچین بکە لەسەر وێب سایتەکەت بە کۆپیکردنی کۆدەکەی خوارەوە.", "embed.preview": "ئەمە ئەو شتەیە کە لە شێوەی خۆی دەچێت:", "emoji_button.activity": "چالاکی", @@ -196,21 +239,37 @@ "explore.trending_links": "هەواڵەکان", "explore.trending_statuses": "نووسراوەکان", "explore.trending_tags": "هاشتاگ", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "تەواو", "follow_recommendations.heading": "شوێن ئەو کەسانە بکەون کە دەتەوێت پۆستەکان ببینیت لە! لێرەدا چەند پێشنیارێک هەیە.", "follow_recommendations.lead": "بابەتەکانی ئەو کەسانەی کە بەدوایدا دەگەڕێیت بە فەرمانی کرۆنۆلۆجی لە خواردنەکانی ماڵەکەت دەردەکەون. مەترسە لە هەڵەکردن، دەتوانیت بە ئاسانی خەڵک هەڵبکەیت هەر کاتێک!", "follow_request.authorize": "ده‌سه‌ڵاتپێدراو", "follow_request.reject": "ڕەتکردنەوە", "follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "پاشکەوتکرا", - "getting_started.developers": "پەرەپێدەران", - "getting_started.directory": "پەڕەی پرۆفایل", - "getting_started.documentation": "بەڵگەنامە", "getting_started.heading": "دەست پێکردن", - "getting_started.invite": "بانگهێشتکردنی خەڵک", - "getting_started.open_source_notice": "ماستۆدۆن نەرمەکالایەکی سەرچاوەی کراوەیە. دەتوانیت بەشداری بکەیت یان گوزارشت بکەیت لەسەر کێشەکانی لە پەڕەی گیتهاب {github}.", - "getting_started.security": "ڕێکخستنەکانی هەژمارە", - "getting_started.terms": "مەرجەکانی خزمەتگوزاری", "hashtag.column_header.tag_mode.all": "و {additional}", "hashtag.column_header.tag_mode.any": "یا {additional}", "hashtag.column_header.tag_mode.none": "بەبێ {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "هەر کام لەمانە", "hashtag.column_settings.tag_mode.none": "هیچ کام لەمانە", "hashtag.column_settings.tag_toggle": "تاگی زیادە ی ئەم ستوونە لەخۆ بنووسە", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "بنەڕەتی", "home.column_settings.show_reblogs": "پیشاندانی بەهێزکردن", "home.column_settings.show_replies": "وەڵامدانەوەکان پیشان بدە", "home.hide_announcements": "شاردنەوەی راگەیەنراوەکان", "home.show_announcements": "پیشاندانی راگەیەنراوەکان", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژەک}}", "intervals.full.hours": "{number, plural, one {# کات} other {# کات}}", "intervals.full.minutes": "{number, plural, one {# خولەک} other {# خولەک}}", @@ -268,7 +341,7 @@ "lightbox.next": "داهاتوو", "lightbox.previous": "پێشوو", "limited_account_hint.action": "بەهەر حاڵ پڕۆفایلی پیشان بدە", - "limited_account_hint.title": "ئەم پرۆفایلییە لەلایەن بەڕێوەبەرانی سێرڤەرەکەتەوە شاراوەتەوە.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "زیادکردن بۆ لیست", "lists.account.remove": "لابردن لە لیست", "lists.delete": "سڕینەوەی لیست", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "شاردنەوەی {number, plural, one {image} other {images}}", "missing_indicator.label": "نەدۆزرایەوە", "missing_indicator.sublabel": "ئەو سەرچاوەیە نادۆزرێتەوە", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "ماوە", "mute_modal.hide_notifications": "شاردنەوەی ئاگانامەکان لەم بەکارهێنەرە؟ ", "mute_modal.indefinite": "نادیار", - "navigation_bar.apps": "بەرنامەی مۆبایل", + "navigation_bar.about": "About", "navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان", "navigation_bar.bookmarks": "نیشانکراوەکان", "navigation_bar.community_timeline": "دەمنامەی ناوخۆیی", @@ -304,8 +378,6 @@ "navigation_bar.filters": "وشە کپەکان", "navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە", "navigation_bar.follows_and_followers": "شوێنکەوتوو و شوێنکەوتوان", - "navigation_bar.info": "دەربارەی ئەم ڕاژە", - "navigation_bar.keyboard_shortcuts": "هۆتکەی", "navigation_bar.lists": "لیستەکان", "navigation_bar.logout": "دەرچوون", "navigation_bar.mutes": "کپکردنی بەکارهێنەران", @@ -313,7 +385,10 @@ "navigation_bar.pins": "توتی چەسپاو", "navigation_bar.preferences": "پەسەندەکان", "navigation_bar.public_timeline": "نووسراوەکانی هەمووشوێنێک", + "navigation_bar.search": "Search", "navigation_bar.security": "ئاسایش", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} تۆمارکرا", "notification.favourite": "{name} نووسراوەکەتی پەسەند کرد", "notification.follow": "{name} دوای تۆ کەوت", @@ -326,6 +401,7 @@ "notification.update": "{name} پۆستێکی دەستکاریکرد", "notifications.clear": "ئاگانامەکان بسڕیەوە", "notifications.clear_confirmation": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی هەموو ئاگانامەکانت بسڕیتەوە?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "چوونەژوورەوەی نوێ:", "notifications.column_settings.alert": "ئاگانامەکانی پیشانگەرر ڕومێزی", "notifications.column_settings.favourite": "دڵخوازترین:", @@ -379,6 +455,8 @@ "privacy.public.short": "گشتی", "privacy.unlisted.long": "بۆ هەمووان دیارە، بەڵام لە تایبەتمەندییەکانی دۆزینەوە دەرچووە", "privacy.unlisted.short": "لە لیست نەکراو", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "نوێکردنەوە", "regeneration_indicator.label": "بارکردن…", "regeneration_indicator.sublabel": "ڕاگەیەنەری ماڵەوەت ئامادە دەکرێت!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "سوپاس بۆ ڕاپۆرتکردن، ئێمە سەیری ئەم بابەتە دەکەین.", "report.unfollow": "بەدوادانەچوو@{name}", "report.unfollow_explanation": "تۆ شوێنکەوتووی ئەم هەژماررەی دەکەیت. بۆ ئەوەی چیتر نووسراوەکانیان لە هۆم فیدی خۆت نەبینی، بەدوایان مەچۆ.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "گەڕان", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو", "search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.", "search_popout.tips.hashtag": "هەشتاگ", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "توتەکان", "search_results.statuses_fts_disabled": "گەڕانی توتەکان بە ناوەڕۆکیان لەسەر ئەم ڕاژەی ماستۆدۆن چالاک نەکراوە.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {دەرئەنجام} other {دەرئەنجام}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "کردنەوەی میانڕەوی بەڕێوەبەر بۆ @{name}", "status.admin_status": "ئەم توتە بکەوە لە ناو ڕووکاری بەڕیوەبەر", "status.block": "@{name} ئاستەنگ بکە", @@ -460,7 +554,9 @@ "status.edited_x_times": "دەستکاریکراوە {count, plural, one {{count} کات} other {{count} کات}}", "status.embed": "نیشتەجێ بکە", "status.favourite": "دڵخواز", + "status.filter": "Filter this post", "status.filtered": "پاڵاوتن", + "status.hide": "Hide toot", "status.history.created": "{name} دروستکراوە لە{date}", "status.history.edited": "{name} دروستکاریکراوە لە{date}", "status.load_more": "زیاتر بار بکە", @@ -479,26 +575,32 @@ "status.reblogs.empty": "کەس ئەم توتەی دووبارە نەتوتاندوە ،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.", "status.redraft": "سڕینەوەی و دووبارە ڕەشنووس", "status.remove_bookmark": "لابردنی نیشانه", + "status.replied_to": "Replied to {name}", "status.reply": "وەڵام", "status.replyAll": "بە نووسراوە وەڵام بدەوە", "status.report": "گوزارشت @{name}", "status.sensitive_warning": "ناوەڕۆکی هەستیار", "status.share": "هاوبەشی بکە", + "status.show_filter_reason": "Show anyway", "status.show_less": "کەمتر نیشان بدە", "status.show_less_all": "هەمووی بچووک بکەوە", "status.show_more": "زیاتر نیشان بدە", "status.show_more_all": "زیاتر نیشان بدە بۆ هەمووی", - "status.show_thread": "نیشاندانی گفتوگۆ", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "بەردەست نیە", "status.unmute_conversation": "گفتوگۆی بێدەنگ", "status.unpin": "لە سەرەوە لایبە", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "ڕەتکردنەوەی پێشنیار", "suggestions.header": "لەوانەیە حەزت لەمەش بێت…", "tabs_bar.federated_timeline": "گشتی", "tabs_bar.home": "سەرەتا", "tabs_bar.local_timeline": "ناوخۆیی", "tabs_bar.notifications": "ئاگادارییەکان", - "tabs_bar.search": "بگەڕێ", "time_remaining.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژ}} ماوە", "time_remaining.hours": "{number, plural, one {# کاتژمێر} other {# کاتژمێر}} ماوە", "time_remaining.minutes": "{number, plural, one {# خولەک} other {# خولەک}} ماوە", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "شوێنکەوتوو", "timeline_hint.resources.follows": "شوێنکەوتن", "timeline_hint.resources.statuses": "نێردراوی کۆن", - "trends.counter_by_accounts": "{count, plural, one {{counter} کەس} other {{counter} کەس}} گفتوگۆ دەکا", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "ڕۆژەڤ", "ui.beforeunload": "ڕەشنووسەکەت لەدەست دەچێت ئەگەر ماستۆدۆن جێ بهێڵیت.", "units.short.billion": "{count} ملیار", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "نووسینەکە دەستنیشان دەکرێت…", "upload_modal.preview_label": "پێشبینین ({ratio})", "upload_progress.label": "بار دەکرێت...", + "upload_progress.processing": "Processing…", "video.close": "داخستنی ڤیدیۆ", "video.download": "داگرتنی فایل", "video.exit_fullscreen": "دەرچوون لە پڕ شاشە", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index d2db35f16e9fff..4b518c24cdc0cb 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Aghjunghje o toglie da e liste", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Piattà u duminiu {domain}", "account.blocked": "Bluccatu", "account.browse_more_on_origin_server": "Vede di più nant'à u prufile uriginale", - "account.cancel_follow_request": "Annullà a dumanda d'abbunamentu", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Missaghju direttu @{name}", "account.disable_notifications": "Ùn mi nutificate più quandu @{name} pubblica qualcosa", "account.domain_blocked": "Duminiu piattatu", "account.edit_profile": "Mudificà u prufile", "account.enable_notifications": "Nutificate mi quandu @{name} pubblica qualcosa", "account.endorse": "Fà figurà nant'à u prufilu", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Siguità", "account.followers": "Abbunati", "account.followers.empty": "Nisunu hè abbunatu à st'utilizatore.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Abbunamentu} other {{counter} Abbunamenti}}", "account.follows.empty": "St'utilizatore ùn seguita nisunu.", "account.follows_you": "Vi seguita", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Piattà spartere da @{name}", - "account.joined": "Quì dapoi {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "A prupietà di stu ligame hè stata verificata u {date}", "account.locked_info": "U statutu di vita privata di u contu hè chjosu. U pruprietariu esamina manualmente e dumande d'abbunamentu.", "account.media": "Media", "account.mention": "Mintuvà @{name}", - "account.moved_to": "{name} hè partutu nant'à:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Piattà @{name}", "account.mute_notifications": "Piattà nutificazione da @{name}", "account.muted": "Piattatu", + "account.open_original_page": "Open original page", "account.posts": "Statuti", "account.posts_with_replies": "Statuti è risposte", "account.report": "Palisà @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Uups!", "announcement.announcement": "Annunziu", "attachments_list.unprocessed": "(micca trattata)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per settimana", "boost_modal.combo": "Pudete appughjà nant'à {combo} per saltà quessa a prussima volta", - "bundle_column_error.body": "C'hè statu un prublemu caricandu st'elementu.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Pruvà torna", - "bundle_column_error.title": "Errore di cunnessione", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Chjudà", "bundle_modal_error.message": "C'hè statu un prublemu caricandu st'elementu.", "bundle_modal_error.retry": "Pruvà torna", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Utilizatori bluccati", "column.bookmarks": "Segnalibri", "column.community": "Linea pubblica lucale", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Toglie sta scelta", "compose_form.poll.switch_to_multiple": "Cambià u scandagliu per accittà parechje scelte", "compose_form.poll.switch_to_single": "Cambià u scandagliu per ùn accittà ch'una scelta", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Indicà u media cum'è sensibile} other {Indicà i media cum'è sensibili}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bluccà è signalà", "confirmations.block.confirm": "Bluccà", "confirmations.block.message": "Site sicuru·a che vulete bluccà @{name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Toglie", "confirmations.delete.message": "Site sicuru·a che vulete sguassà stu statutu?", "confirmations.delete_list.confirm": "Toglie", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marcà cum'è lettu", "conversation.open": "Vede a cunversazione", "conversation.with": "Cù {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Da u fediversu cunisciutu", "directory.local": "Solu da {domain}", "directory.new_arrivals": "Ultimi arrivi", "directory.recently_active": "Attività ricente", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Integrà stu statutu à u vostru situ cù u codice quì sottu.", "embed.preview": "Hà da parè à quessa:", "emoji_button.activity": "Attività", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Fatta", "follow_recommendations.heading": "Siguitate a ghjente da quelli vulete vede i missaghji! Eccu qualchì ricumandazione.", "follow_recommendations.lead": "I missaghji da a ghjente che voi siguitate figureranu in ordine crunulogicu nant'a vostra pagina d'accolta. Ùn timite micca di fà un sbagliu, pudete sempre disabbunavvi d'un contu à ogni mumentu!", "follow_request.authorize": "Auturizà", "follow_request.reject": "Righjittà", "follow_requests.unlocked_explanation": "U vostru contu ùn hè micca privatu, ma a squadra d'amministrazione di {domain} pensa chì e dumande d'abbunamentu di questi conti anu bisognu d'esse verificate manualmente.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Salvatu", - "getting_started.developers": "Sviluppatori", - "getting_started.directory": "Annuariu di i prufili", - "getting_started.documentation": "Ducumentazione", "getting_started.heading": "Per principià", - "getting_started.invite": "Invità ghjente", - "getting_started.open_source_notice": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un bug, nant'à GitHub: {github}.", - "getting_started.security": "Sicurità", - "getting_started.terms": "Cundizione di u serviziu", "hashtag.column_header.tag_mode.all": "è {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "senza {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Unu di quessi", "hashtag.column_settings.tag_mode.none": "Nisunu di quessi", "hashtag.column_settings.tag_toggle": "Inchjude tag addiziunali per sta colonna", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Bàsichi", "home.column_settings.show_reblogs": "Vede e spartere", "home.column_settings.show_replies": "Vede e risposte", "home.hide_announcements": "Piattà annunzii", "home.show_announcements": "Vede annunzii", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}", @@ -268,7 +341,7 @@ "lightbox.next": "Siguente", "lightbox.previous": "Pricidente", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Aghjunghje à a lista", "lists.account.remove": "Toglie di a lista", "lists.delete": "Toglie a lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Piattà {number, plural, one {ritrattu} other {ritratti}}", "missing_indicator.label": "Micca trovu", "missing_indicator.sublabel": "Ùn era micca pussivule di truvà sta risorsa", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Durata", "mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?", "mute_modal.indefinite": "Indifinita", - "navigation_bar.apps": "Applicazione per u telefuninu", + "navigation_bar.about": "About", "navigation_bar.blocks": "Utilizatori bluccati", "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Linea pubblica lucale", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Parolle silenzate", "navigation_bar.follow_requests": "Dumande d'abbunamentu", "navigation_bar.follows_and_followers": "Abbunati è abbunamenti", - "navigation_bar.info": "À prupositu di u servore", - "navigation_bar.keyboard_shortcuts": "Accorte cù a tastera", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Scunnettassi", "navigation_bar.mutes": "Utilizatori piattati", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Statuti puntarulati", "navigation_bar.preferences": "Preferenze", "navigation_bar.public_timeline": "Linea pubblica glubale", + "navigation_bar.search": "Search", "navigation_bar.security": "Sicurità", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti", "notification.follow": "{name} v'hà seguitatu", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Purgà e nutificazione", "notifications.clear_confirmation": "Site sicuru·a che vulete toglie tutte ste nutificazione?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Nutificazione nant'à l'urdinatore", "notifications.column_settings.favourite": "Favuriti:", @@ -379,6 +455,8 @@ "privacy.public.short": "Pubblicu", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Micca listatu", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Attualizà", "regeneration_indicator.label": "Caricamentu…", "regeneration_indicator.sublabel": "Priparazione di a vostra pagina d'accolta!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Circà", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Ricerca avanzata", "search_popout.tips.full_text": "I testi simplici rimandanu i statuti ch'avete scritti, aghjunti à i vostri favuriti, spartuti o induve quelli site mintuvatu·a, è ancu i cugnomi, nomi pubblichi è hashtag chì currispondenu.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Statuti", "search_results.statuses_fts_disabled": "A ricerca di i cuntinuti di i statuti ùn hè micca attivata nant'à stu servore Mastodon.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {risultatu} other {risultati}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Apre l'interfaccia di muderazione per @{name}", "status.admin_status": "Apre stu statutu in l'interfaccia di muderazione", "status.block": "Bluccà @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Integrà", "status.favourite": "Aghjunghje à i favuriti", + "status.filter": "Filter this post", "status.filtered": "Filtratu", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Vede di più", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Per avà nisunu hà spartutu u statutu. Quandu qualch'unu u sparterà, u so contu sarà mustratu quì.", "status.redraft": "Sguassà è riscrive", "status.remove_bookmark": "Toglie segnalibru", + "status.replied_to": "Replied to {name}", "status.reply": "Risponde", "status.replyAll": "Risponde à tutti", "status.report": "Palisà @{name}", "status.sensitive_warning": "Cuntinutu sensibile", "status.share": "Sparte", + "status.show_filter_reason": "Show anyway", "status.show_less": "Ripiegà", "status.show_less_all": "Ripiegà tuttu", "status.show_more": "Slibrà", "status.show_more_all": "Slibrà tuttu", - "status.show_thread": "Vede u filu", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Micca dispunibule", "status.unmute_conversation": "Ùn piattà più a cunversazione", "status.unpin": "Spuntarulà da u prufile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Righjittà a pruposta", "suggestions.header": "Site forse interessatu·a da…", "tabs_bar.federated_timeline": "Glubale", "tabs_bar.home": "Accolta", "tabs_bar.local_timeline": "Lucale", "tabs_bar.notifications": "Nutificazione", - "tabs_bar.search": "Cercà", "time_remaining.days": "{number, plural, one {# ghjornu ferma} other {# ghjorni fermanu}}", "time_remaining.hours": "{number, plural, one {# ora ferma} other {# ore fermanu}}", "time_remaining.minutes": "{number, plural, one {# minuta ferma} other {# minute fermanu}} left", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Abbunati", "timeline_hint.resources.follows": "Abbunamenti", "timeline_hint.resources.statuses": "Statuti più anziani", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona chì parla} other {{counter} persone chì parlanu}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Tindenze d'avà", "ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Mastodon.", "units.short.billion": "{count}G", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Priparazione di l'OCR…", "upload_modal.preview_label": "Vista ({ratio})", "upload_progress.label": "Caricamentu...", + "upload_progress.processing": "Processing…", "video.close": "Chjudà a video", "video.download": "Scaricà fugliale", "video.exit_fullscreen": "Caccià u pienu screnu", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 91dda4f446d9e4..190e68f2b94034 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderované servery", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon je svobodný software s otevřeným zdrojovým kódem a ochranná známka společnosti Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Důvod není k dispozici", + "about.domain_blocks.preamble": "Mastodon umožňuje prohlížet obsah a komunikovat s uživateli jakéhokoliv serveru ve fediversu. Pro tento konkrétní server se vztahují následující výjimky.", + "about.domain_blocks.silenced.explanation": "Uživatele a obsah tohoto serveru neuvidíte, pokud je nebudete výslovně hledat nebo je nezačnete sledovat.", + "about.domain_blocks.silenced.title": "Omezeno", + "about.domain_blocks.suspended.explanation": "Žádná data z tohoto serveru nebudou zpracovávána, uložena ani vyměňována, což znemožňuje jakoukoli interakci nebo komunikaci s uživateli z tohoto serveru.", + "about.domain_blocks.suspended.title": "Pozastaveno", + "about.not_available": "Tato informace nebyla zpřístupněna na tomto serveru.", + "about.powered_by": "Decentralizovaná sociální média poháněná {mastodon}", + "about.rules": "Pravidla serveru", "account.account_note_header": "Poznámka", "account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů", "account.badges.bot": "Robot", @@ -7,13 +19,16 @@ "account.block_domain": "Blokovat doménu {domain}", "account.blocked": "Blokován", "account.browse_more_on_origin_server": "Více na původním profilu", - "account.cancel_follow_request": "Zrušit žádost o sledování", + "account.cancel_follow_request": "Odvolat žádost o sledování", "account.direct": "Poslat @{name} přímou zprávu", "account.disable_notifications": "Zrušit upozorňování na příspěvky @{name}", "account.domain_blocked": "Doména blokována", "account.edit_profile": "Upravit profil", "account.enable_notifications": "Oznamovat mi příspěvky @{name}", "account.endorse": "Zvýraznit na profilu", + "account.featured_tags.last_status_at": "Poslední příspěvek na {date}", + "account.featured_tags.last_status_never": "Žádné příspěvky", + "account.featured_tags.title": "Hlavní hashtagy {name}", "account.follow": "Sledovat", "account.followers": "Sledující", "account.followers.empty": "Tohoto uživatele ještě nikdo nesleduje.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Sledovaný} few {{counter} Sledovaní} many {{counter} Sledovaných} other {{counter} Sledovaných}}", "account.follows.empty": "Tento uživatel ještě nikoho nesleduje.", "account.follows_you": "Sleduje vás", + "account.go_to_profile": "Přejít na profil", "account.hide_reblogs": "Skrýt boosty od @{name}", - "account.joined": "Založen {date}", + "account.joined_short": "Připojen/a", + "account.languages": "Změnit odebírané jazyky", "account.link_verified_on": "Vlastnictví tohoto odkazu bylo zkontrolováno {date}", "account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.", "account.media": "Média", "account.mention": "Zmínit @{name}", - "account.moved_to": "Uživatel {name} se přesunul na:", + "account.moved_to": "{name} uvedl/a, že jeho/její nový účet je nyní:", "account.mute": "Skrýt @{name}", "account.mute_notifications": "Skrýt oznámení od @{name}", "account.muted": "Skryt", + "account.open_original_page": "Otevřít původní stránku", "account.posts": "Příspěvky", "account.posts_with_replies": "Příspěvky a odpovědi", "account.report": "Nahlásit @{name}", @@ -53,20 +71,33 @@ "admin.dashboard.retention.average": "Průměr", "admin.dashboard.retention.cohort": "Měsíc registrace", "admin.dashboard.retention.cohort_size": "Noví uživatelé", - "alert.rate_limited.message": "Zkuste to prosím znovu za {retry_time, time, medium}.", + "alert.rate_limited.message": "Zkuste to prosím znovu po {retry_time, time, medium}.", "alert.rate_limited.title": "Spojení omezena", "alert.unexpected.message": "Objevila se neočekávaná chyba.", "alert.unexpected.title": "Jejda!", "announcement.announcement": "Oznámení", "attachments_list.unprocessed": "(nezpracováno)", + "audio.hide": "Skrýt zvuk", "autosuggest_hashtag.per_week": "{count} za týden", "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}", - "bundle_column_error.body": "Při načítání této komponenty se něco pokazilo.", + "bundle_column_error.copy_stacktrace": "Kopírovat zprávu o chybě", + "bundle_column_error.error.body": "Požadovanou stránku nelze vykreslit. Může to být způsobeno chybou v našem kódu nebo problémem s kompatibilitou prohlížeče.", + "bundle_column_error.error.title": "Ale ne!", + "bundle_column_error.network.body": "Při pokusu o načtení této stránky došlo k chybě. To může být způsobeno dočasným problémem s připojením k Internetu nebo k tomuto serveru.", + "bundle_column_error.network.title": "Chyba sítě", "bundle_column_error.retry": "Zkuste to znovu", - "bundle_column_error.title": "Chyba sítě", + "bundle_column_error.return": "Zpět na domovskou stránku", + "bundle_column_error.routing.body": "Požadovaná stránka nebyla nalezena. Opravdu je adresa správná?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zavřít", "bundle_modal_error.message": "Při načítání této komponenty se něco pokazilo.", "bundle_modal_error.retry": "Zkusit znovu", + "closed_registrations.other_server_instructions": "Protože je Mastodon decentralizovaný, můžete si vytvořit účet na jiném serveru a stále s tímto serverem komunikovat.", + "closed_registrations_modal.description": "V současné době není možné vytvořit účet na {domain} ale mějte prosím na paměti, že k používání Mastodonu nepotřebujete účet konkrétně na {domain}.", + "closed_registrations_modal.find_another_server": "Najít jiný server", + "closed_registrations_modal.preamble": "Mastodon je decentralizovaný, takže bez ohledu na to, kde vytvoříte svůj účet, budete moci sledovat a komunikovat s kýmkoli na tomto serveru. Můžete ho dokonce hostit!", + "closed_registrations_modal.title": "Registrace na Mastodonu", + "column.about": "O aplikaci", "column.blocks": "Blokovaní uživatelé", "column.bookmarks": "Záložky", "column.community": "Místní časová osa", @@ -95,7 +126,7 @@ "compose.language.change": "Změnit jazyk", "compose.language.search": "Prohledat jazyky...", "compose_form.direct_message_warning_learn_more": "Zjistit více", - "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné nebezpečné informace.", + "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné citlivé informace.", "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.", "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky učené pouze pro sledující.", "compose_form.lock_disclaimer.lock": "uzamčen", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Odstranit tuto volbu", "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více možností", "compose_form.poll.switch_to_single": "Povolit u ankety výběr jediné možnosti", - "compose_form.publish": "Odeslat", + "compose_form.publish": "Zveřejnit", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Uložit změny", "compose_form.sensitive.hide": "{count, plural, one {Označit média za citlivá} few {Označit média za citlivá} many {Označit média za citlivá} other {Označit média za citlivá}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blokovat a nahlásit", "confirmations.block.confirm": "Blokovat", "confirmations.block.message": "Opravdu chcete zablokovat {name}?", + "confirmations.cancel_follow_request.confirm": "Odvolat žádost", + "confirmations.cancel_follow_request.message": "Opravdu chcete odvolat svou žádost o sledování {name}?", "confirmations.delete.confirm": "Smazat", "confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?", "confirmations.delete_list.confirm": "Smazat", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Označit jako přečtenou", "conversation.open": "Zobrazit konverzaci", "conversation.with": "S {names}", + "copypaste.copied": "Zkopírováno", + "copypaste.copy": "Kopírovat", "directory.federated": "Ze známého fedivesmíru", "directory.local": "Pouze z domény {domain}", "directory.new_arrivals": "Nově příchozí", "directory.recently_active": "Nedávno aktivní", + "disabled_account_banner.account_settings": "Nastavení účtu", + "disabled_account_banner.text": "Váš účet {disabledAccount} je momentálně zakázán.", + "dismissable_banner.community_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí, jejichž účty hostuje {domain}.", + "dismissable_banner.dismiss": "Odmítnout", + "dismissable_banner.explore_links": "O těchto novinkách hovoří lidé na tomto a dalších serverech decentralizované sítě.", + "dismissable_banner.explore_statuses": "Tyto příspěvky z této a dalších serverů v decentralizované síti nyní získávají trakci na tomto serveru.", + "dismissable_banner.explore_tags": "Tyto hashtagy právě teď získávají na popularitě mezi lidmi na tomto a dalších serverech decentralizované sítě.", + "dismissable_banner.public_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí na tomto a jiných serverech decentralizované sítě, o které tento server ví.", "embed.instructions": "Pro přidání příspěvku na vaši webovou stránku zkopírujte níže uvedený kód.", "embed.preview": "Takhle to bude vypadat:", "emoji_button.activity": "Aktivita", @@ -196,21 +239,37 @@ "explore.trending_links": "Zprávy", "explore.trending_statuses": "Příspěvky", "explore.trending_tags": "Hashtagy", + "filter_modal.added.context_mismatch_explanation": "Tato kategorie filtru se nevztahuje na kontext, ve kterém jste tento příspěvek otevřeli. Pokud chcete, aby byl příspěvek filtrován i v tomto kontextu, budete muset filtr upravit.", + "filter_modal.added.context_mismatch_title": "Kontext se neshoduje!", + "filter_modal.added.expired_explanation": "Tato kategorie filtrů vypršela, budete muset změnit datum vypršení platnosti, aby mohla být použita.", + "filter_modal.added.expired_title": "Vypršel filtr!", + "filter_modal.added.review_and_configure": "Chcete-li zkontrolovat a dále konfigurovat tuto kategorii filtru, přejděte na {settings_link}.", + "filter_modal.added.review_and_configure_title": "Nastavení filtru", + "filter_modal.added.settings_link": "stránka nastavení", + "filter_modal.added.short_explanation": "Tento příspěvek byl přidán do následující kategorie filtrů: {title}.", + "filter_modal.added.title": "Filtr přidán!", + "filter_modal.select_filter.context_mismatch": "nevztahuje se na tento kontext", + "filter_modal.select_filter.expired": "vypršela platnost", + "filter_modal.select_filter.prompt_new": "Nová kategorie: {name}", + "filter_modal.select_filter.search": "Vyhledat nebo vytvořit", + "filter_modal.select_filter.subtitle": "Použít existující kategorii nebo vytvořit novou kategorii", + "filter_modal.select_filter.title": "Filtrovat tento příspěvek", + "filter_modal.title.status": "Filtrovat příspěvek", "follow_recommendations.done": "Hotovo", "follow_recommendations.heading": "Sledujte lidi, jejichž příspěvky chcete vidět! Tady jsou nějaké návrhy.", "follow_recommendations.lead": "Příspěvky od lidí, které sledujete, se budou objevovat v chronologickém pořadí ve vaší domovské ose. Nebojte se, že uděláte chybu, můžete lidi stejně snadno kdykoliv přestat sledovat!", "follow_request.authorize": "Autorizovat", "follow_request.reject": "Odmítnout", "follow_requests.unlocked_explanation": "Přestože váš účet není uzamčen, personál {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.", + "footer.about": "O aplikaci", + "footer.directory": "Adresář profilů", + "footer.get_app": "Stáhnout aplikaci", + "footer.invite": "Pozvat lidi", + "footer.keyboard_shortcuts": "Klávesové zkratky", + "footer.privacy_policy": "Zásady ochrany osobních údajů", + "footer.source_code": "Zobrazit zdrojový kód", "generic.saved": "Uloženo", - "getting_started.developers": "Vývojáři", - "getting_started.directory": "Adresář profilů", - "getting_started.documentation": "Dokumentace", "getting_started.heading": "Začínáme", - "getting_started.invite": "Pozvat lidi", - "getting_started.open_source_notice": "Mastodon je otevřený software. Přispět do jeho vývoje nebo hlásit chyby můžete na GitHubu {github}.", - "getting_started.security": "Nastavení účtu", - "getting_started.terms": "Podmínky používání", "hashtag.column_header.tag_mode.all": "a {additional}", "hashtag.column_header.tag_mode.any": "nebo {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Jakékoliv z těchto", "hashtag.column_settings.tag_mode.none": "Žádné z těchto", "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci dodatečné tagy", + "hashtag.follow": "Sledovat hashtag", + "hashtag.unfollow": "Zrušit sledování hashtagu", "home.column_settings.basic": "Základní", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", "home.hide_announcements": "Skrýt oznámení", "home.show_announcements": "Zobrazit oznámení", + "interaction_modal.description.favourite": "Pokud máte účet na Mastodonu, můžete tento příspěvek označit jako oblíbený a dát tak autorovi najevo, že si ho vážíte, a uložit si ho na později.", + "interaction_modal.description.follow": "S účtem na Mastodonu můžete sledovat {name} a přijímat příspěvky ve vašem domovském kanálu.", + "interaction_modal.description.reblog": "S účtem na Mastodonu můžete podpořit tento příspěvek a sdílet jej s vlastními sledujícími.", + "interaction_modal.description.reply": "S účtem na Mastodonu můžete reagovat na tento příspěvek.", + "interaction_modal.on_another_server": "Na jiném serveru", + "interaction_modal.on_this_server": "Na tomto serveru", + "interaction_modal.other_server_instructions": "Zkopírujte a vložte tuto URL do vyhledávacího pole vaší oblíbené Mastodon aplikace nebo webového rozhraní vašeho Mastodon serveru.", + "interaction_modal.preamble": "Protože je Mastodon decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.", + "interaction_modal.title.favourite": "Oblíbený příspěvek {name}", + "interaction_modal.title.follow": "Sledovat {name}", + "interaction_modal.title.reblog": "Zvýšit příspěvek uživatele {name}", + "interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}", "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}", @@ -268,7 +341,7 @@ "lightbox.next": "Další", "lightbox.previous": "Předchozí", "limited_account_hint.action": "Přesto profil zobrazit", - "limited_account_hint.title": "Tento profil byl skryt moderátory vašeho serveru.", + "limited_account_hint.title": "Tento profil byl skryt moderátory {domain}.", "lists.account.add": "Přidat do seznamu", "lists.account.remove": "Odebrat ze seznamu", "lists.delete": "Smazat seznam", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Skrýt obrázek} few {Skrýt obrázky} many {Skrýt obrázky} other {Skrýt obrázky}}", "missing_indicator.label": "Nenalezeno", "missing_indicator.sublabel": "Tento zdroj se nepodařilo najít", + "moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně zakázán, protože jste se přesunul/a na {movedToAccount}.", "mute_modal.duration": "Trvání", "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?", "mute_modal.indefinite": "Neomezeně", - "navigation_bar.apps": "Mobilní aplikace", + "navigation_bar.about": "O aplikaci", "navigation_bar.blocks": "Blokovaní uživatelé", "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Místní časová osa", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Skrytá slova", "navigation_bar.follow_requests": "Žádosti o sledování", "navigation_bar.follows_and_followers": "Sledovaní a sledující", - "navigation_bar.info": "O tomto serveru", - "navigation_bar.keyboard_shortcuts": "Klávesové zkratky", "navigation_bar.lists": "Seznamy", "navigation_bar.logout": "Odhlásit", "navigation_bar.mutes": "Skrytí uživatelé", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Připnuté příspěvky", "navigation_bar.preferences": "Předvolby", "navigation_bar.public_timeline": "Federovaná časová osa", + "navigation_bar.search": "Hledat", "navigation_bar.security": "Zabezpečení", + "not_signed_in_indicator.not_signed_in": "Pro přístup k tomuto zdroji se musíte přihlásit.", + "notification.admin.report": "Uživatel {name} nahlásil {target}", "notification.admin.sign_up": "Uživatel {name} se zaregistroval", "notification.favourite": "Uživatel {name} si oblíbil váš příspěvek", "notification.follow": "Uživatel {name} vás začal sledovat", @@ -326,6 +401,7 @@ "notification.update": "Uživatel {name} upravil příspěvek", "notifications.clear": "Vymazat oznámení", "notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?", + "notifications.column_settings.admin.report": "Nová hlášení:", "notifications.column_settings.admin.sign_up": "Nové registrace:", "notifications.column_settings.alert": "Oznámení na počítači", "notifications.column_settings.favourite": "Oblíbení:", @@ -379,6 +455,8 @@ "privacy.public.short": "Veřejný", "privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování", "privacy.unlisted.short": "Neuvedený", + "privacy_policy.last_updated": "Naposledy aktualizováno {date}", + "privacy_policy.title": "Zásady ochrany osobních údajů", "refresh": "Obnovit", "regeneration_indicator.label": "Načítání…", "regeneration_indicator.sublabel": "Váš domovský kanál se připravuje!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Děkujeme za nahlášení, podíváme se na to.", "report.unfollow": "Přestat sledovat @{name}", "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jejich příspěvky ve své domácí časové ose, přestaňte je sledovat.", + "report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}", + "report_notification.categories.other": "Ostatní", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Porušení pravidla", + "report_notification.open": "Otevřít hlášení", "search.placeholder": "Hledat", + "search.search_or_paste": "Hledat nebo vložit URL", "search_popout.search_format": "Pokročilé hledání", "search_popout.tips.full_text": "Jednoduchý text vrací příspěvky, které jste napsali, oblíbili si, boostnuli, nebo vás v nich někdo zmínil, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Pro tyto hledané výrazy nebylo nic nenalezeno", "search_results.statuses": "Příspěvky", "search_results.statuses_fts_disabled": "Vyhledávání příspěvků podle jejich obsahu není na tomto Mastodon serveru povoleno.", + "search_results.title": "Hledat {q}", "search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledků} other {výsledků}}", + "server_banner.about_active_users": "Lidé používající tento server během posledních 30 dní (měsíční aktivní uživatelé)", + "server_banner.active_users": "aktivní uživatelé", + "server_banner.administered_by": "Spravováno:", + "server_banner.introduction": "{domain} je součástí decentralizované sociální sítě běžící na {mastodon}.", + "server_banner.learn_more": "Zjistit více", + "server_banner.server_stats": "Statistiky serveru:", + "sign_in_banner.create_account": "Vytvořit účet", + "sign_in_banner.sign_in": "Přihlásit se", + "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbených, sdílení a odpovědi na příspěvky nebo interakci z vašeho účtu na jiném serveru.", "status.admin_account": "Otevřít moderátorské rozhraní pro @{name}", "status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní", "status.block": "Zablokovat @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Upraven {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}", "status.embed": "Vložit na web", "status.favourite": "Oblíbit", + "status.filter": "Filtrovat tento příspěvek", "status.filtered": "Filtrováno", + "status.hide": "Skrýt příspěvek", "status.history.created": "Uživatel {name} vytvořil {date}", "status.history.edited": "Uživatel {name} upravil {date}", "status.load_more": "Zobrazit více", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Tento příspěvek ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.", "status.redraft": "Smazat a přepsat", "status.remove_bookmark": "Odstranit ze záložek", + "status.replied_to": "Odpověděl uživateli {name}", "status.reply": "Odpovědět", "status.replyAll": "Odpovědět na vlákno", "status.report": "Nahlásit @{name}", "status.sensitive_warning": "Citlivý obsah", "status.share": "Sdílet", + "status.show_filter_reason": "Přesto zobrazit", "status.show_less": "Zobrazit méně", "status.show_less_all": "Zobrazit méně pro všechny", "status.show_more": "Zobrazit více", "status.show_more_all": "Zobrazit více pro všechny", - "status.show_thread": "Zobrazit vlákno", + "status.show_original": "Zobrazit původní", + "status.translate": "Přeložit", + "status.translated_from_with": "Přeloženo z {lang} pomocí {provider}", "status.uncached_media_warning": "Nedostupné", "status.unmute_conversation": "Odkrýt konverzaci", "status.unpin": "Odepnout z profilu", + "subscribed_languages.lead": "Po změně se objeví pouze příspěvky ve vybraných jazycích na vašem domě a zobrazí se seznam časových os. Pro příjem příspěvků ve všech jazycích nevyber žádnou.", + "subscribed_languages.save": "Uložit změny", + "subscribed_languages.target": "Změnit odebírané jazyky na {target}", "suggestions.dismiss": "Odmítnout návrh", "suggestions.header": "Mohlo by vás zajímat…", "tabs_bar.federated_timeline": "Federovaná", "tabs_bar.home": "Domovská", "tabs_bar.local_timeline": "Místní", "tabs_bar.notifications": "Oznámení", - "tabs_bar.search": "Hledat", "time_remaining.days": "{number, plural, one {Zbývá # den} few {Zbývají # dny} many {Zbývá # dní} other {Zbývá # dní}}", "time_remaining.hours": "{number, plural, one {Zbývá # hodina} few {Zbývají # hodiny} many {Zbývá # hodin} other {Zbývá # hodin}}", "time_remaining.minutes": "{number, plural, one {Zbývá # minuta} few {Zbývají # minuty} many {Zbývá # minut} other {Zbývá # minut}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Sledující", "timeline_hint.resources.follows": "Sledovaní", "timeline_hint.resources.statuses": "Starší příspěvky", - "trends.counter_by_accounts": "zmiňuje {count, plural, one {{counter} člověk} few {{counter} lidé} many {{counter} lidí} other {{counter} lidí}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} člověk} few {{counter} lidé} many {{counter} lidí} other {{counter} lidí}} za poslední {days, plural, one {den} few {{days} dny} many {{days} dnů} other {{days} dnů}}", "trends.trending_now": "Právě populární", "ui.beforeunload": "Pokud Mastodon opustíte, váš koncept se ztratí.", "units.short.billion": "{count} mld.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Příprava OCR…", "upload_modal.preview_label": "Náhled ({ratio})", "upload_progress.label": "Nahrávání…", + "upload_progress.processing": "Zpracovávání…", "video.close": "Zavřít video", "video.download": "Stáhnout soubor", "video.exit_fullscreen": "Ukončit režim celé obrazovky", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 2a29cbbfb315c4..9812eec6201efe 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -1,4 +1,16 @@ { + "about.blocks": "Gweinyddion sy'n cael eu cymedroli", + "about.contact": "Cyswllt:", + "about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Rheswm ddim ar gael", + "about.domain_blocks.preamble": "Yn gyffredinol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.", + "about.domain_blocks.silenced.explanation": "Yn gyffredinol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.", + "about.domain_blocks.silenced.title": "Tawelwyd", + "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei storio na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.", + "about.domain_blocks.suspended.title": "Ataliwyd", + "about.not_available": "Nid yw'r wybodaeth hwn wedi ei wneud ar gael ar y gweinydd hwn.", + "about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}", + "about.rules": "Rheolau'r gweinydd", "account.account_note_header": "Nodyn", "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Blocio parth {domain}", "account.blocked": "Blociwyd", "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol", - "account.cancel_follow_request": "Canslo cais dilyn", + "account.cancel_follow_request": "Tynnu nôl cais i ddilyn", "account.direct": "Neges breifat @{name}", "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio", "account.domain_blocked": "Parth wedi ei flocio", "account.edit_profile": "Golygu proffil", "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio", "account.endorse": "Arddangos ar fy mhroffil", + "account.featured_tags.last_status_at": "Y cofnod diwethaf ar {date}", + "account.featured_tags.last_status_never": "Dim postiadau", + "account.featured_tags.title": "hashnodau dan sylw {name}", "account.follow": "Dilyn", "account.followers": "Dilynwyr", "account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} yn Dilyn} other {{counter} yn Dilyn}}", "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.", "account.follows_you": "Yn eich dilyn chi", + "account.go_to_profile": "Mynd i'r proffil", "account.hide_reblogs": "Cuddio bwstiau o @{name}", - "account.joined": "Ymunodd {date}", + "account.joined_short": "Ymunodd", + "account.languages": "Newid ieithoedd wedi tanysgrifio iddynt nhw", "account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}", "account.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i gloi. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.", "account.media": "Cyfryngau", "account.mention": "Crybwyll @{name}", - "account.moved_to": "Mae @{name} wedi symud i:", + "account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:", "account.mute": "Tawelu @{name}", "account.mute_notifications": "Cuddio hysbysiadau o @{name}", "account.muted": "Distewyd", + "account.open_original_page": "Agor y dudalen wreiddiol", "account.posts": "Postiadau", "account.posts_with_replies": "Postiadau ac atebion", "account.report": "Adrodd @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Wps!", "announcement.announcement": "Cyhoeddiad", "attachments_list.unprocessed": "(heb eu prosesu)", + "audio.hide": "Cuddio sain", "autosuggest_hashtag.per_week": "{count} yr wythnos", "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa", - "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.", + "bundle_column_error.copy_stacktrace": "Copïo'r adroddiad gwall", + "bundle_column_error.error.body": "Nid oedd modd cynhyrchu'r dudalen honno. Gall fod oherwydd gwall yn ein côd neu fater cydnawsedd porwr.", + "bundle_column_error.error.title": "O na!", + "bundle_column_error.network.body": "Bu gwall wrth geisio llwytho'r dudalen hon. Gall hyn fod oherwydd anhawster dros-dro gyda'ch cysylltiad gwe neu'r gweinydd hwn.", + "bundle_column_error.network.title": "Gwall rhwydwaith", "bundle_column_error.retry": "Ceisiwch eto", - "bundle_column_error.title": "Gwall rhwydwaith", + "bundle_column_error.return": "Mynd nôl adref", + "bundle_column_error.routing.body": "Nid oedd modd canfod y dudalen honno. Ydych chi'n siŵr fod yr URL yn y bar cyfeiriad yn gywir?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Cau", "bundle_modal_error.message": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.", "bundle_modal_error.retry": "Ceiswich eto", + "closed_registrations.other_server_instructions": "Gan fod Mastodon yn ddatganoledig, gallwch greu cyfrif ar weinydd arall a dal i ryngweithio gyda hwn.", + "closed_registrations_modal.description": "Ar hyn o bryd nid yw'n bosib creu cyfrif ar {domain}, ond cadwch mewn cof nad oes raid i chi gael cyfrif yn benodol ar {domain} i ddefnyddio Mastodon.", + "closed_registrations_modal.find_another_server": "Dod o hyd i weinydd arall", + "closed_registrations_modal.preamble": "Mae Mastodon wedi'i ddatganoli, felly does dim gwahaniaeth ble rydych chi'n creu eich cyfrif, byddwch chi'n gallu dilyn a rhyngweithio ag unrhyw un ar y gweinydd hwn. Gallwch hyd yn oed ei gynnal ef eich hun!", + "closed_registrations_modal.title": "Cofrestru ar Mastodon", + "column.about": "Ynghylch", "column.blocks": "Defnyddwyr a flociwyd", "column.bookmarks": "Tudalnodau", "column.community": "Ffrwd lleol", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Lleol yn unig", "community.column_settings.media_only": "Cyfryngau yn unig", "community.column_settings.remote_only": "Anghysbell yn unig", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Newid iaith", + "compose.language.search": "Chwilio ieithoedd...", "compose_form.direct_message_warning_learn_more": "Dysgu mwy", - "compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth beryglus dros Mastodon.", + "compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth sensitif dros Mastodon.", "compose_form.hashtag_warning": "Ni fydd y post hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond postiadau cyhoeddus gellid chwilio amdanynt drwy hashnod.", "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich postiadau dilynwyr-yn-unig.", "compose_form.lock_disclaimer.lock": "wedi ei gloi", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Tynnu'r dewisiad", "compose_form.poll.switch_to_multiple": "Newid pleidlais i adael mwy nag un dewis", "compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis", - "compose_form.publish": "Tŵt", + "compose_form.publish": "Cyhoeddi", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Cadw newidiadau", "compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Rhwystro ac Adrodd", "confirmations.block.confirm": "Blocio", "confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?", + "confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl", + "confirmations.cancel_follow_request.message": "Ydych chi'n sicr eich bod chi eisiau tynnu'ch cais i ddilyn {name} yn ôl?", "confirmations.delete.confirm": "Dileu", "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?", "confirmations.delete_list.confirm": "Dileu", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Nodi fel wedi'i ddarllen", "conversation.open": "Gweld sgwrs", "conversation.with": "Gyda {names}", + "copypaste.copied": "Wedi ei gopïo", + "copypaste.copy": "Copïo", "directory.federated": "O'r ffedysawd cyfan", "directory.local": "O {domain} yn unig", "directory.new_arrivals": "Newydd-ddyfodiaid", "directory.recently_active": "Yn weithredol yn ddiweddar", + "disabled_account_banner.account_settings": "Gosodiadau'r cyfrif", + "disabled_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn o bryd.", + "dismissable_banner.community_timeline": "Dyma'r postiadau cyhoeddus diweddaraf gan bobl y caiff eu cyfrifon eu cynnal ar {domain}.", + "dismissable_banner.dismiss": "Diystyru", + "dismissable_banner.explore_links": "Mae'r straeon newyddion hyn yn cael eu trafod gan bobl ar y gweinydd hwn a rhai eraill ar y rhwydwaith datganoledig hwn, ar hyn o bryd.", + "dismissable_banner.explore_statuses": "Mae'r cofnodion hyn o'r gweinydd hwn a gweinyddion eraill yn y rhwydwaith datganoledig hwn yn denu sylw ar y gweinydd hwn ar hyn o bryd.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.", "embed.preview": "Dyma sut olwg fydd arno:", "emoji_button.activity": "Gweithgarwch", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Clirio", "emoji_button.custom": "Unigryw", "emoji_button.flags": "Baneri", "emoji_button.food": "Bwyd a Diod", @@ -196,21 +239,37 @@ "explore.trending_links": "Newyddion", "explore.trending_statuses": "Postiadau", "explore.trending_tags": "Hashnodau", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Hidlydd wedi'i ychwanegu!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "Categori newydd: {name}", + "filter_modal.select_filter.search": "Chwilio neu greu", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Hidlo'r post hwn", + "filter_modal.title.status": "Hidlo post", "follow_recommendations.done": "Wedi gorffen", "follow_recommendations.heading": "Dilynwch y bobl yr hoffech chi weld eu postiadau! Dyma ambell i awgrymiad.", "follow_recommendations.lead": "Bydd postiadau gan bobl rydych chi'n eu dilyn yn ymddangos mewn trefn amser ar eich ffrwd cartref. Peidiwch â bod ofn gwneud camgymeriadau, gallwch chi ddad-ddilyn pobl yr un mor hawdd unrhyw bryd!", "follow_request.authorize": "Caniatau", "follow_request.reject": "Gwrthod", "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.", + "footer.about": "Ynghylch", + "footer.directory": "Cyfeiriadur proffiliau", + "footer.get_app": "Lawrlwytho'r ap", + "footer.invite": "Gwahodd pobl", + "footer.keyboard_shortcuts": "Bysellau brys", + "footer.privacy_policy": "Polisi preifatrwydd", + "footer.source_code": "Gweld y cod ffynhonnell", "generic.saved": "Wedi'i Gadw", - "getting_started.developers": "Datblygwyr", - "getting_started.directory": "Cyfeiriadur proffil", - "getting_started.documentation": "Dogfennaeth", "getting_started.heading": "Dechrau", - "getting_started.invite": "Gwahodd pobl", - "getting_started.open_source_notice": "Mae Mastodon yn feddalwedd côd agored. Mae modd cyfrannu neu adrodd materion ar GitHUb ar {github}.", - "getting_started.security": "Diogelwch", - "getting_started.terms": "Telerau Gwasanaeth", "hashtag.column_header.tag_mode.all": "a {additional}", "hashtag.column_header.tag_mode.any": "neu {additional}", "hashtag.column_header.tag_mode.none": "heb {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Unrhyw un o'r rhain", "hashtag.column_settings.tag_mode.none": "Dim o'r rhain", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Syml", "home.column_settings.show_reblogs": "Dangos hybiau", "home.column_settings.show_replies": "Dangos ymatebion", "home.hide_announcements": "Cuddio cyhoeddiadau", "home.show_announcements": "Dangos cyhoeddiadau", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r post hwn i'w rannu â'ch dilynwyr.", + "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r post hwn.", + "interaction_modal.on_another_server": "Ar weinydd gwahanol", + "interaction_modal.on_this_server": "Ar y gweinydd hwn", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Hoffi post {name}", + "interaction_modal.title.follow": "Dilyn {name}", + "interaction_modal.title.reblog": "Hybu post {name}", + "interaction_modal.title.reply": "Ymateb i bost {name}", "intervals.full.days": "{number, plural, one {# dydd} two {# ddydd} other {# o ddyddiau}}", "intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}", "intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}", @@ -267,8 +340,8 @@ "lightbox.expand": "Ehangu blwch gweld delwedd", "lightbox.next": "Nesaf", "lightbox.previous": "Blaenorol", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Dangos y proffil beth bynnag", + "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan arolygwyr {domain}.", "lists.account.add": "Ychwanegwch at restr", "lists.account.remove": "Dileu o'r rhestr", "lists.delete": "Dileu rhestr", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Toglo gwelededd", "missing_indicator.label": "Heb ei ganfod", "missing_indicator.sublabel": "Ni ellid canfod yr adnodd hwn", + "moved_to_account_banner.text": "Mae eich cyfrif {disabledAccount} wedi ei analluogi ar hyn y bryd am i chi symud i {movedToAccount}.", "mute_modal.duration": "Hyd", "mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?", "mute_modal.indefinite": "Amhenodol", - "navigation_bar.apps": "Apiau symudol", + "navigation_bar.about": "Ynghylch", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio", "navigation_bar.bookmarks": "Tudalnodau", "navigation_bar.community_timeline": "Ffrwd leol", @@ -301,11 +375,9 @@ "navigation_bar.edit_profile": "Golygu proffil", "navigation_bar.explore": "Archwilio", "navigation_bar.favourites": "Ffefrynnau", - "navigation_bar.filters": "Geiriau a dawelwyd", + "navigation_bar.filters": "Geiriau a fudwyd", "navigation_bar.follow_requests": "Ceisiadau dilyn", "navigation_bar.follows_and_followers": "Dilynion a ddilynwyr", - "navigation_bar.info": "Ynghylch yr achos hwn", - "navigation_bar.keyboard_shortcuts": "Bysellau brys", "navigation_bar.lists": "Rhestrau", "navigation_bar.logout": "Allgofnodi", "navigation_bar.mutes": "Defnyddwyr a dawelwyd", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Postiadau wedi eu pinio", "navigation_bar.preferences": "Dewisiadau", "navigation_bar.public_timeline": "Ffrwd y ffederasiwn", + "navigation_bar.search": "Chwilio", "navigation_bar.security": "Diogelwch", + "not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.", + "notification.admin.report": "Adroddodd {name} {target}", "notification.admin.sign_up": "Cofrestrodd {name}", "notification.favourite": "Hoffodd {name} eich post", "notification.follow": "Dilynodd {name} chi", @@ -326,12 +401,13 @@ "notification.update": "Golygodd {name} bost", "notifications.clear": "Clirio hysbysiadau", "notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?", + "notifications.column_settings.admin.report": "Adroddiadau newydd:", "notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:", "notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith", "notifications.column_settings.favourite": "Ffefrynnau:", "notifications.column_settings.filter_bar.advanced": "Dangos pob categori", "notifications.column_settings.filter_bar.category": "Bar hidlo", - "notifications.column_settings.filter_bar.show_bar": "Dangos bar hidlo", + "notifications.column_settings.filter_bar.show_bar": "Dangos y bar hidlo", "notifications.column_settings.follow": "Dilynwyr newydd:", "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:", "notifications.column_settings.mention": "Crybwylliadau:", @@ -345,11 +421,11 @@ "notifications.column_settings.unread_notifications.highlight": "Amlygu hysbysiadau heb eu darllen", "notifications.column_settings.update": "Golygiadau:", "notifications.filter.all": "Popeth", - "notifications.filter.boosts": "Hybiadau", + "notifications.filter.boosts": "Hybiau", "notifications.filter.favourites": "Ffefrynnau", "notifications.filter.follows": "Yn dilyn", "notifications.filter.mentions": "Crybwylliadau", - "notifications.filter.polls": "Canlyniadau pleidlais", + "notifications.filter.polls": "Canlyniadau polau", "notifications.filter.statuses": "Diweddariadau gan bobl rydych chi'n eu dilyn", "notifications.grant_permission": "Caniatáu.", "notifications.group": "{count} o hysbysiadau", @@ -379,6 +455,8 @@ "privacy.public.short": "Cyhoeddus", "privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod", "privacy.unlisted.short": "Heb ei restru", + "privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}", + "privacy_policy.title": "Polisi preifatrwydd", "refresh": "Adnewyddu", "regeneration_indicator.label": "Llwytho…", "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!", @@ -416,7 +494,7 @@ "report.reasons.other": "Mae'n rhywbeth arall", "report.reasons.other_description": "Nid yw'r mater yn ffitio i gategorïau eraill", "report.reasons.spam": "Sothach yw e", - "report.reasons.spam_description": "Cysylltiadau maleisus, ymgysylltu ffug, neu atebion ailadroddus", + "report.reasons.spam_description": "Dolenni maleisus, ymgysylltu ffug, neu ymatebion ailadroddus", "report.reasons.violation": "Mae'n torri rheolau'r gweinydd", "report.reasons.violation_description": "Rydych yn ymwybodol ei fod yn torri rheolau penodol", "report.rules.subtitle": "Dewiswch bob un sy'n berthnasol", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.", "report.unfollow": "Dad-ddilyn @{name}", "report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Arall", + "report_notification.categories.spam": "Sbam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Chwilio", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Fformat chwilio uwch", "search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.", "search_popout.tips.hashtag": "hashnod", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Methu dod o hyd i unrhyw beth ar gyfer y termau chwilio hyn", "search_results.statuses": "Postiadau", "search_results.statuses_fts_disabled": "Nid yw chwilio postiadau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.", + "search_results.title": "Chwilio am {q}", "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Gweinyddir gan:", + "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.", + "server_banner.learn_more": "Dysgu mwy", + "server_banner.server_stats": "Ystagedau'r gweinydd:", + "sign_in_banner.create_account": "Creu cyfrif", + "sign_in_banner.sign_in": "Mewngofnodi", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}", "status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio", "status.block": "Blocio @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Golygwyd {count, plural, one {unwaith} two {dwywaith} other {{count} gwaith}}", "status.embed": "Plannu", "status.favourite": "Hoffi", + "status.filter": "Hidlo'r post hwn", "status.filtered": "Wedi'i hidlo", + "status.hide": "Cuddio'r post", "status.history.created": "{name} greuodd {date}", "status.history.edited": "{name} olygodd {date}", "status.load_more": "Llwythwch mwy", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.", "status.redraft": "Dileu & ailddrafftio", "status.remove_bookmark": "Tynnu'r tudalnod", + "status.replied_to": "Replied to {name}", "status.reply": "Ateb", "status.replyAll": "Ateb i edefyn", "status.report": "Adrodd @{name}", "status.sensitive_warning": "Cynnwys sensitif", "status.share": "Rhannu", + "status.show_filter_reason": "Dangos beth bynnag", "status.show_less": "Dangos llai", "status.show_less_all": "Dangos llai i bawb", "status.show_more": "Dangos mwy", "status.show_more_all": "Dangos mwy i bawb", - "status.show_thread": "Dangos edefyn", + "status.show_original": "Dangos y gwreiddiol", + "status.translate": "Cyfieithu", + "status.translated_from_with": "Cyfieithwyd o {lang} gan ddefnyddio {provider}", "status.uncached_media_warning": "Dim ar gael", "status.unmute_conversation": "Dad-dawelu sgwrs", "status.unpin": "Dadbinio o'r proffil", + "subscribed_languages.lead": "Dim ond postiadau mewn ieithoedd dethol fydd yn ymddangos yn eich ffrydiau ar ôl y newid. Dewiswch ddim byd i dderbyn postiadau ym mhob iaith.", + "subscribed_languages.save": "Cadw'r newidiadau", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Diswyddo", "suggestions.header": "Efallai y bydd gennych ddiddordeb mewn…", "tabs_bar.federated_timeline": "Ffederasiwn", "tabs_bar.home": "Hafan", "tabs_bar.local_timeline": "Lleol", "tabs_bar.notifications": "Hysbysiadau", - "tabs_bar.search": "Chwilio", "time_remaining.days": "{number, plural, one {# ddydd} other {# o ddyddiau}} ar ôl", "time_remaining.hours": "{number, plural, one {# awr} other {# o oriau}} ar ôl", "time_remaining.minutes": "{number, plural, one {# funud} other {# o funudau}} ar ôl", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Dilynwyr", "timeline_hint.resources.follows": "Yn dilyn", "timeline_hint.resources.statuses": "Postiadau hŷn", - "trends.counter_by_accounts": "{count, plural, one {{counter} berson} other {{counter} o bobl}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Yn tueddu nawr", "ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.", "units.short.billion": "{count}biliwn", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Paratoi OCR…", "upload_modal.preview_label": "Rhagolwg ({ratio})", "upload_progress.label": "Uwchlwytho...", + "upload_progress.processing": "Wrthi'n prosesu…", "video.close": "Cau fideo", "video.download": "Lawrlwytho ffeil", "video.exit_fullscreen": "Gadael sgrîn llawn", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 5a03f86d08e6af..35060645cddf2f 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -1,4 +1,16 @@ { + "about.blocks": "Modererede servere", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Begrundelse ikke tilgængelig", + "about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.", + "about.domain_blocks.silenced.explanation": "Man vil generelt ikke se profiler og indhold fra denne server, medmindre man udtrykkeligt slå den op eller vælger den ved at følge.", + "about.domain_blocks.silenced.title": "Begrænset", + "about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.", + "about.domain_blocks.suspended.title": "Udelukket", + "about.not_available": "Denne information er ikke blevet gjort tilgængelig på denne server.", + "about.powered_by": "Decentraliserede sociale medier drevet af {mastodon}", + "about.rules": "Serverregler", "account.account_note_header": "Notat", "account.add_or_remove_from_list": "Tilføj eller fjern fra lister", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Blokér domænet {domain}", "account.blocked": "Blokeret", "account.browse_more_on_origin_server": "Tjek mere ud på den oprindelige profil", - "account.cancel_follow_request": "Annullér følgeanmodning", + "account.cancel_follow_request": "Annullér følg-anmodning", "account.direct": "Direkte besked til @{name}", "account.disable_notifications": "Advisér mig ikke længere, når @{name} poster", "account.domain_blocked": "Domæne blokeret", "account.edit_profile": "Redigér profil", "account.enable_notifications": "Advisér mig, når @{name} poster", "account.endorse": "Fremhæv på profil", + "account.featured_tags.last_status_at": "Seneste indlæg {date}", + "account.featured_tags.last_status_never": "Ingen indlæg", + "account.featured_tags.title": "{name}s fremhævede hashtags", "account.follow": "Følg", "account.followers": "Følgere", "account.followers.empty": "Ingen følger denne bruger endnu.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Følges} other {{counter} Følges}}", "account.follows.empty": "Denne bruger følger ikke nogen endnu.", "account.follows_you": "Følger dig", + "account.go_to_profile": "Gå til profil", "account.hide_reblogs": "Skjul boosts fra @{name}", - "account.joined": "Tilmeldt {date}", + "account.joined_short": "Oprettet", + "account.languages": "Skift abonnementssprog", "account.link_verified_on": "Ejerskab af dette link blev tjekket {date}", "account.locked_info": "Denne kontos fortrolighedsstatus er sat til låst. Ejeren bedømmer manuelt, hvem der kan følge vedkommende.", "account.media": "Medier", "account.mention": "Nævn @{name}", - "account.moved_to": "{name} er flyttet til:", + "account.moved_to": "{name} har angivet, at vedkommendes nye konto nu er:", "account.mute": "Skjul @{name}", "account.mute_notifications": "Skjul notifikationer fra @{name}", "account.muted": "Tystnet", + "account.open_original_page": "Åbn oprindelig side", "account.posts": "Indlæg", "account.posts_with_replies": "Indlæg og svar", "account.report": "Anmeld @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Ups!", "announcement.announcement": "Bekendtgørelse", "attachments_list.unprocessed": "(ubehandlet)", + "audio.hide": "Skjul lyd", "autosuggest_hashtag.per_week": "{count} pr. uge", "boost_modal.combo": "Du kan trykke på {combo} for at overspringe dette næste gang", - "bundle_column_error.body": "Noget gik galt under indlæsningen af denne komponent.", + "bundle_column_error.copy_stacktrace": "Kopiér fejlrapport", + "bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.", + "bundle_column_error.error.title": "Åh nej!", + "bundle_column_error.network.body": "En fejl opstod under forsøget på at indlæse denne side. Dette kan skyldes flere typer af fejl.", + "bundle_column_error.network.title": "Netværksfejl", "bundle_column_error.retry": "Forsøg igen", - "bundle_column_error.title": "Netværksfejl", + "bundle_column_error.return": "Retur til hjem", + "bundle_column_error.routing.body": "Den anmodede side kunne ikke findes. Sikker på, at URL'en er korrekt?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Luk", "bundle_modal_error.message": "Noget gik galt under indlæsningen af denne komponent.", "bundle_modal_error.retry": "Forsøg igen", + "closed_registrations.other_server_instructions": "Da Mastodon er decentraliseret, kan du oprette en konto på en anden server og stadig interagere med denne.", + "closed_registrations_modal.description": "Oprettelse af en konto på {domain} er i øjeblikket ikke muligt, men husk på, at du ikke behøver en konto specifikt på {domain} for at bruge Mastodon.", + "closed_registrations_modal.find_another_server": "Find en anden server", + "closed_registrations_modal.preamble": "Mastodon er decentraliseret, så uanset hvor du opretter din konto, vil du være i stand til at følge og interagere med nogen på denne server. Du kan endda selv være vært for den!", + "closed_registrations_modal.title": "Oprettelse på Mastodon", + "column.about": "Om", "column.blocks": "Blokerede brugere", "column.bookmarks": "Bogmærker", "column.community": "Lokal tidslinje", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Kun lokalt", "community.column_settings.media_only": "Kun medier", "community.column_settings.remote_only": "Kun udefra", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Skift sprog", + "compose.language.search": "Søg efter sprog...", "compose_form.direct_message_warning_learn_more": "Få mere at vide", - "compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende krypteret. Del derfor ikke sensitiv information over Mastodon.", + "compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende krypteret. Del derfor ikke sensitiv information via Mastodon.", "compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, idet kun offentlige indlæg kan søges via hashtags.", "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.", "compose_form.lock_disclaimer.lock": "låst", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Fjern denne valgmulighed", "compose_form.poll.switch_to_multiple": "Ændr afstemning til flervalgstype", "compose_form.poll.switch_to_single": "Ændr afstemning til enkeltvalgstype", - "compose_form.publish": "Udgiv", + "compose_form.publish": "Publicér", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Gem ændringer", "compose_form.sensitive.hide": "{count, plural, one {Markér medie som følsomt} other {Markér medier som følsomme}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blokér og Anmeld", "confirmations.block.confirm": "Blokér", "confirmations.block.message": "Sikker på, at du vil blokere {name}?", + "confirmations.cancel_follow_request.confirm": "Annullér anmodning", + "confirmations.cancel_follow_request.message": "Sikker på, at anmodningen om at følge {name} skal annulleres?", "confirmations.delete.confirm": "Slet", "confirmations.delete.message": "Sikker på, at du vil slette dette indlæg?", "confirmations.delete_list.confirm": "Slet", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Markér som læst", "conversation.open": "Vis konversation", "conversation.with": "Med {names}", + "copypaste.copied": "Kopieret", + "copypaste.copy": "Kopiér", "directory.federated": "Fra kendt fedivers", "directory.local": "Kun fra {domain}", "directory.new_arrivals": "Nye ankomster", "directory.recently_active": "Nyligt aktive", + "disabled_account_banner.account_settings": "Kontoindstillinger", + "disabled_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret.", + "dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostes af {domain}.", + "dismissable_banner.dismiss": "Afvis", + "dismissable_banner.explore_links": "Der tales lige nu om disse nyhedshistorier af folk på denne og andre servere i det decentraliserede netværk.", + "dismissable_banner.explore_statuses": "Disse indlæg vinder lige nu fodfæste på denne og andre servere i det decentraliserede netværk.", + "dismissable_banner.explore_tags": "Disse hashtages vinder lige nu fodfæste blandt folk på denne og andre servere i det decentraliserede netværk.", + "dismissable_banner.public_timeline": "Disse er de seneste offentlige indlæg fra folk på denne og andre servere i det decentraliserede netværk, som denne server kender.", "embed.instructions": "Indlejr dette indlæg på dit websted ved at kopiere nedenstående kode.", "embed.preview": "Sådan kommer det til at se ud:", "emoji_button.activity": "Aktivitet", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Ryd", "emoji_button.custom": "Tilpasset", "emoji_button.flags": "Flag", "emoji_button.food": "Mad og drikke", @@ -196,21 +239,37 @@ "explore.trending_links": "Nyheder", "explore.trending_statuses": "Indlæg", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Denne filterkategori omfatter ikke konteksten, hvorunder dette indlæg er tilgået. Redigér filteret, hvis indlægget også ønskes filtreret i denne kontekst.", + "filter_modal.added.context_mismatch_title": "Kontekstmisforhold!", + "filter_modal.added.expired_explanation": "Denne filterkategori er udløbet. Ændr dens udløbsdato, for at anvende den.", + "filter_modal.added.expired_title": "Udløbet filter!", + "filter_modal.added.review_and_configure": "Gå til {settings_link} for at gennemse og yderligere opsætte denne filterkategori.", + "filter_modal.added.review_and_configure_title": "Filterindstillinger", + "filter_modal.added.settings_link": "indstillingsside", + "filter_modal.added.short_explanation": "Dette indlæg er nu føjet til flg. filterkategori: {title}.", + "filter_modal.added.title": "Filter tilføjet!", + "filter_modal.select_filter.context_mismatch": "gælder ikke for denne kontekst", + "filter_modal.select_filter.expired": "udløbet", + "filter_modal.select_filter.prompt_new": "Ny kategori: {name}", + "filter_modal.select_filter.search": "Søg eller opret", + "filter_modal.select_filter.subtitle": "Vælg en eksisterende kategori eller opret en ny", + "filter_modal.select_filter.title": "Filtrér dette indlæg", + "filter_modal.title.status": "Filtrér et indlæg", "follow_recommendations.done": "Udført", "follow_recommendations.heading": "Følg personer du gerne vil se indlæg fra! Her er nogle forslag.", "follow_recommendations.lead": "Indlæg, fra personer du følger, vil fremgå kronologisk ordnet i dit hjemmefeed. Vær ikke bange for at begå fejl, da du altid og meget nemt kan ændre dit valg!", "follow_request.authorize": "Godkend", "follow_request.reject": "Afvis", "follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, antog {domain}-personalet, at du måske vil gennemgå dine anmodninger manuelt.", + "footer.about": "Om", + "footer.directory": "Profiloversigt", + "footer.get_app": "Hent appen", + "footer.invite": "Invitér personer", + "footer.keyboard_shortcuts": "Tastaturgenveje", + "footer.privacy_policy": "Fortrolighedspolitik", + "footer.source_code": "Vis kildekode", "generic.saved": "Gemt", - "getting_started.developers": "Udviklere", - "getting_started.directory": "Profilmappe", - "getting_started.documentation": "Dokumentation", "getting_started.heading": "Startmenu", - "getting_started.invite": "Invitér folk", - "getting_started.open_source_notice": "Mastodon er open-source software. Du kan bidrage eller anmelde fejl via GitHub {github}.", - "getting_started.security": "Kontoindstillinger", - "getting_started.terms": "Tjenestevilkår", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "uden {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Nogle af disse", "hashtag.column_settings.tag_mode.none": "Ingen af disse", "hashtag.column_settings.tag_toggle": "Inkludér ekstra tags for denne kolonne", + "hashtag.follow": "Følg hashtag", + "hashtag.unfollow": "Stop med at følge hashtag", "home.column_settings.basic": "Grundlæggende", "home.column_settings.show_reblogs": "Vis boosts", "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul bekendtgørelser", "home.show_announcements": "Vis bekendtgørelser", + "interaction_modal.description.favourite": "Med en konto på Mastodon kan dette indlæg gøres til favorit for at lade forfatteren vide, at det værdsættes, samt gemme det til senere.", + "interaction_modal.description.follow": "Med en konto på Mastodon kan du {name} følges for at modtage vedkommendes indlæg i hjemmefeed'et.", + "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg boostes for at dele det med egne følgere.", + "interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.", + "interaction_modal.on_another_server": "På en anden server", + "interaction_modal.on_this_server": "På denne server", + "interaction_modal.other_server_instructions": "Kopiér og indsæt denne URL i søgefeltet på en Mastodon-app eller webgrænseflade til en Mastodon-server.", + "interaction_modal.preamble": "Da Mastodon er decentraliseret, kan man bruge sin eksisterende konto hostet af en anden Mastodon-server eller kompatibel platform, såfremt man ikke har en konto på denne.", + "interaction_modal.title.favourite": "Gør {name}s indlæg til favorit", + "interaction_modal.title.follow": "Følg {name}", + "interaction_modal.title.reblog": "Boost {name}s indlæg", + "interaction_modal.title.reply": "Besvar {name}s indlæg", "intervals.full.days": "{number, plural, one {# dag} other {# dage}}", "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}", @@ -268,7 +341,7 @@ "lightbox.next": "Næste", "lightbox.previous": "Forrige", "limited_account_hint.action": "Vis profil alligevel", - "limited_account_hint.title": "Denne profil er blevet skjult af servermoderatorerne.", + "limited_account_hint.title": "Denne profil er blevet skjult af {domain}-moderatorerne.", "lists.account.add": "Føj til liste", "lists.account.remove": "Fjern fra liste", "lists.delete": "Slet liste", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Skjul billede} other {Skjul billeder}}", "missing_indicator.label": "Ikke fundet", "missing_indicator.sublabel": "Denne ressource kunne ikke findes", + "moved_to_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret, da du flyttede til {movedToAccount}.", "mute_modal.duration": "Varighed", "mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?", "mute_modal.indefinite": "Tidsubegrænset", - "navigation_bar.apps": "Mobil-apps", + "navigation_bar.about": "Om", "navigation_bar.blocks": "Blokerede brugere", "navigation_bar.bookmarks": "Bogmærker", "navigation_bar.community_timeline": "Lokal tidslinje", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Tavsgjorte ord", "navigation_bar.follow_requests": "Følgeanmodninger", "navigation_bar.follows_and_followers": "Følges og følgere", - "navigation_bar.info": "Om denne server", - "navigation_bar.keyboard_shortcuts": "Genvejstaster", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Log af", "navigation_bar.mutes": "Tavsgjorte brugere", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Fastgjorte indlæg", "navigation_bar.preferences": "Præferencer", "navigation_bar.public_timeline": "Fælles tidslinje", + "navigation_bar.search": "Søg", "navigation_bar.security": "Sikkerhed", + "not_signed_in_indicator.not_signed_in": "Man skal logge ind for at tilgå denne ressource.", + "notification.admin.report": "{name} anmeldte {target}", "notification.admin.sign_up": "{name} tilmeldte sig", "notification.favourite": "{name} favoritmarkerede dit indlæg", "notification.follow": "{name} begyndte at følge dig", @@ -326,6 +401,7 @@ "notification.update": "{name} redigerede et indlæg", "notifications.clear": "Ryd notifikationer", "notifications.clear_confirmation": "Sikker på, at du vil rydde alle dine notifikationer permanent?", + "notifications.column_settings.admin.report": "Nye anmeldelser:", "notifications.column_settings.admin.sign_up": "Nye tilmeldinger:", "notifications.column_settings.alert": "Computernotifikationer", "notifications.column_settings.favourite": "Favoritter:", @@ -362,7 +438,7 @@ "notifications_permission_banner.title": "Gå aldrig glip af noget", "picture_in_picture.restore": "Indsæt det igen", "poll.closed": "Lukket", - "poll.refresh": "Opdatér", + "poll.refresh": "Genindlæs", "poll.total_people": "{count, plural, one {# person} other {# personer}}", "poll.total_votes": "{count, plural, one {# stemme} other {# stemmer}}", "poll.vote": "Stem", @@ -379,6 +455,8 @@ "privacy.public.short": "Offentlig", "privacy.unlisted.long": "Synlig for alle, men med fravalgt visning i opdagelsesfunktioner", "privacy.unlisted.short": "Diskret", + "privacy_policy.last_updated": "Senest opdateret {date}", + "privacy_policy.title": "Fortrolighedspolitik", "refresh": "Genindlæs", "regeneration_indicator.label": "Indlæser…", "regeneration_indicator.sublabel": "Din hjemmetidslinje klargøres!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Tak for anmeldelsen, der vil blive set nærmere på dette.", "report.unfollow": "Følg ikke længere @{name}", "report.unfollow_explanation": "Denne konto følges. For at ophøre med at se vedkommendes indlæg på hjemmetidslinjen, vælg Følg ikke længere.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet", + "report_notification.categories.other": "Andre", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Regelovertrædelse", + "report_notification.open": "Åbn anmeldelse", "search.placeholder": "Søg", + "search.search_or_paste": "Søg efter eller angiv URL", "search_popout.search_format": "Avanceret søgeformat", "search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoritmarkeret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Ingen resultater for disse søgeord", "search_results.statuses": "Indlæg", "search_results.statuses_fts_disabled": "Søgning på indlæg efter deres indhold ikke aktiveret på denne Mastodon-server.", + "search_results.title": "Søg efter {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}", + "server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)", + "server_banner.active_users": "aktive brugere", + "server_banner.administered_by": "Håndteres af:", + "server_banner.introduction": "{domain} er en del af det decentraliserede, sociale netværk drevet af {mastodon}.", + "server_banner.learn_more": "Læs mere", + "server_banner.server_stats": "Serverstatstik:", + "sign_in_banner.create_account": "Opret konto", + "sign_in_banner.sign_in": "Log ind", + "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, dele og svar på indlæg eller interagere fra kontoen på en anden server.", "status.admin_account": "Åbn modereringsbrugerflade for @{name}", "status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen", "status.block": "Blokér @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Redigeret {count, plural, one {{count} gang} other {{count} gange}}", "status.embed": "Indlejr", "status.favourite": "Favorit", + "status.filter": "Filtrér dette indlæg", "status.filtered": "Filtreret", + "status.hide": "Skjul indlæg", "status.history.created": "{name} oprettet {date}", "status.history.edited": "{name} redigeret {date}", "status.load_more": "Indlæs mere", @@ -473,32 +569,38 @@ "status.pin": "Fastgør til profil", "status.pinned": "Fastgjort indlæg", "status.read_more": "Læs mere", - "status.reblog": "Fremhæv", + "status.reblog": "Boost", "status.reblog_private": "Boost med oprindelig synlighed", "status.reblogged_by": "{name} boostede", "status.reblogs.empty": "Ingen har endnu boostet dette indlæg. Når nogen gør, vil det fremgå hér.", "status.redraft": "Slet og omformulér", "status.remove_bookmark": "Fjern bogmærke", + "status.replied_to": "Besvarede {name}", "status.reply": "Besvar", "status.replyAll": "Besvar alle", "status.report": "Anmeld @{name}", "status.sensitive_warning": "Følsomt indhold", "status.share": "Del", + "status.show_filter_reason": "Vis alligevel", "status.show_less": "Vis mindre", "status.show_less_all": "Vis mindre for alle", "status.show_more": "Vis mere", "status.show_more_all": "Vis mere for alle", - "status.show_thread": "Vis tråd", + "status.show_original": "Vis original", + "status.translate": "Oversæt", + "status.translated_from_with": "Oversat fra {lang} ved brug af {provider}", "status.uncached_media_warning": "Utilgængelig", "status.unmute_conversation": "Genaktivér samtale", "status.unpin": "Frigør fra profil", + "subscribed_languages.lead": "Kun indlæg på udvalgte sprog vil fremgå på Hjem og listetidslinjer efter ændringen. Vælg ingen for at modtage indlæg på alle sprog.", + "subscribed_languages.save": "Gem ændringer", + "subscribed_languages.target": "Skift abonnementssprog for {target}", "suggestions.dismiss": "Afvis foreslag", - "suggestions.header": "Du er måske interesseret i…", + "suggestions.header": "Du er måske interesseret i …", "tabs_bar.federated_timeline": "Fælles", "tabs_bar.home": "Hjem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Notifikationer", - "tabs_bar.search": "Søg", "time_remaining.days": "{number, plural, one {# dag} other {# dage}} tilbage", "time_remaining.hours": "{number, plural, one {# time} other {# timer}} tilbage", "time_remaining.minutes": "{number, plural, one {# minut} other {# minutter}} tilbage", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Følgere", "timeline_hint.resources.follows": "Følger", "timeline_hint.resources.statuses": "Ældre indlæg", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} taler", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} {days, plural, one {den seneste dag} other {de seneste {days} dage}}", "trends.trending_now": "Hot lige nu", "ui.beforeunload": "Dit udkast går tabt, hvis du lukker Mastodon.", "units.short.billion": "{count} mia.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Klargør OCR…", "upload_modal.preview_label": "Forhåndsvisning ({ratio})", "upload_progress.label": "Uploader...", + "upload_progress.processing": "Behandler…", "video.close": "Luk video", "video.download": "Download fil", "video.exit_fullscreen": "Forlad fuldskærm", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index f0d225414a9f07..223e689129888e 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderierte Server", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon ist eine freie, quelloffene Software und eine Marke der Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Grund unbekannt", + "about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediversum zu sehen und mit ihnen zu interagieren. Für diese Instanz gibt es aber ein paar Ausnahmen.", + "about.domain_blocks.silenced.explanation": "Alle Inhalte dieses Servers sind stumm geschaltet und werden zunächst nicht angezeigt. Du kannst die Profile und anderen Inhalte aber dennoch manuell aufrufen – oder Du folgst einer Person dieser Mastodon-Instanz.", + "about.domain_blocks.silenced.title": "Limitiert", + "about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.", + "about.domain_blocks.suspended.title": "Gesperrt", + "about.not_available": "Diese Informationen sind auf diesem Server nicht verfügbar.", + "about.powered_by": "Ein dezentralisiertes soziales Netzwerk, angetrieben von {mastodon}", + "about.rules": "Serverregeln", "account.account_note_header": "Notiz", "account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen", "account.badges.bot": "Bot", @@ -7,126 +19,147 @@ "account.block_domain": "Alles von {domain} verstecken", "account.blocked": "Blockiert", "account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen", - "account.cancel_follow_request": "Folgeanfrage abbrechen", + "account.cancel_follow_request": "Folgeanfrage ablehnen", "account.direct": "Direktnachricht an @{name}", "account.disable_notifications": "Höre auf mich zu benachrichtigen wenn @{name} etwas postet", "account.domain_blocked": "Domain versteckt", "account.edit_profile": "Profil bearbeiten", "account.enable_notifications": "Benachrichtige mich wenn @{name} etwas postet", - "account.endorse": "Auf Profil hervorheben", + "account.endorse": "Im Profil hervorheben", + "account.featured_tags.last_status_at": "Letzter Beitrag am {date}", + "account.featured_tags.last_status_never": "Keine Beiträge", + "account.featured_tags.title": "Von {name} vorgestellte Hashtags", "account.follow": "Folgen", "account.followers": "Follower", "account.followers.empty": "Diesem Profil folgt noch niemand.", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}", - "account.following": "Folgt", + "account.following": "Folge ich", "account.following_counter": "{count, plural, one {{counter} Folgt} other {{counter} Folgt}}", "account.follows.empty": "Dieses Profil folgt noch niemandem.", "account.follows_you": "Folgt dir", + "account.go_to_profile": "Profil öffnen", "account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen", - "account.joined": "Beigetreten am {date}", - "account.link_verified_on": "Besitz dieses Links wurde geprüft am {date}", - "account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.", + "account.joined_short": "Beigetreten", + "account.languages": "Genutzte Sprachen überarbeiten", + "account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt", + "account.locked_info": "Die Privatsphäre dieses Kontos wurde auf „geschützt“ gesetzt. Die Person bestimmt manuell, wer ihrem Profil folgen darf.", "account.media": "Medien", - "account.mention": "@{name} erwähnen", - "account.moved_to": "{name} ist umgezogen nach:", + "account.mention": "@{name} im Beitrag erwähnen", + "account.moved_to": "{name} hat angegeben, dass dieser der neue Account ist:", "account.mute": "@{name} stummschalten", "account.mute_notifications": "Benachrichtigungen von @{name} stummschalten", "account.muted": "Stummgeschaltet", + "account.open_original_page": "Ursprüngliche Seite öffnen", "account.posts": "Beiträge", "account.posts_with_replies": "Beiträge und Antworten", "account.report": "@{name} melden", - "account.requested": "Warte auf Erlaubnis. Klicke zum Abbrechen", + "account.requested": "Warte auf Genehmigung. Klicke hier, um die Anfrage zum Folgen abzubrechen", "account.share": "Profil von @{name} teilen", - "account.show_reblogs": "Von @{name} geteilte Beiträge anzeigen", + "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen", "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", - "account.unblock": "Blockierung von @{name} aufheben", - "account.unblock_domain": "{domain} wieder anzeigen", + "account.unblock": "@{name} entblocken", + "account.unblock_domain": "Entblocken von {domain}", "account.unblock_short": "Blockierung aufheben", - "account.unendorse": "Nicht mehr im Profil anzeigen", + "account.unendorse": "Nicht im Profil hervorheben", "account.unfollow": "Entfolgen", "account.unmute": "Stummschaltung von @{name} aufheben", - "account.unmute_notifications": "Benachrichtigungen von @{name} einschalten", + "account.unmute_notifications": "Stummschaltung der Benachrichtigungen von @{name} aufheben", "account.unmute_short": "Stummschaltung aufheben", "account_note.placeholder": "Notiz durch Klicken hinzufügen", "admin.dashboard.daily_retention": "Benutzerverbleibrate nach Tag nach Anmeldung", "admin.dashboard.monthly_retention": "Benutzerverbleibrate nach Monat nach Anmeldung", "admin.dashboard.retention.average": "Durchschnitt", - "admin.dashboard.retention.cohort": "Monat der Anmeldung", + "admin.dashboard.retention.cohort": "Monat der Registrierung", "admin.dashboard.retention.cohort_size": "Neue Benutzer", "alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium} erneut.", "alert.rate_limited.title": "Anfragelimit überschritten", "alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.", - "alert.unexpected.title": "Hoppla!", + "alert.unexpected.title": "Ups!", "announcement.announcement": "Ankündigung", "attachments_list.unprocessed": "(ausstehend)", + "audio.hide": "Audio stummschalten", "autosuggest_hashtag.per_week": "{count} pro Woche", - "boost_modal.combo": "Drücke {combo}, um dieses Fenster zu überspringen", - "bundle_column_error.body": "Etwas ist beim Laden schiefgelaufen.", + "boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt", + "bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren", + "bundle_column_error.error.body": "Die angeforderte Seite konnte nicht dargestellt werden. Dies könnte auf einen Fehler in unserem Code oder auf ein Browser-Kompatibilitätsproblem zurückzuführen sein.", + "bundle_column_error.error.title": "Oh nein!", + "bundle_column_error.network.body": "Beim Versuch, diese Seite zu laden, ist ein Fehler aufgetreten. Dies könnte auf ein vorübergehendes Problem mit Ihrer Internetverbindung oder diesem Server zurückzuführen sein.", + "bundle_column_error.network.title": "Netzwerkfehler", "bundle_column_error.retry": "Erneut versuchen", - "bundle_column_error.title": "Netzwerkfehler", + "bundle_column_error.return": "Zurück zur Startseite", + "bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Bist du dir sicher, dass die URL in der Adressleiste korrekt ist?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Schließen", "bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.", "bundle_modal_error.retry": "Erneut versuchen", + "closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, kannst du ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.", + "closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenke, dass du kein extra Konto auf {domain} benötigst, um Mastodon nutzen zu können.", + "closed_registrations_modal.find_another_server": "Einen anderen Server auswählen", + "closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, das heißt unabhängig davon, wo du dein Konto erstellst, kannst du jedes Konto auf diesem Server folgen und mit dem interagieren. Du kannst auch deinen eigenen Server hosten!", + "closed_registrations_modal.title": "Bei Mastodon registrieren", + "column.about": "Über", "column.blocks": "Blockierte Profile", "column.bookmarks": "Lesezeichen", - "column.community": "Lokale Zeitleiste", - "column.direct": "Mensaxes directas", + "column.community": "Lokale Timeline", + "column.direct": "Direktnachrichten", "column.directory": "Profile durchsuchen", "column.domain_blocks": "Blockierte Domains", "column.favourites": "Favoriten", - "column.follow_requests": "Folgeanfragen", + "column.follow_requests": "Follower-Anfragen", "column.home": "Startseite", "column.lists": "Listen", "column.mutes": "Stummgeschaltete Profile", "column.notifications": "Mitteilungen", "column.pins": "Angeheftete Beiträge", - "column.public": "Föderierte Zeitleiste", + "column.public": "Föderierte Timeline", "column_back_button.label": "Zurück", "column_header.hide_settings": "Einstellungen verbergen", - "column_header.moveLeft_settings": "Spalte nach links verschieben", - "column_header.moveRight_settings": "Spalte nach rechts verschieben", + "column_header.moveLeft_settings": "Diese Spalte nach links verschieben", + "column_header.moveRight_settings": "Diese Spalte nach rechts verschieben", "column_header.pin": "Anheften", "column_header.show_settings": "Einstellungen anzeigen", "column_header.unpin": "Lösen", "column_subheading.settings": "Einstellungen", - "community.column_settings.local_only": "Nur lokal", - "community.column_settings.media_only": "Nur Medien", - "community.column_settings.remote_only": "Nur entfernt", - "compose.language.change": "Sprache ändern", - "compose.language.search": "Sprachen durchsuchen...", + "community.column_settings.local_only": "Nur lokale Instanz", + "community.column_settings.media_only": "Nur Beiträge mit angehängten Medien", + "community.column_settings.remote_only": "Nur andere Mastodon-Instanzen anzeigen", + "compose.language.change": "Sprache festlegen", + "compose.language.search": "Sprachen suchen …", "compose_form.direct_message_warning_learn_more": "Mehr erfahren", - "compose_form.encryption_warning": "Beiträge auf Mastodon sind nicht Ende-zu-Ende-verschlüsselt. Teile keine sensiblen Informationen über Mastodon.", - "compose_form.hashtag_warning": "Dieser Beitrag wird nicht durch Hashtags entdeckbar sein, weil er ungelistet ist. Nur öffentliche Beiträge tauchen in Hashtag-Zeitleisten auf.", + "compose_form.encryption_warning": "Beiträge von Mastodon sind nicht Ende-zu-Ende verschlüsselt. Teile keine senible Informationen über Mastodon.", + "compose_form.hashtag_warning": "Dieser Beitrag ist über Hashtags nicht zu finden, weil er nicht gelistet ist. Nur öffentliche Beiträge tauchen in den Hashtag-Timelines auf.", "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.", - "compose_form.lock_disclaimer.lock": "gesperrt", + "compose_form.lock_disclaimer.lock": "geschützt", "compose_form.placeholder": "Was gibt's Neues?", - "compose_form.poll.add_option": "Eine Wahl hinzufügen", + "compose_form.poll.add_option": "Auswahlfeld hinzufügen", "compose_form.poll.duration": "Umfragedauer", - "compose_form.poll.option_placeholder": "Wahl {number}", - "compose_form.poll.remove_option": "Wahl entfernen", - "compose_form.poll.switch_to_multiple": "Umfrage ändern, um mehrere Optionen zu erlauben", - "compose_form.poll.switch_to_single": "Umfrage ändern, um eine einzige Wahl zu erlauben", - "compose_form.publish": "Tröt", + "compose_form.poll.option_placeholder": "{number}. Auswahl", + "compose_form.poll.remove_option": "Auswahlfeld entfernen", + "compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben", + "compose_form.poll.switch_to_single": "Nur Einzelauswahl erlauben", + "compose_form.publish": "Veröffentlichen", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Änderungen speichern", - "compose_form.sensitive.hide": "Medien als NSFW markieren", - "compose_form.sensitive.marked": "Medien sind als NSFW markiert", - "compose_form.sensitive.unmarked": "Medien sind nicht als NSFW markiert", - "compose_form.spoiler.marked": "Text ist hinter einer Warnung versteckt", - "compose_form.spoiler.unmarked": "Text ist nicht versteckt", + "compose_form.sensitive.hide": "{count, plural, one {Mit einer Inhaltswarnung versehen} other {Mit einer Inhaltswarnung versehen}}", + "compose_form.sensitive.marked": "{count, plural, one {Medien-Datei ist mit einer Inhaltswarnung versehen} other {Medien-Dateien sind mit einer Inhaltswarnung versehen}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Medien-Datei ist nicht mit einer Inhaltswarnung versehen} other {Medien-Dateien sind nicht mit einer Inhaltswarnung versehen}}", + "compose_form.spoiler.marked": "Inhaltswarnung bzw. Triggerwarnung entfernen", + "compose_form.spoiler.unmarked": "Inhaltswarnung bzw. Triggerwarnung hinzufügen", "compose_form.spoiler_placeholder": "Inhaltswarnung", "confirmation_modal.cancel": "Abbrechen", "confirmations.block.block_and_report": "Blockieren und melden", "confirmations.block.confirm": "Blockieren", "confirmations.block.message": "Bist du dir sicher, dass du {name} blockieren möchtest?", + "confirmations.cancel_follow_request.confirm": "Anfrage zum Folgen zurückziehen", + "confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?", "confirmations.delete.confirm": "Löschen", "confirmations.delete.message": "Bist du dir sicher, dass du diesen Beitrag löschen möchtest?", "confirmations.delete_list.confirm": "Löschen", "confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?", "confirmations.discard_edit_media.confirm": "Verwerfen", "confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?", - "confirmations.domain_block.confirm": "Die ganze Domain blockieren", - "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Deine Folgenden von dieser Domain werden entfernt.", + "confirmations.domain_block.confirm": "Blocke die ganze Domain", + "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.", "confirmations.logout.confirm": "Abmelden", "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?", "confirmations.mute.confirm": "Stummschalten", @@ -142,52 +175,62 @@ "conversation.mark_as_read": "Als gelesen markieren", "conversation.open": "Unterhaltung anzeigen", "conversation.with": "Mit {names}", + "copypaste.copied": "In die Zwischenablage kopiert", + "copypaste.copy": "Kopieren", "directory.federated": "Aus dem Fediverse", - "directory.local": "Nur von {domain}", - "directory.new_arrivals": "Neue Benutzer", + "directory.local": "Nur von der Domain {domain}", + "directory.new_arrivals": "Neue Profile", "directory.recently_active": "Kürzlich aktiv", - "embed.instructions": "Du kannst diesen Beitrag auf deiner Webseite einbetten, indem du den folgenden Code einfügst.", - "embed.preview": "So wird es aussehen:", + "disabled_account_banner.account_settings": "Kontoeinstellungen", + "disabled_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert.", + "dismissable_banner.community_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen, deren Konten von {domain} gehostet werden.", + "dismissable_banner.dismiss": "Ablehnen", + "dismissable_banner.explore_links": "Diese Nachrichten werden gerade von Leuten auf diesem und anderen Servern des dezentralen Netzwerks besprochen.", + "dismissable_banner.explore_statuses": "Diese Beiträge von diesem und anderen Servern im dezentralen Netzwerk gewinnen gerade an Reichweite auf diesem Server.", + "dismissable_banner.explore_tags": "Diese Hashtags gewinnen gerade unter den Leuten auf diesem und anderen Servern des dezentralen Netzwerkes an Reichweite.", + "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen auf diesem und anderen Servern des dezentralen Netzwerks, die dieser Server kennt.", + "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.", + "embed.preview": "Vorschau:", "emoji_button.activity": "Aktivitäten", "emoji_button.clear": "Leeren", - "emoji_button.custom": "Eigene", + "emoji_button.custom": "Spezielle Emojis dieses Servers", "emoji_button.flags": "Flaggen", - "emoji_button.food": "Essen und Trinken", + "emoji_button.food": "Essen & Trinken", "emoji_button.label": "Emoji einfügen", "emoji_button.nature": "Natur", - "emoji_button.not_found": "Keine Emojis!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Keine passenden Emojis gefunden", "emoji_button.objects": "Gegenstände", "emoji_button.people": "Personen", - "emoji_button.recent": "Häufig benutzt", - "emoji_button.search": "Suchen…", + "emoji_button.recent": "Häufig benutzte Emojis", + "emoji_button.search": "Suchen …", "emoji_button.search_results": "Suchergebnisse", "emoji_button.symbols": "Symbole", - "emoji_button.travel": "Reisen und Orte", + "emoji_button.travel": "Reisen & Orte", "empty_column.account_suspended": "Konto gesperrt", - "empty_column.account_timeline": "Keine Beiträge!", - "empty_column.account_unavailable": "Konto nicht verfügbar", - "empty_column.blocks": "Du hast keine Profile blockiert.", + "empty_column.account_timeline": "Keine Beiträge vorhanden!", + "empty_column.account_unavailable": "Profil nicht verfügbar", + "empty_column.blocks": "Du hast bisher keine Profile blockiert.", "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.", - "empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!", + "empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!", "empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.", - "empty_column.domain_blocks": "Es sind noch keine Domains versteckt.", - "empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder!", - "empty_column.favourited_statuses": "Du hast noch keine favorisierten Tröts. Wenn du einen favorisierst, wird er hier erscheinen.", + "empty_column.domain_blocks": "Du hast noch keine Domains blockiert.", + "empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!", + "empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Wenn du einen favorisierst, wird er hier erscheinen.", "empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.", - "empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen nach Leuten zu suchen, die du vielleicht kennst oder du kannst angesagte Hashtags erkunden.", - "empty_column.follow_requests": "Du hast noch keine Folge-Anfragen. Sobald du eine erhältst, wird sie hier angezeigt.", + "empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen, nach Leuten zu suchen, die du vielleicht kennst, oder du kannst angesagte Hashtags erkunden.", + "empty_column.follow_requests": "Du hast noch keine Follower-Anfragen erhalten. Sobald du eine erhältst, wird sie hier angezeigt.", "empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.", - "empty_column.home": "Deine Startseite ist leer! Folge mehr Leuten, um sie zu füllen. {suggestions}", + "empty_column.home": "Die Timeline Deiner Startseite ist leer! Folge mehr Leuten, um sie zu füllen. {suggestions}", "empty_column.home.suggestions": "Ein paar Vorschläge ansehen", "empty_column.list": "Diese Liste ist derzeit leer. Wenn Konten auf dieser Liste neue Beiträge veröffentlichen werden sie hier erscheinen.", - "empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt.", + "empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt werden.", "empty_column.mutes": "Du hast keine Profile stummgeschaltet.", - "empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.", - "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen", - "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browsereinkompatibilität konnte diese Seite nicht korrekt angezeigt werden.", + "empty_column.notifications": "Du hast noch keine Mitteilungen. Sobald Du mit anderen Personen interagierst, wirst Du hier darüber benachrichtigt.", + "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen", + "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.", "error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.", - "error.unexpected_crash.next_steps": "Versuche die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.", - "error.unexpected_crash.next_steps_addons": "Versuche sie zu deaktivieren und lade dann die Seite neu. Wenn das Problem weiterhin besteht, solltest du Mastodon über einen anderen Browser oder eine native App nutzen.", + "error.unexpected_crash.next_steps": "Versuche, die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.", + "error.unexpected_crash.next_steps_addons": "Versuche, sie zu deaktivieren, und lade dann die Seite neu. Wenn das Problem weiterhin besteht, solltest du Mastodon über einen anderen Browser oder eine native App nutzen.", "errors.unexpected_crash.copy_stacktrace": "Fehlerlog in die Zwischenablage kopieren", "errors.unexpected_crash.report_issue": "Problem melden", "explore.search_results": "Suchergebnisse", @@ -196,70 +239,100 @@ "explore.trending_links": "Nachrichten", "explore.trending_statuses": "Beiträge", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Diese Filterkategorie gilt nicht für den Kontext, in welchem du auf diesen Beitrag zugegriffen hast. Wenn der Beitrag auch in diesem Kontext gefiltert werden soll, musst du den Filter bearbeiten.", + "filter_modal.added.context_mismatch_title": "Kontext stimmt nicht überein!", + "filter_modal.added.expired_explanation": "Diese Filterkategrie ist abgelaufen, du musst das Ablaufdatum für diese Kategorie ändern.", + "filter_modal.added.expired_title": "Abgelaufener Filter!", + "filter_modal.added.review_and_configure": "Um diese Filterkategorie zu überprüfen und weiter zu konfigurieren, gehe zu {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filtereinstellungen", + "filter_modal.added.settings_link": "Einstellungsseite", + "filter_modal.added.short_explanation": "Dieser Post wurde folgender Filterkategorie hinzugefügt: {title}.", + "filter_modal.added.title": "Filter hinzugefügt!", + "filter_modal.select_filter.context_mismatch": "gilt nicht für diesen Kontext", + "filter_modal.select_filter.expired": "abgelaufen", + "filter_modal.select_filter.prompt_new": "Neue Kategorie: {name}", + "filter_modal.select_filter.search": "Suchen oder erstellen", + "filter_modal.select_filter.subtitle": "Eine existierende Kategorie benutzen oder eine erstellen", + "filter_modal.select_filter.title": "Diesen Beitrag filtern", + "filter_modal.title.status": "Einen Beitrag filtern", "follow_recommendations.done": "Fertig", - "follow_recommendations.heading": "Folge Leuten, von denen du Beiträge sehen möchtest! Hier sind einige Vorschläge.", + "follow_recommendations.heading": "Folge Leuten, deren Beiträge du sehen möchtest! Hier sind einige Vorschläge.", "follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!", "follow_request.authorize": "Erlauben", "follow_request.reject": "Ablehnen", - "follow_requests.unlocked_explanation": "Auch wenn dein Konto nicht gesperrt ist, haben die Moderator_innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.", + "follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.", + "footer.about": "Über", + "footer.directory": "Profilverzeichnis", + "footer.get_app": "App herunterladen", + "footer.invite": "Leute einladen", + "footer.keyboard_shortcuts": "Tastenkombinationen", + "footer.privacy_policy": "Datenschutzerklärung", + "footer.source_code": "Quellcode anzeigen", "generic.saved": "Gespeichert", - "getting_started.developers": "Entwickler", - "getting_started.directory": "Profilverzeichnis", - "getting_started.documentation": "Dokumentation", "getting_started.heading": "Erste Schritte", - "getting_started.invite": "Leute einladen", - "getting_started.open_source_notice": "Mastodon ist quelloffene Software. Du kannst auf GitHub unter {github} dazu beitragen oder Probleme melden.", - "getting_started.security": "Konto & Sicherheit", - "getting_started.terms": "Nutzungsbedingungen", "hashtag.column_header.tag_mode.all": "und {additional}", "hashtag.column_header.tag_mode.any": "oder {additional}", "hashtag.column_header.tag_mode.none": "ohne {additional}", "hashtag.column_settings.select.no_options_message": "Keine Vorschläge gefunden", "hashtag.column_settings.select.placeholder": "Hashtags eintragen…", "hashtag.column_settings.tag_mode.all": "All diese", - "hashtag.column_settings.tag_mode.any": "Eins von diesen", - "hashtag.column_settings.tag_mode.none": "Keins von diesen", + "hashtag.column_settings.tag_mode.any": "Eines von diesen", + "hashtag.column_settings.tag_mode.none": "Keines von diesen", "hashtag.column_settings.tag_toggle": "Zusätzliche Hashtags für diese Spalte einfügen", + "hashtag.follow": "Hashtag folgen", + "hashtag.unfollow": "Hashtag entfolgen", "home.column_settings.basic": "Einfach", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", - "home.hide_announcements": "Verstecke Ankündigungen", - "home.show_announcements": "Zeige Ankündigungen", + "home.hide_announcements": "Ankündigungen verbergen", + "home.show_announcements": "Ankündigungen anzeigen", + "interaction_modal.description.favourite": "Mit einem Account auf Mastodon kannst du diesen Beitrag favorisieren, um deine Wertschätzung auszudrücken, und ihn für einen späteren Zeitpunkt speichern.", + "interaction_modal.description.follow": "Mit einem Konto auf Mastodon kannst du {name} folgen, um seine Beiträge in deinem Home Feed zu erhalten.", + "interaction_modal.description.reblog": "Mit einem Mastodon-Account kannst du die Reichweite dieses Beitrags erhöhen, in dem du ihn mit deinen eigenen Followern teilst.", + "interaction_modal.description.reply": "Mit einem Account auf Mastodon kannst du auf diesen Beitrag antworten.", + "interaction_modal.on_another_server": "Auf einem anderen Server", + "interaction_modal.on_this_server": "Auf diesem Server", + "interaction_modal.other_server_instructions": "Kopiere diese URL und füge sie in das Suchfeld deiner bevorzugten Mastodon-App oder im Webinterface deiner Mastodon-Instanz ein.", + "interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.", + "interaction_modal.title.favourite": "Lieblingsbeitrag von {name}", + "interaction_modal.title.follow": "Folge {name}", + "interaction_modal.title.reblog": "Beitrag von {name} teilen", + "interaction_modal.title.reply": "Antworte auf den Post von {name}", "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}", "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}", "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}", "keyboard_shortcuts.back": "Zurück navigieren", "keyboard_shortcuts.blocked": "Liste blockierter Profile öffnen", - "keyboard_shortcuts.boost": "teilen", + "keyboard_shortcuts.boost": "Beitrag teilen", "keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren", "keyboard_shortcuts.compose": "fokussiere das Eingabefeld", "keyboard_shortcuts.description": "Beschreibung", - "keyboard_shortcuts.direct": "um Direktnachrichtenspalte zu öffnen", - "keyboard_shortcuts.down": "sich in der Liste hinunter bewegen", + "keyboard_shortcuts.direct": "um die Spalte mit den Direktnachrichten zu öffnen", + "keyboard_shortcuts.down": "In der Liste nach unten bewegen", "keyboard_shortcuts.enter": "Beitrag öffnen", - "keyboard_shortcuts.favourite": "um zu favorisieren", + "keyboard_shortcuts.favourite": "favorisieren", "keyboard_shortcuts.favourites": "Favoriten-Liste öffnen", - "keyboard_shortcuts.federated": "Föderierte Zeitleiste öffnen", + "keyboard_shortcuts.federated": "Föderierte Timeline öffnen", "keyboard_shortcuts.heading": "Tastenkombinationen", "keyboard_shortcuts.home": "Startseite öffnen", "keyboard_shortcuts.hotkey": "Tastenkürzel", "keyboard_shortcuts.legend": "diese Übersicht anzeigen", - "keyboard_shortcuts.local": "Lokale Zeitleiste öffnen", - "keyboard_shortcuts.mention": "um Autor_in zu erwähnen", + "keyboard_shortcuts.local": "Lokale Timeline öffnen", + "keyboard_shortcuts.mention": "Profil erwähnen", "keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen", "keyboard_shortcuts.my_profile": "Dein Profil öffnen", "keyboard_shortcuts.notifications": "Benachrichtigungsspalte öffnen", - "keyboard_shortcuts.open_media": "um Medien zu öffnen", + "keyboard_shortcuts.open_media": "Medien-Datei öffnen", "keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen", "keyboard_shortcuts.profile": "Profil des Autors öffnen", "keyboard_shortcuts.reply": "antworten", - "keyboard_shortcuts.requests": "Liste der Folge-Anfragen öffnen", + "keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen", "keyboard_shortcuts.search": "Suche fokussieren", - "keyboard_shortcuts.spoilers": "um CW-Feld anzuzeigen/auszublenden", + "keyboard_shortcuts.spoilers": "Feld für Inhaltswarnung bzw. Triggerwarnung anzeigen/ausblenden", "keyboard_shortcuts.start": "\"Erste Schritte\"-Spalte öffnen", - "keyboard_shortcuts.toggle_hidden": "Text hinter einer Inhaltswarnung verstecken/anzeigen", - "keyboard_shortcuts.toggle_sensitivity": "Medien hinter einer Inhaltswarnung verstecken/anzeigen", - "keyboard_shortcuts.toot": "einen neuen Beitrag beginnen", + "keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung bzw. Triggerwarnung verstecken/anzeigen", + "keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/verbergen", + "keyboard_shortcuts.toot": "Neuen Beitrag erstellen", "keyboard_shortcuts.unfocus": "Textfeld/die Suche nicht mehr fokussieren", "keyboard_shortcuts.up": "sich in der Liste hinauf bewegen", "lightbox.close": "Schließen", @@ -268,7 +341,7 @@ "lightbox.next": "Weiter", "lightbox.previous": "Zurück", "limited_account_hint.action": "Profil trotzdem anzeigen", - "limited_account_hint.title": "Dieses Profil wurde von den Moderatoren deines Servers versteckt.", + "limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen der Mastodon-Instanz {domain} ausgeblendet.", "lists.account.add": "Zur Liste hinzufügen", "lists.account.remove": "Von der Liste entfernen", "lists.delete": "Liste löschen", @@ -280,65 +353,68 @@ "lists.replies_policy.list": "Mitglieder der Liste", "lists.replies_policy.none": "Niemand", "lists.replies_policy.title": "Antworten anzeigen für:", - "lists.search": "Suche nach Leuten denen du folgst", + "lists.search": "Suche nach Leuten, denen du folgst", "lists.subheading": "Deine Listen", "load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}", "loading_indicator.label": "Wird geladen …", "media_gallery.toggle_visible": "{number, plural, one {Bild verbergen} other {Bilder verbergen}}", "missing_indicator.label": "Nicht gefunden", "missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden", + "moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.", "mute_modal.duration": "Dauer", - "mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?", + "mute_modal.hide_notifications": "Benachrichtigungen von diesem Profil verbergen?", "mute_modal.indefinite": "Unbestimmt", - "navigation_bar.apps": "Mobile Apps", + "navigation_bar.about": "Über", "navigation_bar.blocks": "Blockierte Profile", "navigation_bar.bookmarks": "Lesezeichen", - "navigation_bar.community_timeline": "Lokale Zeitleiste", + "navigation_bar.community_timeline": "Lokale Timeline", "navigation_bar.compose": "Neuen Beitrag verfassen", "navigation_bar.direct": "Direktnachrichten", "navigation_bar.discover": "Entdecken", - "navigation_bar.domain_blocks": "Versteckte Domains", + "navigation_bar.domain_blocks": "Blockierte Domains", "navigation_bar.edit_profile": "Profil bearbeiten", "navigation_bar.explore": "Entdecken", "navigation_bar.favourites": "Favoriten", - "navigation_bar.filters": "Stummgeschaltene Wörter", - "navigation_bar.follow_requests": "Folgeanfragen", - "navigation_bar.follows_and_followers": "Folgende und Gefolgte", - "navigation_bar.info": "Über diesen Server", - "navigation_bar.keyboard_shortcuts": "Tastenkombinationen", + "navigation_bar.filters": "Stummgeschaltete Wörter", + "navigation_bar.follow_requests": "Follower-Anfragen", + "navigation_bar.follows_and_followers": "Folge ich und Follower", "navigation_bar.lists": "Listen", "navigation_bar.logout": "Abmelden", "navigation_bar.mutes": "Stummgeschaltete Profile", "navigation_bar.personal": "Persönlich", "navigation_bar.pins": "Angeheftete Beiträge", "navigation_bar.preferences": "Einstellungen", - "navigation_bar.public_timeline": "Föderierte Zeitleiste", + "navigation_bar.public_timeline": "Föderierte Timeline", + "navigation_bar.search": "Suche", "navigation_bar.security": "Sicherheit", + "not_signed_in_indicator.not_signed_in": "Sie müssen sich anmelden, um diese Funktion zu nutzen.", + "notification.admin.report": "{target} wurde von {name} gemeldet", "notification.admin.sign_up": "{name} hat sich registriert", "notification.favourite": "{name} hat deinen Beitrag favorisiert", - "notification.follow": "{name} folgt dir", + "notification.follow": "{name} folgt dir jetzt", "notification.follow_request": "{name} möchte dir folgen", "notification.mention": "{name} hat dich erwähnt", "notification.own_poll": "Deine Umfrage ist beendet", - "notification.poll": "Eine Umfrage in der du abgestimmt hast ist vorbei", + "notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet", "notification.reblog": "{name} hat deinen Beitrag geteilt", "notification.status": "{name} hat gerade etwas gepostet", "notification.update": "{name} bearbeitete einen Beitrag", "notifications.clear": "Mitteilungen löschen", "notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?", + "notifications.column_settings.admin.report": "Neue Meldungen:", "notifications.column_settings.admin.sign_up": "Neue Anmeldungen:", "notifications.column_settings.alert": "Desktop-Benachrichtigungen", "notifications.column_settings.favourite": "Favorisierungen:", "notifications.column_settings.filter_bar.advanced": "Zeige alle Kategorien an", "notifications.column_settings.filter_bar.category": "Schnellfilterleiste", "notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen", - "notifications.column_settings.follow": "Neue Folgende:", - "notifications.column_settings.follow_request": "Neue Folgeanfragen:", + "notifications.column_settings.follow": "Neue Follower:", + "notifications.column_settings.follow_request": "Neue Follower-Anfragen:", "notifications.column_settings.mention": "Erwähnungen:", "notifications.column_settings.poll": "Ergebnisse von Umfragen:", "notifications.column_settings.push": "Push-Benachrichtigungen", "notifications.column_settings.reblog": "Geteilte Beiträge:", - "notifications.column_settings.show": "In der Spalte anzeigen", + "notifications.column_settings.show": "In der Timeline „Mitteilungen“ anzeigen", "notifications.column_settings.sound": "Ton abspielen", "notifications.column_settings.status": "Neue Beiträge:", "notifications.column_settings.unread_notifications.category": "Ungelesene Benachrichtigungen", @@ -347,13 +423,13 @@ "notifications.filter.all": "Alle", "notifications.filter.boosts": "Geteilte Beiträge", "notifications.filter.favourites": "Favorisierungen", - "notifications.filter.follows": "Folgt", - "notifications.filter.mentions": "Erwähnungen", - "notifications.filter.polls": "Ergebnisse der Umfrage", - "notifications.filter.statuses": "Updates von Personen, denen du folgst", - "notifications.grant_permission": "Zugriff gewährt.", + "notifications.filter.follows": "Neue Follower", + "notifications.filter.mentions": "Erwähnungen und Antworten", + "notifications.filter.polls": "Umfrageergebnisse", + "notifications.filter.statuses": "Beiträge von Personen, denen du folgst", + "notifications.grant_permission": "Berechtigung erteilen.", "notifications.group": "{count} Benachrichtigungen", - "notifications.mark_as_read": "Alle Benachrichtigungen als gelesen markieren", + "notifications.mark_as_read": "Alles als gelesen markieren", "notifications.permission_denied": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Berechtigung verweigert wurde.", "notifications.permission_denied_alert": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Browser-Berechtigung zuvor verweigert wurde", "notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.", @@ -361,28 +437,30 @@ "notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.", "notifications_permission_banner.title": "Verpasse nie etwas", "picture_in_picture.restore": "Zurücksetzen", - "poll.closed": "Geschlossen", + "poll.closed": "Beendet", "poll.refresh": "Aktualisieren", "poll.total_people": "{count, plural, one {# Person} other {# Personen}}", "poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}", "poll.vote": "Abstimmen", - "poll.voted": "Du hast dafür gestimmt", + "poll.voted": "Du hast für diese Auswahl gestimmt", "poll.votes": "{votes, plural, one {# Stimme} other {# Stimmen}}", "poll_button.add_poll": "Eine Umfrage erstellen", "poll_button.remove_poll": "Umfrage entfernen", "privacy.change": "Sichtbarkeit des Beitrags anpassen", - "privacy.direct.long": "Wird an erwähnte Profile gesendet", - "privacy.direct.short": "Nur erwähnte Personen", - "privacy.private.long": "Nur für Folgende sichtbar", + "privacy.direct.long": "Nur für die genannten Profile sichtbar", + "privacy.direct.short": "Nur erwähnte Profile", + "privacy.private.long": "Nur für deine Follower sichtbar", "privacy.private.short": "Nur Follower", "privacy.public.long": "Für alle sichtbar", "privacy.public.short": "Öffentlich", - "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen", + "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion", "privacy.unlisted.short": "Nicht gelistet", + "privacy_policy.last_updated": "Letztes Update am {date}", + "privacy_policy.title": "Datenschutzbestimmungen", "refresh": "Aktualisieren", "regeneration_indicator.label": "Laden…", "regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!", - "relative_time.days": "{number}d", + "relative_time.days": "{number}T", "relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}", "relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}", "relative_time.full.just_now": "gerade eben", @@ -408,12 +486,12 @@ "report.forward": "An {target} weiterleiten", "report.forward_hint": "Dieses Konto gehört zu einem anderen Server. Soll eine anonymisierte Kopie der Meldung auch dorthin geschickt werden?", "report.mute": "Stummschalten", - "report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immernoch folgen und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stumm geschaltet hast.", + "report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.", "report.next": "Weiter", "report.placeholder": "Zusätzliche Kommentare", "report.reasons.dislike": "Das gefällt mir nicht", "report.reasons.dislike_description": "Es ist etwas, das du nicht sehen willst", - "report.reasons.other": "Da ist was anderes", + "report.reasons.other": "Es geht um etwas anderes", "report.reasons.other_description": "Das Problem passt nicht in die Kategorien", "report.reasons.spam": "Das ist Spam", "report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten", @@ -425,42 +503,60 @@ "report.statuses.title": "Gibt es Beiträge, die diesen Bericht unterstützen?", "report.submit": "Absenden", "report.target": "{target} melden", - "report.thanks.take_action": "Das sind deine Möglichkeiten, zu bestimmen, was du auf Mastodon sehen möchtest:", + "report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:", "report.thanks.take_action_actionable": "Während wir dies überprüfen, kannst du gegen @{name} vorgehen:", "report.thanks.title": "Möchtest du das nicht sehen?", "report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.", "report.unfollow": "@{name} entfolgen", "report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.", + "report_notification.attached_statuses": "{count, plural, one {{count} angehangener Beitrag} other {{count} angehängte Beiträge}}", + "report_notification.categories.other": "Nicht Aufgelistet", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Regelbruch", + "report_notification.open": "Meldung öffnen", "search.placeholder": "Suche", - "search_popout.search_format": "Fortgeschrittenes Suchformat", - "search_popout.tips.full_text": "Einfache Texteingabe gibt Beiträge, die du geschrieben, favorisiert und geteilt hast zurück. Außerdem auch Beiträge in denen du erwähnt wurdest, aber auch passende Nutzernamen, Anzeigenamen oder Hashtags.", + "search.search_or_paste": "Suchen oder URL einfügen", + "search_popout.search_format": "Erweiterte Suche", + "search_popout.tips.full_text": "Einfache Texteingabe gibt Beiträge, die du geschrieben, favorisiert und geteilt hast, zurück; außerdem auch Beiträge, in denen du erwähnt wurdest, aber auch passende Nutzernamen, Anzeigenamen oder Hashtags.", "search_popout.tips.hashtag": "Hashtag", - "search_popout.tips.status": "Tröt", + "search_popout.tips.status": "Beitrag", "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Benutzernamen und Hashtags zurück", - "search_popout.tips.user": "Nutzer", - "search_results.accounts": "Personen", + "search_popout.tips.user": "Profil", + "search_results.accounts": "Profile", "search_results.all": "Alle", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden", "search_results.statuses": "Beiträge", "search_results.statuses_fts_disabled": "Die Suche für Beiträge nach ihrem Inhalt ist auf diesem Mastodon-Server deaktiviert.", + "search_results.title": "Suchergebnisse für {q}", "search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}", - "status.admin_account": "Öffne Moderationsoberfläche für @{name}", - "status.admin_status": "Öffne Beitrag in der Moderationsoberfläche", - "status.block": "Blockiere @{name}", - "status.bookmark": "Lesezeichen", - "status.cancel_reblog_private": "Nicht mehr teilen", + "server_banner.about_active_users": "Personen, die diesen Server in den vergangenen 30 Tagen genutzt haben (monatlich aktive Benutzer*innen)", + "server_banner.active_users": "aktive Profile", + "server_banner.administered_by": "Verwaltet von:", + "server_banner.introduction": "{domain} ist Teil des dezentralen sozialen Netzwerks, das von {mastodon} betrieben wird.", + "server_banner.learn_more": "Mehr erfahren", + "server_banner.server_stats": "Serverstatistiken:", + "sign_in_banner.create_account": "Konto erstellen", + "sign_in_banner.sign_in": "Einloggen", + "sign_in_banner.text": "Melden Sie sich an, um Profilen oder Hashtags zu folgen, Favoriten, Teilen und Antworten auf Beiträge oder interagieren Sie von Ihrem Konto auf einem anderen Server.", + "status.admin_account": "Moderationsoberfläche für @{name} öffnen", + "status.admin_status": "Diesen Beitrag in der Moderationsoberfläche öffnen", + "status.block": "@{name} blockieren", + "status.bookmark": "Lesezeichen setzen", + "status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen", "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden", - "status.copy": "Kopiere Link zum Beitrag", - "status.delete": "Löschen", - "status.detailed_status": "Detaillierte Ansicht der Konversation", - "status.direct": "Direktnachricht @{name}", + "status.copy": "Link zum Beitrag kopieren", + "status.delete": "Beitrag löschen", + "status.detailed_status": "Detaillierte Ansicht der Unterhaltung", + "status.direct": "Direktnachricht an @{name}", "status.edit": "Bearbeiten", "status.edited": "Bearbeitet {date}", "status.edited_x_times": "{count, plural, one {{count} mal} other {{count} mal}} bearbeitet", - "status.embed": "Einbetten", + "status.embed": "Beitrag per iFrame einbetten", "status.favourite": "Favorisieren", + "status.filter": "Diesen Beitrag filtern", "status.filtered": "Gefiltert", + "status.hide": "Beitrag verbergen", "status.history.created": "{name} erstellte {date}", "status.history.edited": "{name} bearbeitete {date}", "status.load_more": "Weitere laden", @@ -468,37 +564,43 @@ "status.mention": "@{name} erwähnen", "status.more": "Mehr", "status.mute": "@{name} stummschalten", - "status.mute_conversation": "Konversation stummschalten", + "status.mute_conversation": "Unterhaltung stummschalten", "status.open": "Diesen Beitrag öffnen", "status.pin": "Im Profil anheften", "status.pinned": "Angehefteter Beitrag", - "status.read_more": "Mehr lesen", + "status.read_more": "Gesamten Beitrag anschauen", "status.reblog": "Teilen", "status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen", "status.reblogged_by": "{name} teilte", - "status.reblogs.empty": "Diesen Beitrag hat noch niemand geteilt. Sobald es jemand tut, wird diese Person hier angezeigt.", + "status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird dieser Account hier angezeigt.", "status.redraft": "Löschen und neu erstellen", "status.remove_bookmark": "Lesezeichen entfernen", + "status.replied_to": "Antwortete {name}", "status.reply": "Antworten", "status.replyAll": "Allen antworten", "status.report": "@{name} melden", - "status.sensitive_warning": "NSFW", + "status.sensitive_warning": "Inhaltswarnung", "status.share": "Teilen", + "status.show_filter_reason": "Trotzdem anzeigen", "status.show_less": "Weniger anzeigen", "status.show_less_all": "Alle Inhaltswarnungen zuklappen", "status.show_more": "Mehr anzeigen", "status.show_more_all": "Alle Inhaltswarnungen aufklappen", - "status.show_thread": "Zeige Konversation", + "status.show_original": "Original anzeigen", + "status.translate": "Übersetzen", + "status.translated_from_with": "Aus {lang} mittels {provider} übersetzt", "status.uncached_media_warning": "Nicht verfügbar", - "status.unmute_conversation": "Stummschaltung von Konversation aufheben", + "status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben", "status.unpin": "Vom Profil lösen", + "subscribed_languages.lead": "Nach der Änderung werden nur noch Beiträge in den ausgewählten Sprachen in den Timelines deiner Startseite und deiner Listen angezeigt. Wähle keine Sprache aus, um alle Beiträge zu sehen.", + "subscribed_languages.save": "Änderungen speichern", + "subscribed_languages.target": "Abonnierte Sprachen für {target} ändern", "suggestions.dismiss": "Empfehlung ausblenden", "suggestions.header": "Du bist vielleicht interessiert an…", - "tabs_bar.federated_timeline": "Föderation", + "tabs_bar.federated_timeline": "Föderierte Timeline", "tabs_bar.home": "Startseite", - "tabs_bar.local_timeline": "Lokal", + "tabs_bar.local_timeline": "Lokale Timeline", "tabs_bar.notifications": "Mitteilungen", - "tabs_bar.search": "Suche", "time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} verbleibend", "time_remaining.hours": "{number, plural, one {# Stunde} other {# Stunden}} verbleibend", "time_remaining.minutes": "{number, plural, one {# Minute} other {# Minuten}} verbleibend", @@ -506,9 +608,9 @@ "time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend", "timeline_hint.remote_resource_not_displayed": "{resource} von anderen Servern werden nicht angezeigt.", "timeline_hint.resources.followers": "Follower", - "timeline_hint.resources.follows": "Folgt", + "timeline_hint.resources.follows": "Folge ich", "timeline_hint.resources.statuses": "Ältere Beiträge", - "trends.counter_by_accounts": "{count, plural, one {{counter} Person redet darüber} other {{counter} Personen reden darüber}}", + "trends.counter_by_accounts": "{count, plural, one {{count} Person} other {{count} Personen}} {days, plural, one {am vergangenen Tag} other {in den vergangenen {days} Tagen}}", "trends.trending_now": "In den Trends", "ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.", "units.short.billion": "{count}B", @@ -519,7 +621,7 @@ "upload_error.limit": "Dateiupload-Limit erreicht.", "upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.", "upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen", - "upload_form.description": "Für Menschen mit Sehbehinderung beschreiben", + "upload_form.description": "Bildbeschreibung für blinde und sehbehinderte Menschen", "upload_form.description_missing": "Keine Beschreibung hinzugefügt", "upload_form.edit": "Bearbeiten", "upload_form.thumbnail": "Miniaturansicht ändern", @@ -532,10 +634,11 @@ "upload_modal.description_placeholder": "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich", "upload_modal.detect_text": "Text aus Bild erkennen", "upload_modal.edit_media": "Medien bearbeiten", - "upload_modal.hint": "Klicke oder ziehe den Kreis auf die Vorschau, um den Brennpunkt auszuwählen, der immer auf allen Vorschaubilder angezeigt wird.", + "upload_modal.hint": "Ziehe den Kreis auf die Stelle Deines Bildes, die bei Vorschaugrafiken in der Mitte stehen soll.", "upload_modal.preparing_ocr": "Vorbereitung von OCR…", "upload_modal.preview_label": "Vorschau ({ratio})", "upload_progress.label": "Wird hochgeladen …", + "upload_progress.processing": "Wird verarbeitet…", "video.close": "Video schließen", "video.download": "Datei herunterladen", "video.exit_fullscreen": "Vollbild verlassen", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index a1eda98e179c22..35e4a423d34dcc 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -228,6 +228,15 @@ ], "path": "app/javascript/mastodon/components/common_counter.json" }, + { + "descriptors": [ + { + "defaultMessage": "Dismiss", + "id": "dismissable_banner.dismiss" + } + ], + "path": "app/javascript/mastodon/components/dismissable_banner.json" + }, { "descriptors": [ { @@ -290,7 +299,7 @@ { "descriptors": [ { - "defaultMessage": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "defaultMessage": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "id": "trends.counter_by_accounts" } ], @@ -357,6 +366,15 @@ ], "path": "app/javascript/mastodon/components/missing_indicator.json" }, + { + "descriptors": [ + { + "defaultMessage": "You need to sign in to access this resource.", + "id": "not_signed_in_indicator.not_signed_in" + } + ], + "path": "app/javascript/mastodon/components/not_signed_in_indicator.json" + }, { "descriptors": [ { @@ -481,6 +499,35 @@ ], "path": "app/javascript/mastodon/components/relative_timestamp.json" }, + { + "descriptors": [ + { + "defaultMessage": "People using this server during the last 30 days (Monthly Active Users)", + "id": "server_banner.about_active_users" + }, + { + "defaultMessage": "{domain} is part of the decentralized social network powered by {mastodon}.", + "id": "server_banner.introduction" + }, + { + "defaultMessage": "Administered by:", + "id": "server_banner.administered_by" + }, + { + "defaultMessage": "Server stats:", + "id": "server_banner.server_stats" + }, + { + "defaultMessage": "active users", + "id": "server_banner.active_users" + }, + { + "defaultMessage": "Learn more", + "id": "server_banner.learn_more" + } + ], + "path": "app/javascript/mastodon/components/server_banner.json" + }, { "descriptors": [ { @@ -612,6 +659,10 @@ "defaultMessage": "Copy link to status", "id": "status.copy" }, + { + "defaultMessage": "Hide toot", + "id": "status.hide" + }, { "defaultMessage": "Block domain {domain}", "id": "account.block_domain" @@ -627,6 +678,14 @@ { "defaultMessage": "Unblock @{name}", "id": "account.unblock" + }, + { + "defaultMessage": "Filter this post", + "id": "status.filter" + }, + { + "defaultMessage": "Open original page", + "id": "account.open_original_page" } ], "path": "app/javascript/mastodon/components/status_action_bar.json" @@ -634,8 +693,16 @@ { "descriptors": [ { - "defaultMessage": "Show thread", - "id": "status.show_thread" + "defaultMessage": "Translated from {lang} using {provider}", + "id": "status.translated_from_with" + }, + { + "defaultMessage": "Show original", + "id": "status.show_original" + }, + { + "defaultMessage": "Translate", + "id": "status.translate" }, { "defaultMessage": "Read more", @@ -678,6 +745,10 @@ "defaultMessage": "Filtered", "id": "status.filtered" }, + { + "defaultMessage": "Show anyway", + "id": "status.show_filter_reason" + }, { "defaultMessage": "Pinned post", "id": "status.pinned" @@ -685,6 +756,10 @@ { "defaultMessage": "{name} boosted", "id": "status.reblogged_by" + }, + { + "defaultMessage": "Replied to {name}", + "id": "status.replied_to" } ], "path": "app/javascript/mastodon/components/status.json" @@ -765,6 +840,67 @@ ], "path": "app/javascript/mastodon/containers/status_container.json" }, + { + "descriptors": [ + { + "defaultMessage": "About", + "id": "column.about" + }, + { + "defaultMessage": "Server rules", + "id": "about.rules" + }, + { + "defaultMessage": "Moderated servers", + "id": "about.blocks" + }, + { + "defaultMessage": "Limited", + "id": "about.domain_blocks.silenced.title" + }, + { + "defaultMessage": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "id": "about.domain_blocks.silenced.explanation" + }, + { + "defaultMessage": "Suspended", + "id": "about.domain_blocks.suspended.title" + }, + { + "defaultMessage": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "id": "about.domain_blocks.suspended.explanation" + }, + { + "defaultMessage": "Decentralized social media powered by {mastodon}", + "id": "about.powered_by" + }, + { + "defaultMessage": "Administered by:", + "id": "server_banner.administered_by" + }, + { + "defaultMessage": "Contact:", + "id": "about.contact" + }, + { + "defaultMessage": "This information has not been made available on this server.", + "id": "about.not_available" + }, + { + "defaultMessage": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "id": "about.domain_blocks.preamble" + }, + { + "defaultMessage": "Reason not available", + "id": "about.domain_blocks.no_reason_available" + }, + { + "defaultMessage": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "id": "about.disclaimer" + } + ], + "path": "app/javascript/mastodon/features/about/index.json" + }, { "descriptors": [ { @@ -798,7 +934,7 @@ { "descriptors": [ { - "defaultMessage": "This profile has been hidden by the moderators of your server.", + "defaultMessage": "This profile has been hidden by the moderators of {domain}.", "id": "limited_account_hint.title" }, { @@ -811,14 +947,22 @@ { "descriptors": [ { - "defaultMessage": "{name} has moved to:", + "defaultMessage": "{name} has indicated that their new account is now:", "id": "account.moved_to" + }, + { + "defaultMessage": "Go to profile", + "id": "account.go_to_profile" } ], "path": "app/javascript/mastodon/features/account_timeline/components/moved_note.json" }, { "descriptors": [ + { + "defaultMessage": "Withdraw request", + "id": "confirmations.cancel_follow_request.confirm" + }, { "defaultMessage": "Unfollow", "id": "confirmations.unfollow.confirm" @@ -831,6 +975,10 @@ "defaultMessage": "Are you sure you want to unfollow {name}?", "id": "confirmations.unfollow.message" }, + { + "defaultMessage": "Are you sure you want to withdraw your request to follow {name}?", + "id": "confirmations.cancel_follow_request.message" + }, { "defaultMessage": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", "id": "confirmations.domain_block.message" @@ -876,6 +1024,23 @@ ], "path": "app/javascript/mastodon/features/account/components/account_note.json" }, + { + "descriptors": [ + { + "defaultMessage": "Last post on {date}", + "id": "account.featured_tags.last_status_at" + }, + { + "defaultMessage": "No posts", + "id": "account.featured_tags.last_status_never" + }, + { + "defaultMessage": "{name}'s featured hashtags", + "id": "account.featured_tags.title" + } + ], + "path": "app/javascript/mastodon/features/account/components/featured_tags.json" + }, { "descriptors": [ { @@ -887,7 +1052,7 @@ "id": "account.follow" }, { - "defaultMessage": "Cancel follow request", + "defaultMessage": "Withdraw follow request", "id": "account.cancel_follow_request" }, { @@ -1014,6 +1179,14 @@ "defaultMessage": "Open moderation interface for @{name}", "id": "status.admin_account" }, + { + "defaultMessage": "Change subscribed languages", + "id": "account.languages" + }, + { + "defaultMessage": "Open original page", + "id": "account.open_original_page" + }, { "defaultMessage": "Follows you", "id": "account.follows_you" @@ -1039,8 +1212,8 @@ "id": "account.badges.group" }, { - "defaultMessage": "Joined {date}", - "id": "account.joined" + "defaultMessage": "Joined", + "id": "account.joined_short" } ], "path": "app/javascript/mastodon/features/account/components/header.json" @@ -1066,6 +1239,18 @@ { "defaultMessage": "Download file", "id": "video.download" + }, + { + "defaultMessage": "Hide audio", + "id": "audio.hide" + }, + { + "defaultMessage": "Sensitive content", + "id": "status.sensitive_warning" + }, + { + "defaultMessage": "Media hidden", + "id": "status.media_hidden" } ], "path": "app/javascript/mastodon/features/audio/index.json" @@ -1096,6 +1281,39 @@ ], "path": "app/javascript/mastodon/features/bookmarked_statuses/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "id": "closed_registrations_modal.description" + }, + { + "defaultMessage": "Signing up on Mastodon", + "id": "closed_registrations_modal.title" + }, + { + "defaultMessage": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "id": "closed_registrations_modal.preamble" + }, + { + "defaultMessage": "On this server", + "id": "interaction_modal.on_this_server" + }, + { + "defaultMessage": "On a different server", + "id": "interaction_modal.on_another_server" + }, + { + "defaultMessage": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "id": "closed_registrations.other_server_instructions" + }, + { + "defaultMessage": "Find another server", + "id": "closed_registrations_modal.find_another_server" + } + ], + "path": "app/javascript/mastodon/features/closed_registrations_modal/index.json" + }, { "descriptors": [ { @@ -1111,6 +1329,10 @@ "defaultMessage": "Local timeline", "id": "column.community" }, + { + "defaultMessage": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "id": "dismissable_banner.community_timeline" + }, { "defaultMessage": "The local timeline is empty. Write something publicly to get the ball rolling!", "id": "empty_column.community" @@ -1195,7 +1417,7 @@ "id": "compose_form.spoiler_placeholder" }, { - "defaultMessage": "Toot", + "defaultMessage": "Publish", "id": "compose_form.publish" }, { @@ -1439,6 +1661,10 @@ "defaultMessage": "Search", "id": "search.placeholder" }, + { + "defaultMessage": "Search or paste URL", + "id": "search.search_or_paste" + }, { "defaultMessage": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "id": "search_popout.tips.full_text" @@ -1477,12 +1703,16 @@ }, { "descriptors": [ + { + "defaultMessage": "Processing…", + "id": "upload_progress.processing" + }, { "defaultMessage": "Uploading…", "id": "upload_progress.label" } ], - "path": "app/javascript/mastodon/features/compose/components/upload_form.json" + "path": "app/javascript/mastodon/features/compose/components/upload_progress.json" }, { "descriptors": [ @@ -1559,7 +1789,7 @@ "id": "compose_form.hashtag_warning" }, { - "defaultMessage": "Posts on Mastodon are not end-to-end encrypted. Do not share any sensitive information over Mastodon.", + "defaultMessage": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "id": "compose_form.encryption_warning" }, { @@ -1696,9 +1926,13 @@ "id": "account.follow" }, { - "defaultMessage": "Cancel follow request", + "defaultMessage": "Withdraw follow request", "id": "account.cancel_follow_request" }, + { + "defaultMessage": "Withdraw request", + "id": "confirmations.cancel_follow_request.confirm" + }, { "defaultMessage": "Awaiting approval. Click to cancel follow request", "id": "account.requested" @@ -1723,6 +1957,10 @@ "defaultMessage": "Are you sure you want to unfollow {name}?", "id": "confirmations.unfollow.message" }, + { + "defaultMessage": "Are you sure you want to withdraw your request to follow {name}?", + "id": "confirmations.cancel_follow_request.message" + }, { "defaultMessage": "Posts", "id": "account.posts" @@ -1811,6 +2049,23 @@ }, { "descriptors": [ + { + "defaultMessage": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "id": "dismissable_banner.explore_links" + }, + { + "defaultMessage": "Nothing is trending right now. Check back later!", + "id": "empty_column.explore_statuses" + } + ], + "path": "app/javascript/mastodon/features/explore/links.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Search for {q}", + "id": "search_results.title" + }, { "defaultMessage": "Could not find anything for these search terms", "id": "search_results.nothing_found" @@ -1839,10 +2094,36 @@ { "defaultMessage": "Nothing is trending right now. Check back later!", "id": "empty_column.explore_statuses" + }, + { + "defaultMessage": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "id": "dismissable_banner.explore_statuses" } ], "path": "app/javascript/mastodon/features/explore/statuses.json" }, + { + "descriptors": [ + { + "defaultMessage": "Nothing is trending right now. Check back later!", + "id": "empty_column.explore_statuses" + } + ], + "path": "app/javascript/mastodon/features/explore/suggestions.json" + }, + { + "descriptors": [ + { + "defaultMessage": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "id": "dismissable_banner.explore_tags" + }, + { + "defaultMessage": "Nothing is trending right now. Check back later!", + "id": "empty_column.explore_statuses" + } + ], + "path": "app/javascript/mastodon/features/explore/tags.json" + }, { "descriptors": [ { @@ -1869,6 +2150,84 @@ ], "path": "app/javascript/mastodon/features/favourites/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Expired filter!", + "id": "filter_modal.added.expired_title" + }, + { + "defaultMessage": "This filter category has expired, you will need to change the expiration date for it to apply.", + "id": "filter_modal.added.expired_explanation" + }, + { + "defaultMessage": "Context mismatch!", + "id": "filter_modal.added.context_mismatch_title" + }, + { + "defaultMessage": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "id": "filter_modal.added.context_mismatch_explanation" + }, + { + "defaultMessage": "settings page", + "id": "filter_modal.added.settings_link" + }, + { + "defaultMessage": "Filter added!", + "id": "filter_modal.added.title" + }, + { + "defaultMessage": "This post has been added to the following filter category: {title}.", + "id": "filter_modal.added.short_explanation" + }, + { + "defaultMessage": "Filter settings", + "id": "filter_modal.added.review_and_configure_title" + }, + { + "defaultMessage": "To review and further configure this filter category, go to the {settings_link}.", + "id": "filter_modal.added.review_and_configure" + }, + { + "defaultMessage": "Done", + "id": "report.close" + } + ], + "path": "app/javascript/mastodon/features/filters/added_to_filter.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Search or create", + "id": "filter_modal.select_filter.search" + }, + { + "defaultMessage": "Clear", + "id": "emoji_button.clear" + }, + { + "defaultMessage": "expired", + "id": "filter_modal.select_filter.expired" + }, + { + "defaultMessage": "does not apply to this context", + "id": "filter_modal.select_filter.context_mismatch" + }, + { + "defaultMessage": "New category: {name}", + "id": "filter_modal.select_filter.prompt_new" + }, + { + "defaultMessage": "Filter this post", + "id": "filter_modal.select_filter.title" + }, + { + "defaultMessage": "Use an existing category or create a new one", + "id": "filter_modal.select_filter.subtitle" + } + ], + "path": "app/javascript/mastodon/features/filters/select_filter.json" + }, { "descriptors": [ { @@ -2129,6 +2488,14 @@ }, { "descriptors": [ + { + "defaultMessage": "Follow hashtag", + "id": "hashtag.follow" + }, + { + "defaultMessage": "Unfollow hashtag", + "id": "hashtag.unfollow" + }, { "defaultMessage": "or {additional}", "id": "hashtag.column_header.tag_mode.any" @@ -2203,6 +2570,75 @@ ], "path": "app/javascript/mastodon/features/home_timeline/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Copied", + "id": "copypaste.copied" + }, + { + "defaultMessage": "Copy", + "id": "copypaste.copy" + }, + { + "defaultMessage": "Reply to {name}'s post", + "id": "interaction_modal.title.reply" + }, + { + "defaultMessage": "With an account on Mastodon, you can respond to this post.", + "id": "interaction_modal.description.reply" + }, + { + "defaultMessage": "Boost {name}'s post", + "id": "interaction_modal.title.reblog" + }, + { + "defaultMessage": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "id": "interaction_modal.description.reblog" + }, + { + "defaultMessage": "Favourite {name}'s post", + "id": "interaction_modal.title.favourite" + }, + { + "defaultMessage": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "id": "interaction_modal.description.favourite" + }, + { + "defaultMessage": "Follow {name}", + "id": "interaction_modal.title.follow" + }, + { + "defaultMessage": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "id": "interaction_modal.description.follow" + }, + { + "defaultMessage": "Create account", + "id": "sign_in_banner.create_account" + }, + { + "defaultMessage": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "id": "interaction_modal.preamble" + }, + { + "defaultMessage": "On this server", + "id": "interaction_modal.on_this_server" + }, + { + "defaultMessage": "Sign in", + "id": "sign_in_banner.sign_in" + }, + { + "defaultMessage": "On a different server", + "id": "interaction_modal.on_another_server" + }, + { + "defaultMessage": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "id": "interaction_modal.other_server_instructions" + } + ], + "path": "app/javascript/mastodon/features/interaction_modal/index.json" + }, { "descriptors": [ { @@ -2562,6 +2998,10 @@ { "defaultMessage": "New sign-ups:", "id": "notifications.column_settings.admin.sign_up" + }, + { + "defaultMessage": "New reports:", + "id": "notifications.column_settings.admin.report" } ], "path": "app/javascript/mastodon/features/notifications/components/column_settings.json" @@ -2655,6 +3095,10 @@ "defaultMessage": "{name} signed up", "id": "notification.admin.sign_up" }, + { + "defaultMessage": "{name} reported {target}", + "id": "notification.admin.report" + }, { "defaultMessage": "{name} has requested to follow you", "id": "notification.follow_request" @@ -2683,6 +3127,31 @@ ], "path": "app/javascript/mastodon/features/notifications/components/notifications_permission_banner.json" }, + { + "descriptors": [ + { + "defaultMessage": "Open report", + "id": "report_notification.open" + }, + { + "defaultMessage": "Other", + "id": "report_notification.categories.other" + }, + { + "defaultMessage": "Spam", + "id": "report_notification.categories.spam" + }, + { + "defaultMessage": "Rule violation", + "id": "report_notification.categories.violation" + }, + { + "defaultMessage": "{count, plural, one {{count} post} other {{count} posts}} attached", + "id": "report_notification.attached_statuses" + } + ], + "path": "app/javascript/mastodon/features/notifications/components/report.json" + }, { "descriptors": [ { @@ -2780,6 +3249,19 @@ ], "path": "app/javascript/mastodon/features/pinned_statuses/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Privacy Policy", + "id": "privacy_policy.title" + }, + { + "defaultMessage": "Last updated {date}", + "id": "privacy_policy.last_updated" + } + ], + "path": "app/javascript/mastodon/features/privacy_policy/index.json" + }, { "descriptors": [ { @@ -2799,6 +3281,10 @@ "defaultMessage": "Federated timeline", "id": "column.public" }, + { + "defaultMessage": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "id": "dismissable_banner.public_timeline" + }, { "defaultMessage": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", "id": "empty_column.public" @@ -2901,6 +3387,27 @@ ], "path": "app/javascript/mastodon/features/report/comment.json" }, + { + "descriptors": [ + { + "defaultMessage": "Public", + "id": "privacy.public.short" + }, + { + "defaultMessage": "Unlisted", + "id": "privacy.unlisted.short" + }, + { + "defaultMessage": "Followers-only", + "id": "privacy.private.short" + }, + { + "defaultMessage": "Mentioned people only", + "id": "privacy.direct.short" + } + ], + "path": "app/javascript/mastodon/features/report/components/status_check_box.json" + }, { "descriptors": [ { @@ -3121,6 +3628,10 @@ { "defaultMessage": "Unblock @{name}", "id": "account.unblock" + }, + { + "defaultMessage": "Open original page", + "id": "account.open_original_page" } ], "path": "app/javascript/mastodon/features/status/components/action_bar.json" @@ -3155,35 +3666,6 @@ ], "path": "app/javascript/mastodon/features/status/components/detailed_status.json" }, - { - "descriptors": [ - { - "defaultMessage": "Delete", - "id": "confirmations.delete.confirm" - }, - { - "defaultMessage": "Are you sure you want to delete this status?", - "id": "confirmations.delete.message" - }, - { - "defaultMessage": "Delete & redraft", - "id": "confirmations.redraft.confirm" - }, - { - "defaultMessage": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", - "id": "confirmations.redraft.message" - }, - { - "defaultMessage": "Reply", - "id": "confirmations.reply.confirm" - }, - { - "defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", - "id": "confirmations.reply.message" - } - ], - "path": "app/javascript/mastodon/features/status/containers/detailed_status_container.json" - }, { "descriptors": [ { @@ -3233,6 +3715,27 @@ ], "path": "app/javascript/mastodon/features/status/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Close", + "id": "lightbox.close" + }, + { + "defaultMessage": "Change subscribed languages for {target}", + "id": "subscribed_languages.target" + }, + { + "defaultMessage": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "id": "subscribed_languages.lead" + }, + { + "defaultMessage": "Save changes", + "id": "subscribed_languages.save" + } + ], + "path": "app/javascript/mastodon/features/subscribed_languages_modal/index.json" + }, { "descriptors": [ { @@ -3289,17 +3792,45 @@ }, { "descriptors": [ + { + "defaultMessage": "Copied", + "id": "copypaste.copied" + }, + { + "defaultMessage": "404", + "id": "bundle_column_error.routing.title" + }, + { + "defaultMessage": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "id": "bundle_column_error.routing.body" + }, { "defaultMessage": "Network error", - "id": "bundle_column_error.title" + "id": "bundle_column_error.network.title" }, { - "defaultMessage": "Something went wrong while loading this component.", - "id": "bundle_column_error.body" + "defaultMessage": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "id": "bundle_column_error.network.body" + }, + { + "defaultMessage": "Oh, no!", + "id": "bundle_column_error.error.title" + }, + { + "defaultMessage": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "id": "bundle_column_error.error.body" }, { "defaultMessage": "Try again", "id": "bundle_column_error.retry" + }, + { + "defaultMessage": "Copy error report", + "id": "bundle_column_error.copy_stacktrace" + }, + { + "defaultMessage": "Go back home", + "id": "bundle_column_error.return" } ], "path": "app/javascript/mastodon/features/ui/components/bundle_column_error.json" @@ -3321,15 +3852,6 @@ ], "path": "app/javascript/mastodon/features/ui/components/bundle_modal_error.json" }, - { - "descriptors": [ - { - "defaultMessage": "Toot", - "id": "compose_form.publish" - } - ], - "path": "app/javascript/mastodon/features/ui/components/columns_area.json" - }, { "descriptors": [ { @@ -3352,6 +3874,31 @@ ], "path": "app/javascript/mastodon/features/ui/components/confirmation_modal.json" }, + { + "descriptors": [ + { + "defaultMessage": "Are you sure you want to log out?", + "id": "confirmations.logout.message" + }, + { + "defaultMessage": "Log out", + "id": "confirmations.logout.confirm" + }, + { + "defaultMessage": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", + "id": "moved_to_account_banner.text" + }, + { + "defaultMessage": "Your account {disabledAccount} is currently disabled.", + "id": "disabled_account_banner.text" + }, + { + "defaultMessage": "Account settings", + "id": "disabled_account_banner.account_settings" + } + ], + "path": "app/javascript/mastodon/features/ui/components/disabled_account_banner.json" + }, { "descriptors": [ { @@ -3373,6 +3920,19 @@ ], "path": "app/javascript/mastodon/features/ui/components/embed_modal.json" }, + { + "descriptors": [ + { + "defaultMessage": "Close", + "id": "lightbox.close" + }, + { + "defaultMessage": "Filter a post", + "id": "filter_modal.title.status" + } + ], + "path": "app/javascript/mastodon/features/ui/components/filter_modal.json" + }, { "descriptors": [ { @@ -3453,61 +4013,71 @@ "id": "navigation_bar.follow_requests" } ], - "path": "app/javascript/mastodon/features/ui/components/follow_requests_nav_link.json" + "path": "app/javascript/mastodon/features/ui/components/follow_requests_column_link.json" }, { "descriptors": [ { - "defaultMessage": "Are you sure you want to log out?", - "id": "confirmations.logout.message" + "defaultMessage": "Publish", + "id": "compose_form.publish" }, { - "defaultMessage": "Log out", - "id": "confirmations.logout.confirm" + "defaultMessage": "Sign in", + "id": "sign_in_banner.sign_in" }, { - "defaultMessage": "Invite people", - "id": "getting_started.invite" - }, + "defaultMessage": "Create account", + "id": "sign_in_banner.create_account" + } + ], + "path": "app/javascript/mastodon/features/ui/components/header.json" + }, + { + "descriptors": [ { - "defaultMessage": "Hotkeys", - "id": "navigation_bar.keyboard_shortcuts" - }, + "defaultMessage": "Close", + "id": "lightbox.close" + } + ], + "path": "app/javascript/mastodon/features/ui/components/image_modal.json" + }, + { + "descriptors": [ { - "defaultMessage": "Security", - "id": "getting_started.security" + "defaultMessage": "Are you sure you want to log out?", + "id": "confirmations.logout.message" }, { - "defaultMessage": "About this server", - "id": "navigation_bar.info" + "defaultMessage": "Log out", + "id": "confirmations.logout.confirm" }, { - "defaultMessage": "Profile directory", - "id": "getting_started.directory" + "defaultMessage": "About", + "id": "footer.about" }, { - "defaultMessage": "Mobile apps", - "id": "navigation_bar.apps" + "defaultMessage": "Invite people", + "id": "footer.invite" }, { - "defaultMessage": "Terms of service", - "id": "getting_started.terms" + "defaultMessage": "Profiles directory", + "id": "footer.directory" }, { - "defaultMessage": "Developers", - "id": "getting_started.developers" + "defaultMessage": "Privacy policy", + "id": "footer.privacy_policy" }, { - "defaultMessage": "Documentation", - "id": "getting_started.documentation" + "defaultMessage": "Get the app", + "id": "footer.get_app" }, { - "defaultMessage": "Logout", - "id": "navigation_bar.logout" + "defaultMessage": "Keyboard shortcuts", + "id": "footer.keyboard_shortcuts" }, { - "defaultMessage": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "id": "getting_started.open_source_notice" + "defaultMessage": "View source code", + "id": "footer.source_code" } ], "path": "app/javascript/mastodon/features/ui/components/link_footer.json" @@ -3619,6 +4189,14 @@ { "defaultMessage": "Follows and followers", "id": "navigation_bar.follows_and_followers" + }, + { + "defaultMessage": "About", + "id": "navigation_bar.about" + }, + { + "defaultMessage": "Search", + "id": "navigation_bar.search" } ], "path": "app/javascript/mastodon/features/ui/components/navigation_panel.json" @@ -3639,27 +4217,19 @@ { "descriptors": [ { - "defaultMessage": "Home", - "id": "tabs_bar.home" + "defaultMessage": "Create account", + "id": "sign_in_banner.create_account" }, { - "defaultMessage": "Notifications", - "id": "tabs_bar.notifications" + "defaultMessage": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "id": "sign_in_banner.text" }, { - "defaultMessage": "Local", - "id": "tabs_bar.local_timeline" - }, - { - "defaultMessage": "Federated", - "id": "tabs_bar.federated_timeline" - }, - { - "defaultMessage": "Search", - "id": "tabs_bar.search" + "defaultMessage": "Sign in", + "id": "sign_in_banner.sign_in" } ], - "path": "app/javascript/mastodon/features/ui/components/tabs_bar.json" + "path": "app/javascript/mastodon/features/ui/components/sign_in_banner.json" }, { "descriptors": [ @@ -3741,4 +4311,4 @@ ], "path": "app/javascript/mastodon/features/video/index.json" } -] +] \ No newline at end of file diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index f9f62b9cb995ff..f6beca1819757b 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Επικοινωνία:", + "about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Αιτιολογία μη διαθέσιμη", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Σημείωση", "account.add_or_remove_from_list": "Προσθήκη ή Αφαίρεση από λίστες", "account.badges.bot": "Μποτ", @@ -7,13 +19,16 @@ "account.block_domain": "Αποκλεισμός {domain}", "account.blocked": "Αποκλεισμένος/η", "account.browse_more_on_origin_server": "Δες περισσότερα στο αρχικό προφίλ", - "account.cancel_follow_request": "Ακύρωση αιτήματος ακολούθησης", + "account.cancel_follow_request": "Απόσυρση αιτήματος παρακολούθησης", "account.direct": "Άμεσο μήνυμα προς @{name}", "account.disable_notifications": "Διακοπή ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}", "account.domain_blocked": "Ο τομέας αποκλείστηκε", "account.edit_profile": "Επεξεργασία προφίλ", "account.enable_notifications": "Έναρξη ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}", "account.endorse": "Προβολή στο προφίλ", + "account.featured_tags.last_status_at": "Τελευταία δημοσίευση στις {date}", + "account.featured_tags.last_status_never": "Καμία Ανάρτηση", + "account.featured_tags.title": "προβεβλημένα hashtags του/της {name}", "account.follow": "Ακολούθησε", "account.followers": "Ακόλουθοι", "account.followers.empty": "Κανείς δεν ακολουθεί αυτό τον χρήστη ακόμα.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, other {{counter} Ακολουθεί}}", "account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.", "account.follows_you": "Σε ακολουθεί", + "account.go_to_profile": "Μετάβαση στο προφίλ", "account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}", - "account.joined": "Μέλος από τις {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Η ιδιοκτησία αυτού του συνδέσμου ελέχθηκε την {date}", "account.locked_info": "Η κατάσταση απορρήτου αυτού του λογαριασμού είναι κλειδωμένη. Ο ιδιοκτήτης επιβεβαιώνει χειροκίνητα ποιος μπορεί να τον ακολουθήσει.", "account.media": "Πολυμέσα", "account.mention": "Ανάφερε @{name}", - "account.moved_to": "{name} μεταφέρθηκε στο:", + "account.moved_to": "Ο/Η {name} έχει υποδείξει ότι ο νέος λογαριασμός του/της είναι τώρα:", "account.mute": "Σώπασε @{name}", "account.mute_notifications": "Σώπασε τις ειδοποιήσεις από @{name}", "account.muted": "Αποσιωπημένος/η", + "account.open_original_page": "Open original page", "account.posts": "Τουτ", "account.posts_with_replies": "Τουτ και απαντήσεις", "account.report": "Κατάγγειλε @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Εεπ!", "announcement.announcement": "Ανακοίνωση", "attachments_list.unprocessed": "(μη επεξεργασμένο)", + "audio.hide": "Απόκρυψη αρχείου ήχου", "autosuggest_hashtag.per_week": "{count} ανα εβδομάδα", "boost_modal.combo": "Μπορείς να πατήσεις {combo} για να το προσπεράσεις αυτό την επόμενη φορά", - "bundle_column_error.body": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.", + "bundle_column_error.copy_stacktrace": "Αντιγραφή αναφοράς σφάλματος", + "bundle_column_error.error.body": "Δεν ήταν δυνατή η απόδοση της σελίδας που ζητήσατε. Μπορεί να οφείλεται σε σφάλμα στον κώδικά μας ή σε πρόβλημα συμβατότητας του προγράμματος περιήγησης.", + "bundle_column_error.error.title": "Ωχ όχι!", + "bundle_column_error.network.body": "Παρουσιάστηκε σφάλμα κατά την προσπάθεια φόρτωσης αυτής της σελίδας. Αυτό θα μπορούσε να οφείλεται σε ένα προσωρινό πρόβλημα με τη σύνδεσή σας στο διαδίκτυο ή σε αυτόν τον διακομιστή.", + "bundle_column_error.network.title": "Σφάλμα δικτύου", "bundle_column_error.retry": "Δοκίμασε ξανά", - "bundle_column_error.title": "Σφάλμα δικτύου", + "bundle_column_error.return": "Μετάβαση πίσω στην αρχική σελίδα", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Κλείσιμο", "bundle_modal_error.message": "Κάτι πήγε στραβά κατά τη φόρτωση του στοιχείου.", "bundle_modal_error.retry": "Δοκίμασε ξανά", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Εγγραφή στο Mastodon", + "column.about": "Σχετικά με", "column.blocks": "Αποκλεισμένοι χρήστες", "column.bookmarks": "Σελιδοδείκτες", "column.community": "Τοπική ροή", @@ -95,7 +126,7 @@ "compose.language.change": "Αλλαγή γλώσσας", "compose.language.search": "Αναζήτηση γλωσσών...", "compose_form.direct_message_warning_learn_more": "Μάθετε περισσότερα", - "compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μην μοιράζεστε επικίνδυνες πληροφορίες μέσω του Mastodon.", + "compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μην μοιράζεστε ευαίσθητες πληροφορίες μέσω του Mastodon.", "compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.", "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.", "compose_form.lock_disclaimer.lock": "κλειδωμένο", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Αφαίρεση επιλογής", "compose_form.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές", "compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή", - "compose_form.publish": "Τουτ", + "compose_form.publish": "Δημοσίευση", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Αποθήκευση αλλαγών", "compose_form.sensitive.hide": "Σημείωσε τα πολυμέσα ως ευαίσθητα", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Αποκλεισμός & Καταγγελία", "confirmations.block.confirm": "Απόκλεισε", "confirmations.block.message": "Σίγουρα θες να αποκλείσεις {name};", + "confirmations.cancel_follow_request.confirm": "Απόσυρση αιτήματος", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Διέγραψε", "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή τη δημοσίευση;", "confirmations.delete_list.confirm": "Διέγραψε", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Σήμανση ως αναγνωσμένο", "conversation.open": "Προβολή συνομιλίας", "conversation.with": "Με {names}", + "copypaste.copied": "Αντιγράφηκε", + "copypaste.copy": "Αντιγραφή", "directory.federated": "Από το γνωστό fediverse", "directory.local": "Μόνο από {domain}", "directory.new_arrivals": "Νέες αφίξεις", "directory.recently_active": "Πρόσφατα ενεργοί", + "disabled_account_banner.account_settings": "Ρυθμίσεις λογαριασμού", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Παράβλεψη", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Ενσωματώστε αυτή την κατάσταση στην ιστοσελίδα σας αντιγράφοντας τον παρακάτω κώδικα.", "embed.preview": "Ορίστε πως θα φαίνεται:", "emoji_button.activity": "Δραστηριότητα", @@ -196,21 +239,37 @@ "explore.trending_links": "Νέα", "explore.trending_statuses": "Αναρτήσεις", "explore.trending_tags": "Ετικέτες", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Ολοκληρώθηκε", "follow_recommendations.heading": "Ακολουθήστε άτομα από τα οποία θα θέλατε να βλέπετε δημοσιεύσεις! Ορίστε μερικές προτάσεις.", "follow_recommendations.lead": "Οι αναρτήσεις των ατόμων που ακολουθείτε θα εμφανίζονται με χρονολογική σειρά στη ροή σας. Μη φοβάστε να κάνετε λάθη, καθώς μπορείτε πολύ εύκολα να σταματήσετε να ακολουθείτε άλλα άτομα οποιαδήποτε στιγμή!", "follow_request.authorize": "Ενέκρινε", "follow_request.reject": "Απέρριψε", "follow_requests.unlocked_explanation": "Παρόλο που ο λογαριασμός σου δεν είναι κλειδωμένος, οι διαχειριστές του {domain} θεώρησαν πως ίσως να θέλεις να ελέγξεις χειροκίνητα αυτά τα αιτήματα ακολούθησης.", + "footer.about": "Σχετικά με", + "footer.directory": "Κατάλογος προφίλ", + "footer.get_app": "Αποκτήστε την Εφαρμογή", + "footer.invite": "Πρόσκληση ατόμων", + "footer.keyboard_shortcuts": "Συντομεύσεις πληκτρολογίου", + "footer.privacy_policy": "Πολιτική απορρήτου", + "footer.source_code": "Προβολή πηγαίου κώδικα", "generic.saved": "Αποθηκεύτηκε", - "getting_started.developers": "Ανάπτυξη", - "getting_started.directory": "Κατάλογος λογαριασμών", - "getting_started.documentation": "Τεκμηρίωση", "getting_started.heading": "Αφετηρία", - "getting_started.invite": "Προσκάλεσε κόσμο", - "getting_started.open_source_notice": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να συνεισφέρεις ή να αναφέρεις ζητήματα στο GitHub στο {github}.", - "getting_started.security": "Ασφάλεια", - "getting_started.terms": "Όροι χρήσης", "hashtag.column_header.tag_mode.all": "και {additional}", "hashtag.column_header.tag_mode.any": "ή {additional}", "hashtag.column_header.tag_mode.none": "χωρίς {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Οποιοδήποτε από αυτά", "hashtag.column_settings.tag_mode.none": "Κανένα από αυτά", "hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα", + "hashtag.follow": "Παρακολούθηση ετικέτας", + "hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας", "home.column_settings.basic": "Βασικές ρυθμίσεις", "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων", "home.column_settings.show_replies": "Εμφάνιση απαντήσεων", "home.hide_announcements": "Απόκρυψη ανακοινώσεων", "home.show_announcements": "Εμφάνιση ανακοινώσεων", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή", + "interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή", + "interaction_modal.other_server_instructions": "Αντιγράψτε και επικολλήστε αυτήν τη διεύθυνση URL στο πεδίο αναζήτησης της αγαπημένης σας εφαρμογής Mastodon ή στο web interface του διακομιστή σας Mastodon.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}", "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}", "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}", "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}", @@ -268,7 +341,7 @@ "lightbox.next": "Επόμενο", "lightbox.previous": "Προηγούμενο", "limited_account_hint.action": "Εμφάνιση προφίλ ούτως ή άλλως", - "limited_account_hint.title": "Αυτό το προφίλ έχει αποκρυφτεί από τους διαχειριστές του διακομιστή σας.", + "limited_account_hint.title": "Αυτό το προφίλ έχει αποκρυφτεί από τους διαχειριστές του διακομιστή {domain}.", "lists.account.add": "Πρόσθεσε στη λίστα", "lists.account.remove": "Βγάλε από τη λίστα", "lists.delete": "Διαγραφή λίστας", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Εναλλαγή ορατότητας", "missing_indicator.label": "Δε βρέθηκε", "missing_indicator.sublabel": "Αδύνατη η εύρεση αυτού του πόρου", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Διάρκεια", "mute_modal.hide_notifications": "Απόκρυψη ειδοποιήσεων αυτού του χρήστη;", "mute_modal.indefinite": "Αόριστη", - "navigation_bar.apps": "Εφαρμογές φορητών συσκευών", + "navigation_bar.about": "Σχετικά με", "navigation_bar.blocks": "Αποκλεισμένοι χρήστες", "navigation_bar.bookmarks": "Σελιδοδείκτες", "navigation_bar.community_timeline": "Τοπική ροή", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Αποσιωπημένες λέξεις", "navigation_bar.follow_requests": "Αιτήματα ακολούθησης", "navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν", - "navigation_bar.info": "Πληροφορίες κόμβου", - "navigation_bar.keyboard_shortcuts": "Συντομεύσεις", "navigation_bar.lists": "Λίστες", "navigation_bar.logout": "Αποσύνδεση", "navigation_bar.mutes": "Αποσιωπημένοι χρήστες", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Καρφιτσωμένα τουτ", "navigation_bar.preferences": "Προτιμήσεις", "navigation_bar.public_timeline": "Ομοσπονδιακή ροή", + "navigation_bar.search": "Αναζήτηση", "navigation_bar.security": "Ασφάλεια", + "not_signed_in_indicator.not_signed_in": "Πρέπει να συνδεθείτε για να αποκτήσετε πρόσβαση σε αυτόν τον πόρο.", + "notification.admin.report": "{name} ανέφερε {target}", "notification.admin.sign_up": "{name} έχει εγγραφεί", "notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου", "notification.follow": "Ο/Η {name} σε ακολούθησε", @@ -326,6 +401,7 @@ "notification.update": "{name} επεξεργάστηκε μια δημοσίευση", "notifications.clear": "Καθαρισμός ειδοποιήσεων", "notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;", + "notifications.column_settings.admin.report": "Νέες αναφορές:", "notifications.column_settings.admin.sign_up": "Νέες εγγραφές:", "notifications.column_settings.alert": "Ειδοποιήσεις επιφάνειας εργασίας", "notifications.column_settings.favourite": "Αγαπημένα:", @@ -379,6 +455,8 @@ "privacy.public.short": "Δημόσιο", "privacy.unlisted.long": "Ορατό για όλους, αλλά opted-out των χαρακτηριστικών της ανακάλυψης", "privacy.unlisted.short": "Μη καταχωρημένα", + "privacy_policy.last_updated": "Τελευταία ενημέρωση {date}", + "privacy_policy.title": "Πολιτική Απορρήτου", "refresh": "Ανανέωση", "regeneration_indicator.label": "Φορτώνει…", "regeneration_indicator.sublabel": "Η αρχική σου ροή ετοιμάζεται!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Άλλες", + "report_notification.categories.spam": "Ανεπιθύμητα", + "report_notification.categories.violation": "Παραβίαση κανόνα", + "report_notification.open": "Open report", "search.placeholder": "Αναζήτηση", + "search.search_or_paste": "Αναζήτηση ή εισαγωγή URL", "search_popout.search_format": "Προχωρημένη αναζήτηση", "search_popout.tips.full_text": "Απλό κείμενο που επιστρέφει καταστάσεις που έχεις γράψει, έχεις σημειώσει ως αγαπημένες, έχεις προωθήσει ή έχεις αναφερθεί σε αυτές, καθώς και όσα ονόματα χρηστών και ετικέτες ταιριάζουν.", "search_popout.tips.hashtag": "ετικέτα", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Τουτ", "search_results.statuses_fts_disabled": "Η αναζήτηση τουτ βάσει του περιεχόμενού τους δεν είναι ενεργοποιημένη σε αυτό τον κόμβο.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, zero {αποτελέσματα} one {αποτέλεσμα} other {αποτελέσματα}}", + "server_banner.about_active_users": "Άτομα που χρησιμοποιούν αυτόν τον διακομιστή κατά τις τελευταίες 30 ημέρες (Μηνιαία Ενεργοί Χρήστες)", + "server_banner.active_users": "ενεργοί χρήστες", + "server_banner.administered_by": "Διαχειριστής:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Μάθετε περισσότερα", + "server_banner.server_stats": "Στατιστικά διακομιστή:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}", "status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης", "status.block": "Αποκλεισμός @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Ενσωμάτωσε", "status.favourite": "Σημείωσε ως αγαπημένο", + "status.filter": "Filter this post", "status.filtered": "Φιλτραρισμένα", + "status.hide": "Απόκρυψη toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Φόρτωσε περισσότερα", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Κανείς δεν προώθησε αυτό το τουτ ακόμα. Μόλις το κάνει κάποια, θα εμφανιστούν εδώ.", "status.redraft": "Σβήσε & ξαναγράψε", "status.remove_bookmark": "Αφαίρεση σελιδοδείκτη", + "status.replied_to": "Replied to {name}", "status.reply": "Απάντησε", "status.replyAll": "Απάντησε στην συζήτηση", "status.report": "Κατάγγειλε @{name}", "status.sensitive_warning": "Ευαίσθητο περιεχόμενο", "status.share": "Μοιράσου", + "status.show_filter_reason": "Εμφάνιση παρ'όλα αυτά", "status.show_less": "Δείξε λιγότερα", "status.show_less_all": "Δείξε λιγότερα για όλα", "status.show_more": "Δείξε περισσότερα", "status.show_more_all": "Δείξε περισσότερα για όλα", - "status.show_thread": "Εμφάνιση νήματος", + "status.show_original": "Εμφάνιση αρχικού", + "status.translate": "Μετάφραση", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Μη διαθέσιμα", "status.unmute_conversation": "Διέκοψε την αποσιώπηση της συζήτησης", "status.unpin": "Ξεκαρφίτσωσε από το προφίλ", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Αποθήκευση αλλαγών", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Απόρριψη πρότασης", "suggestions.header": "Ίσως να ενδιαφέρεσαι για…", "tabs_bar.federated_timeline": "Ομοσπονδιακή", "tabs_bar.home": "Αρχική", "tabs_bar.local_timeline": "Τοπική", "tabs_bar.notifications": "Ειδοποιήσεις", - "tabs_bar.search": "Αναζήτηση", "time_remaining.days": "απομένουν {number, plural, one {# ημέρα} other {# ημέρες}}", "time_remaining.hours": "απομένουν {number, plural, one {# ώρα} other {# ώρες}}", "time_remaining.minutes": "απομένουν {number, plural, one {# λεπτό} other {# λεπτά}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Ακόλουθοι", "timeline_hint.resources.follows": "Ακολουθεί", "timeline_hint.resources.statuses": "Παλαιότερα τουτ", - "trends.counter_by_accounts": "{count, plural, one {{counter} άτομο μιλάει} other {{counter} άτομα μιλάνε}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} άτομο} other {{counter} άνθρωποι}} στο παρελθόν {days, plural, one {ημέρα} other {{days} ημέρες}}", "trends.trending_now": "Δημοφιλή τώρα", "ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.", "units.short.billion": "{count}Δ", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Προετοιμασία αναγνώρισης κειμένου…", "upload_modal.preview_label": "Προεπισκόπηση ({ratio})", "upload_progress.label": "Ανεβαίνει...", + "upload_progress.processing": "Επεξεργασία…", "video.close": "Κλείσε το βίντεο", "video.download": "Λήψη αρχείου", "video.exit_fullscreen": "Έξοδος από πλήρη οθόνη", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 51f8463cd5358d..b005f80905d575 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the Fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralised social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Block domain {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Posts", "account.posts_with_replies": "Posts and replies", "account.report": "Report @{name}", @@ -47,7 +65,7 @@ "account.unmute": "Unmute @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", "account.unmute_short": "Unmute", - "account_note.placeholder": "Click to add a note", + "account_note.placeholder": "Click to add note", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", "admin.dashboard.retention.average": "Average", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralised, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralised, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -79,7 +110,7 @@ "column.lists": "Lists", "column.mutes": "Muted users", "column.notifications": "Notifications", - "column.pins": "Pinned post", + "column.pins": "Pinned posts", "column.public": "Federated timeline", "column_back_button.label": "Back", "column_header.hide_settings": "Hide settings", @@ -90,37 +121,39 @@ "column_header.unpin": "Unpin", "column_subheading.settings": "Settings", "community.column_settings.local_only": "Local only", - "community.column_settings.media_only": "Media only", + "community.column_settings.media_only": "Media Only", "community.column_settings.remote_only": "Remote only", "compose.language.change": "Change language", "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any sensitive information over Mastodon.", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", - "compose_form.placeholder": "What is on your mind?", + "compose_form.placeholder": "What's on your mind?", "compose_form.poll.add_option": "Add a choice", "compose_form.poll.duration": "Poll duration", "compose_form.poll.option_placeholder": "Choice {number}", "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", - "compose_form.spoiler.marked": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.spoiler.marked": "Remove content warning", + "compose_form.spoiler.unmarked": "Add content warning", "compose_form.spoiler_placeholder": "Write your warning here", "confirmation_modal.cancel": "Cancel", "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", - "confirmations.delete.message": "Are you sure you want to delete this status?", + "confirmations.delete.message": "Are you sure you want to delete this post?", "confirmations.delete_list.confirm": "Delete", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.discard_edit_media.confirm": "Discard", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -164,7 +207,7 @@ "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", "empty_column.account_suspended": "Account suspended", - "empty_column.account_timeline": "No posts found", + "empty_column.account_timeline": "No posts here!", "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned posts", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Posts", "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older posts", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index f16f318d437bb8..888eb35ddbec6b 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Block domain {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Posts", "account.posts_with_replies": "Posts and replies", "account.report": "Report @{name}", @@ -60,6 +78,7 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "column.area": "area timeline", @@ -73,12 +92,24 @@ "column.area.timeline.mstdnjp": "mstdn.jp timeline", "column.area.timeline.pawoo": "pawoo.net timeline", "column.area.timeline.bestfriends": "best-friends.chat timeline", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -118,7 +149,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -131,6 +162,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this post?", "confirmations.delete_list.confirm": "Delete", @@ -154,10 +187,21 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "dismissable_banner.area_timeline": "These are the most recent public posts from people whose accounts are hosted by instances in apecified area.", "embed.instructions": "Embed this post on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -209,21 +253,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Account settings", - "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}", @@ -233,11 +293,25 @@ "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 for this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -281,7 +355,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -300,10 +374,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -317,8 +392,6 @@ "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", @@ -326,7 +399,10 @@ "navigation_bar.pins": "Pinned posts", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your post", "notification.follow": "{name} followed you", @@ -339,6 +415,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -392,6 +469,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -444,7 +523,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Advanced search format", "search_popout.tips.full_text": "Simple text returns posts you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "hashtag", @@ -457,7 +542,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Posts", "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this post in the moderation interface", "status.block": "Block @{name}", @@ -473,7 +568,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -492,19 +589,26 @@ "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", @@ -512,7 +616,6 @@ "tabs_bar.local_timeline": "Local", "tabs_bar.area_timeline": "area", "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", @@ -522,7 +625,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older posts", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -550,6 +653,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading...", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 9179945614a73a..12823083d67fc9 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -1,80 +1,111 @@ { + "about.blocks": "Moderigitaj serviloj", + "about.contact": "Kontakto:", + "about.disclaimer": "Mastodon estas libera, malfermitkoda programaro kaj varmarko de la firmao Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Kialo ne disponebla", + "about.domain_blocks.preamble": "Mastodono ebligas vidi enhavojn el uzantoj kaj komuniki kun ilin el aliaj serviloj el la Fediverso. Estas la limigoj deciditaj por tiu ĉi servilo.", + "about.domain_blocks.silenced.explanation": "Vi ne ĝenerale vidos profilojn kaj enhavojn de ĉi tiu servilo, krom se vi eksplice trovas aŭ estas permesita de via sekvato.", + "about.domain_blocks.silenced.title": "Limigita", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspendita", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Reguloj de la servilo", "account.account_note_header": "Noto", "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj", "account.badges.bot": "Roboto", "account.badges.group": "Grupo", "account.block": "Bloki @{name}", - "account.block_domain": "Bloki domajnon {domain}", + "account.block_domain": "Bloki la domajnon {domain}", "account.blocked": "Blokita", - "account.browse_more_on_origin_server": "Rigardi pli al la originala profilo", - "account.cancel_follow_request": "Nuligi peton de sekvado", + "account.browse_more_on_origin_server": "Foliumi pli ĉe la originala profilo", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Rekte mesaĝi @{name}", - "account.disable_notifications": "Ĉesu sciigi min kiam @{name} mesaĝi", + "account.disable_notifications": "Ne plu sciigi min, kiam @{name} mesaĝas", "account.domain_blocked": "Domajno blokita", - "account.edit_profile": "Redakti profilon", - "account.enable_notifications": "Sciigi min kiam @{name} mesaĝi", - "account.endorse": "Montri en profilo", + "account.edit_profile": "Redakti la profilon", + "account.enable_notifications": "Sciigi min, kiam @{name} mesaĝas", + "account.endorse": "Rekomendi ĉe via profilo", + "account.featured_tags.last_status_at": "Lasta afîŝo je {date}", + "account.featured_tags.last_status_never": "Neniuj afiŝoj", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Sekvi", "account.followers": "Sekvantoj", "account.followers.empty": "Ankoraŭ neniu sekvas tiun uzanton.", "account.followers_counter": "{count, plural, one{{counter} Sekvanto} other {{counter} Sekvantoj}}", - "account.following": "Sekvantaj", - "account.following_counter": "{count, plural, one {{counter} Sekvato} other {{counter} Sekvatoj}}", - "account.follows.empty": "Tiu uzanto ankoraŭ ne sekvas iun.", + "account.following": "Sekvadoj", + "account.following_counter": "{count, plural, one {{counter} Sekvado} other {{counter} Sekvadoj}}", + "account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.", "account.follows_you": "Sekvas vin", - "account.hide_reblogs": "Kaŝi diskonigojn de @{name}", - "account.joined": "Kuniĝis {date}", + "account.go_to_profile": "Iri al profilo", + "account.hide_reblogs": "Kaŝi la plusendojn de @{name}", + "account.joined_short": "Aliĝis", + "account.languages": "Ŝanĝi elekton de abonitaj lingvoj", "account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}", "account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.", "account.media": "Aŭdovidaĵoj", "account.mention": "Mencii @{name}", - "account.moved_to": "{name} moviĝis al:", + "account.moved_to": "{name} indikis, ke ria nova konto estas nun:", "account.mute": "Silentigi @{name}", - "account.mute_notifications": "Silentigi sciigojn de @{name}", + "account.mute_notifications": "Silentigi la sciigojn de @{name}", "account.muted": "Silentigita", + "account.open_original_page": "Malfermi originan paĝon", "account.posts": "Mesaĝoj", - "account.posts_with_replies": "Kun respondoj", - "account.report": "Signali @{name}", - "account.requested": "Atendo de aprobo. Alklaku por nuligi peton de sekvado", - "account.share": "Diskonigi la profilon de @{name}", - "account.show_reblogs": "Montri diskonigojn de @{name}", + "account.posts_with_replies": "Mesaĝoj kaj respondoj", + "account.report": "Raporti @{name}", + "account.requested": "Atendo de aprobo. Klaku por nuligi la demandon de sekvado", + "account.share": "Kundividi la profilon de @{name}", + "account.show_reblogs": "Montri la plusendojn de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Mesaĝo} other {{counter} Mesaĝoj}}", "account.unblock": "Malbloki @{name}", - "account.unblock_domain": "Malbloki {domain}", + "account.unblock_domain": "Malbloki la domajnon {domain}", "account.unblock_short": "Malbloki", - "account.unendorse": "Ne montri en profilo", + "account.unendorse": "Ne plu rekomendi ĉe la profilo", "account.unfollow": "Ne plu sekvi", - "account.unmute": "Malsilentigi @{name}", - "account.unmute_notifications": "Malsilentigi sciigojn de @{name}", - "account.unmute_short": "Malsilentigi", - "account_note.placeholder": "Alklaku por aldoni noton", + "account.unmute": "Ne plu silentigi @{name}", + "account.unmute_notifications": "Ne plu silentigi la sciigojn de @{name}", + "account.unmute_short": "Ne plu silentigi", + "account_note.placeholder": "Klaku por aldoni noton", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", "admin.dashboard.retention.average": "Averaĝa", - "admin.dashboard.retention.cohort": "Registriĝo monato", + "admin.dashboard.retention.cohort": "Monato de registriĝo", "admin.dashboard.retention.cohort_size": "Novaj uzantoj", "alert.rate_limited.message": "Bonvolu reprovi post {retry_time, time, medium}.", "alert.rate_limited.title": "Mesaĝkvante limigita", "alert.unexpected.message": "Neatendita eraro okazis.", - "alert.unexpected.title": "Ups!", + "alert.unexpected.title": "Aj!", "announcement.announcement": "Anonco", "attachments_list.unprocessed": "(neprilaborita)", + "audio.hide": "Kaŝi aŭdion", "autosuggest_hashtag.per_week": "{count} semajne", "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje", - "bundle_column_error.body": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", - "bundle_column_error.retry": "Bonvolu reprovi", - "bundle_column_error.title": "Reta eraro", + "bundle_column_error.copy_stacktrace": "Kopii la raporto de error", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Ho, ne!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Eraro de reto", + "bundle_column_error.retry": "Provu refoje", + "bundle_column_error.return": "Reveni al la hejmo", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Fermi", "bundle_modal_error.message": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", - "bundle_modal_error.retry": "Bonvolu reprovi", + "bundle_modal_error.retry": "Provu refoje", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Trovi alian servilon", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Krei konton en Mastodon", + "column.about": "Pri", "column.blocks": "Blokitaj uzantoj", "column.bookmarks": "Legosignoj", "column.community": "Loka templinio", "column.direct": "Rektaj mesaĝoj", - "column.directory": "Trarigardi profilojn", + "column.directory": "Foliumi la profilojn", "column.domain_blocks": "Blokitaj domajnoj", - "column.favourites": "Stelumoj", - "column.follow_requests": "Petoj de sekvado", + "column.favourites": "Preferaĵoj", + "column.follow_requests": "Demandoj de sekvado", "column.home": "Hejmo", "column.lists": "Listoj", "column.mutes": "Silentigitaj uzantoj", @@ -82,49 +113,51 @@ "column.pins": "Alpinglitaj mesaĝoj", "column.public": "Fratara templinio", "column_back_button.label": "Reveni", - "column_header.hide_settings": "Kaŝi agordojn", + "column_header.hide_settings": "Kaŝi la agordojn", "column_header.moveLeft_settings": "Movi kolumnon maldekstren", "column_header.moveRight_settings": "Movi kolumnon dekstren", "column_header.pin": "Alpingli", - "column_header.show_settings": "Montri agordojn", + "column_header.show_settings": "Montri la agordojn", "column_header.unpin": "Depingli", - "column_subheading.settings": "Agordado", + "column_subheading.settings": "Agordoj", "community.column_settings.local_only": "Nur loka", "community.column_settings.media_only": "Nur aŭdovidaĵoj", - "community.column_settings.remote_only": "Nur malproksima", + "community.column_settings.remote_only": "Nur fora", "compose.language.change": "Ŝanĝi lingvon", - "compose.language.search": "Search languages...", + "compose.language.search": "Serĉi lingvojn...", "compose_form.direct_message_warning_learn_more": "Lerni pli", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "La mesaĵoj en Mastodon ne estas tutvoje ĉifritaj. Ne kundividu tiklajn informojn ĉe Mastodon.", "compose_form.hashtag_warning": "Ĉi tiu mesaĝo ne estos listigita per ajna kradvorto. Nur publikaj mesaĝoj estas serĉeblaj per kradvortoj.", - "compose_form.lock_disclaimer": "Via konta ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn, kiuj estas nur por sekvantoj.", + "compose_form.lock_disclaimer": "Via konto ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn nur al la sekvantoj.", "compose_form.lock_disclaimer.lock": "ŝlosita", - "compose_form.placeholder": "Pri kio vi pensas?", + "compose_form.placeholder": "Kion vi pensas?", "compose_form.poll.add_option": "Aldoni elekteblon", - "compose_form.poll.duration": "Balotenketa daŭro", + "compose_form.poll.duration": "Daŭro de la balotenketo", "compose_form.poll.option_placeholder": "Elekteblo {number}", "compose_form.poll.remove_option": "Forigi ĉi tiu elekteblon", "compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn", "compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton", - "compose_form.publish": "Hup", + "compose_form.publish": "Publikigi", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Konservi ŝanĝojn", - "compose_form.sensitive.hide": "Marki la aŭdovidaĵojn kiel tiklaj", - "compose_form.sensitive.marked": "Aŭdovidaĵo markita tikla", - "compose_form.sensitive.unmarked": "Aŭdovidaĵo ne markita tikla", - "compose_form.spoiler.marked": "Teksto kaŝita malantaŭ averto", - "compose_form.spoiler.unmarked": "Teksto ne kaŝita", + "compose_form.save_changes": "Konservi la ŝanĝojn", + "compose_form.sensitive.hide": "{count, plural, one {Marki la aŭdovidaĵon kiel tikla} other {Marki la aŭdovidaĵojn kiel tikla}}", + "compose_form.sensitive.marked": "{count, plural, one {La aŭdovidaĵo estas markita kiel tikla} other {La aŭdovidaĵoj estas markitaj kiel tikla}}", + "compose_form.sensitive.unmarked": "{count, plural, one {La aŭdovidaĵo ne estas markita kiel tikla} other {La aŭdovidaĵoj ne estas markitaj kiel tikla}}", + "compose_form.spoiler.marked": "Forigi la averton de enhavo", + "compose_form.spoiler.unmarked": "Aldoni averton de enhavo", "compose_form.spoiler_placeholder": "Skribu vian averton ĉi tie", "confirmation_modal.cancel": "Nuligi", - "confirmations.block.block_and_report": "Bloki kaj signali", + "confirmations.block.block_and_report": "Bloki kaj raporti", "confirmations.block.confirm": "Bloki", "confirmations.block.message": "Ĉu vi certas, ke vi volas bloki {name}?", + "confirmations.cancel_follow_request.confirm": "Eksigi peton", + "confirmations.cancel_follow_request.message": "Ĉu vi certas ke vi volas eksigi vian peton por sekvi {name}?", "confirmations.delete.confirm": "Forigi", "confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?", "confirmations.delete_list.confirm": "Forigi", "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?", - "confirmations.discard_edit_media.confirm": "Ne konservi", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.discard_edit_media.confirm": "Forĵeti", + "confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ de la antaŭmontro de la aŭdovidaĵo, ĉu vi forlasu ilin ĉiuokaze?", "confirmations.domain_block.confirm": "Bloki la tutan domajnon", "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.", "confirmations.logout.confirm": "Adiaŭi", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marki legita", "conversation.open": "Vidi konversacion", "conversation.with": "Kun {names}", + "copypaste.copied": "Kopiita", + "copypaste.copy": "Kopii", "directory.federated": "El konata fediverso", "directory.local": "Nur de {domain}", "directory.new_arrivals": "Novaj alvenoj", "directory.recently_active": "Lastatempe aktiva", + "disabled_account_banner.account_settings": "Konto-agordoj", + "disabled_account_banner.text": "Via konto {disabledAccount} estas nune malvalidigita.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Eksigi", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Enkorpigu ĉi tiun mesaĝon en vian retejon per kopio de la suba kodo.", "embed.preview": "Ĝi aperos tiel:", "emoji_button.activity": "Agadoj", @@ -163,19 +206,19 @@ "emoji_button.search_results": "Serĉaj rezultoj", "emoji_button.symbols": "Simboloj", "emoji_button.travel": "Vojaĝoj kaj lokoj", - "empty_column.account_suspended": "Konto haltigita", + "empty_column.account_suspended": "Konto suspendita", "empty_column.account_timeline": "Neniu mesaĝo ĉi tie!", "empty_column.account_unavailable": "Profilo ne disponebla", "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.", "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis mesaĝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.", "empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.", "empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.", "empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!", - "empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis mesaĝon. Kiam vi stelumos iun, tiu aperos ĉi tie.", - "empty_column.favourites": "Ankoraŭ neniu stelumis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.", + "empty_column.favourited_statuses": "Vi ankoraŭ ne havas mesaĝon en la preferaĵoj. Kiam vi aldonas iun, tiu aperos ĉi tie.", + "empty_column.favourites": "Ankoraŭ neniu aldonis tiun mesaĝon al siaj preferaĵoj. Kiam iu faros ĉi tion, tiu aperos ĉi tie.", "empty_column.follow_recommendations": "Ŝajnas, ke neniuj sugestoj povis esti generitaj por vi. Vi povas provi uzi serĉon por serĉi homojn, kiujn vi eble konas, aŭ esplori tendencajn kradvortojn.", - "empty_column.follow_requests": "Vi ne ankoraŭ havas iun peton de sekvado. Kiam vi ricevos unu, ĝi aperos ĉi tie.", + "empty_column.follow_requests": "Vi ankoraŭ ne havas demandon de sekvado. Kiam vi ricevas unu, ĝi aperas tie ĉi.", "empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.", "empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.", "empty_column.home.suggestions": "Vidu iujn sugestojn", @@ -196,21 +239,37 @@ "explore.trending_links": "Novaĵoj", "explore.trending_statuses": "Afiŝoj", "explore.trending_tags": "Kradvortoj", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Eksvalida filtrilo!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filtrilopcioj", + "filter_modal.added.settings_link": "opciopaĝo", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filtrilo aldonita!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "eksvalidiĝinta", + "filter_modal.select_filter.prompt_new": "Nova klaso: {name}", + "filter_modal.select_filter.search": "Serĉi aŭ krei", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filtri ĉi tiun afiŝon", + "filter_modal.title.status": "Filtri mesaĝon", "follow_recommendations.done": "Farita", - "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", - "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", + "follow_recommendations.heading": "Sekvi la personojn kies mesaĝojn vi volas vidi! Jen iom da sugestoj.", + "follow_recommendations.lead": "La mesaĝoj de personoj kiujn vi sekvas, aperos laŭ kronologia ordo en via hejma templinio. Ne timu erari, vi povas ĉesi sekvi facile iam ajn!", "follow_request.authorize": "Rajtigi", "follow_request.reject": "Rifuzi", - "follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la dungitaro de {domain} opiniis, ke vi eble volus revizii petojn de sekvadon el ĉi tiuj kontoj permane.", + "follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la teamo de {domain} pensas, ke vi eble volas permane kontroli la demandojn de sekvado de ĉi tiuj kontoj.", + "footer.about": "Pri", + "footer.directory": "Profilujo", + "footer.get_app": "Akiru la Programon", + "footer.invite": "Inviti homojn", + "footer.keyboard_shortcuts": "Fulmoklavoj", + "footer.privacy_policy": "Politiko de privateco", + "footer.source_code": "Montri fontkodon", "generic.saved": "Konservita", - "getting_started.developers": "Programistoj", - "getting_started.directory": "Profilujo", - "getting_started.documentation": "Dokumentado", "getting_started.heading": "Por komenci", - "getting_started.invite": "Inviti homojn", - "getting_started.open_source_notice": "Mastodon estas malfermitkoda programo. Vi povas kontribui aŭ raporti problemojn en GitHub je {github}.", - "getting_started.security": "Sekureco", - "getting_started.terms": "Uzkondiĉoj", "hashtag.column_header.tag_mode.all": "kaj {additional}", "hashtag.column_header.tag_mode.any": "aŭ {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}", @@ -220,25 +279,39 @@ "hashtag.column_settings.tag_mode.any": "Iu ajn", "hashtag.column_settings.tag_mode.none": "Neniu", "hashtag.column_settings.tag_toggle": "Aldoni pliajn etikedojn por ĉi tiu kolumno", + "hashtag.follow": "Sekvi la kradvorton", + "hashtag.unfollow": "Ne plu sekvi la kradvorton", "home.column_settings.basic": "Bazaj agordoj", - "home.column_settings.show_reblogs": "Montri diskonigojn", + "home.column_settings.show_reblogs": "Montri plusendojn", "home.column_settings.show_replies": "Montri respondojn", - "home.hide_announcements": "Kaŝi anoncojn", + "home.hide_announcements": "Kaŝi la anoncojn", "home.show_announcements": "Montri anoncojn", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "En alia servilo", + "interaction_modal.on_this_server": "En ĉi tiu servilo", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Aldoni afiŝon de {name} al la preferaĵoj", + "interaction_modal.title.follow": "Sekvi {name}", + "interaction_modal.title.reblog": "Suprenigi la afiŝon de {name}", + "interaction_modal.title.reply": "Respondi al la afiŝo de {name}", "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}", "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}", "keyboard_shortcuts.back": "reveni", - "keyboard_shortcuts.blocked": "malfermi la liston de blokitaj uzantoj", - "keyboard_shortcuts.boost": "diskonigi", + "keyboard_shortcuts.blocked": "Malfermi la liston de blokitaj uzantoj", + "keyboard_shortcuts.boost": "Plusendi la mesaĝon", "keyboard_shortcuts.column": "fokusi mesaĝon en unu el la kolumnoj", "keyboard_shortcuts.compose": "enfokusigi la tekstujon", "keyboard_shortcuts.description": "Priskribo", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "malfermi la kolumnon de rektaj mesaĝoj", "keyboard_shortcuts.down": "iri suben en la listo", "keyboard_shortcuts.enter": "malfermi mesaĝon", - "keyboard_shortcuts.favourite": "stelumi", - "keyboard_shortcuts.favourites": "malfermi la liston de stelumoj", + "keyboard_shortcuts.favourite": "Aldoni la mesaĝon al la preferaĵoj", + "keyboard_shortcuts.favourites": "Malfermi la liston de la preferaĵoj", "keyboard_shortcuts.federated": "Malfermi la frataran templinion", "keyboard_shortcuts.heading": "Klavaraj mallongigoj", "keyboard_shortcuts.home": "Malfermi la hejman templinion", @@ -249,26 +322,26 @@ "keyboard_shortcuts.muted": "malfermi la liston de silentigitaj uzantoj", "keyboard_shortcuts.my_profile": "malfermi vian profilon", "keyboard_shortcuts.notifications": "malfermi la kolumnon de sciigoj", - "keyboard_shortcuts.open_media": "malfermi aŭdovidaĵon", + "keyboard_shortcuts.open_media": "Malfermi la aŭdovidaĵon", "keyboard_shortcuts.pinned": "malfermi la liston de alpinglitaj mesaĝoj", "keyboard_shortcuts.profile": "malfermi la profilon de la aŭtoro", "keyboard_shortcuts.reply": "respondi", - "keyboard_shortcuts.requests": "malfermi la liston de petoj de sekvado", + "keyboard_shortcuts.requests": "Malfermi la liston de demandoj de sekvado", "keyboard_shortcuts.search": "enfokusigi la serĉilon", - "keyboard_shortcuts.spoilers": "montri/kaŝi la kampon de enhava averto", + "keyboard_shortcuts.spoilers": "Montri/kaŝi la kampon de averto de enhavo (\"CW\")", "keyboard_shortcuts.start": "malfermi la kolumnon «por komenci»", - "keyboard_shortcuts.toggle_hidden": "montri/kaŝi tekston malantaŭ enhava averto", - "keyboard_shortcuts.toggle_sensitivity": "montri/kaŝi aŭdovidaĵojn", - "keyboard_shortcuts.toot": "komenci tute novan mesaĝon", + "keyboard_shortcuts.toggle_hidden": "Montri/kaŝi tekston malantaŭ la averto de enhavo (\"CW\")", + "keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi la aŭdovidaĵojn", + "keyboard_shortcuts.toot": "Krei novan mesaĝon", "keyboard_shortcuts.unfocus": "malenfokusigi la tekstujon aŭ la serĉilon", "keyboard_shortcuts.up": "iri supren en la listo", "lightbox.close": "Fermi", "lightbox.compress": "Kunpremi bildan vidkeston", "lightbox.expand": "Pligrandigi bildan vidkeston", - "lightbox.next": "Sekva", - "lightbox.previous": "Antaŭa", + "lightbox.next": "Antaŭen", + "lightbox.previous": "Malantaŭen", "limited_account_hint.action": "Montru profilon ĉiukaze", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "La profilo estas kaŝita de la moderigantoj de {domain}.", "lists.account.add": "Aldoni al la listo", "lists.account.remove": "Forigi de la listo", "lists.delete": "Forigi la liston", @@ -279,18 +352,19 @@ "lists.replies_policy.followed": "Iu sekvanta uzanto", "lists.replies_policy.list": "Membroj de la listo", "lists.replies_policy.none": "Neniu", - "lists.replies_policy.title": "Montri respondon al:", + "lists.replies_policy.title": "Montri respondojn al:", "lists.search": "Serĉi inter la homoj, kiujn vi sekvas", "lists.subheading": "Viaj listoj", "load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}", "loading_indicator.label": "Ŝargado…", - "media_gallery.toggle_visible": "Baskuligi videblecon", + "media_gallery.toggle_visible": "{number, plural, one {Kaŝi la bildon} other {Kaŝi la bildojn}}", "missing_indicator.label": "Ne trovita", "missing_indicator.sublabel": "Ĉi tiu elemento ne estis trovita", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Daŭro", "mute_modal.hide_notifications": "Ĉu vi volas kaŝi la sciigojn de ĉi tiu uzanto?", "mute_modal.indefinite": "Nedifinita", - "navigation_bar.apps": "Telefonaj aplikaĵoj", + "navigation_bar.about": "Pri", "navigation_bar.blocks": "Blokitaj uzantoj", "navigation_bar.bookmarks": "Legosignoj", "navigation_bar.community_timeline": "Loka templinio", @@ -300,12 +374,10 @@ "navigation_bar.domain_blocks": "Blokitaj domajnoj", "navigation_bar.edit_profile": "Redakti profilon", "navigation_bar.explore": "Esplori", - "navigation_bar.favourites": "Stelumoj", + "navigation_bar.favourites": "Preferaĵoj", "navigation_bar.filters": "Silentigitaj vortoj", - "navigation_bar.follow_requests": "Petoj de sekvado", + "navigation_bar.follow_requests": "Demandoj de sekvado", "navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj", - "navigation_bar.info": "Pri ĉi tiu servilo", - "navigation_bar.keyboard_shortcuts": "Rapidklavoj", "navigation_bar.lists": "Listoj", "navigation_bar.logout": "Adiaŭi", "navigation_bar.mutes": "Silentigitaj uzantoj", @@ -313,31 +385,35 @@ "navigation_bar.pins": "Alpinglitaj mesaĝoj", "navigation_bar.preferences": "Preferoj", "navigation_bar.public_timeline": "Fratara templinio", + "navigation_bar.search": "Serĉi", "navigation_bar.security": "Sekureco", - "notification.admin.sign_up": "{name} registris", - "notification.favourite": "{name} stelumis vian mesaĝon", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} raportis {target}", + "notification.admin.sign_up": "{name} kreis konton", + "notification.favourite": "{name} aldonis vian mesaĝon al siaj preferaĵoj", "notification.follow": "{name} eksekvis vin", "notification.follow_request": "{name} petis sekvi vin", "notification.mention": "{name} menciis vin", "notification.own_poll": "Via balotenketo finiĝitis", "notification.poll": "Partoprenita balotenketo finiĝis", - "notification.reblog": "{name} diskonigis vian mesaĝon", + "notification.reblog": "{name} plusendis vian mesaĝon", "notification.status": "{name} ĵus afiŝita", "notification.update": "{name} redaktis afiŝon", "notifications.clear": "Forviŝi sciigojn", "notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?", + "notifications.column_settings.admin.report": "Novaj raportoj:", "notifications.column_settings.admin.sign_up": "Novaj registriĝoj:", - "notifications.column_settings.alert": "Retumilaj sciigoj", - "notifications.column_settings.favourite": "Stelumoj:", + "notifications.column_settings.alert": "Sciigoj de la retumilo", + "notifications.column_settings.favourite": "Preferaĵoj:", "notifications.column_settings.filter_bar.advanced": "Montri ĉiujn kategoriojn", "notifications.column_settings.filter_bar.category": "Rapida filtra breto", - "notifications.column_settings.filter_bar.show_bar": "Montru filtrilon", + "notifications.column_settings.filter_bar.show_bar": "Montri la breton de filtrilo", "notifications.column_settings.follow": "Novaj sekvantoj:", - "notifications.column_settings.follow_request": "Novaj petoj de sekvado:", + "notifications.column_settings.follow_request": "Novaj demandoj de sekvado:", "notifications.column_settings.mention": "Mencioj:", "notifications.column_settings.poll": "Balotenketaj rezultoj:", "notifications.column_settings.push": "Puŝsciigoj", - "notifications.column_settings.reblog": "Diskonigoj:", + "notifications.column_settings.reblog": "Plusendoj:", "notifications.column_settings.show": "Montri en kolumno", "notifications.column_settings.sound": "Eligi sonon", "notifications.column_settings.status": "Novaj mesaĝoj:", @@ -345,8 +421,8 @@ "notifications.column_settings.unread_notifications.highlight": "Marki nelegitajn sciigojn", "notifications.column_settings.update": "Redaktoj:", "notifications.filter.all": "Ĉiuj", - "notifications.filter.boosts": "Diskonigoj", - "notifications.filter.favourites": "Stelumoj", + "notifications.filter.boosts": "Plusendoj", + "notifications.filter.favourites": "Preferaĵoj", "notifications.filter.follows": "Sekvoj", "notifications.filter.mentions": "Mencioj", "notifications.filter.polls": "Balotenketaj rezultoj", @@ -372,22 +448,24 @@ "poll_button.remove_poll": "Forigi balotenketon", "privacy.change": "Agordi mesaĝan privatecon", "privacy.direct.long": "Videbla nur al menciitaj uzantoj", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Nur menciitaj personoj", "privacy.private.long": "Videbla nur al viaj sekvantoj", "privacy.private.short": "Nur abonantoj", "privacy.public.long": "Videbla por ĉiuj", "privacy.public.short": "Publika", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive de la funkcio de esploro", "privacy.unlisted.short": "Nelistigita", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Politiko de privateco", "refresh": "Refreŝigu", "regeneration_indicator.label": "Ŝargado…", - "regeneration_indicator.sublabel": "Via hejma fluo pretiĝas!", + "regeneration_indicator.sublabel": "Via abonfluo estas preparata!", "relative_time.days": "{number}t", - "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", - "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", + "relative_time.full.days": "antaŭ {number, plural, one {# tago} other {# tagoj}}", + "relative_time.full.hours": "antaŭ {number, plural, one {# horo} other {# horoj}}", "relative_time.full.just_now": "ĵus nun", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.full.minutes": "antaŭ {number, plural, one {# minuto} other {# minutoj}}", + "relative_time.full.seconds": "antaŭ {number, plural, one {# sekundo} other {# sekundoj}}", "relative_time.hours": "{number}h", "relative_time.just_now": "nun", "relative_time.minutes": "{number}m", @@ -397,19 +475,19 @@ "report.block": "Bloki", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", "report.categories.other": "Aliaj", - "report.categories.spam": "Spamo", - "report.categories.violation": "Content violates one or more server rules", + "report.categories.spam": "Trudmesaĝo", + "report.categories.violation": "Enhavo malobservas unu aŭ plurajn servilajn regulojn", "report.category.subtitle": "Elektu la plej bonan kongruon", "report.category.title": "Diru al ni kio okazas pri ĉi tiu {type}", "report.category.title_account": "profilo", "report.category.title_status": "afiŝo", "report.close": "Farita", - "report.comment.title": "Is there anything else you think we should know?", + "report.comment.title": "Ĉu estas io alia kion vi pensas ke ni devas scii?", "report.forward": "Plusendi al {target}", - "report.forward_hint": "La konto estas en alia servilo. Ĉu sendi sennomigitan kopion de la signalo ankaŭ tien?", + "report.forward_hint": "La konto estas de alia servilo. Ĉu vi volas sendi anoniman kopion de la raporto ankaŭ al tie?", "report.mute": "Silentigi", - "report.mute_explanation": "Vi ne vidos iliajn afiŝojn. Ili ankoraŭ povas sekvi vin kaj vidi viajn afiŝojn, kaj ne scios ke si estas silentigitaj.", - "report.next": "Sekva", + "report.mute_explanation": "Vi ne vidos iliajn afiŝojn. Ili ankoraŭ povas sekvi vin kaj vidi viajn afiŝojn, kaj ne scios ke ili estas silentigitaj.", + "report.next": "Antaŭen", "report.placeholder": "Pliaj komentoj", "report.reasons.dislike": "Mi ne ŝatas ĝin", "report.reasons.dislike_description": "Ĝi ne estas io, kiun vi volas vidi", @@ -417,21 +495,27 @@ "report.reasons.other_description": "La problemo ne taŭgas en aliaj kategorioj", "report.reasons.spam": "Ĝi estas trudaĵo", "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "Ĝi malrespektas servilajn regulojn", + "report.reasons.violation": "Ĝi malobservas la regulojn de la servilo", "report.reasons.violation_description": "You are aware that it breaks specific rules", "report.rules.subtitle": "Elektu ĉiujn, kiuj validas", "report.rules.title": "Kiuj reguloj estas malobservataj?", "report.statuses.subtitle": "Elektu ĉiujn, kiuj validas", "report.statuses.title": "Are there any posts that back up this report?", "report.submit": "Sendi", - "report.target": "Signali {target}", + "report.target": "Raporti pri {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.title": "Ĉu vi ne volas vidi ĉi tion?", "report.thanks.title_actionable": "Dankon pro raporti, ni esploros ĉi tion.", "report.unfollow": "Malsekvi @{name}", - "report.unfollow_explanation": "Vi estas sekvanta ĉi tiun konton. Por ne plu vidi ties afiŝojn en via hejma templinio, malsekvu ilin.", + "report.unfollow_explanation": "Vi sekvas ĉi tiun konton. Por ne plu vidi ĝiajn abonfluojn en via hejma templinio, ĉesu sekvi ĝin.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Alia", + "report_notification.categories.spam": "Trudmesaĝo", + "report_notification.categories.violation": "Malobservo de la regulo", + "report_notification.open": "Malfermi la raporton", "search.placeholder": "Serĉi", + "search.search_or_paste": "Serĉu aŭ algluu URL-on", "search_popout.search_format": "Detala serĉo", "search_popout.tips.full_text": "Simplaj tekstoj montras la mesaĝojn, kiujn vi skribis, stelumis, diskonigis, aŭ en kiuj vi estis menciita, sed ankaŭ kongruajn uzantnomojn, montratajn nomojn, kaj kradvortojn.", "search_popout.tips.hashtag": "kradvorto", @@ -444,13 +528,23 @@ "search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj", "search_results.statuses": "Mesaĝoj", "search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.", + "search_results.title": "Serĉ-rezultoj por {q}", "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administrata de:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Statistikoj de la servilo:", + "sign_in_banner.create_account": "Krei konton", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Malfermi la kontrolan interfacon por @{name}", "status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco", "status.block": "Bloki @{name}", "status.bookmark": "Aldoni al la legosignoj", - "status.cancel_reblog_private": "Ne plu diskonigi", - "status.cannot_reblog": "Ĉi tiu mesaĝo ne diskonigeblas", + "status.cancel_reblog_private": "Malfari la plusendon", + "status.cannot_reblog": "Ĉi tiu mesaĝo ne povas esti plusendita", "status.copy": "Kopii la ligilon al la mesaĝo", "status.delete": "Forigi", "status.detailed_status": "Detala konversacia vido", @@ -459,8 +553,10 @@ "status.edited": "Redaktita {date}", "status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}", "status.embed": "Enkorpigi", - "status.favourite": "Stelumi", + "status.favourite": "Aldoni al viaj preferaĵoj", + "status.filter": "Filtri ĉi tiun afiŝon", "status.filtered": "Filtrita", + "status.hide": "Kaŝi la mesaĝon", "status.history.created": "{name} kreis {date}", "status.history.edited": "{name} redaktis {date}", "status.load_more": "Ŝargi pli", @@ -469,36 +565,42 @@ "status.more": "Pli", "status.mute": "Silentigi @{name}", "status.mute_conversation": "Silentigi konversacion", - "status.open": "Grandigi ĉi tiun mesaĝon", - "status.pin": "Alpingli profile", + "status.open": "Disvolvi la mesaĝon", + "status.pin": "Alpingli al la profilo", "status.pinned": "Alpinglita mesaĝo", "status.read_more": "Legi pli", - "status.reblog": "Diskonigi", - "status.reblog_private": "Diskonigi al la originala atentaro", - "status.reblogged_by": "{name} diskonigis", - "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.", + "status.reblog": "Plusendi", + "status.reblog_private": "Plusendi kun la originala videbleco", + "status.reblogged_by": "{name} plusendis", + "status.reblogs.empty": "Ankoraŭ neniu plusendis la mesaĝon. Kiam iu faras tion, ili aperos ĉi tie.", "status.redraft": "Forigi kaj reskribi", "status.remove_bookmark": "Forigi legosignon", + "status.replied_to": "Replied to {name}", "status.reply": "Respondi", "status.replyAll": "Respondi al la fadeno", - "status.report": "Signali @{name}", + "status.report": "Raporti @{name}", "status.sensitive_warning": "Tikla enhavo", - "status.share": "Diskonigi", - "status.show_less": "Malgrandigi", - "status.show_less_all": "Malgrandigi ĉiujn", - "status.show_more": "Grandigi", - "status.show_more_all": "Malfoldi ĉiun", - "status.show_thread": "Montri la fadenon", + "status.share": "Kundividi", + "status.show_filter_reason": "Ĉial montri", + "status.show_less": "Montri malpli", + "status.show_less_all": "Montri malpli ĉiun", + "status.show_more": "Montri pli", + "status.show_more_all": "Montri pli ĉiun", + "status.show_original": "Show original", + "status.translate": "Traduki", + "status.translated_from_with": "Tradukita el {lang} per {provider}", "status.uncached_media_warning": "Nedisponebla", "status.unmute_conversation": "Malsilentigi la konversacion", "status.unpin": "Depingli de profilo", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Konservi ŝanĝojn", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Forigi la proponon", "suggestions.header": "Vi povus interesiĝi pri…", - "tabs_bar.federated_timeline": "Fratara templinio", + "tabs_bar.federated_timeline": "Fratara", "tabs_bar.home": "Hejmo", "tabs_bar.local_timeline": "Loka templinio", "tabs_bar.notifications": "Sciigoj", - "tabs_bar.search": "Serĉi", "time_remaining.days": "{number, plural, one {# tago} other {# tagoj}} restas", "time_remaining.hours": "{number, plural, one {# horo} other {# horoj}} restas", "time_remaining.minutes": "{number, plural, one {# minuto} other {# minutoj}} restas", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Sekvantoj", "timeline_hint.resources.follows": "Sekvatoj", "timeline_hint.resources.statuses": "Pli malnovaj mesaĝoj", - "trends.counter_by_accounts": "{count, plural, one {{counter} persono} other {{counter} personoj}} parolante", + "trends.counter_by_accounts": "{count, plural, one {{counter} persono} other {{counter} personoj}} dum la pasinta{days, plural, one { tago} other {j {days} tagoj}}", "trends.trending_now": "Nunaj furoraĵoj", "ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.", "units.short.billion": "{count}Md", @@ -531,15 +633,16 @@ "upload_modal.choose_image": "Elekti bildon", "upload_modal.description_placeholder": "Laŭ Ludoviko Zamenhof bongustas freŝa ĉeĥa manĝaĵo kun spicoj", "upload_modal.detect_text": "Detekti tekston de la bildo", - "upload_modal.edit_media": "Redakti aŭdovidaĵon", + "upload_modal.edit_media": "Redakti la aŭdovidaĵon", "upload_modal.hint": "Klaku aŭ trenu la cirklon en la antaŭvidilo por elekti la fokuspunkton kiu ĉiam videblos en ĉiuj etigitaj bildoj.", "upload_modal.preparing_ocr": "Preparante OSR…", "upload_modal.preview_label": "Antaŭvido ({ratio})", "upload_progress.label": "Alŝutado…", + "upload_progress.processing": "Traktante…", "video.close": "Fermi la videon", "video.download": "Elŝuti dosieron", "video.exit_fullscreen": "Eksigi plenekrana", - "video.expand": "Grandigi la videon", + "video.expand": "Pligrandigi la videon", "video.fullscreen": "Igi plenekrana", "video.hide": "Kaŝi la videon", "video.mute": "Silentigi", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 6f5ebee7099460..74a6acd260742c 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.disclaimer": "Mastodon es software libre y de código abierto y una marca comercial de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Motivo no disponible", + "about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.", + "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busqués explícitamente o sigás alguna cuenta.", + "about.domain_blocks.silenced.title": "Limitados", + "about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.", + "about.domain_blocks.suspended.title": "Suspendidos", + "about.not_available": "Esta información no está disponible en este servidor.", + "about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}", + "about.rules": "Reglas del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agregar o quitar de las listas", "account.badges.bot": "Bot", @@ -7,33 +19,39 @@ "account.block_domain": "Bloquear dominio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Explorar más en el perfil original", - "account.cancel_follow_request": "Cancelar la solicitud de seguimiento", + "account.cancel_follow_request": "Retirar la solicitud de seguimiento", "account.direct": "Mensaje directo a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} envíe mensajes", "account.domain_blocked": "Dominio bloqueado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} envíe mensajes", "account.endorse": "Destacar en el perfil", + "account.featured_tags.last_status_at": "Último mensaje: {date}", + "account.featured_tags.last_status_never": "Sin mensajes", + "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Todavía nadie sigue a este usuario.", "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}", - "account.following": "Seguimientos", + "account.following": "Siguiendo", "account.following_counter": "{count, plural, other {{counter} Siguiendo}}", "account.follows.empty": "Todavía este usuario no sigue a nadie.", "account.follows_you": "Te sigue", + "account.go_to_profile": "Ir al perfil", "account.hide_reblogs": "Ocultar adhesiones de @{name}", - "account.joined": "En este servidor desde {date}", + "account.joined_short": "En este servidor desde", + "account.languages": "Cambiar idiomas suscritos", "account.link_verified_on": "La propiedad de este enlace fue verificada el {date}", "account.locked_info": "Esta cuenta es privada. El propietario manualmente revisa quién puede seguirle.", "account.media": "Medios", "account.mention": "Mencionar a @{name}", - "account.moved_to": "{name} se ha mudó a:", + "account.moved_to": "{name} indicó que su nueva cuenta ahora es:", "account.mute": "Silenciar a @{name}", "account.mute_notifications": "Silenciar notificaciones de @{name}", "account.muted": "Silenciado", + "account.open_original_page": "Abrir página original", "account.posts": "Mensajes", - "account.posts_with_replies": "Mensajes y respuestas públicas", + "account.posts_with_replies": "Mnsjs y resp. públicas", "account.report": "Denunciar a @{name}", "account.requested": "Esperando aprobación. Hacé clic para cancelar la solicitud de seguimiento", "account.share": "Compartir el perfil de @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "¡Epa!", "announcement.announcement": "Anuncio", "attachments_list.unprocessed": "[sin procesar]", + "audio.hide": "Ocultar audio", "autosuggest_hashtag.per_week": "{count} por semana", "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.copy_stacktrace": "Copiar informe de error", + "bundle_column_error.error.body": "La página solicitada no pudo ser cargada. Podría deberse a un error de programación en nuestro código o a un problema de compatibilidad con el navegador web.", + "bundle_column_error.error.title": "¡Epa!", + "bundle_column_error.network.body": "Se produjo un error al intentar cargar esta página. Esto puede deberse a un problema temporal con tu conexión a internet o a este servidor.", + "bundle_column_error.network.title": "Error de red", "bundle_column_error.retry": "Intentá de nuevo", - "bundle_column_error.title": "Error de red", + "bundle_column_error.return": "Volver al inicio", + "bundle_column_error.routing.body": "No se pudo encontrar la página solicitada. ¿Estás seguro que la dirección web es correcta?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Cerrar", "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Intentá de nuevo", + "closed_registrations.other_server_instructions": "Ya que Mastodon es descentralizado, podés crearte una cuenta en otro servidor y todavía interactuar con éste.", + "closed_registrations_modal.description": "Actualmente no es posible la creación de una cuenta en {domain}. pero tené en cuenta que no necesitás una cuenta específica en {domain} para usar Mastodon.", + "closed_registrations_modal.find_another_server": "Buscar otro servidor", + "closed_registrations_modal.preamble": "Mastodon es descentralizado, por lo que no importa dónde creés tu cuenta, podrás seguir e interactuar con cualquier persona en este servidor. ¡Incluso podés montar tu propio servidor!", + "closed_registrations_modal.title": "Registrarse en Mastodon", + "column.about": "Información", "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea temporal local", @@ -95,7 +126,7 @@ "compose.language.change": "Cambiar idioma", "compose.language.search": "Buscar idiomas…", "compose_form.direct_message_warning_learn_more": "Aprendé más", - "compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información sensible al usar Mastodon.", + "compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No compartas ninguna información sensible al usar Mastodon.", "compose_form.hashtag_warning": "Este mensaje no se mostrará bajo ninguna etiqueta porque no es público. Sólo los mensajes públicos se pueden buscar por etiquetas.", "compose_form.lock_disclaimer": "Tu cuenta no es {locked}. Todos pueden seguirte para ver tus mensajes marcados como \"Sólo para seguidores\".", "compose_form.lock_disclaimer.lock": "privada", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Quitar esta opción", "compose_form.poll.switch_to_multiple": "Cambiar encuesta para permitir opciones múltiples", "compose_form.poll.switch_to_single": "Cambiar encuesta para permitir una sola opción", - "compose_form.publish": "Enviar", + "compose_form.publish": "Publicar", "compose_form.publish_loud": "¡{publish}!", "compose_form.save_changes": "Guardar cambios", "compose_form.sensitive.hide": "Marcar medio como sensible", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloquear y denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro que querés bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitud", + "confirmations.cancel_follow_request.message": "¿Estás seguro que querés retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro que querés eliminar este mensaje?", "confirmations.delete_list.confirm": "Eliminar", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marcar como leída", "conversation.open": "Ver conversación", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Desde fediverso conocido", "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activos", + "disabled_account_banner.account_settings": "Config. de la cuenta", + "disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.", + "dismissable_banner.community_timeline": "Estos son los mensajes públicos más recientes de cuentas alojadas en {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada ahora mismo.", + "dismissable_banner.explore_statuses": "Estos mensajes de este y otros servidores en la red descentralizada están ganando tracción en este servidor ahora mismo.", + "dismissable_banner.explore_tags": "Estas etiquetas están ganando tracción entre la gente en este y otros servidores de la red descentralizada ahora mismo.", + "dismissable_banner.public_timeline": "Estos son los mensajes públicos más recientes de personas en este y otros servidores de la red descentralizada que este servidor conoce.", "embed.instructions": "Insertá este mensaje a tu sitio web copiando el código de abajo.", "embed.preview": "Así es cómo se verá:", "emoji_button.activity": "Actividad", @@ -196,21 +239,37 @@ "explore.trending_links": "Noticias", "explore.trending_statuses": "Mensajes", "explore.trending_tags": "Etiquetas", + "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que accediste a este mensaje. Si querés que el mensaje sea filtrado también en este contexto, vas a tener que editar el filtro.", + "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!", + "filter_modal.added.expired_explanation": "Esta categoría de filtro caducó; vas a necesitar cambiar la fecha de caducidad para que se aplique.", + "filter_modal.added.expired_title": "¡Filtro caducado!", + "filter_modal.added.review_and_configure": "Para revisar y configurar esta categoría de filtros, visitá a la {settings_link}.", + "filter_modal.added.review_and_configure_title": "Configuración de filtro", + "filter_modal.added.settings_link": "página de configuración", + "filter_modal.added.short_explanation": "Este mensaje fue agregado a la siguiente categoría de filtros: {title}.", + "filter_modal.added.title": "¡Filtro agregado!", + "filter_modal.select_filter.context_mismatch": "no aplica a este contexto", + "filter_modal.select_filter.expired": "expirado", + "filter_modal.select_filter.prompt_new": "Nueva categoría: {name}", + "filter_modal.select_filter.search": "Buscar o crear", + "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", + "filter_modal.select_filter.title": "Filtrar este mensaje", + "filter_modal.title.status": "Filtrar un mensaje", "follow_recommendations.done": "Listo", "follow_recommendations.heading": "¡Seguí cuentas cuyos mensajes te gustaría ver! Acá tenés algunas sugerencias.", "follow_recommendations.lead": "Los mensajes de las cuentas que seguís aparecerán en orden cronológico en la columna \"Inicio\". No tengás miedo de meter la pata, ¡podés dejar de seguir cuentas fácilmente en cualquier momento!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.", + "footer.about": "Información", + "footer.directory": "Directorio de perfiles", + "footer.get_app": "Conseguí la aplicación", + "footer.invite": "Invitá a gente", + "footer.keyboard_shortcuts": "Atajos de teclado", + "footer.privacy_policy": "Política de privacidad", + "footer.source_code": "Ver código fuente", "generic.saved": "Guardado", - "getting_started.developers": "Desarrolladores", - "getting_started.directory": "Directorio de perfiles", - "getting_started.documentation": "Documentación", - "getting_started.heading": "Introducción", - "getting_started.invite": "Invitar gente", - "getting_started.open_source_notice": "Mastodon es software libre. Podés contribuir o informar errores en {github}.", - "getting_started.security": "Configuración de la cuenta", - "getting_started.terms": "Términos del servicio", + "getting_started.heading": "Inicio de Mastodon", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sin {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estas", "hashtag.column_settings.tag_mode.none": "Ninguna de estas", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales para esta columna", + "hashtag.follow": "Seguir etiqueta", + "hashtag.unfollow": "Dejar de seguir etiqueta", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar adhesiones", "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, podés marcar este mensaje como favorito para que el autor sepa que lo apreciás y lo guardás para más adelante.", + "interaction_modal.description.follow": "Con una cuenta en Mastodon, podés seguir a {name} para recibir sus mensajes en tu línea temporal principal.", + "interaction_modal.description.reblog": "Con una cuenta en Mastodon, podés adherir a este mensaje para compartirlo con tus propios seguidores.", + "interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.", + "interaction_modal.on_another_server": "En un servidor diferente", + "interaction_modal.on_this_server": "En este servidor", + "interaction_modal.other_server_instructions": "Copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita de Mastodon, o en la interface web de tu servidor de Mastodon.", + "interaction_modal.preamble": "Ya que Mastodon es descentralizado, podés usar tu cuenta existente alojada por otro servidor Mastodon (u otra plataforma compatible, si no tenés una cuenta en ésta).", + "interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Adherir al mensaje de {name}", + "interaction_modal.title.reply": "Responder al mensaje de {name}", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Siguiente", "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostrar perfil de todos modos", - "limited_account_hint.title": "Este perfil fue ocultado por los moderadores de tu servidor.", + "limited_account_hint.title": "Este perfil fue ocultado por los moderadores de {domain}.", "lists.account.add": "Agregar a lista", "lists.account.remove": "Quitar de lista", "lists.delete": "Eliminar lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Ocultar {number, plural, one {imagen} other {imágenes}}", "missing_indicator.label": "No se encontró", "missing_indicator.sublabel": "No se encontró este recurso", + "moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te mudaste a {movedToAccount}.", "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "¿Querés ocultar las notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicaciones móviles", + "navigation_bar.about": "Información", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Línea temporal local", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes de seguimiento", "navigation_bar.follows_and_followers": "Cuentas seguidas y seguidores", - "navigation_bar.info": "Este servidor", - "navigation_bar.keyboard_shortcuts": "Atajos", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Cerrar sesión", "navigation_bar.mutes": "Usuarios silenciados", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Mensajes fijados", "navigation_bar.preferences": "Configuración", "navigation_bar.public_timeline": "Línea temporal federada", + "navigation_bar.search": "Buscar", "navigation_bar.security": "Seguridad", + "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", + "notification.admin.report": "{name} denunció a {target}", "notification.admin.sign_up": "Se registró {name}", "notification.favourite": "{name} marcó tu mensaje como favorito", "notification.follow": "{name} te empezó a seguir", @@ -326,6 +401,7 @@ "notification.update": "{name} editó un mensaje", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?", + "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", "notifications.column_settings.favourite": "Favoritos:", @@ -379,6 +455,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visible para todos, pero excluido de las características de descubrimiento", "privacy.unlisted.short": "No listado", + "privacy_policy.last_updated": "Última actualización: {date}", + "privacy_policy.title": "Política de privacidad", "refresh": "Refrescar", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Se está preparando tu línea temporal principal!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Gracias por tu denuncia, vamos a revisarla.", "report.unfollow": "Dejar de seguir a @{name}", "report.unfollow_explanation": "Estás siguiendo a esta cuenta. Para no ver sus mensajes en tu línea temporal principal, dejá de seguirla.", + "report_notification.attached_statuses": "{count, plural, one {{count} mensaje adjunto} other {{count} mensajes adjuntos}}", + "report_notification.categories.other": "Otros", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Violación de regla", + "report_notification.open": "Abrir denuncia", "search.placeholder": "Buscar", + "search.search_or_paste": "Buscar o pegar dirección web", "search_popout.search_format": "Formato de búsqueda avanzada", "search_popout.tips.full_text": "Las búsquedas de texto simple devuelven los mensajes que escribiste, los marcados como favoritos, los adheridos o en los que te mencionaron, así como nombres de usuarios, nombres mostrados y etiquetas.", "search_popout.tips.hashtag": "etiqueta", @@ -444,7 +528,17 @@ "search_results.nothing_found": "No se pudo encontrar nada para estos términos de búsqueda", "search_results.statuses": "Mensajes", "search_results.statuses_fts_disabled": "No se pueden buscar mensajes por contenido en este servidor de Mastodon.", + "search_results.title": "Buscar {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Personas usando este servidor durante los últimos 30 días (Usuarios Activos Mensuales)", + "server_banner.active_users": "usuarios activos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} es parte de la red social descentralizada con la tecnología de {mastodon}.", + "server_banner.learn_more": "Aprendé más", + "server_banner.server_stats": "Estadísticas del servidor:", + "sign_in_banner.create_account": "Crear cuenta", + "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.text": "Iniciá sesión para seguir cuentas o etiquetas, marcar mensajes como favoritos, compartirlos y responderlos o interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_status": "Abrir este mensaje en la interface de moderación", "status.block": "Bloquear a @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Insertar", "status.favourite": "Marcar como favorito", + "status.filter": "Filtrar este mensaje", "status.filtered": "Filtrado", + "status.hide": "Ocultar mensaje", "status.history.created": "Creado por {name} el {date}", "status.history.edited": "Editado por {name} el {date}", "status.load_more": "Cargar más", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.", "status.redraft": "Eliminar mensaje original y editarlo", "status.remove_bookmark": "Quitar marcador", + "status.replied_to": "Respondió a {name}", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Denunciar a @{name}", "status.sensitive_warning": "Contenido sensible", "status.share": "Compartir", + "status.show_filter_reason": "Mostrar de todos modos", "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": "Mostrar hilo", + "status.show_original": "Mostrar original", + "status.translate": "Traducir", + "status.translated_from_with": "Traducido desde el {lang} vía {provider}", "status.uncached_media_warning": "No disponible", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", + "subscribed_languages.lead": "Después del cambio, sólo los mensajes en los idiomas seleccionados aparecerán en tu línea temporal Principal y en las líneas de tiempo de lista. No seleccionés ningún idioma para poder recibir mensajes en todos los idiomas.", + "subscribed_languages.save": "Guardar cambios", + "subscribed_languages.target": "Cambiar idiomas suscritos para {target}", "suggestions.dismiss": "Descartar sugerencia", "suggestions.header": "Es posible que te interese…", "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Principal", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificaciones", - "tabs_bar.search": "Buscar", "time_remaining.days": "{number, plural,one {queda # día} other {quedan # días}}", "time_remaining.hours": "{number, plural,one {queda # hora} other {quedan # horas}}", "time_remaining.minutes": "{number, plural,one {queda # minuto} other {quedan # minutos}}", @@ -508,12 +610,12 @@ "timeline_hint.resources.followers": "Tus seguidores", "timeline_hint.resources.follows": "Las cuentas que seguís", "timeline_hint.resources.statuses": "Mensajes más antiguos", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} hablando", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en el/los pasado/s {days, plural, one {día} other {{days} días}}", "trends.trending_now": "Tendencia ahora", "ui.beforeunload": "Tu borrador se perderá si abandonás Mastodon.", "units.short.billion": "{count}MM", - "units.short.million": "{count}M", - "units.short.thousand": "{count}mil", + "units.short.million": "{count} M", + "units.short.thousand": "{count} mil", "upload_area.title": "Para subir, arrastrá y soltá", "upload_button.label": "Agregá imágenes, o un archivo de audio o video", "upload_error.limit": "Se excedió el límite de subida de archivos.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparando OCR…", "upload_modal.preview_label": "Previsualización ({ratio})", "upload_progress.label": "Subiendo...", + "upload_progress.processing": "Procesando…", "video.close": "Cerrar video", "video.download": "Descargar archivo", "video.exit_fullscreen": "Salir de la pantalla completa", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index bb18bfa959df0a..ffa2c6185b61b2 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.", + "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.", + "about.domain_blocks.silenced.title": "Limitado", + "about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.", + "about.domain_blocks.suspended.title": "Suspendido", + "about.not_available": "Esta información no está disponible en este servidor.", + "about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}", + "about.rules": "Reglas del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agregar o eliminar de las listas", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Bloquear dominio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Ver más en el perfil original", - "account.cancel_follow_request": "Cancelar la solicitud de seguimiento", + "account.cancel_follow_request": "Retirar solicitud de seguimiento", "account.direct": "Mensaje directo a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", "account.domain_blocked": "Dominio oculto", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Destacar en mi perfil", + "account.featured_tags.last_status_at": "Última publicación el {date}", + "account.featured_tags.last_status_never": "Sin publicaciones", + "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Todavía nadie sigue a este usuario.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, other {{counter} Siguiendo}}", "account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows_you": "Te sigue", + "account.go_to_profile": "Ir al perfil", "account.hide_reblogs": "Ocultar retoots de @{name}", - "account.joined": "Se unió el {date}", + "account.joined_short": "Se unió", + "account.languages": "Cambiar idiomas suscritos", "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.mention": "Mencionar @{name}", - "account.moved_to": "{name} se ha mudado a:", + "account.moved_to": "{name} ha indicado que su nueva cuenta es ahora:", "account.mute": "Silenciar a @{name}", "account.mute_notifications": "Silenciar notificaciones de @{name}", "account.muted": "Silenciado", + "account.open_original_page": "Open original page", "account.posts": "Publicaciones", "account.posts_with_replies": "Publicaciones y respuestas", "account.report": "Reportar a @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "¡Ups!", "announcement.announcement": "Anuncio", "attachments_list.unprocessed": "(sin procesar)", + "audio.hide": "Ocultar audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", - "bundle_column_error.body": "Algo salió mal al cargar este componente.", + "bundle_column_error.copy_stacktrace": "Copiar informe de error", + "bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.", + "bundle_column_error.error.title": "¡Oh, no!", + "bundle_column_error.network.body": "Se ha producido un error al intentar cargar esta página. Esto puede deberse a un problema temporal con tu conexión a internet o a este servidor.", + "bundle_column_error.network.title": "Error de red", "bundle_column_error.retry": "Inténtalo de nuevo", - "bundle_column_error.title": "Error de red", + "bundle_column_error.return": "Volver al inicio", + "bundle_column_error.routing.body": "No se pudo encontrar la página solicitada. ¿Estás seguro de que la URL en la barra de direcciones es correcta?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Cerrar", "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Inténtalo de nuevo", + "closed_registrations.other_server_instructions": "Como Mastodon es descentralizado, puedes crear una cuenta en otro servidor y seguir interactuando con este.", + "closed_registrations_modal.description": "La creación de una cuenta en {domain} no es posible actualmente, pero ten en cuenta que no necesitas una cuenta específicamente en {domain} para usar Mastodon.", + "closed_registrations_modal.find_another_server": "Buscar otro servidor", + "closed_registrations_modal.preamble": "Mastodon es descentralizado, por lo que no importa dónde crees tu cuenta, podrás seguir e interactuar con cualquier persona en este servidor. ¡Incluso puedes alojarlo tú mismo!", + "closed_registrations_modal.title": "Registrarse en Mastodon", + "column.about": "Acerca de", "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea de tiempo local", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Solo local", "community.column_settings.media_only": "Solo media", "community.column_settings.remote_only": "Solo remoto", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Cambiar idioma", + "compose.language.search": "Buscar idiomas...", "compose_form.direct_message_warning_learn_more": "Aprender mas", - "compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información confidencial en Mastodon.", + "compose_form.encryption_warning": "Las publicaciones en Mastodon no están cifradas de extremo a extremo. No comparta ninguna información sensible en Mastodon.", "compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.", "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones", "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción", - "compose_form.publish": "Tootear", + "compose_form.publish": "Publicar", "compose_form.publish_loud": "¡{publish}!", "compose_form.save_changes": "Guardar cambios", "compose_form.sensitive.hide": "Marcar multimedia como sensible", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloquear y Reportar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitud", + "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?", "confirmations.delete_list.confirm": "Eliminar", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Marcar como leído", "conversation.open": "Ver conversación", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activo", + "disabled_account_banner.account_settings": "Ajustes de la cuenta", + "disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.", + "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.explore_statuses": "Estas publicaciones de este y otros servidores en la red descentralizada están ganando popularidad en este servidor en este momento.", + "dismissable_banner.explore_tags": "Estas tendencias están ganando popularidad entre la gente en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.public_timeline": "Estas son las publicaciones públicas más recientes de personas en este y otros servidores de la red descentralizada que este servidor conoce.", "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Limpiar", "emoji_button.custom": "Personalizado", "emoji_button.flags": "Marcas", "emoji_button.food": "Comida y bebida", @@ -196,21 +239,37 @@ "explore.trending_links": "Noticias", "explore.trending_statuses": "Publicaciones", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que ha accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.", + "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!", + "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitará cambiar la fecha de caducidad para que se aplique.", + "filter_modal.added.expired_title": "¡Filtro caducado!", + "filter_modal.added.review_and_configure": "Para revisar y configurar esta categoría de filtros, vaya a {settings_link}.", + "filter_modal.added.review_and_configure_title": "Ajustes de filtro", + "filter_modal.added.settings_link": "página de ajustes", + "filter_modal.added.short_explanation": "Esta publicación ha sido añadida a la siguiente categoría de filtros: {title}.", + "filter_modal.added.title": "¡Filtro añadido!", + "filter_modal.select_filter.context_mismatch": "no se aplica a este contexto", + "filter_modal.select_filter.expired": "expirado", + "filter_modal.select_filter.prompt_new": "Nueva categoría: {name}", + "filter_modal.select_filter.search": "Buscar o crear", + "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", + "filter_modal.select_filter.title": "Filtrar esta publicación", + "filter_modal.title.status": "Filtrar una publicación", "follow_recommendations.done": "Hecho", "follow_recommendations.heading": "¡Sigue a gente que publique cosas que te gusten! Aquí tienes algunas sugerencias.", "follow_recommendations.lead": "Las publicaciones de la gente a la que sigas aparecerán ordenadas cronológicamente en Inicio. No tengas miedo de cometer errores, ¡puedes dejarles de seguir en cualquier momento con la misma facilidad!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", + "footer.about": "Acerca de", + "footer.directory": "Directorio de perfiles", + "footer.get_app": "Obtener la aplicación", + "footer.invite": "Invitar gente", + "footer.keyboard_shortcuts": "Atajos de teclado", + "footer.privacy_policy": "Política de privacidad", + "footer.source_code": "Ver código fuente", "generic.saved": "Guardado", - "getting_started.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}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Seguir etiqueta", + "hashtag.unfollow": "Dejar de seguir etiqueta", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta y guardarla así para más adelante.", + "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.", + "interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.", + "interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.", + "interaction_modal.on_another_server": "En un servidor diferente", + "interaction_modal.on_this_server": "En este servidor", + "interaction_modal.other_server_instructions": "Copia y pega esta URL en la barra de búsqueda de tu aplicación Mastodon favorita o la interfaz web de tu servidor Mastodon.", + "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Impulsar la publicación de {name}", + "interaction_modal.title.reply": "Responder a la publicación de {name}", "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}}", @@ -267,8 +340,8 @@ "lightbox.expand": "Expandir cuadro de visualización de imagen", "lightbox.next": "Siguiente", "lightbox.previous": "Anterior", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Mostrar perfil de todos modos", + "limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.", "lists.account.add": "Añadir a lista", "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Cambiar visibilidad", "missing_indicator.label": "No encontrado", "missing_indicator.sublabel": "No se encontró este recurso", + "moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.", "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicaciones móviles", + "navigation_bar.about": "Acerca de", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Historia local", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Toots fijados", "navigation_bar.preferences": "Preferencias", "navigation_bar.public_timeline": "Historia federada", + "navigation_bar.search": "Buscar", "navigation_bar.security": "Seguridad", + "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", + "notification.admin.report": "{name} informó {target}", "notification.admin.sign_up": "{name} se unio", "notification.favourite": "{name} marcó tu estado como favorito", "notification.follow": "{name} te empezó a seguir", @@ -326,6 +401,7 @@ "notification.update": "{name} editó una publicación", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?", + "notifications.column_settings.admin.report": "Nuevos informes:", "notifications.column_settings.admin.sign_up": "Registros nuevos:", "notifications.column_settings.alert": "Notificaciones de escritorio", "notifications.column_settings.favourite": "Favoritos:", @@ -379,6 +455,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento", "privacy.unlisted.short": "No listado", + "privacy_policy.last_updated": "Ultima vez actualizado {date}", + "privacy_policy.title": "Política de Privacidad", "refresh": "Actualizar", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.", "report.unfollow": "Dejar de seguir @{name}", "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu sección de noticias, deja de seguirlo.", + "report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)", + "report_notification.categories.other": "Otros", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Infracción de regla", + "report_notification.open": "Abrir informe", "search.placeholder": "Buscar", + "search.search_or_paste": "Buscar o pegar URL", "search_popout.search_format": "Formato de búsqueda avanzada", "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.", "search_popout.tips.hashtag": "etiqueta", @@ -444,7 +528,17 @@ "search_results.nothing_found": "No se pudo encontrar nada para estos términos de busqueda", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.", + "search_results.title": "Buscar {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Usuarios activos en el servidor durante los últimos 30 días (Usuarios Activos Mensuales)", + "server_banner.active_users": "usuarios activos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} es parte de la red social descentralizada liderada por {mastodon}.", + "server_banner.learn_more": "Saber más", + "server_banner.server_stats": "Estadísticas del servidor:", + "sign_in_banner.create_account": "Crear cuenta", + "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.text": "Inicia sesión en este servidor para seguir perfiles o etiquetas, guardar, compartir y responder a mensajes. También puedes interactuar desde otra cuenta en un servidor diferente.", "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}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}", "status.embed": "Incrustado", "status.favourite": "Favorito", + "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", + "status.hide": "Ocultar publicación", "status.history.created": "{name} creó {date}", "status.history.edited": "{name} editado {date}", "status.load_more": "Cargar más", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", + "status.replied_to": "Respondió a {name}", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Reportar", "status.sensitive_warning": "Contenido sensible", "status.share": "Compartir", + "status.show_filter_reason": "Mostrar de todos modos", "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": "Mostrar hilo", + "status.show_original": "Mostrar original", + "status.translate": "Traducir", + "status.translated_from_with": "Traducido de {lang} usando {provider}", "status.uncached_media_warning": "No disponible", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", + "subscribed_languages.lead": "Sólo los mensajes en los idiomas seleccionados aparecerán en su inicio y otras líneas de tiempo después del cambio. Seleccione ninguno para recibir mensajes en todos los idiomas.", + "subscribed_languages.save": "Guardar cambios", + "subscribed_languages.target": "Cambiar idiomas suscritos para {target}", "suggestions.dismiss": "Descartar sugerencia", "suggestions.header": "Es posible que te interese…", "tabs_bar.federated_timeline": "Federado", "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Reciente", "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}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Seguidores", "timeline_hint.resources.follows": "Seguidos", "timeline_hint.resources.statuses": "Toots más antiguos", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} hablando", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en los últimos {days, plural, one {días} other {{days} días}}", "trends.trending_now": "Tendencia ahora", "ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.", "units.short.billion": "{count} MM", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparando OCR…", "upload_modal.preview_label": "Vista previa ({ratio})", "upload_progress.label": "Subiendo…", + "upload_progress.processing": "Procesando…", "video.close": "Cerrar video", "video.download": "Descargar archivo", "video.exit_fullscreen": "Salir de pantalla completa", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 0fef6af612c53f..e9ae96ca5cc1f5 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.disclaimer": "Mastodon es software de código abierto, y una marca comercial de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Razón no disponible", + "about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.", + "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.", + "about.domain_blocks.silenced.title": "Limitado", + "about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.", + "about.domain_blocks.suspended.title": "Suspendido", + "about.not_available": "Esta información no está disponible en este servidor.", + "about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}", + "about.rules": "Reglas del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agregar o eliminar de listas", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Bloquear dominio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Ver más en el perfil original", - "account.cancel_follow_request": "Cancelar la solicitud de seguimiento", + "account.cancel_follow_request": "Retirar solicitud de seguimiento", "account.direct": "Mensaje directo a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", "account.domain_blocked": "Dominio oculto", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Mostrar en perfil", + "account.featured_tags.last_status_at": "Última publicación el {date}", + "account.featured_tags.last_status_never": "Sin publicaciones", + "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Todavía nadie sigue a este usuario.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, other {{counter} Siguiendo}}", "account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows_you": "Te sigue", + "account.go_to_profile": "Ir al perfil", "account.hide_reblogs": "Ocultar retoots de @{name}", - "account.joined": "Se unió el {date}", + "account.joined_short": "Se unió", + "account.languages": "Cambiar idiomas suscritos", "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.mention": "Mencionar a @{name}", - "account.moved_to": "{name} se ha mudado a:", + "account.moved_to": "{name} ha indicado que su nueva cuenta es ahora:", "account.mute": "Silenciar a @{name}", "account.mute_notifications": "Silenciar notificaciones de @{name}", "account.muted": "Silenciado", + "account.open_original_page": "Abrir página original", "account.posts": "Publicaciones", "account.posts_with_replies": "Publicaciones y respuestas", "account.report": "Reportar a @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "¡Ups!", "announcement.announcement": "Anuncio", "attachments_list.unprocessed": "(sin procesar)", + "audio.hide": "Ocultar audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", - "bundle_column_error.body": "Algo salió mal al cargar este componente.", + "bundle_column_error.copy_stacktrace": "Copiar informe de error", + "bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.", + "bundle_column_error.error.title": "¡Oh, no!", + "bundle_column_error.network.body": "Se ha producido un error al intentar cargar esta página. Esto puede deberse a un problema temporal con tu conexión a internet o a este servidor.", + "bundle_column_error.network.title": "Error de red", "bundle_column_error.retry": "Inténtalo de nuevo", - "bundle_column_error.title": "Error de red", + "bundle_column_error.return": "Volver al inicio", + "bundle_column_error.routing.body": "No se pudo encontrar la página solicitada. ¿Estás seguro de que la URL en la barra de direcciones es correcta?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Cerrar", "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Inténtalo de nuevo", + "closed_registrations.other_server_instructions": "Como Mastodon es descentralizado, puedes crear una cuenta en otro servidor y seguir interactuando con este.", + "closed_registrations_modal.description": "La creación de una cuenta en {domain} no es posible actualmente, pero ten en cuenta que no necesitas una cuenta específicamente en {domain} para usar Mastodon.", + "closed_registrations_modal.find_another_server": "Buscar otro servidor", + "closed_registrations_modal.preamble": "Mastodon es descentralizado, por lo que no importa dónde crees tu cuenta, podrás seguir e interactuar con cualquier persona en este servidor. ¡Incluso puedes alojarlo tú mismo!", + "closed_registrations_modal.title": "Registrarse en Mastodon", + "column.about": "Acerca de", "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea de tiempo local", @@ -95,7 +126,7 @@ "compose.language.change": "Cambiar idioma", "compose.language.search": "Buscar idiomas...", "compose_form.direct_message_warning_learn_more": "Aprender más", - "compose_form.encryption_warning": "Los mensajes en Mastodon no están cifrados de extremo a extremo. No comparta ninguna información confidencial en Mastodon.", + "compose_form.encryption_warning": "Las publicaciones en Mastodon no están cifradas de extremo a extremo. No comparta ninguna información sensible en Mastodon.", "compose_form.hashtag_warning": "Esta publicación no se mostrará bajo ningún hashtag porque no está listada. Sólo las publicaciones públicas se pueden buscar por hashtag.", "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus publicaciones solo para seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones", "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción", - "compose_form.publish": "Tootear", + "compose_form.publish": "Publicar", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Guardar cambios", "compose_form.sensitive.hide": "{count, plural, one {Marcar material como sensible} other {Marcar material como sensible}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloquear y Reportar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitud", + "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro de que quieres borrar esta publicación?", "confirmations.delete_list.confirm": "Eliminar", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marcar como leído", "conversation.open": "Ver conversación", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activo", + "disabled_account_banner.account_settings": "Ajustes de la cuenta", + "disabled_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada.", + "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.explore_statuses": "Estas publicaciones de este y otros servidores en la red descentralizada están ganando popularidad en este servidor en este momento.", + "dismissable_banner.explore_tags": "Estas tendencias están ganando popularidad entre la gente en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.public_timeline": "Estas son las publicaciones públicas más recientes de personas en este y otros servidores de la red descentralizada que este servidor conoce.", "embed.instructions": "Añade esta publicación a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", @@ -196,21 +239,37 @@ "explore.trending_links": "Noticias", "explore.trending_statuses": "Publicaciones", "explore.trending_tags": "Etiquetas", + "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que ha accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.", + "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!", + "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitará cambiar la fecha de caducidad para que se aplique.", + "filter_modal.added.expired_title": "¡Filtro caducado!", + "filter_modal.added.review_and_configure": "Para revisar y configurar esta categoría de filtros, vaya a {settings_link}.", + "filter_modal.added.review_and_configure_title": "Ajustes de filtro", + "filter_modal.added.settings_link": "página de ajustes", + "filter_modal.added.short_explanation": "Esta publicación ha sido añadida a la siguiente categoría de filtros: {title}.", + "filter_modal.added.title": "¡Filtro añadido!", + "filter_modal.select_filter.context_mismatch": "no se aplica a este contexto", + "filter_modal.select_filter.expired": "expirado", + "filter_modal.select_filter.prompt_new": "Nueva categoría: {name}", + "filter_modal.select_filter.search": "Buscar o crear", + "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", + "filter_modal.select_filter.title": "Filtrar esta publicación", + "filter_modal.title.status": "Filtrar una publicación", "follow_recommendations.done": "Hecho", "follow_recommendations.heading": "¡Sigue a gente que publique cosas que te gusten! Aquí tienes algunas sugerencias.", "follow_recommendations.lead": "Las publicaciones de la gente a la que sigas aparecerán ordenadas cronológicamente en Inicio. No tengas miedo de cometer errores, ¡puedes dejarles de seguir en cualquier momento con la misma facilidad!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", + "footer.about": "Acerca de", + "footer.directory": "Directorio de perfiles", + "footer.get_app": "Obtener la aplicación", + "footer.invite": "Invitar gente", + "footer.keyboard_shortcuts": "Atajos de teclado", + "footer.privacy_policy": "Política de privacidad", + "footer.source_code": "Ver código fuente", "generic.saved": "Guardado", - "getting_started.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}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Seguir etiqueta", + "hashtag.unfollow": "Dejar de seguir etiqueta", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta y guardarla así para más adelante.", + "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.", + "interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.", + "interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.", + "interaction_modal.on_another_server": "En un servidor diferente", + "interaction_modal.on_this_server": "En este servidor", + "interaction_modal.other_server_instructions": "Copia y pega esta URL en la barra de búsqueda de tu aplicación Mastodon favorita o la interfaz web de tu servidor Mastodon.", + "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Impulsar la publicación de {name}", + "interaction_modal.title.reply": "Responder a la publicación de {name}", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Siguiente", "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostrar perfil de todos modos", - "limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de tu servidor.", + "limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.", "lists.account.add": "Añadir a lista", "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Cambiar visibilidad", "missing_indicator.label": "No encontrado", "missing_indicator.sublabel": "No se encontró este recurso", + "moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.", "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicaciones móviles", + "navigation_bar.about": "Acerca de", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Línea de tiempo local", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Publicaciones fijadas", "navigation_bar.preferences": "Preferencias", "navigation_bar.public_timeline": "Línea de tiempo federada", + "navigation_bar.search": "Buscar", "navigation_bar.security": "Seguridad", + "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", + "notification.admin.report": "{name} informó {target}", "notification.admin.sign_up": "{name} se registró", "notification.favourite": "{name} marcó tu estado como favorito", "notification.follow": "{name} te empezó a seguir", @@ -326,6 +401,7 @@ "notification.update": "{name} editó una publicación", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?", + "notifications.column_settings.admin.report": "Nuevos informes:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", "notifications.column_settings.favourite": "Favoritos:", @@ -379,6 +455,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento", "privacy.unlisted.short": "No listado", + "privacy_policy.last_updated": "Ultima vez actualizado {date}", + "privacy_policy.title": "Política de Privacidad", "refresh": "Actualizar", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!", @@ -423,7 +501,7 @@ "report.rules.title": "¿Qué normas se están violando?", "report.statuses.subtitle": "Selecciona todos los que correspondan", "report.statuses.title": "¿Hay alguna publicación que respalde este informe?", - "report.submit": "Publicar", + "report.submit": "Enviar", "report.target": "Reportando", "report.thanks.take_action": "Aquí están tus opciones para controlar lo que ves en Mastodon:", "report.thanks.take_action_actionable": "Mientras revisamos esto, puedes tomar medidas contra @{name}:", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.", "report.unfollow": "Dejar de seguir a @{name}", "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu muro de inicio, deja de seguirla.", + "report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)", + "report_notification.categories.other": "Otros", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Infracción de regla", + "report_notification.open": "Abrir informe", "search.placeholder": "Buscar", + "search.search_or_paste": "Buscar o pegar URL", "search_popout.search_format": "Formato de búsqueda avanzada", "search_popout.tips.full_text": "Las búsquedas de texto recuperan publicaciones que has escrito, marcado como favoritas, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.", "search_popout.tips.hashtag": "etiqueta", @@ -444,7 +528,17 @@ "search_results.nothing_found": "No se pudo encontrar nada para estos términos de búsqueda", "search_results.statuses": "Publicaciones", "search_results.statuses_fts_disabled": "Buscar publicaciones por su contenido no está disponible en este servidor de Mastodon.", + "search_results.title": "Buscar {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Usuarios activos en el servidor durante los últimos 30 días (Usuarios Activos Mensuales)", + "server_banner.active_users": "usuarios activos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} es parte de la red social descentralizada liderada por {mastodon}.", + "server_banner.learn_more": "Saber más", + "server_banner.server_stats": "Estadísticas del servidor:", + "sign_in_banner.create_account": "Crear cuenta", + "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.text": "Inicia sesión en este servidor para seguir perfiles o etiquetas, guardar, compartir y responder a mensajes. También puedes interactuar desde otra cuenta en un servidor diferente.", "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}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustado", "status.favourite": "Favorito", + "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", + "status.hide": "Ocultar publicación", "status.history.created": "{name} creó {date}", "status.history.edited": "{name} editó {date}", "status.load_more": "Cargar más", @@ -474,31 +570,37 @@ "status.pinned": "Publicación fijada", "status.read_more": "Leer más", "status.reblog": "Retootear", - "status.reblog_private": "Implusar a la audiencia original", + "status.reblog_private": "Impulsar a la audiencia original", "status.reblogged_by": "Retooteado por {name}", "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", + "status.replied_to": "Respondió a {name}", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Reportar", "status.sensitive_warning": "Contenido sensible", "status.share": "Compartir", + "status.show_filter_reason": "Mostrar de todos modos", "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": "Mostrar hilo", + "status.show_original": "Mostrar original", + "status.translate": "Traducir", + "status.translated_from_with": "Traducido de {lang} usando {provider}", "status.uncached_media_warning": "No disponible", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", + "subscribed_languages.lead": "Sólo los mensajes en los idiomas seleccionados aparecerán en su inicio y otras líneas de tiempo después del cambio. Seleccione ninguno para recibir mensajes en todos los idiomas.", + "subscribed_languages.save": "Guardar cambios", + "subscribed_languages.target": "Cambiar idiomas suscritos para {target}", "suggestions.dismiss": "Descartar sugerencia", "suggestions.header": "Es posible que te interese…", "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Inicio", "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}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Seguidores", "timeline_hint.resources.follows": "Seguidos", "timeline_hint.resources.statuses": "Publicaciones más antiguas", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} hablando", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en los últimos {days, plural, one {días} other {{days} días}}", "trends.trending_now": "Tendencia ahora", "ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.", "units.short.billion": "{count} MM", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparando OCR…", "upload_modal.preview_label": "Vista previa ({ratio})", "upload_progress.label": "Subiendo…", + "upload_progress.processing": "Procesando…", "video.close": "Cerrar video", "video.download": "Descargar archivo", "video.exit_fullscreen": "Salir de pantalla completa", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index e7c15368121bbb..ff7dba9f76cfa5 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Märge", "account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest", "account.badges.bot": "Robot", @@ -7,13 +19,16 @@ "account.block_domain": "Peida kõik domeenist {domain}", "account.blocked": "Blokeeritud", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Tühista jälgimistaotlus", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Saada otsesõnum @{name}'ile", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domeen peidetud", "account.edit_profile": "Muuda profiili", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Too profiilil esile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Jälgi", "account.followers": "Jälgijad", "account.followers.empty": "Keegi ei jälgi seda kasutajat veel.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} jälgitav} other {{counter} jälgitavat}}", "account.follows.empty": "See kasutaja ei jälgi veel kedagi.", "account.follows_you": "Jälgib Teid", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Peida upitused kasutajalt @{name}", - "account.joined": "Liitus {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Selle lingi autorsust kontrolliti {date}", "account.locked_info": "Selle konto privaatsussätteks on lukustatud. Omanik vaatab manuaalselt üle, kes teda jägida saab.", "account.media": "Meedia", "account.mention": "Maini @{name}'i", - "account.moved_to": "{name} on kolinud:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Vaigista @{name}", "account.mute_notifications": "Vaigista teated kasutajalt @{name}", "account.muted": "Vaigistatud", + "account.open_original_page": "Open original page", "account.posts": "Postitused", "account.posts_with_replies": "Postitused ja vastused", "account.report": "Raporteeri @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oih!", "announcement.announcement": "Teadaanne", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} nädalas", "boost_modal.combo": "Võite vajutada {combo}, et see järgmine kord vahele jätta", - "bundle_column_error.body": "Midagi läks valesti selle komponendi laadimisel.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Proovi uuesti", - "bundle_column_error.title": "Võrgu viga", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Sulge", "bundle_modal_error.message": "Selle komponendi laadimisel läks midagi viltu.", "bundle_modal_error.retry": "Proovi uuesti", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blokeeritud kasutajad", "column.bookmarks": "Järjehoidjad", "column.community": "Kohalik ajajoon", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Eemalda see valik", "compose_form.poll.switch_to_multiple": "Muuda küsitlust lubamaks mitut valikut", "compose_form.poll.switch_to_single": "Muuda küsitlust lubamaks ainult ühte valikut", - "compose_form.publish": "Tuututa", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "Märgista meedia tundlikuks", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blokeeri & Teata", "confirmations.block.confirm": "Blokeeri", "confirmations.block.message": "Olete kindel, et soovite blokeerida {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Kustuta", "confirmations.delete.message": "Olete kindel, et soovite selle staatuse kustutada?", "confirmations.delete_list.confirm": "Kustuta", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Märgi loetuks", "conversation.open": "Vaata vestlust", "conversation.with": "Koos {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Teatud fediversumist", "directory.local": "Ainult domeenilt {domain}", "directory.new_arrivals": "Uustulijad", "directory.recently_active": "Hiljuti aktiivne", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Manusta see staatus oma veebilehele, kopeerides alloleva koodi.", "embed.preview": "Nii näeb see välja:", "emoji_button.activity": "Tegevus", @@ -196,21 +239,37 @@ "explore.trending_links": "Uudised", "explore.trending_statuses": "Postitused", "explore.trending_tags": "Sildid", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Autoriseeri", "follow_request.reject": "Hülga", "follow_requests.unlocked_explanation": "Kuigi Teie konto pole lukustatud, soovitab {domain} personal siiski manuaalselt üle vaadata jälgimistaotlused nendelt kontodelt.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Arendajad", - "getting_started.directory": "Profiili kataloog", - "getting_started.documentation": "Dokumentatsioon", "getting_started.heading": "Alustamine", - "getting_started.invite": "Kutsu inimesi", - "getting_started.open_source_notice": "Mastodon on avatud lähtekoodiga tarkvara. Saate panustada või teatada probleemidest GitHubis {github}.", - "getting_started.security": "Turvalisus", - "getting_started.terms": "Kasutustingimused", "hashtag.column_header.tag_mode.all": "ja {additional}", "hashtag.column_header.tag_mode.any": "või {additional}", "hashtag.column_header.tag_mode.none": "ilma {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Mõni neist", "hashtag.column_settings.tag_mode.none": "Mitte ükski neist", "hashtag.column_settings.tag_toggle": "Kaasa lisamärked selle tulba jaoks", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Peamine", "home.column_settings.show_reblogs": "Näita upitusi", "home.column_settings.show_replies": "Näita vastuseid", "home.hide_announcements": "Peida teadaanded", "home.show_announcements": "Kuva teadaandeid", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# päev} other {# päevad}}", "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}", @@ -268,7 +341,7 @@ "lightbox.next": "Järgmine", "lightbox.previous": "Eelmine", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Lisa nimistusse", "lists.account.remove": "Eemalda nimistust", "lists.delete": "Kustuta nimistu", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Varja pilt} other {Varja pildid}}", "missing_indicator.label": "Ei leitud", "missing_indicator.sublabel": "Seda ressurssi ei leitud", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobiilirakendused", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blokeeritud kasutajad", "navigation_bar.bookmarks": "Järjehoidjad", "navigation_bar.community_timeline": "Kohalik ajajoon", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Vaigistatud sõnad", "navigation_bar.follow_requests": "Jälgimistaotlused", "navigation_bar.follows_and_followers": "Jälgitud ja jälgijad", - "navigation_bar.info": "Selle serveri kohta", - "navigation_bar.keyboard_shortcuts": "Kiirklahvid", "navigation_bar.lists": "Nimistud", "navigation_bar.logout": "Logi välja", "navigation_bar.mutes": "Vaigistatud kasutajad", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Kinnitatud tuutid", "navigation_bar.preferences": "Eelistused", "navigation_bar.public_timeline": "Föderatiivne ajajoon", + "navigation_bar.search": "Search", "navigation_bar.security": "Turvalisus", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} märkis Teie staatuse lemmikuks", "notification.follow": "{name} jälgib nüüd Teid", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Puhasta teated", "notifications.clear_confirmation": "Olete kindel, et soovite püsivalt kõik oma teated eemaldada?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Töölauateated", "notifications.column_settings.favourite": "Lemmikud:", @@ -379,6 +455,8 @@ "privacy.public.short": "Avalik", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Määramata", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Värskenda", "regeneration_indicator.label": "Laeb…", "regeneration_indicator.sublabel": "Teie kodu voog on ettevalmistamisel!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Otsi", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Täiustatud otsiformaat", "search_popout.tips.full_text": "Lihtne tekst toob esile staatused mida olete kirjutanud, lisanud lemmikuks, upitanud või olete seal mainitud, ning lisaks veel kattuvad kasutajanimed, kuvanimed ja sildid.", "search_popout.tips.hashtag": "silt", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Tuudid", "search_results.statuses_fts_disabled": "Tuutsude otsimine nende sisu järgi ei ole sellel Mastodoni serveril sisse lülitatud.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {tulemus} other {tulemust}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Ava moderaatoriliides kasutajale @{name}", "status.admin_status": "Ava see staatus moderaatoriliites", "status.block": "Blokeeri @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Sängita", "status.favourite": "Lemmik", + "status.filter": "Filter this post", "status.filtered": "Filtreeritud", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Lae rohkem", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Keegi pole seda tuuti veel upitanud. Kui keegi upitab, näed seda siin.", "status.redraft": "Kustuta & alga uuesti", "status.remove_bookmark": "Eemalda järjehoidja", + "status.replied_to": "Replied to {name}", "status.reply": "Vasta", "status.replyAll": "Vasta lõimele", "status.report": "Raporteeri @{name}", "status.sensitive_warning": "Tundlik sisu", "status.share": "Jaga", + "status.show_filter_reason": "Show anyway", "status.show_less": "Näita vähem", "status.show_less_all": "Näita vähem kõigile", "status.show_more": "Näita veel", "status.show_more_all": "Näita enam kõigile", - "status.show_thread": "Kuva lõim", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Pole saadaval", "status.unmute_conversation": "Ära vaigista vestlust", "status.unpin": "Kinnita profiililt lahti", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Eira soovitust", "suggestions.header": "Teid võib huvitada…", "tabs_bar.federated_timeline": "Föderatiivne", "tabs_bar.home": "Kodu", "tabs_bar.local_timeline": "Kohalik", "tabs_bar.notifications": "Teated", - "tabs_bar.search": "Otsi", "time_remaining.days": "{number, plural, one {# päev} other {# päeva}} jäänud", "time_remaining.hours": "{number, plural, one {# tund} other {# tundi}} jäänud", "time_remaining.minutes": "{number, plural, one {# minut} other {# minutit}} jäänud", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Hetkel populaarne", "ui.beforeunload": "Teie mustand läheb kaotsi, kui lahkute Mastodonist.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Eelvaade ({ratio})", "upload_progress.label": "Laeb üles....", + "upload_progress.processing": "Processing…", "video.close": "Sulge video", "video.download": "Faili allalaadimine", "video.exit_fullscreen": "Välju täisekraanist", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 4ab0c44be0b8fc..e0d6e2931e7764 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderatutako zerbitzariak", + "about.contact": "Kontaktua:", + "about.disclaimer": "Mastodon software libre eta kode irekikoa da, eta Mastodon gGmbH-ren marka erregistratua.", + "about.domain_blocks.no_reason_available": "Arrazoia ez dago eskuragarri", + "about.domain_blocks.preamble": "Mastodonek orokorrean aukera ematen dizu fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikusi eta haiekin komunikatzeko. Zerbitzari zehatz honi ezarritako salbuespenak hauek dira.", + "about.domain_blocks.silenced.explanation": "Orokorrean ez duzu zerbitzari honetako profil eta edukirik ikusiko. Profilak jarraitzen badituzu edo edukia esplizituki bilatzen baduzu bai.", + "about.domain_blocks.silenced.title": "Mugatua", + "about.domain_blocks.suspended.explanation": "Ez da zerbitzari honetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari honetako erabiltzaileekin komunikatzea ezinezkoa eginez.", + "about.domain_blocks.suspended.title": "Kanporatua", + "about.not_available": "Zerbitzari honek ez du informazio hau eskuragarri jarri.", + "about.powered_by": "{mastodon} erabiltzen duen sare sozial deszentralizatua", + "about.rules": "Zerbitzariaren arauak", "account.account_note_header": "Oharra", "account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik", "account.badges.bot": "Bot-a", @@ -7,13 +19,16 @@ "account.block_domain": "Ezkutatu {domain} domeinuko guztia", "account.blocked": "Blokeatuta", "account.browse_more_on_origin_server": "Arakatu gehiago jatorrizko profilean", - "account.cancel_follow_request": "Ezeztatu jarraitzeko eskaria", + "account.cancel_follow_request": "Baztertu jarraitzeko eskaera", "account.direct": "Mezu zuzena @{name}(r)i", "account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzailearen bidalketetan", "account.domain_blocked": "Ezkutatutako domeinua", "account.edit_profile": "Aldatu profila", "account.enable_notifications": "Jakinarazi @{name} erabiltzaileak bidalketak egitean", "account.endorse": "Nabarmendu profilean", + "account.featured_tags.last_status_at": "Azken bidalketa {date} datan", + "account.featured_tags.last_status_never": "Bidalketarik ez", + "account.featured_tags.title": "{name} erabiltzailearen nabarmendutako traolak", "account.follow": "Jarraitu", "account.followers": "Jarraitzaileak", "account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}", "account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.", "account.follows_you": "Jarraitzen dizu", + "account.go_to_profile": "Joan profilera", "account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak", - "account.joined": "{date}(e)an elkartua", + "account.joined_short": "Elkartuta", + "account.languages": "Aldatu harpidetutako hizkuntzak", "account.link_verified_on": "Esteka honen jabetzaren egiaztaketa data: {date}", "account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.", "account.media": "Multimedia", "account.mention": "Aipatu @{name}", - "account.moved_to": "{name} hona migratu da:", + "account.moved_to": "{name} erabiltzaileak adierazi du bere kontu berria hau dela:", "account.mute": "Mututu @{name}", "account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak", "account.muted": "Mutututa", + "account.open_original_page": "Ireki jatorrizko orria", "account.posts": "Bidalketa", "account.posts_with_replies": "Bidalketak eta erantzunak", "account.report": "Salatu @{name}", @@ -59,18 +77,31 @@ "alert.unexpected.title": "Ene!", "announcement.announcement": "Iragarpena", "attachments_list.unprocessed": "(prozesatu gabe)", + "audio.hide": "Ezkutatu audioa", "autosuggest_hashtag.per_week": "{count} asteko", "boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko", - "bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.", + "bundle_column_error.copy_stacktrace": "Kopiatu errore-txostena", + "bundle_column_error.error.body": "Eskatutako orria ezin izan da bistaratu. Kodeko errore bategatik izan daiteke edo nabigatzailearen bateragarritasun arazo bategatik.", + "bundle_column_error.error.title": "O ez!", + "bundle_column_error.network.body": "Errore bat gertatu da orri hau kargatzen saiatzean. Arrazoia Interneteko konexioaren edo zerbitzari honen aldi baterako arazoa izan daiteke.", + "bundle_column_error.network.title": "Sareko errorea", "bundle_column_error.retry": "Saiatu berriro", - "bundle_column_error.title": "Sareko errorea", + "bundle_column_error.return": "Itzuli hasierako orrira", + "bundle_column_error.routing.body": "Eskatutako orria ezin izan da aurkitu. Ziur zaude helbide-barrako URLa zuzena dela?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Itxi", "bundle_modal_error.message": "Zerbait okerra gertatu da osagai hau kargatzean.", "bundle_modal_error.retry": "Saiatu berriro", + "closed_registrations.other_server_instructions": "Mastodon deszentralizatua denez, beste kontu bat sortu dezakezu beste zerbitzari batean eta honekin komunikatu.", + "closed_registrations_modal.description": "Une honetan ezin da konturik sortu {domain} zerbitzarian, baina kontuan izan Mastodon erabiltzeko ez duzula zertan konturik izan zehazki {domain} zerbitzarian.", + "closed_registrations_modal.find_another_server": "Aurkitu beste zerbitzari bat", + "closed_registrations_modal.preamble": "Mastodon deszentralizatua da, ondorioz kontua edonon sortuta ere zerbitzari honetako jendea jarraitu eta haiekin komunikatzeko aukera izango duzu. Zure zerbitzaria ere sortu dezakezu!", + "closed_registrations_modal.title": "Mastodonen kontua sortzea", + "column.about": "Honi buruz", "column.blocks": "Blokeatutako erabiltzaileak", "column.bookmarks": "Laster-markak", "column.community": "Denbora-lerro lokala", - "column.direct": "Direct messages", + "column.direct": "Mezu zuzenak", "column.directory": "Arakatu profilak", "column.domain_blocks": "Ezkutatutako domeinuak", "column.favourites": "Gogokoak", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Lokala soilik", "community.column_settings.media_only": "Multimedia besterik ez", "community.column_settings.remote_only": "Urrunekoa soilik", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Aldatu hizkuntza", + "compose.language.search": "Bilatu hizkuntzak...", "compose_form.direct_message_warning_learn_more": "Ikasi gehiago", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Mastodoneko bidalketak ez daude muturretik muturrera enkriptatuta. Ez partekatu informazio sentikorrik Mastodonen.", "compose_form.hashtag_warning": "Bidalketa hau ez da traoletan agertuko zerrendatu gabekoa baita. Traoletan bidalketa publikoak besterik ez dira agertzen.", "compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren bidalketak ikusteko.", "compose_form.lock_disclaimer.lock": "giltzapetuta", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Kendu aukera hau", "compose_form.poll.switch_to_multiple": "Aldatu inkesta hainbat aukera onartzeko", "compose_form.poll.switch_to_single": "Aldatu inkesta aukera bakarra onartzeko", - "compose_form.publish": "Toot", + "compose_form.publish": "Argitaratu", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Gorde aldaketak", "compose_form.sensitive.hide": "Markatu multimedia hunkigarri gisa", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blokeatu eta salatu", "confirmations.block.confirm": "Blokeatu", "confirmations.block.message": "Ziur {name} blokeatu nahi duzula?", + "confirmations.cancel_follow_request.confirm": "Baztertu eskaera", + "confirmations.cancel_follow_request.message": "Ziur zaude {name} jarraitzeko eskaera bertan behera utzi nahi duzula?", "confirmations.delete.confirm": "Ezabatu", "confirmations.delete.message": "Ziur bidalketa hau ezabatu nahi duzula?", "confirmations.delete_list.confirm": "Ezabatu", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Markatu irakurrita bezala", "conversation.open": "Ikusi elkarrizketa", "conversation.with": "Hauekin: {names}", + "copypaste.copied": "Kopiatuta", + "copypaste.copy": "Kopiatu", "directory.federated": "Fedibertso ezagunekoak", "directory.local": "{domain} domeinukoak soilik", "directory.new_arrivals": "Iritsi berriak", "directory.recently_active": "Duela gutxi aktibo", + "disabled_account_banner.account_settings": "Kontuaren ezarpenak", + "disabled_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan.", + "dismissable_banner.community_timeline": "Hauek dira {domain} zerbitzarian ostatatutako kontuen bidalketa publiko berrienak.", + "dismissable_banner.dismiss": "Baztertu", + "dismissable_banner.explore_links": "Albiste hauei buruz hitz egiten ari da jendea orain zerbitzari honetan eta sare deszentralizatuko besteetan.", + "dismissable_banner.explore_statuses": "Zerbitzari honetako eta sare deszentralizatuko besteetako bidalketa hauek daude bogan zerbitzari honetan orain.", + "dismissable_banner.explore_tags": "Traola hauek daude bogan orain zerbitzari honetan eta sare deszentralizatuko besteetan.", + "dismissable_banner.public_timeline": "Hauek dira zerbitzari honetako eta zerbitzari honek ezagutzen dituen sare deszentralizatuko beste zerbitzarietako jendearen bidalketa publiko berrienak.", "embed.instructions": "Txertatu bidalketa hau zure webgunean beheko kodea kopiatuz.", "embed.preview": "Hau da izango duen itxura:", "emoji_button.activity": "Jarduera", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Garbitu", "emoji_button.custom": "Pertsonalizatua", "emoji_button.flags": "Banderak", "emoji_button.food": "Janari eta edaria", @@ -169,7 +212,7 @@ "empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.", "empty_column.bookmarked_statuses": "Oraindik ez dituzu bidalketa laster-markatutarik. Bat laster-markatzerakoan, hemen agertuko da.", "empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.", "empty_column.domain_blocks": "Ez dago ezkutatutako domeinurik oraindik.", "empty_column.explore_statuses": "Ez dago joerarik une honetan. Begiratu beranduago!", "empty_column.favourited_statuses": "Ez duzu gogokorik oraindik. Gogokoren bat duzunean hemen agertuko da.", @@ -196,21 +239,37 @@ "explore.trending_links": "Berriak", "explore.trending_statuses": "Bidalketak", "explore.trending_tags": "Traolak", + "filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.", + "filter_modal.added.context_mismatch_title": "Testuingurua ez dator bat!", + "filter_modal.added.expired_explanation": "Iragazki kategoria hau iraungi da, eragina izan dezan bere iraungitze-data aldatu beharko duzu.", + "filter_modal.added.expired_title": "Iraungitako iragazkia!", + "filter_modal.added.review_and_configure": "Iragazki kategoria hau berrikusi eta gehiago konfiguratzeko: {settings_link}.", + "filter_modal.added.review_and_configure_title": "Iragazkiaren ezarpenak", + "filter_modal.added.settings_link": "ezarpenen orria", + "filter_modal.added.short_explanation": "Bidalketa hau ondorengo iragazki kategoriara gehitu da: {title}.", + "filter_modal.added.title": "Iragazkia gehituta!", + "filter_modal.select_filter.context_mismatch": "ez du eraginik testuinguru honetan", + "filter_modal.select_filter.expired": "iraungitua", + "filter_modal.select_filter.prompt_new": "Kategoria berria: {name}", + "filter_modal.select_filter.search": "Bilatu edo sortu", + "filter_modal.select_filter.subtitle": "Hautatu lehendik dagoen kategoria bat edo sortu berria", + "filter_modal.select_filter.title": "Iragazi bidalketa hau", + "filter_modal.title.status": "Iragazi bidalketa bat", "follow_recommendations.done": "Egina", "follow_recommendations.heading": "Jarraitu jendea beren bidalketak ikusteko! Hemen dituzu iradokizun batzuk.", "follow_recommendations.lead": "Jarraitzen duzun jendearen bidalketak ordena kronologikoan agertuko dira zure hasierako jarioan. Ez izan akatsak egiteko beldurrik, jendea jarraitzeari uztea erraza da!", "follow_request.authorize": "Baimendu", "follow_request.reject": "Ukatu", "follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskariak agian eskuz begiratu nahiko dituzula.", + "footer.about": "Honi buruz", + "footer.directory": "Profil-direktorioa", + "footer.get_app": "Eskuratu aplikazioa", + "footer.invite": "Gonbidatu jendea", + "footer.keyboard_shortcuts": "Lasterbideak", + "footer.privacy_policy": "Pribatutasun politika", + "footer.source_code": "Ikusi iturburu kodea", "generic.saved": "Gordea", - "getting_started.developers": "Garatzaileak", - "getting_started.directory": "Profil-direktorioa", - "getting_started.documentation": "Dokumentazioa", "getting_started.heading": "Menua", - "getting_started.invite": "Gonbidatu jendea", - "getting_started.open_source_notice": "Mastodon software librea da. Ekarpenak egin ditzakezu edo akatsen berri eman GitHub bidez: {github}.", - "getting_started.security": "Segurtasuna", - "getting_started.terms": "Erabilera baldintzak", "hashtag.column_header.tag_mode.all": "eta {osagarria}", "hashtag.column_header.tag_mode.any": "edo {osagarria}", "hashtag.column_header.tag_mode.none": "gabe {osagarria}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Hautako edozein", "hashtag.column_settings.tag_mode.none": "Hauetako bat ere ez", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Jarraitu traola", + "hashtag.unfollow": "Utzi traola jarraitzeari", "home.column_settings.basic": "Oinarrizkoa", "home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_replies": "Erakutsi erantzunak", "home.hide_announcements": "Ezkutatu iragarpenak", "home.show_announcements": "Erakutsi iragarpenak", + "interaction_modal.description.favourite": "Mastodon kontu batekin bidalketa hau gogoko egin dezakezu, egileari eskertzeko eta gerorako gordetzeko.", + "interaction_modal.description.follow": "Mastodon kontu batekin {name} jarraitu dezakezu bere bidalketak zure hasierako denbora lerroan jasotzeko.", + "interaction_modal.description.reblog": "Mastodon kontu batekin bidalketa hau bultzatu dezakezu, zure jarraitzaileekin partekatzeko.", + "interaction_modal.description.reply": "Mastodon kontu batekin bidalketa honi erantzun diezaiokezu.", + "interaction_modal.on_another_server": "Beste zerbitzari batean", + "interaction_modal.on_this_server": "Zerbitzari honetan", + "interaction_modal.other_server_instructions": "Kopiatu eta itsatsi URL hau zure Mastodon aplikazio gogokoenaren edo zure Mastodon zerbitzariaren web interfazeko bilaketa eremuan.", + "interaction_modal.preamble": "Mastodon deszentralizatua denez, zerbitzari honetan konturik ez badaukazu, beste Mastodon zerbitzari batean edo bateragarria den plataforma batean ostatatutako kontua erabil dezakezu.", + "interaction_modal.title.favourite": "Egin gogoko {name}(r)en bidalketa", + "interaction_modal.title.follow": "Jarraitu {name}", + "interaction_modal.title.reblog": "Bultzatu {name}(r)en bidalketa", + "interaction_modal.title.reply": "Erantzun {name}(r)en bidalketari", "intervals.full.days": "{number, plural, one {egun #} other {# egun}}", "intervals.full.hours": "{number, plural, one {ordu #} other {# ordu}}", "intervals.full.minutes": "{number, plural, one {minutu #} other {# minutu}}", @@ -234,7 +307,7 @@ "keyboard_shortcuts.column": "mezu bat zutabe batean fokatzea", "keyboard_shortcuts.compose": "testua konposatzeko arean fokatzea", "keyboard_shortcuts.description": "Deskripzioa", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "mezu zuzenen zutabea irekitzeko", "keyboard_shortcuts.down": "zerrendan behera mugitzea", "keyboard_shortcuts.enter": "Ireki bidalketa", "keyboard_shortcuts.favourite": "Egin gogoko bidalketa", @@ -267,8 +340,8 @@ "lightbox.expand": "Zabaldu irudia ikusteko kaxa", "lightbox.next": "Hurrengoa", "lightbox.previous": "Aurrekoa", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Erakutsi profila hala ere", + "limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.", "lists.account.add": "Gehitu zerrendara", "lists.account.remove": "Kendu zerrendatik", "lists.delete": "Ezabatu zerrenda", @@ -287,15 +360,16 @@ "media_gallery.toggle_visible": "Txandakatu ikusgaitasuna", "missing_indicator.label": "Ez aurkitua", "missing_indicator.sublabel": "Baliabide hau ezin izan da aurkitu", + "moved_to_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan, {movedToAccount} kontura aldatu zinelako.", "mute_modal.duration": "Iraupena", "mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?", "mute_modal.indefinite": "Zehaztu gabe", - "navigation_bar.apps": "Mugikorrerako aplikazioak", + "navigation_bar.about": "Honi buruz", "navigation_bar.blocks": "Blokeatutako erabiltzaileak", "navigation_bar.bookmarks": "Laster-markak", "navigation_bar.community_timeline": "Denbora-lerro lokala", "navigation_bar.compose": "Idatzi bidalketa berria", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Mezu zuzenak", "navigation_bar.discover": "Aurkitu", "navigation_bar.domain_blocks": "Ezkutatutako domeinuak", "navigation_bar.edit_profile": "Aldatu profila", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Mutututako hitzak", "navigation_bar.follow_requests": "Jarraitzeko eskariak", "navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak", - "navigation_bar.info": "Zerbitzari honi buruz", - "navigation_bar.keyboard_shortcuts": "Laster-teklak", "navigation_bar.lists": "Zerrendak", "navigation_bar.logout": "Amaitu saioa", "navigation_bar.mutes": "Mutututako erabiltzaileak", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Finkatutako bidalketak", "navigation_bar.preferences": "Hobespenak", "navigation_bar.public_timeline": "Federatutako denbora-lerroa", + "navigation_bar.search": "Bilatu", "navigation_bar.security": "Segurtasuna", + "not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.", + "notification.admin.report": "{name} erabiltzaileak {target} salatu du", "notification.admin.sign_up": "{name} erabiltzailea erregistratu da", "notification.favourite": "{name}(e)k zure bidalketa gogoko du", "notification.follow": "{name}(e)k jarraitzen zaitu", @@ -326,6 +401,7 @@ "notification.update": "{name} erabiltzaileak bidalketa bat editatu du", "notifications.clear": "Garbitu jakinarazpenak", "notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?", + "notifications.column_settings.admin.report": "Txosten berriak:", "notifications.column_settings.admin.sign_up": "Izen-emate berriak:", "notifications.column_settings.alert": "Mahaigaineko jakinarazpenak", "notifications.column_settings.favourite": "Gogokoak:", @@ -372,13 +448,15 @@ "poll_button.remove_poll": "Kendu inkesta", "privacy.change": "Aldatu bidalketaren pribatutasuna", "privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Aipatutako jendea soilik", "privacy.private.long": "Bidali jarraitzaileei besterik ez", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.private.short": "Jarraitzaileak soilik", + "privacy.public.long": "Guztientzat ikusgai", "privacy.public.short": "Publikoa", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Guztientzat ikusgai, baina ez aurkitzeko ezaugarrietan", "privacy.unlisted.short": "Zerrendatu gabea", + "privacy_policy.last_updated": "Azkenengo eguneraketa {date}", + "privacy_policy.title": "Pribatutasun politika", "refresh": "Berritu", "regeneration_indicator.label": "Kargatzen…", "regeneration_indicator.sublabel": "Zure hasiera-jarioa prestatzen ari da!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Mila esker salaketagatik, berrikusiko dugu.", "report.unfollow": "@{name} jarraitzeari utzi", "report.unfollow_explanation": "Kontu hau jarraitzen ari zara. Zure denbora-lerro nagusian bere bidalketak ez ikusteko, jarraitzeari utzi.", + "report_notification.attached_statuses": "{count, plural, one {Bidalketa {count}} other {{count} bidalketa}} erantsita", + "report_notification.categories.other": "Bestelakoak", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Arau haustea", + "report_notification.open": "Ireki salaketa", "search.placeholder": "Bilatu", + "search.search_or_paste": "Bilatu edo itsatsi URLa", "search_popout.search_format": "Bilaketa aurreratuaren formatua", "search_popout.tips.full_text": "Testu hutsarekin zuk idatzitako bidalketak, gogokoak, bultzadak edo aipamenak aurkitu ditzakezu, bat datozen erabiltzaile-izenak, pantaila-izenak, eta traolak.", "search_popout.tips.hashtag": "traola", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Ez da emaitzarik aurkitu bilaketa-termino horientzat", "search_results.statuses": "Bidalketak", "search_results.statuses_fts_disabled": "Mastodon zerbitzari honek ez du bidalketen edukiaren bilaketa gaitu.", + "search_results.title": "Bilatu {q}", "search_results.total": "{count, number} {count, plural, one {emaitza} other {emaitza}}", + "server_banner.about_active_users": "Azken 30 egunetan zerbitzari hau erabili duen jendea (hilabeteko erabiltzaile aktiboak)", + "server_banner.active_users": "erabiltzaile aktibo", + "server_banner.administered_by": "Administratzailea(k):", + "server_banner.introduction": "{domain} zerbitzaria {mastodon} erabiltzen duen sare sozial deszentralizatuko parte da.", + "server_banner.learn_more": "Ikasi gehiago", + "server_banner.server_stats": "Zerbitzariaren estatistikak:", + "sign_in_banner.create_account": "Sortu kontua", + "sign_in_banner.sign_in": "Hasi saioa", + "sign_in_banner.text": "Hasi saioa beste zerbitzari bateko zure kontuarekin profilak edo traolak jarraitu, bidalketei erantzun, gogoko egin edo partekatzeko.", "status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea", "status.admin_status": "Ireki bidalketa hau moderazio interfazean", "status.block": "Blokeatu @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "{count, plural, one {behin} other {{count} aldiz}} editatua", "status.embed": "Txertatu", "status.favourite": "Gogokoa", + "status.filter": "Iragazi bidalketa hau", "status.filtered": "Iragazita", + "status.hide": "Ezkutatu bidalketa hau", "status.history.created": "{name} erabiltzaileak sortua {date}", "status.history.edited": "{name} erabiltzaileak editatua {date}", "status.load_more": "Kargatu gehiago", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Inork ez dio bultzada eman bidalketa honi oraindik. Inork egiten badu, hemen agertuko da.", "status.redraft": "Ezabatu eta berridatzi", "status.remove_bookmark": "Kendu laster-marka", + "status.replied_to": "{name} erabiltzaileari erantzuna", "status.reply": "Erantzun", "status.replyAll": "Erantzun harian", "status.report": "Salatu @{name}", "status.sensitive_warning": "Kontuz: Eduki hunkigarria", "status.share": "Partekatu", + "status.show_filter_reason": "Erakutsi hala ere", "status.show_less": "Erakutsi gutxiago", "status.show_less_all": "Erakutsi denetarik gutxiago", "status.show_more": "Erakutsi gehiago", "status.show_more_all": "Erakutsi denetarik gehiago", - "status.show_thread": "Erakutsi haria", + "status.show_original": "Erakutsi jatorrizkoa", + "status.translate": "Itzuli", + "status.translated_from_with": "Itzuli {lang}(e)tik {provider} erabiliz", "status.uncached_media_warning": "Ez eskuragarri", "status.unmute_conversation": "Desmututu elkarrizketa", "status.unpin": "Desfinkatu profiletik", + "subscribed_languages.lead": "Hautatutako hizkuntzetako bidalketak soilik agertuko dira zure denbora-lerroetan aldaketaren ondoren. Ez baduzu bat ere aukeratzen hizkuntza guztietako bidalketak jasoko dituzu.", + "subscribed_languages.save": "Gorde aldaketak", + "subscribed_languages.target": "Aldatu {target}(e)n harpidetutako hizkuntzak", "suggestions.dismiss": "Errefusatu proposamena", "suggestions.header": "Hau interesatu dakizuke…", "tabs_bar.federated_timeline": "Federatua", "tabs_bar.home": "Hasiera", "tabs_bar.local_timeline": "Lokala", "tabs_bar.notifications": "Jakinarazpenak", - "tabs_bar.search": "Bilatu", "time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko", "time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko", "time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Jarraitzaileak", "timeline_hint.resources.follows": "Jarraitzen", "timeline_hint.resources.statuses": "Bidalketa zaharragoak", - "trends.counter_by_accounts": "{count, plural, one {Pertsona {counter}} other {{counter} pertsona}} hizketan", + "trends.counter_by_accounts": "{count, plural, one {Pertsona {counter}} other {{counter} pertsona}} azken {days, plural, one {egunean} other {{days} egunetan}}", "trends.trending_now": "Joera orain", "ui.beforeunload": "Zure zirriborroa galduko da Mastodon uzten baduzu.", "units.short.billion": "{count}B", @@ -520,7 +622,7 @@ "upload_error.poll": "Ez da inkestetan fitxategiak igotzea onartzen.", "upload_form.audio_description": "Deskribatu entzumen galera duten pertsonentzat", "upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat", - "upload_form.description_missing": "No description added", + "upload_form.description_missing": "Ez da deskribapenik gehitu", "upload_form.edit": "Editatu", "upload_form.thumbnail": "Aldatu koadro txikia", "upload_form.undo": "Ezabatu", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "OCR prestatzen…", "upload_modal.preview_label": "Aurreikusi ({ratio})", "upload_progress.label": "Igotzen...", + "upload_progress.processing": "Prozesatzen…", "video.close": "Itxi bideoa", "video.download": "Deskargatu fitxategia", "video.exit_fullscreen": "Irten pantaila osotik", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 5ae0872ca84c2b..2c36c4efa7a174 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -1,4 +1,16 @@ { + "about.blocks": "کارسازهای نظارت شده", + "about.contact": "تماس:", + "about.disclaimer": "ماستودون نرم‌افزار آزاد، متن باز و یک شرکت غیر انتفاعی با مسئولیت محدود طبق قوانین آلمان است.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "ماستودون عموماً می‌گذارد محتوا را از از هر کارساز دیگری در دنیای شبکه‌های اجتماعی غیرمتمرکز دیده و با آنان برهم‌کنش داشته باشید. این‌ها استثناهایی هستند که روی این کارساز خاص وضع شده‌اند.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "محدود", + "about.domain_blocks.suspended.explanation": "هیچ داده‌ای از این کارساز پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهم‌کنش یا ارتباط با کاربران این کارساز را غیرممکن خواهد کرد.", + "about.domain_blocks.suspended.title": "معلق", + "about.not_available": "این اطّلاعات روی این کارساز موجود نشده.", + "about.powered_by": "رسانهٔ اجتماعی نامتمرکز قدرت گرفته از {mastodon}", + "about.rules": "قوانین کارساز", "account.account_note_header": "یادداشت", "account.add_or_remove_from_list": "افزودن یا برداشتن از سیاهه‌ها", "account.badges.bot": "روبات", @@ -7,13 +19,16 @@ "account.block_domain": "مسدود کردن دامنهٔ {domain}", "account.blocked": "مسدود", "account.browse_more_on_origin_server": "مرور بیش‌تر روی نمایهٔ اصلی", - "account.cancel_follow_request": "لغو درخواست پی‌گیری", + "account.cancel_follow_request": "رد کردن درخواست پی‌گیری", "account.direct": "پیام مستقیم به ‎@{name}", "account.disable_notifications": "آگاه کردن من هنگام فرسته‌های ‎@{name} را متوقّف کن", "account.domain_blocked": "دامنه مسدود شد", "account.edit_profile": "ویرایش نمایه", "account.enable_notifications": "هنگام فرسته‌های ‎@{name} مرا آگاه کن", "account.endorse": "معرّفی در نمایه", + "account.featured_tags.last_status_at": "آخرین فرسته در {date}", + "account.featured_tags.last_status_never": "بدون فرسته", + "account.featured_tags.title": "برچسب‌های برگزیدهٔ {name}", "account.follow": "پی‌گیری", "account.followers": "پی‌گیرندگان", "account.followers.empty": "هنوز کسی این کاربر را پی‌گیری نمی‌کند.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} پی‌گرفته} other {{counter} پی‌گرفته}}", "account.follows.empty": "این کاربر هنوز پی‌گیر کسی نیست.", "account.follows_you": "پی می‌گیردتان", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "نهفتن تقویت‌های ‎@{name}", - "account.joined": "پیوسته از {date}", + "account.joined_short": "پیوسته", + "account.languages": "تغییر زبان‌های مشترک شده", "account.link_verified_on": "مالکیت این پیوند در {date} بررسی شد", "account.locked_info": "این حساب خصوصی است. صاحبش تصمیم می‌گیرد که چه کسی پی‌گیرش باشد.", "account.media": "رسانه", "account.mention": "نام‌بردن از ‎@{name}", - "account.moved_to": "{name} منتقل شده به:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "خموشاندن ‎@{name}", "account.mute_notifications": "خموشاندن آگاهی‌های ‎@{name}", "account.muted": "خموش", + "account.open_original_page": "Open original page", "account.posts": "فرسته", "account.posts_with_replies": "فرسته‌ها و پاسخ‌ها", "account.report": "گزارش ‎@{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "ای وای!", "announcement.announcement": "اعلامیه", "attachments_list.unprocessed": "(پردازش نشده)", + "audio.hide": "نهفتن صدا", "autosuggest_hashtag.per_week": "{count} در هفته", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", - "bundle_column_error.body": "هنگام بار کردن این مولفه، اشتباهی رخ داد.", + "bundle_column_error.copy_stacktrace": "رونوشت از گزارش خطا", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "وای، نه!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "خطای شبکه", "bundle_column_error.retry": "تلاش دوباره", - "bundle_column_error.title": "خطای شبکه", + "bundle_column_error.return": "بازگشت به خانه", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "۴۰۴", "bundle_modal_error.close": "بستن", "bundle_modal_error.message": "هنگام بار کردن این مولفه، اشتباهی رخ داد.", "bundle_modal_error.retry": "تلاش دوباره", + "closed_registrations.other_server_instructions": "از آن‌جا که ماستودون نامتمرکز است، می‌توانید حسابی روی کارسازی دیگر ساخته و همچنان با این‌یکی در تعامل باشید.", + "closed_registrations_modal.description": "هم‌اکنون امکان ساخت حساب روی {domain} وجود ندارد؛ ولی لطفاً به خاطر داشته باشید که برای استفاده از ماستودون، نیازی به داشتن حساب روی {domain} نیست.", + "closed_registrations_modal.find_another_server": "یافتن کارسازی دیگر", + "closed_registrations_modal.preamble": "ماستودون نامتمرکز است، پس بدون توجّه یه جایی که حسابتان را ساخته‌اید، خواهید توانست هرکسی روی این کارساز را پی‌گرفته و با او تعامل کنید. حتا می‌توانید خودمیزبانیش کنید!", + "closed_registrations_modal.title": "ثبت‌نام روی ماستودون", + "column.about": "درباره", "column.blocks": "کاربران مسدود شده", "column.bookmarks": "نشانک‌ها", "column.community": "خط زمانی محلّی", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "فقط محلّی", "community.column_settings.media_only": "فقط رسانه", "community.column_settings.remote_only": "تنها دوردست", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "تغییر زبان", + "compose.language.search": "جست‌وجوی زبان‌ها…", "compose_form.direct_message_warning_learn_more": "بیشتر بدانید", - "compose_form.encryption_warning": "فرسته‌های ماستودون رمزگذاری سرتاسری نشده‌اند. هیچ اطّلاعات خطرناکی را روی ماستودون هم‌رسانی نکنید.", + "compose_form.encryption_warning": "فرسته‌های ماستودون رمزگذاری سرتاسری نشده‌اند. هیچ اطّلاعات حساسی را روی ماستودون هم‌رسانی نکنید.", "compose_form.hashtag_warning": "از آن‌جا که این فرسته فهرست نشده است، در نتایج جست‌وجوی هشتگ‌ها پیدا نخواهد شد. تنها فرسته‌های عمومی را می‌توان با جست‌وجوی هشتگ یافت.", "compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پی‌گیرتان شده و فرسته‌های ویژهٔ پی‌گیرانتان را ببیند.", "compose_form.lock_disclaimer.lock": "قفل‌شده", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "برداشتن این گزینه", "compose_form.poll.switch_to_multiple": "تبدیل به نظرسنجی چندگزینه‌ای", "compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تک‌گزینه‌ای", - "compose_form.publish": "بوق", + "compose_form.publish": "انتشار", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "ذخیرهٔ تغییرات", "compose_form.sensitive.hide": "{count, plural, one {علامت‌گذاری رسانه به عنوان حساس} other {علامت‌گذاری رسانه‌ها به عنوان حساس}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "مسدود کردن و گزارش", "confirmations.block.confirm": "مسدود کردن", "confirmations.block.message": "مطمئنید که می‌خواهید {name} را مسدود کنید؟", + "confirmations.cancel_follow_request.confirm": "رد کردن درخواست", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "حذف", "confirmations.delete.message": "آیا مطمئنید که می‌خواهید این فرسته را حذف کنید؟", "confirmations.delete_list.confirm": "حذف", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده", "conversation.open": "دیدن گفتگو", "conversation.with": "با {names}", + "copypaste.copied": "رونوشت شد", + "copypaste.copy": "رونوشت", "directory.federated": "از کارسازهای شناخته‌شده", "directory.local": "تنها از {domain}", "directory.new_arrivals": "تازه‌واردان", "directory.recently_active": "کاربران فعال اخیر", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "دور انداختن", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "برای جاسازی این فرسته در سایت خودتان، کد زیر را رونوشت کنید.", "embed.preview": "این گونه دیده خواهد شد:", "emoji_button.activity": "فعالیت", - "emoji_button.clear": "Clear", + "emoji_button.clear": "پاک سازی", "emoji_button.custom": "سفارشی", "emoji_button.flags": "پرچم‌ها", "emoji_button.food": "غذا و نوشیدنی", @@ -196,21 +239,37 @@ "explore.trending_links": "اخبار", "explore.trending_statuses": "فرسته‌ها", "explore.trending_tags": "هشتگ‌ها", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "بافتار نامطابق!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "پالایهٔ منقضی!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "تنظیمات پالایه", + "filter_modal.added.settings_link": "صفحهٔ تنظیمات", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "پالایه افزوده شد!", + "filter_modal.select_filter.context_mismatch": "به این بافتار اعمال نمی‌شود", + "filter_modal.select_filter.expired": "منقضی‌شده", + "filter_modal.select_filter.prompt_new": "دستهٔ جدید: {name}", + "filter_modal.select_filter.search": "جست‌وجو یا ایجاد", + "filter_modal.select_filter.subtitle": "استفاده از یک دستهً موجود یا ایجاد دسته‌ای جدید", + "filter_modal.select_filter.title": "پالایش این فرسته", + "filter_modal.title.status": "پالایش یک فرسته", "follow_recommendations.done": "انجام شد", "follow_recommendations.heading": "افرادی را که می‌خواهید فرسته‌هایشان را ببینید پی‌گیری کنید! این‌ها تعدادی پیشنهاد هستند.", "follow_recommendations.lead": "فرسته‌های افرادی که دنبال می‌کنید به ترتیب زمانی در خوراک خانه‌تان نشان داده خواهد شد. از اشتباه کردن نترسید. می‌توانید به همین سادگی در هر زمانی از دنبال کردن افراد دست بکشید!", "follow_request.authorize": "اجازه دهید", "follow_request.reject": "رد کنید", "follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواست‌ها از این حساب‌ها را به صورت دستی بازبینی کنید.", + "footer.about": "درباره", + "footer.directory": "فهرست نمایه‌ها", + "footer.get_app": "گرفتن کاره", + "footer.invite": "دعوت دیگران", + "footer.keyboard_shortcuts": "میانبرهای صفحه‌کلید", + "footer.privacy_policy": "سیاست حریم خصوصی", + "footer.source_code": "مشاهده کد منبع", "generic.saved": "ذخیره شده", - "getting_started.developers": "توسعه‌دهندگان", - "getting_started.directory": "شاخهٔ نمایه", - "getting_started.documentation": "مستندات", "getting_started.heading": "آغاز کنید", - "getting_started.invite": "دعوت از دیگران", - "getting_started.open_source_notice": "ماستودون نرم‌افزاری آزاد است. می‌توانید روی {github} در آن مشارکت کرده یا مشکلاتش را گزارش دهید.", - "getting_started.security": "تنظیمات حساب", - "getting_started.terms": "شرایط خدمات", "hashtag.column_header.tag_mode.all": "و {additional}", "hashtag.column_header.tag_mode.any": "یا {additional}", "hashtag.column_header.tag_mode.none": "بدون {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "هرکدام از این‌ها", "hashtag.column_settings.tag_mode.none": "هیچ‌کدام از این‌ها", "hashtag.column_settings.tag_toggle": "افزودن برچسب‌هایی بیشتر به این ستون", + "hashtag.follow": "پی‌گیری برچسب", + "hashtag.unfollow": "ناپی‌گیری برچسب", "home.column_settings.basic": "پایه‌ای", "home.column_settings.show_reblogs": "نمایش تقویت‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", "home.hide_announcements": "نهفتن اعلامیه‌ها", "home.show_announcements": "نمایش اعلامیه‌ها", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "روی کارسازی دیگر", + "interaction_modal.on_this_server": "روی این کارساز", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "از آن‌جا که ماستودون نامتمرکز است، می‌توانید در صورت نداشتن حساب روی این کارساز، از حساب موجود خودتان که روی کارساز ماستودون یا بن‌سازهٔ سازگار دیگری میزبانی می‌شود استفاده کنید.", + "interaction_modal.title.favourite": "فرسته‌های برگزیدهٔ {name}", + "interaction_modal.title.follow": "پیگیری {name}", + "interaction_modal.title.reblog": "تقویت فرستهٔ {name}", + "interaction_modal.title.reply": "پاسخ به فرستهٔ {name}", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}", @@ -267,8 +340,8 @@ "lightbox.expand": "گسترش جعبهٔ نمایش تصویر", "lightbox.next": "بعدی", "lightbox.previous": "قبلی", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "به هر روی نمایه نشان داده شود", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "افزودن به سیاهه", "lists.account.remove": "برداشتن از سیاهه", "lists.delete": "حذف سیاهه", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}", "missing_indicator.label": "پیدا نشد", "missing_indicator.sublabel": "این منبع پیدا نشد", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "مدت زمان", "mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟", "mute_modal.indefinite": "نامعلوم", - "navigation_bar.apps": "برنامه‌های تلفن همراه", + "navigation_bar.about": "درباره", "navigation_bar.blocks": "کاربران مسدود شده", "navigation_bar.bookmarks": "نشانک‌ها", "navigation_bar.community_timeline": "خط زمانی محلّی", @@ -304,8 +378,6 @@ "navigation_bar.filters": "واژه‌های خموش", "navigation_bar.follow_requests": "درخواست‌های پی‌گیری", "navigation_bar.follows_and_followers": "پی‌گرفتگان و پی‌گیرندگان", - "navigation_bar.info": "دربارهٔ این کارساز", - "navigation_bar.keyboard_shortcuts": "میان‌برها", "navigation_bar.lists": "سیاهه‌ها", "navigation_bar.logout": "خروج", "navigation_bar.mutes": "کاربران خموشانده", @@ -313,7 +385,10 @@ "navigation_bar.pins": "فرسته‌های سنجاق شده", "navigation_bar.preferences": "ترجیحات", "navigation_bar.public_timeline": "خط زمانی همگانی", + "navigation_bar.search": "جست‌وجو", "navigation_bar.security": "امنیت", + "not_signed_in_indicator.not_signed_in": "برای دسترسی به این منبع باید وارد شوید.", + "notification.admin.report": "{name}، {target} را گزارش داد", "notification.admin.sign_up": "{name} ثبت نام کرد", "notification.favourite": "‫{name}‬ فرسته‌تان را پسندید", "notification.follow": "‫{name}‬ پی‌گیرتان شد", @@ -326,6 +401,7 @@ "notification.update": "{name} فرسته‌ای را ویرایش کرد", "notifications.clear": "پاک‌سازی آگاهی‌ها", "notifications.clear_confirmation": "مطمئنید می‌خواهید همهٔ آگاهی‌هایتان را برای همیشه پاک کنید؟", + "notifications.column_settings.admin.report": "گزارش‌های جدید:", "notifications.column_settings.admin.sign_up": "ثبت نام‌های جدید:", "notifications.column_settings.alert": "آگاهی‌های میزکار", "notifications.column_settings.favourite": "پسندیده‌ها:", @@ -379,9 +455,11 @@ "privacy.public.short": "عمومی", "privacy.unlisted.long": "نمایان برای همه، ولی خارج از قابلیت‌های کشف", "privacy.unlisted.short": "فهرست نشده", + "privacy_policy.last_updated": "آخرین به‌روز رسانی در {date}", + "privacy_policy.title": "سیاست محرمانگی", "refresh": "نوسازی", "regeneration_indicator.label": "در حال بار شدن…", - "regeneration_indicator.sublabel": "خوراک خانگیان دارد آماده می‌شود!", + "regeneration_indicator.sublabel": "خوراک خانگیتان دارد آماده می‌شود!", "relative_time.days": "{number} روز", "relative_time.full.days": "{number, plural, one {# روز} other {# روز}} پیش", "relative_time.full.hours": "{number, plural, one {# ساعت} other {# ساعت}} پیش", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "ممنون بابت گزارش، ما آن را بررسی خواهیم کرد.", "report.unfollow": "ناپی‌گیری ‎@{name}", "report.unfollow_explanation": "شما این حساب را پی‌گرفته‌اید، برای اینکه دیگر فرسته‌هایش را در خوراک خانه‌تان نبینید؛ آن را پی‌نگیرید.", + "report_notification.attached_statuses": "{count, plural, one {{count} فرسته} other {{count} فرسته}} پیوست شده", + "report_notification.categories.other": "دیگر", + "report_notification.categories.spam": "هرزنامه", + "report_notification.categories.violation": "تخطّی از قانون", + "report_notification.open": "گشودن گزارش", "search.placeholder": "جست‌وجو", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "راهنمای جست‌وجوی پیشرفته", "search_popout.tips.full_text": "جست‌وجوی متنی ساده فرسته‌هایی که نوشته، پسندیده، تقویت‌کرده یا در آن‌ها نام‌برده شده‌اید را به علاوهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌ها برمی‌گرداند.", "search_popout.tips.hashtag": "برچسب", @@ -444,7 +528,17 @@ "search_results.nothing_found": "چیزی برای این عبارت جست‌وجو یافت نشد", "search_results.statuses": "فرسته‌ها", "search_results.statuses_fts_disabled": "جست‌وجوی محتوای فرسته‌ها در این کارساز ماستودون به کار انداخته نشده است.", + "search_results.title": "جست‌وجو برای {q}", "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}", + "server_banner.about_active_users": "افرادی که در ۳۰ روز گذشته از این کارساز استفاده کرده‌اند (کاربران فعّال ماهانه)", + "server_banner.active_users": "کاربران فعّال", + "server_banner.administered_by": "به مدیریت:", + "server_banner.introduction": "{domain} بخشی از شبکهٔ اجتماعی نامتمرکزیست که از {mastodon} نیرو گرفته.", + "server_banner.learn_more": "بیش‌تر بیاموزید", + "server_banner.server_stats": "آمار کارساز:", + "sign_in_banner.create_account": "ایجاد حساب", + "sign_in_banner.sign_in": "ورود", + "sign_in_banner.text": "برای پی‌گیری نمایه‌ها یا برچسب‌ها، هم‌رسانی و پاسخ به فرسته‌ها یا تعامل از حسابتان روی کارسازی دیگر، وارد شوید.", "status.admin_account": "گشودن واسط مدیریت برای ‎@{name}", "status.admin_status": "گشودن این فرسته در واسط مدیریت", "status.block": "مسدود کردن ‎@{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "{count, plural, one {{count} مرتبه} other {{count} مرتبه}} ویرایش شد", "status.embed": "جاسازی", "status.favourite": "پسندیدن", + "status.filter": "پالایش این فرسته", "status.filtered": "پالوده", + "status.hide": "نهفتن بوق", "status.history.created": "توسط {name} در {date} ایجاد شد", "status.history.edited": "توسط {name} در {date} ویرایش شد", "status.load_more": "بار کردن بیش‌تر", @@ -479,26 +575,32 @@ "status.reblogs.empty": "هنوز هیچ کسی این فرسته را تقویت نکرده است. وقتی کسی چنین کاری کند، این‌جا نمایش داده خواهد شد.", "status.redraft": "حذف و بازنویسی", "status.remove_bookmark": "برداشتن نشانک", + "status.replied_to": "به {name} پاسخ داد", "status.reply": "پاسخ", "status.replyAll": "پاسخ به رشته", "status.report": "گزارش ‎@{name}", "status.sensitive_warning": "محتوای حساس", "status.share": "هم‌رسانی", + "status.show_filter_reason": "به هر روی نشان داده شود", "status.show_less": "نمایش کمتر", "status.show_less_all": "نمایش کمتر همه", "status.show_more": "نمایش بیشتر", "status.show_more_all": "نمایش بیشتر همه", - "status.show_thread": "نمایش رشته", + "status.show_original": "نمایش اصلی", + "status.translate": "ترجمه", + "status.translated_from_with": "ترجمه از {lang} با {provider}", "status.uncached_media_warning": "ناموجود", "status.unmute_conversation": "رفع خموشی گفت‌وگو", "status.unpin": "برداشتن سنجاق از نمایه", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "ذخیرهٔ تغییرات", + "subscribed_languages.target": "تغییر زبان‌های مشترک شده برای {target}", "suggestions.dismiss": "نادیده گرفتن پیشنهاد", "suggestions.header": "شاید این هم برایتان جالب باشد…", "tabs_bar.federated_timeline": "همگانی", "tabs_bar.home": "خانه", "tabs_bar.local_timeline": "محلّی", "tabs_bar.notifications": "آگاهی‌ها", - "tabs_bar.search": "جست‌وجو", "time_remaining.days": "{number, plural, one {# روز} other {# روز}} باقی مانده", "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} باقی مانده", "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "پیگیرندگان", "timeline_hint.resources.follows": "پی‌گرفتگان", "timeline_hint.resources.statuses": "فرسته‌های قدیمی‌تر", - "trends.counter_by_accounts": "{count, plural, one {{counter} نفر} other {{counter} نفر}} صحبت می‌کنند", + "trends.counter_by_accounts": "{count, plural, one {{counter} نفر} other {{counter} نفر}} در {days, plural, one {روز} other {{days} روز}} گذشته", "trends.trending_now": "پرطرفدار", "ui.beforeunload": "اگر از ماستودون خارج شوید پیش‌نویس شما از دست خواهد رفت.", "units.short.billion": "{count}میلیارد", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "در حال آماده سازی OCR…", "upload_modal.preview_label": "پیش‌نمایش ({ratio})", "upload_progress.label": "در حال بارگذاری…", + "upload_progress.processing": "در حال پردازش…", "video.close": "بستن ویدیو", "video.download": "بارگیری پرونده", "video.exit_fullscreen": "خروج از حالت تمام‌صفحه", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 586d9858a1abf6..22c76f4db8eb6b 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -1,37 +1,55 @@ { + "about.blocks": "Moderoidut palvelimet", + "about.contact": "Yhteystiedot:", + "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.", + "about.domain_blocks.no_reason_available": "Syy ei saatavilla", + "about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.", + "about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.", + "about.domain_blocks.silenced.title": "Rajoitettu", + "about.domain_blocks.suspended.explanation": "Tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee käyttäjän kanssa vuorovaikutuksen tai yhteydenpidon mahdottomaksi tällä palvelimella.", + "about.domain_blocks.suspended.title": "Keskeytetty", + "about.not_available": "Näitä tietoja ei ole julkaistu tällä palvelimella.", + "about.powered_by": "Hajautettu sosiaalinen media, tarjoaa {mastodon}", + "about.rules": "Palvelimen säännöt", "account.account_note_header": "Muistiinpano", "account.add_or_remove_from_list": "Lisää tai poista listoilta", "account.badges.bot": "Botti", "account.badges.group": "Ryhmä", "account.block": "Estä @{name}", - "account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}", + "account.block_domain": "Estä verkkotunnus {domain}", "account.blocked": "Estetty", "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella", - "account.cancel_follow_request": "Peruuta seurauspyyntö", - "account.direct": "Pikaviesti käyttäjälle @{name}", + "account.cancel_follow_request": "Peruuta seurantapyyntö", + "account.direct": "Yksityisviesti käyttäjälle @{name}", "account.disable_notifications": "Lopeta @{name}:n julkaisuista ilmoittaminen", "account.domain_blocked": "Verkko-osoite piilotettu", "account.edit_profile": "Muokkaa profiilia", "account.enable_notifications": "Ilmoita @{name}:n julkaisuista", "account.endorse": "Suosittele profiilissasi", + "account.featured_tags.last_status_at": "Viimeisin viesti {date}", + "account.featured_tags.last_status_never": "Ei viestejä", + "account.featured_tags.title": "{name} esillä olevat hashtagit", "account.follow": "Seuraa", "account.followers": "Seuraajat", "account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.", "account.followers_counter": "{count, plural, one {{counter} seuraaja} other {{counter} seuraajat}}", - "account.following": "Following", + "account.following": "Seurataan", "account.following_counter": "{count, plural, one {{counter} seuraa} other {{counter} seuraa}}", "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.", "account.follows_you": "Seuraa sinua", + "account.go_to_profile": "Mene profiiliin", "account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}", - "account.joined": "Liittynyt {date}", + "account.joined_short": "Liittynyt", + "account.languages": "Vaihda tilattuja kieliä", "account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}", "account.locked_info": "Tämän tilin yksityisyyden tila on asetettu lukituksi. Omistaja arvioi manuaalisesti, kuka voi seurata niitä.", "account.media": "Media", "account.mention": "Mainitse @{name}", - "account.moved_to": "{name} on muuttanut:", + "account.moved_to": "{name} on ilmoittanut uudeksi tilikseen", "account.mute": "Mykistä @{name}", "account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}", "account.muted": "Mykistetty", + "account.open_original_page": "Avaa alkuperäinen sivu", "account.posts": "Viestit", "account.posts_with_replies": "Viestit ja vastaukset", "account.report": "Raportoi @{name}", @@ -41,12 +59,12 @@ "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", "account.unblock": "Salli @{name}", "account.unblock_domain": "Salli {domain}", - "account.unblock_short": "Unblock", + "account.unblock_short": "Poista esto", "account.unendorse": "Poista suosittelu profiilistasi", "account.unfollow": "Lopeta seuraaminen", "account.unmute": "Poista käyttäjän @{name} mykistys", "account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta", - "account.unmute_short": "Unmute", + "account.unmute_short": "Poista mykistys", "account_note.placeholder": "Lisää muistiinpano napsauttamalla", "admin.dashboard.daily_retention": "Käyttäjän säilyminen rekisteröitymisen jälkeiseen päivään mennessä", "admin.dashboard.monthly_retention": "Käyttäjän säilyminen rekisteröitymisen jälkeiseen kuukauteen mennessä", @@ -59,18 +77,31 @@ "alert.unexpected.title": "Hups!", "announcement.announcement": "Ilmoitus", "attachments_list.unprocessed": "(käsittelemätön)", + "audio.hide": "Piilota ääni", "autosuggest_hashtag.per_week": "{count} viikossa", "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}", - "bundle_column_error.body": "Jokin meni vikaan komponenttia ladattaessa.", + "bundle_column_error.copy_stacktrace": "Kopioi virheraportti", + "bundle_column_error.error.body": "Pyydettyä sivua ei voitu hahmontaa. Se voi johtua virheestä koodissamme tai selaimen yhteensopivuudessa.", + "bundle_column_error.error.title": "Voi ei!", + "bundle_column_error.network.body": "Sivun lataamisessa tapahtui virhe. Tämä voi johtua tilapäisestä Internet-yhteyden tai tämän palvelimen ongelmasta.", + "bundle_column_error.network.title": "Verkkovirhe", "bundle_column_error.retry": "Yritä uudestaan", - "bundle_column_error.title": "Verkkovirhe", + "bundle_column_error.return": "Palaa takaisin kotiin", + "bundle_column_error.routing.body": "Pyydettyä sivua ei löytynyt. Oletko varma, että osoitepalkin URL-osoite on oikein?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Sulje", "bundle_modal_error.message": "Jokin meni vikaan komponenttia ladattaessa.", "bundle_modal_error.retry": "Yritä uudelleen", + "closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja silti olla vuorovaikutuksessa tämän kanssa.", + "closed_registrations_modal.description": "Tilin luominen palvelimeen {domain} ei ole tällä hetkellä mahdollista, mutta huomioi, että et tarvitse tiliä erityisesti palvelimeen {domain} käyttääksesi Mastodonia.", + "closed_registrations_modal.find_another_server": "Etsi toinen palvelin", + "closed_registrations_modal.preamble": "Mastodon on hajautettu, joten riippumatta siitä, missä luot tilisi, voit seurata ja olla vuorovaikutuksessa kenen tahansa kanssa tällä palvelimella. Voit jopa isännöidä palvelinta!", + "closed_registrations_modal.title": "Rekisteröityminen Mastodoniin", + "column.about": "Tietoja", "column.blocks": "Estetyt käyttäjät", "column.bookmarks": "Kirjanmerkit", "column.community": "Paikallinen aikajana", - "column.direct": "Direct messages", + "column.direct": "Yksityisviestit", "column.directory": "Selaa profiileja", "column.domain_blocks": "Piilotetut verkkotunnukset", "column.favourites": "Suosikit", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Vain paikalliset", "community.column_settings.media_only": "Vain media", "community.column_settings.remote_only": "Vain etäkäyttö", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Vaihda kieli", + "compose.language.search": "Hae kieliä...", "compose_form.direct_message_warning_learn_more": "Lisätietoja", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Mastodonin viestit eivät ole päästä päähän salattuja. Älä jaa arkaluonteisia tietoja Mastodonissa.", "compose_form.hashtag_warning": "Tätä julkaisua listata minkään hastagin alle, koska se on listaamaton. Ainoastaan julkisia julkaisuja etsiä hastageilla.", "compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.", "compose_form.lock_disclaimer.lock": "lukittu", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Poista tämä valinta", "compose_form.poll.switch_to_multiple": "Muuta kysely monivalinnaksi", "compose_form.poll.switch_to_single": "Muuta kysely sallimaan vain yksi valinta", - "compose_form.publish": "Lähetä viesti", + "compose_form.publish": "Julkaise", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Tallenna muutokset", "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse media arkaluontoiseksi}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Estä ja raportoi", "confirmations.block.confirm": "Estä", "confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?", + "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö", + "confirmations.cancel_follow_request.message": "Haluatko varmasti peruuttaa pyyntösi seurata käyttäjää {name}?", "confirmations.delete.confirm": "Poista", "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?", "confirmations.delete_list.confirm": "Poista", @@ -130,7 +163,7 @@ "confirmations.logout.confirm": "Kirjaudu ulos", "confirmations.logout.message": "Oletko varma, että haluat kirjautua ulos?", "confirmations.mute.confirm": "Mykistä", - "confirmations.mute.explanation": "Tämä piilottaa heidän julkaisut ja julkaisut, joissa heidät mainitaan, mutta sallii edelleen heidän nähdä julkaisusi ja seurata sinua.", + "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.", "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?", "confirmations.redraft.confirm": "Poista & palauta muokattavaksi", "confirmations.redraft.message": "Oletko varma että haluat poistaa tämän julkaisun ja tehdä siitä uuden luonnoksen? Suosikit ja buustaukset menetään, alkuperäisen julkaisusi vastaukset jäävät orvoiksi.", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Merkitse luetuksi", "conversation.open": "Näytä keskustelu", "conversation.with": "{names} kanssa", + "copypaste.copied": "Kopioitu", + "copypaste.copy": "Kopioi", "directory.federated": "Koko tunnettu fediverse", "directory.local": "Vain palvelimelta {domain}", "directory.new_arrivals": "Äskettäin saapuneet", "directory.recently_active": "Hiljattain aktiiviset", + "disabled_account_banner.account_settings": "Tilin asetukset", + "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.", + "dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset viestit ihmisiltä, joiden tilejä isännöi {domain}.", + "dismissable_banner.dismiss": "Hylkää", + "dismissable_banner.explore_links": "Näistä uutisista puhuvat ihmiset juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", + "dismissable_banner.explore_statuses": "Nämä viestit juuri nyt tältä ja muilta hajautetun verkon palvelimilta ovat saamassa vetoa tältä palvelimelta.", + "dismissable_banner.explore_tags": "Nämä hashtagit juuri nyt ovat saamassa vetovoimaa tällä ja muilla hajautetun verkon palvelimilla olevien ihmisten keskuudessa.", + "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkisia viestejä ihmisiltä, jotka ovat tällä ja muilla hajautetun verkon palvelimilla, joista tämä palvelin tietää.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", "embed.preview": "Se tulee näyttämään tältä:", "emoji_button.activity": "Aktiviteetit", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Tyhjennä", "emoji_button.custom": "Mukautetut", "emoji_button.flags": "Liput", "emoji_button.food": "Ruoka ja juoma", @@ -164,12 +207,12 @@ "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", "empty_column.account_suspended": "Tilin käyttäminen keskeytetty", - "empty_column.account_timeline": "Täällä ei viestejä!", + "empty_column.account_timeline": "Ei viestejä täällä.", "empty_column.account_unavailable": "Profiilia ei löydy", "empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.", "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "Sinulla ei ole vielä yksityisviestejä. Kun lähetät tai vastaanotat sellaisen, se näkyy tässä.", "empty_column.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä estetty.", "empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!", "empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", @@ -196,21 +239,37 @@ "explore.trending_links": "Uutiset", "explore.trending_statuses": "Viestit", "explore.trending_tags": "Aihetunnisteet", + "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet käyttänyt tätä viestiä. Jos haluat, että viesti suodatetaan myös tässä yhteydessä, sinun on muokattava suodatinta.", + "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!", + "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut ja sinun on muutettava viimeistä voimassaolon päivää, jotta sitä voidaan käyttää.", + "filter_modal.added.expired_title": "Vanhentunut suodatin!", + "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin siirtymällä {settings_link}.", + "filter_modal.added.review_and_configure_title": "Suodattimen asetukset", + "filter_modal.added.settings_link": "asetukset sivu", + "filter_modal.added.short_explanation": "Tämä viesti on lisätty seuraavaan suodatinluokkaan: {title}.", + "filter_modal.added.title": "Suodatin lisätty!", + "filter_modal.select_filter.context_mismatch": "ei sovellu tähän asiayhteyteen", + "filter_modal.select_filter.expired": "vanhentunut", + "filter_modal.select_filter.prompt_new": "Uusi luokka: {name}", + "filter_modal.select_filter.search": "Etsi tai luo", + "filter_modal.select_filter.subtitle": "Käytä olemassa olevaa luokkaa tai luo uusi luokka", + "filter_modal.select_filter.title": "Suodata tämä viesti", + "filter_modal.title.status": "Suodata viesti", "follow_recommendations.done": "Valmis", "follow_recommendations.heading": "Seuraa ihmisiä, joilta haluaisit nähdä julkaisuja! Tässä on muutamia ehdotuksia.", "follow_recommendations.lead": "Seuraamiesi julkaisut näkyvät aikajärjestyksessä kotisyötteessä. Älä pelkää seurata vahingossa, voit lopettaa seuraamisen yhtä helposti!", "follow_request.authorize": "Valtuuta", "follow_request.reject": "Hylkää", "follow_requests.unlocked_explanation": "Vaikka tiliäsi ei ole lukittu, {domain}:n ylläpitäjien mielestä saatat haluta tarkistaa nämä seurauspyynnöt manuaalisesti.", + "footer.about": "Tietoja", + "footer.directory": "Profiilihakemisto", + "footer.get_app": "Hanki sovellus", + "footer.invite": "Kutsu ihmisiä", + "footer.keyboard_shortcuts": "Pikanäppäimet", + "footer.privacy_policy": "Tietosuojakäytäntö", + "footer.source_code": "Näytä lähdekoodi", "generic.saved": "Tallennettu", - "getting_started.developers": "Kehittäjät", - "getting_started.directory": "Profiilihakemisto", - "getting_started.documentation": "Käyttöohjeet", "getting_started.heading": "Näin pääset alkuun", - "getting_started.invite": "Kutsu ihmisiä", - "getting_started.open_source_notice": "Mastodon on avoimen lähdekoodin ohjelma. Voit avustaa tai raportoida ongelmia GitHubissa: {github}.", - "getting_started.security": "Tiliasetukset", - "getting_started.terms": "Käyttöehdot", "hashtag.column_header.tag_mode.all": "ja {additional}", "hashtag.column_header.tag_mode.any": "tai {additional}", "hashtag.column_header.tag_mode.none": "ilman {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Mikä tahansa näistä", "hashtag.column_settings.tag_mode.none": "Ei mitään näistä", "hashtag.column_settings.tag_toggle": "Sisällytä lisätunnisteet tähän sarakkeeseen", + "hashtag.follow": "Seuraa hashtagia", + "hashtag.unfollow": "Lopeta seuraaminen hashtagilla", "home.column_settings.basic": "Perusasetukset", "home.column_settings.show_reblogs": "Näytä buustaukset", "home.column_settings.show_replies": "Näytä vastaukset", "home.hide_announcements": "Piilota ilmoitukset", "home.show_announcements": "Näytä ilmoitukset", + "interaction_modal.description.favourite": "Kun sinulla on tili Mastodonissa, voit lisätä tämän viestin suosikkeihin ja tallentaa sen myöhempää käyttöä varten.", + "interaction_modal.description.follow": "Kun sinulla on tili Mastodonissa, voit seurata {name} saadaksesi hänen viestejä sinun kotisyötteeseen.", + "interaction_modal.description.reblog": "Kun sinulla on tili Mastodonissa, voit tehostaa viestiä ja jakaa sen omien seuraajiesi kanssa.", + "interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.", + "interaction_modal.on_another_server": "Toisella palvelimella", + "interaction_modal.on_this_server": "Tällä palvelimella", + "interaction_modal.other_server_instructions": "Kopioi ja liitä tämä URL-osoite käyttämäsi Mastodon-sovelluksen hakukenttään tai Mastodon-palvelimen web-käyttöliittymään.", + "interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.", + "interaction_modal.title.favourite": "Suosikin {name} viesti", + "interaction_modal.title.follow": "Seuraa {name}", + "interaction_modal.title.reblog": "Tehosta {name} viestiä", + "interaction_modal.title.reply": "Vastaa {name} viestiin", "intervals.full.days": "{number, plural, one {# päivä} other {# päivää}}", "intervals.full.hours": "{number, plural, one {# tunti} other {# tuntia}}", "intervals.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}}", @@ -234,7 +307,7 @@ "keyboard_shortcuts.column": "Kohdista sarakkeeseen", "keyboard_shortcuts.compose": "siirry tekstinsyöttöön", "keyboard_shortcuts.description": "Kuvaus", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "avaa yksityisviesti sarake", "keyboard_shortcuts.down": "Siirry listassa alaspäin", "keyboard_shortcuts.enter": "Avaa julkaisu", "keyboard_shortcuts.favourite": "Lisää suosikkeihin", @@ -267,8 +340,8 @@ "lightbox.expand": "Laajenna kuvan näkymälaatikko", "lightbox.next": "Seuraava", "lightbox.previous": "Edellinen", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Näytä profiili joka tapauksessa", + "limited_account_hint.title": "Palvelun {domain} moderaattorit ovat piilottaneet tämän profiilin.", "lists.account.add": "Lisää listaan", "lists.account.remove": "Poista listasta", "lists.delete": "Poista lista", @@ -287,25 +360,24 @@ "media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}", "missing_indicator.label": "Ei löytynyt", "missing_indicator.sublabel": "Tätä resurssia ei löytynyt", + "moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.", "mute_modal.duration": "Kesto", "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?", "mute_modal.indefinite": "Ikuisesti", - "navigation_bar.apps": "Mobiilisovellukset", + "navigation_bar.about": "Tietoja", "navigation_bar.blocks": "Estetyt käyttäjät", "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", "navigation_bar.compose": "Luo uusi viesti", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Yksityisviestit", "navigation_bar.discover": "Löydä uutta", "navigation_bar.domain_blocks": "Estetyt verkkotunnukset", "navigation_bar.edit_profile": "Muokkaa profiilia", - "navigation_bar.explore": "Explore", + "navigation_bar.explore": "Selaa", "navigation_bar.favourites": "Suosikit", "navigation_bar.filters": "Mykistetyt sanat", "navigation_bar.follow_requests": "Seuraamispyynnöt", "navigation_bar.follows_and_followers": "Seurattavat ja seuraajat", - "navigation_bar.info": "Tietoa tästä palvelimesta", - "navigation_bar.keyboard_shortcuts": "Pikanäppäimet", "navigation_bar.lists": "Listat", "navigation_bar.logout": "Kirjaudu ulos", "navigation_bar.mutes": "Mykistetyt käyttäjät", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Kiinnitetyt viestit", "navigation_bar.preferences": "Asetukset", "navigation_bar.public_timeline": "Yleinen aikajana", + "navigation_bar.search": "Haku", "navigation_bar.security": "Turvallisuus", + "not_signed_in_indicator.not_signed_in": "Sinun täytyy kirjautua sisään päästäksesi käsiksi tähän resurssiin.", + "notification.admin.report": "{name} ilmoitti {target}", "notification.admin.sign_up": "{name} rekisteröitynyt", "notification.favourite": "{name} tykkäsi viestistäsi", "notification.follow": "{name} seurasi sinua", @@ -326,6 +401,7 @@ "notification.update": "{name} muokkasi viestiä", "notifications.clear": "Tyhjennä ilmoitukset", "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?", + "notifications.column_settings.admin.report": "Uudet raportit:", "notifications.column_settings.admin.sign_up": "Uudet kirjautumiset:", "notifications.column_settings.alert": "Työpöytäilmoitukset", "notifications.column_settings.favourite": "Tykkäykset:", @@ -372,13 +448,15 @@ "poll_button.remove_poll": "Poista kysely", "privacy.change": "Muuta julkaisun näkyvyyttä", "privacy.direct.long": "Julkaise vain mainituille käyttäjille", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Vain mainitut henkilöt", "privacy.private.long": "Julkaise vain seuraajille", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.private.short": "Vain seuraajat", + "privacy.public.long": "Näkyvissä kaikille", "privacy.public.short": "Julkinen", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Näkyvissä kaikille, mutta jättäen pois hakemisen mahdollisuus", "privacy.unlisted.short": "Listaamaton julkinen", + "privacy_policy.last_updated": "Viimeksi päivitetty {date}", + "privacy_policy.title": "Tietosuojakäytäntö", "refresh": "Päivitä", "regeneration_indicator.label": "Ladataan…", "regeneration_indicator.sublabel": "Kotinäkymääsi valmistellaan!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.", "report.unfollow": "Lopeta seuraaminen @{name}", "report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näkisi heidän kirjoituksiaan, lopeta niiden seuraaminen.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} viestiä}} liitteenä", + "report_notification.categories.other": "Muu", + "report_notification.categories.spam": "Roskaposti", + "report_notification.categories.violation": "Sääntöjen rikkominen", + "report_notification.open": "Avaa raportti", "search.placeholder": "Hae", + "search.search_or_paste": "Etsi tai kirjoita URL-osoite", "search_popout.search_format": "Tarkennettu haku", "search_popout.tips.full_text": "Tekstihaku listaa tilapäivitykset, jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä tekstin sisältävät käyttäjänimet, nimimerkit ja hastagit.", "search_popout.tips.hashtag": "aihetunnisteet", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään", "search_results.statuses": "Viestit", "search_results.statuses_fts_disabled": "Viestien haku sisällön perusteella ei ole käytössä tällä Mastodon-palvelimella.", + "search_results.title": "Etsi {q}", "search_results.total": "{count, number} {count, plural, one {tulos} other {tulokset}}", + "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)", + "server_banner.active_users": "aktiiviset käyttäjät", + "server_banner.administered_by": "Ylläpitäjä:", + "server_banner.introduction": "{domain} on osa hajautettua sosiaalista verkostoa, jonka tarjoaa {mastodon}.", + "server_banner.learn_more": "Lue lisää", + "server_banner.server_stats": "Palvelimen tilastot:", + "sign_in_banner.create_account": "Luo tili", + "sign_in_banner.sign_in": "Kirjaudu sisään", + "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai hashtageja, lisätäksesi suosikkeihin, jakaaksesi viestejä ja vastataksesi niihin tai ollaksesi vuorovaikutuksessa tililläsi toisella palvelimella.", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", "status.admin_status": "Avaa julkaisu moderointinäkymässä", "status.block": "Estä @{name}", @@ -454,13 +548,15 @@ "status.copy": "Kopioi linkki julkaisuun", "status.delete": "Poista", "status.detailed_status": "Yksityiskohtainen keskustelunäkymä", - "status.direct": "Pikaviesti käyttäjälle @{name}", + "status.direct": "Yksityisviesti käyttäjälle @{name}", "status.edit": "Muokkaa", "status.edited": "Muokattu {date}", "status.edited_x_times": "Muokattu {count, plural, one {{count} aika} other {{count} kertaa}}", "status.embed": "Upota", "status.favourite": "Tykkää", + "status.filter": "Suodata tämä viesti", "status.filtered": "Suodatettu", + "status.hide": "Piilota toot", "status.history.created": "{name} luotu {date}", "status.history.edited": "{name} muokkasi {date}", "status.load_more": "Lataa lisää", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.", "status.redraft": "Poista ja palauta muokattavaksi", "status.remove_bookmark": "Poista kirjanmerkki", + "status.replied_to": "Vastaa käyttäjälle {name}", "status.reply": "Vastaa", "status.replyAll": "Vastaa ketjuun", "status.report": "Raportoi @{name}", "status.sensitive_warning": "Arkaluontoista sisältöä", "status.share": "Jaa", + "status.show_filter_reason": "Näytä joka tapauksessa", "status.show_less": "Näytä vähemmän", "status.show_less_all": "Näytä vähemmän kaikista", "status.show_more": "Näytä lisää", "status.show_more_all": "Näytä lisää kaikista", - "status.show_thread": "Näytä ketju", + "status.show_original": "Näytä alkuperäinen", + "status.translate": "Käännä", + "status.translated_from_with": "Käännetty kielestä {lang} käyttäen palvelua {provider}", "status.uncached_media_warning": "Ei saatavilla", "status.unmute_conversation": "Poista keskustelun mykistys", "status.unpin": "Irrota profiilista", + "subscribed_languages.lead": "Vain valituilla kielillä julkaistut viestit näkyvät etusivullasi ja aikajanalla muutoksen jälkeen. Valitse ei mitään, jos haluat vastaanottaa viestejä kaikilla kielillä.", + "subscribed_languages.save": "Tallenna muutokset", + "subscribed_languages.target": "Vaihda tilatut kielet {target}", "suggestions.dismiss": "Hylkää ehdotus", "suggestions.header": "Saatat olla kiinnostunut myös…", "tabs_bar.federated_timeline": "Yleinen", "tabs_bar.home": "Koti", "tabs_bar.local_timeline": "Paikallinen", "tabs_bar.notifications": "Ilmoitukset", - "tabs_bar.search": "Hae", "time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä", "time_remaining.hours": "{number, plural, one {# tunti} other {# tuntia}} jäljellä", "time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä", @@ -506,9 +608,9 @@ "time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä", "timeline_hint.remote_resource_not_displayed": "{resource} muilta palvelimilta ei näytetä.", "timeline_hint.resources.followers": "Seuraajat", - "timeline_hint.resources.follows": "Seuraa", + "timeline_hint.resources.follows": "seurattua", "timeline_hint.resources.statuses": "Vanhemmat julkaisut", - "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} puhuu", + "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeinen {days, plural, one {päivä} other {{days} päivää}}", "trends.trending_now": "Suosittua nyt", "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.", "units.short.billion": "{count} mrd.", @@ -520,7 +622,7 @@ "upload_error.poll": "Tiedon lataaminen ei ole sallittua kyselyissä.", "upload_form.audio_description": "Kuvaile kuulovammaisille", "upload_form.description": "Anna kuvaus näkörajoitteisia varten", - "upload_form.description_missing": "No description added", + "upload_form.description_missing": "Kuvausta ei ole lisätty", "upload_form.edit": "Muokkaa", "upload_form.thumbnail": "Vaihda pikkukuva", "upload_form.undo": "Peru", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Valmistellaan OCR…", "upload_modal.preview_label": "Esikatselu ({ratio})", "upload_progress.label": "Ladataan...", + "upload_progress.processing": "Käsitellään…", "video.close": "Sulje video", "video.download": "Lataa tiedosto", "video.exit_fullscreen": "Poistu koko näytön tilasta", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index cf7918fa528bb5..eeb5d9ee73cbef 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -1,4 +1,16 @@ { + "about.blocks": "Serveurs modérés", + "about.contact": "Contact :", + "about.disclaimer": "Mastodon est un logiciel libre, open-source et une marque déposée de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Raison non disponible", + "about.domain_blocks.preamble": "Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateurs de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.", + "about.domain_blocks.silenced.explanation": "Vous ne verrez généralement pas les profils et le contenu de ce serveur, à moins que vous ne les recherchiez explicitement ou que vous ne choisissiez de les suivre.", + "about.domain_blocks.silenced.title": "Limité", + "about.domain_blocks.suspended.explanation": "Aucune donnée de ce serveur ne sera traitée, enregistrée ou échangée, rendant impossible toute interaction ou communication avec les utilisateurs de ce serveur.", + "about.domain_blocks.suspended.title": "Suspendu", + "about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.", + "about.powered_by": "Réseau social décentralisé propulsé par {mastodon}", + "about.rules": "Règles du serveur", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Ajouter ou retirer des listes", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Bloquer le domaine {domain}", "account.blocked": "Bloqué·e", "account.browse_more_on_origin_server": "Parcourir davantage sur le profil original", - "account.cancel_follow_request": "Annuler la demande de suivi", + "account.cancel_follow_request": "Retirer la demande d’abonnement", "account.direct": "Envoyer un message direct à @{name}", "account.disable_notifications": "Ne plus me notifier quand @{name} publie quelque chose", "account.domain_blocked": "Domaine bloqué", "account.edit_profile": "Modifier le profil", "account.enable_notifications": "Me notifier quand @{name} publie quelque chose", "account.endorse": "Recommander sur votre profil", + "account.featured_tags.last_status_at": "Dernier message le {date}", + "account.featured_tags.last_status_never": "Aucun message", + "account.featured_tags.title": "Les hashtags en vedette de {name}", "account.follow": "Suivre", "account.followers": "Abonné·e·s", "account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Abonnement} other {{counter} Abonnements}}", "account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.", "account.follows_you": "Vous suit", + "account.go_to_profile": "Voir le profil", "account.hide_reblogs": "Masquer les partages de @{name}", - "account.joined": "Ici depuis {date}", + "account.joined_short": "Ici depuis", + "account.languages": "Changer les langues abonnées", "account.link_verified_on": "La propriété de ce lien a été vérifiée le {date}", "account.locked_info": "Ce compte est privé. Son ou sa propriétaire approuve manuellement qui peut le suivre.", "account.media": "Médias", "account.mention": "Mentionner @{name}", - "account.moved_to": "{name} a déménagé vers :", + "account.moved_to": "{name} a indiqué que son nouveau compte est tmaintenant  :", "account.mute": "Masquer @{name}", "account.mute_notifications": "Masquer les notifications de @{name}", "account.muted": "Masqué·e", + "account.open_original_page": "Ouvrir la page d'origine", "account.posts": "Messages", "account.posts_with_replies": "Messages et réponses", "account.report": "Signaler @{name}", @@ -59,16 +77,29 @@ "alert.unexpected.title": "Oups !", "announcement.announcement": "Annonce", "attachments_list.unprocessed": "(non traité)", + "audio.hide": "Masquer l'audio", "autosuggest_hashtag.per_week": "{count} par semaine", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois", - "bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.", + "bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur", + "bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela peut être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.", + "bundle_column_error.error.title": "Oh non !", + "bundle_column_error.network.body": "Une erreur s'est produite lors du chargement de cette page. Cela peut être dû à un problème temporaire avec votre connexion internet ou avec ce serveur.", + "bundle_column_error.network.title": "Erreur réseau", "bundle_column_error.retry": "Réessayer", - "bundle_column_error.title": "Erreur réseau", + "bundle_column_error.return": "Retour à l'accueil", + "bundle_column_error.routing.body": "La page demandée est introuvable. Êtes-vous sûr que l’URL dans la barre d’adresse est correcte ?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Fermer", "bundle_modal_error.message": "Une erreur s’est produite lors du chargement de ce composant.", "bundle_modal_error.retry": "Réessayer", - "column.blocks": "Comptes bloqués", - "column.bookmarks": "Marque-pages", + "closed_registrations.other_server_instructions": "Puisque Mastodon est décentralisé, vous pouvez créer un compte sur un autre serveur et interagir quand même avec celui-ci.", + "closed_registrations_modal.description": "Créer un compte sur {domain} est actuellement impossible, néanmoins souvenez-vous que vous n'avez pas besoin d'un compte spécifiquement sur {domain} pour utiliser Mastodon.", + "closed_registrations_modal.find_another_server": "Trouver un autre serveur", + "closed_registrations_modal.preamble": "Mastodon est décentralisé : peu importe où vous créez votre votre, vous serez en mesure de suivre et d'interagir avec quiconque sur ce serveur. Vous pouvez même l'héberger !", + "closed_registrations_modal.title": "Inscription sur Mastodon", + "column.about": "À propos", + "column.blocks": "Utilisateurs bloqués", + "column.bookmarks": "Signets", "column.community": "Fil public local", "column.direct": "Messages directs", "column.directory": "Parcourir les profils", @@ -95,7 +126,7 @@ "compose.language.change": "Changer de langue", "compose.language.search": "Rechercher des langues …", "compose_form.direct_message_warning_learn_more": "En savoir plus", - "compose_form.encryption_warning": "Les messages sur Mastodon ne sont pas chiffrés de bout en bout. Ne partagez aucune information confidentielle sur Mastodon.", + "compose_form.encryption_warning": "Les messages sur Mastodon ne sont pas chiffrés de bout en bout. Ne partagez aucune information sensible sur Mastodon.", "compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur « non listé ». Seuls les pouets avec une visibilité « publique » peuvent être recherchés par hashtag.", "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos messages privés.", "compose_form.lock_disclaimer.lock": "verrouillé", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Supprimer ce choix", "compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix", "compose_form.poll.switch_to_single": "Changer le sondage pour autoriser qu'un seul choix", - "compose_form.publish": "Pouet", + "compose_form.publish": "Publier", "compose_form.publish_loud": "{publish} !", "compose_form.save_changes": "Enregistrer les modifications", "compose_form.sensitive.hide": "Marquer le média comme sensible", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloquer et signaler", "confirmations.block.confirm": "Bloquer", "confirmations.block.message": "Voulez-vous vraiment bloquer {name} ?", + "confirmations.cancel_follow_request.confirm": "Retirer la demande", + "confirmations.cancel_follow_request.message": "Êtes-vous sûr de vouloir retirer votre demande pour suivre {name} ?", "confirmations.delete.confirm": "Supprimer", "confirmations.delete.message": "Voulez-vous vraiment supprimer ce message ?", "confirmations.delete_list.confirm": "Supprimer", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marquer comme lu", "conversation.open": "Afficher la conversation", "conversation.with": "Avec {names}", + "copypaste.copied": "Copié", + "copypaste.copy": "Copier", "directory.federated": "Du fédiverse connu", "directory.local": "De {domain} seulement", "directory.new_arrivals": "Inscrit·e·s récemment", "directory.recently_active": "Actif·ve·s récemment", + "disabled_account_banner.account_settings": "Paramètres du compte", + "disabled_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé.", + "dismissable_banner.community_timeline": "Voici les messages publics les plus récents des personnes dont les comptes sont hébergés par {domain}.", + "dismissable_banner.dismiss": "Rejeter", + "dismissable_banner.explore_links": "Ces nouvelles sont actuellement en cours de discussion par des personnes sur d'autres serveurs du réseau décentralisé ainsi que sur celui-ci.", + "dismissable_banner.explore_statuses": "Ces publications depuis les serveurs du réseau décentralisé, dont celui-ci, sont actuellement en train de gagner de l'ampleur sur ce serveur.", + "dismissable_banner.explore_tags": "Ces hashtags sont actuellement en train de gagner de l'ampleur parmi les personnes sur les serveurs du réseau décentralisé dont celui-ci.", + "dismissable_banner.public_timeline": "Voici les publications publiques les plus récentes des personnes de ce serveur et des autres du réseau décentralisé que ce serveur connait.", "embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.", "embed.preview": "Il apparaîtra comme cela :", "emoji_button.activity": "Activités", @@ -196,21 +239,37 @@ "explore.trending_links": "Actualité", "explore.trending_statuses": "Messages", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Cette catégorie de filtre ne s'applique pas au contexte dans lequel vous avez accédé à ce message. Si vous voulez que le message soit filtré dans ce contexte également, vous devrez modifier le filtre.", + "filter_modal.added.context_mismatch_title": "Incompatibilité du contexte !", + "filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.", + "filter_modal.added.expired_title": "Filtre expiré !", + "filter_modal.added.review_and_configure": "Pour passer en revue et approfondir la configuration de cette catégorie de filtre, aller sur le {settings_link}.", + "filter_modal.added.review_and_configure_title": "Paramètres du filtre", + "filter_modal.added.settings_link": "page des paramètres", + "filter_modal.added.short_explanation": "Ce message a été ajouté à la catégorie de filtre suivante : {title}.", + "filter_modal.added.title": "Filtre ajouté !", + "filter_modal.select_filter.context_mismatch": "ne s’applique pas à ce contexte", + "filter_modal.select_filter.expired": "a expiré", + "filter_modal.select_filter.prompt_new": "Nouvelle catégorie : {name}", + "filter_modal.select_filter.search": "Rechercher ou créer", + "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle", + "filter_modal.select_filter.title": "Filtrer ce message", + "filter_modal.title.status": "Filtrer un message", "follow_recommendations.done": "Terminé", "follow_recommendations.heading": "Suivez les personnes dont vous aimeriez voir les messages ! Voici quelques suggestions.", "follow_recommendations.lead": "Les messages des personnes que vous suivez apparaîtront par ordre chronologique sur votre fil d'accueil. Ne craignez pas de faire des erreurs, vous pouvez arrêter de suivre les gens aussi facilement à tout moment !", "follow_request.authorize": "Accepter", "follow_request.reject": "Rejeter", "follow_requests.unlocked_explanation": "Même si votre compte n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir consulter manuellement les demandes de suivi de ces comptes.", + "footer.about": "À propos", + "footer.directory": "Annuaire des profils", + "footer.get_app": "Télécharger l’application", + "footer.invite": "Inviter des personnes", + "footer.keyboard_shortcuts": "Raccourcis clavier", + "footer.privacy_policy": "Politique de confidentialité", + "footer.source_code": "Voir le code source", "generic.saved": "Sauvegardé", - "getting_started.developers": "Développeur·euse·s", - "getting_started.directory": "Annuaire des profils", - "getting_started.documentation": "Documentation", "getting_started.heading": "Pour commencer", - "getting_started.invite": "Inviter des gens", - "getting_started.open_source_notice": "Mastodon est un logiciel libre. Vous pouvez contribuer ou faire des rapports de bogues via {github} sur GitHub.", - "getting_started.security": "Sécurité", - "getting_started.terms": "Conditions d’utilisation", "hashtag.column_header.tag_mode.all": "et {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sans {additional}", @@ -220,11 +279,25 @@ "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 hashtags additionnels pour cette colonne", + "hashtag.follow": "Suivre le hashtag", + "hashtag.unfollow": "Ne plus suivre le hashtag", "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_replies": "Afficher les réponses", "home.hide_announcements": "Masquer les annonces", "home.show_announcements": "Afficher les annonces", + "interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce post aux favoris pour informer l'auteur que vous l'appréciez et le sauvegarder pour plus tard.", + "interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.", + "interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez booster ce message pour le partager avec vos propres abonnés.", + "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.", + "interaction_modal.on_another_server": "Sur un autre serveur", + "interaction_modal.on_this_server": "Sur ce serveur", + "interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou l'interface web de votre serveur Mastodon.", + "interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.", + "interaction_modal.title.favourite": "Ajouter de post de {name} aux favoris", + "interaction_modal.title.follow": "Suivre {name}", + "interaction_modal.title.reblog": "Partager la publication de {name}", + "interaction_modal.title.reply": "Répondre au message de {name}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -268,7 +341,7 @@ "lightbox.next": "Suivant", "lightbox.previous": "Précédent", "limited_account_hint.action": "Afficher le profil quand même", - "limited_account_hint.title": "Ce profil a été masqué par la modération de votre serveur.", + "limited_account_hint.title": "Ce profil a été masqué par la modération de {domain}.", "lists.account.add": "Ajouter à la liste", "lists.account.remove": "Supprimer de la liste", "lists.delete": "Supprimer la liste", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Cacher l’image} other {Cacher les images}}", "missing_indicator.label": "Non trouvé", "missing_indicator.sublabel": "Ressource introuvable", + "moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous avez déplacé vers {movedToAccount}.", "mute_modal.duration": "Durée", "mute_modal.hide_notifications": "Masquer les notifications de cette personne ?", "mute_modal.indefinite": "Indéfinie", - "navigation_bar.apps": "Applications mobiles", + "navigation_bar.about": "À propos", "navigation_bar.blocks": "Comptes bloqués", "navigation_bar.bookmarks": "Marque-pages", "navigation_bar.community_timeline": "Fil public local", @@ -303,9 +377,7 @@ "navigation_bar.favourites": "Favoris", "navigation_bar.filters": "Mots masqués", "navigation_bar.follow_requests": "Demandes d’abonnement", - "navigation_bar.follows_and_followers": "Abonnements et abonné⋅e·s", - "navigation_bar.info": "À propos de ce serveur", - "navigation_bar.keyboard_shortcuts": "Raccourcis clavier", + "navigation_bar.follows_and_followers": "Abonnements et abonnés", "navigation_bar.lists": "Listes", "navigation_bar.logout": "Déconnexion", "navigation_bar.mutes": "Comptes masqués", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Messages épinglés", "navigation_bar.preferences": "Préférences", "navigation_bar.public_timeline": "Fil public global", + "navigation_bar.search": "Rechercher", "navigation_bar.security": "Sécurité", + "not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.", + "notification.admin.report": "{name} a signalé {target}", "notification.admin.sign_up": "{name} s'est inscrit·e", "notification.favourite": "{name} a ajouté le message à ses favoris", "notification.follow": "{name} vous suit", @@ -326,6 +401,7 @@ "notification.update": "{name} a modifié un message", "notifications.clear": "Effacer les notifications", "notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications ?", + "notifications.column_settings.admin.report": "Nouveaux signalements :", "notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :", "notifications.column_settings.alert": "Notifications du navigateur", "notifications.column_settings.favourite": "Favoris :", @@ -335,7 +411,7 @@ "notifications.column_settings.follow": "Nouveaux·elles abonné·e·s :", "notifications.column_settings.follow_request": "Nouvelles demandes d’abonnement :", "notifications.column_settings.mention": "Mentions :", - "notifications.column_settings.poll": "Résultats des sondage :", + "notifications.column_settings.poll": "Résultats des sondages :", "notifications.column_settings.push": "Notifications push", "notifications.column_settings.reblog": "Partages :", "notifications.column_settings.show": "Afficher dans la colonne", @@ -373,12 +449,14 @@ "privacy.change": "Ajuster la confidentialité du message", "privacy.direct.long": "Visible uniquement par les comptes mentionnés", "privacy.direct.short": "Personnes mentionnées uniquement", - "privacy.private.long": "Visible uniquement par vos abonné·e·s", - "privacy.private.short": "Abonné·e·s uniquement", + "privacy.private.long": "Visible uniquement par vos abonnés", + "privacy.private.short": "Abonnés uniquement", "privacy.public.long": "Visible pour tous", "privacy.public.short": "Public", "privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalités de découverte", "privacy.unlisted.short": "Non listé", + "privacy_policy.last_updated": "Dernière mise à jour {date}", + "privacy_policy.title": "Politique de confidentialité", "refresh": "Actualiser", "regeneration_indicator.label": "Chargement…", "regeneration_indicator.sublabel": "Votre fil principal est en cours de préparation !", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Merci pour votre signalement, nous allons investiguer.", "report.unfollow": "Ne plus suivre @{name}", "report.unfollow_explanation": "Vous suivez ce compte. Désabonnez-vous pour ne plus en voir les messages sur votre fil principal.", + "report_notification.attached_statuses": "{count, plural, one {{count} message lié} other {{count} messages liés}}", + "report_notification.categories.other": "Autre", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Infraction aux règles du serveur", + "report_notification.open": "Ouvrir le signalement", "search.placeholder": "Rechercher", + "search.search_or_paste": "Rechercher ou saisir une URL", "search_popout.search_format": "Recherche avancée", "search_popout.tips.full_text": "Un texte normal retourne les messages que vous avez écrits, ajoutés à vos favoris, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondants.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Aucun résultat avec ces mots-clefs", "search_results.statuses": "Messages", "search_results.statuses_fts_disabled": "La recherche de messages par leur contenu n'est pas activée sur ce serveur Mastodon.", + "search_results.title": "Rechercher {q}", "search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}", + "server_banner.about_active_users": "Personnes utilisant ce serveur au cours des 30 derniers jours (Utilisateur·rice·s Actifs·ives Mensuellement)", + "server_banner.active_users": "Utilisateurs actifs", + "server_banner.administered_by": "Administré par :", + "server_banner.introduction": "{domain} fait partie du réseau social décentralisé propulsé par {mastodon}.", + "server_banner.learn_more": "En savoir plus", + "server_banner.server_stats": "Statistiques du serveur :", + "sign_in_banner.create_account": "Créer un compte", + "sign_in_banner.sign_in": "Se connecter", + "sign_in_banner.text": "Connectez-vous pour suivre les profils ou les hashtags, ajouter aux favoris, partager et répondre aux messages, ou interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_status": "Ouvrir ce message dans l’interface de modération", "status.block": "Bloquer @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edité {count, plural, one {{count} fois} other {{count} fois}}", "status.embed": "Intégrer", "status.favourite": "Ajouter aux favoris", + "status.filter": "Filtrer ce message", "status.filtered": "Filtré", + "status.hide": "Cacher le pouet", "status.history.created": "créé par {name} {date}", "status.history.edited": "édité par {name} {date}", "status.load_more": "Charger plus", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Personne n’a encore partagé ce message. Lorsque quelqu’un le fera, il apparaîtra ici.", "status.redraft": "Supprimer et réécrire", "status.remove_bookmark": "Retirer des marque-pages", + "status.replied_to": "En réponse à {name}", "status.reply": "Répondre", "status.replyAll": "Répondre au fil", "status.report": "Signaler @{name}", "status.sensitive_warning": "Contenu sensible", "status.share": "Partager", + "status.show_filter_reason": "Afficher quand même", "status.show_less": "Replier", "status.show_less_all": "Tout replier", "status.show_more": "Déplier", "status.show_more_all": "Tout déplier", - "status.show_thread": "Montrer le fil", + "status.show_original": "Afficher l’original", + "status.translate": "Traduire", + "status.translated_from_with": "Traduit de {lang} en utilisant {provider}", "status.uncached_media_warning": "Indisponible", "status.unmute_conversation": "Ne plus masquer la conversation", "status.unpin": "Retirer du profil", + "subscribed_languages.lead": "Seuls les messages dans les langues sélectionnées apparaîtront sur votre fil principal et vos listes de fils après le changement. Sélectionnez aucune pour recevoir les messages dans toutes les langues.", + "subscribed_languages.save": "Enregistrer les modifications", + "subscribed_languages.target": "Changer les langues abonnées pour {target}", "suggestions.dismiss": "Rejeter la suggestion", "suggestions.header": "Vous pourriez être intéressé·e par…", "tabs_bar.federated_timeline": "Fil public global", "tabs_bar.home": "Accueil", "tabs_bar.local_timeline": "Fil public local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Chercher", "time_remaining.days": "{number, plural, one {# jour restant} other {# jours restants}}", "time_remaining.hours": "{number, plural, one {# heure restante} other {# heures restantes}}", "time_remaining.minutes": "{number, plural, one {# minute restante} other {# minutes restantes}}", @@ -507,8 +609,8 @@ "timeline_hint.remote_resource_not_displayed": "{resource} des autres serveurs ne sont pas affichés.", "timeline_hint.resources.followers": "Les abonnés", "timeline_hint.resources.follows": "Les abonnements", - "timeline_hint.resources.statuses": "Messages plus anciens", - "trends.counter_by_accounts": "{count, plural, one {{counter} personne en parle} other {{counter} personnes en parlent}}", + "timeline_hint.resources.statuses": "Les messages plus anciens", + "trends.counter_by_accounts": "{count, plural, one {{counter} personne} other {{counter} personnes}} au cours {days, plural, one {des dernières 24h} other {des {days} derniers jours}}", "trends.trending_now": "Tendance en ce moment", "ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.", "units.short.billion": "{count}Md", @@ -524,7 +626,7 @@ "upload_form.edit": "Modifier", "upload_form.thumbnail": "Changer la vignette", "upload_form.undo": "Supprimer", - "upload_form.video_description": "Décrire pour les personnes ayant des problèmes d’audition ou de vision", + "upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition", "upload_modal.analyzing_picture": "Analyse de l’image en cours…", "upload_modal.apply": "Appliquer", "upload_modal.applying": "Application en cours…", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Préparation de l’OCR…", "upload_modal.preview_label": "Aperçu ({ratio})", "upload_progress.label": "Envoi en cours…", + "upload_progress.processing": "En cours…", "video.close": "Fermer la vidéo", "video.download": "Télécharger le fichier", "video.exit_fullscreen": "Quitter le plein écran", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json new file mode 100644 index 00000000000000..5a194103f055ef --- /dev/null +++ b/app/javascript/mastodon/locales/fy.json @@ -0,0 +1,652 @@ +{ + "about.blocks": "Moderearre servers", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon is frije, iepenboarnesoftware en in hannelsmerk fan Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Yn it algemien kinsto mei Mastodon berjochten ûntfange fan, en ynteraksje hawwe mei brûkers fan elke server yn de fediverse. Dit binne de útsûnderingen dy’t op dizze spesifike server jilde.", + "about.domain_blocks.silenced.explanation": "Yn it algemien sjochsto gjin berjochten en accounts fan dizze server, útsein do berjochten eksplisyt opsikest of derfoar kiest om in account fan dizze server te folgjen.", + "about.domain_blocks.silenced.title": "Beheind", + "about.domain_blocks.suspended.explanation": "Der wurde gjin gegevens fan dizze server ferwurke, bewarre of útwiksele, wat ynteraksje of kommunikaasje mei brûkers fan dizze server ûnmooglik makket.", + "about.domain_blocks.suspended.title": "Utsteld", + "about.not_available": "Dizze ynformaasje is troch dizze server net iepenbier makke.", + "about.powered_by": "Desintralisearre sosjale media, mooglik makke troch {mastodon}", + "about.rules": "Serverrigels", + "account.account_note_header": "Opmerking", + "account.add_or_remove_from_list": "Tafoegje of fuortsmite fan listen út", + "account.badges.bot": "Bot", + "account.badges.group": "Groep", + "account.block": "@{name} blokkearje", + "account.block_domain": "Domein {domain} blokkearje", + "account.blocked": "Blokkearre", + "account.browse_more_on_origin_server": "Mear op it orizjinele profyl besjen", + "account.cancel_follow_request": "Folchfersyk annulearje", + "account.direct": "@{name} in direkt berjocht stjoere", + "account.disable_notifications": "Jou gjin melding mear wannear @{name} in berjocht pleatst", + "account.domain_blocked": "Domein blokkearre", + "account.edit_profile": "Profyl bewurkje", + "account.enable_notifications": "Jou in melding mear wannear @{name} in berjocht pleatst", + "account.endorse": "Op profyl werjaan", + "account.featured_tags.last_status_at": "Lêste berjocht op {date}", + "account.featured_tags.last_status_never": "Gjin berjochten", + "account.featured_tags.title": "Utljochte hashtags fan {name}", + "account.follow": "Folgje", + "account.followers": "Folgers", + "account.followers.empty": "Noch net ien folget dizze brûker.", + "account.followers_counter": "{count, plural, one {{counter} folger} other {{counter} folgers}}", + "account.following": "Folgjend", + "account.following_counter": "{count, plural, one {{counter} folgjend} other {{counter} folgjend}}", + "account.follows.empty": "Dizze brûker folget noch net ien.", + "account.follows_you": "Folget dy", + "account.go_to_profile": "Go to profile", + "account.hide_reblogs": "Boosts fan @{name} ferstopje", + "account.joined_short": "Registrearre op", + "account.languages": "Toande talen wizigje", + "account.link_verified_on": "Eigendom fan dizze keppeling is kontrolearre op {date}", + "account.locked_info": "De privacysteat fan dizze account is op beskoattele set. De eigener bepaalt hânmjittich wa’t dyjinge folgje kin.", + "account.media": "Media", + "account.mention": "@{name} fermelde", + "account.moved_to": "{name} is ferhuze net:", + "account.mute": "@{name} negearje", + "account.mute_notifications": "Meldingen fan @{name} negearje", + "account.muted": "Negearre", + "account.open_original_page": "Open original page", + "account.posts": "Berjochten", + "account.posts_with_replies": "Berjochten en reaksjes", + "account.report": "@{name} rapportearje", + "account.requested": "Wacht op goedkarring. Klik om it folchfersyk te annulearjen", + "account.share": "Profyl fan @{name} diele", + "account.show_reblogs": "Boosts fan @{name} toane", + "account.statuses_counter": "{count, plural, one {{counter} berjocht} other {{counter} berjochten}}", + "account.unblock": "@{name} deblokkearje", + "account.unblock_domain": "Domein {domain} deblokkearje", + "account.unblock_short": "Deblokkearje", + "account.unendorse": "Net op profyl werjaan", + "account.unfollow": "Net mear folgje", + "account.unmute": "@{name} net langer negearje", + "account.unmute_notifications": "Unmute notifications from @{name}", + "account.unmute_short": "Net mear negearje", + "account_note.placeholder": "Click to add a note", + "admin.dashboard.daily_retention": "User retention rate by day after sign-up", + "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.retention.average": "Gemiddelde", + "admin.dashboard.retention.cohort": "Sign-up month", + "admin.dashboard.retention.cohort_size": "Nije brûkers", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", + "alert.unexpected.message": "An unexpected error occurred.", + "alert.unexpected.title": "Oepsy!", + "announcement.announcement": "Meidieling", + "attachments_list.unprocessed": "(net ferwurke)", + "audio.hide": "Audio ferstopje", + "autosuggest_hashtag.per_week": "{count} yn ’e wike", + "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh nee!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Netwurkflater", + "bundle_column_error.retry": "Opnij probearje", + "bundle_column_error.return": "Tebek nei startside", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Slute", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Opnij probearje", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "Oer", + "column.blocks": "Blokkearre brûkers", + "column.bookmarks": "Blêdwizers", + "column.community": "Lokale tiidline", + "column.direct": "Direkte berjochten", + "column.directory": "Profilen trochsykje", + "column.domain_blocks": "Blokkeare domeinen", + "column.favourites": "Favoriten", + "column.follow_requests": "Folchfersiken", + "column.home": "Startside", + "column.lists": "Listen", + "column.mutes": "Negearre brûkers", + "column.notifications": "Meldingen", + "column.pins": "Fêstsette berjochten", + "column.public": "Globale tiidline", + "column_back_button.label": "Werom", + "column_header.hide_settings": "Ynstellingen ferstopje", + "column_header.moveLeft_settings": "Kolom nei links ferpleatse", + "column_header.moveRight_settings": "Kolom nei rjochts ferpleatse", + "column_header.pin": "Fêstsette", + "column_header.show_settings": "Ynstellingen toane", + "column_header.unpin": "Los helje", + "column_subheading.settings": "Ynstellingen", + "community.column_settings.local_only": "Allinnich lokaal", + "community.column_settings.media_only": "Allinnich media", + "community.column_settings.remote_only": "Allinnich oare servers", + "compose.language.change": "Taal wizigje", + "compose.language.search": "Talen sykje…", + "compose_form.direct_message_warning_learn_more": "Mear ynfo", + "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", + "compose_form.lock_disclaimer.lock": "beskoattele", + "compose_form.placeholder": "Wat wolsto kwyt?", + "compose_form.poll.add_option": "Kar tafoegje", + "compose_form.poll.duration": "Doer fan de poll", + "compose_form.poll.option_placeholder": "Keuze {number}", + "compose_form.poll.remove_option": "Dizze kar fuortsmite", + "compose_form.poll.switch_to_multiple": "Poll wizigje om meardere karren ta te stean", + "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", + "compose_form.publish": "Publisearje", + "compose_form.publish_loud": "{publish}!", + "compose_form.save_changes": "Wizigingen bewarje", + "compose_form.sensitive.hide": "{count, plural, one {Media as gefoelich markearje} other {Media as gefoelich markearje}}", + "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", + "compose_form.spoiler.marked": "Ynhâldswarskôging fuortsmite", + "compose_form.spoiler.unmarked": "Ynhâldswarskôging tafoegje", + "compose_form.spoiler_placeholder": "Write your warning here", + "confirmation_modal.cancel": "Annulearje", + "confirmations.block.block_and_report": "Blokkearje en rapportearje", + "confirmations.block.confirm": "Blokkearje", + "confirmations.block.message": "Bisto wis datsto {name} blokkearje wolst?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.delete.confirm": "Fuortsmite", + "confirmations.delete.message": "Bisto wis datsto dit berjocht fuortsmite wolst?", + "confirmations.delete_list.confirm": "Fuortsmite", + "confirmations.delete_list.message": "Bisto wis datsto dizze list foar permanint fuortsmite wolst?", + "confirmations.discard_edit_media.confirm": "Fuortsmite", + "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Ofmelde", + "confirmations.logout.message": "Bisto wis datsto ôfmelde wolst?", + "confirmations.mute.confirm": "Negearje", + "confirmations.mute.explanation": "Dit sil berjochten fan harren en berjochten wêr’t se yn fermeld wurden ûnsichtber meitsje, mar se sille dyn berjochten noch hieltyd sjen kinne en dy folgje kinne.", + "confirmations.mute.message": "Bisto wis datsto {name} negearje wolst?", + "confirmations.redraft.confirm": "Fuortsmite en opnij opstelle", + "confirmations.redraft.message": "Wolsto dit berjocht wurklik fuortsmite en opnij opstelle? Favoriten en boosts geane dan ferlern en reaksjes op it oarspronklike berjocht rekkesto kwyt.", + "confirmations.reply.confirm": "Reagearje", + "confirmations.reply.message": "Troch no te reagearjen sil it berjocht watsto no oan it skriuwen binne oerskreaun wurde. Wolsto trochgean?", + "confirmations.unfollow.confirm": "Net mear folgje", + "confirmations.unfollow.message": "Bisto wis datsto {name} net mear folgje wolst?", + "conversation.delete": "Petear fuortsmite", + "conversation.mark_as_read": "As lêzen markearje", + "conversation.open": "Petear toane", + "conversation.with": "Mei {names}", + "copypaste.copied": "Kopiearre", + "copypaste.copy": "Kopiearje", + "directory.federated": "Fediverse (wat bekend is)", + "directory.local": "Allinnich fan {domain}", + "directory.new_arrivals": "Nije accounts", + "directory.recently_active": "Resint aktyf", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Slute", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "embed.instructions": "Embed this status on your website by copying the code below.", + "embed.preview": "Here is what it will look like:", + "emoji_button.activity": "Aktiviteiten", + "emoji_button.clear": "Wiskje", + "emoji_button.custom": "Oanpast", + "emoji_button.flags": "Flaggen", + "emoji_button.food": "Iten en drinken", + "emoji_button.label": "Emoji tafoegje", + "emoji_button.nature": "Natuer", + "emoji_button.not_found": "No matching emojis found", + "emoji_button.objects": "Objekten", + "emoji_button.people": "Minsken", + "emoji_button.recent": "Faaks brûkt", + "emoji_button.search": "Sykje…", + "emoji_button.search_results": "Sykresultaten", + "emoji_button.symbols": "Symboalen", + "emoji_button.travel": "Reizgje en lokaasjes", + "empty_column.account_suspended": "Account beskoattele", + "empty_column.account_timeline": "Hjir binne gjin berjochten!", + "empty_column.account_unavailable": "Profyl net beskikber", + "empty_column.blocks": "Do hast noch gjin brûkers blokkearre.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.domain_blocks": "Der binne noch gjin blokkearre domeinen.", + "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", + "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.hashtag": "There is nothing in this hashtag yet.", + "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.home.suggestions": "Suggestjes besjen", + "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.mutes": "Do hast noch gjin brûkers negearre.", + "empty_column.notifications": "Do hast noch gjin meldingen. Ynteraksjes mei oare minsken sjochsto hjir.", + "empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare servers om it hjir te foljen", + "error.unexpected_crash.explanation": "Troch in bug in ús koade of in probleem mei de komptabiliteit fan jo browser, koe dizze side net toand wurde.", + "error.unexpected_crash.explanation_addons": "Dizze side kin net goed toand wurde. Dit probleem komt faaks troch in browserútwreiding of ark foar automatysk oersetten.", + "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", + "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", + "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", + "errors.unexpected_crash.report_issue": "Technysk probleem melde", + "explore.search_results": "Sykresultaten", + "explore.suggested_follows": "Foar dy", + "explore.title": "Ferkenne", + "explore.trending_links": "Nijs", + "explore.trending_statuses": "Berjochten", + "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filterynstellingen", + "filter_modal.added.settings_link": "ynstellingenside", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter tafoege!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "ferrûn", + "filter_modal.select_filter.prompt_new": "Nije kategory: {name}", + "filter_modal.select_filter.search": "Sykje of tafoegje", + "filter_modal.select_filter.subtitle": "In besteande kategory brûke of in nije oanmeitsje", + "filter_modal.select_filter.title": "Dit berjocht filterje", + "filter_modal.title.status": "In berjocht filterje", + "follow_recommendations.done": "Klear", + "follow_recommendations.heading": "Folgje minsken dêr’tsto graach berjochten fan sjen wolst! Hjir binne wat suggestjes.", + "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", + "follow_request.authorize": "Goedkarre", + "follow_request.reject": "Wegerje", + "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "Oer", + "footer.directory": "Profylmap", + "footer.get_app": "App downloade", + "footer.invite": "Minsken útnûgje", + "footer.keyboard_shortcuts": "Fluchtoetsen", + "footer.privacy_policy": "Privacybelied", + "footer.source_code": "Boarnekoade besjen", + "generic.saved": "Bewarre", + "getting_started.heading": "Uteinsette", + "hashtag.column_header.tag_mode.all": "en {additional}", + "hashtag.column_header.tag_mode.any": "of {additional}", + "hashtag.column_header.tag_mode.none": "sûnder {additional}", + "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", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", + "home.column_settings.basic": "Algemien", + "home.column_settings.show_reblogs": "Boosts toane", + "home.column_settings.show_replies": "Reaksjes toane", + "home.hide_announcements": "Meidielingen ferstopje", + "home.show_announcements": "Meidielingen toane", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "Op dizze server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "{name} folgje", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", + "intervals.full.days": "{number, plural, one {# day} other {# days}}", + "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "keyboard_shortcuts.back": "to navigate back", + "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.boost": "Berjocht booste", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Omskriuwing", + "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.down": "to move down in the list", + "keyboard_shortcuts.enter": "Berjocht iepenje", + "keyboard_shortcuts.favourite": "As favoryt markearje", + "keyboard_shortcuts.favourites": "to open favourites list", + "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.heading": "Fluchtoetsen", + "keyboard_shortcuts.home": "Starttiidline toane", + "keyboard_shortcuts.hotkey": "Fluchtoets", + "keyboard_shortcuts.legend": "to display this legend", + "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.mention": "Skriuwer fermelde", + "keyboard_shortcuts.muted": "to open muted users list", + "keyboard_shortcuts.my_profile": "Dyn profyl iepenje", + "keyboard_shortcuts.notifications": "Meldingen toane", + "keyboard_shortcuts.open_media": "Media iepenje", + "keyboard_shortcuts.pinned": "Fêstsette berjochten toane", + "keyboard_shortcuts.profile": "Skriuwersprofyl iepenje", + "keyboard_shortcuts.reply": "Berjocht beäntwurdzje", + "keyboard_shortcuts.requests": "Folchfersiken toane", + "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.spoilers": "CW-fjild ferstopje/toane", + "keyboard_shortcuts.start": "‘Uteinsette’ iepenje", + "keyboard_shortcuts.toggle_hidden": "Tekst efter CW-fjild ferstopje/toane", + "keyboard_shortcuts.toggle_sensitivity": "Media ferstopje/toane", + "keyboard_shortcuts.toot": "Nij berjocht skriuwe", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "Nei boppe yn list ferpleatse", + "lightbox.close": "Slute", + "lightbox.compress": "Compress image view box", + "lightbox.expand": "Expand image view box", + "lightbox.next": "Folgjende", + "lightbox.previous": "Foarige", + "limited_account_hint.action": "Profyl dochs besjen", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "lists.account.add": "Oan list tafoegje", + "lists.account.remove": "Ut list fuortsmite", + "lists.delete": "List fuortsmite", + "lists.edit": "Edit list", + "lists.edit.submit": "Titel wizigje", + "lists.new.create": "Add list", + "lists.new.title_placeholder": "Nije listtitel", + "lists.replies_policy.followed": "Elke folge brûker", + "lists.replies_policy.list": "Leden fan de list", + "lists.replies_policy.none": "Net ien", + "lists.replies_policy.title": "Reaksjes toane oan:", + "lists.search": "Search among people you follow", + "lists.subheading": "Dyn listen", + "load_pending": "{count, plural, one {# new item} other {# new items}}", + "loading_indicator.label": "Loading...", + "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", + "missing_indicator.label": "Net fûn", + "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", + "mute_modal.duration": "Duration", + "mute_modal.hide_notifications": "Meldingen fan dizze brûker ferstopje?", + "mute_modal.indefinite": "Indefinite", + "navigation_bar.about": "About", + "navigation_bar.blocks": "Blokkearre brûkers", + "navigation_bar.bookmarks": "Blêdwizers", + "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.compose": "Nij berjocht skriuwe", + "navigation_bar.direct": "Direkte berjochten", + "navigation_bar.discover": "Untdekke", + "navigation_bar.domain_blocks": "Blokkearre domeinen", + "navigation_bar.edit_profile": "Profyl bewurkje", + "navigation_bar.explore": "Ferkenne", + "navigation_bar.favourites": "Favoriten", + "navigation_bar.filters": "Negearre wurden", + "navigation_bar.follow_requests": "Folchfersiken", + "navigation_bar.follows_and_followers": "Folgers en folgjenden", + "navigation_bar.lists": "Listen", + "navigation_bar.logout": "Ofmelde", + "navigation_bar.mutes": "Negearre brûkers", + "navigation_bar.personal": "Persoanlik", + "navigation_bar.pins": "Fêstsette berjochten", + "navigation_bar.preferences": "Foarkarren", + "navigation_bar.public_timeline": "Globale tiidline", + "navigation_bar.search": "Sykje", + "navigation_bar.security": "Befeiliging", + "not_signed_in_indicator.not_signed_in": "Do moatst oanmelde om tagong ta dizze ynformaasje te krijen.", + "notification.admin.report": "{name} hat {target} rapportearre", + "notification.admin.sign_up": "{name} hat harren registrearre", + "notification.favourite": "{name} hat dyn berjocht as favoryt markearre", + "notification.follow": "{name} folget dy", + "notification.follow_request": "{name} hat dy in folchfersyk stjoerd", + "notification.mention": "{name} hat dy fermeld", + "notification.own_poll": "Dyn poll is beëinige", + "notification.poll": "In poll wêr’tsto yn stimd hast is beëinige", + "notification.reblog": "{name} hat dyn berjocht boost", + "notification.status": "{name} hat in berjocht pleatst", + "notification.update": "{name} hat in berjocht bewurke", + "notifications.clear": "Meldingen wiskje", + "notifications.clear_confirmation": "Bisto wis datsto al dyn meldingen permanint fuortsmite wolst?", + "notifications.column_settings.admin.report": "Nije rapportaazjes:", + "notifications.column_settings.admin.sign_up": "Nije registraasjes:", + "notifications.column_settings.alert": "Desktopmeldingen", + "notifications.column_settings.favourite": "Favoriten:", + "notifications.column_settings.filter_bar.advanced": "Alle kategoryen toane", + "notifications.column_settings.filter_bar.category": "Flugge filterbalke", + "notifications.column_settings.filter_bar.show_bar": "Filterbalke toane", + "notifications.column_settings.follow": "Nije folgers:", + "notifications.column_settings.follow_request": "Nij folchfersyk:", + "notifications.column_settings.mention": "Fermeldingen:", + "notifications.column_settings.poll": "Pollresultaten:", + "notifications.column_settings.push": "Pushmeldingen", + "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.show": "Yn kolom toane", + "notifications.column_settings.sound": "Lûd ôfspylje", + "notifications.column_settings.status": "Nije berjochten:", + "notifications.column_settings.unread_notifications.category": "Net lêzen meldingen", + "notifications.column_settings.unread_notifications.highlight": "Net lêzen meldingen markearje", + "notifications.column_settings.update": "Bewurkingen:", + "notifications.filter.all": "Alle", + "notifications.filter.boosts": "Boosts", + "notifications.filter.favourites": "Favoriten", + "notifications.filter.follows": "Folget", + "notifications.filter.mentions": "Fermeldingen", + "notifications.filter.polls": "Pollresultaten", + "notifications.filter.statuses": "Updates from people you follow", + "notifications.grant_permission": "Grant permission.", + "notifications.group": "{count} notifications", + "notifications.mark_as_read": "Mark every notification as read", + "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", + "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", + "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", + "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.title": "Never miss a thing", + "picture_in_picture.restore": "Put it back", + "poll.closed": "Sluten", + "poll.refresh": "Ferfarskje", + "poll.total_people": "{count, plural, one {# persoan} other {# persoanen}}", + "poll.total_votes": "{count, plural, one {# stim} other {# stimmen}}", + "poll.vote": "Stimme", + "poll.voted": "Do hast hjir op stimd", + "poll.votes": "{votes, plural, one {# stim} other {# stimmen}}", + "poll_button.add_poll": "Poll tafoegje", + "poll_button.remove_poll": "Poll fuortsmite", + "privacy.change": "Sichtberheid fan berjocht oanpasse", + "privacy.direct.long": "Allinnich sichtber foar fermelde brûkers", + "privacy.direct.short": "Allinnich fermelde minsken", + "privacy.private.long": "Allinnich sichtber foar folgers", + "privacy.private.short": "Allinnich folgers", + "privacy.public.long": "Sichtber foar elkenien", + "privacy.public.short": "Iepenbier", + "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", + "refresh": "Fernije", + "regeneration_indicator.label": "Lade…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "relative_time.days": "{number}d", + "relative_time.full.days": "{number, plural, one {# dei} other {# dagen}} lyn", + "relative_time.full.hours": "{number, plural, one {# oere} other {# oeren}} lyn", + "relative_time.full.just_now": "sakrekt", + "relative_time.full.minutes": "{number, plural, one {# minút} other {# minuten}} lyn", + "relative_time.full.seconds": "{number, plural, one {# sekonde} other {# sekonden}} lyn", + "relative_time.hours": "{number}o", + "relative_time.just_now": "no", + "relative_time.minutes": "{number}m", + "relative_time.seconds": "{number}s", + "relative_time.today": "hjoed", + "reply_indicator.cancel": "Annulearje", + "report.block": "Blokkearje", + "report.block_explanation": "Do silst harren berjochten net sjen kinne. Se sille dyn berjochten net sjen kinne en do net folgje kinne. Se sille wol sjen kinne dat se blokkearre binne.", + "report.categories.other": "Oars", + "report.categories.spam": "Spam", + "report.categories.violation": "De ynhâld oertrêdet ien of mear serverrigels", + "report.category.subtitle": "Selektearje wat it bêste past", + "report.category.title": "Fertel ús wat der mei dit {type} oan de hân is", + "report.category.title_account": "profyl", + "report.category.title_status": "berjocht", + "report.close": "Klear", + "report.comment.title": "Tinksto dat wy noch mear witte moatte?", + "report.forward": "Nei {target} trochstjoere", + "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "report.mute": "Negearje", + "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", + "report.next": "Folgjende", + "report.placeholder": "Type or paste additional comments", + "report.reasons.dislike": "Ik fyn der neat oan", + "report.reasons.dislike_description": "It is net eat watsto sjen wolst", + "report.reasons.other": "It is wat oars", + "report.reasons.other_description": "It probleem stiet der net tusken", + "report.reasons.spam": "It's spam", + "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", + "report.reasons.violation": "It violates server rules", + "report.reasons.violation_description": "You are aware that it breaks specific rules", + "report.rules.subtitle": "Select all that apply", + "report.rules.title": "Which rules are being violated?", + "report.statuses.subtitle": "Select all that apply", + "report.statuses.title": "Are there any posts that back up this report?", + "report.submit": "Submit report", + "report.target": "Report {target}", + "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", + "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.title": "Don't want to see this?", + "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.unfollow": "Unfollow @{name}", + "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", + "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", + "search_popout.search_format": "Advanced search format", + "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.status": "status", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "user", + "search_results.accounts": "People", + "search_results.all": "All", + "search_results.hashtags": "Hashtags", + "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.statuses": "Berjochten", + "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.title": "Nei {q} sykje", + "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "warbere brûkers", + "server_banner.administered_by": "Beheard troch:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Mear ynfo", + "server_banner.server_stats": "Serverstatistiken:", + "sign_in_banner.create_account": "Account registrearje", + "sign_in_banner.sign_in": "Oanmelde", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "status.admin_account": "Open moderation interface for @{name}", + "status.admin_status": "Open this status in the moderation interface", + "status.block": "@{name} blokkearje", + "status.bookmark": "Blêdwizer tafoegje", + "status.cancel_reblog_private": "Net langer booste", + "status.cannot_reblog": "This post cannot be boosted", + "status.copy": "Copy link to status", + "status.delete": "Fuortsmite", + "status.detailed_status": "Detaillearre petearoersjoch", + "status.direct": "Direct message @{name}", + "status.edit": "Bewurkje", + "status.edited": "Bewurke op {date}", + "status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke", + "status.embed": "Ynslute", + "status.favourite": "Favoryt", + "status.filter": "Dit berjocht filterje", + "status.filtered": "Filtere", + "status.hide": "Berjocht ferstopje", + "status.history.created": "{name} makke dit {date}", + "status.history.edited": "{name} bewurke dit {date}", + "status.load_more": "Mear lade", + "status.media_hidden": "Media ferstoppe", + "status.mention": "@{name} fermelde", + "status.more": "Mear", + "status.mute": "@{name} negearje", + "status.mute_conversation": "Petear negearje", + "status.open": "Dit berjocht útklappe", + "status.pin": "Op profylside fêstsette", + "status.pinned": "Fêstset berjocht", + "status.read_more": "Mear ynfo", + "status.reblog": "Booste", + "status.reblog_private": "Boost with original visibility", + "status.reblogged_by": "{name} hat boost", + "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", + "status.redraft": "Fuortsmite en opnij opstelle", + "status.remove_bookmark": "Blêdwizer fuortsmite", + "status.replied_to": "Antwurde op {name}", + "status.reply": "Beäntwurdzje", + "status.replyAll": "Alle beäntwurdzje", + "status.report": "@{name} rapportearje", + "status.sensitive_warning": "Gefoelige ynhâld", + "status.share": "Diele", + "status.show_filter_reason": "Dochs toane", + "status.show_less": "Minder toane", + "status.show_less_all": "Alles minder toane", + "status.show_more": "Mear toane", + "status.show_more_all": "Alles mear toane", + "status.show_original": "Orizjineel besjen", + "status.translate": "Oersette", + "status.translated_from_with": "Fan {lang} út oersetten mei {provider}", + "status.uncached_media_warning": "Net beskikber", + "status.unmute_conversation": "Petear net mear negearje", + "status.unpin": "Fan profylside losmeitsje", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", + "suggestions.dismiss": "Dismiss suggestion", + "suggestions.header": "You might be interested in…", + "tabs_bar.federated_timeline": "Federated", + "tabs_bar.home": "Startside", + "tabs_bar.local_timeline": "Lokaal", + "tabs_bar.notifications": "Meldingen", + "time_remaining.days": "{number, plural, one {# dei} other {# dagen}} te gean", + "time_remaining.hours": "{number, plural, one {# oere} other {# oeren}} te gean", + "time_remaining.minutes": "{number, plural, one {# minút} other {# minuten}} te gean", + "time_remaining.moments": "Noch krekt efkes te gean", + "time_remaining.seconds": "{number, plural, one {# sekonde} other {# sekonden}} te gean", + "timeline_hint.remote_resource_not_displayed": "{resource} fan oare servers wurde net toand.", + "timeline_hint.resources.followers": "Folgers", + "timeline_hint.resources.follows": "Folgjend", + "timeline_hint.resources.statuses": "Aldere berjochten", + "trends.counter_by_accounts": "{count, plural, one {{counter} persoan} other {{counter} persoanen}} {days, plural, one {de ôfrûne dei} other {de ôfrûne {days} dagen}}", + "trends.trending_now": "Aktuele trends", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "units.short.billion": "{count}B", + "units.short.million": "{count}M", + "units.short.thousand": "{count}K", + "upload_area.title": "Drag & drop to upload", + "upload_button.label": "Add images, a video or an audio file", + "upload_error.limit": "File upload limit exceeded.", + "upload_error.poll": "File upload not allowed with polls.", + "upload_form.audio_description": "Describe for people with hearing loss", + "upload_form.description": "Describe for the visually impaired", + "upload_form.description_missing": "No description added", + "upload_form.edit": "Edit", + "upload_form.thumbnail": "Change thumbnail", + "upload_form.undo": "Delete", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", + "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.apply": "Apply", + "upload_modal.applying": "Applying…", + "upload_modal.choose_image": "Choose image", + "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.detect_text": "Detect text from picture", + "upload_modal.edit_media": "Edit media", + "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", + "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.preview_label": "Preview ({ratio})", + "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", + "video.close": "Close video", + "video.download": "Download file", + "video.exit_fullscreen": "Exit full screen", + "video.expand": "Expand video", + "video.fullscreen": "Folslein skerm", + "video.hide": "Fideo ferstopje", + "video.mute": "Lûd dôvje", + "video.pause": "Skoft", + "video.play": "Ofspylje", + "video.unmute": "Lûd oan" +} diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index f56e6d5faa5dea..f22f7abbcd9176 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -1,19 +1,34 @@ { + "about.blocks": "Freastalaithe faoi stiúir", + "about.contact": "Teagmháil:", + "about.disclaimer": "Bogearra foinse oscailte saor in aisce is ea Mastodon, agus is le Mastodon gGmbH an trádmharc.", + "about.domain_blocks.no_reason_available": "Níl an fáth ar fáil", + "about.domain_blocks.preamble": "Go hiondúil, tugann Mastadán cead duit a bheith ag plé le húsáideoirí as freastalaí ar bith eile sa chomhchruinne agus a gcuid inneachair a fheiceáil. Seo iad na heisceachtaí a rinneadh ar an bhfreastalaí áirithe seo.", + "about.domain_blocks.silenced.explanation": "Go hiondúil ní fheicfidh tú próifílí ná inneachar ón bhfreastalaí seo, ach amháin má bhíonn tú á lorg nó má ghlacann tú lena leanúint d'aon ghnó.", + "about.domain_blocks.silenced.title": "Teoranta", + "about.domain_blocks.suspended.explanation": "Ní dhéanfar aon sonra ón fhreastalaí seo a phróiseáil, a stóráil ná a mhalartú, rud a fhágann nach féidir aon teagmháil ná aon chumarsáid a dhéanamh le húsáideoirí ón fhreastalaí seo.", + "about.domain_blocks.suspended.title": "Ar fionraí", + "about.not_available": "Níor cuireadh an t-eolas seo ar fáil ar an bhfreastalaí seo.", + "about.powered_by": "Meáin shóisialta díláraithe faoi chumhacht {mastodon}", + "about.rules": "Rialacha an fhreastalaí", "account.account_note_header": "Nóta", "account.add_or_remove_from_list": "Cuir Le nó Bain De na liostaí", "account.badges.bot": "Bota", "account.badges.group": "Grúpa", - "account.block": "Bac @{name}", + "account.block": "Déan cosc ar @{name}", "account.block_domain": "Bac ainm fearainn {domain}", "account.blocked": "Bactha", "account.browse_more_on_origin_server": "Brabhsáil níos mó ar an phróifíl bhunaidh", - "account.cancel_follow_request": "Cealaigh iarratas leanúnaí", + "account.cancel_follow_request": "Éirigh as iarratas leanta", "account.direct": "Seol teachtaireacht dhíreach chuig @{name}", "account.disable_notifications": "Éirigh as ag cuir mé in eol nuair bpostálann @{name}", "account.domain_blocked": "Ainm fearainn bactha", "account.edit_profile": "Cuir an phróifíl in eagar", "account.enable_notifications": "Cuir mé in eol nuair bpostálann @{name}", "account.endorse": "Cuir ar an phróifíl mar ghné", + "account.featured_tags.last_status_at": "Postáil is déanaí ar {date}", + "account.featured_tags.last_status_never": "Níl postáil ar bith ann", + "account.featured_tags.title": "Haischlib {name}", "account.follow": "Lean", "account.followers": "Leantóirí", "account.followers.empty": "Ní leanann éinne an t-úsáideoir seo fós.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {Ag leanúint cúntas amháin} other {Ag leanúint {counter} cúntas}}", "account.follows.empty": "Ní leanann an t-úsáideoir seo duine ar bith fós.", "account.follows_you": "Do do leanúint", + "account.go_to_profile": "Téigh go dtí próifíl", "account.hide_reblogs": "Folaigh athphostálacha ó @{name}", - "account.joined": "Ina bhall ó {date}", - "account.link_verified_on": "Ownership of this link was checked on {date}", + "account.joined_short": "Cláraithe", + "account.languages": "Athraigh teangacha foscríofa", + "account.link_verified_on": "Seiceáladh úinéireacht an naisc seo ar {date}", "account.locked_info": "Tá an socrú príobháideachais don cuntas seo curtha go 'faoi ghlas'. Déanann an t-úinéir léirmheas ar cén daoine atá ceadaithe an cuntas leanúint.", "account.media": "Ábhair", "account.mention": "Luaigh @{name}", - "account.moved_to": "Tá {name} bogtha go:", + "account.moved_to": "Tá tugtha le fios ag {name} gurb é an cuntas nua atá acu ná:", "account.mute": "Balbhaigh @{name}", "account.mute_notifications": "Balbhaigh fógraí ó @{name}", "account.muted": "Balbhaithe", + "account.open_original_page": "Oscail an leathanach bunaidh", "account.posts": "Postálacha", "account.posts_with_replies": "Postálacha agus freagraí", "account.report": "Tuairiscigh @{name}", @@ -50,135 +68,160 @@ "account_note.placeholder": "Cliceáil chun nóta a chuir leis", "admin.dashboard.daily_retention": "Ráta coinneála an úsáideora de réir an lae tar éis clárú", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "New users", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "An unexpected error occurred.", + "admin.dashboard.retention.average": "Meán", + "admin.dashboard.retention.cohort": "Mí cláraraithe", + "admin.dashboard.retention.cohort_size": "Úsáideoirí nua", + "alert.rate_limited.message": "Atriail aris tar éis {retry_time, time, medium}.", + "alert.rate_limited.title": "Rátatheoranta", + "alert.unexpected.message": "Tharla earráid gan choinne.", "alert.unexpected.title": "Hiúps!", "announcement.announcement": "Fógra", - "attachments_list.unprocessed": "(unprocessed)", - "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "attachments_list.unprocessed": "(neamhphróiseáilte)", + "audio.hide": "Cuir fuaim i bhfolach", + "autosuggest_hashtag.per_week": "{count} sa seachtain", + "boost_modal.combo": "Is féidir leat brúigh {combo} chun é seo a scipeáil an chéad uair eile", + "bundle_column_error.copy_stacktrace": "Cóipeáil tuairisc earráide", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Ná habair!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Earráid líonra", "bundle_column_error.retry": "Bain triail as arís", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Téigh abhaile", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Dún", - "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.message": "Chuaigh rud éigin mícheart nuair a bhí an chomhpháirt seo ag lódáil.", "bundle_modal_error.retry": "Bain triail as arís", + "closed_registrations.other_server_instructions": "Mar rud díláraithe Mastodon, is féidir leat cuntas a chruthú ar seirbheálaí eile ach fós idirghníomhaigh leis an ceann seo.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Faigh freastalaí eile", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Cláraigh le Mastodon", + "column.about": "Maidir le", "column.blocks": "Cuntais choiscthe", "column.bookmarks": "Leabharmharcanna", - "column.community": "Local timeline", - "column.direct": "Direct messages", - "column.directory": "Browse profiles", - "column.domain_blocks": "Blocked domains", - "column.favourites": "Favourites", - "column.follow_requests": "Follow requests", + "column.community": "Amlíne áitiúil", + "column.direct": "Teachtaireachtaí dhíreacha", + "column.directory": "Brabhsáil próifílí", + "column.domain_blocks": "Fearainn bhactha", + "column.favourites": "Roghanna", + "column.follow_requests": "Iarratais leanúnaí", "column.home": "Baile", "column.lists": "Liostaí", "column.mutes": "Úsáideoirí balbhaithe", - "column.notifications": "Notifications", - "column.pins": "Pinned post", - "column.public": "Federated timeline", + "column.notifications": "Fógraí", + "column.pins": "Postálacha pionnáilte", + "column.public": "Amlíne cónaidhmithe", "column_back_button.label": "Siar", - "column_header.hide_settings": "Hide settings", - "column_header.moveLeft_settings": "Move column to the left", - "column_header.moveRight_settings": "Move column to the right", + "column_header.hide_settings": "Folaigh socruithe", + "column_header.moveLeft_settings": "Bog an colún ar chlé", + "column_header.moveRight_settings": "Bog an colún ar dheis", "column_header.pin": "Greamaigh", - "column_header.show_settings": "Show settings", + "column_header.show_settings": "Taispeáin socruithe", "column_header.unpin": "Díghreamaigh", "column_subheading.settings": "Socruithe", - "community.column_settings.local_only": "Local only", - "community.column_settings.media_only": "Media only", - "community.column_settings.remote_only": "Remote only", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", - "compose_form.direct_message_warning_learn_more": "Learn more", + "community.column_settings.local_only": "Áitiúil amháin", + "community.column_settings.media_only": "Meáin Amháin", + "community.column_settings.remote_only": "Cian amháin", + "compose.language.change": "Athraigh teanga", + "compose.language.search": "Cuardaigh teangacha...", + "compose_form.direct_message_warning_learn_more": "Tuilleadh eolais", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", - "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", - "compose_form.lock_disclaimer.lock": "locked", + "compose_form.lock_disclaimer": "Níl an cuntas seo {locked}. Féadfaidh duine ar bith tú a leanúint agus na postálacha atá dírithe agat ar do lucht leanúna amháin a fheiceáil.", + "compose_form.lock_disclaimer.lock": "faoi ghlas", "compose_form.placeholder": "Cad atá ag tarlú?", - "compose_form.poll.add_option": "Add a choice", - "compose_form.poll.duration": "Poll duration", - "compose_form.poll.option_placeholder": "Choice {number}", - "compose_form.poll.remove_option": "Remove this choice", - "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", - "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.poll.add_option": "Cuir rogha isteach", + "compose_form.poll.duration": "Achar suirbhéanna", + "compose_form.poll.option_placeholder": "Rogha {number}", + "compose_form.poll.remove_option": "Bain an rogha seo", + "compose_form.poll.switch_to_multiple": "Athraigh suirbhé chun cead a thabhairt do ilrogha", + "compose_form.poll.switch_to_single": "Athraigh suirbhé chun cead a thabhairt do rogha amháin", + "compose_form.publish": "Foilsigh", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "Sábháil", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", - "compose_form.spoiler.marked": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "Text is not hidden", - "compose_form.spoiler_placeholder": "Write your warning here", - "confirmation_modal.cancel": "Cancel", - "confirmations.block.block_and_report": "Block & Report", - "confirmations.block.confirm": "Block", - "confirmations.block.message": "Are you sure you want to block {name}?", - "confirmations.delete.confirm": "Delete", - "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.delete_list.confirm": "Delete", - "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "compose_form.spoiler.marked": "Bain rabhadh ábhair", + "compose_form.spoiler.unmarked": "Cuir rabhadh ábhair", + "compose_form.spoiler_placeholder": "Scríobh do rabhadh anseo", + "confirmation_modal.cancel": "Cealaigh", + "confirmations.block.block_and_report": "Bac ⁊ Tuairiscigh", + "confirmations.block.confirm": "Bac", + "confirmations.block.message": "An bhfuil tú cinnte gur mhaith leat {name} a bhac?", + "confirmations.cancel_follow_request.confirm": "Éirigh as iarratas", + "confirmations.cancel_follow_request.message": "An bhfuil tú cinnte gur mhaith leat éirigh as an iarratas leanta {name}?", + "confirmations.delete.confirm": "Scrios", + "confirmations.delete.message": "An bhfuil tú cinnte gur mhaith leat an phostáil seo a scriosadh?", + "confirmations.delete_list.confirm": "Scrios", + "confirmations.delete_list.message": "An bhfuil tú cinnte gur mhaith leat an liosta seo a scriosadh go buan?", "confirmations.discard_edit_media.confirm": "Faigh réidh de", "confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?", - "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.domain_block.confirm": "Bac fearann go hiomlán", "confirmations.domain_block.message": "An bhfuil tú iontach cinnte gur mhaith leat bac an t-ainm fearainn {domain} in iomlán? I bhformhór na gcásanna, is leor agus is fearr cúpla baic a cur i bhfeidhm nó cúpla úsáideoirí a balbhú. Ní fheicfidh tú ábhair ón t-ainm fearainn sin in amlíne ar bith, nó i d'fhógraí. Scaoilfear do leantóirí ón ainm fearainn sin.", "confirmations.logout.confirm": "Logáil amach", - "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?", "confirmations.mute.confirm": "Balbhaigh", "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.message": "An bhfuil tú cinnte gur mhaith leat {name} a bhalbhú?", - "confirmations.redraft.confirm": "Delete & redraft", - "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", - "confirmations.reply.confirm": "Reply", + "confirmations.redraft.confirm": "Scrios ⁊ athdhréachtaigh", + "confirmations.redraft.message": "An bhfuil tú cinnte gur mhaith leat an phostáil sin a scriosadh agus athdhréachtú? Beidh roghanna agus treisithe caillte, agus beidh freagraí ar an bpostáil bhunúsach ina ndílleachtaí.", + "confirmations.reply.confirm": "Freagair", "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Ná lean", - "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", - "conversation.delete": "Delete conversation", - "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", + "confirmations.unfollow.message": "An bhfuil tú cinnte gur mhaith leat {name} a dhíleanúint?", + "conversation.delete": "Scrios comhrá", + "conversation.mark_as_read": "Marcáil mar léite", + "conversation.open": "Féach ar comhrá", + "conversation.with": "Le {names}", + "copypaste.copied": "Cóipeáilte", + "copypaste.copy": "Cóipeáil", + "directory.federated": "Ó chomhchruinne aitheanta", + "directory.local": "Ó {domain} amháin", + "directory.new_arrivals": "Daoine atá tar éis teacht", + "directory.recently_active": "Daoine gníomhacha le déanaí", + "disabled_account_banner.account_settings": "Socruithe cuntais", + "disabled_account_banner.text": "Tá do chuntas {disabledAccount} díchumasaithe faoi láthair.", + "dismissable_banner.community_timeline": "Seo iad na postála is déanaí ó dhaoine le cuntais ar {domain}.", + "dismissable_banner.dismiss": "Diúltaigh", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", - "embed.preview": "Here is what it will look like:", + "embed.preview": "Seo an chuma a bheidh air:", "emoji_button.activity": "Gníomhaíocht", - "emoji_button.clear": "Clear", - "emoji_button.custom": "Custom", - "emoji_button.flags": "Flags", + "emoji_button.clear": "Glan", + "emoji_button.custom": "Saincheaptha", + "emoji_button.flags": "Bratacha", "emoji_button.food": "Bia ⁊ Ól", - "emoji_button.label": "Insert emoji", + "emoji_button.label": "Cuir emoji isteach", "emoji_button.nature": "Nádur", - "emoji_button.not_found": "No matching emojis found", - "emoji_button.objects": "Objects", + "emoji_button.not_found": "Ní bhfuarthas an cineál emoji sin", + "emoji_button.objects": "Rudaí", "emoji_button.people": "Daoine", - "emoji_button.recent": "Frequently used", + "emoji_button.recent": "Úsáidte go minic", "emoji_button.search": "Cuardaigh...", - "emoji_button.search_results": "Search results", - "emoji_button.symbols": "Symbols", + "emoji_button.search_results": "Torthaí cuardaigh", + "emoji_button.symbols": "Comharthaí", "emoji_button.travel": "Taisteal ⁊ Áiteanna", - "empty_column.account_suspended": "Account suspended", - "empty_column.account_timeline": "No posts found", - "empty_column.account_unavailable": "Profile unavailable", - "empty_column.blocks": "You haven't blocked any users yet.", + "empty_column.account_suspended": "Cuntas ar fionraí", + "empty_column.account_timeline": "Níl postálacha ar bith anseo!", + "empty_column.account_unavailable": "Níl an phróifíl ar fáil", + "empty_column.blocks": "Níl aon úsáideoir bactha agat fós.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", - "empty_column.domain_blocks": "There are no blocked domains yet.", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", - "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.domain_blocks": "Níl aon fearainn bhactha ann go fóill.", + "empty_column.explore_statuses": "Níl rud ar bith ag treochtáil faoi láthair. Tar ar ais ar ball!", + "empty_column.favourited_statuses": "Níor roghnaigh tú postáil ar bith fós. Nuair a roghnaigh tú ceann, beidh sí le feiceáil anseo.", + "empty_column.favourites": "Níor roghnaigh éinne an phostáil seo fós. Nuair a roghnaigh duine éigin, beidh siad le feiceáil anseo.", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", - "empty_column.hashtag": "There is nothing in this hashtag yet.", - "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", - "empty_column.home.suggestions": "See some suggestions", + "empty_column.hashtag": "Níl rud ar bith faoin haischlib seo go fóill.", + "empty_column.home": "Tá d'amlíne baile folamh! B'fhiú duit cúpla duine eile a leanúint lena líonadh! {suggestions}", + "empty_column.home.suggestions": "Féach ar roinnt moltaí", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", "empty_column.mutes": "Níl aon úsáideoir balbhaithe agat fós.", @@ -189,233 +232,268 @@ "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", - "errors.unexpected_crash.report_issue": "Report issue", - "explore.search_results": "Search results", - "explore.suggested_follows": "For you", + "errors.unexpected_crash.report_issue": "Tuairiscigh deacracht", + "explore.search_results": "Torthaí cuardaigh", + "explore.suggested_follows": "Duitse", "explore.title": "Féach thart", "explore.trending_links": "Nuacht", "explore.trending_statuses": "Postálacha", "explore.trending_tags": "Haischlibeanna", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Scagaire as feidhm!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Socruithe scagtha", + "filter_modal.added.settings_link": "leathan socruithe", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Scagaire curtha leis!", + "filter_modal.select_filter.context_mismatch": "ní bhaineann sé leis an gcomhthéacs seo", + "filter_modal.select_filter.expired": "as feidhm", + "filter_modal.select_filter.prompt_new": "Catagóir nua: {name}", + "filter_modal.select_filter.search": "Cuardaigh nó cruthaigh", + "filter_modal.select_filter.subtitle": "Bain úsáid as catagóir reatha nó cruthaigh ceann nua", + "filter_modal.select_filter.title": "Déan scagadh ar an bpostáil seo", + "filter_modal.title.status": "Déan scagadh ar phostáil", "follow_recommendations.done": "Déanta", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Ceadaigh", "follow_request.reject": "Diúltaigh", - "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", - "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", + "follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.", + "footer.about": "Maidir le", + "footer.directory": "Eolaire próifílí", + "footer.get_app": "Faigh an aip", + "footer.invite": "Tabhair cuireadh do dhaoine", + "footer.keyboard_shortcuts": "Aicearraí méarchláir", + "footer.privacy_policy": "Polasaí príobháideachais", + "footer.source_code": "Féach ar an gcód foinseach", + "generic.saved": "Sábháilte", "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_header.tag_mode.all": "agus {additional}", + "hashtag.column_header.tag_mode.any": "nó {additional}", + "hashtag.column_header.tag_mode.none": "gan {additional}", "hashtag.column_settings.select.no_options_message": "No suggestions found", - "hashtag.column_settings.select.placeholder": "Enter hashtags…", - "hashtag.column_settings.tag_mode.all": "All of these", + "hashtag.column_settings.select.placeholder": "Iontráil haischlibeanna…", + "hashtag.column_settings.tag_mode.all": "Iad seo go léir", "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", - "home.column_settings.basic": "Basic", - "home.column_settings.show_reblogs": "Show boosts", - "home.column_settings.show_replies": "Show replies", - "home.hide_announcements": "Hide announcements", - "home.show_announcements": "Show announcements", + "hashtag.follow": "Lean haischlib", + "hashtag.unfollow": "Ná lean haischlib", + "home.column_settings.basic": "Bunúsach", + "home.column_settings.show_reblogs": "Taispeáin treisithe", + "home.column_settings.show_replies": "Taispeán freagraí", + "home.hide_announcements": "Cuir fógraí i bhfolach", + "home.show_announcements": "Taispeáin fógraí", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "Ar freastalaí eile", + "interaction_modal.on_this_server": "Ar an freastalaí seo", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Lean {name}", + "interaction_modal.title.reblog": "Cuir postáil {name} chun cinn", + "interaction_modal.title.reply": "Freagair postáil {name}", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", "keyboard_shortcuts.back": "to navigate back", - "keyboard_shortcuts.blocked": "to open blocked users list", - "keyboard_shortcuts.boost": "to boost", + "keyboard_shortcuts.blocked": "Oscail liosta na n-úsáideoirí bactha", + "keyboard_shortcuts.boost": "Treisigh postáil", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", - "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.description": "Cuntas", "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.down": "Bog síos ar an liosta", + "keyboard_shortcuts.enter": "Oscail postáil", + "keyboard_shortcuts.favourite": "Roghnaigh postáil", + "keyboard_shortcuts.favourites": "Oscail liosta roghanna", + "keyboard_shortcuts.federated": "Oscail amlíne cónaidhmithe", + "keyboard_shortcuts.heading": "Aicearraí méarchláir", "keyboard_shortcuts.home": "to open home timeline", - "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.hotkey": "Eochair aicearra", "keyboard_shortcuts.legend": "to display this legend", - "keyboard_shortcuts.local": "to open local timeline", - "keyboard_shortcuts.mention": "to mention author", + "keyboard_shortcuts.local": "Oscail an amlíne áitiúil", + "keyboard_shortcuts.mention": "Luaigh údar", "keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe", - "keyboard_shortcuts.my_profile": "to open your profile", + "keyboard_shortcuts.my_profile": "Oscail do phróifíl", "keyboard_shortcuts.notifications": "to open notifications column", "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "to open pinned posts list", - "keyboard_shortcuts.profile": "to open author's profile", - "keyboard_shortcuts.reply": "to reply", - "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.profile": "Oscail próifíl an t-údar", + "keyboard_shortcuts.reply": "Freagair ar phostáil", + "keyboard_shortcuts.requests": "Oscail liosta iarratas leanúnaí", "keyboard_shortcuts.search": "to focus search", "keyboard_shortcuts.spoilers": "to show/hide CW field", "keyboard_shortcuts.start": "to open \"get started\" column", "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", - "keyboard_shortcuts.toot": "to start a brand new post", + "keyboard_shortcuts.toggle_sensitivity": "Taispeáin / cuir i bhfolach meáin", + "keyboard_shortcuts.toot": "Cuir tús le postáil nua", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "to move up in the list", - "lightbox.close": "Close", + "keyboard_shortcuts.up": "Bog suas ar an liosta", + "lightbox.close": "Dún", "lightbox.compress": "Compress image view box", "lightbox.expand": "Expand image view box", - "lightbox.next": "Next", - "lightbox.previous": "Previous", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", - "lists.account.add": "Add to list", - "lists.account.remove": "Remove from list", - "lists.delete": "Delete list", + "lightbox.next": "An céad eile", + "lightbox.previous": "Roimhe seo", + "limited_account_hint.action": "Taispeáin an phróifíl ar aon nós", + "limited_account_hint.title": "Tá an phróifíl seo curtha i bhfolach ag na modhnóra {domain}.", + "lists.account.add": "Cuir leis an liosta", + "lists.account.remove": "Scrios as an liosta", + "lists.delete": "Scrios liosta", "lists.edit": "Cuir an liosta in eagar", "lists.edit.submit": "Athraigh teideal", - "lists.new.create": "Add list", + "lists.new.create": "Cruthaigh liosta", "lists.new.title_placeholder": "New list title", "lists.replies_policy.followed": "Any followed user", - "lists.replies_policy.list": "Members of the list", - "lists.replies_policy.none": "No one", - "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", + "lists.replies_policy.list": "Baill an liosta", + "lists.replies_policy.none": "Duine ar bith", + "lists.replies_policy.title": "Taispeáin freagraí:", + "lists.search": "Cuardaigh i measc daoine atá á leanúint agat", + "lists.subheading": "Do liostaí", "load_pending": "{count, plural, one {# new item} other {# new items}}", - "loading_indicator.label": "Loading...", + "loading_indicator.label": "Ag lódáil...", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", - "missing_indicator.label": "Not found", + "missing_indicator.label": "Níor aimsíodh é", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Tréimhse", "mute_modal.hide_notifications": "Cuir póstalacha ón t-úsáideoir seo i bhfolach?", "mute_modal.indefinite": "Gan téarma", - "navigation_bar.apps": "Mobile apps", - "navigation_bar.blocks": "Blocked users", - "navigation_bar.bookmarks": "Bookmarks", - "navigation_bar.community_timeline": "Local timeline", - "navigation_bar.compose": "Compose new post", - "navigation_bar.direct": "Direct messages", - "navigation_bar.discover": "Discover", - "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.about": "Maidir le", + "navigation_bar.blocks": "Cuntais bhactha", + "navigation_bar.bookmarks": "Leabharmharcanna", + "navigation_bar.community_timeline": "Amlíne áitiúil", + "navigation_bar.compose": "Cum postáil nua", + "navigation_bar.direct": "Teachtaireachtaí dhíreacha", + "navigation_bar.discover": "Faigh amach", + "navigation_bar.domain_blocks": "Fearainn bhactha", "navigation_bar.edit_profile": "Cuir an phróifíl in eagar", - "navigation_bar.explore": "Explore", - "navigation_bar.favourites": "Favourites", + "navigation_bar.explore": "Féach thart", + "navigation_bar.favourites": "Roghanna", "navigation_bar.filters": "Focail bhalbhaithe", - "navigation_bar.follow_requests": "Follow requests", + "navigation_bar.follow_requests": "Iarratais leanúnaí", "navigation_bar.follows_and_followers": "Ag leanúint agus do do leanúint", - "navigation_bar.info": "About this server", - "navigation_bar.keyboard_shortcuts": "Eochracha Aicearra", "navigation_bar.lists": "Liostaí", "navigation_bar.logout": "Logáil Amach", "navigation_bar.mutes": "Úsáideoirí balbhaithe", "navigation_bar.personal": "Pearsanta", - "navigation_bar.pins": "Pinned posts", - "navigation_bar.preferences": "Preferences", - "navigation_bar.public_timeline": "Federated timeline", - "navigation_bar.security": "Security", - "notification.admin.sign_up": "{name} signed up", - "notification.favourite": "{name} favourited your status", + "navigation_bar.pins": "Postálacha pionnáilte", + "navigation_bar.preferences": "Sainroghanna pearsanta", + "navigation_bar.public_timeline": "Amlíne cónaidhmithe", + "navigation_bar.search": "Cuardaigh", + "navigation_bar.security": "Slándáil", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "Tuairiscigh {name} {target}", + "notification.admin.sign_up": "Chláraigh {name}", + "notification.favourite": "Roghnaigh {name} do phostáil", "notification.follow": "Lean {name} thú", "notification.follow_request": "D'iarr {name} ort do chuntas a leanúint", - "notification.mention": "{name} mentioned you", + "notification.mention": "Luaigh {name} tú", "notification.own_poll": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", - "notification.reblog": "{name} boosted your status", - "notification.status": "{name} just posted", + "notification.reblog": "Threisigh {name} do phostáil", + "notification.status": "Phostáil {name} díreach", "notification.update": "Chuir {name} postáil in eagar", - "notifications.clear": "Clear notifications", + "notifications.clear": "Glan fógraí", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "Tuairiscí nua:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", - "notifications.column_settings.favourite": "Favourites:", + "notifications.column_settings.favourite": "Roghanna:", "notifications.column_settings.filter_bar.advanced": "Display all categories", "notifications.column_settings.filter_bar.category": "Quick filter bar", - "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.filter_bar.show_bar": "Taispeáin barra scagaire", "notifications.column_settings.follow": "Leantóirí nua:", "notifications.column_settings.follow_request": "Iarratais leanúnaí nua:", - "notifications.column_settings.mention": "Mentions:", - "notifications.column_settings.poll": "Poll results:", - "notifications.column_settings.push": "Push notifications", - "notifications.column_settings.reblog": "Boosts:", - "notifications.column_settings.show": "Show in column", - "notifications.column_settings.sound": "Play sound", - "notifications.column_settings.status": "New posts:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", + "notifications.column_settings.mention": "Tráchtanna:", + "notifications.column_settings.poll": "Torthaí suirbhéanna:", + "notifications.column_settings.push": "Brúfhógraí", + "notifications.column_settings.reblog": "Treisithe:", + "notifications.column_settings.show": "Taispeáin i gcolún", + "notifications.column_settings.sound": "Seinn an fhuaim", + "notifications.column_settings.status": "Postálacha nua:", + "notifications.column_settings.unread_notifications.category": "Brúfhógraí neamhléite", "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", "notifications.column_settings.update": "Eagair:", - "notifications.filter.all": "All", - "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favourites", - "notifications.filter.follows": "Follows", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", + "notifications.filter.all": "Uile", + "notifications.filter.boosts": "Treisithe", + "notifications.filter.favourites": "Roghanna", + "notifications.filter.follows": "Ag leanúint", + "notifications.filter.mentions": "Tráchtanna", + "notifications.filter.polls": "Torthaí suirbhéanna", "notifications.filter.statuses": "Updates from people you follow", - "notifications.grant_permission": "Grant permission.", - "notifications.group": "{count} notifications", + "notifications.grant_permission": "Tabhair cead.", + "notifications.group": "{count} fógraí", "notifications.mark_as_read": "Mark every notification as read", "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", - "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications_permission_banner.enable": "Ceadaigh fógraí ar an deasc", "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", "notifications_permission_banner.title": "Never miss a thing", - "picture_in_picture.restore": "Put it back", - "poll.closed": "Closed", - "poll.refresh": "Refresh", + "picture_in_picture.restore": "Cuir é ar ais", + "poll.closed": "Dúnta", + "poll.refresh": "Athnuaigh", "poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", + "poll.vote": "Vótáil", "poll.voted": "You voted for this answer", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll_button.add_poll": "Cruthaigh suirbhé", + "poll_button.remove_poll": "Bain suirbhé", "privacy.change": "Adjust status privacy", "privacy.direct.long": "Visible for mentioned users only", "privacy.direct.short": "Direct", "privacy.private.long": "Sofheicthe do Leantóirí amháin", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.private.short": "Leantóirí amháin", + "privacy.public.long": "Infheicthe do chách", "privacy.public.short": "Poiblí", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", - "privacy.unlisted.short": "Unlisted", - "refresh": "Refresh", + "privacy.unlisted.short": "Neamhliostaithe", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Polasaí príobháideachais", + "refresh": "Athnuaigh", "regeneration_indicator.label": "Ag lódáil…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", - "relative_time.days": "{number}d", - "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", - "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", - "relative_time.full.just_now": "just now", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", - "relative_time.hours": "{number}h", - "relative_time.just_now": "now", - "relative_time.minutes": "{number}m", + "relative_time.days": "{number}l", + "relative_time.full.days": "{number, plural, one {# lá} other {# lá}} ó shin", + "relative_time.full.hours": "{number, plural, one {# uair} other {# uair}} ó shin", + "relative_time.full.just_now": "díreach anois", + "relative_time.full.minutes": "{number, plural, one {# nóiméad} other {# nóiméad}} ó shin", + "relative_time.full.seconds": "{number, plural, one {# soicind} other {# soicind}} ó shin", + "relative_time.hours": "{number}u", + "relative_time.just_now": "anois", + "relative_time.minutes": "{number}n", "relative_time.seconds": "{number}s", "relative_time.today": "inniu", - "reply_indicator.cancel": "Cancel", - "report.block": "Block", + "reply_indicator.cancel": "Cealaigh", + "report.block": "Bac", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", + "report.categories.other": "Eile", "report.categories.spam": "Turscar", - "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", + "report.categories.violation": "Sáraíonn ábhar riail freastalaí amháin nó níos mó", + "report.category.subtitle": "Roghnaigh an toradh is fearr", "report.category.title": "Tell us what's going on with this {type}", - "report.category.title_account": "profile", - "report.category.title_status": "post", + "report.category.title_account": "próifíl", + "report.category.title_status": "postáil", "report.close": "Déanta", "report.comment.title": "Is there anything else you think we should know?", "report.forward": "Forward to {target}", "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", "report.mute": "Balbhaigh", "report.mute_explanation": "Ní fheicfidh tú a postálacha. Is féidir an té seo tú a leanúint agus do phostálacha a fheiceáil, agus ní fhios go bhfuil iad balbhaithe.", - "report.next": "Next", - "report.placeholder": "Type or paste additional comments", + "report.next": "An céad eile", + "report.placeholder": "Ráitis bhreise", "report.reasons.dislike": "Ní maith liom é", "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", + "report.reasons.other": "Is rud eile é", "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "It's spam", + "report.reasons.spam": "Is turscar é", "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", "report.reasons.violation": "It violates server rules", "report.reasons.violation_description": "You are aware that it breaks specific rules", @@ -423,82 +501,106 @@ "report.rules.title": "Which rules are being violated?", "report.statuses.subtitle": "Select all that apply", "report.statuses.title": "Are there any posts that back up this report?", - "report.submit": "Submit report", - "report.target": "Report {target}", + "report.submit": "Cuir isteach", + "report.target": "Ag tuairisciú {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.title": "Don't want to see this?", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", + "report.unfollow": "Ná lean @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Eile", + "report_notification.categories.spam": "Turscar", + "report_notification.categories.violation": "Sárú rialach", + "report_notification.open": "Oscail tuairisc", "search.placeholder": "Cuardaigh", + "search.search_or_paste": "Search or paste URL", "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": "haischlib", - "search_popout.tips.status": "status", + "search_popout.tips.status": "postáil", "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", - "search_popout.tips.user": "user", + "search_popout.tips.user": "úsáideoir", "search_results.accounts": "Daoine", - "search_results.all": "All", + "search_results.all": "Uile", "search_results.hashtags": "Haischlibeanna", "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Postálacha", "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Tuilleadh eolais", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sinigh isteach", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", - "status.block": "Block @{name}", - "status.bookmark": "Bookmark", - "status.cancel_reblog_private": "Unboost", - "status.cannot_reblog": "This post cannot be boosted", + "status.block": "Bac @{name}", + "status.bookmark": "Leabharmharcanna", + "status.cancel_reblog_private": "Díthreisigh", + "status.cannot_reblog": "Ní féidir an phostáil seo a threisiú", "status.copy": "Copy link to status", "status.delete": "Scrios", "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.direct": "Seol teachtaireacht dhíreach chuig @{name}", "status.edit": "Cuir in eagar", "status.edited": "Curtha in eagar in {date}", "status.edited_x_times": "Curtha in eagar {count, plural, one {{count} uair amháin} two {{count} uair} few {{count} uair} many {{count} uair} other {{count} uair}}", - "status.embed": "Embed", - "status.favourite": "Favourite", + "status.embed": "Leabaigh", + "status.favourite": "Rogha", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Cuir postáil i bhfolach", "status.history.created": "{name} created {date}", "status.history.edited": "Curtha in eagar ag {name} in {date}", - "status.load_more": "Load more", + "status.load_more": "Lódáil a thuilleadh", "status.media_hidden": "Media hidden", - "status.mention": "Mention @{name}", + "status.mention": "Luaigh @{name}", "status.more": "Tuilleadh", "status.mute": "Balbhaigh @{name}", "status.mute_conversation": "Balbhaigh comhrá", "status.open": "Expand this status", - "status.pin": "Pin on profile", + "status.pin": "Pionnáil ar do phróifíl", "status.pinned": "Pinned post", - "status.read_more": "Read more", - "status.reblog": "Boost", - "status.reblog_private": "Boost with original visibility", - "status.reblogged_by": "{name} boosted", - "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", - "status.redraft": "Delete & re-draft", + "status.read_more": "Léan a thuilleadh", + "status.reblog": "Treisigh", + "status.reblog_private": "Treisigh le léargas bunúsach", + "status.reblogged_by": "Treisithe ag {name}", + "status.reblogs.empty": "Níor threisigh éinne an phostáil seo fós. Nuair a threisigh duine éigin, beidh siad le feiceáil anseo.", + "status.redraft": "Scrios ⁊ athdhréachtaigh", "status.remove_bookmark": "Remove bookmark", - "status.reply": "Reply", - "status.replyAll": "Reply to thread", - "status.report": "Report @{name}", - "status.sensitive_warning": "Sensitive content", - "status.share": "Share", - "status.show_less": "Show less", - "status.show_less_all": "Show less for all", - "status.show_more": "Show more", - "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", - "status.uncached_media_warning": "Not available", + "status.replied_to": "Replied to {name}", + "status.reply": "Freagair", + "status.replyAll": "Freagair le snáithe", + "status.report": "Tuairiscigh @{name}", + "status.sensitive_warning": "Ábhar íogair", + "status.share": "Comhroinn", + "status.show_filter_reason": "Taispeáin ar aon nós", + "status.show_less": "Taispeáin níos lú", + "status.show_less_all": "Taispeáin níos lú d'uile", + "status.show_more": "Taispeáin níos mó", + "status.show_more_all": "Taispeáin níos mó d'uile", + "status.show_original": "Taispeáin bunchóip", + "status.translate": "Aistrigh", + "status.translated_from_with": "D'Aistrigh ón {lang} ag úsáid {provider}", + "status.uncached_media_warning": "Ní ar fáil", "status.unmute_conversation": "Díbhalbhaigh comhrá", - "status.unpin": "Unpin from profile", + "status.unpin": "Díphionnáil de do phróifíl", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", - "tabs_bar.federated_timeline": "Federated", + "tabs_bar.federated_timeline": "Cónasctha", "tabs_bar.home": "Baile", - "tabs_bar.local_timeline": "Local", - "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Cuardaigh", + "tabs_bar.local_timeline": "Áitiúil", + "tabs_bar.notifications": "Fógraí", "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", @@ -507,14 +609,14 @@ "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", "timeline_hint.resources.followers": "Leantóirí", "timeline_hint.resources.follows": "Follows", - "timeline_hint.resources.statuses": "Older posts", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", - "trends.trending_now": "Trending now", + "timeline_hint.resources.statuses": "Postáilí níos sine", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "Ag treochtáil anois", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", "units.short.million": "{count}M", "units.short.thousand": "{count}K", - "upload_area.title": "Drag & drop to upload", + "upload_area.title": "Tarraing ⁊ scaoil chun uaslódáil", "upload_button.label": "Add images, a video or an audio file", "upload_error.limit": "File upload limit exceeded.", "upload_error.poll": "File upload not allowed with polls.", @@ -523,25 +625,26 @@ "upload_form.description_missing": "No description added", "upload_form.edit": "Cuir in eagar", "upload_form.thumbnail": "Change thumbnail", - "upload_form.undo": "Delete", + "upload_form.undo": "Scrios", "upload_form.video_description": "Describe for people with hearing loss or visual impairment", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", + "upload_modal.analyzing_picture": "Ag anailísiú íomhá…", + "upload_modal.apply": "Cuir i bhFeidhm", "upload_modal.applying": "Applying…", - "upload_modal.choose_image": "Choose image", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.choose_image": "Roghnaigh íomhá", + "upload_modal.description_placeholder": "Chuaigh bé mhórsách le dlúthspád fíorfhinn trí hata mo dhea-phorcáin bhig", "upload_modal.detect_text": "Detect text from picture", "upload_modal.edit_media": "Cuir gné in eagar", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", - "upload_progress.label": "Uploading…", - "video.close": "Close video", - "video.download": "Download file", + "upload_progress.label": "Ag uaslódáil...", + "upload_progress.processing": "Ag próiseáil…", + "video.close": "Dún físeán", + "video.download": "Íoslódáil comhad", "video.exit_fullscreen": "Exit full screen", - "video.expand": "Expand video", - "video.fullscreen": "Full screen", - "video.hide": "Hide video", + "video.expand": "Leath físeán", + "video.fullscreen": "Lánscáileán", + "video.hide": "Cuir físeán i bhfolach", "video.mute": "Ciúnaigh fuaim", "video.pause": "Cuir ar sos", "video.play": "Cuir ar siúl", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 4294cee84fe484..06683f98358701 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -1,4 +1,16 @@ { + "about.blocks": "Frithealaichean fo mhaorsainneachd", + "about.contact": "Fios thugainn:", + "about.disclaimer": "’S e bathar-bog saor le bun-tùs fosgailte a th’ ann am Mastodon agus ’na chomharra-mhalairt aig Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Chan eil an t-adhbhar ga thoirt seachad", + "about.domain_blocks.preamble": "San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus eadar-ghìomh a ghabhail leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo.", + "about.domain_blocks.silenced.explanation": "San fharsaingeachd, chan fhaic thu pròifilean agus susbaint an fhrithealaiche seo ach ma nì thu lorg no ma tha thu ga leantainn.", + "about.domain_blocks.silenced.title": "Cuingichte", + "about.domain_blocks.suspended.explanation": "Cha dèid dàta sam bith on fhrithealaiche seo a phròiseasadh, a stòradh no iomlaid agus chan urrainn do na cleachdaichean on fhrithealaiche sin conaltradh no eadar-ghnìomh a ghabhail an-seo.", + "about.domain_blocks.suspended.title": "’Na dhàil", + "about.not_available": "Cha deach am fiosrachadh seo a sholar air an fhrithealaiche seo.", + "about.powered_by": "Lìonra sòisealta sgaoilte le cumhachd {mastodon}", + "about.rules": "Riaghailtean an fhrithealaiche", "account.account_note_header": "Nòta", "account.add_or_remove_from_list": "Cuir ris no thoir air falbh o na liostaichean", "account.badges.bot": "Bot", @@ -7,31 +19,37 @@ "account.block_domain": "Bac an àrainn {domain}", "account.blocked": "’Ga bhacadh", "account.browse_more_on_origin_server": "Rùraich barrachd dheth air a’ phròifil thùsail", - "account.cancel_follow_request": "Sguir dhen iarrtas leantainn", + "account.cancel_follow_request": "Cuir d’ iarrtas leantainn dhan dàrna taobh", "account.direct": "Cuir teachdaireachd dhìreach gu @{name}", "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris", "account.domain_blocked": "Chaidh an àrainn a bhacadh", "account.edit_profile": "Deasaich a’ phròifil", "account.enable_notifications": "Cuir brath thugam nuair a chuireas @{name} post ris", "account.endorse": "Brosnaich air a’ phròifil", - "account.follow": "Lean air", + "account.featured_tags.last_status_at": "Am post mu dheireadh {date}", + "account.featured_tags.last_status_never": "Gun phost", + "account.featured_tags.title": "Na tagaichean hais brosnaichte aig {name}", + "account.follow": "Lean", "account.followers": "Luchd-leantainn", "account.followers.empty": "Chan eil neach sam bith a’ leantainn air a’ chleachdaiche seo fhathast.", "account.followers_counter": "{count, plural, one {{counter} neach-leantainn} two {{counter} neach-leantainn} few {{counter} luchd-leantainn} other {{counter} luchd-leantainn}}", "account.following": "A’ leantainn", - "account.following_counter": "{count, plural, one {A’ leantainn air {counter}} two {A’ leantainn air {counter}} few {A’ leantainn air {counter}} other {A’ leantainn air {counter}}}", - "account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn air neach sam bith fhathast.", - "account.follows_you": "’Gad leantainn", + "account.following_counter": "{count, plural, one {A’ leantainn {counter}} two {A’ leantainn {counter}} few {A’ leantainn {counter}} other {A’ leantainn {counter}}}", + "account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn neach sam bith fhathast.", + "account.follows_you": "Gad leantainn", + "account.go_to_profile": "Tadhail air a’ phròifil", "account.hide_reblogs": "Falaich na brosnachaidhean o @{name}", - "account.joined": "Air ballrachd fhaighinn {date}", + "account.joined_short": "Air ballrachd fhaighinn", + "account.languages": "Atharraich fo-sgrìobhadh nan cànan", "account.link_verified_on": "Chaidh dearbhadh cò leis a tha an ceangal seo {date}", - "account.locked_info": "Tha prìobhaideachd ghlaiste aig a’ chunntais seo. Nì an sealbhadair lèirmheas a làimh air cò dh’fhaodas leantainn orra.", + "account.locked_info": "Tha prìobhaideachd ghlaiste aig a’ chunntais seo. Nì an sealbhadair lèirmheas a làimh air cò dh’fhaodas a leantainn.", "account.media": "Meadhanan", "account.mention": "Thoir iomradh air @{name}", - "account.moved_to": "Chaidh {name} imrich gu:", + "account.moved_to": "Dh’innis {name} gu bheil an cunntas ùr aca a-nis air:", "account.mute": "Mùch @{name}", "account.mute_notifications": "Mùch na brathan o @{name}", "account.muted": "’Ga mhùchadh", + "account.open_original_page": "Fosgail an duilleag thùsail", "account.posts": "Postaichean", "account.posts_with_replies": "Postaichean ’s freagairtean", "account.report": "Dèan gearan mu @{name}", @@ -50,7 +68,7 @@ "account_note.placeholder": "Briog airson nòta a chur ris", "admin.dashboard.daily_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir latha", "admin.dashboard.monthly_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir mìos", - "admin.dashboard.retention.average": "Średnia", + "admin.dashboard.retention.average": "Cuibheasach", "admin.dashboard.retention.cohort": "Mìos a’ chlàraidh", "admin.dashboard.retention.cohort_size": "Cleachdaichean ùra", "alert.rate_limited.message": "Feuch ris a-rithist às dèidh {retry_time, time, medium}.", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oich!", "announcement.announcement": "Brath-fios", "attachments_list.unprocessed": "(gun phròiseasadh)", + "audio.hide": "Falaich an fhuaim", "autosuggest_hashtag.per_week": "{count} san t-seachdain", "boost_modal.combo": "Brùth air {combo} nam b’ fheàrr leat leum a ghearradh thar seo an ath-thuras", - "bundle_column_error.body": "Chaidh rudeigin cearr nuair a dh’fheuch sinn ris a’ cho-phàirt seo a luchdadh.", + "bundle_column_error.copy_stacktrace": "Dèan lethbhreac de aithris na mearachd", + "bundle_column_error.error.body": "Cha b’ urrainn dhuinn an duilleag a dh’iarr thu a reandaradh. Dh’fhaoidte gu bheil buga sa chòd againn no duilgheadas co-chòrdalachd leis a’ bhrabhsair.", + "bundle_column_error.error.title": "Ìoc!", + "bundle_column_error.network.body": "Thachair mearachd nuair a dh’fheuch sinn ris an duilleag seo a luchdadh. Dh’fhaoidte gu bheil duilgheadas sealach leis a’ cheangal agad ris an eadar-lìon no leis an fhrithealaiche seo.", + "bundle_column_error.network.title": "Mearachd lìonraidh", "bundle_column_error.retry": "Feuch ris a-rithist", - "bundle_column_error.title": "Mearachd lìonraidh", + "bundle_column_error.return": "Dhachaigh", + "bundle_column_error.routing.body": "Cha do lorg sinn an duilleag a dh’iarr thu. A bheil thu cinnteach gu bheil an t-URL ann am bàr an t-seòlaidh mar bu chòir?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Dùin", "bundle_modal_error.message": "Chaidh rudeigin cearr nuair a dh’fheuch sinn ris a’ cho-phàirt seo a luchdadh.", "bundle_modal_error.retry": "Feuch ris a-rithist", + "closed_registrations.other_server_instructions": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chruthachadh air frithealaiche eile agus conaltradh ris an fhrithealaiche seo co-dhiù.", + "closed_registrations_modal.description": "Cha ghabh cunntas a chruthachadh air {domain} aig an àm seo ach thoir an aire nach fheum thu cunntas air {domain} gu sònraichte airson Mastodon a chleachdadh.", + "closed_registrations_modal.find_another_server": "Lorg frithealaiche eile", + "closed_registrations_modal.preamble": "Tha Mastodon sgaoilte is mar sin dheth ge b’ e càit an cruthaich thu an cunntas agad, ’s urrainn dhut duine sam bith a leantainn air an fhrithealaiche seo is conaltradh leotha. ’S urrainn dhut fiù ’s frithealaiche agad fhèin òstadh!", + "closed_registrations_modal.title": "Clàradh le Mastodon", + "column.about": "Mu dhèidhinn", "column.blocks": "Cleachdaichean bacte", "column.bookmarks": "Comharran-lìn", "column.community": "Loidhne-ama ionadail", @@ -95,9 +126,9 @@ "compose.language.change": "Atharraich an cànan", "compose.language.search": "Lorg cànan…", "compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh", - "compose_form.encryption_warning": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh cunnartach idir le Mastodon.", + "compose_form.encryption_warning": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh dìomhair idir le Mastodon.", "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais on a tha e falaichte o liostaichean. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.", - "compose_form.lock_disclaimer": "Chan eil an cunntas agad {locked}. ’S urrainn do dhuine sam bith leantainn ort is na postaichean agad a tha ag amas air an luchd-leantainn agad a-mhàin a shealltainn.", + "compose_form.lock_disclaimer": "Chan eil an cunntas agad {locked}. ’S urrainn do dhuine sam bith ’gad leantainn is na postaichean agad a tha ag amas air an luchd-leantainn agad a-mhàin a shealltainn.", "compose_form.lock_disclaimer.lock": "glaiste", "compose_form.placeholder": "Dè tha air d’ aire?", "compose_form.poll.add_option": "Cuir roghainn ris", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Thoir an roghainn seo air falbh", "compose_form.poll.switch_to_multiple": "Atharraich an cunntas-bheachd ach an gabh iomadh roghainn a thaghadh", "compose_form.poll.switch_to_single": "Atharraich an cunntas-bheachd gus nach gabh ach aon roghainn a thaghadh", - "compose_form.publish": "Postaich", + "compose_form.publish": "Foillsich", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Sàbhail na h-atharraichean", "compose_form.sensitive.hide": "{count, plural, one {Cuir comharra gu bheil am meadhan frionasach} two {Cuir comharra gu bheil na meadhanan frionasach} few {Cuir comharra gu bheil na meadhanan frionasach} other {Cuir comharra gu bheil na meadhanan frionasach}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bac ⁊ dèan gearan", "confirmations.block.confirm": "Bac", "confirmations.block.message": "A bheil thu cinnteach gu bheil thu airson {name} a bhacadh?", + "confirmations.cancel_follow_request.confirm": "Cuir d’ iarrtas dhan dàrna taobh", + "confirmations.cancel_follow_request.message": "A bheil thu cinnteach gu bheil thu airson d’ iarrtas airson {name} a leantainn a chur dhan dàrna taobh?", "confirmations.delete.confirm": "Sguab às", "confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?", "confirmations.delete_list.confirm": "Sguab às", @@ -126,26 +159,36 @@ "confirmations.discard_edit_media.confirm": "Tilg air falbh", "confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?", "confirmations.domain_block.confirm": "Bac an àrainn uile gu lèir", - "confirmations.domain_block.message": "A bheil thu cinnteach dha-rìribh gu bheil thu airson an àrainn {domain} a bhacadh uile gu lèir? Mar as trice, foghnaidh gun dèan thu bacadh no mùchadh no dhà gu sònraichte agus bhiod sin na b’ fheàrr. Chan fhaic thu susbaint on àrainn ud air loidhne-ama phoblach sam bith no am measg nam brathan agad. Thèid an luchd-leantainn agad on àrainn ud a thoirt air falbh.", + "confirmations.domain_block.message": "A bheil thu cinnteach dha-rìribh gu bheil thu airson an àrainn {domain} a bhacadh uile gu lèir? Mar as trice, foghnaidh gun dèan thu bacadh no mùchadh no dhà gu sònraichte agus bhiodh sin na b’ fheàrr. Chan fhaic thu susbaint on àrainn ud air loidhne-ama phoblach sam bith no am measg nam brathan agad. Thèid an luchd-leantainn agad on àrainn ud a thoirt air falbh.", "confirmations.logout.confirm": "Clàraich a-mach", "confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?", "confirmations.mute.confirm": "Mùch", - "confirmations.mute.explanation": "Cuiridh seo na postaichean uapa ’s na postaichean a bheir iomradh orra am falach ach chì iad-san na postaichean agad fhathast is faodaidh iad leantainn ort.", + "confirmations.mute.explanation": "Cuiridh seo na postaichean uapa ’s na postaichean a bheir iomradh orra am falach ach chì iad-san na postaichean agad fhathast is faodaidh iad ’gad leantainn.", "confirmations.mute.message": "A bheil thu cinnteach gu bheil thu airson {name} a mhùchadh?", "confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr", "confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail ’nan dìlleachdanan.", "confirmations.reply.confirm": "Freagair", "confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.unfollow.confirm": "Na lean tuilleadh", - "confirmations.unfollow.message": "A bheil thu cinnteach nach eil thu airson leantainn air {name} tuilleadh?", + "confirmations.unfollow.message": "A bheil thu cinnteach nach eil thu airson {name} a leantainn tuilleadh?", "conversation.delete": "Sguab às an còmhradh", "conversation.mark_as_read": "Cuir comharra gun deach a leughadh", "conversation.open": "Seall an còmhradh", - "conversation.with": "Le {names}", + "conversation.with": "Còmhla ri {names}", + "copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh", + "copypaste.copy": "Dèan lethbhreac", "directory.federated": "On cho-shaoghal aithnichte", "directory.local": "O {domain} a-mhàin", "directory.new_arrivals": "Feadhainn ùra", "directory.recently_active": "Gnìomhach o chionn goirid", + "disabled_account_banner.account_settings": "Roghainnean a’ chunntais", + "disabled_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas aig an àm seo.", + "dismissable_banner.community_timeline": "Seo na postaichean poblach as ùire o dhaoine aig a bheil cunntas air {domain}.", + "dismissable_banner.dismiss": "Leig seachad", + "dismissable_banner.explore_links": "Seo na naidheachdan air a bhithear a’ bruidhinn an-dràsta fhèin air an fhrithealaiche seo is frithealaichean eile dhen lìonra sgaoilte.", + "dismissable_banner.explore_statuses": "Tha fèill air na postaichean seo on fhrithealaiche seo is frithealaichean eile dhen lìonra sgaoilte a’ fàs air an fhrithealaich seo an-dràsta fhèin.", + "dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a’ fàs an-dràsta fhèin air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte.", + "dismissable_banner.public_timeline": "Seo na postaichean poblach as ùire o dhaoine air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte air a bheil am frithealaiche seo eòlach.", "embed.instructions": "Leabaich am post seo san làrach-lìn agad is tu a’ dèanamh lethbhreac dhen chòd gu h-ìosal.", "embed.preview": "Seo an coltas a bhios air:", "emoji_button.activity": "Gnìomhachd", @@ -175,15 +218,15 @@ "empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.", "empty_column.favourites": "Chan eil am post seo ’na annsachd aig duine sam bith fhathast. Nuair a nì daoine annsachd dheth, nochdaidh iad an-seo.", "empty_column.follow_recommendations": "Chan urrainn dhuinn dad a mholadh dhut. Cleachd gleus an luirg feuch an lorg thu daoine air a bheil thu eòlach no rùraich na tagaichean-hais a tha a’ treandadh.", - "empty_column.follow_requests": "Chan eil iarrtas air leantainn agad fhathast. Nuair gheibh thu fear, nochdaidh e an-seo.", + "empty_column.follow_requests": "Chan eil iarrtas leantainn agad fhathast. Nuair a gheibh thu fear, nochdaidh e an-seo.", "empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.", - "empty_column.home": "Tha an loidhne-ama dachaigh agad falamh! Lean air barrachd dhaoine gus a lìonadh. {suggestions}", + "empty_column.home": "Tha loidhne-ama na dachaigh agad falamh! Lean barrachd dhaoine gus a lìonadh. {suggestions}", "empty_column.home.suggestions": "Faic moladh no dhà", "empty_column.list": "Chan eil dad air an liosta seo fhathast. Nuair a phostaicheas buill a tha air an liosta seo postaichean ùra, nochdaidh iad an-seo.", "empty_column.lists": "Chan eil liosta agad fhathast. Nuair chruthaicheas tu tè, nochdaidh i an-seo.", "empty_column.mutes": "Cha do mhùch thu cleachdaiche sam bith fhathast.", "empty_column.notifications": "Cha d’ fhuair thu brath sam bith fhathast. Nuair a nì càch conaltradh leat, chì thu an-seo e.", - "empty_column.public": "Chan eil dad an-seo! Sgrìobh rudeigin gu poblach no lean air càch o fhrithealaichean eile a làimh airson seo a lìonadh", + "empty_column.public": "Chan eil dad an-seo! Sgrìobh rudeigin gu poblach no lean càch o fhrithealaichean eile a làimh airson seo a lìonadh", "error.unexpected_crash.explanation": "Air sàilleibh buga sa chòd againn no duilgheadas co-chòrdalachd leis a’ bhrabhsair, chan urrainn dhuinn an duilleag seo a shealltainn mar bu chòir.", "error.unexpected_crash.explanation_addons": "Cha b’ urrainn dhuinn an duilleag seo a shealltainn mar bu chòir. Tha sinn an dùil gu do dh’adhbharaich tuilleadan a’ bhrabhsair no inneal eadar-theangachaidh fèin-obrachail a’ mhearachd.", "error.unexpected_crash.next_steps": "Feuch an ath-nuadhaich thu an duilleag seo. Mura cuidich sin, dh’fhaoidte gur urrainn dhut Mastodon a chleachdadh fhathast le brabhsair eile no le aplacaid thùsail.", @@ -196,21 +239,37 @@ "explore.trending_links": "Naidheachdan", "explore.trending_statuses": "Postaichean", "explore.trending_tags": "Tagaichean hais", + "filter_modal.added.context_mismatch_explanation": "Chan eil an roinn-seòrsa criathraidh iom seo chaidh dhan cho-theacs san do dh’inntrig thu am post seo. Ma tha thu airson am post a chriathradh sa cho-theacs seo cuideachd, feumaidh tu a’ chriathrag a dheasachadh.", + "filter_modal.added.context_mismatch_title": "Co-theacsa neo-iomchaidh!", + "filter_modal.added.expired_explanation": "Dh’fhalbh an ùine air an roinn-seòrsa criathraidh seo agus feumaidh tu an ceann-là crìochnachaidh atharrachadh mus cuir thu an sàs i.", + "filter_modal.added.expired_title": "Dh’fhalbh an ùine air a’ chriathrag!", + "filter_modal.added.review_and_configure": "Airson an roinn-seòrsa criathraidh seo a sgrùdadh ’s a rèiteachadh, tadhail air {settings_link}.", + "filter_modal.added.review_and_configure_title": "Roghainnean na criathraige", + "filter_modal.added.settings_link": "duilleag nan roghainnean", + "filter_modal.added.short_explanation": "Chaidh am post seo a chur ris an roinn-seòrsa criathraidh seo: {title}.", + "filter_modal.added.title": "Chaidh a’ chriathrag a chur ris!", + "filter_modal.select_filter.context_mismatch": "chan eil e iomchaidh dhan cho-theacs seo", + "filter_modal.select_filter.expired": "dh’fhalbh an ùine air", + "filter_modal.select_filter.prompt_new": "Roinn-seòrsa ùr: {name}", + "filter_modal.select_filter.search": "Lorg no cruthaich", + "filter_modal.select_filter.subtitle": "Cleachd roinn-seòrsa a tha ann no cruthaich tè ùr", + "filter_modal.select_filter.title": "Criathraich am post seo", + "filter_modal.title.status": "Criathraich post", "follow_recommendations.done": "Deiseil", - "follow_recommendations.heading": "Lean air daoine ma tha thu airson nam postaichean aca fhaicinn! Seo moladh no dà dhut.", - "follow_recommendations.lead": "Nochdaidh na postaichean aig na daoine air a leanas tu a-rèir an ama air inbhir na dachaighe agad. Bi dàna on as urrainn dhut sgur de leantainn air daoine cuideachd uair sam bith!", + "follow_recommendations.heading": "Lean daoine ma tha thu airson na postaichean aca fhaicinn! Seo moladh no dà dhut.", + "follow_recommendations.lead": "Nochdaidh na postaichean aig na daoine a leanas tu a-rèir an ama nad dhachaigh. Bi dàna on as urrainn dhut sgur de dhaoine a leantainn cuideachd uair sam bith!", "follow_request.authorize": "Ùghdarraich", "follow_request.reject": "Diùlt", "follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.", + "footer.about": "Mu dhèidhinn", + "footer.directory": "Eòlaire nam pròifil", + "footer.get_app": "Faigh an aplacaid", + "footer.invite": "Thoir cuireadh do dhaoine", + "footer.keyboard_shortcuts": "Ath-ghoiridean a’ mheur-chlàir", + "footer.privacy_policy": "Poileasaidh prìobhaideachd", + "footer.source_code": "Seall am bun-tùs", "generic.saved": "Chaidh a shàbhaladh", - "getting_started.developers": "Luchd-leasachaidh", - "getting_started.directory": "Eòlaire nam pròifil", - "getting_started.documentation": "Docamaideadh", "getting_started.heading": "Toiseach", - "getting_started.invite": "Thoir cuireadh do dhaoine", - "getting_started.open_source_notice": "’S e bathar-bog le bun-tùs fosgailte a th’ ann am Mastodon. ’S urrainn dhut cuideachadh leis no aithris a dhèanamh air duilgheadasan air GitHub fo {github}.", - "getting_started.security": "Roghainnean a’ chunntais", - "getting_started.terms": "Teirmichean na seirbheise", "hashtag.column_header.tag_mode.all": "agus {additional}", "hashtag.column_header.tag_mode.any": "no {additional}", "hashtag.column_header.tag_mode.none": "às aonais {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Gin sam bith dhiubh", "hashtag.column_settings.tag_mode.none": "Às aonais gin sam bith dhiubh", "hashtag.column_settings.tag_toggle": "Gabh a-steach barrachd tagaichean sa cholbh seo", + "hashtag.follow": "Lean an taga hais", + "hashtag.unfollow": "Na lean an taga hais tuilleadh", "home.column_settings.basic": "Bunasach", "home.column_settings.show_reblogs": "Seall na brosnachaidhean", "home.column_settings.show_replies": "Seall na freagairtean", "home.hide_announcements": "Falaich na brathan-fios", "home.show_announcements": "Seall na brathan-fios", + "interaction_modal.description.favourite": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a chur ris na h-annsachdan airson innse dhan ùghdar gu bheil e a’ còrdadh dhut ’s a shàbhaladh do uaireigin eile.", + "interaction_modal.description.follow": "Le cunntas air Mastodon, ’s urrainn dhut {name} a leantainn ach am faigh thu na postaichean aca nad dhachaigh.", + "interaction_modal.description.reblog": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a bhrosnachadh gus a cho-roinneadh leis an luchd-leantainn agad fhèin.", + "interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.", + "interaction_modal.on_another_server": "Air frithealaiche eile", + "interaction_modal.on_this_server": "Air an frithealaiche seo", + "interaction_modal.other_server_instructions": "Dèan lethbhreac agus cuir an URL seo san raon luirg aig an aplacaid Mastodon as fheàrr leat no ann an eadar-aghaidh an fhrithealaiche Mastodon agad.", + "interaction_modal.preamble": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chleachdadh a tha ’ga òstadh le frithealaiche Mastodon no le ùrlar co-chòrdail eile mur eil cunntas agad air an fhear seo.", + "interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan", + "interaction_modal.title.follow": "Lean {name}", + "interaction_modal.title.reblog": "Brosnaich am post aig {name}", + "interaction_modal.title.reply": "Freagair dhan phost aig {name}", "intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", "intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}", "intervals.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}}", @@ -268,7 +341,7 @@ "lightbox.next": "Air adhart", "lightbox.previous": "Air ais", "limited_account_hint.action": "Seall a’ phròifil co-dhiù", - "limited_account_hint.title": "Chaidh a’ phròifil seo fhalach le maoir an fhrithealaiche agad.", + "limited_account_hint.title": "Chaidh a’ phròifil seo fhalach le maoir {domain}.", "lists.account.add": "Cuir ris an liosta", "lists.account.remove": "Thoir air falbh on liosta", "lists.delete": "Sguab às an liosta", @@ -276,21 +349,22 @@ "lists.edit.submit": "Atharraich an tiotal", "lists.new.create": "Cuir liosta ris", "lists.new.title_placeholder": "Tiotal na liosta ùir", - "lists.replies_policy.followed": "Cleachdaiche sam bith air a leanas mi", + "lists.replies_policy.followed": "Cleachdaiche sam bith a leanas mi", "lists.replies_policy.list": "Buill na liosta", "lists.replies_policy.none": "Na seall idir", "lists.replies_policy.title": "Seall na freagairtean gu:", - "lists.search": "Lorg am measg nan daoine air a leanas tu", + "lists.search": "Lorg am measg nan daoine a leanas tu", "lists.subheading": "Na liostaichean agad", "load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}", "loading_indicator.label": "’Ga luchdadh…", "media_gallery.toggle_visible": "{number, plural, 1 {Falaich an dealbh} one {Falaich na dealbhan} two {Falaich na dealbhan} few {Falaich na dealbhan} other {Falaich na dealbhan}}", "missing_indicator.label": "Cha deach càil a lorg", "missing_indicator.sublabel": "Cha deach an goireas a lorg", + "moved_to_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas on a rinn thu imrich gu {movedToAccount}.", "mute_modal.duration": "Faide", "mute_modal.hide_notifications": "A bheil thu airson na brathan fhalach on chleachdaiche seo?", "mute_modal.indefinite": "Gun chrìoch", - "navigation_bar.apps": "Aplacaidean mobile", + "navigation_bar.about": "Mu dhèidhinn", "navigation_bar.blocks": "Cleachdaichean bacte", "navigation_bar.bookmarks": "Comharran-lìn", "navigation_bar.community_timeline": "Loidhne-ama ionadail", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Faclan mùchte", "navigation_bar.follow_requests": "Iarrtasan leantainn", "navigation_bar.follows_and_followers": "Dàimhean leantainn", - "navigation_bar.info": "Mun fhrithealaiche seo", - "navigation_bar.keyboard_shortcuts": "Grad-iuchraichean", "navigation_bar.lists": "Liostaichean", "navigation_bar.logout": "Clàraich a-mach", "navigation_bar.mutes": "Cleachdaichean mùchte", @@ -313,11 +385,14 @@ "navigation_bar.pins": "Postaichean prìnichte", "navigation_bar.preferences": "Roghainnean", "navigation_bar.public_timeline": "Loidhne-ama cho-naisgte", + "navigation_bar.search": "Lorg", "navigation_bar.security": "Tèarainteachd", + "not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.", + "notification.admin.report": "Rinn {name} mu {target}", "notification.admin.sign_up": "Chlàraich {name}", "notification.favourite": "Is annsa le {name} am post agad", - "notification.follow": "Tha {name} a’ leantainn ort a-nis", - "notification.follow_request": "Dh’iarr {name} leantainn ort", + "notification.follow": "Tha {name} ’gad leantainn a-nis", + "notification.follow_request": "Dh’iarr {name} ’gad leantainn", "notification.mention": "Thug {name} iomradh ort", "notification.own_poll": "Thàinig an cunntas-bheachd agad gu crìoch", "notification.poll": "Thàinig cunntas-bheachd sa bhòt thu gu crìoch", @@ -326,6 +401,7 @@ "notification.update": "Dheasaich {name} post", "notifications.clear": "Falamhaich na brathan", "notifications.clear_confirmation": "A bheil thu cinnteach gu bheil thu airson na brathan uile agad fhalamhachadh gu buan?", + "notifications.column_settings.admin.report": "Gearanan ùra:", "notifications.column_settings.admin.sign_up": "Clàraidhean ùra:", "notifications.column_settings.alert": "Brathan deasga", "notifications.column_settings.favourite": "Na h-annsachdan:", @@ -347,12 +423,12 @@ "notifications.filter.all": "Na h-uile", "notifications.filter.boosts": "Brosnachaidhean", "notifications.filter.favourites": "Na h-annsachdan", - "notifications.filter.follows": "A’ leantainn air", + "notifications.filter.follows": "A’ leantainn", "notifications.filter.mentions": "Iomraidhean", "notifications.filter.polls": "Toraidhean cunntais-bheachd", - "notifications.filter.statuses": "Naidheachdan nan daoine air a leanas tu", + "notifications.filter.statuses": "Naidheachdan nan daoine a leanas tu", "notifications.grant_permission": "Thoir cead.", - "notifications.group": "{count} brath(an)", + "notifications.group": "Brathan ({count})", "notifications.mark_as_read": "Cuir comharra gun deach gach brath a leughadh", "notifications.permission_denied": "Chan eil brathan deasga ri fhaighinn on a chaidh iarrtas ceadan a’ bhrabhsair a dhiùltadh cheana", "notifications.permission_denied_alert": "Cha ghabh brathan deasga a chur an comas on a chaidh iarrtas ceadan a’ bhrabhsair a dhiùltadh cheana", @@ -373,21 +449,23 @@ "privacy.change": "Cuir gleus air prìobhaideachd a’ phuist", "privacy.direct.long": "Chan fhaic ach na cleachdaichean le iomradh orra seo", "privacy.direct.short": "An fheadhainn le iomradh orra a-mhàin", - "privacy.private.long": "Chan fhaic ach na daoine a tha a’ leantainn ort seo", + "privacy.private.long": "Chan fhaic ach na daoine a tha ’gad leantainn seo", "privacy.private.short": "Luchd-leantainn a-mhàin", "privacy.public.long": "Chì a h-uile duine e", "privacy.public.short": "Poblach", "privacy.unlisted.long": "Chì a h-uile duine e ach cha nochd e ann an gleusan rùrachaidh", "privacy.unlisted.short": "Falaichte o liostaichean", + "privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}", + "privacy_policy.title": "Poileasaidh prìobhaideachd", "refresh": "Ath-nuadhaich", "regeneration_indicator.label": "’Ga luchdadh…", - "regeneration_indicator.sublabel": "Tha inbhir na dachaigh agad ’ga ullachadh!", + "regeneration_indicator.sublabel": "Tha do dhachaigh ’ga ullachadh!", "relative_time.days": "{number}l", - "relative_time.full.days": "{count, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air ais", - "relative_time.full.hours": "{count, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air ais", + "relative_time.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air ais", + "relative_time.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air ais", "relative_time.full.just_now": "an-dràsta fhèin", - "relative_time.full.minutes": "{count, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}} air ais", - "relative_time.full.seconds": "{count, plural, one {# diog} two {# dhiog} few {# diogan} other {# diog}} air ais", + "relative_time.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}} air ais", + "relative_time.full.seconds": "{number, plural, one {# diog} two {# dhiog} few {# diogan} other {# diog}} air ais", "relative_time.hours": "{number}u", "relative_time.just_now": "an-dràsta", "relative_time.minutes": "{number}m", @@ -395,7 +473,7 @@ "relative_time.today": "an-diugh", "reply_indicator.cancel": "Sguir dheth", "report.block": "Bac", - "report.block_explanation": "Chan fhaic thu na postaichean aca. Chan fhaic iad na postaichean agad is chan urrainn dhaibh leantainn ort. Mothaichidh iad gun deach am bacadh.", + "report.block_explanation": "Chan fhaic thu na postaichean aca. Chan fhaic iad na postaichean agad is chan urrainn dhaibh ’gad leantainn. Mothaichidh iad gun deach am bacadh.", "report.categories.other": "Eile", "report.categories.spam": "Spama", "report.categories.violation": "Tha an t-susbaint a’ briseadh riaghailt no dhà an fhrithealaiche", @@ -408,7 +486,7 @@ "report.forward": "Sìn air adhart gu {target}", "report.forward_hint": "Chaidh an cunntas a chlàradh air frithealaiche eile. A bheil thu airson lethbhreac dhen ghearan a chur dha-san gun ainm cuideachd?", "report.mute": "Mùch", - "report.mute_explanation": "Chan fhaic thu na postaichean aca. Chì iad na postaichean agad agus ’s urrainn dhaibh leantainn ort fhathast. Cha bhi fios aca gun deach am mùchadh.", + "report.mute_explanation": "Chan fhaic thu na postaichean aca. Chì iad na postaichean agad agus ’s urrainn dhaibh ’gad leantainn fhathast. Cha bhi fios aca gun deach am mùchadh.", "report.next": "Air adhart", "report.placeholder": "Beachdan a bharrachd", "report.reasons.dislike": "Cha toigh leam e", @@ -429,9 +507,15 @@ "report.thanks.take_action_actionable": "Fhad ’s a bhios sinn a’ toirt sùil air, seo nas urrainn dhut dèanamh an aghaidh @{name}:", "report.thanks.title": "Nach eil thu airson seo fhaicinn?", "report.thanks.title_actionable": "Mòran taing airson a’ ghearain, bheir sinn sùil air.", - "report.unfollow": "Na lean air @{name} tuilleadh", - "report.unfollow_explanation": "Tha thu a’ leantainn air a’ chunntas seo. Sgur de leantainn orra ach nach fhaic thu na puist aca air inbhir na dachaigh agad.", + "report.unfollow": "Na lean @{name} tuilleadh", + "report.unfollow_explanation": "Tha thu a’ leantainn a’ chunntais seo. Sgur dhen leantainn ach nach fhaic thu na puist aca nad dhachaigh.", + "report_notification.attached_statuses": "Tha {count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}} ceangailte ris", + "report_notification.categories.other": "Eile", + "report_notification.categories.spam": "Spama", + "report_notification.categories.violation": "Briseadh riaghailte", + "report_notification.open": "Fosgail an gearan", "search.placeholder": "Lorg", + "search.search_or_paste": "Dèan lorg no cuir a-steach URL", "search_popout.search_format": "Fòrmat adhartach an luirg", "search_popout.tips.full_text": "Bheir teacsa sìmplidh dhut na postaichean a sgrìobh thu, a tha nan annsachdan dhut, a bhrosnaich thu no san deach iomradh a thoirt ort cho math ri ainmean-cleachdaiche, ainmean taisbeanaidh agus tagaichean hais a mhaidsicheas.", "search_popout.tips.hashtag": "taga hais", @@ -444,14 +528,24 @@ "search_results.nothing_found": "Cha do lorg sinn dad dha na h-abairtean-luirg seo", "search_results.statuses": "Postaichean", "search_results.statuses_fts_disabled": "Chan eil lorg phostaichean a-rèir an susbaint an comas air an fhrithealaiche Mastodon seo.", + "search_results.title": "Lorg {q}", "search_results.total": "{count, number} {count, plural, one {toradh} two {thoradh} few {toraidhean} other {toradh}}", + "server_banner.about_active_users": "Daoine a chleachd am frithealaiche seo rè an 30 latha mu dheireadh (Cleachdaichean gnìomhach gach mìos)", + "server_banner.active_users": "cleachdaichean gnìomhach", + "server_banner.administered_by": "Rianachd le:", + "server_banner.introduction": "Tha {domain} am measg an lìonraidh shòisealta sgaoilte le cumhachd {mastodon}.", + "server_banner.learn_more": "Barrachd fiosrachaidh", + "server_banner.server_stats": "Stadastaireachd an fhrithealaiche:", + "sign_in_banner.create_account": "Cruthaich cunntas", + "sign_in_banner.sign_in": "Clàraich a-steach", + "sign_in_banner.text": "Clàraich a-steach a leantainn phròifilean no thagaichean hais, a’ cur postaichean ris na h-annsachdan ’s ’gan co-roinneadh is freagairt dhaibh no gabh gnìomh le cunntas o fhrithealaiche eile.", "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", "status.admin_status": "Fosgail am post seo ann an eadar-aghaidh na maorsainneachd", "status.block": "Bac @{name}", "status.bookmark": "Cuir ris na comharran-lìn", "status.cancel_reblog_private": "Na brosnaich tuilleadh", "status.cannot_reblog": "Cha ghabh am post seo brosnachadh", - "status.copy": "Dèan lethbhreac dhen cheangal air a’ phost", + "status.copy": "Dèan lethbhreac dhen cheangal dhan phost", "status.delete": "Sguab às", "status.detailed_status": "Mion-shealladh a’ chòmhraidh", "status.direct": "Cuir teachdaireachd dhìreach gu @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{counter} turas} two {{counter} thuras} few {{counter} tursan} other {{counter} turas}}", "status.embed": "Leabaich", "status.favourite": "Cuir ris na h-annsachdan", + "status.filter": "Criathraich am post seo", "status.filtered": "Criathraichte", + "status.hide": "Falaich am post", "status.history.created": "Chruthaich {name} {date} e", "status.history.edited": "Dheasaich {name} {date} e", "status.load_more": "Luchdaich barrachd dheth", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.", "status.redraft": "Sguab às ⁊ dèan dreachd ùr", "status.remove_bookmark": "Thoir an comharra-lìn air falbh", + "status.replied_to": "Air {name} fhreagairt", "status.reply": "Freagair", "status.replyAll": "Freagair dhan t-snàithlean", "status.report": "Dèan gearan mu @{name}", "status.sensitive_warning": "Susbaint fhrionasach", "status.share": "Co-roinn", + "status.show_filter_reason": "Seall e co-dhiù", "status.show_less": "Seall nas lugha dheth", "status.show_less_all": "Seall nas lugha dhen a h-uile", "status.show_more": "Seall barrachd dheth", "status.show_more_all": "Seall barrachd dhen a h-uile", - "status.show_thread": "Seall an snàithlean", + "status.show_original": "Seall an tionndadh tùsail", + "status.translate": "Eadar-theangaich", + "status.translated_from_with": "Air eaar-theangachadh o {lang} le {provider}", "status.uncached_media_warning": "Chan eil seo ri fhaighinn", "status.unmute_conversation": "Dì-mhùch an còmhradh", "status.unpin": "Dì-phrìnich on phròifil", + "subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh ’s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b’ e dè an cànan.", + "subscribed_languages.save": "Sàbhail na h-atharraichean", + "subscribed_languages.target": "Atharraich fo-sgrìobhadh nan cànan airson {target}", "suggestions.dismiss": "Leig seachad am moladh", "suggestions.header": "Dh’fhaoidte gu bheil ùidh agad ann an…", "tabs_bar.federated_timeline": "Co-naisgte", "tabs_bar.home": "Dachaigh", "tabs_bar.local_timeline": "Ionadail", "tabs_bar.notifications": "Brathan", - "tabs_bar.search": "Lorg", "time_remaining.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air fhàgail", "time_remaining.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air fhàgail", "time_remaining.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}} air fhàgail", @@ -506,9 +608,9 @@ "time_remaining.seconds": "{number, plural, one {# diog} two {# dhiog} few {# diogan} other {# diog}} air fhàgail", "timeline_hint.remote_resource_not_displayed": "Cha dèid {resource} o fhrithealaichean eile a shealltainn.", "timeline_hint.resources.followers": "Luchd-leantainn", - "timeline_hint.resources.follows": "A’ leantainn air", + "timeline_hint.resources.follows": "A’ leantainn", "timeline_hint.resources.statuses": "Postaichean nas sine", - "trends.counter_by_accounts": "{count, plural, one {Tha {counter} neach} two {Tha {counter} neach} few {Tha {counter} daoine} other {Tha {counter} duine}} a’ bruidhinn", + "trends.counter_by_accounts": "{count, plural, one {{counter} neach} two {{counter} neach} few {{counter} daoine} other {{counter} duine}} {days, plural, one {san {days} latha} two {san {days} latha} few {sna {days} làithean} other {sna {days} latha}} seo chaidh", "trends.trending_now": "A’ treandadh an-dràsta", "ui.beforeunload": "Caillidh tu an dreachd agad ma dh’fhàgas tu Mastodon an-dràsta.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Ag ullachadh OCR…", "upload_modal.preview_label": "Ro-shealladh ({ratio})", "upload_progress.label": "’Ga luchdadh suas…", + "upload_progress.processing": "’Ga phròiseasadh…", "video.close": "Dùin a’ video", "video.download": "Luchdaich am faidhle a-nuas", "video.exit_fullscreen": "Fàg modh na làn-sgrìn", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 3a158ec7650048..62a71b1229798c 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.disclaimer": "Mastodon é software libre, de código aberto, e unha marca comercial de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Non está indicada a razón", + "about.domain_blocks.preamble": "Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular.", + "about.domain_blocks.silenced.explanation": "Por defecto non verás perfís e contido desde este servidor, a menos que mires de xeito explícito ou optes por seguir ese contido ou usuaria.", + "about.domain_blocks.silenced.title": "Limitado", + "about.domain_blocks.suspended.explanation": "Non se procesarán, almacenarán nin intercambiarán datos con este servidor, o que fai imposible calquera interacción ou comunicación coas usuarias deste servidor.", + "about.domain_blocks.suspended.title": "Suspendido", + "about.not_available": "Esta información non está dispoñible neste servidor.", + "about.powered_by": "Comunicación social descentralizada grazas a {mastodon}", + "about.rules": "Regras do servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Engadir ou eliminar das listaxes", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Agochar todo de {domain}", "account.blocked": "Bloqueada", "account.browse_more_on_origin_server": "Busca máis no perfil orixinal", - "account.cancel_follow_request": "Desbotar solicitude de seguimento", - "account.direct": "Mensaxe directa @{name}", + "account.cancel_follow_request": "Retirar solicitude de seguimento", + "account.direct": "Mensaxe directa a @{name}", "account.disable_notifications": "Deixar de notificarme cando @{name} publica", "account.domain_blocked": "Dominio agochado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Noficarme cando @{name} publique", "account.endorse": "Amosar no perfil", + "account.featured_tags.last_status_at": "Última publicación o {date}", + "account.featured_tags.last_status_never": "Sen publicacións", + "account.featured_tags.title": "Cancelos destacados de {name}", "account.follow": "Seguir", "account.followers": "Seguidoras", "account.followers.empty": "Aínda ninguén segue esta usuaria.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Seguindo} other {{counter} Seguindo}}", "account.follows.empty": "Esta usuaria aínda non segue a ninguén.", "account.follows_you": "Séguete", + "account.go_to_profile": "Ir ao perfil", "account.hide_reblogs": "Agochar repeticións de @{name}", - "account.joined": "Uníuse {date}", + "account.joined_short": "Uniuse", + "account.languages": "Modificar os idiomas subscritos", "account.link_verified_on": "A propiedade desta ligazón foi verificada o {date}", "account.locked_info": "Esta é unha conta privada. A propietaria revisa de xeito manual quen pode seguila.", "account.media": "Multimedia", "account.mention": "Mencionar @{name}", - "account.moved_to": "{name} mudouse a:", + "account.moved_to": "{name} informa de que a súa nova conta é:", "account.mute": "Acalar @{name}", "account.mute_notifications": "Acalar as notificacións de @{name}", "account.muted": "Acalada", + "account.open_original_page": "Abrir páxina orixinal", "account.posts": "Publicacións", "account.posts_with_replies": "Publicacións e respostas", "account.report": "Informar sobre @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Vaites!", "announcement.announcement": "Anuncio", "attachments_list.unprocessed": "(sen procesar)", + "audio.hide": "Agochar audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez", - "bundle_column_error.body": "Ocorreu un erro ó cargar este compoñente.", + "bundle_column_error.copy_stacktrace": "Copiar informe do erro", + "bundle_column_error.error.body": "Non se puido mostrar a páxina solicitada. Podería deberse a un problema no código, ou incompatiblidade co navegador.", + "bundle_column_error.error.title": "Vaites!", + "bundle_column_error.network.body": "Algo fallou ao intentar cargar esta páxina. Podería ser un problema temporal da conexión a internet ao intentar comunicarte este servidor.", + "bundle_column_error.network.title": "Fallo na rede", "bundle_column_error.retry": "Téntao de novo", - "bundle_column_error.title": "Fallo na rede", + "bundle_column_error.return": "Volver ao Inicio", + "bundle_column_error.routing.body": "Non atopamos a páxina solicitada. Tes a certeza de que o URL na barra de enderezos é correcto?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Pechar", "bundle_modal_error.message": "Ocorreu un erro ó cargar este compoñente.", "bundle_modal_error.retry": "Téntao de novo", + "closed_registrations.other_server_instructions": "Cómo Mastodon é descentralizado, podes crear unha conta noutro servidor e interactuar igualmente con este.", + "closed_registrations_modal.description": "Actualmente non é posible crear unha conta en {domain}, pero ten en conta que non precisas unha conta específicamente en {domain} para usar Mastodon.", + "closed_registrations_modal.find_another_server": "Atopa outro servidor", + "closed_registrations_modal.preamble": "Mastodon é descentralizado, así que non importa onde crees a conta, poderás seguir e interactuar con calquera conta deste servidor. Incluso podes ter o teu servidor!", + "closed_registrations_modal.title": "Crear conta en Mastodon", + "column.about": "Acerca de", "column.blocks": "Usuarias bloqueadas", "column.bookmarks": "Marcadores", "column.community": "Cronoloxía local", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas", "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla", - "compose_form.publish": "Toot", + "compose_form.publish": "Publicar", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Gardar cambios", "compose_form.sensitive.hide": "{count, plural, one {Marca multimedia como sensible} other {Marca multimedia como sensibles}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "Tes a certeza de querer bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitude", + "confirmations.cancel_follow_request.message": "Tes a certeza de querer retirar a solicitude para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "Tes a certeza de querer eliminar esta publicación?", "confirmations.delete_list.confirm": "Eliminar", @@ -135,17 +168,27 @@ "confirmations.redraft.confirm": "Eliminar e reescribir", "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.", "confirmations.reply.confirm": "Responder", - "confirmations.reply.message": "Responder agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?", + "confirmations.reply.message": "Ao responder sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "Desexas deixar de seguir a {name}?", "conversation.delete": "Eliminar conversa", "conversation.mark_as_read": "Marcar como lido", "conversation.open": "Ver conversa", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Do fediverso coñecido", "directory.local": "Só de {domain}", "directory.new_arrivals": "Recén chegadas", "directory.recently_active": "Activas recentemente", + "disabled_account_banner.account_settings": "Axustes da conta", + "disabled_account_banner.text": "Actualmente a túa conta {disabledAccount} está desactivada.", + "dismissable_banner.community_timeline": "Estas son as publicacións máis recentes das persoas que teñen a súa conta en {domain}.", + "dismissable_banner.dismiss": "Desbotar", + "dismissable_banner.explore_links": "As persoas deste servidor e da rede descentralizada están a falar destas historias agora mesmo.", + "dismissable_banner.explore_statuses": "Está aumentando a popularidade destas publicacións no servidor e na rede descentralizada.", + "dismissable_banner.explore_tags": "Estes cancelos están gañando popularidade entre as persoas deste servidor e noutros servidores da rede descentralizada.", + "dismissable_banner.public_timeline": "Estas son as publicacións máis recentes das persoas deste servidor e noutros servidores da rede descentralizada cos que está conectado.", "embed.instructions": "Engade esta publicación ó teu sitio web copiando o seguinte código.", "embed.preview": "Así será mostrado:", "emoji_button.activity": "Actividade", @@ -186,7 +229,7 @@ "empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo", "error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.", "error.unexpected_crash.explanation_addons": "Non se puido mostrar correctamente a páxina. Habitualmente este erro está causado por algún engadido do navegador ou ferramentas de tradución automática.", - "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se esto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.", + "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se isto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.", "error.unexpected_crash.next_steps_addons": "Intenta desactivalas e actualiza a páxina. Se isto non funciona, podes seguir usando Mastodon nun navegador diferente ou aplicación nativa.", "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis", "errors.unexpected_crash.report_issue": "Informar sobre un problema", @@ -196,21 +239,37 @@ "explore.trending_links": "Novas", "explore.trending_statuses": "Publicacións", "explore.trending_tags": "Cancelos", + "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro non se aplica ao contexto no que accedeches a esta publicación. Se queres que a publicación se filtre nese contexto tamén, terás que editar o filtro.", + "filter_modal.added.context_mismatch_title": "Non concorda o contexto!", + "filter_modal.added.expired_explanation": "Esta categoría de filtro caducou, terás que cambiar a data de caducidade para que se aplique.", + "filter_modal.added.expired_title": "Filtro caducado!", + "filter_modal.added.review_and_configure": "Para revisar e despois configurar esta categoría de filtro, vaite a {settings_link}.", + "filter_modal.added.review_and_configure_title": "Axustes do filtro", + "filter_modal.added.settings_link": "páxina de axustes", + "filter_modal.added.short_explanation": "Engadiuse esta publicación á seguinte categoría de filtro: {title}.", + "filter_modal.added.title": "Filtro engadido!", + "filter_modal.select_filter.context_mismatch": "non se aplica neste contexto", + "filter_modal.select_filter.expired": "caducado", + "filter_modal.select_filter.prompt_new": "Nova categoría: {name}", + "filter_modal.select_filter.search": "Buscar ou crear", + "filter_modal.select_filter.subtitle": "Usar unha categoría existente ou crear unha nova", + "filter_modal.select_filter.title": "Filtrar esta publicación", + "filter_modal.title.status": "Filtrar unha publicación", "follow_recommendations.done": "Feito", "follow_recommendations.heading": "Segue a persoas das que queiras ler publicacións! Aqui tes unhas suxestións.", "follow_recommendations.lead": "As publicacións das persoas que segues aparecerán na túa cronoloxía de inicio ordenadas temporalmente. Non teñas medo a equivocarte, podes deixar de seguirlas igual de fácil en calquera momento!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Rexeitar", "follow_requests.unlocked_explanation": "Malia que a túa conta non é privada, a administración de {domain} pensou que quizabes terías que revisar de xeito manual as solicitudes de seguiminto.", + "footer.about": "Acerca de", + "footer.directory": "Directorio de perfís", + "footer.get_app": "Descarga a app", + "footer.invite": "Convidar persoas", + "footer.keyboard_shortcuts": "Atallos do teclado", + "footer.privacy_policy": "Política de privacidade", + "footer.source_code": "Ver código fonte", "generic.saved": "Gardado", - "getting_started.developers": "Desenvolvedoras", - "getting_started.directory": "Directorio local", - "getting_started.documentation": "Documentación", "getting_started.heading": "Primeiros pasos", - "getting_started.invite": "Convidar persoas", - "getting_started.open_source_notice": "Mastodon é software de código aberto. Podes contribuír ou informar de fallos en GitHub en {github}.", - "getting_started.security": "Seguranza", - "getting_started.terms": "Termos do servizo", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Calquera destes", "hashtag.column_settings.tag_mode.none": "Ningún destes", "hashtag.column_settings.tag_toggle": "Incluír cancelos adicionais para esta columna", + "hashtag.follow": "Seguir cancelo", + "hashtag.unfollow": "Deixar de seguir cancelo", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Amosar compartidos", "home.column_settings.show_replies": "Amosar respostas", "home.hide_announcements": "Agochar anuncios", "home.show_announcements": "Amosar anuncios", + "interaction_modal.description.favourite": "Cunha conta en Mastodon, poderás marcar esta publicación como favorita, para gardalo e para que o autor saiba o moito que lle gustou.", + "interaction_modal.description.follow": "Cunha conta en Mastodon, poderás seguir a {name} e recibir as súas publicacións na túa cronoloxía de inicio.", + "interaction_modal.description.reblog": "Cunha conta en Mastodon, poderás promover esta publicación para compartila con quen te siga.", + "interaction_modal.description.reply": "Cunha conta en Mastodon, poderás responder a esta publicación.", + "interaction_modal.on_another_server": "Nun servidor diferente", + "interaction_modal.on_this_server": "Neste servidor", + "interaction_modal.other_server_instructions": "Copia e pega este URL no campo de busca da túa app Mastodon favorita ou na interface web do teu servidor Mastodon.", + "interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispós dunha conta neste servidor.", + "interaction_modal.title.favourite": "Marcar coma favorito a publicación de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Promover a publicación de {name}", + "interaction_modal.title.reply": "Responder á publicación de {name}", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Seguinte", "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostrar perfil igualmente", - "limited_account_hint.title": "Este perfil foi agochado pola moderación do teu servidor.", + "limited_account_hint.title": "Este perfil foi agochado pola moderación de {domain}.", "lists.account.add": "Engadir á listaxe", "lists.account.remove": "Eliminar da listaxe", "lists.delete": "Eliminar listaxe", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Agochar {number, plural, one {imaxe} other {imaxes}}", "missing_indicator.label": "Non atopado", "missing_indicator.sublabel": "Este recurso non foi atopado", + "moved_to_account_banner.text": "A túa conta {disabledAccount} está actualmente desactivada porque movéchela a {movedToAccount}.", "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "Agochar notificacións desta usuaria?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicacións móbiles", + "navigation_bar.about": "Acerca de", "navigation_bar.blocks": "Usuarias bloqueadas", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronoloxía local", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Peticións de seguimento", "navigation_bar.follows_and_followers": "Seguindo e seguidoras", - "navigation_bar.info": "Sobre este servidor", - "navigation_bar.keyboard_shortcuts": "Atallos do teclado", "navigation_bar.lists": "Listaxes", "navigation_bar.logout": "Pechar sesión", "navigation_bar.mutes": "Usuarias silenciadas", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Publicacións fixadas", "navigation_bar.preferences": "Preferencias", "navigation_bar.public_timeline": "Cronoloxía federada", + "navigation_bar.search": "Buscar", "navigation_bar.security": "Seguranza", + "not_signed_in_indicator.not_signed_in": "Debes acceder para ver este recurso.", + "notification.admin.report": "{name} denunciou a {target}", "notification.admin.sign_up": "{name} rexistrouse", "notification.favourite": "{name} marcou a túa publicación como favorita", "notification.follow": "{name} comezou a seguirte", @@ -326,6 +401,7 @@ "notification.update": "{name} editou unha publicación", "notifications.clear": "Limpar notificacións", "notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?", + "notifications.column_settings.admin.report": "Novas denuncias:", "notifications.column_settings.admin.sign_up": "Novas usuarias:", "notifications.column_settings.alert": "Notificacións de escritorio", "notifications.column_settings.favourite": "Favoritos:", @@ -373,12 +449,14 @@ "privacy.change": "Axustar privacidade", "privacy.direct.long": "Só para as usuarias mencionadas", "privacy.direct.short": "Só persoas mencionadas", - "privacy.private.long": "Só para os seguidoras", + "privacy.private.long": "Só para persoas que te seguen", "privacy.private.short": "Só para seguidoras", "privacy.public.long": "Visible por todas", "privacy.public.short": "Público", "privacy.unlisted.long": "Visible por todas, pero excluída da sección descubrir", "privacy.unlisted.short": "Non listado", + "privacy_policy.last_updated": "Actualizado por última vez no {date}", + "privacy_policy.title": "Política de Privacidade", "refresh": "Actualizar", "regeneration_indicator.label": "Estase a cargar…", "regeneration_indicator.sublabel": "Estase a preparar a túa cronoloxía de inicio!", @@ -426,12 +504,18 @@ "report.submit": "Enviar", "report.target": "Denunciar a {target}", "report.thanks.take_action": "Aquí tes unhas opcións para controlar o que ves en Mastodon:", - "report.thanks.take_action_actionable": "Mentras revisamos esto, podes tomar accións contra @{name}:", - "report.thanks.title": "Non queres ver esto?", + "report.thanks.take_action_actionable": "Mentras revisamos isto, podes tomar accións contra @{name}:", + "report.thanks.title": "Non queres ver isto?", "report.thanks.title_actionable": "Grazas pola denuncia, investigarémola.", "report.unfollow": "Non seguir a @{name}", "report.unfollow_explanation": "Estás a seguir esta conta. Deixar de ver as súas publicacións na túa cronoloxía, non seguila.", + "report_notification.attached_statuses": "Achegou {count, plural, one {{count} publicación} other {{count} publicacións}}", + "report_notification.categories.other": "Outro", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Faltou ás regras", + "report_notification.open": "Abrir a denuncia", "search.placeholder": "Procurar", + "search.search_or_paste": "Busca ou insire URL", "search_popout.search_format": "Formato de procura avanzada", "search_popout.tips.full_text": "Texto simple devolve toots que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.", "search_popout.tips.hashtag": "cancelo", @@ -441,10 +525,20 @@ "search_results.accounts": "Persoas", "search_results.all": "Todo", "search_results.hashtags": "Cancelos", - "search_results.nothing_found": "Non atopamos nada con estos termos de busca", + "search_results.nothing_found": "Non atopamos nada con estes termos de busca", "search_results.statuses": "Publicacións", "search_results.statuses_fts_disabled": "Procurar publicacións polo seu contido non está activado neste servidor do Mastodon.", + "search_results.title": "Resultados para {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Persoas que usaron este servidor nos últimos 30 días (Usuarias Activas Mensuais)", + "server_banner.active_users": "usuarias activas", + "server_banner.administered_by": "Administrada por:", + "server_banner.introduction": "{domain} é parte da rede social descentralizada que funciona grazas a {mastodon}.", + "server_banner.learn_more": "Saber máis", + "server_banner.server_stats": "Estatísticas do servidor:", + "sign_in_banner.create_account": "Crear conta", + "sign_in_banner.sign_in": "Acceder", + "sign_in_banner.text": "Inicia sesión para seguir perfís ou etiquetas, marcar como favorito, responder a publicacións ou interactuar con outro servidor desde a túa conta.", "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_status": "Abrir esta publicación na interface de moderación", "status.block": "Bloquear a @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustar", "status.favourite": "Favorito", + "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", + "status.hide": "Agochar publicación", "status.history.created": "{name} creouno o {date}", "status.history.edited": "{name} editouno o {date}", "status.load_more": "Cargar máis", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.", "status.redraft": "Eliminar e reescribir", "status.remove_bookmark": "Eliminar marcador", + "status.replied_to": "Respondeu a {name}", "status.reply": "Responder", - "status.replyAll": "Responder ó fío", + "status.replyAll": "Responder ao tema", "status.report": "Denunciar @{name}", "status.sensitive_warning": "Contido sensíbel", "status.share": "Compartir", + "status.show_filter_reason": "Mostrar igualmente", "status.show_less": "Amosar menos", "status.show_less_all": "Amosar menos para todos", "status.show_more": "Amosar máis", "status.show_more_all": "Amosar máis para todos", - "status.show_thread": "Amosar fío", + "status.show_original": "Mostrar o orixinal", + "status.translate": "Traducir", + "status.translated_from_with": "Traducido do {lang} usando {provider}", "status.uncached_media_warning": "Non dispoñíbel", "status.unmute_conversation": "Deixar de silenciar conversa", "status.unpin": "Desafixar do perfil", + "subscribed_languages.lead": "Ao facer cambios só as publicacións nos idiomas seleccionados aparecerán nas túas cronoloxías. Non elixas ningún para poder ver publicacións en tódolos idiomas.", + "subscribed_languages.save": "Gardar cambios", + "subscribed_languages.target": "Cambiar a subscrición a idiomas para {target}", "suggestions.dismiss": "Rexeitar suxestión", "suggestions.header": "Poderíache interesar…", "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificacións", - "tabs_bar.search": "Procurar", "time_remaining.days": "Remata en {number, plural, one {# día} other {# días}}", "time_remaining.hours": "Remata en {number, plural, one {# hora} other {# horas}}", "time_remaining.minutes": "Remata en {number, plural, one {# minuto} other {# minutos}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Seguidoras", "timeline_hint.resources.follows": "Seguindo", "timeline_hint.resources.statuses": "Publicacións antigas", - "trends.counter_by_accounts": "{count, plural, one {{counter} persoa} other {{counter} persoas}} comentando", + "trends.counter_by_accounts": "{count, plural, one {{counter} persoa} other {{counter} persoas}} {days, plural, one {no último día} other {nos {days} últimos días}}", "trends.trending_now": "Tendencias actuais", "ui.beforeunload": "O borrador perderase se saes de Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparando OCR…", "upload_modal.preview_label": "Vista previa ({ratio})", "upload_progress.label": "Estase a subir...", + "upload_progress.processing": "Procesando…", "video.close": "Pechar vídeo", "video.download": "Baixar ficheiro", "video.exit_fullscreen": "Saír da pantalla completa", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 3dcb7c9c7c61e5..f11b063b80e866 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -1,19 +1,34 @@ { + "about.blocks": "שרתים מוגבלים", + "about.contact": "יצירת קשר:", + "about.disclaimer": "מסטודון היא תוכנת קוד פתוח חינמית וסימן מסחרי של Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "הסיבה אינה זמינה", + "about.domain_blocks.preamble": "ככלל מסטודון מאפשרת לך לצפות בתוכן ולתקשר עם משתמשים מכל שרת בפדיברס. אלו הם היוצאים מן הכלל שהוגדרו עבור השרת המסוים הזה.", + "about.domain_blocks.silenced.explanation": "ככלל פרופילים ותוכן משרת זה לא יוצגו, אלא אם חיפשת אותם באופן מפורש או בחרת להשתתף בו על ידי מעקב.", + "about.domain_blocks.silenced.title": "מוגבלים", + "about.domain_blocks.suspended.explanation": "שום מידע משרת זה לא יעובד, יישמר או יוחלף, מה שהופך כל תקשורת עם משתמשים משרת זה לבלתי אפשרית.", + "about.domain_blocks.suspended.title": "מושעים", + "about.not_available": "המידע אינו זמין על שרת זה.", + "about.powered_by": "רשת חברתית מבוזרת המופעלת על ידי {mastodon}", + "about.rules": "כללי השרת", "account.account_note_header": "הערה", "account.add_or_remove_from_list": "הוסף או הסר מהרשימות", "account.badges.bot": "בוט", "account.badges.group": "קבוצה", "account.block": "חסמי את @{name}", - "account.block_domain": "חסמו את שם המתחם (דומיין) {domain}", - "account.blocked": "חסום", + "account.block_domain": "חסמו את קהילת {domain}", + "account.blocked": "לחסום", "account.browse_more_on_origin_server": "ראה יותר בפרופיל המקורי", - "account.cancel_follow_request": "בטל בקשת מעקב", + "account.cancel_follow_request": "משיכת בקשת מעקב", "account.direct": "הודעה ישירה ל@{name}", "account.disable_notifications": "הפסק לשלוח לי התראות כש@{name} מפרסמים", "account.domain_blocked": "הדומיין חסום", "account.edit_profile": "עריכת פרופיל", "account.enable_notifications": "שלח לי התראות כש@{name} מפרסם", "account.endorse": "קדם את החשבון בפרופיל", + "account.featured_tags.last_status_at": "הודעה אחרונה בתאריך {date}", + "account.featured_tags.last_status_never": "אין הודעות", + "account.featured_tags.title": "התגיות המועדפות של {name}", "account.follow": "עקוב", "account.followers": "עוקבים", "account.followers.empty": "אף אחד לא עוקב אחר המשתמש הזה עדיין.", @@ -22,141 +37,169 @@ "account.following_counter": "{count, plural,one {עוקב אחרי {counter}}other {עוקב אחרי {counter}}}", "account.follows.empty": "משתמש זה לא עוקב אחר אף אחד עדיין.", "account.follows_you": "במעקב אחריך", + "account.go_to_profile": "מעבר לפרופיל", "account.hide_reblogs": "להסתיר הידהודים מאת @{name}", - "account.joined": "הצטרפו ב{date}", + "account.joined_short": "תאריך הצטרפות", + "account.languages": "שנה שפת הרשמה", "account.link_verified_on": "בעלות על הקישור הזה נבדקה לאחרונה ב{date}", "account.locked_info": "מצב הפרטיות של החשבון הנוכחי הוגדר כנעול. בעל החשבון קובע באופן פרטני מי יכול לעקוב אחריו.", "account.media": "מדיה", "account.mention": "אזכור של @{name}", - "account.moved_to": "החשבון {name} הועבר אל:", + "account.moved_to": "{name} ציינו שהחשבון החדש שלהם הוא:", "account.mute": "להשתיק את @{name}", "account.mute_notifications": "להסתיר התראות מ @{name}", "account.muted": "מושתק", - "account.posts": "חצרוצים", - "account.posts_with_replies": "חצרוצים ותגובות", + "account.open_original_page": "לפתיחת העמוד המקורי", + "account.posts": "פוסטים", + "account.posts_with_replies": "הודעות ותגובות", "account.report": "דווח על @{name}", "account.requested": "בהמתנה לאישור. לחצי כדי לבטל בקשת מעקב", "account.share": "שתף את הפרופיל של @{name}", "account.show_reblogs": "הצג הדהודים מאת @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", + "account.statuses_counter": "{count, plural, one {הודעה} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}}", "account.unblock": "הסר את החסימה של @{name}", - "account.unblock_domain": "הסראת שם המתחם {domain}", + "account.unblock_domain": "הסירי את החסימה של קהילת {domain}", "account.unblock_short": "הסר חסימה", "account.unendorse": "אל תקדם בפרופיל", "account.unfollow": "הפסקת מעקב", "account.unmute": "הפסקת השתקת @{name}", - "account.unmute_notifications": "להפסיק השתקת הודעות מ @{name}", + "account.unmute_notifications": "להפסיק השתקת התראות מ @{name}", "account.unmute_short": "ביטול השתקה", "account_note.placeholder": "יש ללחוץ כדי להוסיף הערות", - "admin.dashboard.daily_retention": "קצב שימור משתמשים (פר יום) אחרי ההרשמה", + "admin.dashboard.daily_retention": "קצב שימור משתמשים יומי אחרי ההרשמה", "admin.dashboard.monthly_retention": "קצב שימור משתמשים (פר חודש) אחרי ההרשמה", "admin.dashboard.retention.average": "ממוצע", "admin.dashboard.retention.cohort": "חודש רישום", "admin.dashboard.retention.cohort_size": "משתמשים חדשים", "alert.rate_limited.message": "נא לנסות אחרי {retry_time, time, medium}.", - "alert.rate_limited.title": "מגבלות מיכסה", + "alert.rate_limited.title": "חלה הגבלת קצב", "alert.unexpected.message": "אירעה שגיאה בלתי צפויה.", "alert.unexpected.title": "אופס!", - "announcement.announcement": "הודעה", + "announcement.announcement": "הכרזה", "attachments_list.unprocessed": "(לא מעובד)", + "audio.hide": "השתק", "autosuggest_hashtag.per_week": "{count} לשבוע", "boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה", - "bundle_column_error.body": "משהו השתבש בעת הצגת הרכיב הזה.", + "bundle_column_error.copy_stacktrace": "העתקת הודעת התקלה", + "bundle_column_error.error.body": "הדף המבוקש אינו זמין. זה עשוי להיות באג בקוד או בעייה בתאימות הדפדפן.", + "bundle_column_error.error.title": "הו, לא!", + "bundle_column_error.network.body": "קרתה תקלה בעת טעינת העמוד. זו עשויה להיות תקלה זמנית בשרת או בחיבור האינטרנט שלך.", + "bundle_column_error.network.title": "שגיאת רשת", "bundle_column_error.retry": "לנסות שוב", - "bundle_column_error.title": "שגיאת רשת", + "bundle_column_error.return": "חזרה לדף הבית", + "bundle_column_error.routing.body": "העמוד המבוקש לא נמצא. האם ה־URL נכון?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "לסגור", "bundle_modal_error.message": "משהו השתבש בעת טעינת הרכיב הזה.", "bundle_modal_error.retry": "לנסות שוב", - "column.blocks": "חסימות", + "closed_registrations.other_server_instructions": "מכיוון שמסטודון הוא רשת מבוזרת, ניתן ליצור חשבון על שרת נוסף ועדיין לקיים קשר עם משתמשים בשרת זה.", + "closed_registrations_modal.description": "יצירת חשבון על שרת {domain} איננה אפשרית כרגע, אבל זכרו שאינכן זקוקות לחשבון על {domain} כדי להשתמש במסטודון.", + "closed_registrations_modal.find_another_server": "חיפוש שרת אחר", + "closed_registrations_modal.preamble": "מסטודון הוא רשת מבוזרת, כך שלא משנה היכן החשבון שלך, קיימת האפשרות לעקוב ולתקשר עם משתמשים בשרת הזה. אפשר אפילו להריץ שרת בעצמך!", + "closed_registrations_modal.title": "להרשם למסטודון", + "column.about": "אודות", + "column.blocks": "משתמשים חסומים", "column.bookmarks": "סימניות", - "column.community": "ציר זמן מקומי", + "column.community": "פיד שרת מקומי", "column.direct": "הודעות ישירות", - "column.directory": "גלוש פרופילים", - "column.domain_blocks": "Hidden domains", + "column.directory": "עיין בפרופילים", + "column.domain_blocks": "קהילות (שמות מתחם) מוסתרות", "column.favourites": "חיבובים", "column.follow_requests": "בקשות מעקב", - "column.home": "בבית", + "column.home": "פיד הבית", "column.lists": "רשימות", - "column.mutes": "השתקות", + "column.mutes": "משתמשים בהשתקה", "column.notifications": "התראות", - "column.pins": "Pinned toot", - "column.public": "בפרהסיה", - "column_back_button.label": "חזרה", - "column_header.hide_settings": "הסתרת העדפות", - "column_header.moveLeft_settings": "הזחת טור לשמאל", - "column_header.moveRight_settings": "הזחת טור לימין", - "column_header.pin": "קיבוע", + "column.pins": "פווסטים נעוצים", + "column.public": "פיד כללי (כל השרתים)", + "column_back_button.label": "בחזרה", + "column_header.hide_settings": "הסתרת הגדרות", + "column_header.moveLeft_settings": "הזזת טור לשמאל", + "column_header.moveRight_settings": "הזזת טור לימין", + "column_header.pin": "הצמדה", "column_header.show_settings": "הצגת העדפות", - "column_header.unpin": "שחרור קיבוע", + "column_header.unpin": "שחרור הצמדה", "column_subheading.settings": "אפשרויות", "community.column_settings.local_only": "מקומי בלבד", - "community.column_settings.media_only": "Media only", - "community.column_settings.remote_only": "מרחוק בלבד", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "community.column_settings.media_only": "מדיה בלבד", + "community.column_settings.remote_only": "מרוחק בלבד", + "compose.language.change": "שינוי שפת ההודעה", + "compose.language.search": "חיפוש שפות...", "compose_form.direct_message_warning_learn_more": "מידע נוסף", - "compose_form.encryption_warning": "חצרוצים במסטודון אינם מוצפנים מקצה לקצה. לעולם אל תחלקו מידע רגיש דרך מסטודון.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.encryption_warning": "הודעות במסטודון לא מוצפנות מקצה לקצה. אל תשתפו מידע רגיש במסטודון.", + "compose_form.hashtag_warning": "הודעה זו לא תרשם תחת תגיות הקבצה (האשטאגים) היות והנראות שלה היא 'לא רשום'. רק הודעות ציבוריות יכולות להימצא באמצעות תגיות הקבצה.", "compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.", "compose_form.lock_disclaimer.lock": "נעול", - "compose_form.placeholder": "מה עובר לך בראש?", + "compose_form.placeholder": "על מה את/ה חושב/ת ?", "compose_form.poll.add_option": "הוסיפו בחירה", "compose_form.poll.duration": "משך הסקר", "compose_form.poll.option_placeholder": "אפשרות מספר {number}", "compose_form.poll.remove_option": "הסר בחירה זו", "compose_form.poll.switch_to_multiple": "אפשרו בחירה מרובה בסקר", "compose_form.poll.switch_to_single": "אפשרו בחירה בודדת בסקר", - "compose_form.publish": "ללחוש", + "compose_form.publish": "פרסום", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "שמירת שינויים", "compose_form.sensitive.hide": "{count, plural, one {סימון מידע כרגיש} other {סימון מידע כרגיש}}", "compose_form.sensitive.marked": "{count, plural, one {מידע מסומן כרגיש} other {מידע מסומן כרגיש}}", "compose_form.sensitive.unmarked": "{count, plural, one {מידע לא מסומן כרגיש} other {מידע לא מסומן כרגיש}}", - "compose_form.spoiler.marked": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "Text is not hidden", - "compose_form.spoiler_placeholder": "אזהרת תוכן", + "compose_form.spoiler.marked": "הסר אזהרת תוכן", + "compose_form.spoiler.unmarked": "הוסף אזהרת תוכן", + "compose_form.spoiler_placeholder": "כתוב את האזהרה שלך כאן", "confirmation_modal.cancel": "ביטול", "confirmations.block.block_and_report": "לחסום ולדווח", "confirmations.block.confirm": "לחסום", - "confirmations.block.message": "לחסום את {name}?", + "confirmations.block.message": "האם את/ה בטוח/ה שברצונך למחוק את \"{name}\"?", + "confirmations.cancel_follow_request.confirm": "ויתור על בקשה", + "confirmations.cancel_follow_request.message": "האם באמת לוותר על בקשת המעקב אחרי {name}?", "confirmations.delete.confirm": "למחוק", - "confirmations.delete.message": "למחוק את ההודעה?", + "confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?", "confirmations.delete_list.confirm": "למחוק", "confirmations.delete_list.message": "האם אתם בטוחים שאתם רוצים למחוק את הרשימה לצמיתות?", "confirmations.discard_edit_media.confirm": "השלך", "confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?", - "confirmations.domain_block.confirm": "הסתר קהילה שלמה", - "confirmations.domain_block.message": "באמת באמת לחסום את כל קהילת {domain}? ברב המקרים השתקות נבחרות של מספר משתמשים מסויימים צריכה להספיק.", + "confirmations.domain_block.confirm": "חסמו לגמרי את שם המתחם (דומיין)", + "confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו", "confirmations.logout.confirm": "להתנתק", "confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?", "confirmations.mute.confirm": "להשתיק", - "confirmations.mute.explanation": "זה יסתיר חצרוצים שלהם וחצרוצים המזכירים אותם, אבל עדיין יתיר להם לראות פוסטים שלך ולעקוב אחריך.", - "confirmations.mute.message": "להשתיק את {name}?", - "confirmations.redraft.confirm": "מחק וערוך מחדש", - "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.", - "confirmations.reply.confirm": "הגב", - "confirmations.reply.message": "הגבה עכשיו ידרוס את ההודעה שאתם כותבים כעת. האם אתם בטוחים שברצונכם להמשיך?", - "confirmations.unfollow.confirm": "להפסיק מעקב", + "confirmations.mute.explanation": "זה יסתיר הודעות שלהם והודעות שמאזכרות אותם, אבל עדיין יתיר להם לראות הודעות שלך ולעקוב אחריך.", + "confirmations.mute.message": "בטוח/ה שברצונך להשתיק את {name}?", + "confirmations.redraft.confirm": "מחיקה ועריכה מחדש", + "confirmations.redraft.message": "בטוחה שאת רוצה למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.", + "confirmations.reply.confirm": "תגובה", + "confirmations.reply.message": "תגובה עכשיו תדרוס את ההודעה שכבר התחלתים לכתוב. האם אתם בטוחים שברצונכם להמשיך?", + "confirmations.unfollow.confirm": "הפסקת מעקב", "confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?", "conversation.delete": "מחיקת שיחה", "conversation.mark_as_read": "סמן כנקרא", "conversation.open": "צפו בשיחה", "conversation.with": "עם {names}", + "copypaste.copied": "הועתק", + "copypaste.copy": "העתקה", "directory.federated": "מהפדרציה הידועה", "directory.local": "מ- {domain} בלבד", "directory.new_arrivals": "חדשים כאן", "directory.recently_active": "פעילים לאחרונה", - "embed.instructions": "ניתן להטמיע את ההודעה באתרך ע\"י העתקת הקוד שלהלן.", + "disabled_account_banner.account_settings": "הגדרות חשבון", + "disabled_account_banner.text": "חשבונך {disabledAccount} אינו פעיל כרגע.", + "dismissable_banner.community_timeline": "אלו הם ההודעות הציבוריות האחרונות מהמשתמשים על שרת {domain}.", + "dismissable_banner.dismiss": "בטל", + "dismissable_banner.explore_links": "אלו סיפורי החדשות האחרונים שמדוברים על ידי משתמשים בשרת זה ואחרים ברשת המבוזרת כרגע.", + "dismissable_banner.explore_statuses": "ההודעות האלו, משרת זה ואחרים ברשת המבוזרת, כרגע צוברות חשיפה.", + "dismissable_banner.explore_tags": "התגיות האלו, משרת זה ואחרים ברשת המבוזרת, כרגע צוברות חשיפה.", + "dismissable_banner.public_timeline": "אלו הם ההודעות הציבוריות האחרונות מהמשתמשים משרת זה ואחרים ברשת המבוזרת ששרת זה יודע עליהן.", + "embed.instructions": "ניתן להטמיע את ההודעה הזו באתרך ע\"י העתקת הקוד שלהלן.", "embed.preview": "דוגמא כיצד זה יראה:", "emoji_button.activity": "פעילות", - "emoji_button.clear": "Clear", - "emoji_button.custom": "מיוחדים", + "emoji_button.clear": "ניקוי", + "emoji_button.custom": "בהתאמה אישית", "emoji_button.flags": "דגלים", "emoji_button.food": "אוכל ושתיה", "emoji_button.label": "הוספת אמוג'י", "emoji_button.nature": "טבע", - "emoji_button.not_found": "רגישון לא נמצא!! (╯°□°)╯︵ ┻━┻", - "emoji_button.objects": "חפצים", + "emoji_button.not_found": "לא נמצאו סמלונים מתאימים", + "emoji_button.objects": "אובייקטים", "emoji_button.people": "אנשים", "emoji_button.recent": "בשימוש תדיר", "emoji_button.search": "חיפוש...", @@ -164,22 +207,22 @@ "emoji_button.symbols": "סמלים", "emoji_button.travel": "טיולים ואתרים", "empty_column.account_suspended": "חשבון מושהה", - "empty_column.account_timeline": "No toots here!", + "empty_column.account_timeline": "אין עדיין אף הודעה!", "empty_column.account_unavailable": "פרופיל לא זמין", "empty_column.blocks": "עדיין לא חסמתם משתמשים אחרים.", - "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", - "empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!", + "empty_column.bookmarked_statuses": "אין עדיין הודעות שחיבבת. כשתחבב את הראשונה, היא תופיע כאן.", + "empty_column.community": "פיד השרת המקומי ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!", "empty_column.direct": "אין לך שום הודעות פרטיות עדיין. כשתשלחו או תקבלו אחת, היא תופיע כאן.", - "empty_column.domain_blocks": "There are no hidden domains yet.", + "empty_column.domain_blocks": "אין עדיין קהילות מוסתרות.", "empty_column.explore_statuses": "אין נושאים חמים כרגע. אולי אחר כך!", - "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", - "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.", + "empty_column.favourited_statuses": "אין עדיין הודעות שחיבבת. כשתחבב את הראשונה, היא תופיע כאן.", + "empty_column.favourites": "עוד לא חיבבו את ההודעה הזו. כאשר זה יקרה, החיבובים יופיעו כאן.", "empty_column.follow_recommendations": "נראה שלא ניתן לייצר המלצות עבורך. נסה/י להשתמש בחיפוש כדי למצוא אנשים מוכרים או לבדוק את הנושאים החמים.", "empty_column.follow_requests": "אין לך שום בקשות מעקב עדיין. לכשיתקבלו כאלה, הן תופענה כאן.", "empty_column.hashtag": "אין כלום בהאשתג הזה עדיין.", - "empty_column.home": "אף אחד לא במעקב עדיין. אפשר לבקר ב{public} או להשתמש בחיפוש כדי להתחיל ולהכיר חצוצרנים אחרים. {suggestions}", + "empty_column.home": "פיד הבית ריק ! אפשר לבקר ב{public} או להשתמש בחיפוש כדי להתחיל ולהכיר משתמשים/ות אחרים/ות. {suggestions}", "empty_column.home.suggestions": "ראה/י כמה הצעות", - "empty_column.list": "אין עדיין מאום ברשימה.", + "empty_column.list": "אין עדיין פריטים ברשימה. כאשר חברים ברשימה הזאת יפרסמו הודעות חדשות, הן יופיעו פה.", "empty_column.lists": "אין לך שום רשימות עדיין. לכשיהיו, הן תופענה כאן.", "empty_column.mutes": "עוד לא השתקת שום משתמש.", "empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.", @@ -194,23 +237,39 @@ "explore.suggested_follows": "עבורך", "explore.title": "סיור", "explore.trending_links": "חדשות", - "explore.trending_statuses": "חצרוצים", + "explore.trending_statuses": "הודעות", "explore.trending_tags": "האשטאגים", + "filter_modal.added.context_mismatch_explanation": "קטגוריית הסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.", + "filter_modal.added.context_mismatch_title": "אין התאמה להקשר!", + "filter_modal.added.expired_explanation": "פג תוקפה של קטגוריית הסינון הזו, יש צורך לשנות את תאריך התפוגה כדי שהסינון יוחל.", + "filter_modal.added.expired_title": "פג תוקף הפילטר!", + "filter_modal.added.review_and_configure": "לסקירה והתאמה מתקדמת של קטגוריית הסינון הזו, לכו ל{settings_link}.", + "filter_modal.added.review_and_configure_title": "אפשרויות סינון", + "filter_modal.added.settings_link": "דף הגדרות", + "filter_modal.added.short_explanation": "ההודעה הזו הוספה לקטגוריית הסינון הזו: {title}.", + "filter_modal.added.title": "הפילטר הוסף!", + "filter_modal.select_filter.context_mismatch": "לא חל בהקשר זה", + "filter_modal.select_filter.expired": "פג התוקף", + "filter_modal.select_filter.prompt_new": "קטגוריה חדשה {name}", + "filter_modal.select_filter.search": "חיפוש או יצירה", + "filter_modal.select_filter.subtitle": "שימוש בקטגורייה קיימת או יצירת אחת חדשה", + "filter_modal.select_filter.title": "סינון ההודעה הזו", + "filter_modal.title.status": "סנן הודעה", "follow_recommendations.done": "בוצע", - "follow_recommendations.heading": "עקב/י אחרי אנשים שתרצה/י לראות את חצרוציהם! הנה כמה הצעות.", - "follow_recommendations.lead": "חצרוצים מאנשים במעקב יופיעו בסדר כרונולוגי בפיד הבית. אל תחששו מטעויות, אפשר להסיר מעקב באותה הקלות ובכל זמן!", - "follow_request.authorize": "קבלה", + "follow_recommendations.heading": "עקב/י אחרי אנשים שתרצה/י לראות את הודעותיהם! הנה כמה הצעות.", + "follow_recommendations.lead": "הודעות מאנשים במעקב יופיעו בסדר כרונולוגי בפיד הבית. אל תחששו מטעויות, אפשר להסיר מעקב באותה הקלות ובכל זמן!", + "follow_request.authorize": "הרשאה", "follow_request.reject": "דחיה", "follow_requests.unlocked_explanation": "למרות שחשבונך אינו נעול, צוות {domain} חושב שאולי כדאי לוודא את בקשות המעקב האלה ידנית.", + "footer.about": "אודות", + "footer.directory": "מדריך פרופילים", + "footer.get_app": "להתקנת היישומון", + "footer.invite": "להזמין אנשים", + "footer.keyboard_shortcuts": "קיצורי מקלדת", + "footer.privacy_policy": "מדיניות פרטיות", + "footer.source_code": "צפיה בקוד המקור", "generic.saved": "נשמר", - "getting_started.developers": "מפתחות", - "getting_started.directory": "ספריית פרופילים", - "getting_started.documentation": "תיעוד", "getting_started.heading": "בואו נתחיל", - "getting_started.invite": "להזמין אנשים", - "getting_started.open_source_notice": "מסטודון היא תוכנה חופשית (בקוד פתוח). ניתן לתרום או לדווח על בעיות בגיטהאב: {github}.", - "getting_started.security": "Security", - "getting_started.terms": "תנאי שימוש", "hashtag.column_header.tag_mode.all": "ו- {additional}", "hashtag.column_header.tag_mode.any": "או {additional}", "hashtag.column_header.tag_mode.none": "ללא {additional}", @@ -218,13 +277,27 @@ "hashtag.column_settings.select.placeholder": "הזן תגי הקבצה…", "hashtag.column_settings.tag_mode.all": "כל אלה", "hashtag.column_settings.tag_mode.any": "כל אלה", - "hashtag.column_settings.tag_mode.none": "אפאחד מאלה", - "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.column_settings.tag_mode.none": "אף אחד מאלה", + "hashtag.column_settings.tag_toggle": "כלול תגיות נוספות בטור זה", + "hashtag.follow": "מעקב אחר תגית", + "hashtag.unfollow": "ביטול מעקב אחר תגית", "home.column_settings.basic": "למתחילים", "home.column_settings.show_reblogs": "הצגת הדהודים", "home.column_settings.show_replies": "הצגת תגובות", "home.hide_announcements": "הסתר הכרזות", "home.show_announcements": "הצג הכרזות", + "interaction_modal.description.favourite": "עם חשבון מסטודון, ניתן לחבב את ההודעה כדי לומר למחבר/ת שהערכת את תוכנה או כדי לשמור אותה לקריאה בעתיד.", + "interaction_modal.description.follow": "עם חשבון מסטודון, ניתן לעקוב אחרי {name} כדי לקבל את הםוסטים שלו/ה בפיד הבית.", + "interaction_modal.description.reblog": "עם חשבון מסטודון, ניתן להדהד את ההודעה ולשתף עם עוקבים.", + "interaction_modal.description.reply": "עם חשבון מסטודון, ניתן לענות להודעה.", + "interaction_modal.on_another_server": "על שרת אחר", + "interaction_modal.on_this_server": "על שרת זה", + "interaction_modal.other_server_instructions": "ניתן להעתיק ולהדביק קישור זה לתוך שדה החיפוש באפליקציית מסטודון שבשימוש אצלך או בממשק הדפדפן של שרת המסטודון.", + "interaction_modal.preamble": "כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה.", + "interaction_modal.title.favourite": "חיבוב ההודעה של {name}", + "interaction_modal.title.follow": "לעקוב אחרי {name}", + "interaction_modal.title.reblog": "להדהד את ההודעה של {name}", + "interaction_modal.title.reply": "תשובה להודעה של {name}", "intervals.full.days": "{number, plural, one {# יום} other {# ימים}}", "intervals.full.hours": "{number, plural, one {# שעה} other {# שעות}}", "intervals.full.minutes": "{number, plural, one {# דקה} other {# דקות}}", @@ -236,39 +309,39 @@ "keyboard_shortcuts.description": "תיאור", "keyboard_shortcuts.direct": "לפתיחת טור הודעות ישירות", "keyboard_shortcuts.down": "לנוע במורד הרשימה", - "keyboard_shortcuts.enter": "פתח חצרוץ", + "keyboard_shortcuts.enter": "פתח הודעה", "keyboard_shortcuts.favourite": "לחבב", "keyboard_shortcuts.favourites": "פתיחת רשימת מועדפים", "keyboard_shortcuts.federated": "פתיחת ציר זמן בין-קהילתי", - "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.heading": "מקשי קיצור במקלדת", "keyboard_shortcuts.home": "פתיחת ציר זמן אישי", "keyboard_shortcuts.hotkey": "מקש קיצור", - "keyboard_shortcuts.legend": "להציג את הפירוש", + "keyboard_shortcuts.legend": "הצגת מקרא", "keyboard_shortcuts.local": "פתיחת ציר זמן קהילתי", "keyboard_shortcuts.mention": "לאזכר את המחבר(ת)", "keyboard_shortcuts.muted": "פתיחת רשימת משתמשים מושתקים", "keyboard_shortcuts.my_profile": "פתיחת הפרופיל שלך", "keyboard_shortcuts.notifications": "פתיחת טור התראות", "keyboard_shortcuts.open_media": "פתיחת מדיה", - "keyboard_shortcuts.pinned": "פתיחת רשימת חצרותים מוצמדים", + "keyboard_shortcuts.pinned": "פתיחת הודעה נעוצות", "keyboard_shortcuts.profile": "פתח את פרופיל המשתמש", - "keyboard_shortcuts.reply": "לענות", + "keyboard_shortcuts.reply": "תגובה להודעה", "keyboard_shortcuts.requests": "פתיחת רשימת בקשות מעקב", "keyboard_shortcuts.search": "להתמקד בחלון החיפוש", "keyboard_shortcuts.spoilers": "הצגת/הסתרת שדה אזהרת תוכן (CW)", - "keyboard_shortcuts.start": "to open \"get started\" column", + "keyboard_shortcuts.start": "לפתוח את הטור \"בואו נתחיל\"", "keyboard_shortcuts.toggle_hidden": "הצגת/הסתרת טקסט מוסתר מאחורי אזהרת תוכן", "keyboard_shortcuts.toggle_sensitivity": "הצגת/הסתרת מדיה", - "keyboard_shortcuts.toot": "להתחיל חיצרוץ חדש", + "keyboard_shortcuts.toot": "להתחיל הודעה חדשה", "keyboard_shortcuts.unfocus": "לצאת מתיבת חיבור/חיפוש", "keyboard_shortcuts.up": "לנוע במעלה הרשימה", "lightbox.close": "סגירה", "lightbox.compress": "דחיסת קופסת צפייה בתמונה", "lightbox.expand": "הרחבת קופסת צפייה בתמונה", - "lightbox.next": "הלאה", + "lightbox.next": "הבא", "lightbox.previous": "הקודם", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "הצג חשבון בכל זאת", + "limited_account_hint.title": "פרופיל המשתמש הזה הוסתר על ידי המנחים של {domain}.", "lists.account.add": "הוסף לרשימה", "lists.account.remove": "הסר מרשימה", "lists.delete": "מחיקת רשימה", @@ -284,48 +357,51 @@ "lists.subheading": "הרשימות שלך", "load_pending": "{count, plural, one {# פריט חדש} other {# פריטים חדשים}}", "loading_indicator.label": "טוען...", - "media_gallery.toggle_visible": "נראה\\בלתי נראה", + "media_gallery.toggle_visible": "{number, plural, one {להסתיר תמונה} two {להסתיר תמונותיים} many {להסתיר תמונות} other {להסתיר תמונות}}", "missing_indicator.label": "לא נמצא", "missing_indicator.sublabel": "לא ניתן היה למצוא את המשאב", + "moved_to_account_banner.text": "חשבונך {disabledAccount} אינו פעיל כרגע עקב מעבר ל{movedToAccount}.", "mute_modal.duration": "משך הזמן", - "mute_modal.hide_notifications": "להסתיר הודעות מחשבון זה?", + "mute_modal.hide_notifications": "להסתיר התראות מחשבון זה?", "mute_modal.indefinite": "ללא תאריך סיום", - "navigation_bar.apps": "יישומונים לנייד", - "navigation_bar.blocks": "חסימות", + "navigation_bar.about": "אודות", + "navigation_bar.blocks": "משתמשים חסומים", "navigation_bar.bookmarks": "סימניות", - "navigation_bar.community_timeline": "ציר זמן מקומי", - "navigation_bar.compose": "Compose new toot", + "navigation_bar.community_timeline": "פיד שרת מקומי", + "navigation_bar.compose": "צור הודעה חדשה", "navigation_bar.direct": "הודעות ישירות", "navigation_bar.discover": "גלה", - "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.domain_blocks": "קהילות (שמות מתחם) חסומות", "navigation_bar.edit_profile": "עריכת פרופיל", - "navigation_bar.explore": "חקור", + "navigation_bar.explore": "סיור", "navigation_bar.favourites": "חיבובים", "navigation_bar.filters": "מילים מושתקות", "navigation_bar.follow_requests": "בקשות מעקב", "navigation_bar.follows_and_followers": "נעקבים ועוקבים", - "navigation_bar.info": "מידע נוסף", - "navigation_bar.keyboard_shortcuts": "קיצורי מקלדת", "navigation_bar.lists": "רשימות", - "navigation_bar.logout": "יציאה", - "navigation_bar.mutes": "השתקות", + "navigation_bar.logout": "התנתקות", + "navigation_bar.mutes": "משתמשים בהשתקה", "navigation_bar.personal": "אישי", - "navigation_bar.pins": "חיצרוצים מקובעים", + "navigation_bar.pins": "הודעות נעוצות", "navigation_bar.preferences": "העדפות", - "navigation_bar.public_timeline": "ציר זמן בין-קהילתי", - "navigation_bar.security": "בטיחות", + "navigation_bar.public_timeline": "פיד כללי (כל השרתים)", + "navigation_bar.search": "חיפוש", + "navigation_bar.security": "אבטחה", + "not_signed_in_indicator.not_signed_in": "יש להיות מאומת כדי לגשת למשאב זה.", + "notification.admin.report": "{name} דיווח.ה על {target}", "notification.admin.sign_up": "{name} נרשמו", - "notification.favourite": "חצרוצך חובב על ידי {name}", + "notification.favourite": "הודעתך חובבה על ידי {name}", "notification.follow": "{name} במעקב אחרייך", "notification.follow_request": "{name} ביקשו לעקוב אחריך", "notification.mention": "אוזכרת על ידי {name}", "notification.own_poll": "הסקר שלך הסתיים", "notification.poll": "סקר שהצבעת בו הסתיים", - "notification.reblog": "חצרוצך הודהד על ידי {name}", + "notification.reblog": "הודעתך הודהדה על ידי {name}", "notification.status": "{name} הרגע פרסמו", - "notification.update": "{name} ערכו פוסט", + "notification.update": "{name} ערכו הודעה", "notifications.clear": "הסרת התראות", - "notifications.clear_confirmation": "להסיר את כל ההתראות? בטוח?", + "notifications.clear_confirmation": "להסיר את כל ההתראות לצמיתות ? ", + "notifications.column_settings.admin.report": "דו\"חות חדשים", "notifications.column_settings.admin.sign_up": "הרשמות חדשות:", "notifications.column_settings.alert": "התראות לשולחן העבודה", "notifications.column_settings.favourite": "מחובבים:", @@ -336,11 +412,11 @@ "notifications.column_settings.follow_request": "בקשות מעקב חדשות:", "notifications.column_settings.mention": "פניות:", "notifications.column_settings.poll": "תוצאות סקר:", - "notifications.column_settings.push": "הודעות בדחיפה", + "notifications.column_settings.push": "התראות בדחיפה", "notifications.column_settings.reblog": "הדהודים:", "notifications.column_settings.show": "הצגה בטור", "notifications.column_settings.sound": "שמע מופעל", - "notifications.column_settings.status": "New toots:", + "notifications.column_settings.status": "הודעות חדשות:", "notifications.column_settings.unread_notifications.category": "התראות שלא נקראו", "notifications.column_settings.unread_notifications.highlight": "הבלט התראות שלא נקראו", "notifications.column_settings.update": "שינויים:", @@ -365,20 +441,22 @@ "poll.refresh": "רענון", "poll.total_people": "{count, plural, one {# איש/אישה} other {# אנשים}}", "poll.total_votes": "{count, plural, one {# קול} other {# קולות}}", - "poll.vote": "קול", + "poll.vote": "הצבעה", "poll.voted": "הצבעת לתשובה זו", "poll.votes": "{votes, plural, one {# קול} other {# קולות}}", "poll_button.add_poll": "הוספת סקר", "poll_button.remove_poll": "הסרת סקר", "privacy.change": "שינוי פרטיות ההודעה", - "privacy.direct.long": "הצג רק למי שהודעה זו פונה אליו", - "privacy.direct.short": "אנשים מוזכרים בלבד", + "privacy.direct.long": "רק למשתמשים מאוזכרים (mentioned)", + "privacy.direct.short": "למאוזכרים בלבד", "privacy.private.long": "הצג לעוקבים בלבד", - "privacy.private.short": "עוקבים בלבד", + "privacy.private.short": "לעוקבים בלבד", "privacy.public.long": "גלוי לכל", "privacy.public.short": "פומבי", "privacy.unlisted.long": "גלוי לכל, אבל מוסתר מאמצעי גילוי", - "privacy.unlisted.short": "לא לפיד הכללי", + "privacy.unlisted.short": "לא רשום (לא לפיד הכללי)", + "privacy_policy.last_updated": "עודכן לאחרונה {date}", + "privacy_policy.title": "מדיניות פרטיות", "refresh": "רענון", "regeneration_indicator.label": "טוען…", "regeneration_indicator.sublabel": "פיד הבית שלך בהכנה!", @@ -395,20 +473,20 @@ "relative_time.today": "היום", "reply_indicator.cancel": "ביטול", "report.block": "לחסום", - "report.block_explanation": "לא ניתן יהיה לראות את חצרוציהם. הם לא יוכלו לראות את חצרוציך או לעקוב אחריך. הם יוכלו לדעת שהם חסומים.", + "report.block_explanation": "לא ניתן יהיה לראות את ההודעות שלהן. הן לא יוכלו לראות את ההודעות שלך או לעקוב אחריך. הם יוכלו לדעת שהם חסומים.", "report.categories.other": "אחר", "report.categories.spam": "ספאם", "report.categories.violation": "התוכן מפר אחד או יותר מחוקי השרת", "report.category.subtitle": "בחר/י את המתאים ביותר", "report.category.title": "ספר/י לנו מה קורה עם ה-{type} הזה", "report.category.title_account": "פרופיל", - "report.category.title_status": "חצרוץ", + "report.category.title_status": "הודעה", "report.close": "בוצע", "report.comment.title": "האם יש דבר נוסף שלדעתך חשוב שנדע?", "report.forward": "קדם ל-{target}", "report.forward_hint": "חשבון זה הוא משרת אחר. האם לשלוח בנוסף עותק אנונימי לשם?", "report.mute": "להשתיק", - "report.mute_explanation": "לא ניתן יהיה לראות את חצרוציהם. הם עדיין יוכלו לעקוב אחריך ולראות את חצרוציך ולא ידעו שהם מושתקים.", + "report.mute_explanation": "לא ניתן יהיה לראות את ההודעות. הם עדיין יוכלו לעקוב אחריך ולראות את ההודעות שלך ולא ידעו שהם מושתקים.", "report.next": "הבא", "report.placeholder": "הערות נוספות", "report.reasons.dislike": "אני לא אוהב את זה", @@ -422,7 +500,7 @@ "report.rules.subtitle": "בחר/י את כל המתאימים", "report.rules.title": "אילו חוקים מופרים?", "report.statuses.subtitle": "בחר/י את כל המתאימים", - "report.statuses.title": "האם ישנם חצרוצים התומכים בדיווח זה?", + "report.statuses.title": "האם ישנן הודעות התומכות בדיווח זה?", "report.submit": "שליחה", "report.target": "דיווח על {target}", "report.thanks.take_action": "הנה כמה אפשרויות לשליטה בתצוגת מסטודון:", @@ -431,27 +509,43 @@ "report.thanks.title_actionable": "תודה על הדיווח, נבדוק את העניין.", "report.unfollow": "הפסיקו לעקוב אחרי @{name}", "report.unfollow_explanation": "אתם עוקבים אחרי החשבון הזה. כדי להפסיק לראות את הפרסומים שלו בפיד הבית שלכם, הפסיקו לעקוב אחריהם.", + "report_notification.attached_statuses": "{count, plural, one {הודעה מצורפת} two {הודעותיים מצורפות} many {{count} הודעות מצורפות} other {{count} הודעות מצורפות}}", + "report_notification.categories.other": "שונות", + "report_notification.categories.spam": "ספאם (דואר זבל)", + "report_notification.categories.violation": "הפרת כלל", + "report_notification.open": "פתח דו\"ח", "search.placeholder": "חיפוש", + "search.search_or_paste": "חפש או הזן קישור", "search_popout.search_format": "מבנה חיפוש מתקדם", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "האשתג", - "search_popout.tips.status": "status", + "search_popout.tips.full_text": "טקסט פשוט מחזיר פוסטים שכתבת, חיבבת, הידהדת או שאוזכרת בהם, כמו גם שמות משתמשים, שמות להצגה ותגיות מתאימים.", + "search_popout.tips.hashtag": "תגית", + "search_popout.tips.status": "הודעה", "search_popout.tips.text": "טקסט פשוט מחזיר כינויים, שמות משתמש והאשתגים", "search_popout.tips.user": "משתמש(ת)", "search_results.accounts": "אנשים", "search_results.all": "כל התוצאות", - "search_results.hashtags": "האשתגיות", + "search_results.hashtags": "תגיות", "search_results.nothing_found": "לא נמצא דבר עבור תנאי חיפוש אלה", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.statuses": "הודעות", + "search_results.statuses_fts_disabled": "חיפוש הודעות לפי תוכן לא מאופשר בשרת מסטודון זה.", + "search_results.title": "חפש את: {q}", "search_results.total": "{count, number} {count, plural, one {תוצאה} other {תוצאות}}", + "server_banner.about_active_users": "משתמשים פעילים בשרת ב־30 הימים האחרונים (משתמשים פעילים חודשיים)", + "server_banner.active_users": "משתמשים פעילים", + "server_banner.administered_by": "מנוהל ע\"י:", + "server_banner.introduction": "{domain} הוא שרת ברשת המבוזרת {mastodon}.", + "server_banner.learn_more": "מידע נוסף", + "server_banner.server_stats": "סטטיסטיקות שרת:", + "sign_in_banner.create_account": "יצירת חשבון", + "sign_in_banner.sign_in": "התחברות", + "sign_in_banner.text": "יש להתחבר כדי לעקוב אחרי משתמשים או תגיות, לחבב, לשתף ולענות להודעות, או לנהל תקשורת מהחשבון שלך על שרת אחר.", "status.admin_account": "פתח/י ממשק ניהול עבור @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "חסימת @{name}", "status.bookmark": "סימניה", "status.cancel_reblog_private": "הסרת הדהוד", "status.cannot_reblog": "לא ניתן להדהד הודעה זו", - "status.copy": "Copy link to status", + "status.copy": "העתק/י קישור להודעה זו", "status.delete": "מחיקה", "status.detailed_status": "תצוגת שיחה מפורטת", "status.direct": "הודעה ישירה ל@{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "נערך {count, plural, one {פעם {count}} other {{count} פעמים}}", "status.embed": "הטמעה", "status.favourite": "חיבוב", + "status.filter": "סנן הודעה זו", "status.filtered": "סונן", + "status.hide": "הסתר הודעה", "status.history.created": "{name} יצר/ה {date}", "status.history.edited": "{name} ערך/ה {date}", "status.load_more": "עוד", @@ -469,36 +565,42 @@ "status.more": "עוד", "status.mute": "להשתיק את @{name}", "status.mute_conversation": "השתקת שיחה", - "status.open": "הרחבת הודעה", - "status.pin": "לקבע באודות", - "status.pinned": "Pinned toot", + "status.open": "הרחבת הודעה זו", + "status.pin": "הצמדה לפרופיל שלי", + "status.pinned": "הודעה נעוצה", "status.read_more": "לקרוא עוד", "status.reblog": "הדהוד", "status.reblog_private": "להדהד ברמת הנראות המקורית", - "status.reblogged_by": "הודהד על ידי {name}", - "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", + "status.reblogged_by": "{name} הידהד/ה:", + "status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.", "status.redraft": "מחיקה ועריכה מחדש", "status.remove_bookmark": "הסרת סימניה", + "status.replied_to": "הגב לחשבון {name}", "status.reply": "תגובה", - "status.replyAll": "תגובה לכולם", + "status.replyAll": "תגובה לפתיל", "status.report": "דיווח על @{name}", "status.sensitive_warning": "תוכן רגיש", "status.share": "שיתוף", + "status.show_filter_reason": "הראה בכל זאת", "status.show_less": "הראה פחות", "status.show_less_all": "להציג פחות מהכל", "status.show_more": "הראה יותר", "status.show_more_all": "להציג יותר מהכל", - "status.show_thread": "להציג סיב", + "status.show_original": "הצגת מקור", + "status.translate": "לתרגם", + "status.translated_from_with": "לתרגם משפה {lang} באמצעות {provider}", "status.uncached_media_warning": "לא זמין", "status.unmute_conversation": "הסרת השתקת שיחה", "status.unpin": "לשחרר מקיבוע באודות", + "subscribed_languages.lead": "רק הודעות בשפות הנבחרות יופיעו בפיד הבית וברשימות שלך אחרי השינוי. נקו את כל הבחירות כדי לראות את כל השפות.", + "subscribed_languages.save": "שמירת שינויים", + "subscribed_languages.target": "שינוי רישום שפה עבור {target}", "suggestions.dismiss": "להתעלם מהצעה", "suggestions.header": "ייתכן שזה יעניין אותך…", - "tabs_bar.federated_timeline": "ציר זמן בין-קהילתי", - "tabs_bar.home": "בבית", - "tabs_bar.local_timeline": "ציר זמן מקומי", + "tabs_bar.federated_timeline": "פיד כללי (בין-קהילתי)", + "tabs_bar.home": "פיד הבית", + "tabs_bar.local_timeline": "פיד שרת מקומי", "tabs_bar.notifications": "התראות", - "tabs_bar.search": "חיפוש", "time_remaining.days": "נותרו {number, plural, one {# יום} other {# ימים}}", "time_remaining.hours": "נותרו {number, plural, one {# שעה} other {# שעות}}", "time_remaining.minutes": "נותרו {number, plural, one {# דקה} other {# דקות}}", @@ -507,8 +609,8 @@ "timeline_hint.remote_resource_not_displayed": "{resource} משרתים אחרים לא מוצגים.", "timeline_hint.resources.followers": "עוקבים", "timeline_hint.resources.follows": "נעקבים", - "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} אחד/ת מדבר/ת} other {{counter} אנשים מדברים}}", + "timeline_hint.resources.statuses": "הודעות ישנות יותר", + "trends.counter_by_accounts": "{count, plural, one {אדם {count}} other {{count} א.נשים}} {days, plural, one {מאז אתמול} two {ביומיים האחרונים} other {במשך {days} הימים האחרונים}}", "trends.trending_now": "נושאים חמים", "ui.beforeunload": "הטיוטא תאבד אם תעזבו את מסטודון.", "units.short.billion": "{count} מליארד", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "מכין OCR…", "upload_modal.preview_label": "תצוגה ({ratio})", "upload_progress.label": "עולה...", + "upload_progress.processing": "מעבד…", "video.close": "סגירת וידאו", "video.download": "הורדת קובץ", "video.exit_fullscreen": "יציאה ממסך מלא", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index b347784afedeeb..6879f7a0c2f57f 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "टिप्पणियाँ", "account.add_or_remove_from_list": "सूची में जोड़ें या हटाए", "account.badges.bot": "बॉट", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} के सारी चीज़े छुपाएं", "account.blocked": "ब्लॉक", "account.browse_more_on_origin_server": "मूल प्रोफ़ाइल पर अधिक ब्राउज़ करें", - "account.cancel_follow_request": "फ़ॉलो रिक्वेस्ट रद्द करें", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "प्रत्यक्ष संदेश @{name}", "account.disable_notifications": "@{name} पोस्ट के लिए मुझे सूचित मत करो", "account.domain_blocked": "छिपा हुआ डोमेन", "account.edit_profile": "प्रोफ़ाइल संपादित करें", "account.enable_notifications": "जब @{name} पोस्ट मौजूद हो सूचित करें", "account.endorse": "प्रोफ़ाइल पर दिखाए", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "फॉलो करें", "account.followers": "फॉलोवर", "account.followers.empty": "कोई भी इस यूज़र् को फ़ॉलो नहीं करता है", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} निम्नलिखित} other {{counter} निम्नलिखित}}", "account.follows.empty": "यह यूज़र् अभी तक किसी को फॉलो नहीं करता है।", "account.follows_you": "आपको फॉलो करता है", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name} के बूस्ट छुपाएं", - "account.joined": "शामिल हुये {date}", + "account.joined_short": "पुरा हुआ", + "account.languages": "Change subscribed languages", "account.link_verified_on": "इस लिंक का स्वामित्व {date} को चेक किया गया था", "account.locked_info": "यह खाता गोपनीयता स्थिति लॉक करने के लिए सेट है। मालिक मैन्युअल रूप से समीक्षा करता है कि कौन उनको फॉलो कर सकता है।", "account.media": "मीडिया", "account.mention": "उल्लेख @{name}", - "account.moved_to": "{name} स्थानांतरित हो गया:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "म्यूट @{name}", "account.mute_notifications": "@{name} के नोटिफिकेशन म्यूट करे", "account.muted": "म्यूट है", + "account.open_original_page": "Open original page", "account.posts": "टूट्स", "account.posts_with_replies": "टूट्स एवं जवाब", "account.report": "रिपोर्ट @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "उफ़!", "announcement.announcement": "घोषणा", "attachments_list.unprocessed": "(असंसाधित)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} हर सप्ताह", "boost_modal.combo": "अगली बार स्किप करने के लिए आप {combo} दबा सकते है", - "bundle_column_error.body": "इस कॉम्पोनेन्ट को लोड करते वक्त कुछ गलत हो गया", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "दुबारा कोशिश करें", - "bundle_column_error.title": "नेटवर्क त्रुटि", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "बंद", "bundle_modal_error.message": "इस कॉम्पोनेन्ट को लोड करते वक्त कुछ गलत हो गया", "bundle_modal_error.retry": "दुबारा कोशिश करें", + "closed_registrations.other_server_instructions": "जब से मास्टोडन विकेंद्रीकरण हुआ है, आप दुसरे सर्वर पर एक अकाउंट बना सकते हैं और अब भी इसके साथ उपयोग कर सकते हैं", + "closed_registrations_modal.description": "{domain} पर अकाउंट बनाना अभी संभव नहीं है, किन्तु कृपया ध्यान दें कि आपको मास्टोडन का प्रयोग करने के लिए {domain} पर एक अकाउंट का पूर्ण रूप से नहीं आवश्यकता हैं", + "closed_registrations_modal.find_another_server": "दूसरा सर्वर ढूंढें", + "closed_registrations_modal.preamble": "मास्टोडन विकेन्द्रित है, इसलिए कोई मतलब नहीं आप कहाँ अपना अकाउंट बना रहे हैं, आपको फॉलो करने के लिए सक्षम होना पड़ेगा और इस सर्वर पर किसी के साथ पूछना पड़ेगा I आप इसे खुद भी-चला सकते हैंI ", + "closed_registrations_modal.title": "मास्टोडन पर जुड़ा जा रहा", + "column.about": "About", "column.blocks": "ब्लॉक्ड यूज़र्स", "column.bookmarks": "पुस्तकचिह्न:", "column.community": "लोकल टाइम्लाइन", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "स्थानीय ही", "community.column_settings.media_only": "सिर्फ़ मीडिया", "community.column_settings.remote_only": "केवल सुदूर", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "भाषा बदलें", + "compose.language.search": "भाषाएँ खोजें...", "compose_form.direct_message_warning_learn_more": "और जानें", - "compose_form.encryption_warning": "मास्टोडॉन पर पोस्ट एन्ड-टू-एन्ड एन्क्रिप्टेड नहीं है", + "compose_form.encryption_warning": "मास्टोडॉन पर पोस्ट एन्ड-टू-एन्ड एन्क्रिप्टेड नहीं है। कोई भी व्यक्तिगत जानकारी मास्टोडॉन पर मत भेजें।", "compose_form.hashtag_warning": "यह टूट् किसी भी हैशटैग के तहत सूचीबद्ध नहीं होगा क्योंकि यह अनलिस्टेड है। हैशटैग द्वारा केवल सार्वजनिक टूट्स खोजे जा सकते हैं।", "compose_form.lock_disclaimer": "आपका खाता {locked} नहीं है। आपको केवल फॉलोवर्स को दिखाई दिए जाने वाले पोस्ट देखने के लिए कोई भी फॉलो कर सकता है।", "compose_form.lock_disclaimer.lock": "लॉक्ड", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "इस विकल्प को हटाएँ", "compose_form.poll.switch_to_multiple": "कई विकल्पों की अनुमति देने के लिए पोल बदलें", "compose_form.poll.switch_to_single": "एक ही विकल्प के लिए अनुमति देने के लिए पोल बदलें", - "compose_form.publish": "टूट्", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "परिवर्तनों को सहेजें", "compose_form.sensitive.hide": "मीडिया को संवेदनशील के रूप में चिह्नित करें", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "ब्लॉक एवं रिपोर्ट", "confirmations.block.confirm": "ब्लॉक", "confirmations.block.message": "क्या आप वाकई {name} को ब्लॉक करना चाहते हैं?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "मिटाए", "confirmations.delete.message": "क्या आप वाकई इस स्टेटस को हटाना चाहते हैं?", "confirmations.delete_list.confirm": "मिटाए", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "पढ़ा गया के रूप में चिह्नित करें", "conversation.open": "वार्तालाप देखें", "conversation.with": "{names} के साथ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "ज्ञात फेडीवर्स से", "directory.local": "केवल {domain} से", "directory.new_arrivals": "नए आगंतुक", "directory.recently_active": "हाल में ही सक्रिय", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "अपने वेबसाइट पर, निचे दिए कोड को कॉपी करके, इस स्टेटस को एम्बेड करें", "embed.preview": "यह ऐसा दिखेगा :", "emoji_button.activity": "गतिविधि", - "emoji_button.clear": "Clear", + "emoji_button.clear": "मिटा दें", "emoji_button.custom": "निजीकृत", "emoji_button.flags": "झंडे", "emoji_button.food": "भोजन एवं पेय", @@ -191,26 +234,42 @@ "errors.unexpected_crash.copy_stacktrace": "स्टैकट्रेस को क्लिपबोर्ड पर कॉपी करें", "errors.unexpected_crash.report_issue": "समस्या सूचित करें", "explore.search_results": "Search results", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "आपके लिए", "explore.title": "Explore", "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "अधिकार दें", "follow_request.reject": "अस्वीकार करें", "follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "डेवॅलपर्स", - "getting_started.directory": "प्रोफ़ाइल निर्देशिका", - "getting_started.documentation": "प्रलेखन", "getting_started.heading": "पहले कदम रखें", - "getting_started.invite": "दोस्तों को आमंत्रित करें", - "getting_started.open_source_notice": "मास्टोडॉन एक मुक्त स्रोत सॉफ्टवेयर है. आप गिटहब {github} पर इस सॉफ्टवेयर में योगदान या किसी भी समस्या को सूचित कर सकते है.", - "getting_started.security": "अकाउंट सेटिंग्स", - "getting_started.terms": "सेवा की शर्तें", "hashtag.column_header.tag_mode.all": "और {additional}", "hashtag.column_header.tag_mode.any": "या {additional}", "hashtag.column_header.tag_mode.none": "बिना {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "इनमें से कोई भी", "hashtag.column_settings.tag_mode.none": "इनमें से कोई भी नहीं", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "बुनियादी", "home.column_settings.show_reblogs": "बूस्ट दिखाए", "home.column_settings.show_replies": "जवाबों को दिखाए", "home.hide_announcements": "घोषणाएँ छिपाएँ", "home.show_announcements": "घोषणाएं दिखाएं", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "अगला", "lightbox.previous": "पिछला", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "सूची से निकालें", "lists.delete": "सूची हटाएँ", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "नहीं मिला", "missing_indicator.sublabel": "यह संसाधन नहीं मिल सका।", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "मोबाइल एप्लिकेशंस", + "navigation_bar.about": "About", "navigation_bar.blocks": "ब्लॉक्ड यूज़र्स", "navigation_bar.bookmarks": "पुस्तकचिह्न:", "navigation_bar.community_timeline": "लोकल टाइम्लाइन", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "अनुसरण करने के अनुरोध", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "इस सर्वर के बारे में", - "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "सूचियाँ", "navigation_bar.logout": "बाहर जाए", "navigation_bar.mutes": "Muted users", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "ढूंढें", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,23 +455,25 @@ "privacy.public.short": "सार्वजनिक", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "अनलिस्टेड", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "रीफ्रेश करें", "regeneration_indicator.label": "लोड हो रहा है...", "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", - "relative_time.full.just_now": "just now", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", - "relative_time.hours": "{number}h", + "relative_time.full.just_now": "अभी-अभी", + "relative_time.full.minutes": "{number, plural, one {# मिनट} other {# मिनट}} पहले", + "relative_time.full.seconds": "{number, plural, one {# सेकंड} other {# सेकंड}} पहले", + "relative_time.hours": "{number} घंटे", "relative_time.just_now": "अभी", - "relative_time.minutes": "{number}m", - "relative_time.seconds": "{number}s", - "relative_time.today": "today", + "relative_time.minutes": "{number} मिनट", + "relative_time.seconds": "{number} सेकंड", + "relative_time.today": "आज", "reply_indicator.cancel": "रद्द करें", "report.block": "Block", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", + "report.block_explanation": "आपको उनकी पोस्टें नहीं दिखेंगे। वे आपकी पोस्टें को देख नहीं पाएंगे और आपको फ़ॉलो नहीं कर पाएंगे। उन्हे पता लगेगा कि वे blocked हैं।", "report.categories.other": "Other", "report.categories.spam": "Spam", "report.categories.violation": "Content violates one or more server rules", @@ -411,9 +489,9 @@ "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", "report.next": "Next", "report.placeholder": "Type or paste additional comments", - "report.reasons.dislike": "I don't like it", + "report.reasons.dislike": "मुझे यह पसंद नहीं है", "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", + "report.reasons.other": "कुछ और है।", "report.reasons.other_description": "The issue does not fit into other categories", "report.reasons.spam": "It's spam", "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "खोजें", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "{name} का उत्तर दें", "status.reply": "जवाब", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "संवेदनशील विषय वस्तु", "status.share": "शेयर करें", + "status.show_filter_reason": "Show anyway", "status.show_less": "कम दिखाएँ", "status.show_less_all": "Show less for all", "status.show_more": "और दिखाएँ", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "{provider} का उपयोग करते हुये {lang} से अनुवादित किया गया", "status.uncached_media_warning": "अनुपलब्ध", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "फ़ेडरेटेड", "tabs_bar.home": "होम", "tabs_bar.local_timeline": "लोकल", "tabs_bar.notifications": "सूचनाएँ", - "tabs_bar.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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "अपलोडिंग...", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "फाइल डाउनलोड करें", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 4096c98d0197a8..83fe0b368d025d 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Bilješka", "account.add_or_remove_from_list": "Dodaj ili ukloni s liste", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Blokiraj domenu {domain}", "account.blocked": "Blokirano", "account.browse_more_on_origin_server": "Pogledajte više na izvornom profilu", - "account.cancel_follow_request": "Otkaži zahtjev za praćenje", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Pošalji poruku @{name}", "account.disable_notifications": "Nemoj me obavjestiti kada @{name} napravi objavu", "account.domain_blocked": "Domena je blokirana", "account.edit_profile": "Uredi profil", "account.enable_notifications": "Obavjesti me kada @{name} napravi objavu", "account.endorse": "Istakni na profilu", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Prati", "account.followers": "Pratitelji", "account.followers.empty": "Nitko još ne prati korisnika/cu.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} praćeni} few{{counter} praćena} other {{counter} praćenih}}", "account.follows.empty": "Korisnik/ca još ne prati nikoga.", "account.follows_you": "Prati te", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Sakrij boostove od @{name}", - "account.joined": "Pridružio se {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Vlasništvo ove poveznice provjereno je {date}", "account.locked_info": "Status privatnosti ovog računa postavljen je na zaključano. Vlasnik ručno pregledava tko ih može pratiti.", "account.media": "Medijski sadržaj", "account.mention": "Spomeni @{name}", - "account.moved_to": "Račun {name} je premješten na:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Utišaj @{name}", "account.mute_notifications": "Utišaj obavijesti od @{name}", "account.muted": "Utišano", + "account.open_original_page": "Open original page", "account.posts": "Tootovi", "account.posts_with_replies": "Tootovi i odgovori", "account.report": "Prijavi @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Ups!", "announcement.announcement": "Najava", "attachments_list.unprocessed": "(neobrađeno)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} tjedno", "boost_modal.combo": "Možete pritisnuti {combo} kako biste preskočili ovo sljedeći put", - "bundle_column_error.body": "Nešto je pošlo po zlu tijekom učitavanja ove komponente.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Pokušajte ponovno", - "bundle_column_error.title": "Greška mreže", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zatvori", "bundle_modal_error.message": "Nešto je pošlo po zlu tijekom učitavanja ove komponente.", "bundle_modal_error.retry": "Pokušajte ponovno", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blokirani korisnici", "column.bookmarks": "Knjižne oznake", "column.community": "Lokalna vremenska crta", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Ukloni ovu opciju", "compose_form.poll.switch_to_multiple": "Omogući višestruki odabir opcija ankete", "compose_form.poll.switch_to_single": "Omogući odabir samo jedne opcije ankete", - "compose_form.publish": "Tootni", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "Označi medijski sadržaj kao osjetljiv", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blokiraj i prijavi", "confirmations.block.confirm": "Blokiraj", "confirmations.block.message": "Sigurno želite blokirati {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Obriši", "confirmations.delete.message": "Stvarno želite obrisati ovaj toot?", "confirmations.delete_list.confirm": "Obriši", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Označi kao pročitano", "conversation.open": "Prikaži razgovor", "conversation.with": "S {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Iz znanog fediversa", "directory.local": "Samo iz {domain}", "directory.new_arrivals": "Novi korisnici", "directory.recently_active": "Nedavno aktivni", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Evo kako će izgledati:", "emoji_button.activity": "Aktivnost", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Učinjeno", "follow_recommendations.heading": "Zaprati osobe čije objave želiš vidjeti! Evo nekoliko prijedloga.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Autoriziraj", "follow_request.reject": "Odbij", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Spremljeno", - "getting_started.developers": "Razvijatelji", - "getting_started.directory": "Direktorij profila", - "getting_started.documentation": "Dokumentacija", "getting_started.heading": "Počnimo", - "getting_started.invite": "Pozovi ljude", - "getting_started.open_source_notice": "Mastodon je softver otvorenog kôda. Možete pridonijeti ili prijaviti probleme na GitHubu na {github}.", - "getting_started.security": "Postavke računa", - "getting_started.terms": "Uvjeti pružanja usluga", "hashtag.column_header.tag_mode.all": "i {additional}", "hashtag.column_header.tag_mode.any": "ili {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Bilo koji navedeni", "hashtag.column_settings.tag_mode.none": "Nijedan navedeni", "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovaj stupac", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži boostove", "home.column_settings.show_replies": "Pokaži odgovore", "home.hide_announcements": "Sakrij najave", "home.show_announcements": "Prikaži najave", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# dan} other {# dana}}", "intervals.full.hours": "{number, plural, one {# sat} few {# sata} other {# sati}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minute} other {# minuta}}", @@ -268,7 +341,7 @@ "lightbox.next": "Sljedeće", "lightbox.previous": "Prethodno", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Dodaj na listu", "lists.account.remove": "Ukloni s liste", "lists.delete": "Izbriši listu", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Sakrij {number, plural, one {sliku} other {slike}}", "missing_indicator.label": "Nije pronađeno", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Trajanje", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobilne aplikacije", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blokirani korisnici", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalna vremenska crta", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Utišane riječi", "navigation_bar.follow_requests": "Zahtjevi za praćenje", "navigation_bar.follows_and_followers": "Praćeni i pratitelji", - "navigation_bar.info": "O ovom poslužitelju", - "navigation_bar.keyboard_shortcuts": "Tipkovnički prečaci", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Odjavi se", "navigation_bar.mutes": "Utišani korisnici", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Prikvačeni tootovi", "navigation_bar.preferences": "Postavke", "navigation_bar.public_timeline": "Federalna vremenska crta", + "navigation_bar.search": "Search", "navigation_bar.security": "Sigurnost", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} je favorizirao/la Vaš toot", "notification.follow": "{name} Vas je počeo/la pratiti", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Očisti obavijesti", "notifications.clear_confirmation": "Želite li zaista trajno očistiti sve Vaše obavijesti?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Obavijesti radne površine", "notifications.column_settings.favourite": "Favoriti:", @@ -379,6 +455,8 @@ "privacy.public.short": "Javno", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Neprikazano", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Osvježi", "regeneration_indicator.label": "Učitavanje…", "regeneration_indicator.sublabel": "Priprema se Vaša početna stranica!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Traži", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Format naprednog pretraživanja", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Označi favoritom", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Učitaj više", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Nitko još nije boostao ovaj toot. Kada netko to učini, ovdje će biti prikazani.", "status.redraft": "Izbriši i ponovno uredi", "status.remove_bookmark": "Ukloni knjižnu oznaku", + "status.replied_to": "Replied to {name}", "status.reply": "Odgovori", "status.replyAll": "Odgovori na niz", "status.report": "Prijavi @{name}", "status.sensitive_warning": "Osjetljiv sadržaj", "status.share": "Podijeli", + "status.show_filter_reason": "Show anyway", "status.show_less": "Pokaži manje", "status.show_less_all": "Show less for all", "status.show_more": "Pokaži više", "status.show_more_all": "Show more for all", - "status.show_thread": "Prikaži nit", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nije dostupno", "status.unmute_conversation": "Poništi utišavanje razgovora", "status.unpin": "Otkvači s profila", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Odbaci prijedlog", "suggestions.header": "Možda Vas zanima…", "tabs_bar.federated_timeline": "Federalno", "tabs_bar.home": "Početna", "tabs_bar.local_timeline": "Lokalno", "tabs_bar.notifications": "Obavijesti", - "tabs_bar.search": "Traži", "time_remaining.days": "{number, plural, one {preostao # dan} other {preostalo # dana}}", "time_remaining.hours": "{number, plural, one {preostao # sat} few {preostalo # sata} other {preostalo # sati}}", "time_remaining.minutes": "{number, plural, one {preostala # minuta} few {preostale # minute} other {preostalo # minuta}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Pratitelji", "timeline_hint.resources.follows": "Praćenja", "timeline_hint.resources.statuses": "Stariji tootovi", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Popularno", "ui.beforeunload": "Vaša skica bit će izgubljena ako napustite Mastodon.", "units.short.billion": "{count} mlrd.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Prenošenje...", + "upload_progress.processing": "Processing…", "video.close": "Zatvori video", "video.download": "Preuzmi datoteku", "video.exit_fullscreen": "Izađi iz cijelog zaslona", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index b22778e71dd975..452cc2cdb27a8e 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderált kiszolgálók", + "about.contact": "Kapcsolat:", + "about.disclaimer": "A Mastodon ingyenes, nyílt forráskódú szoftver, a Mastodon gGmbH védejegye.", + "about.domain_blocks.no_reason_available": "Az ok nem érhető el", + "about.domain_blocks.preamble": "A Mastodon általában mindenféle tartalomcserét és interakciót lehetővé tesz bármelyik másik kiszolgálóval a födiverzumban. Ezek azok a kivételek, amelyek a mi kiszolgálónkon érvényben vannak.", + "about.domain_blocks.silenced.explanation": "Általában nem fogsz profilokat és tartalmat látni erről a kiszolgálóról, hacsak közvetlenül fel nem keresed vagy követed.", + "about.domain_blocks.silenced.title": "Korlátozott", + "about.domain_blocks.suspended.explanation": "A kiszolgáló adatai nem lesznek feldolgozva, tárolva vagy megosztva, lehetetlenné téve mindennemű interakciót és kommunikációt a kiszolgáló felhasználóival.", + "about.domain_blocks.suspended.title": "Felfüggesztett", + "about.not_available": "Ez az információ nem lett közzétéve ezen a kiszolgálón.", + "about.powered_by": "Decentralizált közösségi média a {mastodon} segítségével", + "about.rules": "Kiszolgáló szabályai", "account.account_note_header": "Jegyzet", "account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listákról", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Domain blokkolása: {domain}", "account.blocked": "Letiltva", "account.browse_more_on_origin_server": "Böngéssz tovább az eredeti profilon", - "account.cancel_follow_request": "Követési kérelem visszavonása", + "account.cancel_follow_request": "Követési kérés visszavonása", "account.direct": "Közvetlen üzenet @{name} számára", "account.disable_notifications": "Ne figyelmeztessen, ha @{name} bejegyzést tesz közzé", "account.domain_blocked": "Letiltott domain", "account.edit_profile": "Profil szerkesztése", "account.enable_notifications": "Figyelmeztessen, ha @{name} bejegyzést tesz közzé", "account.endorse": "Kiemelés a profilodon", + "account.featured_tags.last_status_at": "Legutolsó bejegyzés ideje: {date}", + "account.featured_tags.last_status_never": "Nincs bejegyzés", + "account.featured_tags.title": "{name} kiemelt hashtagjei", "account.follow": "Követés", "account.followers": "Követő", "account.followers.empty": "Ezt a felhasználót még senki sem követi.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, other {{counter} Követett}}", "account.follows.empty": "Ez a felhasználó még senkit sem követ.", "account.follows_you": "Követ téged", + "account.go_to_profile": "Ugrás a profilhoz", "account.hide_reblogs": "@{name} megtolásainak elrejtése", - "account.joined": "Csatlakozott {date}", + "account.joined_short": "Csatlakozott", + "account.languages": "Feliratkozott nyelvek módosítása", "account.link_verified_on": "A linket eredetiségét ebben az időpontban ellenőriztük: {date}", "account.locked_info": "Ennek a fióknak zárolt a láthatósága. A tulajdonos kézzel engedélyezi, hogy ki követheti őt.", "account.media": "Média", "account.mention": "@{name} említése", - "account.moved_to": "{name} átköltözött:", + "account.moved_to": "{name} jelezte, hogy az új fiókja a következő:", "account.mute": "@{name} némítása", "account.mute_notifications": "@{name} értesítéseinek némítása", "account.muted": "Némítva", + "account.open_original_page": "Eredeti oldal megnyitása", "account.posts": "Bejegyzések", "account.posts_with_replies": "Bejegyzések és válaszok", "account.report": "@{name} jelentése", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Hoppá!", "announcement.announcement": "Közlemény", "attachments_list.unprocessed": "(feldolgozatlan)", + "audio.hide": "Hang elrejtése", "autosuggest_hashtag.per_week": "{count} hetente", "boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}", - "bundle_column_error.body": "Valami hiba történt a komponens betöltése közben.", + "bundle_column_error.copy_stacktrace": "Hibajelentés másolása", + "bundle_column_error.error.body": "A kért lap nem jeleníthető meg. Ez lehet, hogy kódhiba, vagy böngészőkompatibitási hiba.", + "bundle_column_error.error.title": "Jaj ne!", + "bundle_column_error.network.body": "Hiba történt az oldal betöltése során. Ezt az internetkapcsolat ideiglenes problémája vagy kiszolgálóhiba is okozhatja.", + "bundle_column_error.network.title": "Hálózati hiba", "bundle_column_error.retry": "Próbáld újra", - "bundle_column_error.title": "Hálózati hiba", + "bundle_column_error.return": "Vissza a kezdőlapra", + "bundle_column_error.routing.body": "A kért oldal nem található. Biztos, hogy a címsávban lévő webcím helyes?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Bezárás", "bundle_modal_error.message": "Hiba történt a komponens betöltésekor.", "bundle_modal_error.retry": "Próbáld újra", + "closed_registrations.other_server_instructions": "Mivel a Mastdon decentralizált, létrehozhatsz egy fiókot egy másik kiszolgálón és mégis kapcsolódhatsz ehhez.", + "closed_registrations_modal.description": "Fiók létrehozása a {domain} kiszolgálón jelenleg nem lehetséges, de jó, ha tudod, hogy nem szükséges fiókkal rendelkezni pont a {domain} kiszolgálón, hogy használhasd a Mastodont.", + "closed_registrations_modal.find_another_server": "Másik kiszolgáló keresése", + "closed_registrations_modal.preamble": "A Mastodon decentralizált, így teljesen mindegy, hol hozod létre a fiókodat, követhetsz és kapcsolódhatsz bárkivel ezen a kiszolgálón is. Saját magad is üzemeltethetsz kiszolgálót!", + "closed_registrations_modal.title": "Regisztráció a Mastodonra", + "column.about": "Névjegy", "column.blocks": "Letiltott felhasználók", "column.bookmarks": "Könyvjelzők", "column.community": "Helyi idővonal", @@ -95,7 +126,7 @@ "compose.language.change": "Nyelv megváltoztatása", "compose.language.search": "Nyelv keresése...", "compose_form.direct_message_warning_learn_more": "Tudj meg többet", - "compose_form.encryption_warning": "A bejegyzések a Mastodonon nem használnak végpontok közötti titkosítást. Ne ossz meg érzékeny információt Mastodonon.", + "compose_form.encryption_warning": "A bejegyzések Mastodonon nem használnak végpontok közötti titkosítást. Ne ossz meg semmilyen érzékeny információt Mastodonon.", "compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel listázatlan. Csak a nyilvános bejegyzések kereshetők hashtaggel.", "compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt bejegyzéseket.", "compose_form.lock_disclaimer.lock": "lezárva", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Lehetőség törlése", "compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra", "compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra", - "compose_form.publish": "Tülk", + "compose_form.publish": "Közzététel", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Módosítások mentése", "compose_form.sensitive.hide": "{count, plural, one {Média kényesnek jelölése} other {Média kényesnek jelölése}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Letiltás és jelentés", "confirmations.block.confirm": "Letiltás", "confirmations.block.message": "Biztos, hogy letiltod: {name}?", + "confirmations.cancel_follow_request.confirm": "Kérés visszavonása", + "confirmations.cancel_follow_request.message": "Biztos, hogy visszavonod a(z) {name} felhasználóra vonatkozó követési kérésedet?", "confirmations.delete.confirm": "Törlés", "confirmations.delete.message": "Biztos, hogy törölni szeretnéd ezt a bejegyzést?", "confirmations.delete_list.confirm": "Törlés", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Megjelölés olvasottként", "conversation.open": "Beszélgetés megtekintése", "conversation.with": "{names}-el/al", + "copypaste.copied": "Másolva", + "copypaste.copy": "Másolás", "directory.federated": "Az ismert fediverzumból", "directory.local": "Csak innen: {domain}", "directory.new_arrivals": "Új csatlakozók", "directory.recently_active": "Nemrég aktív", + "disabled_account_banner.account_settings": "Fiókbeállítások", + "disabled_account_banner.text": "A(z) {disabledAccount} fiókod jelenleg le van tiltva.", + "dismissable_banner.community_timeline": "Ezek a legfrissebb nyilvános bejegyzések, amelyeket a(z) {domain} kiszolgáló fiókjait használó emberek tették közzé.", + "dismissable_banner.dismiss": "Eltüntetés", + "dismissable_banner.explore_links": "Jelenleg ezekről a hírekről beszélgetnek az ezen és a decentralizált hálózat többi kiszolgálóján lévő emberek.", + "dismissable_banner.explore_statuses": "Jelenleg ezek a bejegyzések hódítanak teret ezen és a decentralizált hálózat egyéb kiszolgálóin.", + "dismissable_banner.explore_tags": "Jelenleg ezek a hashtagek hódítanak teret ezen és a decentralizált hálózat többi kiszolgálóján lévő emberek körében.", + "dismissable_banner.public_timeline": "Ezek a legfrissebb bejegyzések azoktól, akik a decentralizált hálózat más kiszolgálóin vannak, és ez a kiszolgáló tud róluk.", "embed.instructions": "Ágyazd be ezt a bejegyzést a weboldaladba az alábbi kód kimásolásával.", "embed.preview": "Így fog kinézni:", "emoji_button.activity": "Tevékenység", @@ -183,7 +226,7 @@ "empty_column.lists": "Még nem hoztál létre listát. Ha csinálsz egyet, itt látszik majd.", "empty_column.mutes": "Még egy felhasználót sem némítottál le.", "empty_column.notifications": "Jelenleg nincsenek értesítéseid. Lépj kapcsolatba másokkal, hogy elindítsd a beszélgetést.", - "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd", + "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más kiszolgálón levő felhasználókat, hogy megtöltsd.", "error.unexpected_crash.explanation": "Egy hiba vagy böngésző inkompatibilitás miatt ez az oldal nem jeleníthető meg rendesen.", "error.unexpected_crash.explanation_addons": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző beépülő vagy egy automatikus fordító okozza.", "error.unexpected_crash.next_steps": "Próbáld frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.", @@ -196,21 +239,37 @@ "explore.trending_links": "Hírek", "explore.trending_statuses": "Bejegyzések", "explore.trending_tags": "Hashtagek", + "filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből elérted ezt a bejegyzést. Ha ebben a környezetben is szűrni szeretnéd a bejegyzést, akkor szerkesztened kell a szűrőt.", + "filter_modal.added.context_mismatch_title": "Környezeti eltérés.", + "filter_modal.added.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítanod kell az elévülési dátumot.", + "filter_modal.added.expired_title": "Elévült szűrő.", + "filter_modal.added.review_and_configure": "A szűrőkategória felülvizsgálatához és további beállításához ugorjon a {settings_link} oldalra.", + "filter_modal.added.review_and_configure_title": "Szűrőbeállítások", + "filter_modal.added.settings_link": "beállítások oldal", + "filter_modal.added.short_explanation": "A következő bejegyzés hozzá lett adva a következő szűrőkategóriához: {title}.", + "filter_modal.added.title": "Szűrő hozzáadva.", + "filter_modal.select_filter.context_mismatch": "nem érvényes erre a környezetre", + "filter_modal.select_filter.expired": "elévült", + "filter_modal.select_filter.prompt_new": "Új kategória: {name}", + "filter_modal.select_filter.search": "Keresés vagy létrehozás", + "filter_modal.select_filter.subtitle": "Válassz egy meglévő kategóriát, vagy hozz létre egy újat", + "filter_modal.select_filter.title": "E bejegyzés szűrése", + "filter_modal.title.status": "Egy bejegyzés szűrése", "follow_recommendations.done": "Kész", "follow_recommendations.heading": "Kövesd azokat, akiknek a bejegyzéseit látni szeretnéd! Itt van néhány javaslat.", "follow_recommendations.lead": "Az általad követettek bejegyzései a saját idővonaladon fognak megjelenni időrendi sorrendben. Ne félj attól, hogy hibázol! A követést bármikor, ugyanilyen könnyen visszavonhatod!", "follow_request.authorize": "Engedélyezés", "follow_request.reject": "Elutasítás", "follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni a fiók követési kéréseit.", + "footer.about": "Névjegy", + "footer.directory": "Profilok", + "footer.get_app": "Töltsd le az appot", + "footer.invite": "Mások meghívása", + "footer.keyboard_shortcuts": "Billentyűparancsok", + "footer.privacy_policy": "Adatvédelmi szabályzat", + "footer.source_code": "Forráskód megtekintése", "generic.saved": "Elmentve", - "getting_started.developers": "Fejlesztőknek", - "getting_started.directory": "Profilok", - "getting_started.documentation": "Dokumentáció", "getting_started.heading": "Első lépések", - "getting_started.invite": "Mások meghívása", - "getting_started.open_source_notice": "A Mastodon nyílt forráskódú szoftver. Közreműködhetsz vagy problémákat jelenthetsz a GitHubon: {github}.", - "getting_started.security": "Fiókbeállítások", - "getting_started.terms": "Felhasználási feltételek", "hashtag.column_header.tag_mode.all": "és {additional}", "hashtag.column_header.tag_mode.any": "vagy {additional}", "hashtag.column_header.tag_mode.none": "{additional} nélkül", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Bármelyik", "hashtag.column_settings.tag_mode.none": "Egyik sem", "hashtag.column_settings.tag_toggle": "Új címkék felvétele ehhez az oszlophoz", + "hashtag.follow": "Hashtag követése", + "hashtag.unfollow": "Hashtag követésének megszüntetése", "home.column_settings.basic": "Alapvető", "home.column_settings.show_reblogs": "Megtolások mutatása", "home.column_settings.show_replies": "Válaszok megjelenítése", "home.hide_announcements": "Közlemények elrejtése", "home.show_announcements": "Közlemények megjelenítése", + "interaction_modal.description.favourite": "Egy Mastodon fiókkal kedvencnek jelölheted ezt a bejegyzést, tudatva a szerzővel, hogy értékeled és elteszed későbbre.", + "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövetheted {name} fiókot, hogy lásd a bejegyzéseit a saját hírfolyamodban.", + "interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolhatod ezt a bejegyzést, hogy megoszd a saját követőiddel.", + "interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatsz erre a bejegyzésre.", + "interaction_modal.on_another_server": "Másik kiszolgálón", + "interaction_modal.on_this_server": "Ezen a kiszolgálón", + "interaction_modal.other_server_instructions": "Másold és illeszd be ezt a webcímet a kedvenc Mastodon alkalmazásod vagy a Mastodon-kiszolgálód webes felületének keresőmezőjébe.", + "interaction_modal.preamble": "Mivel a Mastodon decentralizált, használhatod egy másik Mastodon kiszolgálón, vagy kompatibilis szolgáltatáson lévő fiókodat, ha ezen a kiszolgálón nincs fiókod.", + "interaction_modal.title.favourite": "{name} bejegyzésének megjelölése kedvencként", + "interaction_modal.title.follow": "{name} követése", + "interaction_modal.title.reblog": "{name} bejegyzésének megtolása", + "interaction_modal.title.reply": "Válasz {name} bejegyzésére", "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 +341,7 @@ "lightbox.next": "Következő", "lightbox.previous": "Előző", "limited_account_hint.action": "Mindenképpen mutassa a profilt", - "limited_account_hint.title": "Ezt a profilt a kiszolgálód moderátorai elrejtették.", + "limited_account_hint.title": "Ezt a profilt a(z) {domain} moderátorai elrejtették.", "lists.account.add": "Hozzáadás a listához", "lists.account.remove": "Eltávolítás a listából", "lists.delete": "Lista törlése", @@ -284,13 +357,14 @@ "lists.subheading": "Listáid", "load_pending": "{count, plural, one {# új elem} other {# új elem}}", "loading_indicator.label": "Betöltés...", - "media_gallery.toggle_visible": "Láthatóság állítása", + "media_gallery.toggle_visible": "{number, plural, one {Kép elrejtése} other {Képek elrejtése}}", "missing_indicator.label": "Nincs találat", "missing_indicator.sublabel": "Ez az erőforrás nem található", + "moved_to_account_banner.text": "A(z) {disabledAccount} fiókod jelenleg le van tiltva, mert átköltöztél ide: {movedToAccount}.", "mute_modal.duration": "Időtartam", "mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?", "mute_modal.indefinite": "Határozatlan", - "navigation_bar.apps": "Mobil appok", + "navigation_bar.about": "Névjegy", "navigation_bar.blocks": "Letiltott felhasználók", "navigation_bar.bookmarks": "Könyvjelzők", "navigation_bar.community_timeline": "Helyi idővonal", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Némított szavak", "navigation_bar.follow_requests": "Követési kérelmek", "navigation_bar.follows_and_followers": "Követettek és követők", - "navigation_bar.info": "Erről a kiszolgálóról", - "navigation_bar.keyboard_shortcuts": "Gyorsbillentyűk", "navigation_bar.lists": "Listák", "navigation_bar.logout": "Kijelentkezés", "navigation_bar.mutes": "Némított felhasználók", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Kitűzött bejegyzések", "navigation_bar.preferences": "Beállítások", "navigation_bar.public_timeline": "Föderációs idővonal", + "navigation_bar.search": "Keresés", "navigation_bar.security": "Biztonság", + "not_signed_in_indicator.not_signed_in": "Az erőforrás eléréséhez be kell jelentkezned.", + "notification.admin.report": "{name} jelentette: {target}", "notification.admin.sign_up": "{name} regisztrált", "notification.favourite": "{name} kedvencnek jelölte a bejegyzésedet", "notification.follow": "{name} követ téged", @@ -326,6 +401,7 @@ "notification.update": "{name} szerkesztett egy bejegyzést", "notifications.clear": "Értesítések törlése", "notifications.clear_confirmation": "Biztos, hogy véglegesen törölni akarod az összes értesítésed?", + "notifications.column_settings.admin.report": "Új jelentések:", "notifications.column_settings.admin.sign_up": "Új regisztrálók:", "notifications.column_settings.alert": "Asztali értesítések", "notifications.column_settings.favourite": "Kedvencek:", @@ -379,6 +455,8 @@ "privacy.public.short": "Nyilvános", "privacy.unlisted.long": "Mindenki számára látható, de kimarad a felfedezős funkciókból", "privacy.unlisted.short": "Listázatlan", + "privacy_policy.last_updated": "Utoljára frissítve: {date}", + "privacy_policy.title": "Adatvédelmi szabályzat", "refresh": "Frissítés", "regeneration_indicator.label": "Töltődik…", "regeneration_indicator.sublabel": "A saját idővonalad épp készül!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Köszönjük, hogy jelentetted, megnézzük.", "report.unfollow": "@{name} követésének leállítása", "report.unfollow_explanation": "Követed ezt a fiókot. Hogy ne lásd a bejegyzéseit a saját idővonaladon, szüntesd meg a követését.", + "report_notification.attached_statuses": "{count} bejegyzés mellékelve", + "report_notification.categories.other": "Egyéb", + "report_notification.categories.spam": "Kéretlen üzenet", + "report_notification.categories.violation": "Szabálysértés", + "report_notification.open": "Bejelentés megnyitása", "search.placeholder": "Keresés", + "search.search_or_paste": "Keresés vagy URL beillesztése", "search_popout.search_format": "Speciális keresés", "search_popout.tips.full_text": "Egyszerű szöveg, mely általad írt, kedvencnek jelölt vagy megtolt bejegyzéseket, rólad szóló megemlítéseket, felhasználói neveket, megjelenített neveket, hashtageket ad majd vissza.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Nincs találat ezekre a keresési kifejezésekre", "search_results.statuses": "Bejegyzések", "search_results.statuses_fts_disabled": "Ezen a Mastodon szerveren nem engedélyezett a bejegyzések tartalom szerinti keresése.", + "search_results.title": "Keresés erre: {q}", "search_results.total": "{count, number} {count, plural, one {találat} other {találat}}", + "server_banner.about_active_users": "Az elmúlt 30 napban ezt a kiszolgálót használók száma (Havi aktív felhasználók)", + "server_banner.active_users": "aktív felhasználó", + "server_banner.administered_by": "Adminisztrátor:", + "server_banner.introduction": "{domain} része egy decentralizált közösségi hálónak, melyet a {mastodon} hajt meg.", + "server_banner.learn_more": "Tudj meg többet", + "server_banner.server_stats": "Kiszolgálóstatisztika:", + "sign_in_banner.create_account": "Fiók létrehozása", + "sign_in_banner.sign_in": "Bejelentkezés", + "sign_in_banner.text": "Jelentkezz be profilok vagy hashtagek követéséhez, bejegyzések megosztásához, megválaszolásához, vagy kommunikálj a fiókodból más kiszolgálókkal.", "status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz", "status.admin_status": "Bejegyzés megnyitása a moderációs felületen", "status.block": "@{name} letiltása", @@ -460,7 +554,9 @@ "status.edited_x_times": "{count, plural, one {{count} alkalommal} other {{count} alkalommal}} szerkesztve", "status.embed": "Beágyazás", "status.favourite": "Kedvenc", + "status.filter": "E bejegyzés szűrése", "status.filtered": "Megszűrt", + "status.hide": "Bejegyzés elrejtése", "status.history.created": "{name} létrehozta: {date}", "status.history.edited": "{name} szerkesztette: {date}", "status.load_more": "Többet", @@ -479,36 +575,42 @@ "status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.", "status.redraft": "Törlés és újraírás", "status.remove_bookmark": "Könyvjelző eltávolítása", + "status.replied_to": "Megválaszolva {name} számára", "status.reply": "Válasz", "status.replyAll": "Válasz a beszélgetésre", "status.report": "@{name} bejelentése", "status.sensitive_warning": "Kényes tartalom", "status.share": "Megosztás", + "status.show_filter_reason": "Megjelenítés mindenképp", "status.show_less": "Kevesebb megjelenítése", "status.show_less_all": "Kevesebbet mindenhol", "status.show_more": "Többet", "status.show_more_all": "Többet mindenhol", - "status.show_thread": "Szál mutatása", + "status.show_original": "Eredeti mutatása", + "status.translate": "Fordítás", + "status.translated_from_with": "{lang} nyelvről fordítva {provider} szolgáltatással", "status.uncached_media_warning": "Nem érhető el", "status.unmute_conversation": "Beszélgetés némításának feloldása", "status.unpin": "Kitűzés eltávolítása a profilodról", + "subscribed_languages.lead": "A változtatás után csak a kiválasztott nyelvű bejegyzések fognak megjelenni a kezdőlapon és az idővonalakon. Ha egy sincs kiválasztva, akkor minden nyelven megjelennek a bejegyzések.", + "subscribed_languages.save": "Változások mentése", + "subscribed_languages.target": "Feliratkozott nyelvek módosítása a következőnél: {target}", "suggestions.dismiss": "Javaslat elvetése", "suggestions.header": "Esetleg érdekelhet…", "tabs_bar.federated_timeline": "Föderációs", "tabs_bar.home": "Kezdőlap", "tabs_bar.local_timeline": "Helyi", "tabs_bar.notifications": "Értesítések", - "tabs_bar.search": "Keresés", "time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra", "time_remaining.hours": "{number, plural, one {# óra} other {# óra}} van hátra", "time_remaining.minutes": "{number, plural, one {# perc} other {# perc}} van hátra", "time_remaining.moments": "Pillanatok vannak hátra", "time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra", - "timeline_hint.remote_resource_not_displayed": "más szerverekről származó {resource} tartalmakat nem mutatjuk.", + "timeline_hint.remote_resource_not_displayed": "a más kiszolgálókról származó {resource} tartalmak nem jelennek meg.", "timeline_hint.resources.followers": "Követő", "timeline_hint.resources.follows": "Követett", "timeline_hint.resources.statuses": "Régi bejegyzések", - "trends.counter_by_accounts": "{count, plural, one {{counter} személy} other {{counter} személy}} beszélget", + "trends.counter_by_accounts": "{count, plural, one {{counter} ember} other {{counter} ember}} az elmúlt {days, plural,one {napban} other {{days} napban}}", "trends.trending_now": "Most felkapott", "ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Mastodont.", "units.short.billion": "{count}Mrd", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "OCR előkészítése…", "upload_modal.preview_label": "Előnézet ({ratio})", "upload_progress.label": "Feltöltés...", + "upload_progress.processing": "Feldolgozás…", "video.close": "Videó bezárása", "video.download": "Fájl letöltése", "video.exit_fullscreen": "Kilépés teljes képernyőből", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 1285403fc2262b..5643e2ea9518c2 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Նշում", "account.add_or_remove_from_list": "Աւելացնել կամ հեռացնել ցանկերից", "account.badges.bot": "Բոտ", @@ -7,13 +19,16 @@ "account.block_domain": "Թաքցնել ամէնը հետեւեալ տիրոյթից՝ {domain}", "account.blocked": "Արգելափակուած է", "account.browse_more_on_origin_server": "Դիտել աւելին իրական պրոֆիլում", - "account.cancel_follow_request": "չեղարկել հետեւելու հայցը", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Նամակ գրել @{name} -ին", "account.disable_notifications": "Ծանուցումները անջատել @{name} գրառումների համար", "account.domain_blocked": "Տիրոյթը արգելափակուած է", "account.edit_profile": "Խմբագրել անձնական էջը", "account.enable_notifications": "Ծանուցել ինձ @{name} գրառումների մասին", "account.endorse": "Ցուցադրել անձնական էջում", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Հետեւել", "account.followers": "Հետեւողներ", "account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Հետեւած} other {{counter} Հետեւած}}", "account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։", "account.follows_you": "Հետեւում է քեզ", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները", - "account.joined": "Միացել է {date}-ից", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Սոյն յղման տիրապետումը ստուգուած է՝ {date}֊ին", "account.locked_info": "Սոյն հաշուի գաղտնիութեան մակարդակը նշուած է որպէս՝ փակ։ Հաշուի տէրն ընտրում է, թէ ով կարող է հետեւել իրեն։", "account.media": "Մեդիա", "account.mention": "Նշել @{name}֊ին", - "account.moved_to": "{name}֊ը տեղափոխուել է՝", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Լռեցնել @{name}֊ին", "account.mute_notifications": "Անջատել ծանուցումները @{name}֊ից", "account.muted": "Լռեցուած", + "account.open_original_page": "Open original page", "account.posts": "Գրառումներ", "account.posts_with_replies": "Գրառումներ եւ պատասխաններ", "account.report": "Բողոքել @{name}֊ի մասին", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Վա՜յ", "announcement.announcement": "Յայտարարութիւններ", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "շաբաթը՝ {count}", "boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա յաջորդ անգամ բաց թողնելու համար", - "bundle_column_error.body": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանուեց։", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Կրկին փորձել", - "bundle_column_error.title": "Ցանցային սխալ", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Փակել", "bundle_modal_error.message": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանուեց։", "bundle_modal_error.retry": "Կրկին փորձել", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Արգելափակուած օգտատէրեր", "column.bookmarks": "Էջանիշեր", "column.community": "Տեղական հոսք", @@ -95,7 +126,7 @@ "compose.language.change": "Change language", "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Իմանալ աւելին", - "compose_form.encryption_warning": "Մաստոդոնում գրառումները ծայրից-ծայր գաղտնագրուող չեն։ Գաղտնիք պարունակող նամակներ մի ուղարկէք։", + "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "Այս գրառումը չի հաշուառուի որեւէ պիտակի տակ, քանզի այն ծածուկ է։ Միայն հրապարակային թթերը հնարաւոր է որոնել պիտակներով։", "compose_form.lock_disclaimer": "Քո հաշիւը {locked} չէ։ Իւրաքանչիւրութիւն ոք կարող է հետեւել քեզ եւ տեսնել միայն հետեւողների համար նախատեսուած գրառումները։", "compose_form.lock_disclaimer.lock": "փակ", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Հեռացնել այս տարբերակը", "compose_form.poll.switch_to_multiple": "Հարցումը դարձնել բազմակի ընտրութեամբ", "compose_form.poll.switch_to_single": "Հարցումը դարձնել եզակի ընտրութեամբ", - "compose_form.publish": "Հրապարակել", + "compose_form.publish": "Publish", "compose_form.publish_loud": "Հրապարակե՜լ", "compose_form.save_changes": "Պահպանել փոփոխութիւնները", "compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Արգելափակել եւ բողոքել", "confirmations.block.confirm": "Արգելափակել", "confirmations.block.message": "Վստա՞հ ես, որ ուզում ես արգելափակել {name}֊ին։", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Ջնջել", "confirmations.delete.message": "Վստա՞հ ես, որ ուզում ես ջնջել այս գրառումը։", "confirmations.delete_list.confirm": "Ջնջել", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Նշել որպէս ընթերցուած", "conversation.open": "Դիտել խօսակցութիւնը", "conversation.with": "{names}-ի հետ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Յայտնի դաշնեզերքից", "directory.local": "{domain} տիրոյթից միայն", "directory.new_arrivals": "Նորեկներ", "directory.recently_active": "Վերջերս ակտիւ", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Այս գրառումը քո կայքում ներդնելու համար կարող ես պատճէնել ներքեւի կոդը։", "embed.preview": "Ահա, թէ ինչ տեսք կունենայ այն՝", "emoji_button.activity": "Զբաղմունքներ", @@ -196,21 +239,37 @@ "explore.trending_links": "Նորութիւններ", "explore.trending_statuses": "Գրառումներ", "explore.trending_tags": "Պիտակներ", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Աւարտուած է", "follow_recommendations.heading": "Հետեւիր այն մարդկանց, որոնց գրառումները կը ցանկանաս տեսնել։ Ահա մի քանի առաջարկ։", "follow_recommendations.lead": "Քո հոսքում, ժամանակագրական դասաւորութեամբ կը տեսնես այն մարդկանց գրառումները, որոնց հետեւում ես։ Մի վախեցիր սխալուել, դու միշտ կարող ես հեշտութեամբ ապահետեւել մարդկանց։", "follow_request.authorize": "Վաւերացնել", "follow_request.reject": "Մերժել", "follow_requests.unlocked_explanation": "Այս հարցումը ուղարկուած է հաշուից, որի համար {domain}-ի անձնակազմը միացրել է ձեռքով ստուգում։", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Պահպանուած է", - "getting_started.developers": "Մշակողներ", - "getting_started.directory": "Օգտատէրերի շտեմարան", - "getting_started.documentation": "Փաստաթղթեր", "getting_started.heading": "Ինչպէս սկսել", - "getting_started.invite": "Հրաւիրել մարդկանց", - "getting_started.open_source_notice": "Մաստոդոնը բաց ելատեքստով ծրագրակազմ է։ Կարող ես ներդրում անել կամ վրէպներ զեկուցել ԳիթՀաբում՝ {github}։", - "getting_started.security": "Հաշուի կարգաւորումներ", - "getting_started.terms": "Ծառայութեան պայմանները", "hashtag.column_header.tag_mode.all": "եւ {additional}", "hashtag.column_header.tag_mode.any": "կամ {additional}", "hashtag.column_header.tag_mode.none": "առանց {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Ցանկացածը", "hashtag.column_settings.tag_mode.none": "Ոչ մեկը", "hashtag.column_settings.tag_toggle": "Ներառել լրացուցիչ պիտակները այս սիւնակում ", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Հիմնական", "home.column_settings.show_reblogs": "Ցուցադրել տարածածները", "home.column_settings.show_replies": "Ցուցադրել պատասխանները", "home.hide_announcements": "Թաքցնել յայտարարութիւնները", "home.show_announcements": "Ցուցադրել յայտարարութիւնները", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# օր} other {# օր}}", "intervals.full.hours": "{number, plural, one {# ժամ} other {# ժամ}}", "intervals.full.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}}", @@ -268,7 +341,7 @@ "lightbox.next": "Յաջորդ", "lightbox.previous": "Նախորդ", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Աւելացնել ցանկին", "lists.account.remove": "Հանել ցանկից", "lists.delete": "Ջնջել ցանկը", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Ցուցադրել/թաքցնել", "missing_indicator.label": "Չգտնուեց", "missing_indicator.sublabel": "Պաշարը չի գտնւում", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Տեւողութիւն", "mute_modal.hide_notifications": "Թաքցնե՞լ ծանուցումներն այս օգտատիրոջից։", "mute_modal.indefinite": "Անժամկէտ", - "navigation_bar.apps": "Դիւրակիր յաւելուածներ", + "navigation_bar.about": "About", "navigation_bar.blocks": "Արգելափակուած օգտատէրեր", "navigation_bar.bookmarks": "Էջանիշեր", "navigation_bar.community_timeline": "Տեղական հոսք", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Լռեցուած բառեր", "navigation_bar.follow_requests": "Հետեւելու հայցեր", "navigation_bar.follows_and_followers": "Հետեւածներ եւ հետեւողներ", - "navigation_bar.info": "Այս հանգոյցի մասին", - "navigation_bar.keyboard_shortcuts": "Ստեղնաշարի կարճատներ", "navigation_bar.lists": "Ցանկեր", "navigation_bar.logout": "Դուրս գալ", "navigation_bar.mutes": "Լռեցրած օգտատէրեր", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Ամրացուած գրառումներ", "navigation_bar.preferences": "Նախապատուութիւններ", "navigation_bar.public_timeline": "Դաշնային հոսք", + "navigation_bar.search": "Search", "navigation_bar.security": "Անվտանգութիւն", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name}-ը գրանցուած է", "notification.favourite": "{name} հաւանեց գրառումդ", "notification.follow": "{name} սկսեց հետեւել քեզ", @@ -326,6 +401,7 @@ "notification.update": "{name}-ը փոխել է գրառումը", "notifications.clear": "Մաքրել ծանուցումները", "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապէս մաքրել քո բոլոր ծանուցումները։", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "Նոր գրանցումներ՝", "notifications.column_settings.alert": "Աշխատատիրոյթի ծանուցումներ", "notifications.column_settings.favourite": "Հաւանածներից՝", @@ -379,6 +455,8 @@ "privacy.public.short": "Հրապարակային", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Ծածուկ", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Թարմացնել", "regeneration_indicator.label": "Բեռնւում է…", "regeneration_indicator.sublabel": "պատրաստւում է հիմնական հոսքդ", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Փնտրել", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Փնտրելու առաջադէմ ձեւ", "search_popout.tips.full_text": "Պարզ տեքստը վերադարձնում է գրառումներդ, հաւանածներդ, տարածածներդ, որտեղ ես նշուած եղել, ինչպէս նաեւ նման օգտանուններ, անուններ եւ պիտակներ։", "search_popout.tips.hashtag": "պիտակ", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Գրառումներ", "search_results.statuses_fts_disabled": "Այս հանգոյցում միացուած չէ ըստ բովանդակութեան գրառում փնտրելու հնարաւորութիւնը։", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {արդիւնք} other {արդիւնք}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Բացել @{name} օգտատիրոջ մոդերացիայի դիմերէսը։", "status.admin_status": "Բացել այս գրառումը մոդերատորի դիմերէսի մէջ", "status.block": "Արգելափակել @{name}֊ին", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Ներդնել", "status.favourite": "Հաւանել", + "status.filter": "Filter this post", "status.filtered": "Զտուած", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Բեռնել աւելին", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Այս գրառումը ոչ մէկ դեռ չի տարածել։ Տարածողները կերեւան այստեղ, երբ տարածեն։", "status.redraft": "Ջնջել եւ վերակազմել", "status.remove_bookmark": "Հեռացնել էջանիշերից", + "status.replied_to": "Replied to {name}", "status.reply": "Պատասխանել", "status.replyAll": "Պատասխանել շղթային", "status.report": "Բողոքել @{name}֊ից", "status.sensitive_warning": "Կասկածելի բովանդակութիւն", "status.share": "Կիսուել", + "status.show_filter_reason": "Show anyway", "status.show_less": "Պակաս", "status.show_less_all": "Թաքցնել բոլոր նախազգուշացնումները", "status.show_more": "Աւելին", "status.show_more_all": "Ցուցադրել բոլոր նախազգուշացնումները", - "status.show_thread": "Բացել շղթան", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Անհասանելի", "status.unmute_conversation": "Ապալռեցնել խօսակցութիւնը", "status.unpin": "Հանել անձնական էջից", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Անտեսել առաջարկը", "suggestions.header": "Միգուցէ քեզ հետաքրքրի…", "tabs_bar.federated_timeline": "Դաշնային", "tabs_bar.home": "Հիմնական", "tabs_bar.local_timeline": "Տեղական", "tabs_bar.notifications": "Ծանուցումներ", - "tabs_bar.search": "Փնտրել", "time_remaining.days": "{number, plural, one {մնաց # օր} other {մնաց # օր}}", "time_remaining.hours": "{number, plural, one {# ժամ} other {# ժամ}} անց", "time_remaining.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}} անց", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Հետեւորդ", "timeline_hint.resources.follows": "Հետեւել", "timeline_hint.resources.statuses": "Հին գրառումներ", - "trends.counter_by_accounts": "{count, plural, one {{counter} մարդ} other {{counter} մարդիկ}} խօսում են", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Այժմ արդիական", "ui.beforeunload": "Քո սեւագիրը կը կորի, եթէ լքես Մաստոդոնը։", "units.short.billion": "{count}մլրդ", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Գրաճանաչման նախապատրաստում…", "upload_modal.preview_label": "Նախադիտում ({ratio})", "upload_progress.label": "Վերբեռնվում է…", + "upload_progress.processing": "Processing…", "video.close": "Փակել տեսագրութիւնը", "video.download": "Ներբեռնել նիշքը", "video.exit_fullscreen": "Անջատել լիաէկրան դիտումը", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index ada2876dd37951..1c35ab60233b10 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -1,44 +1,62 @@ { + "about.blocks": "Movies", + "about.contact": "Hubungi:", + "about.disclaimer": "Mastodon addalah perangkat lunak bebas dan sumber terbuka, dan adalah merek dagang dari Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Alasan tidak tersedia", + "about.domain_blocks.preamble": "Mastodon umumnya mengizinkan Anda untuk melihat konten dan berinteraksi dengan pengguna dari server lain di fediverse. Ini adalah pengecualian yang dibuat untuk beberapa server.", + "about.domain_blocks.silenced.explanation": "Anda secara umum tidak melihat profil dan konten dari server ini, kecuali jika Anda mencarinya atau memilihnya dengan mengikuti secara eksplisit.", + "about.domain_blocks.silenced.title": "Terbatas", + "about.domain_blocks.suspended.explanation": "Tidak ada data yang diproses, disimpan, atau ditukarkan dari server ini, membuat interaksi atau komunikasi dengan pengguna dari server ini tidak mungkin dilakukan.", + "about.domain_blocks.suspended.title": "Ditangguhkan", + "about.not_available": "Informasi ini belum tersedia di server ini.", + "about.powered_by": "Media sosial terdesentralisasi diberdayakan oleh {mastodon}", + "about.rules": "Aturan server", "account.account_note_header": "Catatan", "account.add_or_remove_from_list": "Tambah atau Hapus dari daftar", - "account.badges.bot": "Bot", + "account.badges.bot": "בוט", "account.badges.group": "Grup", - "account.block": "Blokir @{name}", + "account.block": "{name}לחסום את ", "account.block_domain": "Blokir domain {domain}", "account.blocked": "Terblokir", "account.browse_more_on_origin_server": "Lihat lebih lanjut diprofil asli", - "account.cancel_follow_request": "Batalkan permintaan ikuti", + "account.cancel_follow_request": "Batalkan permintaan ikut", "account.direct": "Pesan Langsung @{name}", "account.disable_notifications": "Berhenti memberitahu saya ketika @{name} memposting", "account.domain_blocked": "Domain diblokir", "account.edit_profile": "Ubah profil", "account.enable_notifications": "Beritahu saya saat @{name} memposting", "account.endorse": "Tampilkan di profil", + "account.featured_tags.last_status_at": "Kiriman terakhir pada {date}", + "account.featured_tags.last_status_never": "Tidak ada kiriman", + "account.featured_tags.title": "Tagar {name} yang difiturkan", "account.follow": "Ikuti", "account.followers": "Pengikut", "account.followers.empty": "Pengguna ini belum ada pengikut.", "account.followers_counter": "{count, plural, other {{counter} Pengikut}}", "account.following": "Mengikuti", "account.following_counter": "{count, plural, other {{counter} Mengikuti}}", - "account.follows.empty": "Pengguna ini belum mengikuti siapapun.", - "account.follows_you": "Mengikuti anda", + "account.follows.empty": "Pengguna ini belum mengikuti siapa pun.", + "account.follows_you": "Mengikuti Anda", + "account.go_to_profile": "Buka profil", "account.hide_reblogs": "Sembunyikan boosts dari @{name}", - "account.joined": "Bergabung {date}", + "account.joined_short": "Bergabung", + "account.languages": "Ubah langganan bahasa", "account.link_verified_on": "Kepemilikan tautan ini telah dicek pada {date}", "account.locked_info": "Status privasi akun ini disetel untuk dikunci. Pemilik secara manual meninjau siapa yang dapat mengikutinya.", "account.media": "Media", "account.mention": "Balasan @{name}", - "account.moved_to": "{name} telah pindah ke:", + "account.moved_to": "{name} mengabarkan bahwa akun baru mereka kini adalah:", "account.mute": "Bisukan @{name}", "account.mute_notifications": "Bisukan pemberitahuan dari @{name}", "account.muted": "Dibisukan", + "account.open_original_page": "Buka halaman asli", "account.posts": "Kiriman", - "account.posts_with_replies": "Postingan dengan balasan", + "account.posts_with_replies": "Kiriman dan balasan", "account.report": "Laporkan @{name}", "account.requested": "Menunggu persetujuan. Klik untuk membatalkan permintaan", "account.share": "Bagikan profil @{name}", "account.show_reblogs": "Tampilkan boost dari @{name}", - "account.statuses_counter": "{count, plural, other {{counter} Toot}}", + "account.statuses_counter": "{count, plural, other {{counter} Kiriman}}", "account.unblock": "Hapus blokir @{name}", "account.unblock_domain": "Buka blokir domain {domain}", "account.unblock_short": "Buka blokir", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Ups!", "announcement.announcement": "Pengumuman", "attachments_list.unprocessed": "(tidak diproses)", + "audio.hide": "Indonesia", "autosuggest_hashtag.per_week": "{count} per minggu", "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini", - "bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.", + "bundle_column_error.copy_stacktrace": "Salin laporan kesalahan", + "bundle_column_error.error.body": "Laman yang diminta tidak dapat ditampilkan. Mungkin karena sebuah kutu dalam kode kami, atau masalah kompatibilitas peramban.", + "bundle_column_error.error.title": "Oh, tidak!", + "bundle_column_error.network.body": "Ada kesalahan ketika memuat laman ini. Ini dapat terjadi karena masalah sementara dengan koneksi internet Anda atau server ini.", + "bundle_column_error.network.title": "Kesalahan jaringan", "bundle_column_error.retry": "Coba lagi", - "bundle_column_error.title": "Kesalahan jaringan", + "bundle_column_error.return": "Kembali ke beranda", + "bundle_column_error.routing.body": "Laman yang diminta tidak ditemukan. Apakah Anda yakin bahwa URL dalam bilah alamat benar?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Tutup", "bundle_modal_error.message": "Kesalahan terjadi saat memuat komponen ini.", "bundle_modal_error.retry": "Coba lagi", + "closed_registrations.other_server_instructions": "Karena Mastodon itu terdesentralisasi, Anda dapat membuat sebuah akun di server lain dan masih dapat berinteraksi dengan satu ini.", + "closed_registrations_modal.description": "Membuat sebuah akun di {domain} saat ini tidak memungkinkan, tetapi diingat bahwa Anda tidak harus memiliki sebuah akun secara khusus di {domain} untuk menggunakan Mastodon.", + "closed_registrations_modal.find_another_server": "Cari server lain", + "closed_registrations_modal.preamble": "Mastodon itu terdesentralisasi, jadi di mana pun Anda buat akun, Anda masih akan dapat mengikuti dan berinteraksi dengan siapa pun di server ini. Anda bahkan dapat host Mastodon sendiri!", + "closed_registrations_modal.title": "Mendaftar di Mastodon", + "column.about": "Tentang", "column.blocks": "Pengguna yang diblokir", "column.bookmarks": "Markah", "column.community": "Linimasa Lokal", @@ -95,18 +126,18 @@ "compose.language.change": "Ganti bahasa", "compose.language.search": "Telusuri bahasa...", "compose_form.direct_message_warning_learn_more": "Pelajari selengkapnya", - "compose_form.encryption_warning": "Kiriman di Mastodon tidak dienkripsi end-to-end. Jangan bagikan informasi rahasial melalui Mastodon.", - "compose_form.hashtag_warning": "Toot ini tidak akan ada dalam daftar tagar manapun karena telah diatur sebagai tidak terdaftar. Hanya postingan publik yang bisa dicari dengan tagar.", - "compose_form.lock_disclaimer": "Akun anda tidak {locked}. Semua orang dapat mengikuti anda untuk melihat postingan khusus untuk pengikut anda.", + "compose_form.encryption_warning": "Kiriman di Mastodon tidak dienkripsi end-to-end. Jangan bagikan informasi sensitif melalui Mastodon.", + "compose_form.hashtag_warning": "Kiriman ini tidak akan ada dalam daftar tagar mana pun karena telah diatur sebagai tidak terdaftar. Hanya kiriman publik yang bisa dicari dengan tagar.", + "compose_form.lock_disclaimer": "Akun Anda tidak {locked}. Semua orang dapat mengikuti Anda untuk melihat kiriman khusus untuk pengikut Anda.", "compose_form.lock_disclaimer.lock": "terkunci", - "compose_form.placeholder": "Apa yang ada di pikiran anda?", + "compose_form.placeholder": "Apa yang ada di pikiran Anda?", "compose_form.poll.add_option": "Tambahkan pilihan", "compose_form.poll.duration": "Durasi polling", "compose_form.poll.option_placeholder": "Pilihan {number}", "compose_form.poll.remove_option": "Hapus opsi ini", "compose_form.poll.switch_to_multiple": "Ubah japat menjadi pilihan ganda", "compose_form.poll.switch_to_single": "Ubah japat menjadi pilihan tunggal", - "compose_form.publish": "Toot", + "compose_form.publish": "Terbitkan", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Simpan perubahan", "compose_form.sensitive.hide": "{count, plural, other {Tandai media sebagai sensitif}}", @@ -118,35 +149,47 @@ "confirmation_modal.cancel": "Batal", "confirmations.block.block_and_report": "Blokir & Laporkan", "confirmations.block.confirm": "Blokir", - "confirmations.block.message": "Apa anda yakin ingin memblokir {name}?", + "confirmations.block.message": "Apa Anda yakin ingin memblokir {name}?", + "confirmations.cancel_follow_request.confirm": "Batalkan permintaan", + "confirmations.cancel_follow_request.message": "Apakah Anda yakin ingin membatalkan permintaan Anda untuk mengikuti {name}?", "confirmations.delete.confirm": "Hapus", - "confirmations.delete.message": "Apa anda yakin untuk menghapus status ini?", + "confirmations.delete.message": "Apakah Anda yakin untuk menghapus kiriman ini?", "confirmations.delete_list.confirm": "Hapus", - "confirmations.delete_list.message": "Apakah anda yakin untuk menghapus daftar ini secara permanen?", + "confirmations.delete_list.message": "Apakah Anda yakin untuk menghapus daftar ini secara permanen?", "confirmations.discard_edit_media.confirm": "Buang", "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?", "confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain", - "confirmations.domain_block.message": "Apakah anda benar benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", + "confirmations.domain_block.message": "Apakah Anda benar-benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", "confirmations.logout.confirm": "Keluar", - "confirmations.logout.message": "Apakah anda yakin ingin keluar?", + "confirmations.logout.message": "Apakah Anda yakin ingin keluar?", "confirmations.mute.confirm": "Bisukan", "confirmations.mute.explanation": "Ini akan menyembunyikan pos dari mereka dan pos yang menyebut mereka, tapi ini tetap mengizinkan mereka melihat posmu dan mengikutimu.", - "confirmations.mute.message": "Apa anda yakin ingin membisukan {name}?", + "confirmations.mute.message": "Apa Anda yakin ingin membisukan {name}?", "confirmations.redraft.confirm": "Hapus dan susun ulang", - "confirmations.redraft.message": "Apakah anda yakin ingin menghapus dan menyusun ulang? Favorit dan boost akan hilang, dan balasan terhadap kiriman asli akan ditinggalkan.", + "confirmations.redraft.message": "Apakah Anda yakin ingin menghapus dan draf ulang? Favorit dan boost akan hilang, dan balasan terhadap kiriman asli akan ditinggalkan.", "confirmations.reply.confirm": "Balas", "confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?", "confirmations.unfollow.confirm": "Berhenti mengikuti", - "confirmations.unfollow.message": "Apakah anda ingin berhenti mengikuti {name}?", + "confirmations.unfollow.message": "Apakah Anda ingin berhenti mengikuti {name}?", "conversation.delete": "Hapus percakapan", "conversation.mark_as_read": "Tandai sudah dibaca", "conversation.open": "Lihat percakapan", "conversation.with": "Dengan {names}", + "copypaste.copied": "Disalin", + "copypaste.copy": "Salin", "directory.federated": "Dari fediverse yang dikenal", "directory.local": "Dari {domain} saja", "directory.new_arrivals": "Yang baru datang", "directory.recently_active": "Baru-baru ini aktif", - "embed.instructions": "Sematkan kiriman ini di website anda dengan menyalin kode di bawah ini.", + "disabled_account_banner.account_settings": "Pengaturan akun", + "disabled_account_banner.text": "Akun {disabledAccount} Anda kini dinonaktifkan.", + "dismissable_banner.community_timeline": "Ini adalah kiriman publik terkini dari orang yang akunnya berada di {domain}.", + "dismissable_banner.dismiss": "Abaikan", + "dismissable_banner.explore_links": "Cerita berita ini sekarang sedang dibicarakan oleh orang di server ini dan lainnya dalam jaringan terdesentralisasi.", + "dismissable_banner.explore_statuses": "Kiriman ini dari server ini dan lainnya dalam jaringan terdesentralisasi sekarang sedang tren di server ini.", + "dismissable_banner.explore_tags": "Tagar ini sekarang sedang tren di antara orang di server ini dan lainnya dalam jaringan terdesentralisasi.", + "dismissable_banner.public_timeline": "Ini adalah kiriman publik terkini dari orang di server ini dan lainnya dalam jaringan terdesentralisasi yang server ini tahu.", + "embed.instructions": "Sematkan kiriman ini di situs web Anda dengan menyalin kode di bawah ini.", "embed.preview": "Tampilan akan seperti ini nantinya:", "emoji_button.activity": "Aktivitas", "emoji_button.clear": "Hapus", @@ -166,51 +209,67 @@ "empty_column.account_suspended": "Akun ditangguhkan", "empty_column.account_timeline": "Tidak ada toot di sini!", "empty_column.account_unavailable": "Profil tidak tersedia", - "empty_column.blocks": "Anda belum memblokir siapapun.", - "empty_column.bookmarked_statuses": "Anda belum memiliki toot termarkah. Saat Anda menandainya sebagai markah, ia akan muncul di sini.", + "empty_column.blocks": "Anda belum memblokir siapa pun.", + "empty_column.bookmarked_statuses": "Anda belum memiliki kiriman termarkah. Saat Anda menandainya sebagai markah, mereka akan muncul di sini.", "empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!", "empty_column.direct": "Anda belum memiliki pesan langsung. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.", "empty_column.domain_blocks": "Tidak ada topik tersembunyi.", - "empty_column.explore_statuses": "Tidak ada yang sedang tren pada saat ini. Silakan mengecek lagi nanti!", - "empty_column.favourited_statuses": "Anda belum memiliki toot favorit. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.", - "empty_column.favourites": "Belum ada yang memfavoritkan toot ini. Ketika seseorang melakukannya, akan muncul disini.", + "empty_column.explore_statuses": "Tidak ada yang sedang tren pada saat ini. Periksa lagi nanti!", + "empty_column.favourited_statuses": "Anda belum memiliki kiriman favorit. Ketika Anda mengirim atau menerimanya, mereka akan muncul di sini.", + "empty_column.favourites": "Belum ada yang memfavoritkan toot ini. Ketika seseorang melakukannya, mereka akan muncul di sini.", "empty_column.follow_recommendations": "Sepertinya tak ada saran yang dibuat untuk Anda. Anda dapat mencoba menggunakan pencarian untuk menemukan orang yang Anda ketahui atau menjelajahi tagar yang sedang tren.", - "empty_column.follow_requests": "Anda belum memiliki permintaan mengikuti. Ketika Anda menerimanya, maka akan muncul disini.", - "empty_column.hashtag": "Tidak ada apapun dalam hashtag ini.", + "empty_column.follow_requests": "Anda belum memiliki permintaan mengikuti. Ketika Anda menerimanya, maka itu akan muncul di sini.", + "empty_column.hashtag": "Tidak ada apa pun dalam hashtag ini.", "empty_column.home": "Linimasa anda kosong! Kunjungi {public} atau gunakan pencarian untuk memulai dan bertemu pengguna lain.", "empty_column.home.suggestions": "Lihat beberapa saran", - "empty_column.list": "Tidak ada postingan di list ini. Ketika anggota dari list ini memposting status baru, status tersebut akan tampil disini.", - "empty_column.lists": "Anda belum memiliki daftar. Ketika Anda membuatnya, maka akan muncul disini.", - "empty_column.mutes": "Anda belum membisukan siapapun.", - "empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.", - "empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini", + "empty_column.list": "Belum ada apa pun di daftar ini. Ketika anggota dari daftar ini mengirim kiriman baru, mereka akan tampil di sini.", + "empty_column.lists": "Anda belum memiliki daftar. Ketika Anda membuatnya, maka akan muncul di sini.", + "empty_column.mutes": "Anda belum membisukan siapa pun.", + "empty_column.notifications": "Anda belum memiliki notifikasi. Ketika orang lain berinteraksi dengan Anda, Anda akan melihatnya di sini.", + "empty_column.public": "Tidak ada apa pun di sini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini", "error.unexpected_crash.explanation": "Karena kutu pada kode kami atau isu kompatibilitas peramban, halaman tak dapat ditampilkan dengan benar.", "error.unexpected_crash.explanation_addons": "Halaman ini tidak dapat ditampilkan dengan benar. Kesalahan ini mungkin disebabkan pengaya peramban atau alat terjemahan otomatis.", - "error.unexpected_crash.next_steps": "Coba segarkan halaman. Jika tak membantu, Anda masih bisa memakai Mastodon dengan peramban berbeda atau aplikasi native.", - "error.unexpected_crash.next_steps_addons": "Coba nonaktifkan mereka lalu segarkan halaman. Jika tak membantu, Anda masih bisa memakai Mastodon dengan peramban berbeda atau aplikasi murni.", + "error.unexpected_crash.next_steps": "Coba segarkan halaman. Jika itu tidak membantu, Anda masih bisa memakai Mastodon dengan peramban berbeda atau aplikasi asli.", + "error.unexpected_crash.next_steps_addons": "Coba nonaktifkan mereka lalu segarkan halaman. Jika itu tidak membantu, Anda masih bisa memakai Mastodon dengan peramban berbeda atau aplikasi asli.", "errors.unexpected_crash.copy_stacktrace": "Salin stacktrace ke papan klip", "errors.unexpected_crash.report_issue": "Laporkan masalah", "explore.search_results": "Hasil pencarian", "explore.suggested_follows": "Untuk Anda", "explore.title": "Jelajahi", "explore.trending_links": "Berita", - "explore.trending_statuses": "Postingan", + "explore.trending_statuses": "Kiriman", "explore.trending_tags": "Tagar", + "filter_modal.added.context_mismatch_explanation": "Indonesia Translate", + "filter_modal.added.context_mismatch_title": "Konteks tidak cocok!", + "filter_modal.added.expired_explanation": "Kategori saringan ini telah kedaluwarsa, Anda harus mengubah tanggal kedaluwarsa untuk diterapkan.", + "filter_modal.added.expired_title": "Saringan kedaluwarsa!", + "filter_modal.added.review_and_configure": "Untuk meninjau dan mengatur kategori saringan ini lebih jauh, pergi ke {settings_link}.", + "filter_modal.added.review_and_configure_title": "Pengaturan saringan", + "filter_modal.added.settings_link": "laman pengaturan", + "filter_modal.added.short_explanation": "Kiriman ini telah ditambahkan ke kategori saringan berikut: {title}.", + "filter_modal.added.title": "Saringan ditambahkan!", + "filter_modal.select_filter.context_mismatch": "tidak diterapkan ke konteks ini", + "filter_modal.select_filter.expired": "kedaluwarsa", + "filter_modal.select_filter.prompt_new": "Kategori baru: {name}", + "filter_modal.select_filter.search": "Cari atau buat", + "filter_modal.select_filter.subtitle": "Gunakan kategori yang sudah ada atau buat yang baru", + "filter_modal.select_filter.title": "Saring kiriman ini", + "filter_modal.title.status": "Saring sebuah kiriman", "follow_recommendations.done": "Selesai", "follow_recommendations.heading": "Ikuti orang yang ingin Anda lihat kirimannya! Ini ada beberapa saran.", "follow_recommendations.lead": "Kiriman dari orang yang Anda ikuti akan tampil berdasar waktu di beranda Anda. Jangan takut membuat kesalahan, Anda dapat berhenti mengikuti mereka dengan mudah kapan saja!", "follow_request.authorize": "Izinkan", "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Meskipun akun Anda tidak dikunci, staf {domain} menyarankan Anda untuk meninjau permintaan mengikuti dari akun-akun ini secara manual.", + "footer.about": "Tentang", + "footer.directory": "Direktori profil", + "footer.get_app": "Dapatkan aplikasi", + "footer.invite": "Undang orang", + "footer.keyboard_shortcuts": "Pintasan papan ketik", + "footer.privacy_policy": "Kebijakan privasi", + "footer.source_code": "Lihat kode sumber", "generic.saved": "Disimpan", - "getting_started.developers": "Pengembang", - "getting_started.directory": "Direktori profil", - "getting_started.documentation": "Dokumentasi", "getting_started.heading": "Mulai", - "getting_started.invite": "Undang orang", - "getting_started.open_source_notice": "Mastodon adalah perangkat lunak yang bersifat terbuka. Anda dapat berkontribusi atau melaporkan permasalahan/bug di Github {github}.", - "getting_started.security": "Keamanan", - "getting_started.terms": "Ketentuan layanan", "hashtag.column_header.tag_mode.all": "dan {additional}", "hashtag.column_header.tag_mode.any": "atau {additional}", "hashtag.column_header.tag_mode.none": "tanpa {additional}", @@ -220,34 +279,48 @@ "hashtag.column_settings.tag_mode.any": "Semua ini", "hashtag.column_settings.tag_mode.none": "Tak satu pun", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Ikuti tagar", + "hashtag.unfollow": "Batalkan pengikutan tagar", "home.column_settings.basic": "Dasar", "home.column_settings.show_reblogs": "Tampilkan boost", "home.column_settings.show_replies": "Tampilkan balasan", "home.hide_announcements": "Sembunyikan pengumuman", "home.show_announcements": "Tampilkan pengumuman", + "interaction_modal.description.favourite": "Dengan sebuah akun di Mastodon, Anda bisa memfavorit kiriman ini untuk memberi tahu penulis bahwa Anda mengapresiasinya dan menyimpannya untuk nanti.", + "interaction_modal.description.follow": "Dengan sebuah akun di Mastodon, Anda bisa mengikuti {name} untuk menerima kirimannya di beranda Anda.", + "interaction_modal.description.reblog": "Dengan sebuah akun di Mastodon, Anda bisa mem-boost kiriman ini untuk membagikannya ke pengikut Anda sendiri.", + "interaction_modal.description.reply": "Dengan sebuah akun di Mastodon, Anda bisa menanggapi kiriman ini.", + "interaction_modal.on_another_server": "Di server lain", + "interaction_modal.on_this_server": "Di server ini", + "interaction_modal.other_server_instructions": "Salin dan tempel URL ini ke bidang telusur aplikasi Mastodon favorit Anda atau antarmuka web server Mastodon Anda.", + "interaction_modal.preamble": "Karena Mastodon itu terdesentralisasi, Anda dapat menggunakan akun Anda yang sudah ada yang berada di server Mastodon lain atau platform yang kompatibel jika Anda tidak memiliki sebuah akun di sini.", + "interaction_modal.title.favourite": "Favoritkan kiriman {name}", + "interaction_modal.title.follow": "Ikuti {name}", + "interaction_modal.title.reblog": "Boost kiriman {name}", + "interaction_modal.title.reply": "Balas ke kiriman {name}", "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# menit}}", "keyboard_shortcuts.back": "untuk kembali", "keyboard_shortcuts.blocked": "buka daftar pengguna terblokir", "keyboard_shortcuts.boost": "untuk menyebarkan", - "keyboard_shortcuts.column": "untuk fokus kepada sebuah status di sebuah kolom", + "keyboard_shortcuts.column": "Fokus kolom", "keyboard_shortcuts.compose": "untuk fokus ke area penulisan", "keyboard_shortcuts.description": "Deskripsi", "keyboard_shortcuts.direct": "untuk membuka kolom pesan langsung", "keyboard_shortcuts.down": "untuk pindah ke bawah dalam sebuah daftar", - "keyboard_shortcuts.enter": "untuk membuka status", + "keyboard_shortcuts.enter": "Buka kiriman", "keyboard_shortcuts.favourite": "untuk memfavoritkan", "keyboard_shortcuts.favourites": "buka daftar favorit", "keyboard_shortcuts.federated": "buka linimasa gabungan", "keyboard_shortcuts.heading": "Pintasan keyboard", - "keyboard_shortcuts.home": "buka linimasa beranda", + "keyboard_shortcuts.home": "Buka linimasa beranda", "keyboard_shortcuts.hotkey": "Pintasan", "keyboard_shortcuts.legend": "tampilkan legenda ini", "keyboard_shortcuts.local": "buka linimasa lokal", "keyboard_shortcuts.mention": "sebut pencipta", "keyboard_shortcuts.muted": "buka daftar pengguna terbisukan", - "keyboard_shortcuts.my_profile": "buka profil Anda", + "keyboard_shortcuts.my_profile": "Buka profil Anda", "keyboard_shortcuts.notifications": "buka kolom notifikasi", "keyboard_shortcuts.open_media": "membuka media", "keyboard_shortcuts.pinned": "buka daftar toot tersemat", @@ -268,7 +341,7 @@ "lightbox.next": "Selanjutnya", "lightbox.previous": "Sebelumnya", "limited_account_hint.action": "Tetap tampilkan profil", - "limited_account_hint.title": "Profil ini telah disembunyikan oleh moderator server Anda.", + "limited_account_hint.title": "Profil ini telah disembunyikan oleh moderator {domain}.", "lists.account.add": "Tambah ke daftar", "lists.account.remove": "Hapus dari daftar", "lists.delete": "Hapus daftar", @@ -276,7 +349,7 @@ "lists.edit.submit": "Ubah judul", "lists.new.create": "Tambah daftar", "lists.new.title_placeholder": "Judul daftar baru", - "lists.replies_policy.followed": "Siapapun pengguna yang diikuti", + "lists.replies_policy.followed": "Siapa pun pengguna yang diikuti", "lists.replies_policy.list": "Anggota di daftar tersebut", "lists.replies_policy.none": "Tidak ada satu pun", "lists.replies_policy.title": "Tampilkan balasan ke:", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Tampil/Sembunyikan", "missing_indicator.label": "Tidak ditemukan", "missing_indicator.sublabel": "Sumber daya tak bisa ditemukan", + "moved_to_account_banner.text": "Akun {disabledAccount} Anda kini dinonaktifkan karena Anda pindah ke {movedToAccount}.", "mute_modal.duration": "Durasi", "mute_modal.hide_notifications": "Sembunyikan notifikasi dari pengguna ini?", "mute_modal.indefinite": "Tak terbatas", - "navigation_bar.apps": "Aplikasi mobile", + "navigation_bar.about": "Tentang", "navigation_bar.blocks": "Pengguna diblokir", "navigation_bar.bookmarks": "Markah", "navigation_bar.community_timeline": "Linimasa lokal", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Kata yang dibisukan", "navigation_bar.follow_requests": "Permintaan mengikuti", "navigation_bar.follows_and_followers": "Ikuti dan pengikut", - "navigation_bar.info": "Informasi selengkapnya", - "navigation_bar.keyboard_shortcuts": "Pintasan keyboard", "navigation_bar.lists": "Daftar", "navigation_bar.logout": "Keluar", "navigation_bar.mutes": "Pengguna dibisukan", @@ -313,19 +385,23 @@ "navigation_bar.pins": "Toot tersemat", "navigation_bar.preferences": "Pengaturan", "navigation_bar.public_timeline": "Linimasa gabungan", + "navigation_bar.search": "Cari", "navigation_bar.security": "Keamanan", + "not_signed_in_indicator.not_signed_in": "Anda harus masuk untuk mengakses sumber daya ini.", + "notification.admin.report": "{name} melaporkan {target}", "notification.admin.sign_up": "{name} mendaftar", - "notification.favourite": "{name} menyukai status anda", - "notification.follow": "{name} mengikuti anda", + "notification.favourite": "{name} memfavorit kiriman Anda", + "notification.follow": "{name} mengikuti Anda", "notification.follow_request": "{name} ingin mengikuti Anda", "notification.mention": "{name} menyebut Anda", "notification.own_poll": "Japat Anda telah berakhir", "notification.poll": "Japat yang Anda ikuti telah berakhir", - "notification.reblog": "{name} mem-boost status anda", - "notification.status": "{name} baru saja memposting", + "notification.reblog": "{name} mem-boost kiriman Anda", + "notification.status": "{name} baru saja mengirim", "notification.update": "{name} mengedit kiriman", "notifications.clear": "Hapus notifikasi", - "notifications.clear_confirmation": "Apa anda yakin hendak menghapus semua notifikasi anda?", + "notifications.clear_confirmation": "Apa Anda yakin hendak menghapus semua notifikasi Anda?", + "notifications.column_settings.admin.report": "Laporan baru:", "notifications.column_settings.admin.sign_up": "Pendaftaran baru:", "notifications.column_settings.alert": "Notifikasi desktop", "notifications.column_settings.favourite": "Favorit:", @@ -340,7 +416,7 @@ "notifications.column_settings.reblog": "Boost:", "notifications.column_settings.show": "Tampilkan dalam kolom", "notifications.column_settings.sound": "Mainkan suara", - "notifications.column_settings.status": "Toot baru:", + "notifications.column_settings.status": "Kiriman baru:", "notifications.column_settings.unread_notifications.category": "Notifikasi yang belum dibaca", "notifications.column_settings.unread_notifications.highlight": "Sorot notifikasi yang belum dibaca", "notifications.column_settings.update": "Edit:", @@ -359,29 +435,31 @@ "notifications.permission_required": "Notifikasi desktop tidak tersedia karena izin yang dibutuhkan belum disetujui.", "notifications_permission_banner.enable": "Aktifkan notifikasi desktop", "notifications_permission_banner.how_to_control": "Untuk menerima notifikasi saat Mastodon terbuka, aktifkan notifikasi desktop. Anda dapat mengendalikan tipe interaksi mana yang ditampilkan notifikasi desktop melalui tombol {icon} di atas saat sudah aktif.", - "notifications_permission_banner.title": "Jangan lewatkan apapun", + "notifications_permission_banner.title": "Jangan lewatkan apa pun", "picture_in_picture.restore": "Taruh kembali", "poll.closed": "Ditutup", "poll.refresh": "Segarkan", "poll.total_people": "{count, plural, other {# orang}}", "poll.total_votes": "{count, plural, other {# suara}}", - "poll.vote": "Memilih", + "poll.vote": "Pilih", "poll.voted": "Anda memilih jawaban ini", "poll.votes": "{votes, plural, other {# suara}}", "poll_button.add_poll": "Tambah japat", "poll_button.remove_poll": "Hapus japat", - "privacy.change": "Tentukan privasi status", + "privacy.change": "Ubah privasi kiriman", "privacy.direct.long": "Kirim hanya ke pengguna yang disebut", "privacy.direct.short": "Orang yang disebutkan saja", - "privacy.private.long": "Kirim postingan hanya kepada pengikut", + "privacy.private.long": "Kirim kiriman hanya kepada pengikut", "privacy.private.short": "Pengikut saja", "privacy.public.long": "Terlihat oleh semua", "privacy.public.short": "Publik", "privacy.unlisted.long": "Terlihat oleh semua, tapi jangan tampilkan di fitur jelajah", "privacy.unlisted.short": "Tak Terdaftar", + "privacy_policy.last_updated": "Terakhir diperbarui {date}", + "privacy_policy.title": "Kebijakan Privasi", "refresh": "Segarkan", "regeneration_indicator.label": "Memuat…", - "regeneration_indicator.sublabel": "Linimasa anda sedang disiapkan!", + "regeneration_indicator.sublabel": "Beranda Anda sedang disiapkan!", "relative_time.days": "{number}h", "relative_time.full.days": "{number, plural, other {# hari}} yang lalu", "relative_time.full.hours": "{number, plural, other {# jam}} yang lalu", @@ -395,20 +473,20 @@ "relative_time.today": "hari ini", "reply_indicator.cancel": "Batal", "report.block": "Blokir", - "report.block_explanation": "Anda tidak akan melihat postingan mereka. Mereka tidak akan bisa melihat postingan Anda atau mengikuti Anda. Mereka akan mampu menduga bahwa mereka diblokir.", + "report.block_explanation": "Anda tidak akan melihat kiriman mereka. Mereka tidak akan bisa melihat kiriman Anda atau mengikuti Anda. Mereka akan mampu menduga bahwa mereka diblokir.", "report.categories.other": "Lainnya", "report.categories.spam": "Spam", "report.categories.violation": "Konten melanggar satu atau lebih peraturan server", "report.category.subtitle": "Pilih pasangan terbaik", "report.category.title": "Beritahu kami apa yang terjadi dengan {type} ini", "report.category.title_account": "profil", - "report.category.title_status": "postingan", + "report.category.title_status": "kiriman", "report.close": "Selesai", "report.comment.title": "Adakah hal lain yang perlu kami ketahui?", "report.forward": "Teruskan ke {target}", "report.forward_hint": "Akun dari server lain. Kirim salinan laporan scr anonim ke sana?", "report.mute": "Bisukan", - "report.mute_explanation": "Anda tidak akan melihat postingan mereka. Mereka masih dapat mengikuti Anda dan melihat postingan Anda dan tidak akan mengetahui bahwa mereka dibisukan.", + "report.mute_explanation": "Anda tidak akan melihat kiriman mereka. Mereka masih dapat mengikuti Anda dan melihat kiriman Anda dan tidak akan mengetahui bahwa mereka dibisukan.", "report.next": "Selanjutnya", "report.placeholder": "Komentar tambahan", "report.reasons.dislike": "Saya tidak menyukainya", @@ -422,7 +500,7 @@ "report.rules.subtitle": "Pilih semua yang berlaku", "report.rules.title": "Ketentuan manakah yang dilanggar?", "report.statuses.subtitle": "Pilih semua yang berlaku", - "report.statuses.title": "Adakah postingan yang mendukung pelaporan ini?", + "report.statuses.title": "Adakah kiriman yang mendukung pelaporan ini?", "report.submit": "Kirim", "report.target": "Melaporkan", "report.thanks.take_action": "Berikut adalah pilihan Anda untuk mengatur apa yang Anda lihat di Mastodon:", @@ -430,28 +508,44 @@ "report.thanks.title": "Tidak ingin melihat ini?", "report.thanks.title_actionable": "Terima kasih atas pelaporan Anda, kami akan memeriksa ini lebih lanjut.", "report.unfollow": "Berhenti mengikuti @{name}", - "report.unfollow_explanation": "Anda mengikuti akun ini. Untuk tidak melihat postingan mereka di Beranda Anda, berhenti mengikuti mereka.", + "report.unfollow_explanation": "Anda mengikuti akun ini. Untuk tidak melihat kiriman mereka di beranda Anda, berhenti mengikuti mereka.", + "report_notification.attached_statuses": "{count, plural, other {{count} kiriman}} terlampir", + "report_notification.categories.other": "Lainnya", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Pelanggaran peraturan", + "report_notification.open": "Buka laporan", "search.placeholder": "Pencarian", + "search.search_or_paste": "Cari atau ketik URL", "search_popout.search_format": "Format pencarian mahir", - "search_popout.tips.full_text": "Teks simpel menampilkan status yang Anda tulis, favoritkan, boost-kan, atau status yang menyebut Anda, serta nama pengguna, nama yang ditampilkan, dan tagar yang cocok.", + "search_popout.tips.full_text": "Teks simpel memberikan kiriman yang Anda telah tulis, favorit, boost, atau status yang menyebut Anda, serta nama pengguna, nama yang ditampilkan, dan tagar yang cocok.", "search_popout.tips.hashtag": "tagar", - "search_popout.tips.status": "status", + "search_popout.tips.status": "kiriman", "search_popout.tips.text": "Teks sederhana menampilkan nama yang ditampilkan, nama pengguna, dan tagar yang cocok", "search_popout.tips.user": "pengguna", "search_results.accounts": "Orang", "search_results.all": "Semua", "search_results.hashtags": "Tagar", - "search_results.nothing_found": "Tidak dapat menemukan apapun untuk istilah-istilah pencarian ini", - "search_results.statuses": "Toot", - "search_results.statuses_fts_disabled": "Pencarian toot berdasarkan konten tidak diaktifkan di server Mastadon ini.", + "search_results.nothing_found": "Tidak dapat menemukan apa pun untuk istilah-istilah pencarian ini", + "search_results.statuses": "Kiriman", + "search_results.statuses_fts_disabled": "Pencarian kiriman berdasarkan konten tidak diaktifkan di server Mastodon ini.", + "search_results.title": "Cari {q}", "search_results.total": "{count, number} {count, plural, one {hasil} other {hasil}}", - "status.admin_account": "Buka antar muka moderasi untuk @{name}", - "status.admin_status": "Buka status ini dalam antar muka moderasi", + "server_banner.about_active_users": "Orang menggunakan server ini selama 30 hari terakhir (Pengguna Aktif Bulanan)", + "server_banner.active_users": "pengguna aktif", + "server_banner.administered_by": "Dikelola oleh:", + "server_banner.introduction": "{domain} adalah bagian dari jaringan sosial terdesentralisasi yang diberdayakan oleh {mastodon}.", + "server_banner.learn_more": "Pelajari lebih lanjut", + "server_banner.server_stats": "Statistik server:", + "sign_in_banner.create_account": "Buat akun", + "sign_in_banner.sign_in": "Masuk", + "sign_in_banner.text": "Masuk untuk mengikuti profil atau tagar, favorit, bagikan, dan balas ke kiriman, atau berinteraksi dari akun Anda di server yang lain.", + "status.admin_account": "Buka antarmuka moderasi untuk @{name}", + "status.admin_status": "Buka kiriman ini dalam antar muka moderasi", "status.block": "Blokir @{name}", "status.bookmark": "Markah", "status.cancel_reblog_private": "Batalkan boost", - "status.cannot_reblog": "Pos ini tak dapat di-boost", - "status.copy": "Salin tautan ke status", + "status.cannot_reblog": "Kiriman ini tak dapat di-boost", + "status.copy": "Salin tautan ke kiriman", "status.delete": "Hapus", "status.detailed_status": "Tampilan detail percakapan", "status.direct": "Pesan langsung @{name}", @@ -460,45 +554,53 @@ "status.edited_x_times": "Diedit {count, plural, other {{count} kali}}", "status.embed": "Tanam", "status.favourite": "Difavoritkan", + "status.filter": "Saring kiriman ini", "status.filtered": "Disaring", - "status.history.created": "{name} membuat pada {date}", - "status.history.edited": "{name} mengedit pada {date}", + "status.hide": "Sembunyikan toot", + "status.history.created": "{name} membuat {date}", + "status.history.edited": "{name} mengedit {date}", "status.load_more": "Tampilkan semua", "status.media_hidden": "Media disembunyikan", - "status.mention": "Balasan @{name}", + "status.mention": "Sebutkan @{name}", "status.more": "Lebih banyak", "status.mute": "Bisukan @{name}", "status.mute_conversation": "Bisukan percakapan", - "status.open": "Tampilkan status ini", - "status.pin": "Sematkan pada profil", - "status.pinned": "Toot tersemat", + "status.open": "Tampilkan kiriman ini", + "status.pin": "Sematkan di profil", + "status.pinned": "Kiriman tersemat", "status.read_more": "Baca lebih banyak", "status.reblog": "Boost", - "status.reblog_private": "Boost ke audiens asli", - "status.reblogged_by": "di-boost {name}", - "status.reblogs.empty": "Belum ada yang mem-boost toot ini. Ketika seseorang melakukannya, maka akan muncul di sini.", - "status.redraft": "Hapus & redraf", + "status.reblog_private": "Boost dengan visibilitas asli", + "status.reblogged_by": "{name} mem-boost", + "status.reblogs.empty": "Belum ada yang mem-boost toot ini. Ketika seseorang melakukannya, mereka akan muncul di sini.", + "status.redraft": "Hapus & draf ulang", "status.remove_bookmark": "Hapus markah", + "status.replied_to": "Membalas ke {name}", "status.reply": "Balas", - "status.replyAll": "Balas ke semua", + "status.replyAll": "Balas ke utasan", "status.report": "Laporkan @{name}", "status.sensitive_warning": "Konten sensitif", "status.share": "Bagikan", + "status.show_filter_reason": "Tampilkan saja", "status.show_less": "Tampilkan lebih sedikit", - "status.show_less_all": "Tampilkan lebih sedikit", + "status.show_less_all": "Tampilkan lebih sedikit untuk semua", "status.show_more": "Tampilkan semua", - "status.show_more_all": "Tampilkan lebih banyak", - "status.show_thread": "Tampilkan utas", - "status.uncached_media_warning": "Tak tersedia", + "status.show_more_all": "Tampilkan lebih banyak untuk semua", + "status.show_original": "Tampilkan yang asli", + "status.translate": "Terjemahkan", + "status.translated_from_with": "Diterjemahkan dari {lang} menggunakan {provider}", + "status.uncached_media_warning": "Tidak tersedia", "status.unmute_conversation": "Bunyikan percakapan", "status.unpin": "Hapus sematan dari profil", + "subscribed_languages.lead": "Hanya kiriman dalam bahasa yang dipilih akan muncul di linimasa beranda dan daftar setelah perubahan. Pilih tidak ada untuk menerima kiriman dalam semua bahasa.", + "subscribed_languages.save": "Simpan perubahan", + "subscribed_languages.target": "Ubah langganan bahasa untuk {target}", "suggestions.dismiss": "Hentikan saran", - "suggestions.header": "Anda mungkin tertarik dg…", + "suggestions.header": "Anda mungkin tertarik dengan…", "tabs_bar.federated_timeline": "Gabungan", "tabs_bar.home": "Beranda", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Notifikasi", - "tabs_bar.search": "Cari", "time_remaining.days": "{number, plural, other {# hari}} tersisa", "time_remaining.hours": "{number, plural, other {# jam}} tersisa", "time_remaining.minutes": "{number, plural, other {# menit}} tersisa", @@ -507,10 +609,10 @@ "timeline_hint.remote_resource_not_displayed": "{resource} dari server lain tidak ditampilkan.", "timeline_hint.resources.followers": "Pengikut", "timeline_hint.resources.follows": "Ikuti", - "timeline_hint.resources.statuses": "Toot lama", - "trends.counter_by_accounts": "{count, plural, other {{counter} orang}} berbicara", + "timeline_hint.resources.statuses": "Kiriman lama", + "trends.counter_by_accounts": "{count, plural, other {{counter} orang}} dalam {days, plural, other {{days} hari}} terakhir", "trends.trending_now": "Sedang tren sekarang", - "ui.beforeunload": "Naskah anda akan hilang jika anda keluar dari Mastodon.", + "ui.beforeunload": "Draf Anda akan hilang jika Anda keluar dari Mastodon.", "units.short.billion": "{count}M", "units.short.million": "{count}Jt", "units.short.thousand": "{count}Rb", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Menyiapkan OCR…", "upload_modal.preview_label": "Pratinjau ({ratio})", "upload_progress.label": "Mengunggah...", + "upload_progress.processing": "Memproses…", "video.close": "Tutup video", "video.download": "Unduh berkas", "video.exit_fullscreen": "Keluar dari layar penuh", diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json new file mode 100644 index 00000000000000..67f9c0c0a41ba4 --- /dev/null +++ b/app/javascript/mastodon/locales/ig.json @@ -0,0 +1,652 @@ +{ + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", + "account.account_note_header": "Note", + "account.add_or_remove_from_list": "Tinye ma ọ bụ Wepu na ndepụta", + "account.badges.bot": "Bot", + "account.badges.group": "Group", + "account.block": "Block @{name}", + "account.block_domain": "Block domain {domain}", + "account.blocked": "Blocked", + "account.browse_more_on_origin_server": "Browse more on the original profile", + "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "Direct message @{name}", + "account.disable_notifications": "Stop notifying me when @{name} posts", + "account.domain_blocked": "Domain blocked", + "account.edit_profile": "Edit profile", + "account.enable_notifications": "Notify me when @{name} posts", + "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", + "account.follow": "Soro", + "account.followers": "Followers", + "account.followers.empty": "No one follows this user yet.", + "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", + "account.following": "Following", + "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", + "account.follows.empty": "This user doesn't follow anyone yet.", + "account.follows_you": "Na-eso gị", + "account.go_to_profile": "Go to profile", + "account.hide_reblogs": "Hide boosts from @{name}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", + "account.link_verified_on": "Ownership of this link was checked on {date}", + "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.media": "Media", + "account.mention": "Mention @{name}", + "account.moved_to": "{name} has indicated that their new account is now:", + "account.mute": "Mee ogbi @{name}", + "account.mute_notifications": "Mute notifications from @{name}", + "account.muted": "Muted", + "account.open_original_page": "Open original page", + "account.posts": "Posts", + "account.posts_with_replies": "Posts and replies", + "account.report": "Report @{name}", + "account.requested": "Awaiting approval. Click to cancel follow request", + "account.share": "Share @{name}'s profile", + "account.show_reblogs": "Show boosts from @{name}", + "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", + "account.unblock": "Unblock @{name}", + "account.unblock_domain": "Unblock domain {domain}", + "account.unblock_short": "Unblock", + "account.unendorse": "Don't feature on profile", + "account.unfollow": "Kwụsị iso", + "account.unmute": "Unmute @{name}", + "account.unmute_notifications": "Unmute notifications from @{name}", + "account.unmute_short": "Unmute", + "account_note.placeholder": "Click to add a note", + "admin.dashboard.daily_retention": "User retention rate by day after sign-up", + "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.retention.average": "Average", + "admin.dashboard.retention.cohort": "Sign-up month", + "admin.dashboard.retention.cohort_size": "Ojiarụ ọhụrụ", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", + "alert.unexpected.message": "An unexpected error occurred.", + "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", + "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Zoo ụda", + "autosuggest_hashtag.per_week": "{count} per week", + "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", + "bundle_column_error.retry": "Nwaa ọzọ", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Nwaa ọzọ", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "Maka", + "column.blocks": "Ojiarụ egbochiri", + "column.bookmarks": "Ebenrụtụakā", + "column.community": "Local timeline", + "column.direct": "Direct messages", + "column.directory": "Browse profiles", + "column.domain_blocks": "Blocked domains", + "column.favourites": "Favourites", + "column.follow_requests": "Follow requests", + "column.home": "Be", + "column.lists": "Lists", + "column.mutes": "Muted users", + "column.notifications": "Notifications", + "column.pins": "Pinned post", + "column.public": "Federated timeline", + "column_back_button.label": "Back", + "column_header.hide_settings": "Hide settings", + "column_header.moveLeft_settings": "Move column to the left", + "column_header.moveRight_settings": "Move column to the right", + "column_header.pin": "Pin", + "column_header.show_settings": "Show settings", + "column_header.unpin": "Unpin", + "column_subheading.settings": "Mwube", + "community.column_settings.local_only": "Local only", + "community.column_settings.media_only": "Media only", + "community.column_settings.remote_only": "Remote only", + "compose.language.change": "Gbanwee asụsụ", + "compose.language.search": "Chọọ asụsụ...", + "compose_form.direct_message_warning_learn_more": "Learn more", + "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", + "compose_form.lock_disclaimer.lock": "locked", + "compose_form.placeholder": "What is on your mind?", + "compose_form.poll.add_option": "Add a choice", + "compose_form.poll.duration": "Poll duration", + "compose_form.poll.option_placeholder": "Choice {number}", + "compose_form.poll.remove_option": "Remove this choice", + "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", + "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", + "compose_form.publish": "Publish", + "compose_form.publish_loud": "{publish}!", + "compose_form.save_changes": "Save changes", + "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", + "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", + "compose_form.spoiler.marked": "Text is hidden behind warning", + "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.spoiler_placeholder": "Write your warning here", + "confirmation_modal.cancel": "Kagbuo", + "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.confirm": "Block", + "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.delete.confirm": "Hichapụ", + "confirmations.delete.message": "Are you sure you want to delete this status?", + "confirmations.delete_list.confirm": "Hichapụ", + "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.discard_edit_media.confirm": "Discard", + "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.mute.confirm": "Mute", + "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", + "confirmations.mute.message": "Are you sure you want to mute {name}?", + "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", + "confirmations.reply.confirm": "Zaa", + "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.unfollow.confirm": "Unfollow", + "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "conversation.delete": "Hichapụ nkata", + "conversation.mark_as_read": "Mark as read", + "conversation.open": "View conversation", + "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "embed.instructions": "Embed this status on your website by copying the code below.", + "embed.preview": "Here is what it will look like:", + "emoji_button.activity": "Activity", + "emoji_button.clear": "Clear", + "emoji_button.custom": "Custom", + "emoji_button.flags": "Flags", + "emoji_button.food": "Food & Drink", + "emoji_button.label": "Insert emoji", + "emoji_button.nature": "Nature", + "emoji_button.not_found": "No matching emojis found", + "emoji_button.objects": "Objects", + "emoji_button.people": "People", + "emoji_button.recent": "Frequently used", + "emoji_button.search": "Chọọ...", + "emoji_button.search_results": "Search results", + "emoji_button.symbols": "Symbols", + "emoji_button.travel": "Travel & Places", + "empty_column.account_suspended": "Account suspended", + "empty_column.account_timeline": "No posts found", + "empty_column.account_unavailable": "Profile unavailable", + "empty_column.blocks": "You haven't blocked any users yet.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.domain_blocks": "There are no blocked domains yet.", + "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", + "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.hashtag": "There is nothing in this hashtag yet.", + "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.home.suggestions": "See some suggestions", + "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", + "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", + "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", + "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.", + "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", + "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", + "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", + "errors.unexpected_crash.report_issue": "Kpesa nsogbu", + "explore.search_results": "Search results", + "explore.suggested_follows": "For you", + "explore.title": "Explore", + "explore.trending_links": "News", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", + "follow_recommendations.done": "Done", + "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", + "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", + "follow_request.authorize": "Authorize", + "follow_request.reject": "Reject", + "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Iwu nzuzu", + "footer.source_code": "View source code", + "generic.saved": "Saved", + "getting_started.heading": "Mbido", + "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", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", + "home.column_settings.basic": "Basic", + "home.column_settings.show_reblogs": "Show boosts", + "home.column_settings.show_replies": "Show replies", + "home.hide_announcements": "Hide announcements", + "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", + "intervals.full.days": "{number, plural, one {# day} other {# days}}", + "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "keyboard_shortcuts.back": "to navigate back", + "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.boost": "to boost", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.down": "to move down in the list", + "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.favourite": "to favourite", + "keyboard_shortcuts.favourites": "to open favourites list", + "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.legend": "to display this legend", + "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.mention": "to mention author", + "keyboard_shortcuts.muted": "to open muted users list", + "keyboard_shortcuts.my_profile": "to open your profile", + "keyboard_shortcuts.notifications": "to open notifications column", + "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.pinned": "to open pinned posts list", + "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.spoilers": "to show/hide CW field", + "keyboard_shortcuts.start": "to open \"get started\" column", + "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", + "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toot": "to start a brand new post", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "to move up in the list", + "lightbox.close": "Close", + "lightbox.compress": "Compress image view box", + "lightbox.expand": "Expand image view box", + "lightbox.next": "Next", + "lightbox.previous": "Previous", + "limited_account_hint.action": "Show profile anyway", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "lists.account.add": "Add to list", + "lists.account.remove": "Remove from list", + "lists.delete": "Hichapụ ndepụta", + "lists.edit": "Edit list", + "lists.edit.submit": "Change title", + "lists.new.create": "Add list", + "lists.new.title_placeholder": "New list title", + "lists.replies_policy.followed": "Any followed user", + "lists.replies_policy.list": "Members of the list", + "lists.replies_policy.none": "No one", + "lists.replies_policy.title": "Show replies to:", + "lists.search": "Search among people you follow", + "lists.subheading": "Ndepụta gị", + "load_pending": "{count, plural, one {# new item} other {# new items}}", + "loading_indicator.label": "Na-adọnye...", + "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", + "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", + "mute_modal.duration": "Duration", + "mute_modal.hide_notifications": "Hide notifications from this user?", + "mute_modal.indefinite": "Indefinite", + "navigation_bar.about": "Maka", + "navigation_bar.blocks": "Blocked users", + "navigation_bar.bookmarks": "Ebenrụtụakā", + "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.compose": "Compose new post", + "navigation_bar.direct": "Direct messages", + "navigation_bar.discover": "Discover", + "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.edit_profile": "Edit profile", + "navigation_bar.explore": "Explore", + "navigation_bar.favourites": "Favourites", + "navigation_bar.filters": "Muted words", + "navigation_bar.follow_requests": "Follow requests", + "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.lists": "Ndepụta", + "navigation_bar.logout": "Logout", + "navigation_bar.mutes": "Muted users", + "navigation_bar.personal": "Personal", + "navigation_bar.pins": "Pinned posts", + "navigation_bar.preferences": "Preferences", + "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", + "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", + "notification.admin.sign_up": "{name} signed up", + "notification.favourite": "{name} favourited your status", + "notification.follow": "{name} followed you", + "notification.follow_request": "{name} has requested to follow you", + "notification.mention": "{name} mentioned you", + "notification.own_poll": "Your poll has ended", + "notification.poll": "A poll you have voted in has ended", + "notification.reblog": "{name} boosted your status", + "notification.status": "{name} just posted", + "notification.update": "{name} edited a post", + "notifications.clear": "Clear notifications", + "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", + "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.alert": "Desktop notifications", + "notifications.column_settings.favourite": "Favourites:", + "notifications.column_settings.filter_bar.advanced": "Display all categories", + "notifications.column_settings.filter_bar.category": "Quick filter bar", + "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.follow": "New followers:", + "notifications.column_settings.follow_request": "New follow requests:", + "notifications.column_settings.mention": "Mentions:", + "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.push": "Push notifications", + "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.show": "Show in column", + "notifications.column_settings.sound": "Play sound", + "notifications.column_settings.status": "New posts:", + "notifications.column_settings.unread_notifications.category": "Unread notifications", + "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.update": "Edits:", + "notifications.filter.all": "All", + "notifications.filter.boosts": "Boosts", + "notifications.filter.favourites": "Favourites", + "notifications.filter.follows": "Follows", + "notifications.filter.mentions": "Mentions", + "notifications.filter.polls": "Poll results", + "notifications.filter.statuses": "Updates from people you follow", + "notifications.grant_permission": "Grant permission.", + "notifications.group": "{count} notifications", + "notifications.mark_as_read": "Mark every notification as read", + "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", + "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", + "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", + "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.title": "Never miss a thing", + "picture_in_picture.restore": "Put it back", + "poll.closed": "Closed", + "poll.refresh": "Refresh", + "poll.total_people": "{count, plural, one {# person} other {# people}}", + "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", + "poll.vote": "Vote", + "poll.voted": "You voted for this answer", + "poll.votes": "{votes, plural, one {# vote} other {# votes}}", + "poll_button.add_poll": "Add a poll", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Adjust status privacy", + "privacy.direct.long": "Visible for mentioned users only", + "privacy.direct.short": "Direct", + "privacy.private.long": "Visible for followers only", + "privacy.private.short": "Followers-only", + "privacy.public.long": "Visible for all", + "privacy.public.short": "Public", + "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", + "refresh": "Refresh", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "relative_time.days": "{number}d", + "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", + "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", + "relative_time.full.just_now": "just now", + "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", + "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.hours": "{number}h", + "relative_time.just_now": "kịta", + "relative_time.minutes": "{number}m", + "relative_time.seconds": "{number}s", + "relative_time.today": "taa", + "reply_indicator.cancel": "Kagbuo", + "report.block": "Block", + "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", + "report.categories.other": "Ọzọ", + "report.categories.spam": "Spam", + "report.categories.violation": "Content violates one or more server rules", + "report.category.subtitle": "Choose the best match", + "report.category.title": "Tell us what's going on with this {type}", + "report.category.title_account": "profile", + "report.category.title_status": "post", + "report.close": "Done", + "report.comment.title": "Is there anything else you think we should know?", + "report.forward": "Forward to {target}", + "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "report.mute": "Mute", + "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", + "report.next": "Next", + "report.placeholder": "Type or paste additional comments", + "report.reasons.dislike": "I don't like it", + "report.reasons.dislike_description": "It is not something you want to see", + "report.reasons.other": "It's something else", + "report.reasons.other_description": "The issue does not fit into other categories", + "report.reasons.spam": "It's spam", + "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", + "report.reasons.violation": "It violates server rules", + "report.reasons.violation_description": "You are aware that it breaks specific rules", + "report.rules.subtitle": "Select all that apply", + "report.rules.title": "Which rules are being violated?", + "report.statuses.subtitle": "Select all that apply", + "report.statuses.title": "Are there any posts that back up this report?", + "report.submit": "Submit report", + "report.target": "Report {target}", + "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", + "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.title": "Don't want to see this?", + "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.unfollow": "Unfollow @{name}", + "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", + "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", + "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": "ojiarụ", + "search_results.accounts": "People", + "search_results.all": "All", + "search_results.hashtags": "Hashtags", + "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.statuses": "Posts", + "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", + "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "ojiarụ dị ìrè", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "status.admin_account": "Open moderation interface for @{name}", + "status.admin_status": "Open this status in the moderation interface", + "status.block": "Block @{name}", + "status.bookmark": "Kee ebenrụtụakā", + "status.cancel_reblog_private": "Unboost", + "status.cannot_reblog": "This post cannot be boosted", + "status.copy": "Copy link to status", + "status.delete": "Hichapụ", + "status.detailed_status": "Detailed conversation view", + "status.direct": "Direct message @{name}", + "status.edit": "Edit", + "status.edited": "Edited {date}", + "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.embed": "Embed", + "status.favourite": "Favourite", + "status.filter": "Filter this post", + "status.filtered": "Filtered", + "status.hide": "Hide toot", + "status.history.created": "{name} created {date}", + "status.history.edited": "{name} edited {date}", + "status.load_more": "Load more", + "status.media_hidden": "Media hidden", + "status.mention": "Mention @{name}", + "status.more": "More", + "status.mute": "Mute @{name}", + "status.mute_conversation": "Mute conversation", + "status.open": "Expand this status", + "status.pin": "Pin on profile", + "status.pinned": "Pinned post", + "status.read_more": "Read more", + "status.reblog": "Boost", + "status.reblog_private": "Boost with original visibility", + "status.reblogged_by": "{name} boosted", + "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", + "status.redraft": "Delete & re-draft", + "status.remove_bookmark": "Wepu ebenrụtụakā", + "status.replied_to": "Replied to {name}", + "status.reply": "Reply", + "status.replyAll": "Reply to thread", + "status.report": "Report @{name}", + "status.sensitive_warning": "Sensitive content", + "status.share": "Share", + "status.show_filter_reason": "Show anyway", + "status.show_less": "Show less", + "status.show_less_all": "Show less for all", + "status.show_more": "Show more", + "status.show_more_all": "Show more for all", + "status.show_original": "Show original", + "status.translate": "Tụgharịa", + "status.translated_from_with": "Translated from {lang} using {provider}", + "status.uncached_media_warning": "Not available", + "status.unmute_conversation": "Unmute conversation", + "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", + "suggestions.dismiss": "Dismiss suggestion", + "suggestions.header": "You might be interested in…", + "tabs_bar.federated_timeline": "Federated", + "tabs_bar.home": "Be", + "tabs_bar.local_timeline": "Local", + "tabs_bar.notifications": "Nziọkwà", + "time_remaining.days": "{number, plural, one {# day} other {# days}} left", + "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", + "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", + "time_remaining.moments": "Moments remaining", + "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", + "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", + "timeline_hint.resources.followers": "Ndị na-eso", + "timeline_hint.resources.follows": "Follows", + "timeline_hint.resources.statuses": "Older posts", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "Na-ewu ewu kịta", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "units.short.billion": "{count}B", + "units.short.million": "{count}M", + "units.short.thousand": "{count}K", + "upload_area.title": "Drag & drop to upload", + "upload_button.label": "Add images, a video or an audio file", + "upload_error.limit": "File upload limit exceeded.", + "upload_error.poll": "File upload not allowed with polls.", + "upload_form.audio_description": "Describe for people with hearing loss", + "upload_form.description": "Describe for the visually impaired", + "upload_form.description_missing": "No description added", + "upload_form.edit": "Edit", + "upload_form.thumbnail": "Change thumbnail", + "upload_form.undo": "Hichapụ", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", + "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.apply": "Apply", + "upload_modal.applying": "Applying…", + "upload_modal.choose_image": "Họrọ onyonyo", + "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.detect_text": "Detect text from picture", + "upload_modal.edit_media": "Edit media", + "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", + "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.preview_label": "Preview ({ratio})", + "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", + "video.close": "Close video", + "video.download": "Download file", + "video.exit_fullscreen": "Exit full screen", + "video.expand": "Expand video", + "video.fullscreen": "Full screen", + "video.hide": "Hide video", + "video.mute": "Mute sound", + "video.pause": "Pause", + "video.play": "Play", + "video.unmute": "Unmute sound" +} diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index bb13779f34ad3e..6a294928d5cc53 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -1,4 +1,16 @@ { + "about.blocks": "Jerata servili", + "about.contact": "Kontaktajo:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generale permisas on vidar kontenajo e interagar kun uzanti de irga altra servilo en fediverso. Existas eceptioni quo facesis che ca partikulara servilo.", + "about.domain_blocks.silenced.explanation": "On generale ne vidar profili e kontenajo de ca servilo, se on ne reale trovar o voluntale juntar per sequar.", + "about.domain_blocks.silenced.title": "Limitizita", + "about.domain_blocks.suspended.explanation": "Nula informi de ca servili procedagesos o retenesos o interchanjesos, do irga interago o komuniko kun uzanti de ca servili esas neposibla.", + "about.domain_blocks.suspended.title": "Restriktita", + "about.not_available": "Ca informo ne igesis che ca servilo.", + "about.powered_by": "Necentraligita sociala ret quo povigesas da {mastodon}", + "about.rules": "Servilreguli", "account.account_note_header": "Noto", "account.add_or_remove_from_list": "Insertez o removez de listi", "account.badges.bot": "Boto", @@ -7,13 +19,16 @@ "account.block_domain": "Hide everything from {domain}", "account.blocked": "Restriktita", "account.browse_more_on_origin_server": "Videz pluse che originala profilo", - "account.cancel_follow_request": "Removez sequodemando", + "account.cancel_follow_request": "Desendez sequodemando", "account.direct": "Direct Message @{name}", "account.disable_notifications": "Cesez avizar me kande @{name} postas", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Modifikar profilo", "account.enable_notifications": "Avizez me kande @{name} postas", "account.endorse": "Traito di profilo", + "account.featured_tags.last_status_at": "Antea posto ye {date}", + "account.featured_tags.last_status_never": "Nula posti", + "account.featured_tags.title": "Estalita hashtagi di {name}", "account.follow": "Sequar", "account.followers": "Sequanti", "account.followers.empty": "Nulu sequas ca uzanto til nun.", @@ -22,23 +37,26 @@ "account.following_counter": "{count, plural, one {{counter} Sequas} other {{counter} Sequanti}}", "account.follows.empty": "Ca uzanto ne sequa irgu til nun.", "account.follows_you": "Sequas tu", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Celez busti de @{name}", - "account.joined": "Juntas ye {date}", + "account.joined_short": "Joined", + "account.languages": "Chanjez abonita lingui", "account.link_verified_on": "Proprieteso di ca ligilo kontrolesis ye {date}", "account.locked_info": "La privatesostaco di ca konto fixesas quale lokata. Proprietato manue kontrolas personi qui povas sequar.", "account.media": "Medio", "account.mention": "Mencionar @{name}", - "account.moved_to": "{name} movesis a:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Celar @{name}", "account.mute_notifications": "Silencigez avizi de @{name}", "account.muted": "Silencigata", + "account.open_original_page": "Open original page", "account.posts": "Mesaji", - "account.posts_with_replies": "Toots with replies", + "account.posts_with_replies": "Posti e respondi", "account.report": "Denuncar @{name}", "account.requested": "Vartante aprobo", "account.share": "Partigez profilo di @{name}", "account.show_reblogs": "Montrez busti de @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", + "account.statuses_counter": "{count, plural, one {{counter} Posto} other {{counter} Posti}}", "account.unblock": "Desblokusar @{name}", "account.unblock_domain": "Unhide {domain}", "account.unblock_short": "Derestriktez", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Problemo!", "announcement.announcement": "Anunco", "attachments_list.unprocessed": "(neprocedita)", + "audio.hide": "Celez audio", "autosuggest_hashtag.per_week": "{count} dum singla semano", "boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo", - "bundle_column_error.body": "Nulo ne functionis dum chargar ca kompozaj.", + "bundle_column_error.copy_stacktrace": "Kopierorraporto", + "bundle_column_error.error.body": "La demandita pagino ne povas strukturigesar. Forsan ol esas eroro en kodexo hike o vidilkoncilieblesproblemo.", + "bundle_column_error.error.title": "Ach!", + "bundle_column_error.network.body": "Havas eroro kande probar montrar ca pagino. Forsan ol esas tempala problemo kun vua retkonekteso o ca servilo.", + "bundle_column_error.network.title": "Reteroro", "bundle_column_error.retry": "Probez itere", - "bundle_column_error.title": "Rederor", + "bundle_column_error.return": "Irez a hemo", + "bundle_column_error.routing.body": "Demandita pagino ne povas trovesar. Ka vu certe ke URL en situobuxo esar korekta?", + "bundle_column_error.routing.title": "Eroro di 404", "bundle_modal_error.close": "Klozez", "bundle_modal_error.message": "Nulo ne functionis dum chargar ca kompozaj.", "bundle_modal_error.retry": "Probez itere", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "Pri co", "column.blocks": "Blokusita uzeri", "column.bookmarks": "Libromarki", "column.community": "Lokala tempolineo", @@ -95,7 +126,7 @@ "compose.language.change": "Chanjez linguo", "compose.language.search": "Trovez linguo...", "compose_form.direct_message_warning_learn_more": "Lernez pluse", - "compose_form.encryption_warning": "Posti di Mastodon ne intersequante chifrigesas. Ne partigez irga danjera informo che Mastodon.", + "compose_form.encryption_warning": "Posti en Mastodon ne intersequante chifrigesas. Ne partigez irga privata informo che Mastodon.", "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", "compose_form.lock_disclaimer": "Vua konto ne esas {locked}. Irgu povas sequar vu por vidar vua sequanto-nura posti.", "compose_form.lock_disclaimer.lock": "klefagesas", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Efacez ca selektajo", "compose_form.poll.switch_to_multiple": "Chanjez votposto por permisar multiselektaji", "compose_form.poll.switch_to_single": "Chanjez votposto por permisar una selektajo", - "compose_form.publish": "Siflar", + "compose_form.publish": "Publikigez", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Sparez chanji", "compose_form.sensitive.hide": "{count, plural,one {Markizez medii quale privata} other {Markizez medii quale privata}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Restriktez e Raportizez", "confirmations.block.confirm": "Restriktez", "confirmations.block.message": "Ka vu certe volas restrikar {name}?", + "confirmations.cancel_follow_request.confirm": "Desendez demando", + "confirmations.cancel_follow_request.message": "Ka vu certe volas desendar vua demando di sequar {name}?", "confirmations.delete.confirm": "Efacez", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Efacez", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Markizez quale lektita", "conversation.open": "Videz konverso", "conversation.with": "Kun {names}", + "copypaste.copied": "Kopiesis", + "copypaste.copy": "Kopiez", "directory.federated": "De savita fediverso", "directory.local": "De {domain} nur", "directory.new_arrivals": "Nova venanti", "directory.recently_active": "Recenta aktivo", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "Co esas maxim recenta publika posti de personi quo havas konto quo hostigesas da {domain}.", + "dismissable_banner.dismiss": "Ignorez", + "dismissable_banner.explore_links": "Ca nova rakonti parolesas da personi che ca e altra servili di necentraligita situo nun.", + "dismissable_banner.explore_statuses": "Ca posti de ca e altra servili en la necentraligita situo bezonas plu famoza che ca servilo nun.", + "dismissable_banner.explore_tags": "Ca hashtagi bezonas plu famoza inter personi che ca e altra servili di la necentraligita situo nun.", + "dismissable_banner.public_timeline": "Co esas maxim recenta publika posti de personi en ca e altra servili di la necentraligita situo quo savesas da ca servilo.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Co esas quon ol semblos tale:", "emoji_button.activity": "Ago", @@ -177,7 +220,7 @@ "empty_column.follow_recommendations": "Semblas tale nula sugestato povas facesar por vu. Vu povas probar trovar personi quon vu forsan konocas o exploras tendenca hashtagi.", "empty_column.follow_requests": "Vu ne havas irga sequodemandi til nun. Kande vu ganas talo, ol montresos hike.", "empty_column.hashtag": "Esas ankore nulo en ta gretovorto.", - "empty_column.home": "Tu sequas ankore nulu. Vizitez {public} od uzez la serchilo por komencar e renkontrar altra uzeri.", + "empty_column.home": "Vua hemtempolineo esas vakua! Sequez plu multa personi por plenigar lu. {suggestions}", "empty_column.home.suggestions": "Videz ula sugestati", "empty_column.list": "There is nothing in this list yet.", "empty_column.lists": "Vu ne havas irga listi til nun. Kande vu kreas talo, ol montresos hike.", @@ -193,24 +236,40 @@ "explore.search_results": "Trovuri", "explore.suggested_follows": "Por vu", "explore.title": "Explorez", - "explore.trending_links": "Niuz", + "explore.trending_links": "Niuzi", "explore.trending_statuses": "Posti", "explore.trending_tags": "Hashtagi", + "filter_modal.added.context_mismatch_explanation": "Ca filtrilgrupo ne relatesas kun informo de ca acesesita posto. Se vu volas posto filtresar kun ca informo anke, vu bezonas modifikar filtrilo.", + "filter_modal.added.context_mismatch_title": "Kontenajneparigeso!", + "filter_modal.added.expired_explanation": "Ca filtrilgrupo expiris, vu bezonas chanjar expirtempo por apliko.", + "filter_modal.added.expired_title": "Expirinta filtrilo!", + "filter_modal.added.review_and_configure": "Por kontrolar e plue ajustar ca filtrilgrupo, irez a {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filtrilopcioni", + "filter_modal.added.settings_link": "opcionpagino", + "filter_modal.added.short_explanation": "Ca posto adjuntesas a ca filtrilgrupo: {title}.", + "filter_modal.added.title": "Filtrilo adjuntesas!", + "filter_modal.select_filter.context_mismatch": "ne relatesas kun ca informo", + "filter_modal.select_filter.expired": "expiris", + "filter_modal.select_filter.prompt_new": "Nova grupo: {name}", + "filter_modal.select_filter.search": "Trovez o kreez", + "filter_modal.select_filter.subtitle": "Usez disponebla grupo o kreez novajo", + "filter_modal.select_filter.title": "Filtragez ca posto", + "filter_modal.title.status": "Filtragez posto", "follow_recommendations.done": "Fina", "follow_recommendations.heading": "Sequez personi quo igas posti quon vu volas vidar! Hike esas ula sugestati.", "follow_recommendations.lead": "Posti de personi quon vu sequas kronologiale montresos en vua hemniuzeto. Ne timas igar erori, vu povas desequar personi tam same facila irgatempe!", "follow_request.authorize": "Yurizar", "follow_request.reject": "Refuzar", "follow_requests.unlocked_explanation": "Quankam vua konto ne klefklozesis, la {domain} laborero pensas ke vu forsan volas kontralar sequodemandi de ca konti manuale.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Sparesis", - "getting_started.developers": "Developeri", - "getting_started.directory": "Profilcheflisto", - "getting_started.documentation": "Dokumentajo", "getting_started.heading": "Debuto", - "getting_started.invite": "Invitez personi", - "getting_started.open_source_notice": "Mastodon esas programaro kun apertita kodexo. Tu povas kontributar o signalar problemi en GitHub ye {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Servkondicioni", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Irga co", "hashtag.column_settings.tag_mode.none": "Nula co", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Sequez hashtago", + "hashtag.unfollow": "Desequez hashtago", "home.column_settings.basic": "Simpla", "home.column_settings.show_reblogs": "Montrar repeti", "home.column_settings.show_replies": "Montrar respondi", "home.hide_announcements": "Celez anunci", "home.show_announcements": "Montrez anunci", + "interaction_modal.description.favourite": "Per konto che Mastodon, vu povas favorizar ca posto por savigar postero ke vu gratitudizar lu e retenar por la futuro.", + "interaction_modal.description.follow": "Per konto che Mastodon, vu povas sequar {name} por ganar ola posti en vua hemniuzeto.", + "interaction_modal.description.reblog": "Per konto che Mastodon, vu povas bustizar ca posti por partigar kun sua sequanti.", + "interaction_modal.description.reply": "Per konto che Mastodon, vu povas respondar ca posto.", + "interaction_modal.on_another_server": "Che diferanta servilo", + "interaction_modal.on_this_server": "Che ca servilo", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Pro ke Mastodon esas necentraligita, on povas uzar vua havata konto quo hostigesas altra servilo di Mastodon o konciliebla metodo se on ne havas konto hike.", + "interaction_modal.title.favourite": "Favorata posto di {name}", + "interaction_modal.title.follow": "Sequez {name}", + "interaction_modal.title.reblog": "Bustizez posto di {name}", + "interaction_modal.title.reply": "Respondez posto di {name}", "intervals.full.days": "{number, plural, one {# dio} other {# dii}}", "intervals.full.hours": "{number, plural, one {# horo} other {# hori}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}", @@ -268,7 +341,7 @@ "lightbox.next": "Nexta", "lightbox.previous": "Antea", "limited_account_hint.action": "Jus montrez profilo", - "limited_account_hint.title": "Ca profilo celesas da jerero di vua servilo.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Insertez a listo", "lists.account.remove": "Efacez de listo", "lists.delete": "Efacez listo", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Chanjar videbleso", "missing_indicator.label": "Ne trovita", "missing_indicator.sublabel": "Ca moyeno ne existas", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Durado", "mute_modal.hide_notifications": "Celez avizi de ca uzanto?", "mute_modal.indefinite": "Nedefinitiva", - "navigation_bar.apps": "Smartfonsoftwari", + "navigation_bar.about": "Pri co", "navigation_bar.blocks": "Blokusita uzeri", "navigation_bar.bookmarks": "Libromarki", "navigation_bar.community_timeline": "Lokala tempolineo", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Silencigita vorti", "navigation_bar.follow_requests": "Demandi di sequado", "navigation_bar.follows_and_followers": "Sequati e sequanti", - "navigation_bar.info": "Detaloza informi", - "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.lists": "Listi", "navigation_bar.logout": "Ekirar", "navigation_bar.mutes": "Celita uzeri", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferi", "navigation_bar.public_timeline": "Federata tempolineo", + "navigation_bar.search": "Search", "navigation_bar.security": "Sekureso", + "not_signed_in_indicator.not_signed_in": "Vu mustas enirar por acesar ca moyeno.", + "notification.admin.report": "{name} raportizis {target}", "notification.admin.sign_up": "{name} registresis", "notification.favourite": "{name} favorizis tua mesajo", "notification.follow": "{name} sequeskis tu", @@ -326,6 +401,7 @@ "notification.update": "{name} modifikis posto", "notifications.clear": "Efacar savigi", "notifications.clear_confirmation": "Ka tu esas certa, ke tu volas efacar omna tua savigi?", + "notifications.column_settings.admin.report": "Nova raporti:", "notifications.column_settings.admin.sign_up": "Nova registranti:", "notifications.column_settings.alert": "Desktopavizi", "notifications.column_settings.favourite": "Favorati:", @@ -350,7 +426,7 @@ "notifications.filter.follows": "Sequati", "notifications.filter.mentions": "Mencioni", "notifications.filter.polls": "Votpostorezulti", - "notifications.filter.statuses": "Niuz de personi quon vu sequas", + "notifications.filter.statuses": "Novaji de personi quon vu sequas", "notifications.grant_permission": "Donez permiso.", "notifications.group": "{count} avizi", "notifications.mark_as_read": "Markizez singla avizi quale lektita", @@ -379,6 +455,8 @@ "privacy.public.short": "Publike", "privacy.unlisted.long": "Videbla da omnu ma voluntala ne inkluzas deskovrotraiti", "privacy.unlisted.short": "Ne enlistigota", + "privacy_policy.last_updated": "Antea novajo ye {date}", + "privacy_policy.title": "Privatesguidilo", "refresh": "Rifreshez", "regeneration_indicator.label": "Chargas…", "regeneration_indicator.sublabel": "Vua hemniuzeto preparesas!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Danko por raportizar, ni kontrolos co.", "report.unfollow": "Desequez @{name}", "report.unfollow_explanation": "Vu sequas ca konto. Por ne vidar olia posti en vua hemniuzeto pluse, desequez oli.", + "report_notification.attached_statuses": "{count, plural,one {{count} posti} other {{count} posti}} adjuntesas", + "report_notification.categories.other": "Altra", + "report_notification.categories.spam": "Spamo", + "report_notification.categories.violation": "Regulnesequo", + "report_notification.open": "Apertez raporto", "search.placeholder": "Serchez", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Avancata trovformato", "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": "hashtago", @@ -442,9 +526,19 @@ "search_results.all": "Omna", "search_results.hashtags": "Hashtagi", "search_results.nothing_found": "Ne povas ganar irgo per ca trovvorti", - "search_results.statuses": "Toots", + "search_results.statuses": "Posti", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Trovez {q}", "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezulti}}", + "server_banner.about_active_users": "Personi quo uzas ca servilo dum antea 30 dii (monate aktiva uzanti)", + "server_banner.active_users": "aktiva uzanti", + "server_banner.administered_by": "Administresis da:", + "server_banner.introduction": "{domain} esas parto di necentraligita sociala ret quo povizesas da {mastodon}.", + "server_banner.learn_more": "Lernez plue", + "server_banner.server_stats": "Servilstatistiko:", + "sign_in_banner.create_account": "Kreez konto", + "sign_in_banner.sign_in": "Enirez", + "sign_in_banner.text": "Enirez por sequar profili o hashtagi, favorizar, partigar e respondizar posti, o interagar de vua konto de diferanta servilo.", "status.admin_account": "Apertez jerintervizajo por @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Restriktez @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Modifikesis {count, plural, one {{count} foyo} other {{count} foyi}}", "status.embed": "Eninsertez", "status.favourite": "Favorizar", + "status.filter": "Filtragez ca posto", "status.filtered": "Filtrita", + "status.hide": "Celez posto", "status.history.created": "{name} kreis ye {date}", "status.history.edited": "{name} modifikis ye {date}", "status.load_more": "Kargar pluse", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Efacez e riskisigez", "status.remove_bookmark": "Efacez libromarko", + "status.replied_to": "Replied to {name}", "status.reply": "Respondar", "status.replyAll": "Respondar a filo", "status.report": "Denuncar @{name}", "status.sensitive_warning": "Trubliva kontenajo", "status.share": "Partigez", + "status.show_filter_reason": "Jus montrez", "status.show_less": "Montrar mine", "status.show_less_all": "Montrez min por omno", "status.show_more": "Montrar plue", "status.show_more_all": "Montrez pluse por omno", - "status.show_thread": "Montrez postaro", + "status.show_original": "Montrez originalo", + "status.translate": "Tradukez", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nedisplonebla", "status.unmute_conversation": "Desilencigez konverso", "status.unpin": "Depinglagez de profilo", + "subscribed_languages.lead": "Nur posti en selektita lingui aparos en vua hemo e listotempolineo pos chanjo. Selektez nulo por ganar posti en omna lingui.", + "subscribed_languages.save": "Sparez chanji", + "subscribed_languages.target": "Chanjez abonita lingui por {target}", "suggestions.dismiss": "Desklozez sugestajo", "suggestions.header": "Vu forsan havas intereso pri…", "tabs_bar.federated_timeline": "Federata", "tabs_bar.home": "Hemo", "tabs_bar.local_timeline": "Lokala", "tabs_bar.notifications": "Savigi", - "tabs_bar.search": "Trovez", "time_remaining.days": "{number, plural, one {# dio} other {# dii}} restas", "time_remaining.hours": "{number, plural, one {# horo} other {# hori}} restas", "time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} restas", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Sequanti", "timeline_hint.resources.follows": "Sequati", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} persono} other {{counter} personi}} parolas", + "trends.counter_by_accounts": "{count, plural,one {{counter} persono} other {{counter} personi}} en antea {days, plural,one {dio} other {{days} dii}}", "trends.trending_now": "Tendencigas nun", "ui.beforeunload": "Vua skisato perdesos se vu ekiras Mastodon.", "units.short.billion": "{count}G", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparas OCR…", "upload_modal.preview_label": "Previdez ({ratio})", "upload_progress.label": "Kargante...", + "upload_progress.processing": "Processing…", "video.close": "Klozez video", "video.download": "Deschargez failo", "video.exit_fullscreen": "Ekirez plena skreno", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 845d0f8d537761..4af4edb16948d2 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -1,4 +1,16 @@ { + "about.blocks": "Netþjónar með efnisumsjón", + "about.contact": "Hafa samband:", + "about.disclaimer": "Mastodon er frjáls hugbúnaður með opinn grunnkóða og er skrásett vörumerki í eigu Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Ástæða ekki tiltæk", + "about.domain_blocks.preamble": "Mastodon leyfir þér almennt að skoða og eiga við efni frá notendum frá hvaða vefþjóni sem er í vefþjónasambandinu. Þetta eru þær undantekningar sem hafa verið gerðar á þessum tiltekna vefþjóni.", + "about.domain_blocks.silenced.explanation": "Þú munt almennt ekki sjá notandasnið og efni af þessum netþjóni nema þú flettir því upp sérstaklega eða veljir að fylgjast með því.", + "about.domain_blocks.silenced.title": "Takmarkað", + "about.domain_blocks.suspended.explanation": "Engin gögn frá þessum vefþjóni verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjóni ómöguleg.", + "about.domain_blocks.suspended.title": "Í bið", + "about.not_available": "Þessar upplýsingar hafa ekki verið gerðar aðgengilegar á þessum netþjóni.", + "about.powered_by": "Dreihýstur samskiptamiðill keyrður með {mastodon}", + "about.rules": "Reglur netþjónsins", "account.account_note_header": "Minnispunktur", "account.add_or_remove_from_list": "Bæta við eða fjarlægja af listum", "account.badges.bot": "Vélmenni", @@ -7,13 +19,16 @@ "account.block_domain": "Útiloka lénið {domain}", "account.blocked": "Útilokaður", "account.browse_more_on_origin_server": "Skoða nánari upplýsingar á notandasniðinu", - "account.cancel_follow_request": "Hætta við beiðni um að fylgjas", + "account.cancel_follow_request": "Taka fylgjendabeiðni til baka", "account.direct": "Bein skilaboð til @{name}", "account.disable_notifications": "Hætta að láta mig vita þegar @{name} sendir inn", "account.domain_blocked": "Lén útilokað", "account.edit_profile": "Breyta notandasniði", "account.enable_notifications": "Láta mig vita þegar @{name} sendir inn", "account.endorse": "Birta á notandasniði", + "account.featured_tags.last_status_at": "Síðasta færsla þann {date}", + "account.featured_tags.last_status_never": "Engar færslur", + "account.featured_tags.title": "Myllumerki hjá {name} með aukið vægi", "account.follow": "Fylgjast með", "account.followers": "Fylgjendur", "account.followers.empty": "Ennþá fylgist enginn með þessum notanda.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} fylgist með} other {{counter} fylgjast með}}", "account.follows.empty": "Þessi notandi fylgist ennþá ekki með neinum.", "account.follows_you": "Fylgir þér", + "account.go_to_profile": "Fara í notandasnið", "account.hide_reblogs": "Fela endurbirtingar fyrir @{name}", - "account.joined": "Gerðist þátttakandi {date}", + "account.joined_short": "Gerðist þátttakandi", + "account.languages": "Breyta tungumálum í áskrift", "account.link_verified_on": "Eignarhald á þessum tengli var athugað þann {date}", "account.locked_info": "Staða gagnaleyndar á þessum aðgangi er stillt á læsingu. Eigandinn yfirfer handvirkt hverjir geti fylgst með honum.", "account.media": "Myndskrár", "account.mention": "Minnast á @{name}", - "account.moved_to": "{name} hefur verið færður til:", + "account.moved_to": "{name} hefur gefið til kynna að nýi notandaaðgangurinn sé:", "account.mute": "Þagga niður í @{name}", "account.mute_notifications": "Þagga tilkynningar frá @{name}", "account.muted": "Þaggaður", + "account.open_original_page": "Opna upprunalega síðu", "account.posts": "Færslur", "account.posts_with_replies": "Færslur og svör", "account.report": "Kæra @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Úbbs!", "announcement.announcement": "Auglýsing", "attachments_list.unprocessed": "(óunnið)", + "audio.hide": "Fela hljóð", "autosuggest_hashtag.per_week": "{count} á viku", "boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst", - "bundle_column_error.body": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.", - "bundle_column_error.retry": "Reyndu aftur", - "bundle_column_error.title": "Villa í netkerfi", + "bundle_column_error.copy_stacktrace": "Afrita villuskýrslu", + "bundle_column_error.error.body": "Umbeðna síðau var ekki hægt að myndgera. Það gæti verið vegna villu í kóðanum okkar eða vandamáls með samhæfni vafra.", + "bundle_column_error.error.title": "Ó-nei!", + "bundle_column_error.network.body": "Villa kom upp við að hlaða inn þessari síðu. Þetta gæti stafað af tímabundnum vandamálum með internettenginguna þína eða þennan netþjón.", + "bundle_column_error.network.title": "Villa í netkerfi", + "bundle_column_error.retry": "Reyna aftur", + "bundle_column_error.return": "Fara til baka á upphafssíðu", + "bundle_column_error.routing.body": "Umbeðin síða fannst ekki. Ertu viss um að slóðin í vistfangastikunni sé rétt?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Loka", "bundle_modal_error.message": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.", "bundle_modal_error.retry": "Reyndu aftur", + "closed_registrations.other_server_instructions": "Þar sem Mastodon er víðvær, þá getur þú búið til aðgang á öðrum þjóni, en samt haft samskipti við þennan.", + "closed_registrations_modal.description": "Að búa til aðgang á {domain} er ekki mögulegt eins og er, en vinsamlegast hafðu í huga að þú þarft ekki aðgang sérstaklega á {domain} til að nota Mastodon.", + "closed_registrations_modal.find_another_server": "Finna annan þjón", + "closed_registrations_modal.preamble": "Mastodon er víðvær, svo það skiptir ekki máli hvar þú býrð til aðgang; þú munt get fylgt eftir og haft samskipti við hvern sem er á þessum þjóni. Þú getur jafnvel hýst þinn eigin Mastodon þjón!", + "closed_registrations_modal.title": "Að nýskrá sig á Mastodon", + "column.about": "Um hugbúnaðinn", "column.blocks": "Útilokaðir notendur", "column.bookmarks": "Bókamerki", "column.community": "Staðvær tímalína", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Fjarlægja þennan valkost", "compose_form.poll.switch_to_multiple": "Breyta könnun svo hægt sé að hafa marga valkosti", "compose_form.poll.switch_to_single": "Breyta könnun svo hægt sé að hafa einn stakan valkost", - "compose_form.publish": "Tíst", + "compose_form.publish": "Birta", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Vista breytingar", "compose_form.sensitive.hide": "{count, plural, one {Merkja mynd sem viðkvæma} other {Merkja myndir sem viðkvæmar}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Útiloka og kæra", "confirmations.block.confirm": "Útiloka", "confirmations.block.message": "Ertu viss um að þú viljir loka á {name}?", + "confirmations.cancel_follow_request.confirm": "Taka beiðni til baka", + "confirmations.cancel_follow_request.message": "Ertu viss um að þú viljir taka til baka beiðnina um að fylgjast með {name}?", "confirmations.delete.confirm": "Eyða", "confirmations.delete.message": "Ertu viss um að þú viljir eyða þessari færslu?", "confirmations.delete_list.confirm": "Eyða", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Merkja sem lesið", "conversation.open": "Skoða samtal", "conversation.with": "Með {names}", + "copypaste.copied": "Afritað", + "copypaste.copy": "Afrita", "directory.federated": "Frá samtengdum vefþjónum", "directory.local": "Einungis frá {domain}", "directory.new_arrivals": "Nýkomnir", "directory.recently_active": "Nýleg virkni", + "disabled_account_banner.account_settings": "Stillingar notandaaðgangs", + "disabled_account_banner.text": "Aðgangurinn þinn {disabledAccount} er óvirkur í augnablikinu.", + "dismissable_banner.community_timeline": "Þetta eru nýjustu opinberu færslurnar frá fólki sem er hýst á {domain}.", + "dismissable_banner.dismiss": "Hunsa", + "dismissable_banner.explore_links": "Þetta eru fréttafærslur sem í augnablikinu er verið að tala um af fólki á þessum og öðrum netþjónum á dreifhýsta netkerfinu.", + "dismissable_banner.explore_statuses": "Þessar færslur frá þessum og öðrum netþjónum á dreifhýsta netkerfinu eru að fá aukna athygli í þessu töluðum orðum.", + "dismissable_banner.explore_tags": "Þetta eru myllumerki sem í augnablikinu eru að fá aukna athygli hjá fólki á þessum og öðrum netþjónum á dreifhýsta netkerfinu.", + "dismissable_banner.public_timeline": "Þetta eru nýjustu opinberar færslur frá fólki á þessum og öðrum netþjónum á dreifhýsta netkerfinu sem þessi netþjónn veit um.", "embed.instructions": "Felldu þessa færslu inn í vefsvæðið þitt með því að afrita kóðann hér fyrir neðan.", "embed.preview": "Svona mun þetta líta út:", "emoji_button.activity": "Virkni", @@ -196,21 +239,37 @@ "explore.trending_links": "Fréttir", "explore.trending_statuses": "Færslur", "explore.trending_tags": "Myllumerki", + "filter_modal.added.context_mismatch_explanation": "Þessi síuflokkur á ekki við í því samhengi sem aðgangur þinn að þessari færslu felur í sér. Ef þú vilt að færslan sé einnig síuð í þessu samhengi, þá þarftu að breyta síunni.", + "filter_modal.added.context_mismatch_title": "Misræmi í samhengi!", + "filter_modal.added.expired_explanation": "Þessi síuflokkur er útrunninn, þú þarft að breyta gidistímanum svo hann geti átt við.", + "filter_modal.added.expired_title": "Útrunnin sía!", + "filter_modal.added.review_and_configure": "Til að yfirfara og stilla frekar þennan síuflokk, ættirðu að fara í {settings_link}.", + "filter_modal.added.review_and_configure_title": "Síustillingar", + "filter_modal.added.settings_link": "stillingasíða", + "filter_modal.added.short_explanation": "Þessari færslu hefur verið bætt í eftirfarandi síuflokk: {title}.", + "filter_modal.added.title": "Síu bætt við!", + "filter_modal.select_filter.context_mismatch": "á ekki við í þessu samhengi", + "filter_modal.select_filter.expired": "útrunnið", + "filter_modal.select_filter.prompt_new": "Nýr flokkur: {name}", + "filter_modal.select_filter.search": "Leita eða búa til", + "filter_modal.select_filter.subtitle": "Notaðu fyrirliggjandi flokk eða útbúðu nýjan", + "filter_modal.select_filter.title": "Sía þessa færslu", + "filter_modal.title.status": "Sía færslu", "follow_recommendations.done": "Lokið", "follow_recommendations.heading": "Fylgstu með fólki sem þú vilt sjá færslur frá! Hér eru nokkrar tillögur.", "follow_recommendations.lead": "Færslur frá fólki sem þú fylgist með eru birtar í tímaröð á heimastreyminu þínu. Þú þarft ekki að hræðast mistök, það er jafn auðvelt að hætta að fylgjast með fólki hvenær sem er!", "follow_request.authorize": "Heimila", "follow_request.reject": "Hafna", "follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.", + "footer.about": "Um hugbúnaðinn", + "footer.directory": "Notandasniðamappa", + "footer.get_app": "Ná í forritið", + "footer.invite": "Bjóða fólki", + "footer.keyboard_shortcuts": "Flýtileiðir á lyklaborði", + "footer.privacy_policy": "Persónuverndarstefna", + "footer.source_code": "Skoða frumkóða", "generic.saved": "Vistað", - "getting_started.developers": "Forritarar", - "getting_started.directory": "Notandasniðamappa", - "getting_started.documentation": "Hjálparskjöl", "getting_started.heading": "Komast í gang", - "getting_started.invite": "Bjóða fólki", - "getting_started.open_source_notice": "Mastodon er opinn og frjáls hugbúnaður. Þú getur lagt þitt af mörkum eða tilkynnt um vandamál á GitHub á slóðinni {github}.", - "getting_started.security": "Stillingar notandaaðgangs", - "getting_started.terms": "Þjónustuskilmálar", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eða {additional}", "hashtag.column_header.tag_mode.none": "án {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Hvað sem er af þessu", "hashtag.column_settings.tag_mode.none": "Ekkert af þessu", "hashtag.column_settings.tag_toggle": "Taka með viðbótarmerki fyrir þennan dálk", + "hashtag.follow": "Fylgjast með myllumerki", + "hashtag.unfollow": "Hætta að fylgjast með myllumerki", "home.column_settings.basic": "Einfalt", "home.column_settings.show_reblogs": "Sýna endurbirtingar", "home.column_settings.show_replies": "Birta svör", "home.hide_announcements": "Fela auglýsingar", "home.show_announcements": "Birta auglýsingar", + "interaction_modal.description.favourite": "Með notandaaðgangi á Mastodon geturðu sett þessa færslu í eftirlæti og þannig látið höfundinn vita að þú kunnir að meta hana og vistað hana til síðari tíma.", + "interaction_modal.description.follow": "Með notandaaðgangi á Mastodon geturðu fylgst með {name} og fengið færslur frá viðkomandi í heimastreymið þitt.", + "interaction_modal.description.reblog": "Með notandaaðgangi á Mastodon geturðu endurbirt þessa færslu til að deila henni með þeim sem fylgjast með þér.", + "interaction_modal.description.reply": "Með notandaaðgangi á Mastodon geturðu svarað þessari færslu.", + "interaction_modal.on_another_server": "Á öðrum netþjóni", + "interaction_modal.on_this_server": "Á þessum netþjóni", + "interaction_modal.other_server_instructions": "Afritaðu og límdu þessa slóð inn í leitarreit Mastodon-forrits þess sem þú vilt nota eða í vefviðmóti Mastodon-netþjónsins þíns.", + "interaction_modal.preamble": "Þar sem Mastodon er dreifhýst kerfi, þá geturðu notað aðgang sem er hýstur á öðrum Mastodon-þjóni eða öðru samhæfðu kerfi, ef þú ert ekki með notandaaðgang á þessum hér.", + "interaction_modal.title.favourite": "Setja færsluna frá {name} í eftirlæti", + "interaction_modal.title.follow": "Fylgjast með {name}", + "interaction_modal.title.reblog": "Endurbirta færsluna frá {name}", + "interaction_modal.title.reply": "Svara færslunni frá {name}", "intervals.full.days": "{number, plural, one {# dagur} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}}", "intervals.full.minutes": "{number, plural, one {# mínúta} other {# mínútur}}", @@ -268,7 +341,7 @@ "lightbox.next": "Næsta", "lightbox.previous": "Fyrra", "limited_account_hint.action": "Birta notandasniðið samt", - "limited_account_hint.title": "Þetta notandasnið hefur verið falið af umsjónarmönnum netþjónsins þíns.", + "limited_account_hint.title": "Þetta notandasnið hefur verið falið af umsjónarmönnum {domain}.", "lists.account.add": "Bæta á lista", "lists.account.remove": "Fjarlægja af lista", "lists.delete": "Eyða lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Víxla sýnileika", "missing_indicator.label": "Fannst ekki", "missing_indicator.sublabel": "Tilfangið fannst ekki", + "moved_to_account_banner.text": "Aðgangurinn þinn {disabledAccount} er óvirkur í augnablikinu vegna þess að þú fluttir þig yfir á {movedToAccount}.", "mute_modal.duration": "Lengd", "mute_modal.hide_notifications": "Fela tilkynningar frá þessum notanda?", "mute_modal.indefinite": "Óendanlegt", - "navigation_bar.apps": "Farsímaforrit", + "navigation_bar.about": "Um hugbúnaðinn", "navigation_bar.blocks": "Útilokaðir notendur", "navigation_bar.bookmarks": "Bókamerki", "navigation_bar.community_timeline": "Staðvær tímalína", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Þögguð orð", "navigation_bar.follow_requests": "Beiðnir um að fylgjast með", "navigation_bar.follows_and_followers": "Fylgist með og fylgjendur", - "navigation_bar.info": "Um þennan vefþjón", - "navigation_bar.keyboard_shortcuts": "Flýtilyklar", "navigation_bar.lists": "Listar", "navigation_bar.logout": "Útskráning", "navigation_bar.mutes": "Þaggaðir notendur", @@ -313,19 +385,23 @@ "navigation_bar.pins": "Festar færslur", "navigation_bar.preferences": "Kjörstillingar", "navigation_bar.public_timeline": "Sameiginleg tímalína", + "navigation_bar.search": "Leita", "navigation_bar.security": "Öryggi", + "not_signed_in_indicator.not_signed_in": "Þú þarft að skrá þig inn til að nota þetta tilfang.", + "notification.admin.report": "{name} kærði {target}", "notification.admin.sign_up": "{name} skráði sig", "notification.favourite": "{name} setti færslu þína í eftirlæti", "notification.follow": "{name} fylgist með þér", "notification.follow_request": "{name} hefur beðið um að fylgjast með þér", "notification.mention": "{name} minntist á þig", "notification.own_poll": "Könnuninni þinni er lokið", - "notification.poll": "Könnun sem þú tókst þátt í er lokin", + "notification.poll": "Könnun sem þú tókst þátt í er lokið", "notification.reblog": "{name} endurbirti færsluna þína", "notification.status": "{name} sendi inn rétt í þessu", "notification.update": "{name} breytti færslu", "notifications.clear": "Hreinsa tilkynningar", "notifications.clear_confirmation": "Ertu viss um að þú viljir endanlega eyða öllum tilkynningunum þínum?", + "notifications.column_settings.admin.report": "Nýjar kærur:", "notifications.column_settings.admin.sign_up": "Nýjar skráningar:", "notifications.column_settings.alert": "Tilkynningar á skjáborði", "notifications.column_settings.favourite": "Eftirlæti:", @@ -379,6 +455,8 @@ "privacy.public.short": "Opinbert", "privacy.unlisted.long": "Sýnilegt öllum, en ekki tekið með í uppgötvunareiginleikum", "privacy.unlisted.short": "Óskráð", + "privacy_policy.last_updated": "Síðast uppfært {date}", + "privacy_policy.title": "Persónuverndarstefna", "refresh": "Endurlesa", "regeneration_indicator.label": "Hleð inn…", "regeneration_indicator.sublabel": "Verið er að útbúa heimastreymið þitt!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Takk fyrir tilkynninguna, við munum skoða málið.", "report.unfollow": "Hætta að fylgjast með @{name}", "report.unfollow_explanation": "Þú ert að fylgjast með þessum aðgangi. Til að hætta að sjá viðkomandi færslur á streyminu þínu, skaltu hætta að fylgjast með viðkomandi.", + "report_notification.attached_statuses": "{count, plural, one {{count} færsla} other {{count} færslur}} viðhengdar", + "report_notification.categories.other": "Annað", + "report_notification.categories.spam": "Ruslpóstur", + "report_notification.categories.violation": "Brot á reglum", + "report_notification.open": "Opin kæra", "search.placeholder": "Leita", + "search.search_or_paste": "Leita eða líma slóð", "search_popout.search_format": "Snið ítarlegrar leitar", "search_popout.tips.full_text": "Einfaldur texti skilar færslum sem þú hefur skrifað, sett í eftirlæti, endurbirt eða verið minnst á þig í, ásamt samsvarandi birtingarnöfnum, notendanöfnum og myllumerkjum.", "search_popout.tips.hashtag": "myllumerki", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Gat ekki fundið neitt sem samsvarar þessum leitarorðum", "search_results.statuses": "Færslur", "search_results.statuses_fts_disabled": "Að leita í efni færslna er ekki virkt á þessum Mastodon-þjóni.", + "search_results.title": "Leita að {q}", "search_results.total": "{count, number} {count, plural, one {niðurstaða} other {niðurstöður}}", + "server_banner.about_active_users": "Folk sem hefur notað þennan netþjón síðustu 30 daga (virkir notendur í mánuðinum)", + "server_banner.active_users": "virkir notendur", + "server_banner.administered_by": "Stýrt af:", + "server_banner.introduction": "{domain} er hluti af dreifhýsta samfélagsnetinu sem keyrt er af {mastodon}.", + "server_banner.learn_more": "Kanna nánar", + "server_banner.server_stats": "Tölfræði þjóns:", + "sign_in_banner.create_account": "Búa til notandaaðgang", + "sign_in_banner.sign_in": "Skrá inn", + "sign_in_banner.text": "Skráðu þig inn til að fylgjast með notendum eða myllumerkjum, svara færslum, deila þeim eða setja í eftirlæti, eða eiga í samskiptum á aðgangnum þínum á öðrum netþjónum.", "status.admin_account": "Opna umsjónarviðmót fyrir @{name}", "status.admin_status": "Opna þessa færslu í umsjónarviðmótinu", "status.block": "Útiloka @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Breytt {count, plural, one {{count} sinni} other {{count} sinnum}}", "status.embed": "Ívefja", "status.favourite": "Eftirlæti", + "status.filter": "Sía þessa færslu", "status.filtered": "Síað", + "status.hide": "Fela færslu", "status.history.created": "{name} útbjó {date}", "status.history.edited": "{name} breytti {date}", "status.load_more": "Hlaða inn meiru", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.", "status.redraft": "Eyða og endurvinna drög", "status.remove_bookmark": "Fjarlægja bókamerki", + "status.replied_to": "Svaraði {name}", "status.reply": "Svara", "status.replyAll": "Svara þræði", "status.report": "Kæra @{name}", "status.sensitive_warning": "Viðkvæmt efni", "status.share": "Deila", + "status.show_filter_reason": "Birta samt", "status.show_less": "Sýna minna", "status.show_less_all": "Sýna minna fyrir allt", "status.show_more": "Sýna meira", "status.show_more_all": "Sýna meira fyrir allt", - "status.show_thread": "Birta þráð", + "status.show_original": "Sýna upprunalega", + "status.translate": "Þýða", + "status.translated_from_with": "Þýtt úr {lang} með {provider}", "status.uncached_media_warning": "Ekki tiltækt", "status.unmute_conversation": "Hætta að þagga niður í samtali", "status.unpin": "Losa af notandasniði", + "subscribed_languages.lead": "Einungis færslur á völdum tungumálum munu birtast á upphafssíðu og tímalínum þínum eftir þessa breytingu. Veldu ekkert til að sjá færslur á öllum tungumálum.", + "subscribed_languages.save": "Vista breytingar", + "subscribed_languages.target": "Breyta tungumálum í áskrift fyrir {target}", "suggestions.dismiss": "Hafna tillögu", "suggestions.header": "Þú gætir haft áhuga á…", "tabs_bar.federated_timeline": "Sameiginlegt", "tabs_bar.home": "Heim", "tabs_bar.local_timeline": "Staðvært", "tabs_bar.notifications": "Tilkynningar", - "tabs_bar.search": "Leita", "time_remaining.days": "{number, plural, one {# dagur} other {# dagar}} eftir", "time_remaining.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}} eftir", "time_remaining.minutes": "{number, plural, one {# mínúta} other {# mínútur}} eftir", @@ -508,8 +610,8 @@ "timeline_hint.resources.followers": "Fylgjendur", "timeline_hint.resources.follows": "Fylgist með", "timeline_hint.resources.statuses": "Eldri færslur", - "trends.counter_by_accounts": "{count, plural, one {{counter} aðili} other {{counter} aðilar}} tala", - "trends.trending_now": "Í umræðunni núna", + "trends.counter_by_accounts": "{count, plural, one {{counter} aðili} other {{counter} manns}} {days, plural, one {síðasta sólarhringinn} other {síðustu {days} daga}}", + "trends.trending_now": "Vinsælt núna", "ui.beforeunload": "Drögin tapast ef þú ferð út úr Mastodon.", "units.short.billion": "{count}B", "units.short.million": "{count}M", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Undirbý OCR-ljóslestur…", "upload_modal.preview_label": "Forskoðun ({ratio})", "upload_progress.label": "Er að senda inn...", + "upload_progress.processing": "Meðhöndla…", "video.close": "Loka myndskeiði", "video.download": "Sækja skrá", "video.exit_fullscreen": "Hætta í skjáfylli", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 46e509b07ec6db..eea0939cd3cd9d 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -1,5 +1,17 @@ { - "account.account_note_header": "Le tue note sull'utente", + "about.blocks": "Server moderati", + "about.contact": "Contatto:", + "about.disclaimer": "Mastodon è un software open source, gratuito e un marchio di Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Motivo non disponibile", + "about.domain_blocks.preamble": "Mastodon, generalmente, ti consente di visualizzare i contenuti e interagire con gli utenti da qualsiasi altro server nel fediverso. Queste sono le eccezioni che sono state fatte su questo particolare server.", + "about.domain_blocks.silenced.explanation": "Generalmente non vedrai i profili e i contenuti di questo server, a meno che tu non lo cerchi esplicitamente o che tu scelga di seguirlo.", + "about.domain_blocks.silenced.title": "Silenziato", + "about.domain_blocks.suspended.explanation": "Nessun dato proveniente da questo server verrà elaborato, conservato o scambiato, rendendo impossibile qualsiasi interazione o comunicazione con gli utenti da questo server.", + "about.domain_blocks.suspended.title": "Sospeso", + "about.not_available": "Queste informazioni non sono state rese disponibili su questo server.", + "about.powered_by": "Social media decentralizzati alimentati da {mastodon}", + "about.rules": "Regole del server", + "account.account_note_header": "Note", "account.add_or_remove_from_list": "Aggiungi o togli dalle liste", "account.badges.bot": "Bot", "account.badges.group": "Gruppo", @@ -7,13 +19,16 @@ "account.block_domain": "Blocca dominio {domain}", "account.blocked": "Bloccato", "account.browse_more_on_origin_server": "Sfoglia di più sul profilo originale", - "account.cancel_follow_request": "Annulla richiesta di seguire", + "account.cancel_follow_request": "Annulla la richiesta di seguire", "account.direct": "Messaggio diretto a @{name}", "account.disable_notifications": "Smetti di avvisarmi quando @{name} pubblica un post", "account.domain_blocked": "Dominio bloccato", "account.edit_profile": "Modifica profilo", "account.enable_notifications": "Avvisami quando @{name} pubblica un post", "account.endorse": "Metti in evidenza sul profilo", + "account.featured_tags.last_status_at": "Ultimo post il {date}", + "account.featured_tags.last_status_never": "Nessun post", + "account.featured_tags.title": "Hashtag in evidenza di {name}", "account.follow": "Segui", "account.followers": "Follower", "account.followers.empty": "Nessuno segue ancora questo utente.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, other {{counter} Seguiti}}", "account.follows.empty": "Questo utente non segue nessuno ancora.", "account.follows_you": "Ti segue", + "account.go_to_profile": "Vai al profilo", "account.hide_reblogs": "Nascondi condivisioni da @{name}", - "account.joined": "Su questa istanza dal {date}", + "account.joined_short": "Account iscritto", + "account.languages": "Cambia le lingue di cui ricevere i post", "account.link_verified_on": "La proprietà di questo link è stata controllata il {date}", "account.locked_info": "Questo è un account privato. Il proprietario approva manualmente chi può seguirlo.", "account.media": "Media", "account.mention": "Menziona @{name}", - "account.moved_to": "{name} si è trasferito su:", + "account.moved_to": "{name} ha indicato che il suo nuovo account è ora:", "account.mute": "Silenzia @{name}", "account.mute_notifications": "Silenzia notifiche da @{name}", "account.muted": "Silenziato", + "account.open_original_page": "Apri pagina originale", "account.posts": "Post", "account.posts_with_replies": "Post e risposte", "account.report": "Segnala @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Annuncio", "attachments_list.unprocessed": "(non elaborato)", + "audio.hide": "Nascondi audio", "autosuggest_hashtag.per_week": "{count} per settimana", "boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta", - "bundle_column_error.body": "E' avvenuto un errore durante il caricamento di questo componente.", + "bundle_column_error.copy_stacktrace": "Copia rapporto di errore", + "bundle_column_error.error.body": "La pagina richiesta non può essere visualizzata. Potrebbe essere a causa di un bug nel nostro codice o di un problema di compatibilità del browser.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "C'è stato un errore durante il caricamento di questa pagina. Potrebbe essere dovuto a un problema temporaneo con la tua connessione internet o a questo server.", + "bundle_column_error.network.title": "Errore di rete", "bundle_column_error.retry": "Riprova", - "bundle_column_error.title": "Errore di rete", + "bundle_column_error.return": "Torna alla pagina home", + "bundle_column_error.routing.body": "La pagina richiesta non è stata trovata. Sei sicuro che l'URL nella barra degli indirizzi è corretta?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Chiudi", "bundle_modal_error.message": "Qualcosa è andato storto durante il caricamento di questo componente.", "bundle_modal_error.retry": "Riprova", + "closed_registrations.other_server_instructions": "Poiché Mastodon è decentralizzato, puoi creare un account su un altro server e continuare a interagire con questo.", + "closed_registrations_modal.description": "Al momento non è possibile creare un account su {domain}, ma tieni presente che non è necessario un account specifico su {domain} per utilizzare Mastodon.", + "closed_registrations_modal.find_another_server": "Trova un altro server", + "closed_registrations_modal.preamble": "Mastodon è decentralizzato, quindi non importa dove crei il tuo account, sarai in grado di seguire e interagire con chiunque su questo server. Puoi persino ospitarlo autonomamente!", + "closed_registrations_modal.title": "Registrazione su Mastodon", + "column.about": "Informazioni su", "column.blocks": "Utenti bloccati", "column.bookmarks": "Segnalibri", "column.community": "Timeline locale", @@ -95,7 +126,7 @@ "compose.language.change": "Cambia lingua", "compose.language.search": "Ricerca lingue...", "compose_form.direct_message_warning_learn_more": "Scopri di più", - "compose_form.encryption_warning": "I messaggi su Mastodon non sono crittografati end-to-end. Non condividere alcuna informazione sensibile su Mastodon.", + "compose_form.encryption_warning": "I messaggi su Mastodon non sono crittografati end-to-end. Non condividere dati sensibili su Mastodon.", "compose_form.hashtag_warning": "Questo post non sarà elencato sotto alcun hashtag poiché senza elenco. Solo i toot pubblici possono essere ricercati per hashtag.", "compose_form.lock_disclaimer": "Il tuo profilo non è {locked}. Chiunque può seguirti e vedere le tue pubblicazioni visibili solo dai follower.", "compose_form.lock_disclaimer.lock": "bloccato", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Rimuovi questa scelta", "compose_form.poll.switch_to_multiple": "Modifica sondaggio per consentire scelte multiple", "compose_form.poll.switch_to_single": "Modifica sondaggio per consentire una singola scelta", - "compose_form.publish": "Toot", + "compose_form.publish": "Pubblica", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Salva modifiche", "compose_form.sensitive.hide": "Segna media come sensibile", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blocca & Segnala", "confirmations.block.confirm": "Blocca", "confirmations.block.message": "Sei sicuro di voler bloccare {name}?", + "confirmations.cancel_follow_request.confirm": "Annulla la richiesta", + "confirmations.cancel_follow_request.message": "Sei sicuro di voler annullare la tua richiesta per seguire {name}?", "confirmations.delete.confirm": "Cancella", "confirmations.delete.message": "Sei sicuro di voler cancellare questo post?", "confirmations.delete_list.confirm": "Cancella", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Segna come letto", "conversation.open": "Visualizza conversazione", "conversation.with": "Con {names}", + "copypaste.copied": "Copiato", + "copypaste.copy": "Copia", "directory.federated": "Da un fediverse noto", "directory.local": "Solo da {domain}", "directory.new_arrivals": "Nuovi arrivi", "directory.recently_active": "Attivo di recente", + "disabled_account_banner.account_settings": "Impostazioni dell'account", + "disabled_account_banner.text": "Il tuo account {disabledAccount} è attualmente disabilitato.", + "dismissable_banner.community_timeline": "Questi sono i posti pubblici più recenti di persone i cui account sono ospitati da {domain}.", + "dismissable_banner.dismiss": "Ignora", + "dismissable_banner.explore_links": "Queste notizie sono in fase di discussione da parte di persone su questo e altri server della rete decentralizzata, in questo momento.", + "dismissable_banner.explore_statuses": "Questi post, da questo e da altri server nella rete decentralizzata, stanno guadagnando popolarità su questo server in questo momento.", + "dismissable_banner.explore_tags": "Questi hashtag stanno guadagnando popolarità tra le persone su questo e altri server della rete decentralizzata, in questo momento.", + "dismissable_banner.public_timeline": "Questi sono i post pubblici più recenti di persone, su questo e altri server della rete decentralizzata che questo server conosce.", "embed.instructions": "Incorpora questo post sul tuo sito web copiando il codice sotto.", "embed.preview": "Ecco come apparirà:", "emoji_button.activity": "Attività", @@ -193,24 +236,40 @@ "explore.search_results": "Risultati della ricerca", "explore.suggested_follows": "Per te", "explore.title": "Esplora", - "explore.trending_links": "Novità", + "explore.trending_links": "Notizie", "explore.trending_statuses": "Post", "explore.trending_tags": "Hashtag", + "filter_modal.added.context_mismatch_explanation": "La categoria di questo filtro non si applica al contesto in cui hai acceduto a questo post. Se desideri che il post sia filtrato anche in questo contesto, dovrai modificare il filtro.", + "filter_modal.added.context_mismatch_title": "Contesto non corrispondente!", + "filter_modal.added.expired_explanation": "La categoria di questo filtro è scaduta, dovrai modificarne la data di scadenza per applicarlo.", + "filter_modal.added.expired_title": "Filtro scaduto!", + "filter_modal.added.review_and_configure": "Per revisionare e configurare ulteriormente la categoria di questo filtro, vai alle {settings_link}.", + "filter_modal.added.review_and_configure_title": "Impostazioni del filtro", + "filter_modal.added.settings_link": "pagina delle impostazioni", + "filter_modal.added.short_explanation": "Questo post è stato aggiunto alla categoria del filtro seguente: {title}.", + "filter_modal.added.title": "Filtro aggiunto!", + "filter_modal.select_filter.context_mismatch": "non si applica a questo contesto", + "filter_modal.select_filter.expired": "scaduto", + "filter_modal.select_filter.prompt_new": "Nuova categoria: {name}", + "filter_modal.select_filter.search": "Cerca o crea", + "filter_modal.select_filter.subtitle": "Usa una categoria esistente o creane una nuova", + "filter_modal.select_filter.title": "Filtra questo post", + "filter_modal.title.status": "Filtra un post", "follow_recommendations.done": "Fatto", "follow_recommendations.heading": "Segui le persone da cui vuoi vedere i messaggi! Ecco alcuni suggerimenti.", "follow_recommendations.lead": "I messaggi da persone che segui verranno visualizzati in ordine cronologico nel tuo home feed. Non abbiate paura di commettere errori, potete smettere di seguire le persone altrettanto facilmente in qualsiasi momento!", "follow_request.authorize": "Autorizza", "follow_request.reject": "Rifiuta", "follow_requests.unlocked_explanation": "Benché il tuo account non sia privato, lo staff di {domain} ha pensato che potresti voler approvare manualmente le richieste di follow da questi account.", + "footer.about": "Info", + "footer.directory": "Directory dei profili", + "footer.get_app": "Scarica l'app", + "footer.invite": "Invita le persone", + "footer.keyboard_shortcuts": "Scorciatoie da tastiera", + "footer.privacy_policy": "Politica sulla privacy", + "footer.source_code": "Visualizza il codice sorgente", "generic.saved": "Salvato", - "getting_started.developers": "Sviluppatori", - "getting_started.directory": "Directory dei profili", - "getting_started.documentation": "Documentazione", "getting_started.heading": "Come iniziare", - "getting_started.invite": "Invita qualcuno", - "getting_started.open_source_notice": "Mastodon è un software open source. Puoi contribuire o segnalare errori su GitHub all'indirizzo {github}.", - "getting_started.security": "Sicurezza", - "getting_started.terms": "Condizioni del servizio", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "senza {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Uno o più di questi", "hashtag.column_settings.tag_mode.none": "Nessuno di questi", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Segui l'hashtag", + "hashtag.unfollow": "Cessa di seguire l'hashtag", "home.column_settings.basic": "Semplice", "home.column_settings.show_reblogs": "Mostra condivisioni", "home.column_settings.show_replies": "Mostra risposte", "home.hide_announcements": "Nascondi annunci", "home.show_announcements": "Mostra annunci", + "interaction_modal.description.favourite": "Con un account su Mastodon, puoi aggiungere questo post ai preferiti per far sapere all'autore che lo apprezzi e salvarlo per dopo.", + "interaction_modal.description.follow": "Con un account su Mastodon, puoi seguire {name} per ricevere i suoi post nel tuo home feed.", + "interaction_modal.description.reblog": "Con un account su Mastodon, puoi condividere questo post per rendere partecipi i tuoi seguaci.", + "interaction_modal.description.reply": "Con un account su Mastodon, è possibile rispondere a questo post.", + "interaction_modal.on_another_server": "Su un altro server", + "interaction_modal.on_this_server": "Su questo server", + "interaction_modal.other_server_instructions": "Copia e incolla questo URL nel campo di ricerca della tua app Mastodon preferita o nell'interfaccia web del tuo server Mastodon.", + "interaction_modal.preamble": "Poiché Mastodon è decentralizzato, è possibile utilizzare il proprio account esistente ospitato da un altro server Mastodon o piattaforma compatibile se non si dispone di un account su questo.", + "interaction_modal.title.favourite": "Post preferito di {name}", + "interaction_modal.title.follow": "Segui {name}", + "interaction_modal.title.reblog": "Condividi il post di {name}", + "interaction_modal.title.reply": "Rispondi al post di {name}", "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}", @@ -268,7 +341,7 @@ "lightbox.next": "Successivo", "lightbox.previous": "Precedente", "limited_account_hint.action": "Mostra comunque il profilo", - "limited_account_hint.title": "Questo profilo è stato nascosto dai moderatori del tuo server.", + "limited_account_hint.title": "Questo profilo è stato nascosto dai moderatori di {domain}.", "lists.account.add": "Aggiungi alla lista", "lists.account.remove": "Togli dalla lista", "lists.delete": "Elimina lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Imposta visibilità", "missing_indicator.label": "Non trovato", "missing_indicator.sublabel": "Risorsa non trovata", + "moved_to_account_banner.text": "Il tuo account {disabledAccount} è attualmente disabilitato perché ti sei trasferito/a su {movedToAccount}.", "mute_modal.duration": "Durata", "mute_modal.hide_notifications": "Nascondere le notifiche da quest'utente?", "mute_modal.indefinite": "Per sempre", - "navigation_bar.apps": "App per dispositivi mobili", + "navigation_bar.about": "Informazioni su", "navigation_bar.blocks": "Utenti bloccati", "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Timeline locale", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Parole silenziate", "navigation_bar.follow_requests": "Richieste di seguirti", "navigation_bar.follows_and_followers": "Seguiti e seguaci", - "navigation_bar.info": "Informazioni su questo server", - "navigation_bar.keyboard_shortcuts": "Tasti di scelta rapida", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Esci", "navigation_bar.mutes": "Utenti silenziati", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Post fissati in cima", "navigation_bar.preferences": "Impostazioni", "navigation_bar.public_timeline": "Timeline federata", + "navigation_bar.search": "Cerca", "navigation_bar.security": "Sicurezza", + "not_signed_in_indicator.not_signed_in": "Devi effetturare il login per accedere a questa funzione.", + "notification.admin.report": "{name} ha segnalato {target}", "notification.admin.sign_up": "{name} si è iscritto", "notification.favourite": "{name} ha apprezzato il tuo post", "notification.follow": "{name} ha iniziato a seguirti", @@ -326,6 +401,7 @@ "notification.update": "{name} ha modificato un post", "notifications.clear": "Cancella notifiche", "notifications.clear_confirmation": "Vuoi davvero cancellare tutte le notifiche?", + "notifications.column_settings.admin.report": "Nuove segnalazioni:", "notifications.column_settings.admin.sign_up": "Nuove iscrizioni:", "notifications.column_settings.alert": "Notifiche desktop", "notifications.column_settings.favourite": "Apprezzati:", @@ -379,6 +455,8 @@ "privacy.public.short": "Pubblico", "privacy.unlisted.long": "Visibile a tutti, ma escluso dalle funzioni di scoperta", "privacy.unlisted.short": "Non elencato", + "privacy_policy.last_updated": "Ultimo aggiornamento {date}", + "privacy_policy.title": "Politica sulla privacy", "refresh": "Aggiorna", "regeneration_indicator.label": "Caricamento in corso…", "regeneration_indicator.sublabel": "Stiamo preparando il tuo home feed!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Grazie per la segnalazione, controlleremo il problema.", "report.unfollow": "Non seguire più @{name}", "report.unfollow_explanation": "Stai seguendo questo account. Per non vedere più i suoi post nel tuo feed home, smetti di seguirlo.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} post}} allegati", + "report_notification.categories.other": "Altro", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Violazione delle regole", + "report_notification.open": "Apri segnalazione", "search.placeholder": "Cerca", + "search.search_or_paste": "Cerca o incolla l'URL", "search_popout.search_format": "Formato di ricerca avanzato", "search_popout.tips.full_text": "Testo semplice per trovare gli status che hai scritto, segnato come apprezzati, condiviso o in cui sei stato citato, e inoltre i nomi utente, nomi visualizzati e hashtag che lo contengono.", "search_popout.tips.hashtag": "etichetta", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Impossibile trovare qualcosa per questi termini di ricerca", "search_results.statuses": "Post", "search_results.statuses_fts_disabled": "La ricerca di post per il loro contenuto non è abilitata su questo server Mastodon.", + "search_results.title": "Ricerca: {q}", "search_results.total": "{count} {count, plural, one {risultato} other {risultati}}", + "server_banner.about_active_users": "Persone che usano questo server negli ultimi 30 giorni (utenti attivi mensili)", + "server_banner.active_users": "utenti attivi", + "server_banner.administered_by": "Amministrato da:", + "server_banner.introduction": "{domain} fa parte del social network decentralizzato alimentato da {mastodon}.", + "server_banner.learn_more": "Scopri di più", + "server_banner.server_stats": "Statistiche del server:", + "sign_in_banner.create_account": "Crea un account", + "sign_in_banner.sign_in": "Accedi", + "sign_in_banner.text": "Accedi per seguire profili o hashtag, segnare come preferiti, condividere e rispondere ai post o interagire dal tuo account su un server diverso.", "status.admin_account": "Apri interfaccia di moderazione per @{name}", "status.admin_status": "Apri questo post nell'interfaccia di moderazione", "status.block": "Blocca @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Modificato {count, plural, one {{count} volta} other {{count} volte}}", "status.embed": "Incorpora", "status.favourite": "Apprezzato", + "status.filter": "Filtra questo post", "status.filtered": "Filtrato", + "status.hide": "Nascondi toot", "status.history.created": "{name} ha creato {date}", "status.history.edited": "{name} ha modificato {date}", "status.load_more": "Mostra di più", @@ -479,36 +575,42 @@ "status.reblogs.empty": "Nessuno ha ancora condiviso questo post. Quando qualcuno lo farà, comparirà qui.", "status.redraft": "Cancella e riscrivi", "status.remove_bookmark": "Elimina segnalibro", + "status.replied_to": "Risposta a {name}", "status.reply": "Rispondi", "status.replyAll": "Rispondi alla conversazione", "status.report": "Segnala @{name}", "status.sensitive_warning": "Materiale sensibile", "status.share": "Condividi", + "status.show_filter_reason": "Mostra comunque", "status.show_less": "Mostra meno", "status.show_less_all": "Mostra meno per tutti", "status.show_more": "Mostra di più", "status.show_more_all": "Mostra di più per tutti", - "status.show_thread": "Mostra conversazione", + "status.show_original": "Mostra originale", + "status.translate": "Traduci", + "status.translated_from_with": "Tradotto da {lang} utilizzando {provider}", "status.uncached_media_warning": "Non disponibile", "status.unmute_conversation": "Annulla silenzia conversazione", "status.unpin": "Non fissare in cima al profilo", + "subscribed_languages.lead": "Solo i messaggi nelle lingue selezionate appariranno nella tua home e nelle timeline dopo il cambiamento. Seleziona nessuno per ricevere messaggi in tutte le lingue.", + "subscribed_languages.save": "Salva modifiche", + "subscribed_languages.target": "Cambia le lingue di cui ricevere i post per {target}", "suggestions.dismiss": "Elimina suggerimento", "suggestions.header": "Ti potrebbe interessare…", "tabs_bar.federated_timeline": "Federazione", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Locale", "tabs_bar.notifications": "Notifiche", - "tabs_bar.search": "Cerca", "time_remaining.days": "{number, plural, one {# giorno} other {# giorni}} left", "time_remaining.hours": "{number, plural, one {# ora} other {# ore}} left", "time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} left", "time_remaining.moments": "Restano pochi istanti", "time_remaining.seconds": "{number, plural, one {# secondo} other {# secondi}} left", - "timeline_hint.remote_resource_not_displayed": "{resource] da altri server non sono mostrati.", + "timeline_hint.remote_resource_not_displayed": "{resource} da altri server non sono mostrati.", "timeline_hint.resources.followers": "Follower", "timeline_hint.resources.follows": "Segue", "timeline_hint.resources.statuses": "Post meno recenti", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persone}} ne parlano", + "trends.counter_by_accounts": "{count, plural, one {{count} persona} other {{count} persone}} {days, plural, one {nell'ultimo giorno} other {negli ultimi {days} giorni}}", "trends.trending_now": "Di tendenza ora", "ui.beforeunload": "La bozza andrà persa se esci da Mastodon.", "units.short.billion": "{count}G", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparazione OCR…", "upload_modal.preview_label": "Anteprima ({ratio})", "upload_progress.label": "Invio in corso...", + "upload_progress.processing": "In elaborazione…", "video.close": "Chiudi video", "video.download": "Scarica file", "video.exit_fullscreen": "Esci da modalità a schermo intero", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index d4c992b8e5ac59..7d41bdc11b0d50 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -1,5 +1,17 @@ { + "about.blocks": "制限中のサーバー", + "about.contact": "連絡先", + "about.disclaimer": "Mastodonは自由なオープンソースソフトウェアでMastodon gGmbHの商標です。", + "about.domain_blocks.no_reason_available": "制限理由", + "about.domain_blocks.preamble": "Mastodonでは連合先のどのようなサーバーのユーザーとも交流できます。ただし次のサーバーには例外が設定されています。", + "about.domain_blocks.silenced.explanation": "このサーバーのプロフィールやコンテンツは、明示的に検索したり、フォローでオプトインしない限り、通常は表示されません。", + "about.domain_blocks.silenced.title": "制限", + "about.domain_blocks.suspended.explanation": "これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません。", + "about.domain_blocks.suspended.title": "停止済み", + "about.not_available": "この情報はこのサーバーでは利用できません。", + "about.powered_by": "{mastodon}による分散型ソーシャルメディア", + "about.rules": "サーバーのルール", "account.account_note_header": "メモ", "account.add_or_remove_from_list": "リストから追加または外す", "account.badges.bot": "Bot", @@ -8,13 +20,16 @@ "account.block_domain": "{domain}全体をブロック", "account.blocked": "ブロック済み", "account.browse_more_on_origin_server": "リモートで表示", - "account.cancel_follow_request": "フォローリクエストを取り消す", + "account.cancel_follow_request": "フォローリクエストの取り消し", "account.direct": "@{name}さんにダイレクトメッセージ", "account.disable_notifications": "@{name}さんの投稿時の通知を停止", "account.domain_blocked": "ドメインブロック中", "account.edit_profile": "プロフィール編集", "account.enable_notifications": "@{name}さんの投稿時に通知", "account.endorse": "プロフィールで紹介する", + "account.featured_tags.last_status_at": "最終投稿 {date}", + "account.featured_tags.last_status_never": "投稿がありません", + "account.featured_tags.title": "{name}の注目ハッシュタグ", "account.follow": "フォロー", "account.followers": "フォロワー", "account.followers.empty": "まだ誰もフォローしていません。", @@ -23,16 +38,19 @@ "account.following_counter": "{counter} フォロー", "account.follows.empty": "まだ誰もフォローしていません。", "account.follows_you": "フォローされています", + "account.go_to_profile": "プロフィールページへ", "account.hide_reblogs": "@{name}さんからのブーストを非表示", - "account.joined": "{date} に登録", + "account.joined_short": "登録日", + "account.languages": "購読言語の変更", "account.link_verified_on": "このリンクの所有権は{date}に確認されました", "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。", "account.media": "メディア", "account.mention": "@{name}さんにメンション", - "account.moved_to": "{name}さんは引っ越しました:", + "account.moved_to": "{name} さんの新しいアカウント:", "account.mute": "@{name}さんをミュート", "account.mute_notifications": "@{name}さんからの通知を受け取らない", "account.muted": "ミュート済み", + "account.open_original_page": "元のページを開く", "account.posts": "投稿", "account.posts_with_replies": "投稿と返信", "account.report": "@{name}さんを通報", @@ -60,6 +78,7 @@ "alert.unexpected.title": "エラー!", "announcement.announcement": "お知らせ", "attachments_list.unprocessed": "(未処理)", + "audio.hide": "音声を閉じる", "autosuggest_hashtag.per_week": "{count} 回 / 週", "boost_modal.combo": "次からは{combo}を押せばスキップできます", "area.column_settings.basic": "基本設定", @@ -74,12 +93,24 @@ "column.area.timeline.mstdnjp": "mstdn.jpタイムライン", "column.area.timeline.pawoo": "pawoo.netタイムライン", "column.area.timeline.bestfriends": "best-friends.chatタイムライン", - "bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。", + "bundle_column_error.copy_stacktrace": "エラーレポートをコピー", + "bundle_column_error.error.body": "要求されたページをレンダリングできませんでした。コードのバグ、またはブラウザの互換性の問題が原因である可能性があります。", + "bundle_column_error.error.title": "あらら……", + "bundle_column_error.network.body": "このページを読み込もうとしたときにエラーが発生しました。インターネット接続またはこのサーバーの一時的な問題が発生した可能性があります。", + "bundle_column_error.network.title": "ネットワークエラー", "bundle_column_error.retry": "再試行", - "bundle_column_error.title": "ネットワークエラー", + "bundle_column_error.return": "ホームに戻る", + "bundle_column_error.routing.body": "要求されたページは見つかりませんでした。アドレスバーの URL は正しいですか?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "閉じる", "bundle_modal_error.message": "コンポーネントの読み込み中に問題が発生しました。", "bundle_modal_error.retry": "再試行", + "closed_registrations.other_server_instructions": "Mastodonは分散型なので他のサーバーにアカウントを作ってもこのサーバーとやり取りできます。", + "closed_registrations_modal.description": "現在{domain}でアカウント作成はできませんがMastodonは{domain}のアカウントでなくても利用できます。", + "closed_registrations_modal.find_another_server": "別のサーバーを探す", + "closed_registrations_modal.preamble": "Mastodonは分散型なのでどのサーバーでアカウントを作成してもこのサーバーのユーザーを誰でもフォローして交流することができます。また自分でホスティングすることもできます!", + "closed_registrations_modal.title": "Mastodonでアカウントを作成", + "column.about": "About", "column.blocks": "ブロックしたユーザー", "column.bookmarks": "ブックマーク", "column.community": "ローカルタイムライン", @@ -119,7 +150,7 @@ "compose_form.poll.remove_option": "この項目を削除", "compose_form.poll.switch_to_multiple": "複数選択に変更", "compose_form.poll.switch_to_single": "単一選択に変更", - "compose_form.publish": "トゥート", + "compose_form.publish": "投稿", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "変更を保存", "compose_form.sensitive.hide": "メディアを閲覧注意にする", @@ -132,6 +163,8 @@ "confirmations.block.block_and_report": "ブロックし通報", "confirmations.block.confirm": "ブロック", "confirmations.block.message": "本当に{name}さんをブロックしますか?", + "confirmations.cancel_follow_request.confirm": "フォローリクエストを取り消す", + "confirmations.cancel_follow_request.message": "{name}に対するフォローリクエストを取り消しますか?", "confirmations.delete.confirm": "削除", "confirmations.delete.message": "本当に削除しますか?", "confirmations.delete_list.confirm": "削除", @@ -155,10 +188,21 @@ "conversation.mark_as_read": "既読にする", "conversation.open": "会話を表示", "conversation.with": "{names}", + "copypaste.copied": "コピーしました", + "copypaste.copy": "コピー", "directory.federated": "既知の連合より", "directory.local": "{domain} のみ", "directory.new_arrivals": "新着順", "directory.recently_active": "最近の活動順", + "disabled_account_banner.account_settings": "アカウント設定", + "disabled_account_banner.text": "あなたのアカウント『{disabledAccount}』は現在無効になっています。", + "dismissable_banner.community_timeline": "これらは{domain}がホストしている人たちの最新の公開投稿です。", + "dismissable_banner.dismiss": "閉じる", + "dismissable_banner.explore_links": "これらのニュース記事は現在分散型ネットワークの他のサーバーの人たちに話されています。", + "dismissable_banner.explore_statuses": "分散型ネットワーク内の他のサーバーのこれらの投稿は現在このサーバー上で注目されています。", + "dismissable_banner.explore_tags": "これらのハッシュタグは現在分散型ネットワークの他のサーバーの人たちに話されています。", + "dismissable_banner.public_timeline": "これらの投稿はこのサーバーが知っている分散型ネットワークの他のサーバーの人たちの最新の公開投稿です。", + "dismissable_banner.area_timeline": "これらの投稿は指定した地域の他のサーバーの人たちの最新の公開投稿です。", "embed.instructions": "下記のコードをコピーしてウェブサイトに埋め込みます。", "embed.preview": "表示例:", "emoji_button.activity": "活動", @@ -210,21 +254,37 @@ "explore.trending_links": "ニュース", "explore.trending_statuses": "投稿", "explore.trending_tags": "ハッシュタグ", + "filter_modal.added.context_mismatch_explanation": "このフィルターカテゴリーはあなたがアクセスした投稿のコンテキストには適用されません。この投稿のコンテキストでもフィルターを適用するにはフィルターを編集する必要があります。", + "filter_modal.added.context_mismatch_title": "コンテキストが一致しません!", + "filter_modal.added.expired_explanation": "このフィルターカテゴリーは有効期限が切れています。適用するには有効期限を更新してください。", + "filter_modal.added.expired_title": "フィルターの有効期限が切れています!", + "filter_modal.added.review_and_configure": "このフィルターカテゴリーを確認して設定するには、{settings_link}に移動します。", + "filter_modal.added.review_and_configure_title": "フィルター設定", + "filter_modal.added.settings_link": "設定", + "filter_modal.added.short_explanation": "この投稿はフィルターカテゴリー『{title}』に追加されました。", + "filter_modal.added.title": "フィルターを追加しました!", + "filter_modal.select_filter.context_mismatch": "このコンテキストには当てはまりません", + "filter_modal.select_filter.expired": "期限切れ", + "filter_modal.select_filter.prompt_new": "新しいカテゴリー: {name}", + "filter_modal.select_filter.search": "検索または新規作成", + "filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します", + "filter_modal.select_filter.title": "この投稿をフィルターする", + "filter_modal.title.status": "投稿をフィルターする", "follow_recommendations.done": "完了", "follow_recommendations.heading": "投稿を見たい人をフォローしてください!ここにおすすめがあります。", "follow_recommendations.lead": "あなたがフォローしている人の投稿は、ホームフィードに時系列で表示されます。いつでも簡単に解除できるので、気軽にフォローしてみてください!", "follow_request.authorize": "許可", "follow_request.reject": "拒否", "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。", + "footer.about": "概要", + "footer.directory": "ディレクトリ", + "footer.get_app": "アプリをダウンロードする", + "footer.invite": "新規ユーザーの招待", + "footer.keyboard_shortcuts": "キーボードショートカット", + "footer.privacy_policy": "プライバシーポリシー", + "footer.source_code": "ソースコードを表示", "generic.saved": "保存しました", - "getting_started.developers": "開発", - "getting_started.directory": "ディレクトリ", - "getting_started.documentation": "ドキュメント", "getting_started.heading": "スタート", - "getting_started.invite": "招待", - "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ({github}) から開発に参加したり、問題を報告したりできます。", - "getting_started.security": "アカウント設定", - "getting_started.terms": "プライバシーポリシー", "hashtag.column_header.tag_mode.all": "と{additional}", "hashtag.column_header.tag_mode.any": "か{additional}", "hashtag.column_header.tag_mode.none": "({additional} を除く)", @@ -234,11 +294,25 @@ "hashtag.column_settings.tag_mode.any": "いずれかを含む", "hashtag.column_settings.tag_mode.none": "これらを除く", "hashtag.column_settings.tag_toggle": "このカラムに追加のタグを含める", + "hashtag.follow": "ハッシュタグをフォローする", + "hashtag.unfollow": "ハッシュタグのフォローを解除", "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_replies": "返信表示", "home.hide_announcements": "お知らせを隠す", "home.show_announcements": "お知らせを表示", + "interaction_modal.description.favourite": "Mastodonのアカウントでこの投稿をお気に入りに入れて投稿者に感謝を知らせたり保存することができます。", + "interaction_modal.description.follow": "Mastodonのアカウントで{name}さんをフォローしてホームフィードで投稿を受け取れます。", + "interaction_modal.description.reblog": "Mastodonのアカウントでこの投稿をブーストして自分のフォロワーに共有できます。", + "interaction_modal.description.reply": "Mastodonのアカウントでこの投稿に反応できます。", + "interaction_modal.on_another_server": "別のサーバー", + "interaction_modal.on_this_server": "このサーバー", + "interaction_modal.other_server_instructions": "このURLをお気に入りのMastodonアプリやMastodonサーバーのWebインターフェースの検索フィールドにコピーして貼り付けます。", + "interaction_modal.preamble": "Mastodonは分散化されているためアカウントを持っていなくても別のMastodonサーバーまたは互換性のあるプラットフォームでホストされているアカウントを使用できます。", + "interaction_modal.title.favourite": "{name}さんの投稿をお気に入り", + "interaction_modal.title.follow": "{name}さんをフォロー", + "interaction_modal.title.reblog": "{name}さんの投稿をブースト", + "interaction_modal.title.reply": "{name}さんの投稿にリプライ", "intervals.full.days": "{number}日", "intervals.full.hours": "{number}時間", "intervals.full.minutes": "{number}分", @@ -282,7 +356,7 @@ "lightbox.next": "次", "lightbox.previous": "前", "limited_account_hint.action": "構わず表示する", - "limited_account_hint.title": "このプロフィールはサーバーのモデレーターによって非表示になっています。", + "limited_account_hint.title": "このプロフィールは{domain}のモデレーターによって非表示にされています。", "lists.account.add": "リストに追加", "lists.account.remove": "リストから外す", "lists.delete": "リストを削除", @@ -298,13 +372,14 @@ "lists.subheading": "あなたのリスト", "load_pending": "{count}件の新着", "loading_indicator.label": "読み込み中...", - "media_gallery.toggle_visible": "メディアを隠す", + "media_gallery.toggle_visible": "{number, plural, one {画像を閉じる} other {画像を閉じる}}", "missing_indicator.label": "見つかりません", "missing_indicator.sublabel": "見つかりませんでした", + "moved_to_account_banner.text": "あなたのアカウント『{disabledAccount}』は『{movedToAccount}』に移動したため現在無効になっています。", "mute_modal.duration": "ミュートする期間", "mute_modal.hide_notifications": "このユーザーからの通知を隠しますか?", "mute_modal.indefinite": "無期限", - "navigation_bar.apps": "アプリ", + "navigation_bar.about": "About", "navigation_bar.blocks": "ブロックしたユーザー", "navigation_bar.bookmarks": "ブックマーク", "navigation_bar.community_timeline": "ローカルタイムライン", @@ -318,8 +393,6 @@ "navigation_bar.filters": "フィルター設定", "navigation_bar.follow_requests": "フォローリクエスト", "navigation_bar.follows_and_followers": "フォロー・フォロワー", - "navigation_bar.info": "このサーバーについて", - "navigation_bar.keyboard_shortcuts": "キーボードショートカット", "navigation_bar.lists": "リスト", "navigation_bar.logout": "ログアウト", "navigation_bar.mutes": "ミュートしたユーザー", @@ -328,7 +401,10 @@ "navigation_bar.preferences": "ユーザー設定", "navigation_bar.public_timeline": "連合タイムライン", "navigation_bar.area_timeline": "地域タイムライン", + "navigation_bar.search": "検索", "navigation_bar.security": "セキュリティ", + "not_signed_in_indicator.not_signed_in": "この機能を使うにはログインする必要があります。", + "notification.admin.report": "{name}さんが{target}さんを通報しました", "notification.admin.sign_up": "{name}さんがサインアップしました", "notification.favourite": "{name}さんがあなたの投稿をお気に入りに登録しました", "notification.follow": "{name}さんにフォローされました", @@ -341,6 +417,7 @@ "notification.update": "{name}さんが投稿を編集しました", "notifications.clear": "通知を消去", "notifications.clear_confirmation": "本当に通知を消去しますか?", + "notifications.column_settings.admin.report": "新しい通報:", "notifications.column_settings.admin.sign_up": "新規登録:", "notifications.column_settings.alert": "デスクトップ通知", "notifications.column_settings.favourite": "お気に入り:", @@ -394,6 +471,8 @@ "privacy.public.short": "公開", "privacy.unlisted.long": "誰でも閲覧可、サイレント", "privacy.unlisted.short": "未収載", + "privacy_policy.last_updated": "{date}に更新", + "privacy_policy.title": "プライバシーポリシー", "refresh": "更新", "regeneration_indicator.label": "読み込み中…", "regeneration_indicator.sublabel": "ホームタイムラインは準備中です!", @@ -446,7 +525,13 @@ "report.thanks.title_actionable": "ご報告ありがとうございます、追って確認します。", "report.unfollow": "@{name}さんのフォローを解除", "report.unfollow_explanation": "このアカウントをフォローしています。ホームフィードに彼らの投稿を表示しないようにするには、彼らのフォローを外してください。", + "report_notification.attached_statuses": "{count, plural, one {{count}件の投稿} other {{count}件の投稿}}が添付されました。", + "report_notification.categories.other": "その他", + "report_notification.categories.spam": "スパム", + "report_notification.categories.violation": "ルール違反", + "report_notification.open": "通報を開く", "search.placeholder": "検索", + "search.search_or_paste": "検索またはURLを入力", "search_popout.search_format": "高度な検索フォーマット", "search_popout.tips.full_text": "表示名やユーザー名、ハッシュタグのほか、あなたの投稿やお気に入り、ブーストした投稿、返信に一致する単純なテキスト。", "search_popout.tips.hashtag": "ハッシュタグ", @@ -459,7 +544,17 @@ "search_results.nothing_found": "この検索条件では何も見つかりませんでした", "search_results.statuses": "投稿", "search_results.statuses_fts_disabled": "このサーバーでは投稿本文の検索は利用できません。", + "search_results.title": "『{q}』の検索結果", "search_results.total": "{count, number}件の結果", + "server_banner.about_active_users": "過去30日間にこのサーバーを使用している人 (月間アクティブユーザー)", + "server_banner.active_users": "人のアクティブユーザー", + "server_banner.administered_by": "管理者", + "server_banner.introduction": "{domain}は{mastodon}を使った分散型ソーシャルネットワークの一部です。", + "server_banner.learn_more": "もっと詳しく", + "server_banner.server_stats": "サーバーの情報", + "sign_in_banner.create_account": "アカウント作成", + "sign_in_banner.sign_in": "ログイン", + "sign_in_banner.text": "ログインしてプロファイルやハッシュタグ、お気に入りをフォローしたり、投稿を共有したり、返信したり、別のサーバーのアカウントと交流したりできます。", "status.admin_account": "@{name}さんのモデレーション画面を開く", "status.admin_status": "この投稿をモデレーション画面で開く", "status.block": "@{name}さんをブロック", @@ -475,7 +570,9 @@ "status.edited_x_times": "{count}回編集", "status.embed": "埋め込み", "status.favourite": "お気に入り", + "status.filter": "この投稿をフィルターする", "status.filtered": "フィルターされました", + "status.hide": "投稿を非表示", "status.history.created": "{name}さんが{date}に作成", "status.history.edited": "{name}さんが{date}に編集", "status.load_more": "もっと見る", @@ -494,19 +591,26 @@ "status.reblogs.empty": "まだ誰もブーストしていません。ブーストされるとここに表示されます。", "status.redraft": "削除して下書きに戻す", "status.remove_bookmark": "ブックマークを削除", + "status.replied_to": "{name}さんへの返信", "status.reply": "返信", "status.replyAll": "全員に返信", "status.report": "@{name}さんを通報", "status.sensitive_warning": "閲覧注意", "status.share": "共有", + "status.show_filter_reason": "表示する", "status.show_less": "隠す", "status.show_less_all": "全て隠す", "status.show_more": "もっと見る", "status.show_more_all": "全て見る", - "status.show_thread": "スレッドを表示", + "status.show_original": "原文を表示", + "status.translate": "翻訳", + "status.translated_from_with": "{provider}を使って{lang}から翻訳", "status.uncached_media_warning": "利用できません", "status.unmute_conversation": "会話のミュートを解除", "status.unpin": "プロフィールへの固定を解除", + "subscribed_languages.lead": "選択した言語の投稿だけがホームとリストのタイムラインに表示されます。全ての言語の投稿を受け取る場合は全てのチェックを外して下さい。", + "subscribed_languages.save": "変更を保存", + "subscribed_languages.target": "{target}さんの購読言語を変更します", "suggestions.dismiss": "隠す", "suggestions.header": "興味あるかもしれません…", "tabs_bar.federated_timeline": "連合", @@ -514,7 +618,6 @@ "tabs_bar.local_timeline": "ローカル", "tabs_bar.notifications": "通知", "tabs_bar.area_timeline": "地域", - "tabs_bar.search": "検索", "time_remaining.days": "残り{number}日", "time_remaining.hours": "残り{number}時間", "time_remaining.minutes": "残り{number}分", @@ -524,7 +627,7 @@ "timeline_hint.resources.followers": "フォロワー", "timeline_hint.resources.follows": "フォロー", "timeline_hint.resources.statuses": "以前の投稿", - "trends.counter_by_accounts": "{counter}人が投稿", + "trends.counter_by_accounts": "過去{days, plural, one {{days}日} other {{days}日}}に{count, plural, one {{counter}人} other {{counter} 人}}", "trends.trending_now": "トレンドタグ", "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。", "units.short.billion": "{count}B", @@ -552,6 +655,7 @@ "upload_modal.preparing_ocr": "OCRの準備中…", "upload_modal.preview_label": "プレビュー ({ratio})", "upload_progress.label": "アップロード中...", + "upload_progress.processing": "処理中…", "video.close": "動画を閉じる", "video.download": "ダウンロード", "video.exit_fullscreen": "全画面を終了する", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 2ded9c3505d0dd..39e84e0040ed39 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "ბოტი", @@ -7,13 +19,16 @@ "account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}", "account.blocked": "დაიბლოკა", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "პირდაპირი წერილი @{name}-ს", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "დომენი დამალულია", "account.edit_profile": "პროფილის ცვლილება", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "გამორჩევა პროფილზე", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "გაყოლა", "account.followers": "მიმდევრები", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "მოგყვებათ", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "დაიმალოს ბუსტები @{name}-სგან", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "მედია", "account.mention": "ასახელეთ @{name}", - "account.moved_to": "{name} გადავიდა:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "გააჩუმე @{name}", "account.mute_notifications": "გააჩუმე შეტყობინებები @{name}-სგან", "account.muted": "გაჩუმებული", + "account.open_original_page": "Open original page", "account.posts": "ტუტები", "account.posts_with_replies": "ტუტები და პასუხები", "account.report": "დაარეპორტე @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "უპს!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "კვირაში {count}", "boost_modal.combo": "შეგიძლიათ დააჭიროთ {combo}-ს რათა შემდეგ ჯერზე გამოტოვოთ ეს", - "bundle_column_error.body": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "სცადეთ კიდევ ერთხელ", - "bundle_column_error.title": "ქსელის შეცდომა", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "დახურვა", "bundle_modal_error.message": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.", "bundle_modal_error.retry": "სცადეთ კიდევ ერთხელ", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "დაბლოკილი მომხმარებლები", "column.bookmarks": "Bookmarks", "column.community": "ლოკალური თაიმლაინი", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "ტუტი", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "ბლოკი", "confirmations.block.message": "დარწმუნებული ხართ, გსურთ დაბლოკოთ {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "გაუქმება", "confirmations.delete.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი?", "confirmations.delete_list.confirm": "გაუქმება", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ეს სტატუსი ჩასვით თქვენს ვებ-საიტზე შემდეგი კოდის კოპირებით.", "embed.preview": "ესაა თუ როგორც გამოჩნდება:", "emoji_button.activity": "აქტივობა", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "ავტორიზაცია", "follow_request.reject": "უარყოფა", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "დეველოპერები", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "დოკუმენტაცია", "getting_started.heading": "დაწყება", - "getting_started.invite": "ხალხის მოწვევა", - "getting_started.open_source_notice": "მასტოდონი ღია პროგრამაა. შეგიძლიათ შეუწყოთ ხელი ან შექმნათ პრობემის რეპორტი {github}-ზე.", - "getting_started.security": "უსაფრთხოება", - "getting_started.terms": "მომსახურების პირობები", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "ძირითადი", "home.column_settings.show_reblogs": "ბუსტების ჩვენება", "home.column_settings.show_replies": "პასუხების ჩვენება", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "შემდეგი", "lightbox.previous": "წინა", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "სიაში დამატება", "lists.account.remove": "სიიდან ამოშლა", "lists.delete": "სიის წაშლა", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "ხილვადობის ჩართვა", "missing_indicator.label": "არაა ნაპოვნი", "missing_indicator.sublabel": "ამ რესურსის პოვნა ვერ მოხერხდა", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "დავმალოთ შეტყობინებები ამ მომხმარებლისგან?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "დაბლოკილი მომხმარებლები", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "ლოკალური თაიმლაინი", @@ -304,8 +378,6 @@ "navigation_bar.filters": "გაჩუმებული სიტყვები", "navigation_bar.follow_requests": "დადევნების მოთხოვნები", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ამ ინსტანციის შესახებ", - "navigation_bar.keyboard_shortcuts": "ცხელი კლავიშები", "navigation_bar.lists": "სიები", "navigation_bar.logout": "გასვლა", "navigation_bar.mutes": "გაჩუმებული მომხმარებლები", @@ -313,7 +385,10 @@ "navigation_bar.pins": "აპინული ტუტები", "navigation_bar.preferences": "პრეფერენსიები", "navigation_bar.public_timeline": "ფედერალური თაიმლაინი", + "navigation_bar.search": "Search", "navigation_bar.security": "უსაფრთხოება", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name}-მა თქვენი სტატუსი აქცია ფავორიტად", "notification.follow": "{name} გამოგყვათ", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "შეტყობინებების გასუფთავება", "notifications.clear_confirmation": "დარწმუნებული ხართ, გსურთ სამუდამოდ წაშალოთ ყველა თქვენი შეტყობინება?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "დესკტოპ შეტყობინებები", "notifications.column_settings.favourite": "ფავორიტები:", @@ -379,6 +455,8 @@ "privacy.public.short": "საჯარო", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "ჩამოუთვლელი", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "იტვირთება…", "regeneration_indicator.sublabel": "თქვენი სახლის ლენტა მზადდება!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "ძებნა", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "დეტალური ძებნის ფორმა", "search_popout.tips.full_text": "მარტივი ტექსტი აბრუნებს სტატუსებს რომლებიც შექმენით, აქციეთ ფავორიტად, დაბუსტეთ, ან რაშიც ასახელეთ, ასევე ემთხვევა მომხმარებლის სახელებს, დისპლეი სახელებს, და ჰეშტეგებს.", "search_popout.tips.hashtag": "ჰეშტეგი", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "ტუტები", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "დაბლოკე @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "ჩართვა", "status.favourite": "ფავორიტი", + "status.filter": "Filter this post", "status.filtered": "ფილტრირებული", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "მეტის ჩატვირთვა", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "გაუქმდეს და გადანაწილდეს", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "პასუხი", "status.replyAll": "უპასუხე თემას", "status.report": "დაარეპორტე @{name}", "status.sensitive_warning": "მგრძნობიარე კონტენტი", "status.share": "გაზიარება", + "status.show_filter_reason": "Show anyway", "status.show_less": "აჩვენე ნაკლები", "status.show_less_all": "აჩვენე ნაკლები ყველაზე", "status.show_more": "აჩვენე მეტი", "status.show_more_all": "აჩვენე მეტი ყველაზე", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "საუბარზე გაჩუმების მოშორება", "status.unpin": "პროფილიდან პინის მოშორება", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "ფედერალური", "tabs_bar.home": "სახლი", "tabs_bar.local_timeline": "ლოკალური", "tabs_bar.notifications": "შეტყობინებები", - "tabs_bar.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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "თქვენი დრაფტი გაუქმდება თუ დატოვებთ მასტოდონს.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "იტვირთება...", + "upload_progress.processing": "Processing…", "video.close": "ვიდეოს დახურვა", "video.download": "Download file", "video.exit_fullscreen": "სრულ ეკრანზე ჩვენების გათიშვა", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 37c4c9d0bdb426..47a567108758b9 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Tazmilt", "account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin", "account.badges.bot": "Aṛubut", @@ -7,38 +19,44 @@ "account.block_domain": "Ffer kra i d-yekkan seg {domain}", "account.blocked": "Yettusewḥel", "account.browse_more_on_origin_server": "Snirem ugar deg umeɣnu aneẓli", - "account.cancel_follow_request": "Sefsex asuter n uḍfar", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Izen usrid i @{name}", "account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara ilɣa mi ara d-isuffeɣ @{name}", "account.domain_blocked": "Taɣult yeffren", "account.edit_profile": "Ẓreg amaɣnu", "account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}", "account.endorse": "Welleh fell-as deg umaɣnu-inek", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Ḍfer", "account.followers": "Imeḍfaren", "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.", "account.followers_counter": "{count, plural, one {{count} n umeḍfar} other {{count} n imeḍfaren}}", "account.following": "Following", - "account.following_counter": "{count, plural, one {{counter} yeṭṭafaren} aḍfar {{counter} wayeḍ}}", + "account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}", "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.", "account.follows_you": "Yeṭṭafaṛ-ik", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}", - "account.joined": "Yerna-d {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed ass n {date}", "account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.", - "account.media": "Amidya", + "account.media": "Timidyatin", "account.mention": "Bder-d @{name}", - "account.moved_to": "{name} ibeddel ɣer:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Sgugem @{name}", "account.mute_notifications": "Sgugem tilɣa sγur @{name}", "account.muted": "Yettwasgugem", - "account.posts": "Tijewwaqin", - "account.posts_with_replies": "Tijewwaqin akked tririyin", + "account.open_original_page": "Open original page", + "account.posts": "Tisuffaɣ", + "account.posts_with_replies": "Tisuffaɣ d tririyin", "account.report": "Cetki ɣef @{name}", "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar", "account.share": "Bḍu amaɣnu n @{name}", "account.show_reblogs": "Ssken-d inebḍa n @{name}", - "account.statuses_counter": "{count, plural, one {{counter} ajewwaq} other {{counter} ijewwaqen}}", + "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", "account.unblock": "Serreḥ i @{name}", "account.unblock_domain": "Ssken-d {domain}", "account.unblock_short": "Unblock", @@ -59,18 +77,31 @@ "alert.unexpected.title": "Ayhuh!", "announcement.announcement": "Ulɣu", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} i yimalas", "boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen", - "bundle_column_error.body": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen", - "bundle_column_error.title": "Tuccḍa deg uẓeṭṭa", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Mdel", "bundle_modal_error.message": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.", "bundle_modal_error.retry": "Ɛreḍ tikelt-nniḍen", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "Γef", "column.blocks": "Imiḍanen yettusḥebsen", "column.bookmarks": "Ticraḍ", "column.community": "Tasuddemt tadigant", - "column.direct": "Direct messages", + "column.direct": "Iznan usriden", "column.directory": "Inig deg imaɣnuten", "column.domain_blocks": "Taɣulin yeffren", "column.favourites": "Ismenyifen", @@ -92,8 +123,8 @@ "community.column_settings.local_only": "Adigan kan", "community.column_settings.media_only": "Allal n teywalt kan", "community.column_settings.remote_only": "Anmeggag kan", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Beddel tutlayt", + "compose.language.search": "Nadi tutlayin …", "compose_form.direct_message_warning_learn_more": "Issin ugar", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", @@ -106,19 +137,21 @@ "compose_form.poll.remove_option": "Sfeḍ afran-agi", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Jewweq", + "compose_form.publish": "Suffeɣ", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Sekles ibeddilen", "compose_form.sensitive.hide": "Creḍ allal n teywalt d anafri", "compose_form.sensitive.marked": "Allal n teywalt yettwacreḍ d anafri", - "compose_form.sensitive.unmarked": "Allal n teywalt ur yettwacreḍ ara d anafri", - "compose_form.spoiler.marked": "Aḍris yeffer deffir n walɣu", - "compose_form.spoiler.unmarked": "Aḍris ur yettwaffer ara", - "compose_form.spoiler_placeholder": "Aru alɣu-inek da", + "compose_form.sensitive.unmarked": "{count, plural, one {Amidya ur yettwacreḍ ara d anafri} other {Imidyaten ur ttwacreḍen ara d inafriyen}}", + "compose_form.spoiler.marked": "Kkes aḍris yettwaffren deffir n walɣu", + "compose_form.spoiler.unmarked": "Rnu aḍris yettwaffren deffir n walɣu", + "compose_form.spoiler_placeholder": "Aru alɣu-inek·inem da", "confirmation_modal.cancel": "Sefsex", "confirmations.block.block_and_report": "Sewḥel & sewɛed", "confirmations.block.confirm": "Sewḥel", "confirmations.block.message": "Tebγiḍ s tidet ad tesḥebseḍ {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Kkes", "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?", "confirmations.delete_list.confirm": "Kkes", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Creḍ yettwaɣṛa", "conversation.open": "Ssken adiwenni", "conversation.with": "Akked {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Nγel", "directory.federated": "Deg fedivers yettwasnen", "directory.local": "Seg {domain} kan", "directory.new_arrivals": "Imaynuten id yewḍen", "directory.recently_active": "Yermed xas melmi kan", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.", "embed.preview": "Akka ara d-iban:", "emoji_button.activity": "Aqeddic", @@ -190,27 +233,43 @@ "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "errors.unexpected_crash.copy_stacktrace": "Nɣel stacktrace ɣef wafus", "errors.unexpected_crash.report_issue": "Mmel ugur", - "explore.search_results": "Search results", + "explore.search_results": "Igemmaḍ n unadi", "explore.suggested_follows": "I kečč·kem", - "explore.title": "Explore", - "explore.trending_links": "News", + "explore.title": "Snirem", + "explore.trending_links": "Isallen", "explore.trending_statuses": "Tisuffaɣ", "explore.trending_tags": "Ihacṭagen", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Immed", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Ssireg", "follow_request.reject": "Agi", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Yettwasekles", - "getting_started.developers": "Ineflayen", - "getting_started.directory": "Akaram n imaɣnuten", - "getting_started.documentation": "Amnir", "getting_started.heading": "Bdu", - "getting_started.invite": "Snebgi-d imdanen", - "getting_started.open_source_notice": "Maṣṭudun d aseɣzan s uɣbalu yeldin. Tzemreḍ ad tɛiwneḍ neɣ ad temmleḍ uguren deg GitHub {github}.", - "getting_started.security": "Iɣewwaṛen n umiḍan", - "getting_started.terms": "Tiwetlin n useqdec", "hashtag.column_header.tag_mode.all": "d {additional}", "hashtag.column_header.tag_mode.any": "neɣ {additional}", "hashtag.column_header.tag_mode.none": "war {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Yiwen seg-sen", "hashtag.column_settings.tag_mode.none": "Yiwen ala seg-sen", "hashtag.column_settings.tag_toggle": "Glu-d s yihacṭagen imerna i ujgu-agi", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Igejdanen", "home.column_settings.show_reblogs": "Ssken-d beṭṭu", "home.column_settings.show_replies": "Ssken-d tiririyin", "home.hide_announcements": "Ffer ulɣuyen", "home.show_announcements": "Ssken-d ulɣuyen", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "Deg uqeddac-ayi", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Ḍfer {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}", "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}", "intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}", @@ -268,7 +341,7 @@ "lightbox.next": "Γer zdat", "lightbox.previous": "Γer deffir", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Rnu ɣer tebdart", "lists.account.remove": "Kkes seg tebdart", "lists.delete": "Kkes tabdart", @@ -287,15 +360,16 @@ "media_gallery.toggle_visible": "Ffer {number, plural, one {tugna} other {tugniwin}}", "missing_indicator.label": "Ulac-it", "missing_indicator.sublabel": "Ur nufi ara aɣbalu-a", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Tanzagt", "mute_modal.hide_notifications": "Tebɣiḍ ad teffreḍ talɣutin n umseqdac-a?", "mute_modal.indefinite": "Ur yettwasbadu ara", - "navigation_bar.apps": "Isnasen izirazen", + "navigation_bar.about": "Γef", "navigation_bar.blocks": "Imseqdacen yettusḥebsen", "navigation_bar.bookmarks": "Ticraḍ", "navigation_bar.community_timeline": "Tasuddemt tadigant", "navigation_bar.compose": "Aru tajewwiqt tamaynut", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Iznan usridden", "navigation_bar.discover": "Ẓer", "navigation_bar.domain_blocks": "Tiɣula yeffren", "navigation_bar.edit_profile": "Ẓreg amaɣnu", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Awalen i yettwasgugmen", "navigation_bar.follow_requests": "Isuturen n teḍfeṛt", "navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ", - "navigation_bar.info": "Ɣef uqeddac-agi", - "navigation_bar.keyboard_shortcuts": "Inegzumen n unasiw", "navigation_bar.lists": "Tibdarin", "navigation_bar.logout": "Ffeɣ", "navigation_bar.mutes": "Iseqdacen yettwasusmen", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Tijewwiqin yettwasentḍen", "navigation_bar.preferences": "Imenyafen", "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut", + "navigation_bar.search": "Nadi", "navigation_bar.security": "Taɣellist", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} yesmenyef tasuffeɣt-ik·im", "notification.follow": "{name} yeṭṭafaṛ-ik", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Sfeḍ tilɣa", "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk tilɣa-inek·em i lebda?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Tilɣa n tnarit", "notifications.column_settings.favourite": "Ismenyifen:", @@ -379,6 +455,8 @@ "privacy.public.short": "Azayez", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "War tabdert", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Tasertit tabaḍnit", "refresh": "Smiren", "regeneration_indicator.label": "Yessalay-d…", "regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Nadi", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Anadi yenneflin", "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": "ahacṭag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Tibeṛṛaniyin", "search_results.statuses_fts_disabled": "Anadi ɣef tjewwiqin s ugbur-nsent ur yermid ara deg uqeddac-agi n Maṣṭudun.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {n ugemmuḍ} other {n yigemmuḍen}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Issin ugar", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Qqen", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Seḥbes @{name}", @@ -457,10 +551,12 @@ "status.direct": "Izen usrid i @{name}", "status.edit": "Ẓreg", "status.edited": "Tettwaẓreg deg {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}", "status.embed": "Seddu", "status.favourite": "Rnu ɣer yismenyifen", + "status.filter": "Filter this post", "status.filtered": "Yettwasizdeg", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Sali ugar", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.", "status.redraft": "Kkes tɛiwdeḍ tira", "status.remove_bookmark": "Kkes tacreḍt", + "status.replied_to": "Replied to {name}", "status.reply": "Err", "status.replyAll": "Err i lxiḍ", "status.report": "Cetki ɣef @{name}", "status.sensitive_warning": "Agbur amḥulfu", "status.share": "Bḍu", + "status.show_filter_reason": "Show anyway", "status.show_less": "Ssken-d drus", "status.show_less_all": "Semẓi akk tisuffγin", "status.show_more": "Ssken-d ugar", "status.show_more_all": "Ẓerr ugar lebda", - "status.show_thread": "Ssken-d lxiḍ", + "status.show_original": "Show original", + "status.translate": "Suqel", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ulac-it", "status.unmute_conversation": "Kkes asgugem n udiwenni", "status.unpin": "Kkes asenteḍ seg umaɣnu", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Sekles ibeddilen", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Sefsex asumer", "suggestions.header": "Ahat ad tcelgeḍ deg…", "tabs_bar.federated_timeline": "Amatu", "tabs_bar.home": "Agejdan", "tabs_bar.local_timeline": "Adigan", "tabs_bar.notifications": "Tilɣa", - "tabs_bar.search": "Nadi", "time_remaining.days": "Mazal {number, plural, one {# n wass} other {# n wussan}}", "time_remaining.hours": "Mazal {number, plural, one {# n usrag} other {# n yesragen}}", "time_remaining.minutes": "Mazal {number, plural, one {# n tesdat} other {# n tesdatin}}", @@ -508,8 +610,8 @@ "timeline_hint.resources.followers": "Imeḍfaṛen", "timeline_hint.resources.follows": "T·Yeṭafaṛ", "timeline_hint.resources.statuses": "Tijewwaqin tiqdimin", - "trends.counter_by_accounts": "{count, plural, one {{counter} amdan} imdanen {{counter} wiyaḍ}} yettmeslayen", - "trends.trending_now": "Trending now", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "Ayen mucaɛen tura", "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.", "units.short.billion": "{count}B", "units.short.million": "{count}M", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Aheyyi n OCR…", "upload_modal.preview_label": "Taskant ({ratio})", "upload_progress.label": "Asali iteddu...", + "upload_progress.processing": "Processing…", "video.close": "Mdel tabidyutt", "video.download": "Sidered afaylu", "video.exit_fullscreen": "Ffeɣ seg ugdil ačuran", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 659c45db4c033a..6bd43ffe8f7003 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Жазба", "account.add_or_remove_from_list": "Тізімге қосу немесе жою", "account.badges.bot": "Бот", @@ -7,13 +19,16 @@ "account.block_domain": "Домендегі барлығын бұғатта {domain}", "account.blocked": "Бұғатталды", "account.browse_more_on_origin_server": "Толығырақ оригинал профилінде қара", - "account.cancel_follow_request": "Жазылуға сұранымды қайтару", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Жеке хат @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Домен жабық", "account.edit_profile": "Профильді өңдеу", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Профильде рекомендеу", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Жазылу", "account.followers": "Оқырмандар", "account.followers.empty": "Әлі ешкім жазылмаған.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Жазылым} other {{counter} Жазылым}}", "account.follows.empty": "Ешкімге жазылмапты.", "account.follows_you": "Сізге жазылыпты", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name} атты қолданушының әрекеттерін жасыру", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Сілтеме меншігі расталған күн {date}", "account.locked_info": "Бұл қолданушы өзі туралы мәліметтерді жасырған. Тек жазылғандар ғана көре алады.", "account.media": "Медиа", "account.mention": "Аталым @{name}", - "account.moved_to": "{name} көшіп кетті:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Үнсіз қылу @{name}", "account.mute_notifications": "@{name} туралы ескертпелерді жасыру", "account.muted": "Үнсіз", + "account.open_original_page": "Open original page", "account.posts": "Жазбалар", "account.posts_with_replies": "Жазбалар мен жауаптар", "account.report": "Шағымдану @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Өй!", "announcement.announcement": "Хабарландыру", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} аптасына", "boost_modal.combo": "Келесіде өткізіп жіберу үшін басыңыз {combo}", - "bundle_column_error.body": "Бұл компонентті жүктеген кезде бір қате пайда болды.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Қайтадан көріңіз", - "bundle_column_error.title": "Желі қатесі", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Жабу", "bundle_modal_error.message": "Бұл компонентті жүктеген кезде бір қате пайда болды.", "bundle_modal_error.retry": "Қайтадан көріңіз", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Бұғатталғандар", "column.bookmarks": "Бетбелгілер", "column.community": "Жергілікті желі", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Бұл жауапты өшір", "compose_form.poll.switch_to_multiple": "Бірнеше жауап таңдайтындай қылу", "compose_form.poll.switch_to_single": "Тек бір жауап таңдайтындай қылу", - "compose_form.publish": "Түрт", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "Сезімтал ретінде белгіле", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Блок және Шағым", "confirmations.block.confirm": "Бұғаттау", "confirmations.block.message": "{name} атты қолданушыны бұғаттайтыныңызға сенімдісіз бе?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Өшіру", "confirmations.delete.message": "Бұл жазбаны өшіресіз бе?", "confirmations.delete_list.confirm": "Өшіру", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Оқылды деп белгіле", "conversation.open": "Пікірталасты қарау", "conversation.with": "{names} атты", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Танымал желіден", "directory.local": "Тек {domain} доменінен", "directory.new_arrivals": "Жаңадан келгендер", "directory.recently_active": "Жақында кіргендер", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Төмендегі кодты көшіріп алу арқылы жазбаны басқа сайттарға да орналастыра аласыз.", "embed.preview": "Былай көрінетін болады:", "emoji_button.activity": "Белсенділік", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Авторизация", "follow_request.reject": "Қабылдамау", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Сақталды", - "getting_started.developers": "Жасаушылар тобы", - "getting_started.directory": "Профильдер каталогы", - "getting_started.documentation": "Құжаттама", "getting_started.heading": "Желіде", - "getting_started.invite": "Адам шақыру", - "getting_started.open_source_notice": "Mastodon - ашық кодты құрылым. Түзету енгізу немесе ұсыныстарды GitHub арқылы жасаңыз {github}.", - "getting_started.security": "Қауіпсіздік", - "getting_started.terms": "Қызмет көрсету шарттары", "hashtag.column_header.tag_mode.all": "және {additional}", "hashtag.column_header.tag_mode.any": "немесе {additional}", "hashtag.column_header.tag_mode.none": "{additional} болмай", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Осылардың біреуін", "hashtag.column_settings.tag_mode.none": "Бұлардың ешқайсысын", "hashtag.column_settings.tag_toggle": "Осы бағанға қосымша тегтерді қосыңыз", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Негізгі", "home.column_settings.show_reblogs": "Бөлісулерді көрсету", "home.column_settings.show_replies": "Жауаптарды көрсету", "home.hide_announcements": "Анонстарды жасыр", "home.show_announcements": "Анонстарды көрсет", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# күн} other {# күн}}", "intervals.full.hours": "{number, plural, one {# сағат} other {# сағат}}", "intervals.full.minutes": "{number, plural, one {# минут} other {# минут}}", @@ -268,7 +341,7 @@ "lightbox.next": "Келесі", "lightbox.previous": "Алдыңғы", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Тізімге қосу", "lists.account.remove": "Тізімнен шығару", "lists.delete": "Тізімді өшіру", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Көрінуді қосу", "missing_indicator.label": "Табылмады", "missing_indicator.sublabel": "Бұл ресурс табылмады", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Бұл қолданушы ескертпелерін жасырамыз ба?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Мобиль қосымшалар", + "navigation_bar.about": "About", "navigation_bar.blocks": "Бұғатталғандар", "navigation_bar.bookmarks": "Бетбелгілер", "navigation_bar.community_timeline": "Жергілікті желі", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Үнсіз сөздер", "navigation_bar.follow_requests": "Жазылуға сұранғандар", "navigation_bar.follows_and_followers": "Жазылымдар және оқырмандар", - "navigation_bar.info": "Сервер туралы", - "navigation_bar.keyboard_shortcuts": "Ыстық пернелер", "navigation_bar.lists": "Тізімдер", "navigation_bar.logout": "Шығу", "navigation_bar.mutes": "Үнсіз қолданушылар", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Жабыстырылғандар", "navigation_bar.preferences": "Басымдықтар", "navigation_bar.public_timeline": "Жаһандық желі", + "navigation_bar.search": "Search", "navigation_bar.security": "Қауіпсіздік", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} жазбаңызды таңдаулыға қосты", "notification.follow": "{name} сізге жазылды", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Ескертпелерді тазарт", "notifications.clear_confirmation": "Шынымен барлық ескертпелерді өшіресіз бе?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Үстел ескертпелері", "notifications.column_settings.favourite": "Таңдаулылар:", @@ -379,6 +455,8 @@ "privacy.public.short": "Ашық", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Тізімсіз", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Жаңарту", "regeneration_indicator.label": "Жүктеу…", "regeneration_indicator.sublabel": "Жергілікті желі құрылуда!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Іздеу", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Кеңейтілген іздеу форматы", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, bоosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "хэштег", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Жазбалар", "search_results.statuses_fts_disabled": "Mastodon серверінде постты толық мәтінмен іздей алмайсыз.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {нәтиже} other {нәтиже}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "@{name} үшін модерация интерфейсін аш", "status.admin_status": "Бұл жазбаны модерация интерфейсінде аш", "status.block": "Бұғаттау @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embеd", "status.favourite": "Таңдаулы", + "status.filter": "Filter this post", "status.filtered": "Фильтрленген", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Тағы әкел", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Бұл жазбаны әлі ешкім бөліспеді. Біреу бөліскен кезде осында көрінеді.", "status.redraft": "Өшіру & қайта қарастыру", "status.remove_bookmark": "Бетбелгілерден алып тастау", + "status.replied_to": "Replied to {name}", "status.reply": "Жауап", "status.replyAll": "Тақырыпқа жауап", "status.report": "Шағым @{name}", "status.sensitive_warning": "Нәзік контент", "status.share": "Бөлісу", + "status.show_filter_reason": "Show anyway", "status.show_less": "Аздап көрсет", "status.show_less_all": "Бәрін аздап көрсет", "status.show_more": "Толығырақ", "status.show_more_all": "Бәрін толығымен", - "status.show_thread": "Желіні көрсет", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Қолжетімді емес", "status.unmute_conversation": "Пікірталасты үнсіз қылмау", "status.unpin": "Профильден алып тастау", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Өткізіп жіберу", "suggestions.header": "Қызығуыңыз мүмкін…", "tabs_bar.federated_timeline": "Жаһандық", "tabs_bar.home": "Басты бет", "tabs_bar.local_timeline": "Жергілікті", "tabs_bar.notifications": "Ескертпелер", - "tabs_bar.search": "Іздеу", "time_remaining.days": "{number, plural, one {# күн} other {# күн}}", "time_remaining.hours": "{number, plural, one {# сағат} other {# сағат}}", "time_remaining.minutes": "{number, plural, one {# минут} other {# минут}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Оқырман", "timeline_hint.resources.follows": "Жазылым", "timeline_hint.resources.statuses": "Ескі посттары", - "trends.counter_by_accounts": "{count, plural, one {{counter} адам} other {{counter} адам}} айтып жатыр", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Тренд тақырыптар", "ui.beforeunload": "Mastodon желісінен шықсаңыз, нобайыңыз сақталмайды.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Превью ({ratio})", "upload_progress.label": "Жүктеп жатыр...", + "upload_progress.processing": "Processing…", "video.close": "Видеоны жабу", "video.download": "Файлды түсіру", "video.exit_fullscreen": "Толық экраннан шық", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index af99045bbfd9de..a504ebb99c3295 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "ಟಿಪ್ಪಣಿ", "account.add_or_remove_from_list": "ಪಟ್ಟಿಗೆ ಸೇರಿಸು ಅಥವ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕು", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Hide everything from {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "ಹಿಂಬಾಲಿಸಿ", "account.followers": "ಹಿಂಬಾಲಕರು", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "ಟೂಟ್‌ಗಳು", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "ಅಯ್ಯೋ!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "ಮರಳಿ ಪ್ರಯತ್ನಿಸಿ", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 37b7eb672b082c..55ba91487c7fdf 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -1,4 +1,16 @@ { + "about.blocks": "제한된 서버들", + "about.contact": "연락처:", + "about.disclaimer": "마스토돈은 자유 오픈소스 소프트웨어이며, Mastodon gGmbH의 상표입니다", + "about.domain_blocks.no_reason_available": "알 수 없는 이유", + "about.domain_blocks.preamble": "마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다.", + "about.domain_blocks.silenced.explanation": "명시적으로 찾아보거나 팔로우를 하기 전까지는, 이 서버에 있는 프로필이나 게시물 등을 일반적으로 볼 수 없습니다.", + "about.domain_blocks.silenced.title": "제한됨", + "about.domain_blocks.suspended.explanation": "이 서버의 어떤 데이터도 처리되거나, 저장 되거나 공유되지 않고, 이 서버의 어떤 유저와도 상호작용 하거나 대화할 수 없습니다.", + "about.domain_blocks.suspended.title": "정지됨", + "about.not_available": "이 정보는 이 서버에서 사용할 수 없습니다.", + "about.powered_by": "{mastodon}에 의해 구동되는 분산화된 소셜 미디어", + "about.rules": "서버 규칙", "account.account_note_header": "노트", "account.add_or_remove_from_list": "리스트에 추가 혹은 삭제", "account.badges.bot": "봇", @@ -14,6 +26,9 @@ "account.edit_profile": "프로필 편집", "account.enable_notifications": "@{name} 의 게시물 알림 켜기", "account.endorse": "프로필에 추천하기", + "account.featured_tags.last_status_at": "{date}에 마지막으로 게시", + "account.featured_tags.last_status_never": "게시물 없음", + "account.featured_tags.title": "{name} 님의 추천 해시태그", "account.follow": "팔로우", "account.followers": "팔로워", "account.followers.empty": "아직 아무도 이 사용자를 팔로우하고 있지 않습니다.", @@ -22,16 +37,19 @@ "account.following_counter": "{counter} 팔로잉", "account.follows.empty": "이 사용자는 아직 아무도 팔로우하고 있지 않습니다.", "account.follows_you": "날 팔로우합니다", + "account.go_to_profile": "프로필로 이동", "account.hide_reblogs": "@{name}의 부스트를 숨기기", - "account.joined": "{date}에 가입함", + "account.joined_short": "가입", + "account.languages": "구독한 언어 변경", "account.link_verified_on": "{date}에 이 링크의 소유권이 확인 됨", "account.locked_info": "이 계정의 프라이버시 설정은 잠금으로 설정되어 있습니다. 계정 소유자가 수동으로 팔로워를 승인합니다.", "account.media": "미디어", "account.mention": "@{name}에게 글쓰기", - "account.moved_to": "{name} 님은 계정을 이동했습니다:", + "account.moved_to": "{name} 님은 자신의 새 계정이 다음과 같다고 표시했습니다:", "account.mute": "@{name} 뮤트", "account.mute_notifications": "@{name}의 알림을 뮤트", "account.muted": "뮤트 됨", + "account.open_original_page": "원본 페이지 열기", "account.posts": "게시물", "account.posts_with_replies": "게시물과 답장", "account.report": "@{name} 신고", @@ -55,18 +73,31 @@ "admin.dashboard.retention.cohort_size": "새로운 사용자", "alert.rate_limited.message": "{retry_time, time, medium}에 다시 시도해 주세요.", "alert.rate_limited.title": "빈도 제한됨", - "alert.unexpected.message": "예측하지 못한 에러가 발생했습니다.", + "alert.unexpected.message": "예상하지 못한 에러가 발생했습니다.", "alert.unexpected.title": "앗!", "announcement.announcement": "공지사항", "attachments_list.unprocessed": "(처리 안 됨)", + "audio.hide": "소리 숨기기", "autosuggest_hashtag.per_week": "주간 {count}회", "boost_modal.combo": "다음엔 {combo}를 눌러서 이 과정을 건너뛸 수 있습니다", - "bundle_column_error.body": "컴포넌트를 불러오는 과정에서 문제가 발생했습니다.", + "bundle_column_error.copy_stacktrace": "에러 리포트 복사하기", + "bundle_column_error.error.body": "요청한 페이지를 렌더링 할 수 없습니다. 저희의 코드에 버그가 있거나, 브라우저 호환성 문제일 수 있습니다.", + "bundle_column_error.error.title": "으악, 안돼!", + "bundle_column_error.network.body": "이 페이지를 불러오는 중 오류가 발생했습니다. 일시적으로 서버와의 연결이 불안정한 문제일 수도 있습니다.", + "bundle_column_error.network.title": "네트워크 오류", "bundle_column_error.retry": "다시 시도", - "bundle_column_error.title": "네트워크 에러", + "bundle_column_error.return": "홈으로 돌아가기", + "bundle_column_error.routing.body": "요청하신 페이지를 찾을 수 없습니다. 주소창에 적힌 URL이 확실히 맞나요?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "닫기", - "bundle_modal_error.message": "컴포넌트를 불러오는 과정에서 문제가 발생했습니다.", + "bundle_modal_error.message": "컴포넌트를 불러오는 중 문제가 발생했습니다.", "bundle_modal_error.retry": "다시 시도", + "closed_registrations.other_server_instructions": "마스토돈은 분산화 되어 있기 때문에, 다른 서버에서 계정을 만들더라도 이 서버와 상호작용 할 수 있습니다.", + "closed_registrations_modal.description": "{domain}은 현재 가입이 막혀있는 상태입니다, 만약 마스토돈을 이용하기 위해 꼭 {domain}을 사용할 필요는 없다는 사실을 인지해 두세요.", + "closed_registrations_modal.find_another_server": "다른 서버 찾기", + "closed_registrations_modal.preamble": "마스토돈은 분산화 되어 있습니다, 그렇기 때문에 어디에서 계정을 생성하든, 이 서버에 있는 누구와도 팔로우와 상호작용을 할 수 있습니다. 심지어는 스스로 서버를 만드는 것도 가능합니다!", + "closed_registrations_modal.title": "마스토돈에서 가입", + "column.about": "정보", "column.blocks": "차단한 사용자", "column.bookmarks": "보관함", "column.community": "로컬 타임라인", @@ -95,30 +126,32 @@ "compose.language.change": "언어 변경", "compose.language.search": "언어 검색...", "compose_form.direct_message_warning_learn_more": "더 알아보기", - "compose_form.encryption_warning": "마스토돈의 게시물들은 종단간 암호화가 되지 않습니다. 위험한 정보를 마스토돈을 통해 전달하지 마세요.", + "compose_form.encryption_warning": "마스토돈의 게시물들은 종단간 암호화가 되지 않습니다. 민감한 정보를 마스토돈을 통해 전달하지 마세요.", "compose_form.hashtag_warning": "이 게시물은 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 게시물만이 해시태그로 검색 될 수 있습니다.", - "compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.", + "compose_form.lock_disclaimer": "이 계정은 {locked}상태가 아닙니다. 누구나 이 계정을 팔로우 하여 팔로워 전용의 게시물을 볼 수 있습니다.", "compose_form.lock_disclaimer.lock": "비공개", - "compose_form.placeholder": "지금 무엇을 하고 있나요?", + "compose_form.placeholder": "지금 무슨 생각을 하고 있나요?", "compose_form.poll.add_option": "항목 추가", "compose_form.poll.duration": "투표 기간", "compose_form.poll.option_placeholder": "{number}번 항목", "compose_form.poll.remove_option": "이 항목 삭제", "compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경", "compose_form.poll.switch_to_single": "단일 선택 투표로 변경", - "compose_form.publish": "뿌우", + "compose_form.publish": "게시", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "변경사항 저장", "compose_form.sensitive.hide": "미디어를 민감함으로 설정하기", "compose_form.sensitive.marked": "미디어가 열람주의로 설정되어 있습니다", "compose_form.sensitive.unmarked": "미디어가 열람주의로 설정 되어 있지 않습니다", - "compose_form.spoiler.marked": "열람 주의 제거", - "compose_form.spoiler.unmarked": "열람 주의가 설정 되어 있지 않습니다", + "compose_form.spoiler.marked": "콘텐츠 경고 제거", + "compose_form.spoiler.unmarked": "열람 주의 문구 추가", "compose_form.spoiler_placeholder": "경고 문구를 여기에 작성하세요", "confirmation_modal.cancel": "취소", "confirmations.block.block_and_report": "차단하고 신고하기", "confirmations.block.confirm": "차단", "confirmations.block.message": "정말로 {name}를 차단하시겠습니까?", + "confirmations.cancel_follow_request.confirm": "요청 삭제", + "confirmations.cancel_follow_request.message": "정말 {name}님에 대한 팔로우 요청을 취소하시겠습니까?", "confirmations.delete.confirm": "삭제", "confirmations.delete.message": "정말로 이 게시물을 삭제하시겠습니까?", "confirmations.delete_list.confirm": "삭제", @@ -126,7 +159,7 @@ "confirmations.discard_edit_media.confirm": "저장 안함", "confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?", "confirmations.domain_block.confirm": "도메인 전체를 차단", - "confirmations.domain_block.message": "정말로 {domain} 전체를 차단하시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다. 모든 공개 타임라인과 알림에서 해당 도메인에서 작성된 컨텐츠를 보지 못합니다. 해당 도메인에 속한 팔로워와의 관계가 사라집니다.", + "confirmations.domain_block.message": "정말로 {domain} 전체를 차단하시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다. 모든 공개 타임라인과 알림에서 해당 도메인에서 작성된 콘텐츠를 보지 못합니다. 해당 도메인에 속한 팔로워와의 관계가 사라집니다.", "confirmations.logout.confirm": "로그아웃", "confirmations.logout.message": "정말로 로그아웃 하시겠습니까?", "confirmations.mute.confirm": "뮤트", @@ -142,20 +175,30 @@ "conversation.mark_as_read": "읽은 상태로 표시", "conversation.open": "대화 보기", "conversation.with": "{names} 님과", + "copypaste.copied": "복사됨", + "copypaste.copy": "복사", "directory.federated": "알려진 연합우주로부터", "directory.local": "{domain}에서만", "directory.new_arrivals": "새로운 사람들", "directory.recently_active": "최근 활동", + "disabled_account_banner.account_settings": "계정 설정", + "disabled_account_banner.text": "당신의 계정 {disabledAccount}는 현재 비활성화 상태입니다.", + "dismissable_banner.community_timeline": "여기 있는 것들은 계정이 {domain}에 있는 사람들의 최근 공개 게시물들입니다.", + "dismissable_banner.dismiss": "지우기", + "dismissable_banner.explore_links": "이 뉴스들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들이 지금 많이 이야기 하고 있는 것입니다.", + "dismissable_banner.explore_statuses": "이 게시물들은 이 서버와 분산화된 네트워크의 다른 서버에서 지금 인기를 끌고 있는 것들입니다.", + "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.", + "dismissable_banner.public_timeline": "이 게시물들은 이 서버와 이 서버가 알고있는 분산화된 네트워크의 다른 서버에서 사람들이 게시한 최근 공개 게시물들입니다.", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", "embed.preview": "다음과 같이 표시됩니다:", "emoji_button.activity": "활동", "emoji_button.clear": "지우기", - "emoji_button.custom": "커스텀", + "emoji_button.custom": "사용자 지정", "emoji_button.flags": "깃발", "emoji_button.food": "음식과 마실것", "emoji_button.label": "에모지를 추가", "emoji_button.nature": "자연", - "emoji_button.not_found": "맞는 에모지가 없습니다", + "emoji_button.not_found": "해당하는 에모지가 없습니다", "emoji_button.objects": "물건", "emoji_button.people": "사람들", "emoji_button.recent": "자주 사용됨", @@ -196,22 +239,38 @@ "explore.trending_links": "소식", "explore.trending_statuses": "게시물", "explore.trending_tags": "해시태그", + "filter_modal.added.context_mismatch_explanation": "이 필터 카테고리는 당신이 이 게시물에 접근한 문맥에 적용되지 않습니다. 만약 이 문맥에서도 필터되길 원한다면, 필터를 수정해야 합니다.", + "filter_modal.added.context_mismatch_title": "문맥 불일치!", + "filter_modal.added.expired_explanation": "이 필터 카테고리는 만료되었습니다, 적용하려면 만료 일자를 변경할 필요가 있습니다.", + "filter_modal.added.expired_title": "만료된 필터!", + "filter_modal.added.review_and_configure": "이 필터 카테고리를 검토하거나 나중에 더 설정하려면, {settings_link}로 가십시오.", + "filter_modal.added.review_and_configure_title": "필터 설정", + "filter_modal.added.settings_link": "설정 페이지", + "filter_modal.added.short_explanation": "이 게시물을 다음 필터 카테고리에 추가되었습니다: {title}.", + "filter_modal.added.title": "필터 추가됨!", + "filter_modal.select_filter.context_mismatch": "이 문맥에 적용되지 않습니다", + "filter_modal.select_filter.expired": "만료됨", + "filter_modal.select_filter.prompt_new": "새 카테고리: {name}", + "filter_modal.select_filter.search": "검색 또는 생성", + "filter_modal.select_filter.subtitle": "기존의 카테고리를 사용하거나 새로 하나를 만듧니다", + "filter_modal.select_filter.title": "이 게시물을 필터", + "filter_modal.title.status": "게시물 필터", "follow_recommendations.done": "완료", "follow_recommendations.heading": "게시물을 받아 볼 사람들을 팔로우 하세요! 여기 몇몇의 추천이 있습니다.", "follow_recommendations.lead": "당신이 팔로우 하는 사람들의 게시물이 시간순으로 정렬되어 당신의 홈 피드에 표시될 것입니다. 실수를 두려워 하지 마세요, 언제든지 쉽게 팔로우 취소를 할 수 있습니다!", "follow_request.authorize": "허가", "follow_request.reject": "거부", "follow_requests.unlocked_explanation": "당신의 계정이 잠기지 않았다고 할 지라도, {domain}의 스탭은 당신이 이 계정들로부터의 팔로우 요청을 수동으로 확인하길 원한다고 생각했습니다.", + "footer.about": "정보", + "footer.directory": "프로필 책자", + "footer.get_app": "앱 다운로드하기", + "footer.invite": "초대하기", + "footer.keyboard_shortcuts": "키보드 단축키", + "footer.privacy_policy": "개인정보 정책", + "footer.source_code": "소스코드 보기", "generic.saved": "저장됨", - "getting_started.developers": "개발자", - "getting_started.directory": "프로필 책자", - "getting_started.documentation": "문서", "getting_started.heading": "시작", - "getting_started.invite": "초대", - "getting_started.open_source_notice": "Mastodon은 오픈 소스 소프트웨어입니다. 누구나 GitHub({github})에서 개발에 참여하거나, 문제를 보고할 수 있습니다.", - "getting_started.security": "계정 설정", - "getting_started.terms": "이용 약관", - "hashtag.column_header.tag_mode.all": "그리고 {additional}", + "hashtag.column_header.tag_mode.all": "및 {additional}", "hashtag.column_header.tag_mode.any": "또는 {additional}", "hashtag.column_header.tag_mode.none": "{additional}를 제외하고", "hashtag.column_settings.select.no_options_message": "추천할 내용이 없습니다", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "아무것이든", "hashtag.column_settings.tag_mode.none": "이것들을 제외하고", "hashtag.column_settings.tag_toggle": "추가 해시태그를 이 컬럼에 추가합니다", + "hashtag.follow": "해시태그 팔로우", + "hashtag.unfollow": "해시태그 팔로우 해제", "home.column_settings.basic": "기본", "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", "home.hide_announcements": "공지사항 숨기기", "home.show_announcements": "공지사항 보기", + "interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 마음에 들어 하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.", + "interaction_modal.description.follow": "마스토돈 계정을 통해, {name} 님을 팔로우 하고 그의 게시물을 홈 피드에서 받아 볼 수 있습니다.", + "interaction_modal.description.reblog": "마스토돈 계정을 통해, 이 게시물을 부스트 하고 자신의 팔로워들에게 공유할 수 있습니다.", + "interaction_modal.description.reply": "마스토돈 계정을 통해, 이 게시물에 응답할 수 있습니다.", + "interaction_modal.on_another_server": "다른 서버에", + "interaction_modal.on_this_server": "이 서버에서", + "interaction_modal.other_server_instructions": "즐겨찾는 마스토돈 앱이나 마스토돈 서버의 웹 인터페이스 내 검색 영역에 이 URL을 복사 및 붙여넣기 하세요.", + "interaction_modal.preamble": "마스토돈은 분산화 되어 있기 때문에, 이곳에 계정이 없더라도 다른 곳에서 운영되는 마스토돈 서버나 호환 되는 플랫폼에 있는 계정을 사용할 수 있습니다.", + "interaction_modal.title.favourite": "{name} 님의 게시물을 마음에 들어하기", + "interaction_modal.title.follow": "{name} 님을 팔로우", + "interaction_modal.title.reblog": "{name} 님의 게시물을 부스트", + "interaction_modal.title.reply": "{name} 님의 게시물에 답글", "intervals.full.days": "{number} 일", "intervals.full.hours": "{number} 시간", "intervals.full.minutes": "{number} 분", @@ -268,7 +341,7 @@ "lightbox.next": "다음", "lightbox.previous": "이전", "limited_account_hint.action": "그래도 프로필 보기", - "limited_account_hint.title": "이 프로필은 서버 운영진에 의해 숨겨진 상태입니다.", + "limited_account_hint.title": "이 프로필은 {domain}의 중재자에 의해 숨겨진 상태입니다.", "lists.account.add": "리스트에 추가", "lists.account.remove": "리스트에서 제거", "lists.delete": "리스트 삭제", @@ -281,16 +354,17 @@ "lists.replies_policy.none": "아무도 없음", "lists.replies_policy.title": "답글 표시:", "lists.search": "팔로우 중인 사람들 중에서 찾기", - "lists.subheading": "당신의 리스트", + "lists.subheading": "리스트", "load_pending": "{count}개의 새 항목", "loading_indicator.label": "불러오는 중...", "media_gallery.toggle_visible": "이미지 숨기기", "missing_indicator.label": "찾을 수 없습니다", "missing_indicator.sublabel": "이 리소스를 찾을 수 없었습니다", + "moved_to_account_banner.text": "당신의 계정 {disabledAccount}는 {movedToAccount}로 이동하였기 때문에 현재 비활성화 상태입니다.", "mute_modal.duration": "기간", "mute_modal.hide_notifications": "이 사용자로부터의 알림을 숨기시겠습니까?", "mute_modal.indefinite": "무기한", - "navigation_bar.apps": "모바일 앱", + "navigation_bar.about": "정보", "navigation_bar.blocks": "차단한 사용자", "navigation_bar.bookmarks": "보관함", "navigation_bar.community_timeline": "로컬 타임라인", @@ -304,8 +378,6 @@ "navigation_bar.filters": "뮤트한 단어", "navigation_bar.follow_requests": "팔로우 요청", "navigation_bar.follows_and_followers": "팔로우와 팔로워", - "navigation_bar.info": "이 서버에 대해서", - "navigation_bar.keyboard_shortcuts": "단축키", "navigation_bar.lists": "리스트", "navigation_bar.logout": "로그아웃", "navigation_bar.mutes": "뮤트한 사용자", @@ -313,19 +385,23 @@ "navigation_bar.pins": "고정된 게시물", "navigation_bar.preferences": "사용자 설정", "navigation_bar.public_timeline": "연합 타임라인", + "navigation_bar.search": "검색", "navigation_bar.security": "보안", + "not_signed_in_indicator.not_signed_in": "이 정보에 접근하려면 로그인을 해야 합니다.", + "notification.admin.report": "{name} 님이 {target}를 신고했습니다", "notification.admin.sign_up": "{name} 님이 가입했습니다", "notification.favourite": "{name} 님이 당신의 게시물을 마음에 들어합니다", - "notification.follow": "{name} 님이 나를 팔로우 했습니다", + "notification.follow": "{name} 님이 나를 팔로우했습니다", "notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다", "notification.mention": "{name} 님이 답글을 보냈습니다", "notification.own_poll": "내 투표가 끝났습니다", "notification.poll": "당신이 참여 한 투표가 종료되었습니다", - "notification.reblog": "{name} 님이 부스트 했습니다", + "notification.reblog": "{name} 님이 부스트했습니다", "notification.status": "{name} 님이 방금 게시물을 올렸습니다", "notification.update": "{name} 님이 게시물을 수정했습니다", "notifications.clear": "알림 지우기", "notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?", + "notifications.column_settings.admin.report": "새 신고:", "notifications.column_settings.admin.sign_up": "새로운 가입:", "notifications.column_settings.alert": "데스크탑 알림", "notifications.column_settings.favourite": "좋아요:", @@ -352,7 +428,7 @@ "notifications.filter.polls": "투표 결과", "notifications.filter.statuses": "팔로우 하는 사람들의 최신 게시물", "notifications.grant_permission": "권한 부여.", - "notifications.group": "{count} 개의 알림", + "notifications.group": "{count}개의 알림", "notifications.mark_as_read": "모든 알림을 읽은 상태로 표시", "notifications.permission_denied": "권한이 거부되었기 때문에 데스크탑 알림을 활성화할 수 없음", "notifications.permission_denied_alert": "이전에 브라우저 권한이 거부되었기 때문에, 데스크탑 알림이 활성화 될 수 없습니다.", @@ -379,6 +455,8 @@ "privacy.public.short": "공개", "privacy.unlisted.long": "모두가 볼 수 있지만, 발견하기 기능에서는 제외됨", "privacy.unlisted.short": "타임라인에 비표시", + "privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨", + "privacy_policy.title": "개인정보 정책", "refresh": "새로고침", "regeneration_indicator.label": "불러오는 중…", "regeneration_indicator.sublabel": "당신의 홈 피드가 준비되는 중입니다!", @@ -398,7 +476,7 @@ "report.block_explanation": "당신은 해당 계정의 게시물을 보지 않게 됩니다. 해당 계정은 당신의 게시물을 보거나 팔로우 할 수 없습니다. 해당 계정은 자신이 차단되었다는 사실을 알 수 있습니다.", "report.categories.other": "기타", "report.categories.spam": "스팸", - "report.categories.violation": "컨텐츠가 한 개 이상의 서버 규칙을 위반합니다", + "report.categories.violation": "콘텐츠가 한 개 이상의 서버 규칙을 위반합니다", "report.category.subtitle": "가장 알맞은 것을 선택하세요", "report.category.title": "이 {type}에 무슨 문제가 있는지 알려주세요", "report.category.title_account": "프로필", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "신고해주셔서 감사합니다, 중재자분들이 확인할 예정입니다.", "report.unfollow": "@{name}을 팔로우 해제", "report.unfollow_explanation": "당신을 이 계정을 팔로우 하고 있습니다. 홈 피드에서 게시물을 보지 않으려면, 팔로우를 해제하세요.", + "report_notification.attached_statuses": "{count}개의 게시물 첨부됨", + "report_notification.categories.other": "기타", + "report_notification.categories.spam": "스팸", + "report_notification.categories.violation": "규칙 위반", + "report_notification.open": "신고 열기", "search.placeholder": "검색", + "search.search_or_paste": "검색하거나 URL 붙여넣기", "search_popout.search_format": "고급 검색 방법", "search_popout.tips.full_text": "단순한 텍스트 검색은 당신이 작성했거나, 관심글로 지정했거나, 부스트했거나, 멘션을 받은 게시글, 그리고 사용자명, 표시되는 이름, 해시태그를 반환합니다.", "search_popout.tips.hashtag": "해시태그", @@ -444,7 +528,17 @@ "search_results.nothing_found": "검색어에 대한 결과를 찾을 수 없습니다", "search_results.statuses": "게시물", "search_results.statuses_fts_disabled": "이 마스토돈 서버에선 게시물의 내용을 통한 검색이 활성화 되어 있지 않습니다.", + "search_results.title": "{q}에 대한 검색", "search_results.total": "{count, number}건의 결과", + "server_banner.about_active_users": "30일 동안 이 서버를 사용한 사람들 (월간 활성 이용자)", + "server_banner.active_users": "활성 사용자", + "server_banner.administered_by": "관리자:", + "server_banner.introduction": "{domain}은 마스토돈으로 운영되는 탈중앙화 된 소셜 네트워크의 일부입니다.", + "server_banner.learn_more": "더 알아보기", + "server_banner.server_stats": "서버 통계:", + "sign_in_banner.create_account": "계정 생성", + "sign_in_banner.sign_in": "로그인", + "sign_in_banner.text": "로그인을 통해 프로필이나 해시태그를 팔로우하거나 마음에 들어하거나 공유하고 답글을 달 수 있습니다, 혹은 다른 서버에 있는 본인의 계정을 통해 참여할 수도 있습니다.", "status.admin_account": "@{name}에 대한 중재 화면 열기", "status.admin_status": "중재 화면에서 이 게시물 열기", "status.block": "@{name} 차단", @@ -460,12 +554,14 @@ "status.edited_x_times": "{count}번 수정됨", "status.embed": "공유하기", "status.favourite": "좋아요", + "status.filter": "이 게시물을 필터", "status.filtered": "필터로 걸러짐", + "status.hide": "툿 숨기기", "status.history.created": "{name} 님이 {date}에 생성함", "status.history.edited": "{name} 님이 {date}에 수정함", "status.load_more": "더 보기", "status.media_hidden": "미디어 숨겨짐", - "status.mention": "@{name}에게 글쓰기", + "status.mention": "@{name} 님에게 글 쓰기", "status.more": "자세히", "status.mute": "@{name} 뮤트", "status.mute_conversation": "이 대화를 뮤트", @@ -475,30 +571,36 @@ "status.read_more": "더 보기", "status.reblog": "부스트", "status.reblog_private": "원래의 수신자들에게 부스트", - "status.reblogged_by": "{name} 님이 부스트 했습니다", + "status.reblogged_by": "{name} 님이 부스트했습니다", "status.reblogs.empty": "아직 아무도 이 게시물을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.", "status.redraft": "지우고 다시 쓰기", "status.remove_bookmark": "보관한 게시물 삭제", + "status.replied_to": "{name} 님에게 답장", "status.reply": "답장", "status.replyAll": "글타래에 답장", "status.report": "신고", "status.sensitive_warning": "민감한 미디어", "status.share": "공유", + "status.show_filter_reason": "그냥 표시하기", "status.show_less": "숨기기", "status.show_less_all": "모두 접기", "status.show_more": "더 보기", "status.show_more_all": "모두 펼치기", - "status.show_thread": "글타래 보기", + "status.show_original": "원본 보기", + "status.translate": "번역", + "status.translated_from_with": "{lang}에서 {provider}를 사용해 번역됨", "status.uncached_media_warning": "사용할 수 없음", "status.unmute_conversation": "이 대화의 뮤트 해제하기", "status.unpin": "고정 해제", + "subscribed_languages.lead": "변경 후에는 선택한 언어들로 작성된 게시물들만 홈 타임라인과 리스트 타임라인에 나타나게 됩니다. 아무 것도 선택하지 않으면 모든 언어로 작성된 게시물을 받아봅니다.", + "subscribed_languages.save": "변경사항 저장", + "subscribed_languages.target": "{target}에 대한 구독 언어 변경", "suggestions.dismiss": "추천 지우기", "suggestions.header": "여기에 관심이 있을 것 같습니다…", "tabs_bar.federated_timeline": "연합", "tabs_bar.home": "홈", "tabs_bar.local_timeline": "로컬", "tabs_bar.notifications": "알림", - "tabs_bar.search": "검색", "time_remaining.days": "{number} 일 남음", "time_remaining.hours": "{number} 시간 남음", "time_remaining.minutes": "{number} 분 남음", @@ -508,14 +610,14 @@ "timeline_hint.resources.followers": "팔로워", "timeline_hint.resources.follows": "팔로우", "timeline_hint.resources.statuses": "이전 게시물", - "trends.counter_by_accounts": "{counter} 명이 말하는 중", + "trends.counter_by_accounts": "이전 {days}일 동안 {counter} 명의 사용자", "trends.trending_now": "지금 유행중", "ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.", "units.short.billion": "{count}B", "units.short.million": "{count}B", "units.short.thousand": "{count}K", "upload_area.title": "드래그 & 드롭으로 업로드", - "upload_button.label": "미디어 추가 (JPEG, PNG, GIF, WebM, MP4, MOV)", + "upload_button.label": "이미지, 영상, 오디오 파일 추가", "upload_error.limit": "파일 업로드 제한에 도달했습니다.", "upload_error.poll": "파일 업로드는 투표와 함께 첨부할 수 없습니다.", "upload_form.audio_description": "청각 장애인을 위한 설명", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "OCR 준비 중…", "upload_modal.preview_label": "미리보기 ({ratio})", "upload_progress.label": "업로드 중...", + "upload_progress.processing": "처리 중...", "video.close": "동영상 닫기", "video.download": "파일 다운로드", "video.exit_fullscreen": "전체화면 나가기", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 6470e50caba83f..a2ace7deb95c4d 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -1,44 +1,62 @@ { + "about.blocks": "Rajekarên çavdêrkirî", + "about.contact": "Têkilî:", + "about.disclaimer": "Mastodon belaş e, nermalaveke çavkaniya vekirî ye û markeyeke Mastodon gGmbHê ye.", + "about.domain_blocks.no_reason_available": "Sedem ne berdest e", + "about.domain_blocks.preamble": "Mastodon bi gelemperî dihêle ku tu naverokê bibînî û bi bikarhênerên ji rajekareke din a li fendiverse re têkilî dayne. Ev awaretyên ku li ser vê rajekara taybetî hatine çêkirin ev in.", + "about.domain_blocks.silenced.explanation": "Heye ku tu bi awayekî vekirî lê negerî an jî bi şopandinê hilnebijêrî, tu yêbi giştî profîl û naverok ji vê rajekarê nebînî.", + "about.domain_blocks.silenced.title": "Sînorkirî", + "about.domain_blocks.suspended.explanation": "Dê tu daneya ji van rajekaran neyê berhev kirin, tomarkirin an jî guhertin, ku têkilî an danûstendinek bi bikarhênerên van rajekaran re tune dike.", + "about.domain_blocks.suspended.title": "Hatiye rawestandin", + "about.not_available": "Ev zanyarî li ser vê rajekarê nehatine peydakirin.", + "about.powered_by": "Medyaya civakî ya nenavendî bi hêzdariya {mastodon}", + "about.rules": "Rêbazên rajekar", "account.account_note_header": "Nîşe", - "account.add_or_remove_from_list": "Tevlî bike an rake ji rêzokê", + "account.add_or_remove_from_list": "Li lîsteyan zêde bike yan jî rake", "account.badges.bot": "Bot", "account.badges.group": "Kom", "account.block": "@{name} asteng bike", "account.block_domain": "{domain} navpar asteng bike", "account.blocked": "Astengkirî", "account.browse_more_on_origin_server": "Li pelên resen bêhtir bigere", - "account.cancel_follow_request": "Daxwaza şopandinê rake", + "account.cancel_follow_request": "Daxwaza şopandinê vekişîne", "account.direct": "Peyamekê bişîne @{name}", "account.disable_notifications": "Êdî min agahdar neke gava @{name} diweşîne", "account.domain_blocked": "Navper hate astengkirin", - "account.edit_profile": "Profîl serrast bike", + "account.edit_profile": "Profîlê serrast bike", "account.enable_notifications": "Min agahdar bike gava @{name} diweşîne", "account.endorse": "Taybetiyên li ser profîl", + "account.featured_tags.last_status_at": "Şandiya dawî di {date} de", + "account.featured_tags.last_status_never": "Şandî tune ne", + "account.featured_tags.title": "{name}'s hashtagên taybet", "account.follow": "Bişopîne", "account.followers": "Şopîner", "account.followers.empty": "Kesekî hin ev bikarhêner neşopandiye.", - "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", + "account.followers_counter": "{count, plural, one {{counter} Şopîner} other {{counter} Şopîner}}", "account.following": "Dişopîne", "account.following_counter": "{count, plural, one {{counter} Dişopîne} other {{counter} Dişopîne}}", "account.follows.empty": "Ev bikarhêner hin kesekî heya niha neşopandiye.", "account.follows_you": "Te dişopîne", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Bilindkirinên ji @{name} veşêre", - "account.joined": "Tevlîbû di {date} de", + "account.joined_short": "Tevlî bû", + "account.languages": "Zimanên beşdarbûyî biguherîne", "account.link_verified_on": "Xwedaniya li vê girêdanê di {date} de hatiye kontrolkirin", - "account.locked_info": "Rewşa vê ajimêrê wek kilît kirî hatiye saz kirin. Xwedî yê ajimêrê, kesên vê bişopîne bi dest vekolin dike.", + "account.locked_info": "Rewşa vê ajimêrê wek kilîtkirî hatiye sazkirin. Xwediyê ajimêrê, bi destan dinirxîne şopandinê dinirxîne.", "account.media": "Medya", "account.mention": "Qal @{name} bike", - "account.moved_to": "{name} hate livandin bo:", - "account.mute": "@{name} Bêdeng bike", + "account.moved_to": "{name} diyar kir ku ajimêra nû ya wan niha ev e:", + "account.mute": "@{name} bêdeng bike", "account.mute_notifications": "Agahdariyan ji @{name} bêdeng bike", "account.muted": "Bêdengkirî", + "account.open_original_page": "Rûpela resen veke", "account.posts": "Şandî", "account.posts_with_replies": "Şandî û bersiv", - "account.report": "@{name} Ragihîne", + "account.report": "@{name} ragihîne", "account.requested": "Li benda erêkirinê ye. Ji bo betal kirina daxwazê pêl bikin", "account.share": "Profîla @{name} parve bike", "account.show_reblogs": "Bilindkirinên ji @{name} nîşan bike", - "account.statuses_counter": "{count, plural,one {{counter} şandî}other {{counter} şandî}}", + "account.statuses_counter": "{count, plural,one {{counter} Şandî}other {{counter} Şandî}}", "account.unblock": "Astengê li ser @{name} rake", "account.unblock_domain": "Astengê li ser navperê {domain} rake", "account.unblock_short": "Astengiyê rake", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Wey li min!", "announcement.announcement": "Daxuyanî", "attachments_list.unprocessed": "(bêpêvajo)", + "audio.hide": "Dengê veşêre", "autosuggest_hashtag.per_week": "Her hefte {count}", "boost_modal.combo": "Ji bo derbas bî carekî din de pêlê {combo} bike", - "bundle_column_error.body": "Di dema barkirina vê hêmanê de tiştek çewt çê bû.", + "bundle_column_error.copy_stacktrace": "Rapora çewtiyê jê bigire", + "bundle_column_error.error.body": "Rûpela xwestî nehate pêşkêşkirin. Dibe ku ew ji ber şaşetiyeke koda me, an jî pirsgirêkeke lihevhatina gerokê be.", + "bundle_column_error.error.title": "Ax, na!", + "bundle_column_error.network.body": "Di dema hewldana barkirina vê rûpelê de çewtiyek derket. Ev dibe ku ji ber pirsgirêkeke demkî ya girêdana înternetê te be an jî ev rajekar be.", + "bundle_column_error.network.title": "Çewtiya torê", "bundle_column_error.retry": "Dîsa biceribîne", - "bundle_column_error.title": "Çewtiya torê", + "bundle_column_error.return": "Vegere rûpela sereke", + "bundle_column_error.routing.body": "Rûpela xwestî nehate dîtin. Tu bawerî ku girêdana di kodika lêgerînê de rast e?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Bigire", "bundle_modal_error.message": "Di dema barkirina vê hêmanê de tiştek çewt çê bû.", "bundle_modal_error.retry": "Dîsa bicerbîne", + "closed_registrations.other_server_instructions": "Ji ber ku Mastodon nenavendî ye, tu dikarî li ser pêşkêşkareke din hesabekî vekî û dîsa jî bi vê pêşkêşkarê re têkiliyê daynî.", + "closed_registrations_modal.description": "Afirandina hesabekî li ser {domain}ê niha ne pêkan e, lê tika ye ji bîr neke ku ji bo bikaranîna Mastodonê ne mecbûrî ye hesabekî te yê {domain}ê hebe.", + "closed_registrations_modal.find_another_server": "Rajekareke din bibîne", + "closed_registrations_modal.preamble": "Mastodon nenavendî ye, ji ber vê yekê tu li ku derê ajimêrê xwe biafirînê, tu yê bikaribî li ser vê rajekarê her kesî bişopînî û têkilî deynî. Her wiha tu dikarî wê bi xwe pêşkêş bikî!", + "closed_registrations_modal.title": "Tomar bibe li ser Mastodon", + "column.about": "Derbar", "column.blocks": "Bikarhênerên astengkirî", "column.bookmarks": "Şûnpel", "column.community": "Demnameya herêmî", @@ -75,13 +106,13 @@ "column.domain_blocks": "Navperên astengkirî", "column.favourites": "Bijarte", "column.follow_requests": "Daxwazên şopandinê", - "column.home": "Serrûpel", - "column.lists": "Rêzok", + "column.home": "Rûpela sereke", + "column.lists": "Lîste", "column.mutes": "Bikarhênerên bêdengkirî", "column.notifications": "Agahdarî", "column.pins": "Şandiya derzîkirî", - "column.public": "Demnameyê federalîkirî", - "column_back_button.label": "Veger", + "column.public": "Demnameya giştî", + "column_back_button.label": "Vegere", "column_header.hide_settings": "Sazkariyan veşêre", "column_header.moveLeft_settings": "Stûnê bilivîne bo çepê", "column_header.moveRight_settings": "Stûnê bilivîne bo rastê", @@ -95,7 +126,7 @@ "compose.language.change": "Ziman biguherîne", "compose.language.search": "Li zimanan bigere...", "compose_form.direct_message_warning_learn_more": "Bêtir fêr bibe", - "compose_form.encryption_warning": "Şandiyên li ser Mastodon dawî-bi-dawî ne şîfrekirî ne. Li ser Mastodon zanyariyên talûke parve neke.", + "compose_form.encryption_warning": "Şandiyên li ser Mastodon dawî-bi-dawî ne şîfrekirî ne. Li ser Mastodon zanyariyên hestyar parve neke.", "compose_form.hashtag_warning": "Ev şandî ji ber ku nehatiye tomarkirin dê di binê hashtagê de neyê tomar kirin. Tenê peyamên gelemperî dikarin bi hashtagê werin lêgerîn.", "compose_form.lock_disclaimer": "Ajimêrê te {locked} nîne. Herkes dikare te bişopîne da ku şandiyên te yên tenê şopînerên te ra xûya dibin bibînin.", "compose_form.lock_disclaimer.lock": "girtî ye", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Vê hilbijarê rake", "compose_form.poll.switch_to_multiple": "Rapirsî yê biguherînin da ku destûr bidin vebijarkên pirjimar", "compose_form.poll.switch_to_single": "Rapirsîyê biguherîne da ku mafê bidî tenê vebijêrkek", - "compose_form.publish": "Toot", + "compose_form.publish": "Biweşîne", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Guhertinan tomar bike", "compose_form.sensitive.hide": "{count, plural, one {Medya wekî hestiyar nîşan bide} other {Medya wekî hestiyar nîşan bide}}", @@ -119,10 +150,12 @@ "confirmations.block.block_and_report": "Asteng bike & ragihîne", "confirmations.block.confirm": "Asteng bike", "confirmations.block.message": "Ma tu dixwazî ku {name} asteng bikî?", + "confirmations.cancel_follow_request.confirm": "Daxwazê vekişîne", + "confirmations.cancel_follow_request.message": "Tu dixwazî ​​daxwaza xwe ya şopandina {name} vekşînî?", "confirmations.delete.confirm": "Jê bibe", "confirmations.delete.message": "Ma tu dixwazî vê şandiyê jê bibî?", "confirmations.delete_list.confirm": "Jê bibe", - "confirmations.delete_list.message": "Ma tu dixwazî bi awayekî herdemî vê rêzokê jê bibî?", + "confirmations.delete_list.message": "Tu ji dil dixwazî vê lîsteyê bi awayekî mayînde jê bibî?", "confirmations.discard_edit_media.confirm": "Biavêje", "confirmations.discard_edit_media.message": "Guhertinên neqedandî di danasîna an pêşdîtina medyayê de hene, wan bi her awayî bavêje?", "confirmations.domain_block.confirm": "Hemî navperê asteng bike", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Wekî xwendî nîşan bide", "conversation.open": "Axaftinê nîşan bide", "conversation.with": "Bi {names} re", + "copypaste.copied": "Hate jêgirtin", + "copypaste.copy": "Jê bigire", "directory.federated": "Ji fediversên naskirî", "directory.local": "Tenê ji {domain}", "directory.new_arrivals": "Kesên ku nû hatine", "directory.recently_active": "Di demên dawî de çalak", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "Ev şandiyên giştî yên herî dawî ji kesên ku ajimêrê wan ji aliyê {domain} ve têne pêşkêşkirin.", + "dismissable_banner.dismiss": "Paşguh bike", + "dismissable_banner.explore_links": "Ev çîrokên nûçeyan niha li ser vê û rajekarên din ên tora nenavendî ji aliyê mirovan ve têne axaftin.", + "dismissable_banner.explore_statuses": "Ev şandiyên ji vê û rajekarên din ên di tora nenavendî de niha li ser vê rajekarê balê dikşînin.", + "dismissable_banner.explore_tags": "Ev hashtagên ji vê û rajekarên din ên di tora nenavendî de niha li ser vê rajekarê balê dikşînin.", + "dismissable_banner.public_timeline": "Ev şandiyên gelemperî herî dawî yên mirovên li ser vê û rajekarên din ên tora nenavendî ne ku ev rajekar pê tê nasîn.", "embed.instructions": "Bi jêgirtina koda jêrîn vê şandiyê li ser malpera xwe bicîh bikin.", "embed.preview": "Wa ye wê wusa xuya bike:", "emoji_button.activity": "Çalakî", @@ -163,24 +206,24 @@ "emoji_button.search_results": "Encamên lêgerînê", "emoji_button.symbols": "Sembol", "emoji_button.travel": "Geşt û şûn", - "empty_column.account_suspended": "Ajimêr hatiye rawestandin", + "empty_column.account_suspended": "Hesab hatiye rawestandin", "empty_column.account_timeline": "Li vir şandî tune!", "empty_column.account_unavailable": "Profîl nayê peydakirin", "empty_column.blocks": "Te tu bikarhêner asteng nekiriye.", - "empty_column.bookmarked_statuses": "Hîn tu peyamên şûnpelkirî tuneye. Gava ku hûn yek şûnpel bikin, ew ê li vir xûya bike.", + "empty_column.bookmarked_statuses": "Hîn tu peyamên te yên şûnpelkirî tune ne. Dema ku tu yekî şûnpel bikî, ew ê li vir xuya bibe.", "empty_column.community": "Demnameya herêmî vala ye. Tiştek ji raya giştî re binivsînin da ku rûpel biherike!", - "empty_column.direct": "Hêj peyameke te yê rasterast tuneye. Gava ku tu yekî bişeynî an jî bigirî, ew ê li vir xûya bike.", + "empty_column.direct": "Hîn peyamên te yên rasterast tune ne. Dema ku tu yekî bişînî an jî wergirî, ew ê li vir xuya bibe.", "empty_column.domain_blocks": "Hê jî navperên hatine asteng kirin tune ne.", "empty_column.explore_statuses": "Tiştek niha di rojevê de tune. Paşê vegere!", - "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijare tunene. Gava ku te yekî bijart, ew ê li vir xûya bike.", + "empty_column.favourited_statuses": "Hîn tu peyamên te yên bijarte tune ne. Dema ku te yekî bijart, ew ê li vir xuya bibe.", "empty_column.favourites": "Hîn tu kes vê peyamê nebijartiye. Gava ku hin kes bijartin, ew ê li vir xûya bikin.", "empty_column.follow_recommendations": "Wusa dixuye ku ji bo we tu pêşniyar nehatine çêkirin. Hûn dikarin lêgerînê bikarbînin da ku li kesên ku hûn nas dikin bigerin an hashtagên trendî bigerin.", "empty_column.follow_requests": "Hê jî daxwaza şopandinê tunne ye. Dema daxwazek hat, yê li vir were nîşan kirin.", "empty_column.hashtag": "Di vê hashtagê de hêj tiştekî tune.", "empty_column.home": "Demnameya mala we vala ye! Ji bona tijîkirinê bêtir mirovan bişopînin. {suggestions}", "empty_column.home.suggestions": "Hinek pêşniyaran bibîne", - "empty_column.list": "Di vê rêzokê de hîn tiştek tune ye. Gava ku endamên vê rêzokê peyamên nû biweşînin, ew ê li vir xuya bibin.", - "empty_column.lists": "Hêj qet rêzokê te tunne ye. Dema yek peyda bû, yê li vir were nîşan kirin.", + "empty_column.list": "Di vê lîsteyê de hîn tiştek tune ye. Gava ku endamên vê lîsteyê peyamên nû biweşînin, ew ê li virê xuya bibin.", + "empty_column.lists": "Hîn tu lîsteyên te tune ne. Dema yekê çêkî, ew ê li virê xuya bibe.", "empty_column.mutes": "Te tu bikarhêner bêdeng nekiriye.", "empty_column.notifications": "Hêj hişyariyên te tunene. Dema ku mirovên din bi we re têkilî danîn, hûn ê wê li vir bibînin.", "empty_column.public": "Li vir tiştekî tuneye! Ji raya giştî re tiştekî binivîsîne, an ji bo tijîkirinê ji rajekerên din bikarhêneran bi destan bişopînin", @@ -196,21 +239,37 @@ "explore.trending_links": "Nûçe", "explore.trending_statuses": "Şandî", "explore.trending_tags": "Hashtag", + "filter_modal.added.context_mismatch_explanation": "Ev beşa parzûnê ji bo naveroka ku te tê de xwe gihandiye vê şandiyê nayê sepandin. Ku tu dixwazî şandî di vê naverokê de jî werê parzûnkirin, divê tu parzûnê biguherînî.", + "filter_modal.added.context_mismatch_title": "Naverok li hev nagire!", + "filter_modal.added.expired_explanation": "Ev beşa parzûnê qediya ye, ji bo ku tu bikaribe wê biguherîne divê tu dema qedandinê biguherînî.", + "filter_modal.added.expired_title": "Dema parzûnê qediya!", + "filter_modal.added.review_and_configure": "Ji bo nîrxandin û bêtir sazkirina vê beşa parzûnê, biçe {settings_link}.", + "filter_modal.added.review_and_configure_title": "Sazkariyên parzûnê", + "filter_modal.added.settings_link": "rûpela sazkariyan", + "filter_modal.added.short_explanation": "Ev şandî li beşa parzûna jêrîn hate tevlîkirin: {title}.", + "filter_modal.added.title": "Parzûn tevlî bû!", + "filter_modal.select_filter.context_mismatch": "di vê naverokê de nayê sepandin", + "filter_modal.select_filter.expired": "dema wê qediya", + "filter_modal.select_filter.prompt_new": "Beşa nû: {name}", + "filter_modal.select_filter.search": "Lê bigere an jî biafirîne", + "filter_modal.select_filter.subtitle": "Beşeke nû ya heyî bi kar bîne an jî yekî nû biafirîne", + "filter_modal.select_filter.title": "Vê şandiyê parzûn bike", + "filter_modal.title.status": "Şandiyekê parzûn bike", "follow_recommendations.done": "Qediya", "follow_recommendations.heading": "Mirovên ku tu dixwazî ji wan peyaman bibînî bişopîne! Hin pêşnîyar li vir in.", "follow_recommendations.lead": "Li gorî rêza kronolojîkî peyamên mirovên ku tu dişopînî dê demnameya te de xûya bike. Ji xeletiyan netirse, bi awayekî hêsan her wextî tu dikarî dev ji şopandinê berdî!", "follow_request.authorize": "Mafê bide", "follow_request.reject": "Nepejirîne", "follow_requests.unlocked_explanation": "Tevlî ku ajimêra te ne kilît kiriye, karmendên {domain} digotin qey tu dixwazî ku pêşdîtina daxwazên şopandinê bi destan bike.", + "footer.about": "Derbar", + "footer.directory": "Pelrêça profîlan", + "footer.get_app": "Bernamokê bistîne", + "footer.invite": "Mirovan vexwîne", + "footer.keyboard_shortcuts": "Kurteriyên klavyeyê", + "footer.privacy_policy": "Peymana nepeniyê", + "footer.source_code": "Koda çavkanî nîşan bide", "generic.saved": "Tomarkirî", - "getting_started.developers": "Pêşdebir", - "getting_started.directory": "Rêgeha profîlê", - "getting_started.documentation": "Pelbend", "getting_started.heading": "Destpêkirin", - "getting_started.invite": "Mirovan Vexwîne", - "getting_started.open_source_notice": "Mastodon nermalava çavkaniya vekirî ye. Tu dikarî pirsgirêkan li ser GitHub-ê ragihînî di {github} de an jî dikarî tevkariyê bikî.", - "getting_started.security": "Sazkariyên ajimêr", - "getting_started.terms": "Mercên karûberan", "hashtag.column_header.tag_mode.all": "û {additional}", "hashtag.column_header.tag_mode.any": "an {additional}", "hashtag.column_header.tag_mode.none": "bêyî {additional}", @@ -220,40 +279,54 @@ "hashtag.column_settings.tag_mode.any": "Yek ji van", "hashtag.column_settings.tag_mode.none": "Ne yek ji van", "hashtag.column_settings.tag_toggle": "Ji bo vê stûnê hin pêvekan tevlî bike", + "hashtag.follow": "Hashtagê bişopîne", + "hashtag.unfollow": "Hashtagê neşopîne", "home.column_settings.basic": "Bingehîn", "home.column_settings.show_reblogs": "Bilindkirinan nîşan bike", "home.column_settings.show_replies": "Bersivan nîşan bide", "home.hide_announcements": "Reklaman veşêre", "home.show_announcements": "Reklaman nîşan bide", + "interaction_modal.description.favourite": "Bi ajimêrek li ser Mastodon re, tu dikarî vê şandiyê bijarte bikî da ku nivîskar bizanibe ku tu wê/î re rêzê digirî û wê ji bo paşê biparêzî.", + "interaction_modal.description.follow": "Bi ajimêrekê li ser Mastodon, tu dikarî {name} bişopînî da ku şandiyan li ser rojeva rûpela xwe bi dest bixe.", + "interaction_modal.description.reblog": "Bi ajimêrekê li ser Mastodon, tu dikarî vê şandiyê bilind bikî da ku wê bi şopînerên xwe re parve bikî.", + "interaction_modal.description.reply": "Bi ajimêrekê li ser Mastodon, tu dikarî bersiva vê şandiyê bidî.", + "interaction_modal.on_another_server": "Li ser rajekareke cuda", + "interaction_modal.on_this_server": "Li ser ev rajekar", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Ji ber ku Mastodon nenavendî ye, tu dikarî ajimêrê xwe ya heyî ku ji aliyê rajekarek din a Mastodon an platformek lihevhatî ve hatî pêşkêşkirin bi kar bînî ku ajimêrê te li ser vê yekê tune be.", + "interaction_modal.title.favourite": "Şandiyê {name} bijarte bike", + "interaction_modal.title.follow": "{name} bişopîne", + "interaction_modal.title.reblog": "Şandiyê {name} bilind bike", + "interaction_modal.title.reply": "Bersivê bide şandiyê {name}", "intervals.full.days": "{number, plural, one {# roj} other {# roj}}", "intervals.full.hours": "{number, plural, one {# demjimêr} other {# demjimêr}}\n \n", "intervals.full.minutes": "{number, plural, one {# xulek} other {# xulek}}", "keyboard_shortcuts.back": "Vegere paşê", - "keyboard_shortcuts.blocked": "Rêzoka bikarhênerên astengkirî veke", + "keyboard_shortcuts.blocked": "Lîsteya bikarhênerên astengkirî veke", "keyboard_shortcuts.boost": "Şandiyê bilind bike", "keyboard_shortcuts.column": "Stûna balkişandinê", "keyboard_shortcuts.compose": "Bal bikşîne cîhê nivîsê/textarea", "keyboard_shortcuts.description": "Danasîn", "keyboard_shortcuts.direct": "ji bo vekirina stûnê peyamên rasterast", - "keyboard_shortcuts.down": "Di rêzokê de dakêşe jêr", + "keyboard_shortcuts.down": "Di lîsteyê de dakêşe jêr", "keyboard_shortcuts.enter": "Şandiyê veke", "keyboard_shortcuts.favourite": "Şandiya bijarte", - "keyboard_shortcuts.favourites": "Rêzokên bijarte veke", - "keyboard_shortcuts.federated": "Demnameyê federalîkirî veke", + "keyboard_shortcuts.favourites": "Lîsteyên bijarte veke", + "keyboard_shortcuts.federated": "Demnameya giştî veke", "keyboard_shortcuts.heading": "Kurterêyên klavyeyê", "keyboard_shortcuts.home": "Demnameyê veke", - "keyboard_shortcuts.hotkey": "Bişkoka kurterê", + "keyboard_shortcuts.hotkey": "Kurte bişkok", "keyboard_shortcuts.legend": "Vê çîrokê nîşan bike", "keyboard_shortcuts.local": "Demnameya herêmî veke", "keyboard_shortcuts.mention": "Qala nivîskarî/ê bike", - "keyboard_shortcuts.muted": "Rêzoka bikarhênerên bêdeng kirî veke", + "keyboard_shortcuts.muted": "Lîsteya bikarhênerên bêdengkirî veke", "keyboard_shortcuts.my_profile": "Profîla xwe veke", "keyboard_shortcuts.notifications": "Stûnê agahdariyan veke", "keyboard_shortcuts.open_media": "Medya veke", "keyboard_shortcuts.pinned": "Şandiyên derzîkirî veke", "keyboard_shortcuts.profile": "Profîla nivîskaran veke", "keyboard_shortcuts.reply": "Bersivê bide şandiyê", - "keyboard_shortcuts.requests": "Rêzoka daxwazên şopandinê veke", + "keyboard_shortcuts.requests": "Lîsteya daxwazên şopandinê veke", "keyboard_shortcuts.search": "Bal bide şivika lêgerînê", "keyboard_shortcuts.spoilers": "Zeviya hişyariya naverokê nîşan bide/veşêre", "keyboard_shortcuts.start": "Stûna \"destpêkê\" veke", @@ -261,36 +334,37 @@ "keyboard_shortcuts.toggle_sensitivity": "Medyayê nîşan bide/veşêre", "keyboard_shortcuts.toot": "Dest bi şandiyeke nû bike", "keyboard_shortcuts.unfocus": "Bal nede cîhê nivîsê /lêgerînê", - "keyboard_shortcuts.up": "Di rêzokê de rake jor", + "keyboard_shortcuts.up": "Di lîsteyê de rake jor", "lightbox.close": "Bigire", "lightbox.compress": "Qutîya wêneya nîşan dike bitepisîne", "lightbox.expand": "Qutîya wêneya nîşan dike fireh bike", "lightbox.next": "Pêş", "lightbox.previous": "Paş", "limited_account_hint.action": "Bi heman awayî profîlê nîşan bide", - "limited_account_hint.title": "Ev profîl ji aliyê çavêriya li ser rajekarê te hatiye veşartin.", - "lists.account.add": "Tevlî rêzokê bike", - "lists.account.remove": "Ji rêzokê rake", - "lists.delete": "Rêzokê jê bibe", - "lists.edit": "Rêzokê serrast bike", + "limited_account_hint.title": "Profîl ji aliyê rêveberên {domain}ê ve hatiye veşartin.", + "lists.account.add": "Li lîsteyê zêde bike", + "lists.account.remove": "Ji lîsteyê rake", + "lists.delete": "Lîsteyê jê bibe", + "lists.edit": "Lîsteyê serrast bike", "lists.edit.submit": "Sernavê biguherîne", - "lists.new.create": "Rêzokê tevlî bike", - "lists.new.title_placeholder": "Sernavê rêzoka nû", + "lists.new.create": "Li lîsteyê zêde bike", + "lists.new.title_placeholder": "Sernavê lîsteya nû", "lists.replies_policy.followed": "Bikarhênereke şopandî", - "lists.replies_policy.list": "Endamên rêzokê", + "lists.replies_policy.list": "Endamên lîsteyê", "lists.replies_policy.none": "Ne yek", "lists.replies_policy.title": "Bersivan nîşan bide:", "lists.search": "Di navbera kesên ku te dişopînin bigere", - "lists.subheading": "Rêzokên te", + "lists.subheading": "Lîsteyên te", "load_pending": "{count, plural, one {# hêmaneke nû} other {#hêmaneke nû}}", "loading_indicator.label": "Tê barkirin...", "media_gallery.toggle_visible": "{number, plural, one {Wêneyê veşêre} other {Wêneyan veşêre}}", "missing_indicator.label": "Nehate dîtin", "missing_indicator.sublabel": "Ev çavkanî nehat dîtin", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Dem", "mute_modal.hide_notifications": "Agahdariyan ji ev bikarhêner veşêre?", "mute_modal.indefinite": "Nediyar", - "navigation_bar.apps": "Sepana mobîl", + "navigation_bar.about": "Derbar", "navigation_bar.blocks": "Bikarhênerên astengkirî", "navigation_bar.bookmarks": "Şûnpel", "navigation_bar.community_timeline": "Demnameya herêmî", @@ -298,22 +372,23 @@ "navigation_bar.direct": "Peyamên rasterast", "navigation_bar.discover": "Vekolê", "navigation_bar.domain_blocks": "Navparên astengkirî", - "navigation_bar.edit_profile": "Profîl serrast bike", + "navigation_bar.edit_profile": "Profîlê serrast bike", "navigation_bar.explore": "Vekole", "navigation_bar.favourites": "Bijarte", "navigation_bar.filters": "Peyvên bêdengkirî", "navigation_bar.follow_requests": "Daxwazên şopandinê", "navigation_bar.follows_and_followers": "Şopandin û şopîner", - "navigation_bar.info": "Derbarê vî rajekarî", - "navigation_bar.keyboard_shortcuts": "Bişkoka kurterê", - "navigation_bar.lists": "Rêzok", + "navigation_bar.lists": "Lîste", "navigation_bar.logout": "Derkeve", "navigation_bar.mutes": "Bikarhênerên bêdengkirî", "navigation_bar.personal": "Kesanî", "navigation_bar.pins": "Şandiya derzîkirî", "navigation_bar.preferences": "Sazkarî", - "navigation_bar.public_timeline": "Demnameyê federalîkirî", + "navigation_bar.public_timeline": "Demnameya giştî", + "navigation_bar.search": "Bigere", "navigation_bar.security": "Ewlehî", + "not_signed_in_indicator.not_signed_in": "Divê tu têketinê bikî da ku tu bigihîjî vê çavkaniyê.", + "notification.admin.report": "{name} hate ragihandin {target}", "notification.admin.sign_up": "{name} tomar bû", "notification.favourite": "{name} şandiya te hez kir", "notification.follow": "{name} te şopand", @@ -326,6 +401,7 @@ "notification.update": "{name} şandiyek serrast kir", "notifications.clear": "Agahdariyan pak bike", "notifications.clear_confirmation": "Bi rastî tu dixwazî bi awayekî dawî hemû agahdariyên xwe pak bikî?", + "notifications.column_settings.admin.report": "Ragihandinên nû:", "notifications.column_settings.admin.sign_up": "Tomarkirinên nû:", "notifications.column_settings.alert": "Agahdariyên sermaseyê", "notifications.column_settings.favourite": "Bijarte:", @@ -378,10 +454,12 @@ "privacy.public.long": "Ji bo hemûyan xuyabar e", "privacy.public.short": "Gelemperî", "privacy.unlisted.long": "Ji bo hemûyan xuyabar e, lê ji taybetmendiyên vekolînê veqetiya ye", - "privacy.unlisted.short": "Nerêzok", + "privacy.unlisted.short": "Nelîstekirî", + "privacy_policy.last_updated": "Rojanekirina dawî {date}", + "privacy_policy.title": "Politîka taybetiyê", "refresh": "Nû bike", "regeneration_indicator.label": "Tê barkirin…", - "regeneration_indicator.sublabel": "Mala te da tê amedekirin!", + "regeneration_indicator.sublabel": "Naveroka rûpela sereke ya te tê amedekirin!", "relative_time.days": "{number}r", "relative_time.full.days": "{number, plural, one {# roj} other {# roj}} berê", "relative_time.full.hours": "{number, plural, one {# demjimêr} other {# demjimêr}} berê", @@ -406,7 +484,7 @@ "report.close": "Qediya", "report.comment.title": "Tiştek din heye ku tu difikirî ku divê em zanibin?", "report.forward": "Biçe bo {target}", - "report.forward_hint": "Ajimêr ji rajekarek din da ne. Tu kopîyeka anonîm ya raporê bişînî li wur?", + "report.forward_hint": "Ajimêr ji rajekareke din e. Tu kopîyeka anonîm ya raporê bişînî wir jî?", "report.mute": "Bêdeng bike", "report.mute_explanation": "Tê yê şandiyên wan nebînî. Ew hin jî dikarin te bişopînin û şandiyên te bibînin û wê nizanibin ku ew hatine bêdengkirin.", "report.next": "Pêş", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Spas ji bo ragihandina te, em ê binirxînin.", "report.unfollow": "@{name} neşopîne", "report.unfollow_explanation": "Tê vê ajimêrê dişopînî. Ji bo ku êdî şandiyên wan di rojeva xwe de nebînî, wan neşopîne.", + "report_notification.attached_statuses": "{count, plural,one {{count} şandî} other {{count} şandî}} pêvekirî", + "report_notification.categories.other": "Ên din", + "report_notification.categories.spam": "Nexwestî (Spam)", + "report_notification.categories.violation": "Binpêkirina rêzîkê", + "report_notification.open": "Ragihandinê veke", "search.placeholder": "Bigere", + "search.search_or_paste": "Lêgerîn yan jî URLê pê ve bike", "search_popout.search_format": "Dirûva lêgerîna pêşketî", "search_popout.tips.full_text": "Nivîsên hêsan, şandiyên ku te nivîsandiye, bijare kiriye, bilind kiriye an jî yên behsa te kirine û her wiha navê bikarhêneran, navên xûya dike û hashtagan vedigerîne.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Ji bo van peyvên lêgerînê tiştek nehate dîtin", "search_results.statuses": "Şandî", "search_results.statuses_fts_disabled": "Di vê rajekara Mastodonê da lêgerîna şandîyên li gorî naveroka wan ne çalak e.", + "search_results.title": "Li {q} bigere", "search_results.total": "{count, number} {count, plural, one {encam} other {encam}}", + "server_banner.about_active_users": "Kesên ku di van 30 rojên dawî de vê rajekarê bi kar tînin (Bikarhênerên Çalak ên Mehane)", + "server_banner.active_users": "bikarhênerên çalak", + "server_banner.administered_by": "Tê bi rêvebirin ji aliyê:", + "server_banner.introduction": "{domain} beşek ji tora civakî ya nenavendî ye bi hêzdariya {mastodon}.", + "server_banner.learn_more": "Bêtir fêr bibe", + "server_banner.server_stats": "Amarên rajekar:", + "sign_in_banner.create_account": "Hesab biafirîne", + "sign_in_banner.sign_in": "Têkeve", + "sign_in_banner.text": "Têkeve ji bo şopandina profîlan an hashtagan, bijarte, parvekirin û bersivdana şandiyan, an ji ajimêrê xwe li ser rajekarek cuda têkilî deyine.", "status.admin_account": "Ji bo @{name} navrûya venihêrtinê veke", "status.admin_status": "Vê şandîyê di navrûya venihêrtinê de veke", "status.block": "@{name} asteng bike", @@ -460,7 +554,9 @@ "status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin", "status.embed": "Hedimandî", "status.favourite": "Bijarte", + "status.filter": "Vê şandiyê parzûn bike", "status.filtered": "Parzûnkirî", + "status.hide": "Şandiyê veşêre", "status.history.created": "{name} {date} afirand", "status.history.edited": "{name} {date} serrast kir", "status.load_more": "Bêtir bar bike", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Kesekî hin ev şandî bilind nekiriye. Gava kesek bilind bike, ew ên li vir werin xuyakirin.", "status.redraft": "Jê bibe & ji nû ve reşnivîs bike", "status.remove_bookmark": "Şûnpêlê jê rake", + "status.replied_to": "Bersiv da {name}", "status.reply": "Bersivê bide", "status.replyAll": "Mijarê bibersivîne", - "status.report": "{name} gilî bike", + "status.report": "@{name} ragihîne", "status.sensitive_warning": "Naveroka hestiyarî", "status.share": "Parve bike", + "status.show_filter_reason": "Bi her awayî nîşan bide", "status.show_less": "Kêmtir nîşan bide", "status.show_less_all": "Ji bo hemîyan kêmtir nîşan bide", - "status.show_more": "Hêj zehftir nîşan bide", + "status.show_more": "Bêtir nîşan bide", "status.show_more_all": "Bêtir nîşan bide bo hemûyan", - "status.show_thread": "Mijarê nîşan bide", + "status.show_original": "A resen nîşan bide", + "status.translate": "Wergerîne", + "status.translated_from_with": "Ji {lang} hate wergerandin bi riya {provider}", "status.uncached_media_warning": "Tune ye", "status.unmute_conversation": "Axaftinê bêdeng neke", "status.unpin": "Şandiya derzîkirî ji profîlê rake", + "subscribed_languages.lead": "Tenê şandiyên bi zimanên hilbijartî wê di rojev û demnameya te de wê xuya bibe û piştî guhertinê. Ji bo wergirtina şandiyan di hemû zimanan de ne yek hilbijêre.", + "subscribed_languages.save": "Guhertinan tomar bike", + "subscribed_languages.target": "Zimanên beşdarbûyî biguherîne ji bo {target}", "suggestions.dismiss": "Pêşniyarê paşguh bike", "suggestions.header": "Dibe ku bala te bikşîne…", "tabs_bar.federated_timeline": "Giştî", - "tabs_bar.home": "Serrûpel", + "tabs_bar.home": "Rûpela sereke", "tabs_bar.local_timeline": "Herêmî", "tabs_bar.notifications": "Agahdarî", - "tabs_bar.search": "Bigere", "time_remaining.days": "{number, plural, one {# roj} other {# roj}} maye", "time_remaining.hours": "{number, plural, one {# demjimêr} other {# demjimêr}} maye", "time_remaining.minutes": "{number, plural, one {# xulek} other {# xulek}} maye", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Şopîner", "timeline_hint.resources.follows": "Dişopîne", "timeline_hint.resources.statuses": "Şandiyên kevn", - "trends.counter_by_accounts": "{count, plural, one {{counter} kes} other {{counter} kes}} diaxivin", + "trends.counter_by_accounts": "{count, plural, one {{counter} kes} other {{counter} kes}} berî {days, plural, one {roj} other {{days} roj}}", "trends.trending_now": "Rojev", "ui.beforeunload": "Ger ji Mastodonê veketi wê reşnivîsa te jî winda bibe.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "OCR dihê amadekirin…", "upload_modal.preview_label": "Pêşdîtin ({ratio})", "upload_progress.label": "Tê barkirin...", + "upload_progress.processing": "Kar tê kirin…", "video.close": "Vîdyoyê bigire", "video.download": "Pelê daxe", "video.exit_fullscreen": "Ji dîmendera tijî derkeve", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index 555b39da5d1135..d6b18ff6239463 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Noten", "account.add_or_remove_from_list": "Keworra po Dilea a rolyow", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Lettya gorfarth {domain}", "account.blocked": "Lettys", "account.browse_more_on_origin_server": "Peuri moy y'n profil derowel", - "account.cancel_follow_request": "Dilea govyn holya", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Messach didro dhe @{name}", "account.disable_notifications": "Hedhi ow gwarnya pan wra @{name} postya", "account.domain_blocked": "Gorfarth lettys", "account.edit_profile": "Golegi profil", "account.enable_notifications": "Gwra ow gwarnya pan wra @{name} postya", "account.endorse": "Diskwedhes yn profil", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Holya", "account.followers": "Holyoryon", "account.followers.empty": "Ny wra nagonan holya'n devnydhyer ma hwath.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {Ow holya {counter}} other {Ow holya {counter}}}", "account.follows.empty": "Ny wra'n devnydhyer ma holya nagonan hwath.", "account.follows_you": "Y'th hol", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Kudha kenerthow a @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Perghenogeth an kolm ma a veu checkys dhe {date}", "account.locked_info": "Studh privetter an akont ma yw alhwedhys. An perghen a wra dasweles dre leuv piw a yll aga holya.", "account.media": "Myski", "account.mention": "Meneges @{name}", - "account.moved_to": "{name} a wrug movya dhe:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Tawhe @{name}", "account.mute_notifications": "Tawhe gwarnyansow a @{name}", "account.muted": "Tawhes", + "account.open_original_page": "Open original page", "account.posts": "Postow", "account.posts_with_replies": "Postow ha gorthebow", "account.report": "Reportya @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oups!", "announcement.announcement": "Deklaryans", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} an seythen", "boost_modal.combo": "Hwi a yll gwaska {combo} dhe woheles hemma an nessa tro", - "bundle_column_error.body": "Neppyth eth yn kamm ow karga'n elven ma.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Assayewgh arta", - "bundle_column_error.title": "Gwall ròsweyth", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Degea", "bundle_modal_error.message": "Neppyth eth yn kamm ow karga'n elven ma.", "bundle_modal_error.retry": "Assayewgh arta", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Devnydhyoryon lettys", "column.bookmarks": "Folennosow", "column.community": "Amserlin leel", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Dilea'n dewis ma", "compose_form.poll.switch_to_multiple": "Chanjya sondyans dhe asa lies dewis", "compose_form.poll.switch_to_single": "Chanjya sondyans dhe asa unn dewis hepken", - "compose_form.publish": "Tout", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Merkya myski vel tender} other {Merkya myski vel tender}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Lettya & Reportya", "confirmations.block.confirm": "Lettya", "confirmations.block.message": "Owgh hwi sur a vynnes lettya {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Dilea", "confirmations.delete.message": "Owgh hwi sur a vynnes dilea'n post ma?", "confirmations.delete_list.confirm": "Dilea", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Merkya vel redys", "conversation.open": "Gweles kesklapp", "conversation.with": "Gans {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "A geffrysvys godhvedhys", "directory.local": "A {domain} hepken", "directory.new_arrivals": "Devedhyansow nowydh", "directory.recently_active": "Bew a-gynsow", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Stagewgh an post ma a-berth yn agas gwiasva ow tasskrifa'n kod a-wòles.", "embed.preview": "Ottomma fatel hevel:", "emoji_button.activity": "Gwrians", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Gwrys", "follow_recommendations.heading": "Holyewgh tus a vynnowgh gweles postow anedha! Ottomma nebes profyansow.", "follow_recommendations.lead": "Postow a dus a holyewgh a wra omdhiskwedhes omma yn aray termynel yn agas lin dre. Na borthewgh own a gammwul, hwi a yll p'eurpynag anholya tus mar es poran!", "follow_request.authorize": "Ri kummyas", "follow_request.reject": "Denagha", "follow_requests.unlocked_explanation": "Kyn na vo agas akont alhwedhys, an meni {domain} a wrug tybi y fia da genowgh dasweles govynnow holya a'n akontys ma dre leuv.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Gwithys", - "getting_started.developers": "Displegyoryon", - "getting_started.directory": "Menegva profilys", - "getting_started.documentation": "Dogvenva", "getting_started.heading": "Dhe dhalleth", - "getting_started.invite": "Gelwel tus", - "getting_started.open_source_notice": "Mastodon yw medhelweyth a fenten ygor. Hwi a yll kevri po reportya kudynnow dre GitHub dhe {github}.", - "getting_started.security": "Dewisyow akont", - "getting_started.terms": "Ambosow an gonis", "hashtag.column_header.tag_mode.all": "ha(g) {additional}", "hashtag.column_header.tag_mode.any": "po {additional}", "hashtag.column_header.tag_mode.none": "heb {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Pynag a'n re ma", "hashtag.column_settings.tag_mode.none": "Travyth a'n re ma", "hashtag.column_settings.tag_toggle": "Yssynsi taggys ynwedhek rag an goloven ma", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Selyek", "home.column_settings.show_reblogs": "Diskwedhes kenerthow", "home.column_settings.show_replies": "Diskwedhes gorthebow", "home.hide_announcements": "Kudha deklaryansow", "home.show_announcements": "Diskwedhes deklaryansow", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# jydh} other {# a jydhyow}}", "intervals.full.hours": "{number, plural, one {# our} other {# our}}", "intervals.full.minutes": "{number, plural, one {# vynysen} other {# a vynysennow}}", @@ -268,7 +341,7 @@ "lightbox.next": "Nessa", "lightbox.previous": "Kynsa", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Keworra dhe rol", "lists.account.remove": "Removya a rol", "lists.delete": "Dilea rol", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Hide {number, plural, one {aven} other {aven}}", "missing_indicator.label": "Ny veu kevys", "missing_indicator.sublabel": "Ny yllir kavòs an asnodh ma", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duryans", "mute_modal.hide_notifications": "Kudha gwarnyansow a'n devnydhyer ma?", "mute_modal.indefinite": "Andhevri", - "navigation_bar.apps": "Appys klapkodh", + "navigation_bar.about": "About", "navigation_bar.blocks": "Devnydhyoryon lettys", "navigation_bar.bookmarks": "Folennosow", "navigation_bar.community_timeline": "Amserlin leel", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Geryow tawhes", "navigation_bar.follow_requests": "Govynnow holya", "navigation_bar.follows_and_followers": "Holyansow ha holyoryon", - "navigation_bar.info": "A-dro dhe'n leuren ma", - "navigation_bar.keyboard_shortcuts": "Buanellow", "navigation_bar.lists": "Rolyow", "navigation_bar.logout": "Digelmi", "navigation_bar.mutes": "Devnydhyoryon tawhes", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Postow fastys", "navigation_bar.preferences": "Erviransow", "navigation_bar.public_timeline": "Amserlin geffrysys", + "navigation_bar.search": "Search", "navigation_bar.security": "Diogeledh", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} a wrug merkya agas post vel drudh", "notification.follow": "{name} a wrug agas holya", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Dilea gwarnyansow", "notifications.clear_confirmation": "Owgh hwi sur a vynnes dilea agas gwarnyansow oll yn fast?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Gwarnyansow pennskrin", "notifications.column_settings.favourite": "Re drudh:", @@ -379,6 +455,8 @@ "privacy.public.short": "Poblek", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Anrelys", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Daskarga", "regeneration_indicator.label": "Ow karga…", "regeneration_indicator.sublabel": "Yma agas lin dre ow pos pareusys!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Hwilas", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Furvas hwilas avonsys", "search_popout.tips.full_text": "Tekst sempel a wra daskor postow a wrussowgh aga skrifa, merkya vel drudh, po bos menegys ynna, keffrys ha henwyn devnydhyoryon ha displetyans, ha bòlnosow a dhesedh.", "search_popout.tips.hashtag": "bòlnos", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Postow", "search_results.statuses_fts_disabled": "Nyns yw hwilas postow der aga dalgh gweythresys y'n leuren Mastodon ma.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {sewyans} other {sewyans}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Ygeri ynterfas koswa rag @{name}", "status.admin_status": "Ygeri an post ma y'n ynterfas koswa", "status.block": "Lettya @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Staga", "status.favourite": "Merkya vel drudh", + "status.filter": "Filter this post", "status.filtered": "Sidhlys", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Karga moy", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Ny wrug nagonan kenertha'n post ma hwath. Pan wra, hynn a wra omdhiskwedhes omma.", "status.redraft": "Dilea ha daskynskrifa", "status.remove_bookmark": "Dilea folennos", + "status.replied_to": "Replied to {name}", "status.reply": "Gorthebi", "status.replyAll": "Gorthebi orth neusen", "status.report": "Reportya @{name}", "status.sensitive_warning": "Dalgh tender", "status.share": "Kevrenna", + "status.show_filter_reason": "Show anyway", "status.show_less": "Diskwedhes le", "status.show_less_all": "Diskwedhes le rag puptra", "status.show_more": "Diskwedhes moy", "status.show_more_all": "Diskwedhes moy rag puptra", - "status.show_thread": "Diskwedhes neusen", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ankavadow", "status.unmute_conversation": "Antawhe kesklapp", "status.unpin": "Anfastya a brofil", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Gordhyllo profyans", "suggestions.header": "Martesen y fydh dhe les dhywgh…", "tabs_bar.federated_timeline": "Keffrysys", "tabs_bar.home": "Tre", "tabs_bar.local_timeline": "Leel", "tabs_bar.notifications": "Gwarnyansow", - "tabs_bar.search": "Hwilas", "time_remaining.days": "{number, plural, one {# jydh} other {# a jydhyow}} gesys", "time_remaining.hours": "{number, plural, one {# our} other {# our}} gesys", "time_remaining.minutes": "{number, plural, one {# vynysen} other {# a vynysennow}} gesys", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Holyoryon", "timeline_hint.resources.follows": "Holyansow", "timeline_hint.resources.statuses": "Kottha postow", - "trends.counter_by_accounts": "{count, plural, one {{counter} den} other {{counter} a dus}} ow kewsel", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Tuedhegus lemmyn", "ui.beforeunload": "Agas kysnkrif a vydh kellys mar kwrewgh diberth a Mastodon.", "units.short.billion": "{count}Mek", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Ow pareusi ANG…", "upload_modal.preview_label": "Kynwel ({ratio})", "upload_progress.label": "Owth ughkarga...", + "upload_progress.processing": "Processing…", "video.close": "Degea gwydhyow", "video.download": "Iskarga restren", "video.exit_fullscreen": "Diberth a skrin leun", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index a37b946b4af313..d9fb7eb9c27753 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Pastaba", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Hide everything from {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Sekti", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Užtildytas", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oi!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Tinklo klaida", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 7ef2c2c6f06e95..711a003feda6c5 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderētie serveri", + "about.contact": "Kontakts:", + "about.disclaimer": "Mastodon ir bezmaksas atvērtā pirmkoda programmatūra un Mastodon gGmbH preču zīme.", + "about.domain_blocks.no_reason_available": "Iemesls nav pieejams", + "about.domain_blocks.preamble": "Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī.", + "about.domain_blocks.silenced.explanation": "Parasti tu neredzēsi profilus un saturu no šī servera, ja vien tu nepārprotami izvēlēsies to pārskatīt vai sekot.", + "about.domain_blocks.silenced.title": "Ierobežotās", + "about.domain_blocks.suspended.explanation": "Nekādi dati no šī servera netiks apstrādāti, uzglabāti vai apmainīti, padarot neiespējamu mijiedarbību vai saziņu ar lietotājiem no šī servera.", + "about.domain_blocks.suspended.title": "Apturētie", + "about.not_available": "Šī informācija šajā serverī nav bijusi pieejama.", + "about.powered_by": "Decentralizētu sociālo multividi nodrošina {mastodon}", + "about.rules": "Servera noteikumi", "account.account_note_header": "Piezīme", "account.add_or_remove_from_list": "Pievienot vai noņemt no saraksta", "account.badges.bot": "Bots", @@ -7,37 +19,43 @@ "account.block_domain": "Bloķēt domēnu {domain}", "account.blocked": "Bloķēts", "account.browse_more_on_origin_server": "Pārlūkot vairāk sākotnējā profilā", - "account.cancel_follow_request": "Atcelt sekošanas pieprasījumu", + "account.cancel_follow_request": "Atsaukt sekošanas pieprasījumu", "account.direct": "Privāta ziņa @{name}", "account.disable_notifications": "Pārtraukt man paziņot, kad @{name} publicē ierakstu", "account.domain_blocked": "Domēns ir bloķēts", - "account.edit_profile": "Rediģēt profilu", - "account.enable_notifications": "Man paziņot, kad @{name} publicē ierakstu", + "account.edit_profile": "Labot profilu", + "account.enable_notifications": "Paziņot man, kad @{name} publicē ierakstu", "account.endorse": "Izcelts profilā", + "account.featured_tags.last_status_at": "Beidzamā ziņa {date}", + "account.featured_tags.last_status_never": "Publikāciju nav", + "account.featured_tags.title": "{name} piedāvātie haštagi", "account.follow": "Sekot", "account.followers": "Sekotāji", - "account.followers.empty": "Šim lietotājam patreiz nav sekotāju.", + "account.followers.empty": "Šim lietotājam vēl nav sekotāju.", "account.followers_counter": "{count, plural, one {{counter} Sekotājs} other {{counter} Sekotāji}}", "account.following": "Seko", - "account.following_counter": "{count, plural, one {{counter} Sekojošs} other {{counter} Sekojoši}}", + "account.following_counter": "{count, plural, one {{counter} Sekojamais} other {{counter} Sekojamie}}", "account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.", "account.follows_you": "Seko tev", - "account.hide_reblogs": "Paslēpt paceltos ierakstus no lietotāja @{name}", - "account.joined": "Pievienojās {date}", + "account.go_to_profile": "Dodieties uz profilu", + "account.hide_reblogs": "Paslēpt pastiprinātos ierakstus no lietotāja @{name}", + "account.joined_short": "Pievienojās", + "account.languages": "Mainīt abonētās valodas", "account.link_verified_on": "Šīs saites piederība ir pārbaudīta {date}", "account.locked_info": "Šī konta privātuma statuss ir slēgts. Īpašnieks izskatīs, kurš viņam drīkst sekot.", - "account.media": "Mediji", + "account.media": "Multivide", "account.mention": "Piemin @{name}", - "account.moved_to": "{name} ir pārcelts uz:", + "account.moved_to": "{name} norādīja, ka viņu jaunais konts tagad ir:", "account.mute": "Apklusināt @{name}", "account.mute_notifications": "Nerādīt paziņojumus no @{name}", - "account.muted": "Apklusināts", + "account.muted": "Noklusināts", + "account.open_original_page": "Atvērt oriģinālo lapu", "account.posts": "Ziņas", "account.posts_with_replies": "Ziņas un atbildes", "account.report": "Ziņot par lietotāju @{name}", "account.requested": "Gaidām apstiprinājumu. Nospied lai atceltu sekošanas pieparasījumu", "account.share": "Dalīties ar @{name} profilu", - "account.show_reblogs": "Parādīt @{name} paaugstinātās ziņas", + "account.show_reblogs": "Parādīt @{name} pastiprinātos ierakstus", "account.statuses_counter": "{count, plural, one {{counter} ziņa} other {{counter} ziņas}}", "account.unblock": "Atbloķēt lietotāju @{name}", "account.unblock_domain": "Atbloķēt domēnu {domain}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Ups!", "announcement.announcement": "Paziņojums", "attachments_list.unprocessed": "(neapstrādāti)", + "audio.hide": "Slēpt audio", "autosuggest_hashtag.per_week": "{count} nedēļā", - "boost_modal.combo": "Nospied {combo} lai izlaistu šo nākamreiz", - "bundle_column_error.body": "Kaut kas nogāja greizi ielādējot šo komponenti.", + "boost_modal.combo": "Nospied {combo}, lai nākamreiz šo izlaistu", + "bundle_column_error.copy_stacktrace": "Kopēt kļūdu ziņojumu", + "bundle_column_error.error.body": "Pieprasīto lapu nevarēja atveidot. Tas varētu būt saistīts ar kļūdu mūsu kodā vai pārlūkprogrammas saderības problēma.", + "bundle_column_error.error.title": "Ak, nē!", + "bundle_column_error.network.body": "Mēģinot ielādēt šo lapu, radās kļūda. Tas varētu būt saistīts ar īslaicīgu interneta savienojuma vai šī servera problēmu.", + "bundle_column_error.network.title": "Tīkla kļūda", "bundle_column_error.retry": "Mēģini vēlreiz", - "bundle_column_error.title": "Tīkla kļūda", + "bundle_column_error.return": "Atgriezties", + "bundle_column_error.routing.body": "Pieprasīto lapu nevarēja atrast. Vai esi pārliecināts, ka URL adreses joslā ir pareizs?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Aizvērt", - "bundle_modal_error.message": "Kaut kas nogāja greizi ielādējot šo komponenti.", + "bundle_modal_error.message": "Kaut kas nogāja greizi, ielādējot šo komponenti.", "bundle_modal_error.retry": "Mēģini vēlreiz", + "closed_registrations.other_server_instructions": "Tā kā Mastodon ir decentralizēts, tu vari izveidot kontu citā serverī un joprojām mijiedarboties ar šo.", + "closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu domēnā {domain}, taču, lūdzu, ņem vērā, ka, lai izmantotu Mastodon, tev nav nepieciešams konts tieši domēnā {domain}.", + "closed_registrations_modal.find_another_server": "Atrast citu serveri", + "closed_registrations_modal.preamble": "Mastodon ir decentralizēts, tāpēc neatkarīgi no tā, kur tu izveido savu kontu, varēsit sekot līdzi un sazināties ar ikvienu šajā serverī. Tu pat vari vadīt to pats!", + "closed_registrations_modal.title": "Reģistrēšanās Mastodon", + "column.about": "Par", "column.blocks": "Bloķētie lietotāji", "column.bookmarks": "Grāmatzīmes", "column.community": "Vietējā ziņu līnija", @@ -90,12 +121,12 @@ "column_header.unpin": "Atspraust", "column_subheading.settings": "Iestatījumi", "community.column_settings.local_only": "Tikai vietējie", - "community.column_settings.media_only": "Tikai mediji", + "community.column_settings.media_only": "Tikai multivide", "community.column_settings.remote_only": "Tikai attālinātie", "compose.language.change": "Mainīt valodu", "compose.language.search": "Meklēt valodas...", "compose_form.direct_message_warning_learn_more": "Uzzināt vairāk", - "compose_form.encryption_warning": "Ziņas vietnē Mastodon nav pilnībā šifrētas. Nedalies ar bīstamu informāciju caur Mastodon.", + "compose_form.encryption_warning": "Ziņas vietnē Mastodon nav pilnībā šifrētas. Nedalies ar sensitīvu informāciju caur Mastodon.", "compose_form.hashtag_warning": "Ziņojumu nebūs iespējams atrast zem haštagiem jo tas nav publisks. Tikai publiskos ziņojumus ir iespējams meklēt pēc tiem.", "compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var Tev sekot lai apskatītu tikai sekotājiem paredzētos ziņojumus.", "compose_form.lock_disclaimer.lock": "slēgts", @@ -106,12 +137,12 @@ "compose_form.poll.remove_option": "Noņemt šo izvēli", "compose_form.poll.switch_to_multiple": "Maini aptaujas veidu, lai atļautu vairākas izvēles", "compose_form.poll.switch_to_single": "Maini aptaujas veidu, lai atļautu vienu izvēli", - "compose_form.publish": "Taurēt", + "compose_form.publish": "Publicēt", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Saglabāt izmaiņas", - "compose_form.sensitive.hide": "{count, plural, one {Atzīmēt mediju kā sensitīvu} other {Atzīmēt medijus kā sensitīvus}}", - "compose_form.sensitive.marked": "{count, plural, one {Medijs ir atzīmēts kā sensitīvs} other {Mediji ir atzīmēti kā sensitīvi}}", - "compose_form.sensitive.unmarked": "{count, plural, one {Medijs nav atzīmēts kā sensitīvs} other {Mediji nav atzīmēti kā sensitīvi}}", + "compose_form.sensitive.hide": "{count, plural, one {Atzīmēt multividi kā sensitīvu} other {Atzīmēt multivides kā sensitīvas}}", + "compose_form.sensitive.marked": "{count, plural, one {Multivide ir atzīmēta kā sensitīva} other {Multivides ir atzīmētas kā sensitīvas}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Multivide nav atzīmēts kā sensitīva} other {Multivides nav atzīmētas kā sensitīvas}}", "compose_form.spoiler.marked": "Noņemt satura brīdinājumu", "compose_form.spoiler.unmarked": "Pievienot satura brīdinājumu", "compose_form.spoiler_placeholder": "Ieraksti savu brīdinājumu šeit", @@ -119,19 +150,21 @@ "confirmations.block.block_and_report": "Bloķēt un ziņot", "confirmations.block.confirm": "Bloķēt", "confirmations.block.message": "Vai tiešām vēlies bloķēt lietotāju {name}?", + "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu", + "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?", "confirmations.delete.confirm": "Dzēst", "confirmations.delete.message": "Vai tiešām vēlaties dzēst šo ziņu?", "confirmations.delete_list.confirm": "Dzēst", "confirmations.delete_list.message": "Vai tiešam vēlies neatgriezeniski dzēst šo sarakstu?", "confirmations.discard_edit_media.confirm": "Izmest", - "confirmations.discard_edit_media.message": "Vai tev ir nesaglabātas izmaiņas mediju aprakstā vai priekšskatījumā, vai tomēr atmest tās?", + "confirmations.discard_edit_media.message": "Vai tev ir nesaglabātas izmaiņas multivides aprakstā vai priekšskatījumā, vai tomēr atmest tās?", "confirmations.domain_block.confirm": "Bloķēt visu domēnu", "confirmations.domain_block.message": "Vai tu tiešām, tiešam vēlies bloķēt visu domēnu {domain}? Lielākajā daļā gadījumu pietiek ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.", "confirmations.logout.confirm": "Iziet", "confirmations.logout.message": "Vai tiešām vēlies izrakstīties?", "confirmations.mute.confirm": "Apklusināt", "confirmations.mute.explanation": "Šādi no viņiem tiks slēptas ziņas un ziņas, kurās viņi tiek pieminēti, taču viņi joprojām varēs redzēt tavas ziņas un sekot tev.", - "confirmations.mute.message": "Vai Tu tiešām velies apklusināt {name}?", + "confirmations.mute.message": "Vai tiešām vēlies apklusināt {name}?", "confirmations.redraft.confirm": "Dzēst un pārrakstīt", "confirmations.redraft.message": "Vai tiešām vēlies dzēst un pārrakstīt šo ierakstu? Favorīti un paceltie ieraksti tiks dzēsti, kā arī atbildes tiks atsaistītas no šī ieraksta.", "confirmations.reply.confirm": "Atbildēt", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Atzīmēt kā izlasītu", "conversation.open": "Skatīt sarunu", "conversation.with": "Ar {names}", + "copypaste.copied": "Nokopēts", + "copypaste.copy": "Kopēt", "directory.federated": "No pazīstamas federācijas", "directory.local": "Tikai no {domain}", "directory.new_arrivals": "Jaunpienācēji", "directory.recently_active": "Nesen aktīvs", + "disabled_account_banner.account_settings": "Konta iestatījumi", + "disabled_account_banner.text": "Jūsu konts {disabledAccount} pašlaik ir atspējots.", + "dismissable_banner.community_timeline": "Šīs ir jaunākās publiskās ziņas no personām, kuru kontus mitina {domain}.", + "dismissable_banner.dismiss": "Atcelt", + "dismissable_banner.explore_links": "Par šiem jaunumiem šobrīd runā cilvēki šajā un citos decentralizētā tīkla serveros.", + "dismissable_banner.explore_statuses": "Šīs ziņas no šī un citiem decentralizētajā tīkla serveriem šobrīd gūst panākumus šajā serverī.", + "dismissable_banner.explore_tags": "Šie tēmturi šobrīd kļūst arvien populārāki cilvēku vidū šajā un citos decentralizētā tīkla serveros.", + "dismissable_banner.public_timeline": "Šīs ir jaunākās publiskās ziņas no cilvēkiem šajā un citos decentralizētā tīkla serveros, par kuriem šis serveris zina.", "embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzmo kodu.", "embed.preview": "Tas izskatīsies šādi:", "emoji_button.activity": "Aktivitāte", @@ -171,7 +214,7 @@ "empty_column.community": "Vietējā ziņu lenta ir tukša. Uzraksti kaut ko publiski, lai viss notiktu!", "empty_column.direct": "Patrez tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.", "empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.", - "empty_column.explore_statuses": "Pašlaik nekas nav tendēts. Pārbaudiet vēlāk!", + "empty_column.explore_statuses": "Pašlaik nekā aktuāla nav. Pārbaudi vēlāk!", "empty_column.favourited_statuses": "Patreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.", "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad būs, tie parādīsies šeit.", "empty_column.follow_recommendations": "Šķiet, ka tev nevarēja ģenerēt ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākās atsauces.", @@ -188,7 +231,7 @@ "error.unexpected_crash.explanation_addons": "Šo lapu nevarēja parādīt pareizi. Šo kļūdu, iespējams, izraisīja pārlūkprogrammas papildinājums vai automātiskās tulkošanas rīki.", "error.unexpected_crash.next_steps": "Mēģini atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai vietējo lietotni.", "error.unexpected_crash.next_steps_addons": "Mēģini tos atspējot un atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai vietējo lietotni.", - "errors.unexpected_crash.copy_stacktrace": "Iekopēt starpliktuvē", + "errors.unexpected_crash.copy_stacktrace": "Kopēt stacktrace uz starpliktuvi", "errors.unexpected_crash.report_issue": "Ziņot par problēmu", "explore.search_results": "Meklēšanas rezultāti", "explore.suggested_follows": "Tev", @@ -196,21 +239,37 @@ "explore.trending_links": "Jaunumi", "explore.trending_statuses": "Ziņas", "explore.trending_tags": "Tēmturi", + "filter_modal.added.context_mismatch_explanation": "Šī filtra kategorija neattiecas uz kontekstu, kurā esi piekļuvis šai ziņai. Ja vēlies, lai ziņa tiktu filtrēta arī šajā kontekstā, tev būs jārediģē filtrs.", + "filter_modal.added.context_mismatch_title": "Konteksta neatbilstība!", + "filter_modal.added.expired_explanation": "Šai filtra kategorijai ir beidzies derīguma termiņš. Lai to lietotu, tev būs jāmaina derīguma termiņš.", + "filter_modal.added.expired_title": "Filtrs beidzies!", + "filter_modal.added.review_and_configure": "Lai pārskatītu un tālāk konfigurētu šo filtru kategoriju, dodies uz {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filtra iestatījumi", + "filter_modal.added.settings_link": "iestatījumu lapa", + "filter_modal.added.short_explanation": "Šī ziņa ir pievienota šai filtra kategorijai: {title}.", + "filter_modal.added.title": "Filtrs pievienots!", + "filter_modal.select_filter.context_mismatch": "neattiecas uz šo kontekstu", + "filter_modal.select_filter.expired": "beidzies", + "filter_modal.select_filter.prompt_new": "Jauna kategorija: {name}", + "filter_modal.select_filter.search": "Meklē vai izveido", + "filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu", + "filter_modal.select_filter.title": "Filtrēt šo ziņu", + "filter_modal.title.status": "Filtrēt ziņu", "follow_recommendations.done": "Izpildīts", "follow_recommendations.heading": "Seko cilvēkiem, no kuriem vēlies redzēt ziņas! Šeit ir daži ieteikumi.", "follow_recommendations.lead": "Ziņas no cilvēkiem, kuriem seko, mājas plūsmā tiks parādītas hronoloģiskā secībā. Nebaidies kļūdīties, tu tikpat viegli vari pārtraukt sekot cilvēkiem jebkurā laikā!", "follow_request.authorize": "Autorizēt", "follow_request.reject": "Noraidīt", "follow_requests.unlocked_explanation": "Lai gan tavs konts nav bloķēts, {domain} darbinieki iedomājās, ka, iespējams, vēlēsies pārskatīt pieprasījumus no šiem kontiem.", + "footer.about": "Par", + "footer.directory": "Profilu direktorija", + "footer.get_app": "Iegūt lietotni", + "footer.invite": "Uzaicināt cilvēkus", + "footer.keyboard_shortcuts": "Īsinājumtaustiņi", + "footer.privacy_policy": "Privātuma politika", + "footer.source_code": "Skatīt pirmkodu", "generic.saved": "Saglabāts", - "getting_started.developers": "Izstrādātāji", - "getting_started.directory": "Profila direktorija", - "getting_started.documentation": "Dokumentācija", "getting_started.heading": "Darba sākšana", - "getting_started.invite": "Uzaiciniet cilvēkus", - "getting_started.open_source_notice": "Mastodon ir atvērtā koda programmatūra. Tu vari dot savu ieguldījumu vai arī ziņot par problēmām {github}.", - "getting_started.security": "Konta iestatījumi", - "getting_started.terms": "Pakalpojuma noteikumi", "hashtag.column_header.tag_mode.all": "un {additional}", "hashtag.column_header.tag_mode.any": "vai {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -220,17 +279,31 @@ "hashtag.column_settings.tag_mode.any": "Kāds no šiem", "hashtag.column_settings.tag_mode.none": "Neviens no šiem", "hashtag.column_settings.tag_toggle": "Iekļaut šai kolonnai papildu tagus", + "hashtag.follow": "Seko mirkļbirkai", + "hashtag.unfollow": "Pārstāj sekot mirkļbirkai", "home.column_settings.basic": "Pamata", - "home.column_settings.show_reblogs": "Rādīt palielinājumus", + "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus", "home.column_settings.show_replies": "Rādīt atbildes", "home.hide_announcements": "Slēpt paziņojumus", "home.show_announcements": "Rādīt paziņojumus", + "interaction_modal.description.favourite": "Izmantojot kontu pakalpojumā Mastodon, vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē un saglabā vēlākai lasīšanai.", + "interaction_modal.description.follow": "Izmantojot Mastodon kontu, tu vari sekot lietotājam {name}, lai saņemtu viņa ziņas savā mājas plūsmā.", + "interaction_modal.description.reblog": "Izmantojot Mastodon kontu, tu vari pastiprināt šo ierakstu, lai kopīgotu to ar saviem sekotājiem.", + "interaction_modal.description.reply": "Izmantojot kontu Mastodon, tu vari atbildēt uz šo ziņu.", + "interaction_modal.on_another_server": "Citā serverī", + "interaction_modal.on_this_server": "Šajā serverī", + "interaction_modal.other_server_instructions": "Nokopē un ielīmē šo URL savas Mastodon lietotnes vai Mastodon tīmekļa vietnes meklēšanas laukā.", + "interaction_modal.preamble": "Tā kā Mastodon ir decentralizēts, tu vari izmantot savu esošo kontu, ko mitina cits Mastodon serveris vai saderīga platforma, ja tev nav konta šajā serverī.", + "interaction_modal.title.favourite": "Pievienot {name} ziņu izlasei", + "interaction_modal.title.follow": "Sekot {name}", + "interaction_modal.title.reblog": "Pastiprināt {name} ierakstu", + "interaction_modal.title.reply": "Atbildēt uz {name} ziņu", "intervals.full.days": "{number, plural, one {# diena} other {# dienas}}", "intervals.full.hours": "{number, plural, one {# stunda} other {# stundas}}", "intervals.full.minutes": "{number, plural, one {# minūte} other {# minūtes}}", "keyboard_shortcuts.back": "Pāriet atpakaļ", "keyboard_shortcuts.blocked": "Atvērt bloķēto lietotāju sarakstu", - "keyboard_shortcuts.boost": "Palielināt ziņu", + "keyboard_shortcuts.boost": "Pastiprināt ierakstu", "keyboard_shortcuts.column": "Fokusēt kolonnu", "keyboard_shortcuts.compose": "Fokusēt veidojamā teksta lauku", "keyboard_shortcuts.description": "Apraksts", @@ -245,11 +318,11 @@ "keyboard_shortcuts.hotkey": "Ātrais taustiņš", "keyboard_shortcuts.legend": "Parādīt šo leģendu", "keyboard_shortcuts.local": "Atvērt vietējo ziņu lenti", - "keyboard_shortcuts.mention": "Minējuma autors", + "keyboard_shortcuts.mention": "Pieminēt autoru", "keyboard_shortcuts.muted": "Atvērt apklusināto lietotāju sarakstu", - "keyboard_shortcuts.my_profile": "Atvērt manu profilu", + "keyboard_shortcuts.my_profile": "Atvērt savu profilu", "keyboard_shortcuts.notifications": "Atvērt paziņojumu kolonnu", - "keyboard_shortcuts.open_media": "Atvērt mediju", + "keyboard_shortcuts.open_media": "Atvērt multividi", "keyboard_shortcuts.pinned": "Atvērt piesprausto ziņu sarakstu", "keyboard_shortcuts.profile": "Atvērt autora profilu", "keyboard_shortcuts.reply": "Atbildēt", @@ -258,17 +331,17 @@ "keyboard_shortcuts.spoilers": "Rādīt/slēpt CW lauku", "keyboard_shortcuts.start": "Atvērt kolonnu “Darba sākšana”", "keyboard_shortcuts.toggle_hidden": "Rādīt/slēpt tekstu aiz CW", - "keyboard_shortcuts.toggle_sensitivity": "Rādīt/slēpt mediju", - "keyboard_shortcuts.toot": "Sākt jaunu ziņu", + "keyboard_shortcuts.toggle_sensitivity": "Rādīt/slēpt multividi", + "keyboard_shortcuts.toot": "Sāc jaunu ziņu", "keyboard_shortcuts.unfocus": "Atfokusēt teksta veidošanu/meklēšanu", "keyboard_shortcuts.up": "Pārvietot sarakstā uz augšu", "lightbox.close": "Aizvērt", - "lightbox.compress": "Saspiest attēla ietvaru", - "lightbox.expand": "Paplašināt attēla ietvaru", + "lightbox.compress": "Saspiest attēla skata lodziņu", + "lightbox.expand": "Izvērst attēla skata lodziņu", "lightbox.next": "Tālāk", - "lightbox.previous": "Iepriekš", + "lightbox.previous": "Iepriekšējais", "limited_account_hint.action": "Tik un tā rādīt profilu", - "limited_account_hint.title": "Tava servera moderatori ir paslēpuši šo profilu.", + "limited_account_hint.title": "{domain} moderatori ir paslēpuši šo profilu.", "lists.account.add": "Pievienot sarakstam", "lists.account.remove": "Noņemt no saraksta", "lists.delete": "Dzēst sarakstu", @@ -276,10 +349,10 @@ "lists.edit.submit": "Mainīt virsrakstu", "lists.new.create": "Pievienot sarakstu", "lists.new.title_placeholder": "Jaunais saraksta nosaukums", - "lists.replies_policy.followed": "Jebkuram lietotājam, kuram seko", + "lists.replies_policy.followed": "Jebkurš sekots lietotājs", "lists.replies_policy.list": "Saraksta dalībnieki", "lists.replies_policy.none": "Nevienam", - "lists.replies_policy.title": "Rādīt atbildes:", + "lists.replies_policy.title": "Rādīt atbildes uz:", "lists.search": "Meklēt starp cilvēkiem, kuriem tu seko", "lists.subheading": "Tavi saraksti", "load_pending": "{count, plural, one {# jauna lieta} other {# jaunas lietas}}", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Slēpt # attēlu} other {Slēpt # attēlus}}", "missing_indicator.label": "Nav atrasts", "missing_indicator.sublabel": "Šo resursu nevarēja atrast", + "moved_to_account_banner.text": "Jūsu konts {disabledAccount} pašlaik ir atspējots, jo esat pārcēlies uz kontu {movedToAccount}.", "mute_modal.duration": "Ilgums", "mute_modal.hide_notifications": "Slēpt paziņojumus no šī lietotāja?", "mute_modal.indefinite": "Nenoteikts", - "navigation_bar.apps": "Mobilās lietotnes", + "navigation_bar.about": "Par", "navigation_bar.blocks": "Bloķētie lietotāji", "navigation_bar.bookmarks": "Grāmatzīmes", "navigation_bar.community_timeline": "Vietējā ziņu lenta", @@ -303,9 +377,7 @@ "navigation_bar.favourites": "Izlases", "navigation_bar.filters": "Klusināti vārdi", "navigation_bar.follow_requests": "Sekošanas pieprasījumi", - "navigation_bar.follows_and_followers": "Man seko un sekotāji", - "navigation_bar.info": "Par šo serveri", - "navigation_bar.keyboard_shortcuts": "Ātrie taustiņi", + "navigation_bar.follows_and_followers": "Sekojamie un sekotāji", "navigation_bar.lists": "Saraksti", "navigation_bar.logout": "Iziet", "navigation_bar.mutes": "Apklusinātie lietotāji", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Piespraustās ziņas", "navigation_bar.preferences": "Iestatījumi", "navigation_bar.public_timeline": "Apvienotā ziņu lenta", + "navigation_bar.search": "Meklēt", "navigation_bar.security": "Drošība", + "not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.", + "notification.admin.report": "{name} ziņoja par {target}", "notification.admin.sign_up": "{name} ir pierakstījies", "notification.favourite": "{name} izcēla tavu ziņu", "notification.follow": "{name} uzsāka tev sekot", @@ -321,11 +396,12 @@ "notification.mention": "{name} pieminēja tevi", "notification.own_poll": "Tava aptauja ir pabeigta", "notification.poll": "Aprauja, kurā tu piedalījies, ir pabeigta", - "notification.reblog": "{name} paaugstināja tavu ziņu", + "notification.reblog": "{name} pastiprināja tavu ierakstu", "notification.status": "{name} tikko publicēja", "notification.update": "{name} ir rediģējis rakstu", "notifications.clear": "Notīrīt paziņojumus", "notifications.clear_confirmation": "Vai tiešām vēlies neatgriezeniski notīrīt visus savus paziņojumus?", + "notifications.column_settings.admin.report": "Jauni ziņojumi:", "notifications.column_settings.admin.sign_up": "Jaunas pierakstīšanās:", "notifications.column_settings.alert": "Darbvirsmas paziņojumi", "notifications.column_settings.favourite": "Izlases:", @@ -337,7 +413,7 @@ "notifications.column_settings.mention": "Pieminējumi:", "notifications.column_settings.poll": "Aptaujas rezultāti:", "notifications.column_settings.push": "Uznirstošie paziņojumi", - "notifications.column_settings.reblog": "Palielinājumi:", + "notifications.column_settings.reblog": "Pastiprinātie ieraksti:", "notifications.column_settings.show": "Rādīt kolonnā", "notifications.column_settings.sound": "Atskaņot skaņu", "notifications.column_settings.status": "Jaunas ziņas:", @@ -345,7 +421,7 @@ "notifications.column_settings.unread_notifications.highlight": "Iezīmēt nelasītos paziņojumus", "notifications.column_settings.update": "Labojumi:", "notifications.filter.all": "Visi", - "notifications.filter.boosts": "Palielinājumi", + "notifications.filter.boosts": "Pastiprinātie ieraksti", "notifications.filter.favourites": "Izlases", "notifications.filter.follows": "Seko", "notifications.filter.mentions": "Pieminējumi", @@ -379,15 +455,17 @@ "privacy.public.short": "Publisks", "privacy.unlisted.long": "Redzama visiem, bet atteicās no atklāšanas funkcijām", "privacy.unlisted.short": "Neminētie", + "privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}", + "privacy_policy.title": "Privātuma Politika", "refresh": "Atsvaidzināt", "regeneration_indicator.label": "Ielādē…", "regeneration_indicator.sublabel": "Tiek gatavota tava plūsma!", "relative_time.days": "{number}d", - "relative_time.full.days": "{number, plural, one {# diena} other {# dienas}} atpakaļ", - "relative_time.full.hours": "{number, plural, one {# stunda} other {# stundas}} atpakaļ", + "relative_time.full.days": "Pirms {number, plural, one {# dienas} other {# dienām}}", + "relative_time.full.hours": "Pirms {number, plural, one {# stundas} other {# stundām}}", "relative_time.full.just_now": "tikko", - "relative_time.full.minutes": "{number, plural, one {# minūte} other {# minūtes}} atpakaļ", - "relative_time.full.seconds": "{number, plural, one {# sekunde} other {# sekundes}} atpakaļ", + "relative_time.full.minutes": "Pirms {number, plural, one {# minūtes} other {# minūtēm}}", + "relative_time.full.seconds": "Pirms {number, plural, one {# sekundes} other {# sekundēm}}", "relative_time.hours": "{number}st", "relative_time.just_now": "tagad", "relative_time.minutes": "{number}m", @@ -431,9 +509,15 @@ "report.thanks.title_actionable": "Paldies, ka ziņoji, mēs to izskatīsim.", "report.unfollow": "Pārtraukt sekošanu @{name}", "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā ziņu plūsmā, pārtrauc viņiem sekot.", + "report_notification.attached_statuses": "Pievienoti {count, plural,one {{count} sūtījums} other {{count} sūtījumi}}", + "report_notification.categories.other": "Cita", + "report_notification.categories.spam": "Spams", + "report_notification.categories.violation": "Noteikumu pārkāpums", + "report_notification.open": "Atvērt ziņojumu", "search.placeholder": "Meklēšana", + "search.search_or_paste": "Meklēt vai iekopēt URL", "search_popout.search_format": "Paplašināts meklēšanas formāts", - "search_popout.tips.full_text": "Vienkāršs teksts atgriež ziņas, kuras esi rakstījis, iecienījis, paaugstinājis vai pieminējis, kā arī atbilstošie lietotājvārdi, parādāmie vārdi un tēmturi.", + "search_popout.tips.full_text": "Vienkāršs teksts atgriež ziņas, kuras esi rakstījis, atzīmējis kā favorītus, pastiprinājis vai pieminējis, kā arī atbilstošie lietotājvārdi, parādāmie vārdi un tēmturi.", "search_popout.tips.hashtag": "mirkļbirka", "search_popout.tips.status": "ziņa", "search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un mirkļbirkas", @@ -444,13 +528,23 @@ "search_results.nothing_found": "Nevarēja atrast neko šiem meklēšanas vienumiem", "search_results.statuses": "Ziņas", "search_results.statuses_fts_disabled": "Šajā Mastodon serverī nav iespējota ziņu meklēšana pēc to satura.", + "search_results.title": "Meklēt {q}", "search_results.total": "{count, number} {count, plural, one {rezultāts} other {rezultāti}}", + "server_banner.about_active_users": "Cilvēki, kas izmantojuši šo serveri pēdējo 30 dienu laikā (aktīvie lietotāji mēnesī)", + "server_banner.active_users": "aktīvie lietotāji", + "server_banner.administered_by": "Administrē:", + "server_banner.introduction": "{domain} ir daļa no decentralizētā sociālā tīkla, ko nodrošina {mastodon}.", + "server_banner.learn_more": "Uzzināt vairāk", + "server_banner.server_stats": "Servera statistika:", + "sign_in_banner.create_account": "Izveidot kontu", + "sign_in_banner.sign_in": "Pierakstīties", + "sign_in_banner.text": "Pieraksties, lai sekotu profiliem vai atsaucēm, pievienotu izlasei, kopīgotu ziņas un atbildētu uz tām vai mijiedarbotos no sava konta citā serverī.", "status.admin_account": "Atvērt @{name} moderēšanas saskarni", "status.admin_status": "Atvērt šo ziņu moderācijas saskarnē", "status.block": "Bloķēt @{name}", "status.bookmark": "Grāmatzīme", - "status.cancel_reblog_private": "Nepaaugstināt", - "status.cannot_reblog": "Nevar paaugstināt ziņu", + "status.cancel_reblog_private": "Nepastiprināt", + "status.cannot_reblog": "Nevar pastiprināt šo ierakstu", "status.copy": "Kopēt saiti uz ziņu", "status.delete": "Dzēst", "status.detailed_status": "Detalizēts sarunas skats", @@ -459,8 +553,10 @@ "status.edited": "Rediģēts {date}", "status.edited_x_times": "Rediģēts {count, plural, one {{count} reize} other {{count} reizes}}", "status.embed": "Iestrādāt", - "status.favourite": "Iecienītā", + "status.favourite": "Patīk", + "status.filter": "Filtrē šo ziņu", "status.filtered": "Filtrēts", + "status.hide": "Slēpt", "status.history.created": "{name} izveidots {date}", "status.history.edited": "{name} rediģēts {date}", "status.load_more": "Ielādēt vairāk", @@ -473,32 +569,38 @@ "status.pin": "Piespraust profilam", "status.pinned": "Piespraustā ziņa", "status.read_more": "Lasīt vairāk", - "status.reblog": "Paaugstināt", - "status.reblog_private": "Paaugstināt ar sākotnējo izskatu", - "status.reblogged_by": "{name} paaugstināts", - "status.reblogs.empty": "Neviens šo ziņojumu vel nav paaugstinājis. Kad būs, tie parādīsies šeit.", + "status.reblog": "Pastiprināt", + "status.reblog_private": "Pastiprināt, nemainot redzamību", + "status.reblogged_by": "{name} pastiprināja", + "status.reblogs.empty": "Neviens šo ierakstu vēl nav pastiprinājis. Kad būs, tie parādīsies šeit.", "status.redraft": "Dzēst un pārrakstīt", "status.remove_bookmark": "Noņemt grāmatzīmi", + "status.replied_to": "Atbildēja {name}", "status.reply": "Atbildēt", "status.replyAll": "Atbildēt uz tematu", "status.report": "Ziņot par @{name}", "status.sensitive_warning": "Sensitīvs saturs", "status.share": "Kopīgot", + "status.show_filter_reason": "Tomēr rādīt", "status.show_less": "Rādīt mazāk", "status.show_less_all": "Rādīt mazāk visiem", "status.show_more": "Rādīt vairāk", "status.show_more_all": "Rādīt vairāk visiem", - "status.show_thread": "Rādīt tematu", + "status.show_original": "Rādīt oriģinālu", + "status.translate": "Tulkot", + "status.translated_from_with": "Tulkots no {lang} izmantojot {provider}", "status.uncached_media_warning": "Nav pieejams", "status.unmute_conversation": "Atvērt sarunu", "status.unpin": "Noņemt no profila", + "subscribed_languages.lead": "Pēc izmaiņu veikšanas tavā mājas lapā un saraksta laika skalās tiks rādītas tikai ziņas atlasītajās valodās. Neatlasi nevienu, lai saņemtu ziņas visās valodās.", + "subscribed_languages.save": "Saglabāt izmaiņas", + "subscribed_languages.target": "Mainīt abonētās valodas priekš {target}", "suggestions.dismiss": "Noraidīt ieteikumu", "suggestions.header": "Jūs varētu interesēt arī…", "tabs_bar.federated_timeline": "Federētā", "tabs_bar.home": "Sākums", "tabs_bar.local_timeline": "Vietējā", "tabs_bar.notifications": "Paziņojumi", - "tabs_bar.search": "Meklēt", "time_remaining.days": "Atlikušas {number, plural, one {# diena} other {# dienas}}", "time_remaining.hours": "Atlikušas {number, plural, one {# stunda} other {# stundas}}", "time_remaining.minutes": "Atlikušas {number, plural, one {# minūte} other {# minūtes}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Sekotāji", "timeline_hint.resources.follows": "Seko", "timeline_hint.resources.statuses": "Vecākas ziņas", - "trends.counter_by_accounts": "Sarunājas {count, plural, one {{counter} persona} other {{counter} cilvēki}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} cilvēki}} par {days, plural, one {dienu} other {{days} dienām}}", "trends.trending_now": "Šobrīd tendences", "ui.beforeunload": "Ja pametīsit Mastodonu, jūsu melnraksts tiks zaudēts.", "units.short.billion": "{count}M", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Sagatavo OCR…", "upload_modal.preview_label": "Priekšskatīt ({ratio})", "upload_progress.label": "Augšupielādē...", + "upload_progress.processing": "Apstrādā…", "video.close": "Aizvērt video", "video.download": "Lejupielādēt datni", "video.exit_fullscreen": "Iziet no pilnekrāna", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index df7d84d4b6090a..0d965819e18885 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -1,19 +1,34 @@ { - "account.account_note_header": "Note", + "about.blocks": "Модерирани сервери", + "about.contact": "Контакт:", + "about.disclaimer": "Mastodon е бесплатен, open-source софтвер, и заштитен знак на Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon вообичаено ви дозволува да прегледувате содржини и комуницирате со корисниците од било кој сервер во федиверзумот. На овој сервер има исклучоци.", + "about.domain_blocks.silenced.explanation": "Вообичаено нема да гледате профили и содржина од овој сервер, освен ако не го пребарате намерно, или го заследите.", + "about.domain_blocks.silenced.title": "Ограничено", + "about.domain_blocks.suspended.explanation": "Податоците од овој сервер нема да бидат процесирани, зачувани или сменети и било која интеракција или комуникација со корисниците од овој сервер ќе биде невозможна.", + "about.domain_blocks.suspended.title": "Суспендиран", + "about.not_available": "Оваа информација не е достапна на овој сервер.", + "about.powered_by": "Децентрализиран друштвен медиум овозможен од {mastodon}", + "about.rules": "Правила на серверот", + "account.account_note_header": "Белешка", "account.add_or_remove_from_list": "Додади или одстрани од листа", "account.badges.bot": "Бот", - "account.badges.group": "Group", + "account.badges.group": "Група", "account.block": "Блокирај @{name}", "account.block_domain": "Сокријај се од {domain}", "account.blocked": "Блокиран", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Одкажи барање за следење", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Директна порана @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Скриен домен", "account.edit_profile": "Измени профил", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Карактеристики на профилот", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Следи", "account.followers": "Следбеници", "account.followers.empty": "Никој не го следи овој корисник сеуште.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "Корисникот не следи никој сеуште.", "account.follows_you": "Те следи тебе", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Сокриј буст од @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Сопстевноста на овај линк беше проверен на {date}", "account.locked_info": "Статусот на приватност на овај корисник е сетиран како заклучен. Корисникот одлучува кој можи да го следи него.", "account.media": "Медија", "account.mention": "Спомни @{name}", - "account.moved_to": "{name} се пресели во:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Зачути го @{name}", "account.mute_notifications": "Исклучи известувања од @{name}", "account.muted": "Зачутено", + "account.open_original_page": "Open original page", "account.posts": "Тутови", "account.posts_with_replies": "Тутови и реплики", "account.report": "Пријави @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Упс!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} неделно", "boost_modal.combo": "Кликни {combo} за да го прескокниш ова нареден пат", - "bundle_column_error.body": "Се случи проблем при вчитувањето.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Обидете се повторно", - "bundle_column_error.title": "Мрежна грешка", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Затвори", "bundle_modal_error.message": "Настана грешка при прикажувањето на оваа веб-страница.", "bundle_modal_error.retry": "Обидете се повторно", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Блокирани корисници", "column.bookmarks": "Bookmarks", "column.community": "Локална временска зона", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Избриши избор", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Тутови", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "Обележи медиа како сензитивна", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Блокирај и Пријави", "confirmations.block.confirm": "Блокирај", "confirmations.block.message": "Сигурни сте дека дека го блокирате {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Избриши", "confirmations.delete.message": "Сигурни сте дека го бришите статусот?", "confirmations.delete_list.confirm": "Избриши", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Означете како прочитано", "conversation.open": "Прегледај разговор", "conversation.with": "Со {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Од познати fediverse", "directory.local": "Само од {domain}", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Активност", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Одобри", "follow_request.reject": "Одбиј", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Програмери", - "getting_started.directory": "Профил директориум", - "getting_started.documentation": "Документација", "getting_started.heading": "Започни", - "getting_started.invite": "Покани луѓе", - "getting_started.open_source_notice": "Мастодон е софтвер со отворен код. Можете да придонесувате или пријавувате проблеми во GitHub на {github}.", - "getting_started.security": "Поставки на сметката", - "getting_started.terms": "Услови на користење", "hashtag.column_header.tag_mode.all": "и {additional}", "hashtag.column_header.tag_mode.any": "или {additional}", "hashtag.column_header.tag_mode.none": "без {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Било кои", "hashtag.column_settings.tag_mode.none": "Никои", "hashtag.column_settings.tag_toggle": "Стави додатни тагови за оваа колона", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Прикажи бустирања", "home.column_settings.show_replies": "Прикажи одговори", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ден} other {# дена}}", "intervals.full.hours": "{number, plural, one {# час} other {# часа}}", "intervals.full.minutes": "{number, plural, one {# минута} other {# минути}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Замолќени зборови", "navigation_bar.follow_requests": "Следи покани", "navigation_bar.follows_and_followers": "Следења и следбеници", - "navigation_bar.info": "За овој сервер", - "navigation_bar.keyboard_shortcuts": "Кратенки", "navigation_bar.lists": "Листи", "navigation_bar.logout": "Одјави се", "navigation_bar.mutes": "Заќутени корисници", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Федеративен времеплов", + "navigation_bar.search": "Search", "navigation_bar.security": "Безбедност", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Јавно", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Необјавено", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Освежи", "regeneration_indicator.label": "Вчитување…", "regeneration_indicator.sublabel": "Вашиот новости се подготвуваат!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Барај", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Напреден формат за барање", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.hashtag": "хештег", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Дома", "tabs_bar.local_timeline": "Локално", "tabs_bar.notifications": "Нотификации", - "tabs_bar.search": "Барај", "time_remaining.days": "{number, plural, one {# ден} other {# дена}} {number, plural, one {остана} other {останаа}}", "time_remaining.hours": "{number, plural, one {# час} other {# часа}} {number, plural, one {остана} other {останаа}}", "time_remaining.minutes": "{number, plural, one {# минута} other {# минути}} {number, plural, one {остана} other {останаа}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 69267f652e8e86..51afa4b43a7765 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -1,4 +1,16 @@ { + "about.blocks": "മോഡറേറ്റഡ് സെർവറുകൾ", + "about.contact": "ബന്ധപ്പെടുക:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "കാരണം ലഭ്യമല്", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "കുറിപ്പ്", "account.add_or_remove_from_list": "പട്ടികയിൽ ചേർക്കുകയോ/മാറ്റുകയോ ചെയ്യുക", "account.badges.bot": "റോബോട്ട്", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} എന്ന മേഖല തടയുക", "account.blocked": "തടഞ്ഞു", "account.browse_more_on_origin_server": "യഥാർത്ഥ പ്രൊഫൈലിലേക്ക് പോവുക", - "account.cancel_follow_request": "പിന്തുടരാനുള്ള അപേക്ഷ നിരസിക്കുക", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name}-ന്(ക്ക്) നേരിട്ട് സന്ദേശം അയക്കുക", "account.disable_notifications": "@{name} പോസ്റ്റുചെയ്യുന്നത് എന്നെ അറിയിക്കുന്നത് നിർത്തുക", "account.domain_blocked": "മേഖല തടഞ്ഞു", "account.edit_profile": "പ്രൊഫൈൽ തിരുത്തുക", "account.enable_notifications": "@{name} പോസ്റ്റ് ചെയ്യുമ്പോൾ എന്നെ അറിയിക്കുക", "account.endorse": "പ്രൊഫൈലിൽ പ്രകടമാക്കുക", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "പിന്തുടരുക", "account.followers": "പിന്തുടരുന്നവർ", "account.followers.empty": "ഈ ഉപയോക്താവിനെ ആരും ഇതുവരെ പിന്തുടരുന്നില്ല.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} പിന്തുടരുന്നു} other {{counter} പിന്തുടരുന്നു}}", "account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.", "account.follows_you": "നിങ്ങളെ പിന്തുടരുന്നു", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക", - "account.joined": "{date} ൽ ചേർന്നു", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "ഈ ലിങ്കിന്റെ ഉടമസ്തത {date} ഇൽ ഉറപ്പാക്കിയതാണ്", "account.locked_info": "ഈ അംഗത്വത്തിന്റെ സ്വകാര്യതാ നിലപാട് അനുസരിച്ച് പിന്തുടരുന്നവരെ തിരഞ്ഞെടുക്കാനുള്ള വിവേചനാധികാരം ഉടമസ്ഥനിൽ നിഷിപ്തമായിരിക്കുന്നു.", "account.media": "മീഡിയ", "account.mention": "@{name} സൂചിപ്പിക്കുക", - "account.moved_to": "{name} ഇതിലേക്ക് മാറിയിരിക്കുന്നു:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "@{name}-നെ(യെ) നിശ്ശബ്ദമാക്കൂ", "account.mute_notifications": "@{name} യിൽ നിന്നുള്ള അറിയിപ്പുകൾ നിശബ്ദമാക്കുക", "account.muted": "നിശ്ശബ്ദമാക്കിയിരിക്കുന്നു", + "account.open_original_page": "Open original page", "account.posts": "പോസ്റ്റുകൾ", "account.posts_with_replies": "പോസ്റ്റുകളും മറുപടികളും", "account.report": "റിപ്പോർട്ട് ചെയ്യുക @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "ശ്ശോ!", "announcement.announcement": "അറിയിപ്പ്", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "ആഴ്ച തോറും {count}", "boost_modal.combo": "അടുത്ത തവണ ഇത് ഒഴിവാക്കുവാൻ {combo} ഞെക്കാവുന്നതാണ്", - "bundle_column_error.body": "ഈ ഘടകം പ്രദശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "വീണ്ടും ശ്രമിക്കുക", - "bundle_column_error.title": "ശൃംഖലയിലെ പിഴവ്", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "അടയ്ക്കുക", "bundle_modal_error.message": "ഈ വെബ്പേജ് പ്രദർശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.", "bundle_modal_error.retry": "വീണ്ടും ശ്രമിക്കുക", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", "column.bookmarks": "ബുക്ക്മാർക്കുകൾ", "column.community": "പ്രാദേശികമായ സമയരേഖ", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "ഈ ഡിവൈസ് മാറ്റുക", "compose_form.poll.switch_to_multiple": "വോട്ടെടുപ്പിൽ ഒന്നിലധികം ചോയ്‌സുകൾ ഉൾപ്പെടുതുക", "compose_form.poll.switch_to_single": "വോട്ടെടുപ്പിൽ ഒരൊറ്റ ചോയ്‌സ്‌ മാത്രം ആക്കുക", - "compose_form.publish": "ടൂട്ട്", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{പ്രസിദ്ധീകരിക്കുക}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "തടയുകയും റിപ്പോർട്ടും ചെയ്യുക", "confirmations.block.confirm": "തടയുക", "confirmations.block.message": "{name} തടയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "മായ്ക്കുക", "confirmations.delete.message": "ഈ ടൂട്ട് ഇല്ലാതാക്കണം എന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?", "confirmations.delete_list.confirm": "മായ്ക്കുക", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക", "conversation.open": "സംഭാഷണം കാണുക", "conversation.with": "{names} കൂടെ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "അറിയപ്പെടുന്ന ഫെഡിവേഴ്‌സ്ൽ നിന്ന്", "directory.local": "{domain} ൽ നിന്ന് മാത്രം", "directory.new_arrivals": "പുതിയ വരവുകൾ", "directory.recently_active": "അടുത്തിടെയായി സജീവമായ", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ചുവടെയുള്ള കോഡ് പകർത്തിക്കൊണ്ട് നിങ്ങളുടെ വെബ്‌സൈറ്റിൽ ഈ ടൂട്ട് ഉൾച്ചേർക്കുക.", "embed.preview": "ഇത് ഇങ്ങനെ കാണപ്പെടും:", "emoji_button.activity": "പ്രവര്‍ത്തനം", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "പൂര്‍ത്തിയായീ", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "ചുമതലപ്പെടുത്തുക", "follow_request.reject": "നിരസിക്കുക", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "സംരക്ഷിച്ചു", - "getting_started.developers": "വികസിപ്പിക്കുന്നവർ", - "getting_started.directory": "പ്രൊഫൈൽ ഡയറക്ടറി", - "getting_started.documentation": "രേഖാ സമാഹരണം", "getting_started.heading": "തുടക്കം കുറിക്കുക", - "getting_started.invite": "ആളുകളെ ക്ഷണിക്കുക", - "getting_started.open_source_notice": "മാസ്റ്റഡോൺ ഒരു സ്വതന്ത്ര സോഫ്ട്‍വെയർ ആണ്. നിങ്ങൾക്ക് {github} GitHub ൽ സംഭാവന ചെയ്യുകയോ പ്രശ്നങ്ങൾ അറിയിക്കുകയോ ചെയ്യാം.", - "getting_started.security": "അംഗത്വ ക്രമീകരണങ്ങൾ", - "getting_started.terms": "സേവന വ്യവസ്ഥകൾ", "hashtag.column_header.tag_mode.all": "{additional} ഉം കൂടെ", "hashtag.column_header.tag_mode.any": "അല്ലെങ്കിൽ {additional}", "hashtag.column_header.tag_mode.none": "{additional} ഇല്ലാതെ", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "ഇവയിലേതെങ്കിലും", "hashtag.column_settings.tag_mode.none": "ഇതിലൊന്നുമല്ല", "hashtag.column_settings.tag_toggle": "ഈ എഴുത്തുപംക്തിക്ക് കൂടുതൽ ഉപനാമങ്ങൾ ചേർക്കുക", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "അടിസ്ഥാനം", "home.column_settings.show_reblogs": "ബൂസ്റ്റുകൾ കാണിക്കുക", "home.column_settings.show_replies": "മറുപടികൾ കാണിക്കുക", "home.hide_announcements": "പ്രഖ്യാപനങ്ങൾ മറയ്‌ക്കുക", "home.show_announcements": "പ്രഖ്യാപനങ്ങൾ കാണിക്കുക", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "അടുത്തത്", "lightbox.previous": "പുറകോട്ട്", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "പട്ടികയിലേക്ക് ചേർക്കുക", "lists.account.remove": "പട്ടികയിൽ നിന്ന് ഒഴിവാക്കുക", "lists.delete": "പട്ടിക ഒഴിവാക്കുക", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "കാണാനില്ല", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "കാലാവധി", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "അനിശ്ചിതകാല", - "navigation_bar.apps": "മൊബൈൽ ആപ്പുകൾ", + "navigation_bar.about": "About", "navigation_bar.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", "navigation_bar.bookmarks": "ബുക്ക്മാർക്കുകൾ", "navigation_bar.community_timeline": "പ്രാദേശിക സമയരേഖ", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "പിന്തുടരാനുള്ള അഭ്യർത്ഥനകൾ", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ഈ സെർവറിനെക്കുറിച്ച്", - "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "ലിസ്റ്റുകൾ", "navigation_bar.logout": "ലോഗൗട്ട്", "navigation_bar.mutes": "നിശബ്ദമാക്കപ്പെട്ട ഉപയോക്താക്കൾ", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "ക്രമീകരണങ്ങൾ", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "സുരക്ഷ", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} നിങ്ങളെ പിന്തുടർന്നു", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "അറിയിപ്പ് മായ്ക്കുക", "notifications.clear_confirmation": "നിങ്ങളുടെ എല്ലാ അറിയിപ്പുകളും ശാശ്വതമായി മായ്‌ക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "ഡെസ്ക്ടോപ്പ് അറിയിപ്പുകൾ", "notifications.column_settings.favourite": "പ്രിയപ്പെട്ടവ:", @@ -379,6 +455,8 @@ "privacy.public.short": "എല്ലാവര്‍ക്കും", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "പുതുക്കുക", "regeneration_indicator.label": "ലഭ്യമാക്കുന്നു…", "regeneration_indicator.sublabel": "നിങ്ങളുടെ ഹോം ഫീഡ് തയാറാക്കുന്നു!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "തിരയുക", + "search.search_or_paste": "Search or paste URL", "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": "ഹാഷ്ടാഗ്", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "ടൂട്ടുകൾ", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "@{name} -നെ തടയുക", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "ഉൾച്ചേർക്കുക", "status.favourite": "പ്രിയപ്പെട്ടത്", + "status.filter": "Filter this post", "status.filtered": "ഫിൽട്ടർ ചെയ്‌തു", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "കൂടുതൽ ലോഡു ചെയ്യുക", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "ഇല്ലാതാക്കുക & വീണ്ടും ഡ്രാഫ്റ്റ് ചെയ്യുക", "status.remove_bookmark": "ബുക്ക്മാർക്ക് നീക്കംചെയ്യുക", + "status.replied_to": "Replied to {name}", "status.reply": "മറുപടി", "status.replyAll": "Reply to thread", "status.report": "@{name}--നെ റിപ്പോർട്ട് ചെയ്യുക", "status.sensitive_warning": "Sensitive content", "status.share": "പങ്കിടുക", + "status.show_filter_reason": "Show anyway", "status.show_less": "കുറച്ച് കാണിക്കുക", "status.show_less_all": "Show less for all", "status.show_more": "കൂടുതകൽ കാണിക്കുക", "status.show_more_all": "എല്ലാവർക്കുമായി കൂടുതൽ കാണിക്കുക", - "status.show_thread": "ത്രെഡ് കാണിക്കുക", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "ലഭ്യമല്ല", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "നിർദ്ദേശം ഒഴിവാക്കൂ", "suggestions.header": "നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടാകാം…", "tabs_bar.federated_timeline": "സംയുക്തമായ", "tabs_bar.home": "ഹോം", "tabs_bar.local_timeline": "പ്രാദേശികം", "tabs_bar.notifications": "അറിയിപ്പുകൾ", - "tabs_bar.search": "തിരയുക", "time_remaining.days": "{number, plural, one {# ദിവസം} other {# ദിവസങ്ങൾ}} ബാക്കി", "time_remaining.hours": "{number, plural, one {# മണിക്കൂർ} other {# മണിക്കൂർ}} ശേഷിക്കുന്നു", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "പിന്തുടരുന്നവർ", "timeline_hint.resources.follows": "പിന്തുടരുന്നു", "timeline_hint.resources.statuses": "പഴയ ടൂട്ടുകൾ", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "ഇപ്പോൾ ട്രെൻഡിംഗ്", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "OCR തയ്യാറാക്കുന്നു…", "upload_modal.preview_label": "പൂര്‍വ്വദൃശ്യം({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "വീഡിയോ അടയ്ക്കുക", "video.download": "ഫയൽ ഡൌൺലോഡ് ചെയ്യുക", "video.exit_fullscreen": "പൂർണ്ണ സ്ക്രീനിൽ നിന്ന് പുറത്തുകടക്കുക", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 6728c09992d329..63cb293e13006d 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "यादीत घाला किंवा यादीतून काढून टाका", "account.badges.bot": "स्वयंचलित खाते", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} पासून सर्व लपवा", "account.blocked": "ब्लॉक केले आहे", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "अनुयायी होण्याची विनंती रद्द करा", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "थेट संदेश @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "प्रोफाइल एडिट करा", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "अनुयायी व्हा", "account.followers": "अनुयायी", "account.followers.empty": "ह्या वापरकर्त्याचा आतापर्यंत कोणी अनुयायी नाही.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "हा वापरकर्ता अजूनपर्यंत कोणाचा अनुयायी नाही.", "account.follows_you": "तुमचा अनुयायी आहे", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name} पासून सर्व बूस्ट लपवा", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "दृक्‌‌श्राव्य मजकूर", "account.mention": "@{name} चा उल्लेख करा", - "account.moved_to": "{name} आता आहे:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "@{name} ला मूक कारा", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "अरेरे!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} प्रतिसप्ताह", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "हा घटक लोड करतांना काहीतरी चुकले आहे.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "पुन्हा प्रयत्न करा", - "bundle_column_error.title": "नेटवर्क त्रुटी", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "बंद करा", "bundle_modal_error.message": "हा घटक लोड करतांना काहीतरी चुकले आहे.", "bundle_modal_error.retry": "पुन्हा प्रयत्न करा", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "ब्लॉक केलेले खातेधारक", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "हा पर्याय काढा", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "हटवा", "confirmations.delete.message": "हे स्टेटस तुम्हाला नक्की हटवायचंय?", "confirmations.delete_list.confirm": "हटवा", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 4cb6437f435084..7d25ac60841271 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Catatan", "account.add_or_remove_from_list": "Tambah atau Buang dari senarai", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Sekat domain {domain}", "account.blocked": "Disekat", "account.browse_more_on_origin_server": "Layari selebihnya di profil asal", - "account.cancel_follow_request": "Batalkan permintaan ikutan", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Mesej terus @{name}", "account.disable_notifications": "Berhenti memaklumi saya apabila @{name} mengirim hantaran", "account.domain_blocked": "Domain disekat", "account.edit_profile": "Sunting profil", "account.enable_notifications": "Maklumi saya apabila @{name} mengirim hantaran", "account.endorse": "Tampilkan di profil", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Ikuti", "account.followers": "Pengikut", "account.followers.empty": "Belum ada yang mengikuti pengguna ini.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Diikuti} other {{counter} Diikuti}}", "account.follows.empty": "Pengguna ini belum mengikuti sesiapa.", "account.follows_you": "Mengikuti anda", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Sembunyikan galakan daripada @{name}", - "account.joined": "Sertai pada {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Pemilikan pautan ini telah disemak pada {date}", "account.locked_info": "Status privasi akaun ini dikunci. Pemiliknya menyaring sendiri siapa yang boleh mengikutinya.", "account.media": "Media", "account.mention": "Sebut @{name}", - "account.moved_to": "{name} telah berpindah ke:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Bisukan @{name}", "account.mute_notifications": "Bisukan pemberitahuan daripada @{name}", "account.muted": "Dibisukan", + "account.open_original_page": "Open original page", "account.posts": "Hantaran", "account.posts_with_replies": "Hantaran dan balasan", "account.report": "Laporkan @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Alamak!", "announcement.announcement": "Pengumuman", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} seminggu", "boost_modal.combo": "Anda boleh tekan {combo} untuk melangkauinya pada waktu lain", - "bundle_column_error.body": "Terdapat kesilapan ketika memuatkan komponen ini.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Cuba lagi", - "bundle_column_error.title": "Ralat rangkaian", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Tutup", "bundle_modal_error.message": "Ada yang tidak kena semasa memuatkan komponen ini.", "bundle_modal_error.retry": "Cuba lagi", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Pengguna yang disekat", "column.bookmarks": "Tanda buku", "column.community": "Garis masa tempatan", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Buang pilihan ini", "compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian", "compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Tandakan media sbg sensitif} other {Tandakan media sbg sensitif}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Sekat & Lapor", "confirmations.block.confirm": "Sekat", "confirmations.block.message": "Adakah anda pasti anda ingin menyekat {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Padam", "confirmations.delete.message": "Adakah anda pasti anda ingin memadam hantaran ini?", "confirmations.delete_list.confirm": "Padam", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Tanda sudah dibaca", "conversation.open": "Lihat perbualan", "conversation.with": "Dengan {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Dari fediverse yang diketahui", "directory.local": "Dari {domain} sahaja", "directory.new_arrivals": "Ketibaan baharu", "directory.recently_active": "Aktif baru-baru ini", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Benam hantaran ini di laman sesawang anda dengan menyalin kod berikut.", "embed.preview": "Begini rupanya nanti:", "emoji_button.activity": "Aktiviti", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Selesai", "follow_recommendations.heading": "Ikuti orang yang anda ingin lihat hantarannya! Di sini ada beberapa cadangan.", "follow_recommendations.lead": "Hantaran daripada orang yang anda ikuti akan muncul dalam susunan kronologi di suapan rumah anda. Jangan takut melakukan kesilapan, anda boleh nyahikuti orang dengan mudah pada bila-bila masa!", "follow_request.authorize": "Benarkan", "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Disimpan", - "getting_started.developers": "Pembangun", - "getting_started.directory": "Direktori profil", - "getting_started.documentation": "Pendokumenan", "getting_started.heading": "Mari bermula", - "getting_started.invite": "Undang orang", - "getting_started.open_source_notice": "Mastodon itu perisian bersumber terbuka. Anda boleh menyumbang atau melaporkan masalah di GitHub menerusi {github}.", - "getting_started.security": "Tetapan akaun", - "getting_started.terms": "Terma perkhidmatan", "hashtag.column_header.tag_mode.all": "dan {additional}", "hashtag.column_header.tag_mode.any": "atau {additional}", "hashtag.column_header.tag_mode.none": "tanpa {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Mana-mana daripada yang ini", "hashtag.column_settings.tag_mode.none": "Tiada apa pun daripada yang ini", "hashtag.column_settings.tag_toggle": "Sertakan tag tambahan untuk lajur ini", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Asas", "home.column_settings.show_reblogs": "Tunjukkan galakan", "home.column_settings.show_replies": "Tunjukkan balasan", "home.hide_announcements": "Sembunyikan pengumuman", "home.show_announcements": "Tunjukkan pengumuman", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# minit}}", @@ -268,7 +341,7 @@ "lightbox.next": "Seterusnya", "lightbox.previous": "Sebelumnya", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Tambah ke senarai", "lists.account.remove": "Buang daripada senarai", "lists.delete": "Padam senarai", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, other {Sembunyikan imej}}", "missing_indicator.label": "Tidak dijumpai", "missing_indicator.sublabel": "Sumber ini tidak dijumpai", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Tempoh", "mute_modal.hide_notifications": "Sembunyikan pemberitahuan daripada pengguna ini?", "mute_modal.indefinite": "Tidak tentu", - "navigation_bar.apps": "Aplikasi mudah alih", + "navigation_bar.about": "About", "navigation_bar.blocks": "Pengguna yang disekat", "navigation_bar.bookmarks": "Tanda buku", "navigation_bar.community_timeline": "Garis masa tempatan", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Perkataan yang dibisukan", "navigation_bar.follow_requests": "Permintaan ikutan", "navigation_bar.follows_and_followers": "Ikutan dan pengikut", - "navigation_bar.info": "Perihal pelayan ini", - "navigation_bar.keyboard_shortcuts": "Kekunci pantas", "navigation_bar.lists": "Senarai", "navigation_bar.logout": "Log keluar", "navigation_bar.mutes": "Pengguna yang dibisukan", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Hantaran disemat", "navigation_bar.preferences": "Keutamaan", "navigation_bar.public_timeline": "Garis masa bersekutu", + "navigation_bar.search": "Search", "navigation_bar.security": "Keselamatan", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} menggemari hantaran anda", "notification.follow": "{name} mengikuti anda", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Buang pemberitahuan", "notifications.clear_confirmation": "Adakah anda pasti anda ingin membuang semua pemberitahuan anda secara kekal?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Pemberitahuan atas meja", "notifications.column_settings.favourite": "Kegemaran:", @@ -379,6 +455,8 @@ "privacy.public.short": "Awam", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Tidak tersenarai", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Muat semula", "regeneration_indicator.label": "Memuatkan…", "regeneration_indicator.sublabel": "Suapan rumah anda sedang disediakan!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Cari", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Format gelintar lanjutan", "search_popout.tips.full_text": "Teks ringkas mengembalikan hantaran yang anda telah tulis, menggemari, menggalak, atau telah disebutkan, dan juga nama pengguna, nama paparan, dan tanda pagar yang dipadankan.", "search_popout.tips.hashtag": "tanda pagar", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Hantaran", "search_results.statuses_fts_disabled": "Menggelintar hantaran menggunakan kandungannya tidak didayakan di pelayan Mastodon ini.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, other {hasil}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Buka antara muka penyederhanaan untuk @{name}", "status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan", "status.block": "Sekat @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Benaman", "status.favourite": "Kegemaran", + "status.filter": "Filter this post", "status.filtered": "Ditapis", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Muatkan lagi", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Tiada sesiapa yang menggalak hantaran ini. Apabila ada yang menggalak, ia akan muncul di sini.", "status.redraft": "Padam & rangka semula", "status.remove_bookmark": "Buang tanda buku", + "status.replied_to": "Replied to {name}", "status.reply": "Balas", "status.replyAll": "Balas ke bebenang", "status.report": "Laporkan @{name}", "status.sensitive_warning": "Kandungan sensitif", "status.share": "Kongsi", + "status.show_filter_reason": "Show anyway", "status.show_less": "Tunjukkan kurang", "status.show_less_all": "Tunjukkan kurang untuk semua", "status.show_more": "Tunjukkan lebih", "status.show_more_all": "Tunjukkan lebih untuk semua", - "status.show_thread": "Tunjuk bebenang", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Tidak tersedia", "status.unmute_conversation": "Nyahbisukan perbualan", "status.unpin": "Nyahsemat daripada profil", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Batalkan cadangan", "suggestions.header": "Anda mungkin berminat dengan…", "tabs_bar.federated_timeline": "Bersekutu", "tabs_bar.home": "Laman utama", "tabs_bar.local_timeline": "Tempatan", "tabs_bar.notifications": "Pemberitahuan", - "tabs_bar.search": "Cari", "time_remaining.days": "Tinggal {number, plural, other {# hari}}", "time_remaining.hours": "Tinggal {number, plural, other {# jam}}", "time_remaining.minutes": "Tinggal {number, plural, other {# minit}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Pengikut", "timeline_hint.resources.follows": "Ikutan", "timeline_hint.resources.statuses": "Hantaran lebih lama", - "trends.counter_by_accounts": "{count, plural, other {{counter} orang}} bercakap", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Sohor kini", "ui.beforeunload": "Rangka anda akan terhapus jika anda meninggalkan Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Mempersiapkan OCR…", "upload_modal.preview_label": "Pratonton ({ratio})", "upload_progress.label": "Memuat naik...", + "upload_progress.processing": "Processing…", "video.close": "Tutup video", "video.download": "Muat turun fail", "video.exit_fullscreen": "Keluar skrin penuh", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json new file mode 100644 index 00000000000000..7757f061fd6c4a --- /dev/null +++ b/app/javascript/mastodon/locales/my.json @@ -0,0 +1,652 @@ +{ + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", + "account.account_note_header": "Note", + "account.add_or_remove_from_list": "Add or Remove from lists", + "account.badges.bot": "Bot", + "account.badges.group": "Group", + "account.block": "Block @{name}", + "account.block_domain": "Block domain {domain}", + "account.blocked": "Blocked", + "account.browse_more_on_origin_server": "Browse more on the original profile", + "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "Direct message @{name}", + "account.disable_notifications": "Stop notifying me when @{name} posts", + "account.domain_blocked": "Domain blocked", + "account.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", + "account.enable_notifications": "Notify me when @{name} posts", + "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", + "account.follow": "စောင့်ကြည့်မည်", + "account.followers": "Followers", + "account.followers.empty": "No one follows this user yet.", + "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", + "account.following": "စောင့်ကြည့်နေသည်", + "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", + "account.follows.empty": "This user doesn't follow anyone yet.", + "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", + "account.hide_reblogs": "Hide boosts from @{name}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", + "account.link_verified_on": "Ownership of this link was checked on {date}", + "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.media": "မီဒီယာ", + "account.mention": "Mention @{name}", + "account.moved_to": "{name} has indicated that their new account is now:", + "account.mute": "Mute @{name}", + "account.mute_notifications": "Mute notifications from @{name}", + "account.muted": "Muted", + "account.open_original_page": "Open original page", + "account.posts": "ပို့စ်များ", + "account.posts_with_replies": "Posts and replies", + "account.report": "Report @{name}", + "account.requested": "Awaiting approval. Click to cancel follow request", + "account.share": "Share @{name}'s profile", + "account.show_reblogs": "Show boosts from @{name}", + "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}", + "account.unblock": "Unblock @{name}", + "account.unblock_domain": "Unblock domain {domain}", + "account.unblock_short": "Unblock", + "account.unendorse": "Don't feature on profile", + "account.unfollow": "Unfollow", + "account.unmute": "Unmute @{name}", + "account.unmute_notifications": "Unmute notifications from @{name}", + "account.unmute_short": "Unmute", + "account_note.placeholder": "Click to add a note", + "admin.dashboard.daily_retention": "User retention rate by day after sign-up", + "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.retention.average": "Average", + "admin.dashboard.retention.cohort": "Sign-up month", + "admin.dashboard.retention.cohort_size": "New users", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", + "alert.unexpected.message": "An unexpected error occurred.", + "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", + "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", + "autosuggest_hashtag.per_week": "{count} per week", + "boost_modal.combo": "You can press {combo} to skip this next time", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", + "bundle_column_error.retry": "Try again", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Close", + "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "အကြောင်း", + "column.blocks": "Blocked users", + "column.bookmarks": "Bookmarks", + "column.community": "Local timeline", + "column.direct": "Direct messages", + "column.directory": "Browse profiles", + "column.domain_blocks": "Blocked domains", + "column.favourites": "Favourites", + "column.follow_requests": "Follow requests", + "column.home": "Home", + "column.lists": "Lists", + "column.mutes": "Muted users", + "column.notifications": "အသိပေးချက်များ", + "column.pins": "Pinned post", + "column.public": "Federated timeline", + "column_back_button.label": "Back", + "column_header.hide_settings": "Hide settings", + "column_header.moveLeft_settings": "Move column to the left", + "column_header.moveRight_settings": "Move column to the right", + "column_header.pin": "Pin", + "column_header.show_settings": "Show settings", + "column_header.unpin": "Unpin", + "column_subheading.settings": "ဆက်တင်များ", + "community.column_settings.local_only": "Local only", + "community.column_settings.media_only": "Media only", + "community.column_settings.remote_only": "Remote only", + "compose.language.change": "Change language", + "compose.language.search": "Search languages...", + "compose_form.direct_message_warning_learn_more": "Learn more", + "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", + "compose_form.lock_disclaimer.lock": "locked", + "compose_form.placeholder": "What is on your mind?", + "compose_form.poll.add_option": "Add a choice", + "compose_form.poll.duration": "Poll duration", + "compose_form.poll.option_placeholder": "Choice {number}", + "compose_form.poll.remove_option": "Remove this choice", + "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", + "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", + "compose_form.publish": "Publish", + "compose_form.publish_loud": "{publish}!", + "compose_form.save_changes": "Save changes", + "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", + "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}", + "compose_form.spoiler.marked": "Text is hidden behind warning", + "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.spoiler_placeholder": "Write your warning here", + "confirmation_modal.cancel": "Cancel", + "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.confirm": "Block", + "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.delete.confirm": "Delete", + "confirmations.delete.message": "Are you sure you want to delete this status?", + "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.discard_edit_media.confirm": "Discard", + "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.mute.confirm": "Mute", + "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", + "confirmations.mute.message": "Are you sure you want to mute {name}?", + "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", + "confirmations.reply.confirm": "စာပြန်မည်", + "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.unfollow.confirm": "Unfollow", + "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "conversation.delete": "Delete conversation", + "conversation.mark_as_read": "Mark as read", + "conversation.open": "View conversation", + "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "embed.instructions": "Embed this status on your website by copying the code below.", + "embed.preview": "Here is what it will look like:", + "emoji_button.activity": "Activity", + "emoji_button.clear": "Clear", + "emoji_button.custom": "Custom", + "emoji_button.flags": "Flags", + "emoji_button.food": "Food & Drink", + "emoji_button.label": "Insert emoji", + "emoji_button.nature": "Nature", + "emoji_button.not_found": "No matching emojis found", + "emoji_button.objects": "Objects", + "emoji_button.people": "People", + "emoji_button.recent": "Frequently used", + "emoji_button.search": "Search...", + "emoji_button.search_results": "Search results", + "emoji_button.symbols": "Symbols", + "emoji_button.travel": "Travel & Places", + "empty_column.account_suspended": "Account suspended", + "empty_column.account_timeline": "No posts found", + "empty_column.account_unavailable": "Profile unavailable", + "empty_column.blocks": "You haven't blocked any users yet.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", + "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.domain_blocks": "There are no blocked domains yet.", + "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.", + "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", + "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", + "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.hashtag": "There is nothing in this hashtag yet.", + "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.home.suggestions": "See some suggestions", + "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", + "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", + "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", + "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", + "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.", + "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", + "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", + "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", + "errors.unexpected_crash.report_issue": "Report issue", + "explore.search_results": "Search results", + "explore.suggested_follows": "For you", + "explore.title": "Explore", + "explore.trending_links": "သတင်းများ", + "explore.trending_statuses": "Posts", + "explore.trending_tags": "ဟက်ရှ်တက်များ", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", + "follow_recommendations.done": "Done", + "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", + "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", + "follow_request.authorize": "Authorize", + "follow_request.reject": "Reject", + "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", + "generic.saved": "Saved", + "getting_started.heading": "Getting started", + "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", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", + "home.column_settings.basic": "Basic", + "home.column_settings.show_reblogs": "Show boosts", + "home.column_settings.show_replies": "Show replies", + "home.hide_announcements": "Hide announcements", + "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", + "intervals.full.days": "{number, plural, one {# day} other {# days}}", + "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "keyboard_shortcuts.back": "to navigate back", + "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.boost": "to boost", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.down": "to move down in the list", + "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.favourite": "to favourite", + "keyboard_shortcuts.favourites": "to open favourites list", + "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.hotkey": "Hotkey", + "keyboard_shortcuts.legend": "to display this legend", + "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.mention": "to mention author", + "keyboard_shortcuts.muted": "to open muted users list", + "keyboard_shortcuts.my_profile": "to open your profile", + "keyboard_shortcuts.notifications": "to open notifications column", + "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.pinned": "to open pinned posts list", + "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.reply": "to reply", + "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.spoilers": "to show/hide CW field", + "keyboard_shortcuts.start": "to open \"get started\" column", + "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", + "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toot": "to start a brand new post", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "to move up in the list", + "lightbox.close": "Close", + "lightbox.compress": "Compress image view box", + "lightbox.expand": "Expand image view box", + "lightbox.next": "Next", + "lightbox.previous": "Previous", + "limited_account_hint.action": "Show profile anyway", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "lists.account.add": "Add to list", + "lists.account.remove": "Remove from list", + "lists.delete": "Delete list", + "lists.edit": "Edit list", + "lists.edit.submit": "Change title", + "lists.new.create": "Add list", + "lists.new.title_placeholder": "New list title", + "lists.replies_policy.followed": "Any followed user", + "lists.replies_policy.list": "Members of the list", + "lists.replies_policy.none": "No one", + "lists.replies_policy.title": "Show replies to:", + "lists.search": "Search among people you follow", + "lists.subheading": "Your lists", + "load_pending": "{count, plural, one {# new item} other {# new items}}", + "loading_indicator.label": "Loading...", + "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", + "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", + "mute_modal.duration": "Duration", + "mute_modal.hide_notifications": "Hide notifications from this user?", + "mute_modal.indefinite": "Indefinite", + "navigation_bar.about": "အကြောင်း", + "navigation_bar.blocks": "Blocked users", + "navigation_bar.bookmarks": "Bookmarks", + "navigation_bar.community_timeline": "Local timeline", + "navigation_bar.compose": "Compose new post", + "navigation_bar.direct": "Direct messages", + "navigation_bar.discover": "Discover", + "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်", + "navigation_bar.explore": "Explore", + "navigation_bar.favourites": "Favourites", + "navigation_bar.filters": "Muted words", + "navigation_bar.follow_requests": "Follow requests", + "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.lists": "Lists", + "navigation_bar.logout": "Logout", + "navigation_bar.mutes": "Muted users", + "navigation_bar.personal": "Personal", + "navigation_bar.pins": "Pinned posts", + "navigation_bar.preferences": "Preferences", + "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", + "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", + "notification.admin.sign_up": "{name} signed up", + "notification.favourite": "{name} favourited your status", + "notification.follow": "{name} followed you", + "notification.follow_request": "{name} has requested to follow you", + "notification.mention": "{name} mentioned you", + "notification.own_poll": "Your poll has ended", + "notification.poll": "A poll you have voted in has ended", + "notification.reblog": "{name} boosted your status", + "notification.status": "{name} just posted", + "notification.update": "{name} edited a post", + "notifications.clear": "Clear notifications", + "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", + "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.alert": "Desktop notifications", + "notifications.column_settings.favourite": "Favourites:", + "notifications.column_settings.filter_bar.advanced": "Display all categories", + "notifications.column_settings.filter_bar.category": "Quick filter bar", + "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.follow": "New followers:", + "notifications.column_settings.follow_request": "New follow requests:", + "notifications.column_settings.mention": "Mentions:", + "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.push": "Push notifications", + "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.show": "Show in column", + "notifications.column_settings.sound": "Play sound", + "notifications.column_settings.status": "New posts:", + "notifications.column_settings.unread_notifications.category": "Unread notifications", + "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.update": "Edits:", + "notifications.filter.all": "All", + "notifications.filter.boosts": "Boosts", + "notifications.filter.favourites": "Favourites", + "notifications.filter.follows": "Follows", + "notifications.filter.mentions": "Mentions", + "notifications.filter.polls": "Poll results", + "notifications.filter.statuses": "Updates from people you follow", + "notifications.grant_permission": "Grant permission.", + "notifications.group": "{count} notifications", + "notifications.mark_as_read": "Mark every notification as read", + "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", + "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", + "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", + "notifications_permission_banner.enable": "Enable desktop notifications", + "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.title": "Never miss a thing", + "picture_in_picture.restore": "Put it back", + "poll.closed": "Closed", + "poll.refresh": "Refresh", + "poll.total_people": "{count, plural, one {# person} other {# people}}", + "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", + "poll.vote": "Vote", + "poll.voted": "You voted for this answer", + "poll.votes": "{votes, plural, one {# vote} other {# votes}}", + "poll_button.add_poll": "Add a poll", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Adjust status privacy", + "privacy.direct.long": "Visible for mentioned users only", + "privacy.direct.short": "Direct", + "privacy.private.long": "Visible for followers only", + "privacy.private.short": "Followers-only", + "privacy.public.long": "Visible for all", + "privacy.public.short": "Public", + "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", + "refresh": "Refresh", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "relative_time.days": "{number}d", + "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", + "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", + "relative_time.full.just_now": "just now", + "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", + "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.hours": "{number}h", + "relative_time.just_now": "now", + "relative_time.minutes": "{number}m", + "relative_time.seconds": "{number}s", + "relative_time.today": "today", + "reply_indicator.cancel": "Cancel", + "report.block": "Block", + "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", + "report.categories.other": "Other", + "report.categories.spam": "Spam", + "report.categories.violation": "Content violates one or more server rules", + "report.category.subtitle": "Choose the best match", + "report.category.title": "Tell us what's going on with this {type}", + "report.category.title_account": "ကိုယ်ရေးမှတ်တမ်း", + "report.category.title_status": "post", + "report.close": "Done", + "report.comment.title": "Is there anything else you think we should know?", + "report.forward": "Forward to {target}", + "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", + "report.mute": "Mute", + "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", + "report.next": "Next", + "report.placeholder": "Type or paste additional comments", + "report.reasons.dislike": "I don't like it", + "report.reasons.dislike_description": "It is not something you want to see", + "report.reasons.other": "It's something else", + "report.reasons.other_description": "The issue does not fit into other categories", + "report.reasons.spam": "It's spam", + "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", + "report.reasons.violation": "It violates server rules", + "report.reasons.violation_description": "You are aware that it breaks specific rules", + "report.rules.subtitle": "Select all that apply", + "report.rules.title": "Which rules are being violated?", + "report.statuses.subtitle": "Select all that apply", + "report.statuses.title": "Are there any posts that back up this report?", + "report.submit": "Submit report", + "report.target": "Report {target}", + "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", + "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.title": "Don't want to see this?", + "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", + "report.unfollow": "Unfollow @{name}", + "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", + "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", + "search_popout.search_format": "Advanced search format", + "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.status": "status", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "user", + "search_results.accounts": "People", + "search_results.all": "All", + "search_results.hashtags": "ဟက်ရှ်တက်များ", + "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.statuses": "Posts", + "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", + "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "status.admin_account": "Open moderation interface for @{name}", + "status.admin_status": "Open this status in the moderation interface", + "status.block": "Block @{name}", + "status.bookmark": "Bookmark", + "status.cancel_reblog_private": "Unboost", + "status.cannot_reblog": "This post cannot be boosted", + "status.copy": "Copy link to status", + "status.delete": "Delete", + "status.detailed_status": "Detailed conversation view", + "status.direct": "Direct message @{name}", + "status.edit": "Edit", + "status.edited": "Edited {date}", + "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.embed": "Embed", + "status.favourite": "Favourite", + "status.filter": "Filter this post", + "status.filtered": "Filtered", + "status.hide": "Hide toot", + "status.history.created": "{name} created {date}", + "status.history.edited": "{name} edited {date}", + "status.load_more": "Load more", + "status.media_hidden": "Media hidden", + "status.mention": "Mention @{name}", + "status.more": "More", + "status.mute": "Mute @{name}", + "status.mute_conversation": "Mute conversation", + "status.open": "Expand this status", + "status.pin": "Pin on profile", + "status.pinned": "Pinned post", + "status.read_more": "Read more", + "status.reblog": "Boost", + "status.reblog_private": "Boost with original visibility", + "status.reblogged_by": "{name} boosted", + "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", + "status.redraft": "Delete & re-draft", + "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", + "status.reply": "Reply", + "status.replyAll": "Reply to thread", + "status.report": "Report @{name}", + "status.sensitive_warning": "Sensitive content", + "status.share": "Share", + "status.show_filter_reason": "Show anyway", + "status.show_less": "Show less", + "status.show_less_all": "Show less for all", + "status.show_more": "Show more", + "status.show_more_all": "Show more for all", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", + "status.uncached_media_warning": "Not available", + "status.unmute_conversation": "Unmute conversation", + "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", + "suggestions.dismiss": "Dismiss suggestion", + "suggestions.header": "You might be interested in…", + "tabs_bar.federated_timeline": "Federated", + "tabs_bar.home": "Home", + "tabs_bar.local_timeline": "Local", + "tabs_bar.notifications": "Notifications", + "time_remaining.days": "{number, plural, one {# day} other {# days}} left", + "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", + "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", + "time_remaining.moments": "Moments remaining", + "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", + "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", + "timeline_hint.resources.followers": "Followers", + "timeline_hint.resources.follows": "Follows", + "timeline_hint.resources.statuses": "Older posts", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "Trending now", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "units.short.billion": "{count}B", + "units.short.million": "{count}M", + "units.short.thousand": "{count}K", + "upload_area.title": "Drag & drop to upload", + "upload_button.label": "Add images, a video or an audio file", + "upload_error.limit": "File upload limit exceeded.", + "upload_error.poll": "File upload not allowed with polls.", + "upload_form.audio_description": "Describe for people with hearing loss", + "upload_form.description": "Describe for the visually impaired", + "upload_form.description_missing": "No description added", + "upload_form.edit": "Edit", + "upload_form.thumbnail": "Change thumbnail", + "upload_form.undo": "Delete", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", + "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.apply": "Apply", + "upload_modal.applying": "Applying…", + "upload_modal.choose_image": "Choose image", + "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.detect_text": "Detect text from picture", + "upload_modal.edit_media": "Edit media", + "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", + "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.preview_label": "Preview ({ratio})", + "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", + "video.close": "Close video", + "video.download": "Download file", + "video.exit_fullscreen": "Exit full screen", + "video.expand": "Expand video", + "video.fullscreen": "Full screen", + "video.hide": "Hide video", + "video.mute": "Mute sound", + "video.pause": "Pause", + "video.play": "Play", + "video.unmute": "Unmute sound" +} diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 3319f4bd7e7670..bdc13673d9c037 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -1,6 +1,18 @@ { + "about.blocks": "Gemodereerde servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is vrije, opensourcesoftware en een handelsmerk van Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reden niet beschikbaar", + "about.domain_blocks.preamble": "In het algemeen kun je met Mastodon berichten ontvangen van, en interactie hebben met gebruikers van elke server in de fediverse. Dit zijn de uitzonderingen die op deze specifieke server gelden.", + "about.domain_blocks.silenced.explanation": "In het algemeen zie je geen berichten en accounts van deze server, tenzij je berichten expliciet opzoekt of ervoor kiest om een account van deze server te volgen.", + "about.domain_blocks.silenced.title": "Beperkt", + "about.domain_blocks.suspended.explanation": "Er worden geen gegevens van deze server verwerkt, opgeslagen of uitgewisseld, wat interactie of communicatie met gebruikers van deze server onmogelijk maakt.", + "about.domain_blocks.suspended.title": "Opgeschort", + "about.not_available": "Deze informatie is door deze server niet openbaar gemaakt.", + "about.powered_by": "Gedecentraliseerde sociale media, mogelijk gemaakt door {mastodon}", + "about.rules": "Serverregels", "account.account_note_header": "Opmerking", - "account.add_or_remove_from_list": "Toevoegen of verwijderen vanuit lijsten", + "account.add_or_remove_from_list": "Toevoegen aan of verwijderen uit lijsten", "account.badges.bot": "Bot", "account.badges.group": "Groep", "account.block": "@{name} blokkeren", @@ -14,6 +26,9 @@ "account.edit_profile": "Profiel bewerken", "account.enable_notifications": "Geef een melding wanneer @{name} een bericht plaatst", "account.endorse": "Op profiel weergeven", + "account.featured_tags.last_status_at": "Laatste bericht op {date}", + "account.featured_tags.last_status_never": "Geen berichten", + "account.featured_tags.title": "Uitgelichte hashtags van {name}", "account.follow": "Volgen", "account.followers": "Volgers", "account.followers.empty": "Niemand volgt nog deze gebruiker.", @@ -22,8 +37,10 @@ "account.following_counter": "{count, plural, one {{counter} volgend} other {{counter} volgend}}", "account.follows.empty": "Deze gebruiker volgt nog niemand.", "account.follows_you": "Volgt jou", + "account.go_to_profile": "Ga naar profiel", "account.hide_reblogs": "Boosts van @{name} verbergen", - "account.joined": "Geregistreerd in {date}", + "account.joined_short": "Geregistreerd op", + "account.languages": "Getoonde talen wijzigen", "account.link_verified_on": "Eigendom van deze link is gecontroleerd op {date}", "account.locked_info": "De privacystatus van dit account is op besloten gezet. De eigenaar bepaalt handmatig wie diegene kan volgen.", "account.media": "Media", @@ -32,6 +49,7 @@ "account.mute": "@{name} negeren", "account.mute_notifications": "Meldingen van @{name} negeren", "account.muted": "Genegeerd", + "account.open_original_page": "Originele pagina openen", "account.posts": "Berichten", "account.posts_with_replies": "Berichten en reacties", "account.report": "@{name} rapporteren", @@ -48,10 +66,10 @@ "account.unmute_notifications": "Meldingen van @{name} niet langer negeren", "account.unmute_short": "Niet langer negeren", "account_note.placeholder": "Klik om een opmerking toe te voegen", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.daily_retention": "Retentiegraad van gebruikers per dag, vanaf registratie", + "admin.dashboard.monthly_retention": "Retentiegraad van gebruikers per maand, vanaf registratie", "admin.dashboard.retention.average": "Gemiddelde", - "admin.dashboard.retention.cohort": "Aanmeldingsmaand", + "admin.dashboard.retention.cohort": "Maand van registratie", "admin.dashboard.retention.cohort_size": "Nieuwe gebruikers", "alert.rate_limited.message": "Probeer het nog een keer na {retry_time, time, medium}.", "alert.rate_limited.title": "Beperkt te gebruiken", @@ -59,18 +77,31 @@ "alert.unexpected.title": "Oeps!", "announcement.announcement": "Mededeling", "attachments_list.unprocessed": "(niet verwerkt)", + "audio.hide": "Audio verbergen", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan", - "bundle_column_error.body": "Tijdens het laden van dit onderdeel is er iets fout gegaan.", + "bundle_column_error.copy_stacktrace": "Foutrapportage kopiëren", + "bundle_column_error.error.body": "De opgevraagde pagina kon niet worden aangemaakt. Dit kan het gevolg zijn van onze broncode of van een verouderde webbrowser.", + "bundle_column_error.error.title": "Oh nee!", + "bundle_column_error.network.body": "Er is een fout opgetreden tijdens het laden van deze pagina. Dit kan veroorzaakt zijn door een tijdelijk probleem met je internetverbinding of met deze server.", + "bundle_column_error.network.title": "Netwerkfout", "bundle_column_error.retry": "Opnieuw proberen", - "bundle_column_error.title": "Netwerkfout", + "bundle_column_error.return": "Terug naar start", + "bundle_column_error.routing.body": "De opgevraagde pagina kon niet worden gevonden. Weet je zeker dat de URL in de adresbalk de juiste is?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Sluiten", "bundle_modal_error.message": "Tijdens het laden van dit onderdeel is er iets fout gegaan.", "bundle_modal_error.retry": "Opnieuw proberen", + "closed_registrations.other_server_instructions": "Omdat Mastodon gedecentraliseerd is, kun je op een andere server een account registreren en vanaf daar nog steeds met deze server communiceren.", + "closed_registrations_modal.description": "Momenteel is het niet mogelijk om op {domain} een account aan te maken. Hou echter in gedachte dat om Mastodon te kunnen gebruiken het niet een vereiste is om op {domain} een account te hebben.", + "closed_registrations_modal.find_another_server": "Een andere server zoeken", + "closed_registrations_modal.preamble": "Mastodon is gedecentraliseerd. Op welke server je ook een account hebt, je kunt overal vandaan mensen op deze server volgen en er mee interactie hebben. Je kunt zelfs zelf een Mastodon-server hosten!", + "closed_registrations_modal.title": "Registreren op Mastodon", + "column.about": "Over", "column.blocks": "Geblokkeerde gebruikers", "column.bookmarks": "Bladwijzers", "column.community": "Lokale tijdlijn", - "column.direct": "Direct messages", + "column.direct": "Directe berichten", "column.directory": "Gebruikersgids", "column.domain_blocks": "Geblokkeerde domeinen", "column.favourites": "Favorieten", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Alleen lokaal", "community.column_settings.media_only": "Alleen media", "community.column_settings.remote_only": "Alleen andere servers", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Taal veranderen", + "compose.language.search": "Talen zoeken...", "compose_form.direct_message_warning_learn_more": "Meer leren", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Berichten op Mastodon worden, net zoals op andere social media, niet end-to-end versleuteld. Deel daarom geen gevoelige informatie via Mastodon.", "compose_form.hashtag_warning": "Dit bericht valt niet onder een hashtag te bekijken, omdat deze niet op openbare tijdlijnen wordt getoond. Alleen openbare berichten kunnen via hashtags gevonden worden.", "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de berichten zien die je alleen aan jouw volgers hebt gericht.", "compose_form.lock_disclaimer.lock": "besloten", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Deze keuze verwijderen", "compose_form.poll.switch_to_multiple": "Poll wijzigen om meerdere keuzes toe te staan", "compose_form.poll.switch_to_single": "Poll wijzigen om een enkele keuze toe te staan", - "compose_form.publish": "Toot", + "compose_form.publish": "Toot!", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Wijzigingen opslaan", "compose_form.sensitive.hide": "{count, plural, one {Media als gevoelig markeren} other {Media als gevoelig markeren}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blokkeren en rapporteren", "confirmations.block.confirm": "Blokkeren", "confirmations.block.message": "Weet je het zeker dat je {name} wilt blokkeren?", + "confirmations.cancel_follow_request.confirm": "Verzoek annuleren", + "confirmations.cancel_follow_request.message": "Weet je zeker dat je jouw verzoek om {name} te volgen wilt annuleren?", "confirmations.delete.confirm": "Verwijderen", "confirmations.delete.message": "Weet je het zeker dat je dit bericht wilt verwijderen?", "confirmations.delete_list.confirm": "Verwijderen", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Als gelezen markeren", "conversation.open": "Gesprek tonen", "conversation.with": "Met {names}", + "copypaste.copied": "Gekopieerd", + "copypaste.copy": "Kopiëren", "directory.federated": "Fediverse (wat bekend is)", "directory.local": "Alleen {domain}", "directory.new_arrivals": "Nieuwe accounts", "directory.recently_active": "Onlangs actief", + "disabled_account_banner.account_settings": "Accountinstellingen", + "disabled_account_banner.text": "Jouw account {disabledAccount} is momenteel uitgeschakeld.", + "dismissable_banner.community_timeline": "Dit zijn de meest recente openbare berichten van accounts op {domain}. Je kunt onder 'instellingen > voorkeuren > overig' kiezen welke talen je wilt zien.", + "dismissable_banner.dismiss": "Sluiten", + "dismissable_banner.explore_links": "Deze nieuwsberichten winnen aan populariteit op deze en andere servers binnen het decentrale netwerk.", + "dismissable_banner.explore_statuses": "Deze berichten winnen aan populariteit op deze en andere servers binnen het decentrale netwerk.", + "dismissable_banner.explore_tags": "Deze hashtags winnen aan populariteit op deze en andere servers binnen het decentrale netwerk.", + "dismissable_banner.public_timeline": "Dit zijn de meest recente openbare berichten van accounts op deze en andere servers binnen het decentrale netwerk. Je kunt onder 'instellingen > voorkeuren > overig' kiezen welke talen je wilt zien.", "embed.instructions": "Embed dit bericht op jouw website door de onderstaande code te kopiëren.", "embed.preview": "Zo komt het eruit te zien:", "emoji_button.activity": "Activiteiten", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Leegmaken", "emoji_button.custom": "Lokale emoji’s", "emoji_button.flags": "Vlaggen", "emoji_button.food": "Eten en drinken", @@ -169,11 +212,11 @@ "empty_column.blocks": "Jij hebt nog geen enkele gebruiker geblokkeerd.", "empty_column.bookmarked_statuses": "Jij hebt nog geen berichten aan je bladwijzers toegevoegd. Wanneer je er een aan jouw bladwijzers toevoegt, valt deze hier te zien.", "empty_column.community": "De lokale tijdlijn is nog leeg. Plaats een openbaar bericht om de spits af te bijten!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "Je hebt nog geen directe berichten. Wanneer je er een verzend of ontvangt, komt deze hier te staan.", "empty_column.domain_blocks": "Er zijn nog geen geblokkeerde domeinen.", "empty_column.explore_statuses": "Momenteel zijn er geen trends. Kom later terug!", - "empty_column.favourited_statuses": "Jij hebt nog geen favoriete berichten. Wanneer je er een aan jouw favorieten toevoegt, valt deze hier te zien.", - "empty_column.favourites": "Niemand heeft dit bericht nog aan diens favorieten toegevoegd. Wanneer iemand dit doet, valt dat hier te zien.", + "empty_column.favourited_statuses": "Jij hebt nog geen favoriete berichten. Wanneer je een bericht als favoriet markeert, valt deze hier te zien.", + "empty_column.favourites": "Niemand heeft dit bericht nog als favoriet gemarkeerd. Wanneer iemand dit doet, valt dat hier te zien.", "empty_column.follow_recommendations": "Het lijkt er op dat er geen aanbevelingen voor jou aangemaakt kunnen worden. Je kunt proberen te zoeken naar mensen die je wellicht kent, zoeken op hashtags, de lokale en globale tijdlijnen bekijken of de gebruikersgids doorbladeren.", "empty_column.follow_requests": "Jij hebt nog enkel volgverzoek ontvangen. Wanneer je er eentje ontvangt, valt dat hier te zien.", "empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.", @@ -196,21 +239,37 @@ "explore.trending_links": "Nieuws", "explore.trending_statuses": "Berichten", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Deze filtercategorie is niet van toepassing op de context waarin je dit bericht hebt benaderd. Als je wilt dat het bericht ook in deze context wordt gefilterd, moet je het filter bewerken.", + "filter_modal.added.context_mismatch_title": "Context komt niet overeen!", + "filter_modal.added.expired_explanation": "Deze filtercategorie is verlopen. Je moet de vervaldatum wijzigen om de categorie toe te kunnen passen.", + "filter_modal.added.expired_title": "Filter verlopen!", + "filter_modal.added.review_and_configure": "Ga naar {settings_link} om deze filtercategorie opnieuw te bekijken en verder te configureren.", + "filter_modal.added.review_and_configure_title": "Filterinstellingen", + "filter_modal.added.settings_link": "instellingspagina", + "filter_modal.added.short_explanation": "Dit bericht is toegevoegd aan de volgende filtercategorie: {title}.", + "filter_modal.added.title": "Filter toegevoegd!", + "filter_modal.select_filter.context_mismatch": "is niet van toepassing op deze context", + "filter_modal.select_filter.expired": "verlopen", + "filter_modal.select_filter.prompt_new": "Nieuwe categorie: {name}", + "filter_modal.select_filter.search": "Zoeken of toevoegen", + "filter_modal.select_filter.subtitle": "Een bestaande categorie gebruiken of een nieuwe aanmaken", + "filter_modal.select_filter.title": "Dit bericht filteren", + "filter_modal.title.status": "Een bericht filteren", "follow_recommendations.done": "Klaar", "follow_recommendations.heading": "Volg mensen waarvan je graag berichten wil zien! Hier zijn enkele aanbevelingen.", - "follow_recommendations.lead": "Berichten van mensen die je volgt zullen in chronologische volgorde onder start verschijnen. Wees niet bang om hierin fouten te maken, want je kunt mensen op elk moment net zo eenvoudig ontvolgen!", + "follow_recommendations.lead": "Berichten van mensen die je volgt zullen in chronologische volgorde op jouw starttijdlijn verschijnen. Wees niet bang om hierin fouten te maken, want je kunt mensen op elk moment net zo eenvoudig ontvolgen!", "follow_request.authorize": "Goedkeuren", - "follow_request.reject": "Afkeuren", + "follow_request.reject": "Afwijzen", "follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.", + "footer.about": "Over", + "footer.directory": "Gebruikersgids", + "footer.get_app": "App downloaden", + "footer.invite": "Mensen uitnodigen", + "footer.keyboard_shortcuts": "Sneltoetsen", + "footer.privacy_policy": "Privacybeleid", + "footer.source_code": "Broncode bekijken", "generic.saved": "Opgeslagen", - "getting_started.developers": "Ontwikkelaars", - "getting_started.directory": "Gebruikersgids", - "getting_started.documentation": "Documentatie", "getting_started.heading": "Aan de slag", - "getting_started.invite": "Mensen uitnodigen", - "getting_started.open_source_notice": "Mastodon is vrije software. Je kunt bijdragen of problemen melden op GitHub via {github}.", - "getting_started.security": "Accountinstellingen", - "getting_started.terms": "Voorwaarden", "hashtag.column_header.tag_mode.all": "en {additional}", "hashtag.column_header.tag_mode.any": "of {additional}", "hashtag.column_header.tag_mode.none": "zonder {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Een van deze", "hashtag.column_settings.tag_mode.none": "Geen van deze", "hashtag.column_settings.tag_toggle": "Additionele tags aan deze kolom toevoegen", + "hashtag.follow": "Hashtag volgen", + "hashtag.unfollow": "Hashtag ontvolgen", "home.column_settings.basic": "Algemeen", "home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_replies": "Reacties tonen", "home.hide_announcements": "Mededelingen verbergen", "home.show_announcements": "Mededelingen tonen", + "interaction_modal.description.favourite": "Je kunt met een Mastodon-account dit bericht als favoriet markeren, om die gebruiker te laten weten dat je het bericht waardeert en om het op te slaan.", + "interaction_modal.description.follow": "Je kunt met een Mastodon-account {name} volgen, om zo diens berichten op jouw starttijdlijn te ontvangen.", + "interaction_modal.description.reblog": "Je kunt met een Mastodon-account dit bericht boosten, om het zo met jouw volgers te delen.", + "interaction_modal.description.reply": "Je kunt met een Mastodon-account op dit bericht reageren.", + "interaction_modal.on_another_server": "Op een andere server", + "interaction_modal.on_this_server": "Op deze server", + "interaction_modal.other_server_instructions": "Kopieer en plak eenvoudig deze URL in het zoekveld van de door jou gebruikte Mastodon-app of op de website van de Mastodon-server waarop je bent ingelogd.", + "interaction_modal.preamble": "Mastodon is gedecentraliseerd. Daarom heb je geen account op deze Mastodon-server nodig, wanneer je al een account op een andere Mastodon-server of compatibel platform hebt.", + "interaction_modal.title.favourite": "Bericht van {name} als favoriet markeren", + "interaction_modal.title.follow": "{name} volgen", + "interaction_modal.title.reblog": "Bericht van {name} boosten", + "interaction_modal.title.reply": "Op het bericht van {name} reageren", "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}", "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}", "intervals.full.minutes": "{number, plural, one {# minuut} other {# minuten}}", @@ -234,18 +307,18 @@ "keyboard_shortcuts.column": "Op één van de kolommen focussen", "keyboard_shortcuts.compose": "Tekstveld om een bericht te schrijven focussen", "keyboard_shortcuts.description": "Omschrijving", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "Directe berichten tonen", "keyboard_shortcuts.down": "Naar beneden in de lijst bewegen", "keyboard_shortcuts.enter": "Volledig bericht tonen", - "keyboard_shortcuts.favourite": "Aan jouw favorieten toevoegen", + "keyboard_shortcuts.favourite": "Als favoriet markeren", "keyboard_shortcuts.favourites": "Favorieten tonen", "keyboard_shortcuts.federated": "Globale tijdlijn tonen", "keyboard_shortcuts.heading": "Sneltoetsen", - "keyboard_shortcuts.home": "Start tonen", + "keyboard_shortcuts.home": "Starttijdlijn tonen", "keyboard_shortcuts.hotkey": "Sneltoets", "keyboard_shortcuts.legend": "Deze legenda tonen", "keyboard_shortcuts.local": "Lokale tijdlijn tonen", - "keyboard_shortcuts.mention": "Auteur vermelden", + "keyboard_shortcuts.mention": "Account vermelden", "keyboard_shortcuts.muted": "Genegeerde gebruikers tonen", "keyboard_shortcuts.my_profile": "Jouw profiel tonen", "keyboard_shortcuts.notifications": "Meldingen tonen", @@ -267,8 +340,8 @@ "lightbox.expand": "Afbeelding groot weergeven", "lightbox.next": "Volgende", "lightbox.previous": "Vorige", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Alsnog het profiel tonen", + "limited_account_hint.title": "Dit profiel is door de moderatoren van {domain} verborgen.", "lists.account.add": "Aan lijst toevoegen", "lists.account.remove": "Uit lijst verwijderen", "lists.delete": "Lijst verwijderen", @@ -287,15 +360,16 @@ "media_gallery.toggle_visible": "{number, plural, one {afbeelding verbergen} other {afbeeldingen verbergen}}", "missing_indicator.label": "Niet gevonden", "missing_indicator.sublabel": "Deze hulpbron kan niet gevonden worden", + "moved_to_account_banner.text": "Omdat je naar {movedToAccount} bent verhuisd is jouw account {disabledAccount} momenteel uitgeschakeld.", "mute_modal.duration": "Duur", "mute_modal.hide_notifications": "Verberg meldingen van deze persoon?", "mute_modal.indefinite": "Voor onbepaalde tijd", - "navigation_bar.apps": "Mobiele apps", + "navigation_bar.about": "Over", "navigation_bar.blocks": "Geblokkeerde gebruikers", "navigation_bar.bookmarks": "Bladwijzers", "navigation_bar.community_timeline": "Lokale tijdlijn", "navigation_bar.compose": "Nieuw bericht schrijven", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Directe berichten", "navigation_bar.discover": "Ontdekken", "navigation_bar.domain_blocks": "Geblokkeerde domeinen", "navigation_bar.edit_profile": "Profiel bewerken", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Filters", "navigation_bar.follow_requests": "Volgverzoeken", "navigation_bar.follows_and_followers": "Volgers en gevolgden", - "navigation_bar.info": "Over deze server", - "navigation_bar.keyboard_shortcuts": "Sneltoetsen", "navigation_bar.lists": "Lijsten", "navigation_bar.logout": "Uitloggen", "navigation_bar.mutes": "Genegeerde gebruikers", @@ -313,9 +385,12 @@ "navigation_bar.pins": "Vastgemaakte berichten", "navigation_bar.preferences": "Instellingen", "navigation_bar.public_timeline": "Globale tijdlijn", + "navigation_bar.search": "Zoeken", "navigation_bar.security": "Beveiliging", - "notification.admin.sign_up": "{name} heeft zich aangemeld", - "notification.favourite": "{name} voegde jouw bericht als favoriet toe", + "not_signed_in_indicator.not_signed_in": "Je moet inloggen om toegang tot deze informatie te krijgen.", + "notification.admin.report": "{name} heeft {target} geapporteerd", + "notification.admin.sign_up": "{name} heeft zich geregistreerd", + "notification.favourite": "{name} markeerde jouw bericht als favoriet", "notification.follow": "{name} volgt jou nu", "notification.follow_request": "{name} wil jou graag volgen", "notification.mention": "{name} vermeldde jou", @@ -326,7 +401,8 @@ "notification.update": "{name} heeft een bericht bewerkt", "notifications.clear": "Meldingen verwijderen", "notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?", - "notifications.column_settings.admin.sign_up": "Nieuwe aanmeldingen:", + "notifications.column_settings.admin.report": "Nieuwe rapportages:", + "notifications.column_settings.admin.sign_up": "Nieuwe registraties:", "notifications.column_settings.alert": "Desktopmeldingen", "notifications.column_settings.favourite": "Favorieten:", "notifications.column_settings.filter_bar.advanced": "Alle categorieën tonen", @@ -358,7 +434,7 @@ "notifications.permission_denied_alert": "Desktopmeldingen kunnen niet worden ingeschakeld, omdat een eerdere browsertoestemming werd geweigerd", "notifications.permission_required": "Desktopmeldingen zijn niet beschikbaar omdat de benodigde toestemming niet is verleend.", "notifications_permission_banner.enable": "Desktopmeldingen inschakelen", - "notifications_permission_banner.how_to_control": "Om meldingen te ontvangen wanneer Mastodon niet open is. Je kunt precies bepalen welke soort interacties wel of geen desktopmeldingen geven via de bovenstaande {icon} knop.", + "notifications_permission_banner.how_to_control": "Om meldingen te ontvangen wanneer Mastodon niet open staat. Je kunt precies bepalen welke soort interacties wel of geen desktopmeldingen geven via de bovenstaande {icon} knop.", "notifications_permission_banner.title": "Mis nooit meer iets", "picture_in_picture.restore": "Terugzetten", "poll.closed": "Gesloten", @@ -372,16 +448,18 @@ "poll_button.remove_poll": "Poll verwijderen", "privacy.change": "Zichtbaarheid van bericht aanpassen", "privacy.direct.long": "Alleen aan vermelde gebruikers tonen", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Direct bericht", "privacy.private.long": "Alleen aan volgers tonen", "privacy.private.short": "Alleen volgers", "privacy.public.long": "Voor iedereen zichtbaar", "privacy.public.short": "Openbaar", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen", "privacy.unlisted.short": "Minder openbaar", + "privacy_policy.last_updated": "Laatst bijgewerkt op {date}", + "privacy_policy.title": "Privacybeleid", "refresh": "Vernieuwen", "regeneration_indicator.label": "Aan het laden…", - "regeneration_indicator.sublabel": "Jouw tijdlijn wordt aangemaakt!", + "regeneration_indicator.sublabel": "Jouw starttijdlijn wordt aangemaakt!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# dag} other {# dagen}} geleden", "relative_time.full.hours": "{number, plural, one {# uur} other {# uur}} geleden", @@ -399,7 +477,7 @@ "report.categories.other": "Overig", "report.categories.spam": "Spam", "report.categories.violation": "De inhoud overtreedt een of meerdere serverregels", - "report.category.subtitle": "Kies wat het meeste overeenkomt", + "report.category.subtitle": "Kies wat het beste overeenkomt", "report.category.title": "Vertel ons wat er met dit {type} aan de hand is", "report.category.title_account": "profiel", "report.category.title_status": "bericht", @@ -426,12 +504,18 @@ "report.submit": "Verzenden", "report.target": "{target} rapporteren", "report.thanks.take_action": "Hier zijn jouw opties waarmee je kunt bepalen wat je in Mastodon wilt zien:", - "report.thanks.take_action_actionable": "Terwijl wij jouw rapportage beroordelen, kun je deze acties ondernemen tegen @{name}:", + "report.thanks.take_action_actionable": "Terwijl wij jouw rapportage beoordelen, kun je deze maatregelen tegen @{name} nemen:", "report.thanks.title": "Wil je dit niet zien?", "report.thanks.title_actionable": "Dank je voor het rapporteren. Wij gaan er naar kijken.", "report.unfollow": "@{name} ontvolgen", "report.unfollow_explanation": "Je volgt dit account. Om diens berichten niet meer op jouw starttijdlijn te zien, kun je diegene ontvolgen.", + "report_notification.attached_statuses": "{count, plural, one {{count} bericht} other {{count} berichten}} toegevoegd", + "report_notification.categories.other": "Overig", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Overtreden regel(s)", + "report_notification.open": "Rapportage openen", "search.placeholder": "Zoeken", + "search.search_or_paste": "Zoek of voer een URL in", "search_popout.search_format": "Geavanceerd zoeken", "search_popout.tips.full_text": "Gebruik gewone tekst om te zoeken in jouw berichten, gebooste berichten, favorieten en in berichten waarin je bent vermeldt, en tevens naar gebruikersnamen, weergavenamen en hashtags.", "search_popout.tips.hashtag": "hashtag", @@ -444,9 +528,19 @@ "search_results.nothing_found": "Deze zoektermen leveren geen resultaat op", "search_results.statuses": "Berichten", "search_results.statuses_fts_disabled": "Het zoeken in berichten is op deze Mastodon-server niet ingeschakeld.", + "search_results.title": "Naar {q} zoeken", "search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}", + "server_banner.about_active_users": "Aantal gebruikers tijdens de afgelopen 30 dagen (MAU)", + "server_banner.active_users": "actieve gebruikers", + "server_banner.administered_by": "Beheerd door:", + "server_banner.introduction": "{domain} is onderdeel van het gedecentraliseerde sociale netwerk {mastodon}.", + "server_banner.learn_more": "Meer leren", + "server_banner.server_stats": "Serverstats:", + "sign_in_banner.create_account": "Registreren", + "sign_in_banner.sign_in": "Inloggen", + "sign_in_banner.text": "Wanneer je een account op deze server hebt, kun je inloggen om mensen of hashtags te volgen, op berichten te reageren of om deze te delen. Wanneer je een account op een andere server hebt, kun je daar inloggen en daar interactie met mensen op deze server hebben.", "status.admin_account": "Moderatie-omgeving van @{name} openen", - "status.admin_status": "Dit bericht in de moderatie-omgeving openen", + "status.admin_status": "Dit bericht in de moderatie-omgeving tonen", "status.block": "@{name} blokkeren", "status.bookmark": "Bladwijzer toevoegen", "status.cancel_reblog_private": "Niet langer boosten", @@ -460,7 +554,9 @@ "status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt", "status.embed": "Insluiten", "status.favourite": "Favoriet", + "status.filter": "Dit bericht filteren", "status.filtered": "Gefilterd", + "status.hide": "Bericht verbergen", "status.history.created": "{name} plaatste dit {date}", "status.history.edited": "{name} bewerkte dit {date}", "status.load_more": "Meer laden", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.", "status.redraft": "Verwijderen en herschrijven", "status.remove_bookmark": "Bladwijzer verwijderen", + "status.replied_to": "Reageerde op {name}", "status.reply": "Reageren", "status.replyAll": "Reageer op iedereen", "status.report": "@{name} rapporteren", "status.sensitive_warning": "Gevoelige inhoud", "status.share": "Delen", + "status.show_filter_reason": "Alsnog tonen", "status.show_less": "Minder tonen", "status.show_less_all": "Alles minder tonen", "status.show_more": "Meer tonen", "status.show_more_all": "Alles meer tonen", - "status.show_thread": "Gesprek tonen", + "status.show_original": "Origineel bekijken", + "status.translate": "Vertalen", + "status.translated_from_with": "Vertaald vanuit het {lang} met behulp van {provider}", "status.uncached_media_warning": "Niet beschikbaar", "status.unmute_conversation": "Gesprek niet langer negeren", "status.unpin": "Van profielpagina losmaken", + "subscribed_languages.lead": "Na de wijziging worden alleen berichten van geselecteerde talen op jouw starttijdlijn en in lijsten weergegeven.", + "subscribed_languages.save": "Wijzigingen opslaan", + "subscribed_languages.target": "Getoonde talen voor {target} wijzigen", "suggestions.dismiss": "Aanbeveling verwerpen", "suggestions.header": "Je bent waarschijnlijk ook geïnteresseerd in…", "tabs_bar.federated_timeline": "Globaal", "tabs_bar.home": "Start", "tabs_bar.local_timeline": "Lokaal", "tabs_bar.notifications": "Meldingen", - "tabs_bar.search": "Zoeken", "time_remaining.days": "{number, plural, one {# dag} other {# dagen}} te gaan", "time_remaining.hours": "{number, plural, one {# uur} other {# uur}} te gaan", "time_remaining.minutes": "{number, plural, one {# minuut} other {# minuten}} te gaan", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Volgers", "timeline_hint.resources.follows": "Volgend", "timeline_hint.resources.statuses": "Oudere berichten", - "trends.counter_by_accounts": "{count, plural, one {{counter} persoon} other {{counter} personen}} zijn aan het praten", + "trends.counter_by_accounts": "{count, plural, one {{counter} persoon} other {{counter} mensen}} {days, plural, one {in het afgelopen etmaal} other {in de afgelopen {days} dagen}}", "trends.trending_now": "Huidige trends", "ui.beforeunload": "Je concept gaat verloren wanneer je Mastodon verlaat.", "units.short.billion": "{count} mrd.", @@ -532,10 +634,11 @@ "upload_modal.description_placeholder": "Pa's wijze lynx bezag vroom het fikse aquaduct", "upload_modal.detect_text": "Tekst in een afbeelding detecteren", "upload_modal.edit_media": "Media bewerken", - "upload_modal.hint": "Klik of sleep de cirkel in de voorvertoning naar een centraal punt dat op elke thumbnail zichtbaar moet blijven.", + "upload_modal.hint": "Klik of sleep de cirkel in de voorvertoning naar een centraal focuspunt dat op elke thumbnail zichtbaar moet blijven.", "upload_modal.preparing_ocr": "OCR voorbereiden…", "upload_modal.preview_label": "Voorvertoning ({ratio})", "upload_progress.label": "Uploaden...", + "upload_progress.processing": "Bezig…", "video.close": "Video sluiten", "video.download": "Bestand downloaden", "video.exit_fullscreen": "Volledig scherm sluiten", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 24a4e98b71ce98..6113e32d063f38 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -1,78 +1,109 @@ { + "about.blocks": "Modererte tenarar", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon er gratis programvare med open kjeldekode, og eit varemerke frå Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Årsaka er ikkje tilgjengeleg", + "about.domain_blocks.preamble": "Mastodon gjev deg som regel lov til å sjå innhald og samhandla med brukarar frå alle andre tenarar i allheimen. Dette er unntaka som er valde for akkurat denne tenaren.", + "about.domain_blocks.silenced.explanation": "Med mindre du leiter den opp eller fylgjer profiler på tenaren, vil du vanlegvis ikkje sjå profilar og innhald frå denne tenaren.", + "about.domain_blocks.silenced.title": "Avgrensa", + "about.domain_blocks.suspended.explanation": "Ingen data frå denne tenaren vert handsama, lagra eller sende til andre, noko som gjer det umogeleg å samhandla eller kommunisera med brukarar på denne tenaren.", + "about.domain_blocks.suspended.title": "Utestengd", + "about.not_available": "Denne informasjonen er ikkje gjort tilgjengeleg på denne tenaren.", + "about.powered_by": "Desentraliserte sosiale medium drive av {mastodon}", + "about.rules": "Tenarreglar", "account.account_note_header": "Merknad", - "account.add_or_remove_from_list": "Legg til eller tak vekk frå listene", + "account.add_or_remove_from_list": "Legg til eller fjern frå lister", "account.badges.bot": "Robot", "account.badges.group": "Gruppe", "account.block": "Blokker @{name}", "account.block_domain": "Skjul alt frå {domain}", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Sjå gjennom meir på den opphavlege profilen", - "account.cancel_follow_request": "Fjern fylgjeførespurnad", + "account.cancel_follow_request": "Trekk attende fylgeførespurnad", "account.direct": "Send melding til @{name}", - "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", - "account.domain_blocked": "Domenet er gøymt", + "account.disable_notifications": "Slutt å varsle meg når @{name} skriv innlegg", + "account.domain_blocked": "Domenet er sperra", "account.edit_profile": "Rediger profil", - "account.enable_notifications": "Varsle meg når @{name} legger ut innlegg", - "account.endorse": "Framhev på profil", + "account.enable_notifications": "Varsle meg når @{name} skriv innlegg", + "account.endorse": "Vis på profilen", + "account.featured_tags.last_status_at": "Sist nytta {date}", + "account.featured_tags.last_status_never": "Ingen innlegg", + "account.featured_tags.title": "{name} sine framheva emneknaggar", "account.follow": "Fylg", "account.followers": "Fylgjarar", "account.followers.empty": "Ingen fylgjer denne brukaren enno.", "account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}", - "account.following": "Følger", + "account.following": "Fylgjer", "account.following_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjar}}", "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.", "account.follows_you": "Fylgjer deg", - "account.hide_reblogs": "Gøym fremhevingar frå @{name}", - "account.joined": "Vart med {date}", + "account.go_to_profile": "Gå til profil", + "account.hide_reblogs": "Skjul framhevingar frå @{name}", + "account.joined_short": "Vart med", + "account.languages": "Endre språktingingar", "account.link_verified_on": "Eigarskap for denne lenkja vart sist sjekka {date}", "account.locked_info": "Denne kontoen er privat. Eigaren kan sjølv velja kven som kan fylgja han.", "account.media": "Media", "account.mention": "Nemn @{name}", - "account.moved_to": "{name} har flytta til:", + "account.moved_to": "{name} seier at deira nye konto no er:", "account.mute": "Målbind @{name}", "account.mute_notifications": "Målbind varsel frå @{name}", "account.muted": "Målbunden", + "account.open_original_page": "Opne originalsida", "account.posts": "Tut", "account.posts_with_replies": "Tut og svar", "account.report": "Rapporter @{name}", - "account.requested": "Ventar på samtykke. Klikk for å avbryta fylgjeførespurnaden", + "account.requested": "Ventar på aksept. Klikk for å avbryta fylgjeførespurnaden", "account.share": "Del @{name} sin profil", "account.show_reblogs": "Vis framhevingar frå @{name}", "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tut}}", - "account.unblock": "Slutt å blokera @{name}", - "account.unblock_domain": "Vis {domain}", - "account.unblock_short": "Opphev blokkering", - "account.unendorse": "Ikkje framhev på profil", + "account.unblock": "Stopp blokkering av @{name}", + "account.unblock_domain": "Stopp blokkering av domenet {domain}", + "account.unblock_short": "Stopp blokkering", + "account.unendorse": "Ikkje vis på profil", "account.unfollow": "Slutt å fylgja", - "account.unmute": "Av-demp @{name}", + "account.unmute": "Opphev målbinding av @{name}", "account.unmute_notifications": "Vis varsel frå @{name}", - "account.unmute_short": "Opphev demping", + "account.unmute_short": "Opphev målbinding", "account_note.placeholder": "Klikk for å leggja til merknad", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.daily_retention": "Mengda brukarar aktive ved dagar etter registrering", + "admin.dashboard.monthly_retention": "Mengda brukarar aktive ved månader etter registrering", "admin.dashboard.retention.average": "Gjennomsnitt", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "Nye brukere", - "alert.rate_limited.message": "Ver venleg å prøva igjen etter {retry_time, time, medium}.", - "alert.rate_limited.title": "Begrensa rate", - "alert.unexpected.message": "Eit uventa problem oppstod.", + "admin.dashboard.retention.cohort": "Registrert månad", + "admin.dashboard.retention.cohort_size": "Nye brukarar", + "alert.rate_limited.message": "Ver venleg å prøv på nytt etter {retry_time, time, medium}.", + "alert.rate_limited.title": "Redusert kapasitet", + "alert.unexpected.message": "Det oppstod eit uventa problem.", "alert.unexpected.title": "Oi sann!", "announcement.announcement": "Kunngjering", - "attachments_list.unprocessed": "(unprocessed)", + "attachments_list.unprocessed": "(ubehandla)", + "audio.hide": "Gøym lyd", "autosuggest_hashtag.per_week": "{count} per veke", "boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong", - "bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.", + "bundle_column_error.copy_stacktrace": "Kopier feilrapport", + "bundle_column_error.error.body": "Den etterspurde sida kan ikke hentast fram. Det kan skuldast ein feil i koden vår eller eit kompatibilitetsproblem.", + "bundle_column_error.error.title": "Ånei!", + "bundle_column_error.network.body": "Det oppsto ein feil ved lasting av denne sida. Dette kan skuldast eit midlertidig problem med nettkoplinga eller denne tenaren.", + "bundle_column_error.network.title": "Nettverksfeil", "bundle_column_error.retry": "Prøv igjen", - "bundle_column_error.title": "Nettverksfeil", + "bundle_column_error.return": "Gå heim att", + "bundle_column_error.routing.body": "Den etterspurde sida vart ikkje funnen. Er du sikker på at URL-adressa er rett?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Lat att", "bundle_modal_error.message": "Noko gjekk gale under lastinga av denne komponenten.", "bundle_modal_error.retry": "Prøv igjen", + "closed_registrations.other_server_instructions": "Sidan Mastodon er desentralisert kan du lage ein brukar på ein anna tenar og framleis interagere med denne.", + "closed_registrations_modal.description": "Det er ikkje mogleg å opprette ein konto på {domain} nett no, men hugs at du ikkje treng ein konto på akkurat {domain} for å nytte Mastodon.", + "closed_registrations_modal.find_another_server": "Finn ein annan tenar", + "closed_registrations_modal.preamble": "Mastodon er desentralisert, så uansett kvar du opprettar ein konto, vil du kunne fylgje og samhandle med alle på denne tenaren. Du kan til og med ha din eigen tenar!", + "closed_registrations_modal.title": "Registrer deg på Mastodon", + "column.about": "Om", "column.blocks": "Blokkerte brukarar", "column.bookmarks": "Bokmerke", "column.community": "Lokal tidsline", - "column.direct": "Direct messages", + "column.direct": "Direktemeldingar", "column.directory": "Sjå gjennom profilar", - "column.domain_blocks": "Gøymde domene", + "column.domain_blocks": "Skjulte domene", "column.favourites": "Favorittar", "column.follow_requests": "Fylgjeførespurnadar", "column.home": "Heim", @@ -81,7 +112,7 @@ "column.notifications": "Varsel", "column.pins": "Festa tut", "column.public": "Samla tidsline", - "column_back_button.label": "Tilbake", + "column_back_button.label": "Attende", "column_header.hide_settings": "Gøym innstillingar", "column_header.moveLeft_settings": "Flytt kolonne til venstre", "column_header.moveRight_settings": "Flytt kolonne til høgre", @@ -92,26 +123,26 @@ "community.column_settings.local_only": "Berre lokalt", "community.column_settings.media_only": "Berre media", "community.column_settings.remote_only": "Berre eksternt", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Byt språk", + "compose.language.search": "Søk språk...", "compose_form.direct_message_warning_learn_more": "Lær meir", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Dette tutet vert ikkje oppført under nokon emneknagg sidan det ikkje er oppført. Berre offentlege tut kan verta søkt etter med emneknagg.", - "compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for å sjå innlegga dine som berre visast til fylgjarar.", + "compose_form.encryption_warning": "Innlegg på Mastodon er ikkje ende-til-ende-krypterte. Ikkje del eventuell sensitiv informasjon via Mastodon.", + "compose_form.hashtag_warning": "Dette tutet vert ikkje oppført under nokon emneknagg sidan ingen emneknagg er oppført. Det er kun emneknaggar som er søkbare i offentlege tutar.", + "compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for å sjå innlegga dine.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Kva har du på hjarta?", "compose_form.poll.add_option": "Legg til eit val", - "compose_form.poll.duration": "Varigskap for røysting", + "compose_form.poll.duration": "Varigheit for rundspørjing", "compose_form.poll.option_placeholder": "Val {number}", - "compose_form.poll.remove_option": "Ta vekk dette valet", - "compose_form.poll.switch_to_multiple": "Endre avstemninga til å tillate fleirval", - "compose_form.poll.switch_to_single": "Endra avstemninga til tillate berre eitt val", - "compose_form.publish": "Tut", + "compose_form.poll.remove_option": "Fjern dette valet", + "compose_form.poll.switch_to_multiple": "Endre rundspørjinga til å tillate fleire val", + "compose_form.poll.switch_to_single": "Endre rundspørjinga til å tillate berre eitt val", + "compose_form.publish": "Publisér", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", - "compose_form.sensitive.hide": "Merk medium som sensitivt", - "compose_form.sensitive.marked": "Medium er markert som sensitivt", - "compose_form.sensitive.unmarked": "Medium er ikkje merka som sensitivt", + "compose_form.save_changes": "Lagre endringar", + "compose_form.sensitive.hide": "{count, plural, one {Merk medium som sensitivt} other {Merk medium som sensitive}}", + "compose_form.sensitive.marked": "{count, plural, one {Medium er markert som sensitivt} other {Medium er markert som sensitive}}", + "compose_form.sensitive.unmarked": "{count, plural, one {Medium er ikkje markert som sensitivt} other {Medium er ikkje markert som sensitive}}", "compose_form.spoiler.marked": "Tekst er gøymd bak åtvaring", "compose_form.spoiler.unmarked": "Tekst er ikkje gøymd", "compose_form.spoiler_placeholder": "Skriv åtvaringa di her", @@ -119,43 +150,55 @@ "confirmations.block.block_and_report": "Blokker & rapporter", "confirmations.block.confirm": "Blokker", "confirmations.block.message": "Er du sikker på at du vil blokkera {name}?", + "confirmations.cancel_follow_request.confirm": "Trekk attende førespurnad", + "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekkje attende førespurnaden din om å fylgje {name}?", "confirmations.delete.confirm": "Slett", "confirmations.delete.message": "Er du sikker på at du vil sletta denne statusen?", "confirmations.delete_list.confirm": "Slett", "confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?", "confirmations.discard_edit_media.confirm": "Forkast", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", - "confirmations.domain_block.confirm": "Gøym heile domenet", - "confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil blokkera heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller målbindingar. Du kjem ikkje til å sjå innhald frå det domenet i nokon fødererte tidsliner eller i varsla dine. Fylgjarane dine frå det domenet vert fjerna.", + "confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkaste dei likevel?", + "confirmations.domain_block.confirm": "Skjul alt frå domenet", + "confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil skjula heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller målbindingar. Du kjem ikkje til å sjå innhald frå domenet i fødererte tidsliner eller i varsla dine. Fylgjarane dine frå domenet vert fjerna.", "confirmations.logout.confirm": "Logg ut", "confirmations.logout.message": "Er du sikker på at du vil logga ut?", "confirmations.mute.confirm": "Målbind", - "confirmations.mute.explanation": "Dette gøymer innlegg frå dei og innlegg som nemner dei, men tillèt dei framleis å sjå dine innlegg og fylgja deg.", + "confirmations.mute.explanation": "Dette vil skjula innlegg som kjem frå og som nemner dei, men vil framleis la dei sjå innlegga dine og fylgje deg.", "confirmations.mute.message": "Er du sikker på at du vil målbinda {name}?", "confirmations.redraft.confirm": "Slett & skriv på nytt", - "confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opphavlege innlegget vert einstøingar.", + "confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og eventuelle svar til det opprinnelege innlegget vert foreldrelause.", "confirmations.reply.confirm": "Svar", - "confirmations.reply.message": "Å svara no vil overskriva meldinga du skriv no. Er du sikker på at du vil halda fram?", + "confirmations.reply.message": "Å svara no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?", "confirmations.unfollow.confirm": "Slutt å fylgja", "confirmations.unfollow.message": "Er du sikker på at du vil slutta å fylgja {name}?", "conversation.delete": "Slett samtale", "conversation.mark_as_read": "Merk som lese", "conversation.open": "Sjå samtale", "conversation.with": "Med {names}", - "directory.federated": "Frå kjent fedivers", + "copypaste.copied": "Kopiert", + "copypaste.copy": "Kopiér", + "directory.federated": "Frå den kjende allheimen", "directory.local": "Berre frå {domain}", - "directory.new_arrivals": "Nyankommne", + "directory.new_arrivals": "Nyleg tilkomne", "directory.recently_active": "Nyleg aktive", - "embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden under.", - "embed.preview": "Slik bid det å sjå ut:", + "disabled_account_banner.account_settings": "Kontoinnstillingar", + "disabled_account_banner.text": "Kontoen din, {disabledAccount} er for tida deaktivert.", + "dismissable_banner.community_timeline": "Dette er dei nylegaste offentlege innlegga frå personar med kontoar frå {domain}.", + "dismissable_banner.dismiss": "Avvis", + "dismissable_banner.explore_links": "Desse nyhendesakene snakkast om av folk på denne og andre tenarar på det desentraliserte nettverket no.", + "dismissable_banner.explore_statuses": "Desse innlegga frå denne tenaren og andre tenarar i det desentraliserte nettverket er i støytet på denne tenaren nett no.", + "dismissable_banner.explore_tags": "Desse emneknaggane er populære blant folk på denne tenaren og andre tenarar i det desentraliserte nettverket nett no.", + "dismissable_banner.public_timeline": "Dette er dei siste offentlege innlegga frå folk på denne tenaren og andre tenarar på det desentraliserte nettverket som denne tenaren veit om.", + "embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden nedanfor.", + "embed.preview": "Slik kjem det til å sjå ut:", "emoji_button.activity": "Aktivitet", - "emoji_button.clear": "Clear", - "emoji_button.custom": "Eige", + "emoji_button.clear": "Tøm", + "emoji_button.custom": "Tilpassa", "emoji_button.flags": "Flagg", "emoji_button.food": "Mat & drikke", "emoji_button.label": "Legg til emoji", "emoji_button.nature": "Natur", - "emoji_button.not_found": "Ingen emojojoer!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Finn ingen samsvarande emojiar", "emoji_button.objects": "Objekt", "emoji_button.people": "Folk", "emoji_button.recent": "Ofte brukt", @@ -165,52 +208,68 @@ "emoji_button.travel": "Reise & stader", "empty_column.account_suspended": "Kontoen er suspendert", "empty_column.account_timeline": "Ingen tut her!", - "empty_column.account_unavailable": "Profil ikkje tilgjengelig", - "empty_column.blocks": "Du har ikkje blokkert nokon brukarar enno.", + "empty_column.account_unavailable": "Profil ikkje tilgjengeleg", + "empty_column.blocks": "Du har ikkje blokkert nokon enno.", "empty_column.bookmarked_statuses": "Du har ikkje nokon bokmerkte tut enno. Når du bokmerkjer eit, dukkar det opp her.", - "empty_column.community": "Den lokale samtiden er tom. Skriv noko offentleg å få ballen til å rulle!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", - "empty_column.domain_blocks": "Det er ingen gøymde domene ennå.", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "Du har ingen favoritt-tut ennå. Når du merkjer ein som favoritt, så dukkar det opp her.", + "empty_column.community": "Den lokale tidslina er tom. Skriv noko offentleg å få ballen til å rulle!", + "empty_column.direct": "Du har ingen direktemeldingar enno. Når du sender eller får ei, vil ho dukka opp her.", + "empty_column.domain_blocks": "Det er ingen skjulte domene til no.", + "empty_column.explore_statuses": "Ingenting er i støytet nett no. Prøv igjen seinare!", + "empty_column.favourited_statuses": "Du har ingen favoritt-tut ennå. Når du merkjer eit som favoritt, så dukkar det opp her.", "empty_column.favourites": "Ingen har merkt dette tutet som favoritt enno. Når nokon gjer det, så dukkar det opp her.", - "empty_column.follow_recommendations": "Ser ut som at det ikke finnes noen forslag for deg. Du kan prøve å bruke søk for å se etter folk du kan vite eller utforske trendende hashtags.", + "empty_column.follow_recommendations": "Det ser ikkje ut til at noko forslag kunne genererast til deg. Prøv søkjefunksjonen for å finna folk du kjenner, eller utforsk populære emneknaggar.", "empty_column.follow_requests": "Du har ingen følgjeførespurnadar ennå. Når du får ein, så vil den dukke opp her.", - "empty_column.hashtag": "Det er ingenting i denne emneknaggen ennå.", - "empty_column.home": "Heime-tidslinja di er tom! Besøk {public} eller søk for å starte og å møte andre brukarar.", - "empty_column.home.suggestions": "Se noen forslag", + "empty_column.hashtag": "Det er ingenting i denne emneknaggen enno.", + "empty_column.home": "Heime-tidslina di er tom! Følg fleire folk for å fylle ho med innhald. {suggestions}", + "empty_column.home.suggestions": "Sjå nokre forslag", "empty_column.list": "Det er ingenting i denne lista enno. Når medlemer av denne lista legg ut nye statusar, så dukkar dei opp her.", "empty_column.lists": "Du har ingen lister enno. Når du lagar ei, så dukkar ho opp her.", - "empty_column.mutes": "Du har ikkje målbunde nokon brukarar enno.", - "empty_column.notifications": "Du har ingen varsel ennå. Kommuniser med andre for å starte samtalen.", + "empty_column.mutes": "Du har ikkje målbunde nokon enno.", + "empty_column.notifications": "Du har ingen varsel enno. Kommuniser med andre for å starte samtalen.", "empty_column.public": "Det er ingenting her! Skriv noko offentleg, eller følg brukarar frå andre tenarar manuelt for å fylle det opp", - "error.unexpected_crash.explanation": "På grunn av ein feil i vår kode eller eit nettlesarkompatibilitetsproblem, kunne ikkje denne sida verte vist korrekt.", - "error.unexpected_crash.explanation_addons": "Denne siden kunne ikke vises riktig. Denne feilen er sannsynligvis forårsaket av en nettleserutvidelse eller automatiske oversettelsesverktøy.", - "error.unexpected_crash.next_steps": "Prøv å lasta inn sida på nytt. Om det ikkje hjelper så kan du framleis nytta Mastodon i ein annan nettlesar eller app.", - "error.unexpected_crash.next_steps_addons": "Prøv å deaktivere dem og laste siden på nytt. Hvis det ikke hjelper, kan du fremdeles bruke Mastodon via en annen nettleser eller en annen app.", + "error.unexpected_crash.explanation": "På grunn av eit nettlesarkompatibilitetsproblem eller ein feil i koden vår, kunne ikkje denne sida bli vist slik den skal.", + "error.unexpected_crash.explanation_addons": "Denne sida kunne ikkje visast som den skulle. Feilen kjem truleg frå ei nettleserutviding eller frå automatiske omsetjingsverktøy.", + "error.unexpected_crash.next_steps": "Prøv å lasta inn sida på nytt. Hjelper ikkje dette kan du framleis nytta Mastodon i ein annan nettlesar eller app.", + "error.unexpected_crash.next_steps_addons": "Prøv å skru dei av og last inn sida på nytt. Hjelper ikkje det kan du framleis bruka Mastodon i ein annan nettlesar eller app.", "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace til utklippstavla", "errors.unexpected_crash.report_issue": "Rapporter problem", - "explore.search_results": "Søkeresultater", + "explore.search_results": "Søkeresultat", "explore.suggested_follows": "For deg", "explore.title": "Utforsk", - "explore.trending_links": "Nyheter", - "explore.trending_statuses": "Innlegg", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Nytt", + "explore.trending_statuses": "Tut", + "explore.trending_tags": "Emneknaggar", + "filter_modal.added.context_mismatch_explanation": "Denne filterkategorien gjeld ikkje i den samanhengen du har lese dette innlegget. Viss du vil at innlegget skal filtrerast i denne samanhengen òg, må du endra filteret.", + "filter_modal.added.context_mismatch_title": "Konteksten passar ikkje!", + "filter_modal.added.expired_explanation": "Denne filterkategorien har gått ut på dato. Du må endre best før datoen for at den skal gjelde.", + "filter_modal.added.expired_title": "Filteret har gått ut på dato!", + "filter_modal.added.review_and_configure": "For å gjennomgå og konfigurere denne filterkategorien, gå til {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filterinnstillingar", + "filter_modal.added.settings_link": "innstillingar", + "filter_modal.added.short_explanation": "Dette innlegget er lagt til i denne filterkategorien: {title}.", + "filter_modal.added.title": "Filteret er lagt til!", + "filter_modal.select_filter.context_mismatch": "gjeld ikkje i denne samanhengen", + "filter_modal.select_filter.expired": "gått ut på dato", + "filter_modal.select_filter.prompt_new": "Ny kategori: {name}", + "filter_modal.select_filter.search": "Søk eller opprett", + "filter_modal.select_filter.subtitle": "Bruk ein eksisterande kategori eller opprett ein ny", + "filter_modal.select_filter.title": "Filtrer dette innlegget", + "filter_modal.title.status": "Filtrer eit innlegg", "follow_recommendations.done": "Ferdig", - "follow_recommendations.heading": "Følg folk du ønsker å se innlegg fra! Her er noen forslag.", - "follow_recommendations.lead": "Innlegg fra mennesker du følger vil vises i kronologisk rekkefølge på hjemmefeed. Ikke vær redd for å gjøre feil, du kan slutte å følge folk like enkelt som alt!", + "follow_recommendations.heading": "Fylg folk du ønsker å sjå innlegg frå! Her er nokre forslag.", + "follow_recommendations.lead": "Innlegg frå folk du fylgjer, kjem kronologisk i heimestraumen din. Ikkje ver redd for å gjera feil, du kan enkelt avfylgja folk når som helst!", "follow_request.authorize": "Autoriser", "follow_request.reject": "Avvis", - "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte {domain} tilsette at du ville gå gjennom førespurnadar frå desse kontoane manuelt.", + "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.", + "footer.about": "Om", + "footer.directory": "Profilmappe", + "footer.get_app": "Få appen", + "footer.invite": "Inviter folk", + "footer.keyboard_shortcuts": "Snøggtastar", + "footer.privacy_policy": "Personvernsreglar", + "footer.source_code": "Vis kjeldekode", "generic.saved": "Lagra", - "getting_started.developers": "Utviklarar", - "getting_started.directory": "Profilkatalog", - "getting_started.documentation": "Dokumentasjon", "getting_started.heading": "Kom i gang", - "getting_started.invite": "Byd folk inn", - "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidraga eller rapportera problem med GitHub på {github}.", - "getting_started.security": "Kontoinnstillingar", - "getting_started.terms": "Brukarvilkår", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "utan {additional}", @@ -218,57 +277,71 @@ "hashtag.column_settings.select.placeholder": "Legg til emneknaggar…", "hashtag.column_settings.tag_mode.all": "Alle disse", "hashtag.column_settings.tag_mode.any": "Kva som helst av desse", - "hashtag.column_settings.tag_mode.none": "Ikkje nokon av disse", - "hashtag.column_settings.tag_toggle": "Inkluder ekstra emneknaggar for denne kolonna", - "home.column_settings.basic": "Enkelt", + "hashtag.column_settings.tag_mode.none": "Ingen av desse", + "hashtag.column_settings.tag_toggle": "Inkluder fleire emneord for denne kolonna", + "hashtag.follow": "Fylg emneknagg", + "hashtag.unfollow": "Slutt å fylgje emneknaggen", + "home.column_settings.basic": "Grunnleggjande", "home.column_settings.show_reblogs": "Vis framhevingar", "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul kunngjeringar", "home.show_announcements": "Vis kunngjeringar", + "interaction_modal.description.favourite": "Med ein konto på Mastodon kan du favorittmerkja dette innlegget for å visa forfattaren at du set pris på det, og for å lagra det til seinare.", + "interaction_modal.description.follow": "Med ein konto på Mastodon kan du fylgja {name} for å sjå innlegga deira i din heimestraum.", + "interaction_modal.description.reblog": "Med ein konto på Mastodon kan du framheva dette innlegget for å dela det med dine eigne fylgjarar.", + "interaction_modal.description.reply": "Med ein konto på Mastodon kan du svara på dette innlegget.", + "interaction_modal.on_another_server": "På ein annan tenar", + "interaction_modal.on_this_server": "På denne tenaren", + "interaction_modal.other_server_instructions": "Kopier og lim inn denne URLen i søkefeltet til din favoritt Mastodon-app eller web-grensesnittet i din Mastodon server.", + "interaction_modal.preamble": "Sidan Mastodon er desentralisert, kan du bruke ein konto frå ein annan Mastodontenar eller frå ei anna kompatibel plattform dersom du ikkje har konto på denne tenaren.", + "interaction_modal.title.favourite": "Favorittmarker innlegget til {name}", + "interaction_modal.title.follow": "Fylg {name}", + "interaction_modal.title.reblog": "Framhev {name} sitt innlegg", + "interaction_modal.title.reply": "Svar på innlegge til {name}", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# time} other {# timar}}", "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutt}}", - "keyboard_shortcuts.back": "for å gå tilbake", - "keyboard_shortcuts.blocked": "for å opna lista med blokkerte brukarar", - "keyboard_shortcuts.boost": "for å framheva", - "keyboard_shortcuts.column": "for å fokusera på ein status i ei av kolonnane", + "keyboard_shortcuts.back": "Gå tilbake", + "keyboard_shortcuts.blocked": "Opne lista over blokkerte brukarar", + "keyboard_shortcuts.boost": "Framhev innlegg", + "keyboard_shortcuts.column": "Fokuskolonne", "keyboard_shortcuts.compose": "for å fokusera tekstfeltet for skriving", "keyboard_shortcuts.description": "Skildring", - "keyboard_shortcuts.direct": "to open direct messages column", - "keyboard_shortcuts.down": "for å flytta seg opp og ned i lista", - "keyboard_shortcuts.enter": "for å opna status", - "keyboard_shortcuts.favourite": "for å merkja som favoritt", - "keyboard_shortcuts.favourites": "for å opna favorittlista", - "keyboard_shortcuts.federated": "for å opna den samla tidslina", + "keyboard_shortcuts.direct": "for å opna direktemeldingskolonna", + "keyboard_shortcuts.down": "Flytt nedover i lista", + "keyboard_shortcuts.enter": "Opne innlegg", + "keyboard_shortcuts.favourite": "Merk som favoritt", + "keyboard_shortcuts.favourites": "Opne favorittlista", + "keyboard_shortcuts.federated": "Opne den samla tidslina", "keyboard_shortcuts.heading": "Snøggtastar", - "keyboard_shortcuts.home": "for opna heimetidslina", + "keyboard_shortcuts.home": "Opne heimetidslina", "keyboard_shortcuts.hotkey": "Snøggtast", - "keyboard_shortcuts.legend": "for å visa denne forklåringa", - "keyboard_shortcuts.local": "for å opna den lokale tidslina", - "keyboard_shortcuts.mention": "for å nemna forfattaren", - "keyboard_shortcuts.muted": "for å opna lista over målbundne brukarar", - "keyboard_shortcuts.my_profile": "for å opna profilen din", - "keyboard_shortcuts.notifications": "for å opna varselskolonna", - "keyboard_shortcuts.open_media": "for å opna media", - "keyboard_shortcuts.pinned": "for å opna lista over festa tut", - "keyboard_shortcuts.profile": "for å opna forfattaren sin profil", - "keyboard_shortcuts.reply": "for å svara", - "keyboard_shortcuts.requests": "for å opna lista med fylgjeførespurnader", + "keyboard_shortcuts.legend": "Vis denne forklaringa", + "keyboard_shortcuts.local": "Opne lokal tidsline", + "keyboard_shortcuts.mention": "Nemn forfattaren", + "keyboard_shortcuts.muted": "Opne liste over målbundne brukarar", + "keyboard_shortcuts.my_profile": "Opne profilen din", + "keyboard_shortcuts.notifications": "Opne varselkolonna", + "keyboard_shortcuts.open_media": "Opne media", + "keyboard_shortcuts.pinned": "Opne lista over festa tut", + "keyboard_shortcuts.profile": "Opne forfattaren sin profil", + "keyboard_shortcuts.reply": "Svar på innlegg", + "keyboard_shortcuts.requests": "Opne lista med fylgjeførespurnader", "keyboard_shortcuts.search": "for å fokusera søket", - "keyboard_shortcuts.spoilers": "for å visa/gøyma CW-felt", - "keyboard_shortcuts.start": "for å opna \"kom i gang\"-feltet", - "keyboard_shortcuts.toggle_hidden": "for å visa/gøyma tekst bak innhaldsvarsel", - "keyboard_shortcuts.toggle_sensitivity": "for å visa/gøyma media", - "keyboard_shortcuts.toot": "for å laga ein heilt ny tut", + "keyboard_shortcuts.spoilers": "Vis/gøym CW-felt", + "keyboard_shortcuts.start": "Opne kolonna \"kom i gang\"", + "keyboard_shortcuts.toggle_hidden": "Vis/gøym tekst bak innhaldsvarsel", + "keyboard_shortcuts.toggle_sensitivity": "Vis/gøym media", + "keyboard_shortcuts.toot": "Lag nytt tut", "keyboard_shortcuts.unfocus": "for å fokusere vekk skrive-/søkefeltet", - "keyboard_shortcuts.up": "for å flytta seg opp på lista", - "lightbox.close": "Lukk att", - "lightbox.compress": "Komprimer bildevisningsboks", - "lightbox.expand": "Ekspander bildevisning boks", + "keyboard_shortcuts.up": "Flytt opp på lista", + "lightbox.close": "Lukk", + "lightbox.compress": "Komprimer biletvisningsboksen", + "lightbox.expand": "Utvid biletvisningsboksen", "lightbox.next": "Neste", "lightbox.previous": "Førre", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Vis profilen likevel", + "limited_account_hint.title": "Denne profilen er skjult av moderatorane på {domain}.", "lists.account.add": "Legg til i liste", "lists.account.remove": "Fjern frå liste", "lists.delete": "Slett liste", @@ -276,26 +349,27 @@ "lists.edit.submit": "Endre tittel", "lists.new.create": "Legg til liste", "lists.new.title_placeholder": "Ny listetittel", - "lists.replies_policy.followed": "Enhver fulgt bruker", - "lists.replies_policy.list": "Medlemmer i listen", - "lists.replies_policy.none": "Ikkje nokon", + "lists.replies_policy.followed": "Alle fylgde brukarar", + "lists.replies_policy.list": "Medlemar i lista", + "lists.replies_policy.none": "Ingen", "lists.replies_policy.title": "Vis svar på:", - "lists.search": "Søk gjennom folk du følgjer", - "lists.subheading": "Dine lister", + "lists.search": "Søk blant folk du fylgjer", + "lists.subheading": "Listene dine", "load_pending": "{count, plural, one {# nytt element} other {# nye element}}", "loading_indicator.label": "Lastar...", - "media_gallery.toggle_visible": "Gjer synleg/usynleg", + "media_gallery.toggle_visible": "{number, plural, one {Skjul bilete} other {Skjul bilete}}", "missing_indicator.label": "Ikkje funne", "missing_indicator.sublabel": "Fann ikkje ressursen", - "mute_modal.duration": "Varighet", - "mute_modal.hide_notifications": "Gøyme varsel frå denne brukaren?", + "moved_to_account_banner.text": "Kontoen din, {disabledAccount} er for tida deaktivert fordi du har flytta til {movedToAccount}.", + "mute_modal.duration": "Varigheit", + "mute_modal.hide_notifications": "Skjul varsel frå denne brukaren?", "mute_modal.indefinite": "På ubestemt tid", - "navigation_bar.apps": "Mobilappar", + "navigation_bar.about": "Om", "navigation_bar.blocks": "Blokkerte brukarar", "navigation_bar.bookmarks": "Bokmerke", "navigation_bar.community_timeline": "Lokal tidsline", - "navigation_bar.compose": "Lag eit nytt tut", - "navigation_bar.direct": "Direct messages", + "navigation_bar.compose": "Lag nytt tut", + "navigation_bar.direct": "Direktemeldingar", "navigation_bar.discover": "Oppdag", "navigation_bar.domain_blocks": "Skjulte domene", "navigation_bar.edit_profile": "Rediger profil", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Målbundne ord", "navigation_bar.follow_requests": "Fylgjeførespurnader", "navigation_bar.follows_and_followers": "Fylgje og fylgjarar", - "navigation_bar.info": "Om denne tenaren", - "navigation_bar.keyboard_shortcuts": "Snøggtastar", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", "navigation_bar.mutes": "Målbundne brukarar", @@ -313,53 +385,57 @@ "navigation_bar.pins": "Festa tut", "navigation_bar.preferences": "Innstillingar", "navigation_bar.public_timeline": "Føderert tidsline", + "navigation_bar.search": "Søk", "navigation_bar.security": "Tryggleik", - "notification.admin.sign_up": "{name} signed up", + "not_signed_in_indicator.not_signed_in": "Du må logga inn for å få tilgang til denne ressursen.", + "notification.admin.report": "{name} rapporterte {target}", + "notification.admin.sign_up": "{name} er registrert", "notification.favourite": "{name} merkte statusen din som favoritt", "notification.follow": "{name} fylgde deg", "notification.follow_request": "{name} har bedt om å fylgja deg", "notification.mention": "{name} nemnde deg", "notification.own_poll": "Rundspørjinga di er ferdig", "notification.poll": "Ei rundspørjing du har røysta i er ferdig", - "notification.reblog": "{name} framheva statusen din", + "notification.reblog": "{name} framheva innlegget ditt", "notification.status": "{name} la nettopp ut", - "notification.update": "{name} edited a post", + "notification.update": "{name} redigerte eit innlegg", "notifications.clear": "Tøm varsel", "notifications.clear_confirmation": "Er du sikker på at du vil fjerna alle varsla dine for alltid?", - "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.admin.report": "Nye rapportar:", + "notifications.column_settings.admin.sign_up": "Nyleg registrerte:", "notifications.column_settings.alert": "Skrivebordsvarsel", "notifications.column_settings.favourite": "Favorittar:", "notifications.column_settings.filter_bar.advanced": "Vis alle kategoriar", "notifications.column_settings.filter_bar.category": "Snarfilterlinje", - "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.filter_bar.show_bar": "Vis filterlinja", "notifications.column_settings.follow": "Nye fylgjarar:", "notifications.column_settings.follow_request": "Ny fylgjarførespurnader:", - "notifications.column_settings.mention": "Nemningar:", + "notifications.column_settings.mention": "Omtalar:", "notifications.column_settings.poll": "Røysteresultat:", "notifications.column_settings.push": "Pushvarsel", "notifications.column_settings.reblog": "Framhevingar:", "notifications.column_settings.show": "Vis i kolonne", "notifications.column_settings.sound": "Spel av lyd", - "notifications.column_settings.status": "Nye tuter:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Redigeringer:", + "notifications.column_settings.status": "Nye tut:", + "notifications.column_settings.unread_notifications.category": "Uleste varsel", + "notifications.column_settings.unread_notifications.highlight": "Marker uleste varsel", + "notifications.column_settings.update": "Redigeringar:", "notifications.filter.all": "Alle", "notifications.filter.boosts": "Framhevingar", "notifications.filter.favourites": "Favorittar", "notifications.filter.follows": "Fylgjer", - "notifications.filter.mentions": "Nemningar", + "notifications.filter.mentions": "Omtalar", "notifications.filter.polls": "Røysteresultat", - "notifications.filter.statuses": "Oppdateringer fra folk du følger", - "notifications.grant_permission": "Gi tillatelse.", + "notifications.filter.statuses": "Oppdateringar frå folk du fylgjer", + "notifications.grant_permission": "Gje løyve.", "notifications.group": "{count} varsel", - "notifications.mark_as_read": "Merk alle varsler som lest", - "notifications.permission_denied": "Skrivebordsvarsler er ikke tilgjengelige på grunn av tidligere nektet nettlesertillatelser", - "notifications.permission_denied_alert": "Skrivebordsvarsler kan ikke aktiveres, ettersom lesertillatelse har blitt nektet før", - "notifications.permission_required": "Skrivebordsvarsler er utilgjengelige fordi nødvendige rettigheter ikke er gitt.", - "notifications_permission_banner.enable": "Skru på skrivebordsvarsler", - "notifications_permission_banner.how_to_control": "For å motta varsler når Mastodon ikke er åpne, aktiver desktop varsler. Du kan kontrollere nøyaktig hvilke typer interaksjoner genererer skrivebordsvarsler gjennom {icon} -knappen ovenfor når de er aktivert.", - "notifications_permission_banner.title": "Aldri gå glipp av noe", + "notifications.mark_as_read": "Merk alle varsel som lest", + "notifications.permission_denied": "Skrivebordsvarsel er ikkje tilgjengelege på grunn av at nettlesaren tidlegare ikkje har fått naudsynte rettar til å vise dei", + "notifications.permission_denied_alert": "Sidan nettlesaren tidlegare har blitt nekta naudsynte rettar, kan ikkje skrivebordsvarsel aktiverast", + "notifications.permission_required": "Skrivebordsvarsel er utilgjengelege fordi naudsynte rettar ikkje er gitt.", + "notifications_permission_banner.enable": "Skru på skrivebordsvarsel", + "notifications_permission_banner.how_to_control": "Aktiver skrivebordsvarsel for å få varsel når Mastodon ikkje er open. Du kan nøye bestemme kva samhandlingar som skal føre til skrivebordsvarsel gjennom {icon}-knappen ovanfor etter at varsel er aktivert.", + "notifications_permission_banner.title": "Gå aldri glipp av noko", "picture_in_picture.restore": "Legg den tilbake", "poll.closed": "Lukka", "poll.refresh": "Oppdater", @@ -367,84 +443,102 @@ "poll.total_votes": "{count, plural, one {# røyst} other {# røyster}}", "poll.vote": "Røyst", "poll.voted": "Du røysta på dette svaret", - "poll.votes": "{votes, plural, one {# vote} other {# votes}}", - "poll_button.add_poll": "Start ei meiningsmåling", - "poll_button.remove_poll": "Fjern røyst", - "privacy.change": "Juster status-synlegheit", - "privacy.direct.long": "Legg berre ut for nemnde brukarar", - "privacy.direct.short": "Direct", - "privacy.private.long": "Post kun til følgjarar", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "poll.votes": "{votes, plural, one {# røyst} other {# røyster}}", + "poll_button.add_poll": "Lag ei rundspørjing", + "poll_button.remove_poll": "Fjern rundspørjing", + "privacy.change": "Endre personvernet på innlegg", + "privacy.direct.long": "Synleg kun for omtala brukarar", + "privacy.direct.short": "Kun nemnde personar", + "privacy.private.long": "Kun synleg for fylgjarar", + "privacy.private.short": "Kun fylgjarar", + "privacy.public.long": "Synleg for alle", "privacy.public.short": "Offentleg", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Synleg for alle, men blir ikkje vist i oppdagsfunksjonar", "privacy.unlisted.short": "Uoppført", + "privacy_policy.last_updated": "Sist oppdatert {date}", + "privacy_policy.title": "Personvernsreglar", "refresh": "Oppdater", "regeneration_indicator.label": "Lastar…", - "regeneration_indicator.sublabel": "Heimetidslinja di vert førebudd!", + "regeneration_indicator.sublabel": "Heimetidslina di vert førebudd!", "relative_time.days": "{number}dg", - "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", - "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", - "relative_time.full.just_now": "just now", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.full.days": "{number, plural, one {# dag} other {# dagar}} sidan", + "relative_time.full.hours": "{number, plural, one {# time} other {# timar}} sidan", + "relative_time.full.just_now": "nett no", + "relative_time.full.minutes": "{number, plural, one {# minutt} other {# minutt}} sidan", + "relative_time.full.seconds": "{number, plural, one {# sekund} other {# sekund}} sidan", "relative_time.hours": "{number}t", - "relative_time.just_now": "nå", + "relative_time.just_now": "no", "relative_time.minutes": "{number}min", "relative_time.seconds": "{number}sek", "relative_time.today": "i dag", "reply_indicator.cancel": "Avbryt", "report.block": "Blokker", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", + "report.block_explanation": "Du vil ikkje kunne sjå innlegga deira. Dei vil ikkje kunne sjå innlegga dine eller fylgje deg. Dei kan sjå at dei er blokkert.", + "report.categories.other": "Anna", "report.categories.spam": "Søppelpost", - "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", + "report.categories.violation": "Innhaldet bryt med ein eller fleire reglar for tenaren", + "report.category.subtitle": "Vel det som passar best", + "report.category.title": "Fortel oss kva som skjer med denne {type}", "report.category.title_account": "profil", "report.category.title_status": "innlegg", - "report.close": "Utført", - "report.comment.title": "Is there anything else you think we should know?", + "report.close": "Ferdig", + "report.comment.title": "Er det noko anna du meiner me bør vite?", "report.forward": "Vidaresend til {target}", "report.forward_hint": "Kontoen er frå ein annan tenar. Vil du senda ein anonymisert kopi av rapporten dit òg?", - "report.mute": "Demp", - "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", + "report.mute": "Målbind", + "report.mute_explanation": "Du vil ikkje lenger sjå innlegga deira. Dei kan framleis fylgje deg og sjå innlegga dine, men vil ikkje vite at du har valt å ikkje sjå innlegga deira.", "report.next": "Neste", "report.placeholder": "Tilleggskommentarar", - "report.reasons.dislike": "Jeg liker det ikke", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "Det er spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "It violates server rules", - "report.reasons.violation_description": "You are aware that it breaks specific rules", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.reasons.dislike": "Eg likar det ikkje", + "report.reasons.dislike_description": "Det er ikkje noko du ønsker å sjå", + "report.reasons.other": "Det er noko anna", + "report.reasons.other_description": "Problemet passar ikkje inn i dei andre kategoriane", + "report.reasons.spam": "Det er søppelpost", + "report.reasons.spam_description": "Skadelege lenker, falskt engasjement og gjentakande svar", + "report.reasons.violation": "Det bryt tenaren sine reglar", + "report.reasons.violation_description": "Du veit at den bryt spesifikke reglar", + "report.rules.subtitle": "Velg det som gjeld", + "report.rules.title": "Kva reglar vert brotne?", + "report.statuses.subtitle": "Velg det som gjeld", + "report.statuses.title": "Er det innlegg som støttar opp under denne rapporten?", "report.submit": "Send inn", "report.target": "Rapporterer {target}", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report.thanks.take_action": "Dette er dei ulike alternativa for å kontrollere kva du ser på Mastodon:", + "report.thanks.take_action_actionable": "Medan me undersøker rapporteringa, kan du utføre desse handlingane mot @{name}:", + "report.thanks.title": "Vil du ikkje sjå dette?", + "report.thanks.title_actionable": "Takk for at du rapporterer, me skal sjå på dette.", + "report.unfollow": "Slutt å fylgje @{name}", + "report.unfollow_explanation": "Du fylgjer denne kontoen. Slutt å fylgje dei for ikkje lenger å sjå innlegga deira i heimestraumen din.", + "report_notification.attached_statuses": "{count, plural, one {{count} innlegg} other {{count} innlegg}} lagt ved", + "report_notification.categories.other": "Anna", + "report_notification.categories.spam": "Søppelpost", + "report_notification.categories.violation": "Regelbrot", + "report_notification.open": "Opne rapport", "search.placeholder": "Søk", + "search.search_or_paste": "Søk eller lim inn URL", "search_popout.search_format": "Avansert søkeformat", "search_popout.tips.full_text": "Enkel tekst returnerer statusar du har skrive, likt, framheva eller vorte nemnd i, i tillegg til samsvarande brukarnamn, visningsnamn og emneknaggar.", "search_popout.tips.hashtag": "emneknagg", - "search_popout.tips.status": "status", + "search_popout.tips.status": "innlegg", "search_popout.tips.text": "Enkel tekst returnerer samsvarande visningsnamn, brukarnamn og emneknaggar", "search_popout.tips.user": "brukar", "search_results.accounts": "Folk", - "search_results.all": "All", + "search_results.all": "Alt", "search_results.hashtags": "Emneknaggar", - "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.nothing_found": "Kunne ikkje finne noko for desse søkeorda", "search_results.statuses": "Tut", "search_results.statuses_fts_disabled": "På denne Matsodon-tenaren kan du ikkje søkja på tut etter innhaldet deira.", + "search_results.title": "Søk etter {q}", "search_results.total": "{count, number} {count, plural, one {treff} other {treff}}", + "server_banner.about_active_users": "Personar som har brukt denne tenaren dei siste 30 dagane (Månadlege Aktive Brukarar)", + "server_banner.active_users": "aktive brukarar", + "server_banner.administered_by": "Administrert av:", + "server_banner.introduction": "{domain} er del av det desentraliserte sosiale nettverket drive av {mastodon}.", + "server_banner.learn_more": "Lær meir", + "server_banner.server_stats": "Tenarstatistikk:", + "sign_in_banner.create_account": "Opprett konto", + "sign_in_banner.sign_in": "Logg inn", + "sign_in_banner.text": "Logg inn for å fylgje profiler eller emneknaggar, markere, framheve og svare på innlegg – eller samhandle med aktivitet på denne tenaren frå kontoen din på ein annan tenar.", "status.admin_account": "Opne moderasjonsgrensesnitt for @{name}", "status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet", "status.block": "Blokker @{name}", @@ -455,14 +549,16 @@ "status.delete": "Slett", "status.detailed_status": "Detaljert samtalevisning", "status.direct": "Send melding til @{name}", - "status.edit": "Edit", - "status.edited": "Edited {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.edit": "Rediger", + "status.edited": "Redigert {date}", + "status.edited_x_times": "Redigert {count, plural, one {{count} gong} other {{count} gonger}}", "status.embed": "Bygg inn", "status.favourite": "Favoritt", + "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.hide": "Gøym innlegg", + "status.history.created": "{name} oppretta {date}", + "status.history.edited": "{name} redigerte {date}", "status.load_more": "Last inn meir", "status.media_hidden": "Medium gøymd", "status.mention": "Nemn @{name}", @@ -479,63 +575,70 @@ "status.reblogs.empty": "Ingen har framheva dette tutet enno. Om nokon gjer, så dukkar det opp her.", "status.redraft": "Slett & skriv på nytt", "status.remove_bookmark": "Fjern bokmerke", + "status.replied_to": "Svarte {name}", "status.reply": "Svar", "status.replyAll": "Svar til tråd", "status.report": "Rapporter @{name}", "status.sensitive_warning": "Sensitivt innhald", "status.share": "Del", + "status.show_filter_reason": "Vis likevel", "status.show_less": "Vis mindre", "status.show_less_all": "Vis mindre for alle", "status.show_more": "Vis meir", "status.show_more_all": "Vis meir for alle", - "status.show_thread": "Vis tråd", + "status.show_original": "Vis original", + "status.translate": "Omset", + "status.translated_from_with": "Omsett frå {lang} ved bruk av {provider}", "status.uncached_media_warning": "Ikkje tilgjengeleg", "status.unmute_conversation": "Opphev målbinding av samtalen", "status.unpin": "Løys frå profil", - "suggestions.dismiss": "Avslå framlegg", + "subscribed_languages.lead": "Kun innlegg på valde språk vil bli dukke opp i heimestraumen din og i listene dine etter denne endringa. For å motta innlegg på alle språk, la vere å velje nokon.", + "subscribed_languages.save": "Lagre endringar", + "subscribed_languages.target": "Endre abonnerte språk for {target}", + "suggestions.dismiss": "Avslå forslag", "suggestions.header": "Du er kanskje interessert i…", "tabs_bar.federated_timeline": "Føderert", "tabs_bar.home": "Heim", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Varsel", - "tabs_bar.search": "Søk", "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} igjen", "time_remaining.hours": "{number, plural, one {# time} other {# timar}} igjen", "time_remaining.minutes": "{number, plural, one {# minutt} other {# minutt}} igjen", "time_remaining.moments": "Kort tid igjen", "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekund}} igjen", - "timeline_hint.remote_resource_not_displayed": "{resource} frå andre tenarar synest ikkje.", + "timeline_hint.remote_resource_not_displayed": "{resource} frå andre tenarar blir ikkje vist.", "timeline_hint.resources.followers": "Fylgjarar", "timeline_hint.resources.follows": "Fylgjer", "timeline_hint.resources.statuses": "Eldre tut", - "trends.counter_by_accounts": "Pratas om av {count, plural, one {{counter} person} other {{counter} folk}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} folk}} siste {days, plural, one {døgnet} other {{days} dagane}}", "trends.trending_now": "Populært no", "ui.beforeunload": "Kladden din forsvinn om du forlèt Mastodon no.", "units.short.billion": "{count}m.ard", "units.short.million": "{count}mill", "units.short.thousand": "{count}T", - "upload_area.title": "Drag & slepp for å lasta opp", + "upload_area.title": "Dra & slepp for å lasta opp", "upload_button.label": "Legg til medium", "upload_error.limit": "Du har gått over opplastingsgrensa.", - "upload_error.poll": "Filopplasting ikkje tillate med meiningsmålingar.", - "upload_form.audio_description": "Grei ut for folk med nedsett høyrsel", - "upload_form.description": "Skildr for synshemja", - "upload_form.description_missing": "Ingen beskrivelse lagt til", + "upload_error.poll": "Filopplasting er ikkje lov for rundspørjingar.", + "upload_form.audio_description": "Skildre for dei med nedsett høyrsel", + "upload_form.description": "Skildre for dei om har redusert syn", + "upload_form.description_missing": "Inga skildring er lagt til", "upload_form.edit": "Rediger", "upload_form.thumbnail": "Bytt miniatyrbilete", "upload_form.undo": "Slett", - "upload_form.video_description": "Greit ut for folk med nedsett høyrsel eller syn", + "upload_form.video_description": "Skildre for dei med nedsett høyrsel eller redusert syn", "upload_modal.analyzing_picture": "Analyserer bilete…", "upload_modal.apply": "Bruk", - "upload_modal.applying": "Applying…", + "upload_modal.applying": "Utfører…", "upload_modal.choose_image": "Vel bilete", "upload_modal.description_placeholder": "Ein rask brun rev hoppar over den late hunden", - "upload_modal.detect_text": "Gjenkjenn tekst i biletet", + "upload_modal.detect_text": "Oppdag tekst i biletet", "upload_modal.edit_media": "Rediger medium", - "upload_modal.hint": "Klikk og dra sirkelen på førehandsvisninga for å velge fokuspunktet som alltid vil vere synleg på alle miniatyrbileta.", + "upload_modal.hint": "Klikk og dra sirkelen på førehandsvisninga for å velja eit fokuspunkt som alltid vil vera synleg på miniatyrbilete.", "upload_modal.preparing_ocr": "Førebur OCR…", "upload_modal.preview_label": "Førehandsvis ({ratio})", "upload_progress.label": "Lastar opp...", + "upload_progress.processing": "Handsamar…", "video.close": "Lukk video", "video.download": "Last ned fil", "video.exit_fullscreen": "Lukk fullskjerm", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 78d145f55fd13f..6ef9fd0408e530 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -1,19 +1,34 @@ { - "account.account_note_header": "Notis", + "about.blocks": "Modererte tjenere", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon er gratis, åpen kildekode-programvare og et varemerke fra Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Årsak ikke oppgitt", + "about.domain_blocks.preamble": "Mastodon lar deg normalt sett se innholdet fra og samhandle med brukere fra enhver annen server i fødiverset. Dette er unntakene som har blitt lagt inn på denne serveren.", + "about.domain_blocks.silenced.explanation": "Du vil vanligvis ikke se profiler og innhold fra denne serveren, med mindre du eksplisitt søker dem opp eller velger å følge dem.", + "about.domain_blocks.silenced.title": "Begrenset", + "about.domain_blocks.suspended.explanation": "Ikke noe innhold fra denne serveren vil bli behandlet, lagret eller utvekslet. Det gjør det umulig å samhandle eller kommunisere med brukere fra denne serveren.", + "about.domain_blocks.suspended.title": "Suspendert", + "about.not_available": "Denne informasjonen er ikke gjort tilgjengelig på denne serveren.", + "about.powered_by": "Desentraliserte sosiale medier drevet av {mastodon}", + "about.rules": "Regler for serveren", + "account.account_note_header": "Notat", "account.add_or_remove_from_list": "Legg til eller fjern fra lister", "account.badges.bot": "Bot", "account.badges.group": "Gruppe", "account.block": "Blokkér @{name}", - "account.block_domain": "Skjul alt fra {domain}", + "account.block_domain": "Blokkér domenet {domain}", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Bla mer på den opprinnelige profilen", - "account.cancel_follow_request": "Avbryt følge forespørsel", - "account.direct": "Direct Message @{name}", + "account.cancel_follow_request": "Trekk tilbake følge-forespørselen", + "account.direct": "Send direktemelding til @{name}", "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", - "account.domain_blocked": "Domenet skjult", + "account.domain_blocked": "Domene blokkert", "account.edit_profile": "Rediger profil", "account.enable_notifications": "Varsle meg når @{name} legger ut innlegg", "account.endorse": "Vis frem på profilen", + "account.featured_tags.last_status_at": "Siste innlegg {date}", + "account.featured_tags.last_status_never": "Ingen Innlegg", + "account.featured_tags.title": "{name} sine fremhevede emneknagger", "account.follow": "Følg", "account.followers": "Følgere", "account.followers.empty": "Ingen følger denne brukeren ennå.", @@ -22,55 +37,71 @@ "account.following_counter": "{count, plural, one {{counter} som følges} other {{counter} som følges}}", "account.follows.empty": "Denne brukeren følger ikke noen enda.", "account.follows_you": "Følger deg", + "account.go_to_profile": "Gå til profil", "account.hide_reblogs": "Skjul fremhevinger fra @{name}", - "account.joined": "Ble med den {date}", + "account.joined_short": "Ble med", + "account.languages": "Endre hvilke språk du abonnerer på", "account.link_verified_on": "Eierskap av denne lenken ble sjekket {date}", "account.locked_info": "Denne kontoens personvernstatus er satt til låst. Eieren vurderer manuelt hvem som kan følge dem.", "account.media": "Media", "account.mention": "Nevn @{name}", - "account.moved_to": "{name} har flyttet til:", + "account.moved_to": "{name} har angitt at deres nye konto nå er:", "account.mute": "Demp @{name}", - "account.mute_notifications": "Ignorer varsler fra @{name}", + "account.mute_notifications": "Demp varsler fra @{name}", "account.muted": "Dempet", + "account.open_original_page": "Gå til originalsiden", "account.posts": "Innlegg", - "account.posts_with_replies": "Toots with replies", + "account.posts_with_replies": "Innlegg med svar", "account.report": "Rapportér @{name}", - "account.requested": "Venter på godkjennelse", + "account.requested": "Venter på godkjennelse. Klikk for å avbryte forespørselen", "account.share": "Del @{name}s profil", "account.show_reblogs": "Vis boosts fra @{name}", - "account.statuses_counter": "{count, plural, one {{counter} tut} other {{counter} tuter}}", - "account.unblock": "Avblokker @{name}", - "account.unblock_domain": "Vis {domain}", + "account.statuses_counter": "{count, plural, one {{counter} innlegg} other {{counter} innlegg}}", + "account.unblock": "Opphev blokkering av @{name}", + "account.unblock_domain": "Opphev blokkering av {domain}", "account.unblock_short": "Opphev blokkering", "account.unendorse": "Ikke vis frem på profilen", "account.unfollow": "Avfølg", - "account.unmute": "Avdemp @{name}", + "account.unmute": "Opphev demping av @{name}", "account.unmute_notifications": "Vis varsler fra @{name}", "account.unmute_short": "Opphev demping", "account_note.placeholder": "Klikk for å legge til et notat", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.daily_retention": "Andel brukere som er aktive per dag etter registrering", + "admin.dashboard.monthly_retention": "Andel brukere som er aktive per måned etter registrering", "admin.dashboard.retention.average": "Gjennomsnitt", - "admin.dashboard.retention.cohort": "Sign-up month", + "admin.dashboard.retention.cohort": "Registreringsmåned", "admin.dashboard.retention.cohort_size": "Nye brukere", "alert.rate_limited.message": "Vennligst prøv igjen etter kl. {retry_time, time, medium}.", "alert.rate_limited.title": "Hastighetsbegrenset", "alert.unexpected.message": "En uventet feil oppstod.", "alert.unexpected.title": "Oi!", "announcement.announcement": "Kunngjøring", - "attachments_list.unprocessed": "(unprocessed)", + "attachments_list.unprocessed": "(ubehandlet)", + "audio.hide": "Skjul lyd", "autosuggest_hashtag.per_week": "{count} per uke", "boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang", - "bundle_column_error.body": "Noe gikk galt mens denne komponenten lastet.", + "bundle_column_error.copy_stacktrace": "Kopier feilrapport", + "bundle_column_error.error.body": "Den forespurte siden kan ikke gjengis. Den kan skyldes en feil i vår kode eller et kompatibilitetsproblem med nettleseren.", + "bundle_column_error.error.title": "Å nei!", + "bundle_column_error.network.body": "Det oppsto en feil under forsøk på å laste inn denne siden. Dette kan skyldes et midlertidig problem med din internettilkobling eller denne serveren.", + "bundle_column_error.network.title": "Nettverksfeil", "bundle_column_error.retry": "Prøv igjen", - "bundle_column_error.title": "Nettverksfeil", + "bundle_column_error.return": "Gå hjem igjen", + "bundle_column_error.routing.body": "Den forespurte siden ble ikke funnet. Er du sikker på at URL-en i adresselinjen er riktig?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Lukk", "bundle_modal_error.message": "Noe gikk galt da denne komponenten lastet.", "bundle_modal_error.retry": "Prøv igjen", + "closed_registrations.other_server_instructions": "Siden Mastodon er desentralizert, kan du opprette en konto på en annen server og fortsatt kommunisere med denne.", + "closed_registrations_modal.description": "Opprettelse av en konto på {domain} er for tiden ikke mulig, men vær oppmerksom på at du ikke trenger en konto spesifikt på {domain} for å kunne bruke Mastodon.", + "closed_registrations_modal.find_another_server": "Finn en annen server", + "closed_registrations_modal.preamble": "Mastodon er desentralisert, så uansett hvor du oppretter kontoen din, vil du kunne følge og samhandle med alle på denne serveren. Du kan til og med kjøre serveren selv!", + "closed_registrations_modal.title": "Registrerer deg på Mastodon", + "column.about": "Om", "column.blocks": "Blokkerte brukere", "column.bookmarks": "Bokmerker", "column.community": "Lokal tidslinje", - "column.direct": "Direct messages", + "column.direct": "Direktemeldinger", "column.directory": "Bla gjennom profiler", "column.domain_blocks": "Skjulte domener", "column.favourites": "Likt", @@ -79,10 +110,10 @@ "column.lists": "Lister", "column.mutes": "Dempede brukere", "column.notifications": "Varsler", - "column.pins": "Pinned toot", + "column.pins": "Festede innlegg", "column.public": "Felles tidslinje", "column_back_button.label": "Tilbake", - "column_header.hide_settings": "Gjem innstillinger", + "column_header.hide_settings": "Skjul innstillinger", "column_header.moveLeft_settings": "Flytt feltet til venstre", "column_header.moveRight_settings": "Flytt feltet til høyre", "column_header.pin": "Fest", @@ -92,11 +123,11 @@ "community.column_settings.local_only": "Kun lokalt", "community.column_settings.media_only": "Media only", "community.column_settings.remote_only": "Kun eksternt", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Bytt språk", + "compose.language.search": "Søk etter språk...", "compose_form.direct_message_warning_learn_more": "Lær mer", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Denne tuten blir ikke listet under noen emneknagger da den er ulistet. Kun offentlige tuter kan søktes etter med emneknagg.", + "compose_form.encryption_warning": "Innlegg på Mastodon er ikke ende-til-ende-krypterte. Ikke del sensitive opplysninger via Mastodon.", + "compose_form.hashtag_warning": "Dette innlegget blir vist under noen emneknagger da det er uoppført. Kun offentlige innlegg kan søkes opp med emneknagg.", "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Hva har du på hjertet?", @@ -106,12 +137,12 @@ "compose_form.poll.remove_option": "Fjern dette valget", "compose_form.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg", "compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg", - "compose_form.publish": "Tut", + "compose_form.publish": "Publiser", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", - "compose_form.sensitive.hide": "Merk media som sensitivt", - "compose_form.sensitive.marked": "Mediet er merket som sensitiv", - "compose_form.sensitive.unmarked": "Mediet er ikke merket som sensitiv", + "compose_form.save_changes": "Lagre endringer", + "compose_form.sensitive.hide": "{count, plural,one {Merk media som sensitivt} other {Merk media som sensitivt}}", + "compose_form.sensitive.marked": "{count, plural,one {Mediet er merket som sensitivt}other {Mediene er merket som sensitive}}", + "compose_form.sensitive.unmarked": "{count, plural,one {Mediet er ikke merket som sensitivt}other {Mediene er ikke merket som sensitive}}", "compose_form.spoiler.marked": "Teksten er skjult bak en advarsel", "compose_form.spoiler.unmarked": "Teksten er ikke skjult", "compose_form.spoiler_placeholder": "Innholdsadvarsel", @@ -119,12 +150,14 @@ "confirmations.block.block_and_report": "Blokker og rapporter", "confirmations.block.confirm": "Blokkèr", "confirmations.block.message": "Er du sikker på at du vil blokkere {name}?", + "confirmations.cancel_follow_request.confirm": "Trekk tilbake forespørsel", + "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekke tilbake forespørselen din for å følge {name}?", "confirmations.delete.confirm": "Slett", "confirmations.delete.message": "Er du sikker på at du vil slette denne statusen?", "confirmations.delete_list.confirm": "Slett", "confirmations.delete_list.message": "Er du sikker på at du vil slette denne listen permanent?", "confirmations.discard_edit_media.confirm": "Forkast", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.discard_edit_media.message": "Du har ulagrede endringer i mediebeskrivelsen eller i forhåndsvisning, forkast dem likevel?", "confirmations.domain_block.confirm": "Skjul alt fra domenet", "confirmations.domain_block.message": "Er du sikker på at du vil skjule hele domenet {domain}? I de fleste tilfeller er det bedre med målrettet blokkering eller demping.", "confirmations.logout.confirm": "Logg ut", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Marker som lest", "conversation.open": "Vis samtale", "conversation.with": "Med {names}", + "copypaste.copied": "Kopiert", + "copypaste.copy": "Kopier", "directory.federated": "Fra det kjente strømiverset", "directory.local": "Kun fra {domain}", "directory.new_arrivals": "Nye ankomster", "directory.recently_active": "Nylig aktiv", + "disabled_account_banner.account_settings": "Kontoinnstillinger", + "disabled_account_banner.text": "Din konto {disabledAccount} er for øyeblikket deaktivert.", + "dismissable_banner.community_timeline": "Dette er de nyeste offentlige innleggene fra personer med kontoer på {domain}.", + "dismissable_banner.dismiss": "Avvis", + "dismissable_banner.explore_links": "Disse nyhetene snakker folk om akkurat nå på denne og andre servere i det desentraliserte nettverket.", + "dismissable_banner.explore_statuses": "Disse innleggene fra denne og andre servere i det desentraliserte nettverket får økt oppmerksomhet på denne serveren akkurat nå.", + "dismissable_banner.explore_tags": "Disse emneknaggene snakker folk om akkurat nå, på denne og andre servere i det desentraliserte nettverket.", + "dismissable_banner.public_timeline": "Dette er de nyeste offentlige innleggene fra personer på denne og andre servere i det desentraliserte nettverket som denne serveren kjenner til.", "embed.instructions": "Kopier koden under for å bygge inn denne statusen på hjemmesiden din.", "embed.preview": "Slik kommer det til å se ut:", "emoji_button.activity": "Aktivitet", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Nullstill", "emoji_button.custom": "Tilpasset", "emoji_button.flags": "Flagg", "emoji_button.food": "Mat og drikke", @@ -164,20 +207,20 @@ "emoji_button.symbols": "Symboler", "emoji_button.travel": "Reise & steder", "empty_column.account_suspended": "Kontoen er suspendert", - "empty_column.account_timeline": "Ingen tuter er her!", + "empty_column.account_timeline": "Ingen innlegg her!", "empty_column.account_unavailable": "Profilen er utilgjengelig", "empty_column.blocks": "Du har ikke blokkert noen brukere enda.", - "empty_column.bookmarked_statuses": "Du har ikke bokmerket noen tuter enda. Når du bokmerker en, vil den dukke opp her.", + "empty_column.bookmarked_statuses": "Du har ikke bokmerket noen innlegg enda. Når du bokmerker et, vil det dukke opp her.", "empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "Du har ingen direktemeldinger enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.", "empty_column.domain_blocks": "Det er ingen skjulte domener enda.", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "Du har ikke likt noen tuter enda. Når du liker en, vil den dukke opp her.", - "empty_column.favourites": "Ingen har likt denne tuten enda. Når noen gjør det, vil de dukke opp her.", + "empty_column.explore_statuses": "Ingenting er populært akkurat nå. Prøv igjen senere!", + "empty_column.favourited_statuses": "Du har ikke likt noen innlegg enda. Når du liker et, vil det dukke opp her.", + "empty_column.favourites": "Ingen har likt dette innlegget ennå. Når noen gjør det, vil de dukke opp her.", "empty_column.follow_recommendations": "Ser ut som at det ikke finnes noen forslag for deg. Du kan prøve å bruke søk for å se etter folk du kan vite eller utforske trendende hashtags.", "empty_column.follow_requests": "Du har ingen følgeforespørsler enda. Når du mottar en, vil den dukke opp her.", - "empty_column.hashtag": "Det er ingenting i denne hashtagen ennå.", - "empty_column.home": "Du har ikke fulgt noen ennå. Besøk {publlic} eller bruk søk for å komme i gang og møte andre brukere.", + "empty_column.hashtag": "Det er ingenting i denne emneknaggen ennå.", + "empty_column.home": "Hjem-tidslinjen din er tom! Følg flere folk for å fylle den. {suggestions}", "empty_column.home.suggestions": "Se noen forslag", "empty_column.list": "Det er ingenting i denne listen ennå. Når medlemmene av denne listen legger ut nye statuser vil de dukke opp her.", "empty_column.lists": "Du har ingen lister enda. Når du lager en, vil den dukke opp her.", @@ -195,36 +238,66 @@ "explore.title": "Utforsk", "explore.trending_links": "Nyheter", "explore.trending_statuses": "Innlegg", - "explore.trending_tags": "Hashtags", + "explore.trending_tags": "Emneknagger", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Utløpt filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filterinnstillinger", + "filter_modal.added.settings_link": "innstillinger-siden", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter lagt til!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "utløpt", + "filter_modal.select_filter.prompt_new": "Ny kategori: {name}", + "filter_modal.select_filter.search": "Søk eller opprett", + "filter_modal.select_filter.subtitle": "Bruk en eksisterende kategori eller opprett en ny", + "filter_modal.select_filter.title": "Filtrer dette innlegget", + "filter_modal.title.status": "Filtrer et innlegg", "follow_recommendations.done": "Utført", "follow_recommendations.heading": "Følg folk du ønsker å se innlegg fra! Her er noen forslag.", "follow_recommendations.lead": "Innlegg fra mennesker du følger vil vises i kronologisk rekkefølge på hjemmefeed. Ikke vær redd for å gjøre feil, du kan slutte å følge folk like enkelt som alt!", "follow_request.authorize": "Autorisér", "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Selv om kontoen din ikke er låst, tror {domain} ansatte at du kanskje vil gjennomgå forespørsler fra disse kontoene manuelt.", + "footer.about": "Om", + "footer.directory": "Profilkatalog", + "footer.get_app": "Last ned appen", + "footer.invite": "Invitér folk", + "footer.keyboard_shortcuts": "Hurtigtaster", + "footer.privacy_policy": "Personvernregler", + "footer.source_code": "Vis kildekode", "generic.saved": "Lagret", - "getting_started.developers": "Utviklere", - "getting_started.directory": "Profilmappe", - "getting_started.documentation": "Dokumentasjon", "getting_started.heading": "Kom i gang", - "getting_started.invite": "Inviter folk", - "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidra eller rapportere problemer på GitHub på {github}.", - "getting_started.security": "Kontoinnstillinger", - "getting_started.terms": "Bruksvilkår", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "uten {additional}", "hashtag.column_settings.select.no_options_message": "Ingen forslag ble funnet", - "hashtag.column_settings.select.placeholder": "Skriv inn emneknagger …", + "hashtag.column_settings.select.placeholder": "Skriv inn emneknagger…", "hashtag.column_settings.tag_mode.all": "Alle disse", "hashtag.column_settings.tag_mode.any": "Enhver av disse", "hashtag.column_settings.tag_mode.none": "Ingen av disse", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Følg emneknagg", + "hashtag.unfollow": "Slutt å følge emneknagg", "home.column_settings.basic": "Enkelt", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul kunngjøring", "home.show_announcements": "Vis kunngjøring", + "interaction_modal.description.favourite": "Med en konto på Mastodon, kan du \"like\" dette innlegget for å la forfatteren vite at du likte det samt lagre innlegget til senere.", + "interaction_modal.description.follow": "Med en konto på Mastodon, kan du følge {name} for å få innleggene deres i hjem-feeden din.", + "interaction_modal.description.reblog": "Med en konto på Mastodon, kan du fremheve dette innlegget for å dele det med dine egne følgere.", + "interaction_modal.description.reply": "Med en konto på Mastodon, kan du svare på dette innlegget.", + "interaction_modal.on_another_server": "På en annen server", + "interaction_modal.on_this_server": "På denne serveren", + "interaction_modal.other_server_instructions": "Kopier og lim inn denne URLen i søkefeltet til din favoritt Mastodon-app eller web-grensesnittet i din Mastodon server.", + "interaction_modal.preamble": "Siden Mastodon er desentralisert, kan du bruke din eksisterende konto på en annen Mastodon-tjener eller en kompatibel plattform hvis du ikke har en konto her.", + "interaction_modal.title.favourite": "Favorittmarker innlegget til {name}", + "interaction_modal.title.follow": "Følg {name}", + "interaction_modal.title.reblog": "Fremhev {name} sitt innlegg", + "interaction_modal.title.reply": "Svar på {name} sitt innlegg", "intervals.full.days": "{number, plural,one {# dag} other {# dager}}", "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutter}}", @@ -234,7 +307,7 @@ "keyboard_shortcuts.column": "å fokusere en status i en av kolonnene", "keyboard_shortcuts.compose": "å fokusere komponeringsfeltet", "keyboard_shortcuts.description": "Beskrivelse", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "for å åpne kolonne med direktemeldinger", "keyboard_shortcuts.down": "for å flytte ned i listen", "keyboard_shortcuts.enter": "å åpne status", "keyboard_shortcuts.favourite": "for å favorittmarkere", @@ -250,7 +323,7 @@ "keyboard_shortcuts.my_profile": "å åpne profilen din", "keyboard_shortcuts.notifications": "åpne varslingskolonnen", "keyboard_shortcuts.open_media": "å åpne media", - "keyboard_shortcuts.pinned": "åpne listen over klistrede tuter", + "keyboard_shortcuts.pinned": "Åpne listen over festede innlegg", "keyboard_shortcuts.profile": "åpne forfatterens profil", "keyboard_shortcuts.reply": "for å svare", "keyboard_shortcuts.requests": "åpne følgingsforespørselslisten", @@ -267,8 +340,8 @@ "lightbox.expand": "Ekspander bildevisning boks", "lightbox.next": "Neste", "lightbox.previous": "Forrige", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Vis profil likevel", + "limited_account_hint.title": "Denne profilen har blitt skjult av moderatorene til {domain}.", "lists.account.add": "Legg til i listen", "lists.account.remove": "Fjern fra listen", "lists.delete": "Slett listen", @@ -287,15 +360,16 @@ "media_gallery.toggle_visible": "Veksle synlighet", "missing_indicator.label": "Ikke funnet", "missing_indicator.sublabel": "Denne ressursen ble ikke funnet", + "moved_to_account_banner.text": "Din konto {disabledAccount} er for øyeblikket deaktivert fordi du flyttet til {movedToAccount}.", "mute_modal.duration": "Varighet", "mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?", "mute_modal.indefinite": "På ubestemt tid", - "navigation_bar.apps": "Mobilapper", + "navigation_bar.about": "Om", "navigation_bar.blocks": "Blokkerte brukere", "navigation_bar.bookmarks": "Bokmerker", "navigation_bar.community_timeline": "Lokal tidslinje", - "navigation_bar.compose": "Skriv en ny tut", - "navigation_bar.direct": "Direct messages", + "navigation_bar.compose": "Skriv et nytt innlegg", + "navigation_bar.direct": "Direktemeldinger", "navigation_bar.discover": "Oppdag", "navigation_bar.domain_blocks": "Skjulte domener", "navigation_bar.edit_profile": "Rediger profil", @@ -304,17 +378,18 @@ "navigation_bar.filters": "Stilnede ord", "navigation_bar.follow_requests": "Følgeforespørsler", "navigation_bar.follows_and_followers": "Følginger og følgere", - "navigation_bar.info": "Utvidet informasjon", - "navigation_bar.keyboard_shortcuts": "Tastatursnarveier", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", "navigation_bar.mutes": "Dempede brukere", "navigation_bar.personal": "Personlig", - "navigation_bar.pins": "Festa tuter", + "navigation_bar.pins": "Festede innlegg", "navigation_bar.preferences": "Innstillinger", "navigation_bar.public_timeline": "Felles tidslinje", + "navigation_bar.search": "Søk", "navigation_bar.security": "Sikkerhet", - "notification.admin.sign_up": "{name} signed up", + "not_signed_in_indicator.not_signed_in": "Du må logge inn for å få tilgang til denne ressursen.", + "notification.admin.report": "{name} rapporterte {target}", + "notification.admin.sign_up": "{name} registrerte seg", "notification.favourite": "{name} likte din status", "notification.follow": "{name} fulgte deg", "notification.follow_request": "{name} har bedt om å få følge deg", @@ -323,15 +398,16 @@ "notification.poll": "En avstemning du har stemt på har avsluttet", "notification.reblog": "{name} fremhevde din status", "notification.status": "{name} la nettopp ut", - "notification.update": "{name} edited a post", + "notification.update": "{name} redigerte et innlegg", "notifications.clear": "Fjern varsler", "notifications.clear_confirmation": "Er du sikker på at du vil fjerne alle dine varsler permanent?", - "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.admin.report": "Nye rapporter:", + "notifications.column_settings.admin.sign_up": "Nye registreringer:", "notifications.column_settings.alert": "Skrivebordsvarslinger", "notifications.column_settings.favourite": "Likt:", "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier", "notifications.column_settings.filter_bar.category": "Hurtigfiltreringslinje", - "notifications.column_settings.filter_bar.show_bar": "Show filter bar", + "notifications.column_settings.filter_bar.show_bar": "Vis filterlinjen", "notifications.column_settings.follow": "Nye følgere:", "notifications.column_settings.follow_request": "Nye følgerforespørsler:", "notifications.column_settings.mention": "Nevnt:", @@ -340,9 +416,9 @@ "notifications.column_settings.reblog": "Fremhevet:", "notifications.column_settings.show": "Vis i kolonne", "notifications.column_settings.sound": "Spill lyd", - "notifications.column_settings.status": "Nye tuter:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", + "notifications.column_settings.status": "Nye innlegg:", + "notifications.column_settings.unread_notifications.category": "Uleste varslinger", + "notifications.column_settings.unread_notifications.highlight": "Marker uleste varslinger", "notifications.column_settings.update": "Redigeringer:", "notifications.filter.all": "Alle", "notifications.filter.boosts": "Fremhevinger", @@ -367,27 +443,29 @@ "poll.total_votes": "{count, plural, one {# stemme} other {# stemmer}}", "poll.vote": "Stem", "poll.voted": "Du stemte på dette svaret", - "poll.votes": "{votes, plural, one {# vote} other {# votes}}", + "poll.votes": "{votes, plural, one {# stemme} other {# stemmer}}", "poll_button.add_poll": "Legg til en avstemning", "poll_button.remove_poll": "Fjern avstemningen", "privacy.change": "Justér synlighet", "privacy.direct.long": "Post kun til nevnte brukere", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Kun nevnte personer", "privacy.private.long": "Post kun til følgere", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.private.short": "Kun følgere", + "privacy.public.long": "Synlig for alle", "privacy.public.short": "Offentlig", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Synlig for alle, men vises ikke i oppdagsfunksjoner", "privacy.unlisted.short": "Uoppført", + "privacy_policy.last_updated": "Sist oppdatert {date}", + "privacy_policy.title": "Personvernregler", "refresh": "Oppfrisk", "regeneration_indicator.label": "Laster…", "regeneration_indicator.sublabel": "Dine startside forberedes!", "relative_time.days": "{number}d", - "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", - "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", - "relative_time.full.just_now": "just now", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", + "relative_time.full.days": "{number, plural, one {# dag} other {# dager}} siden", + "relative_time.full.hours": "{number, plural, one {# time} other {# timer}} siden", + "relative_time.full.just_now": "nettopp", + "relative_time.full.minutes": "for {number, plural, one {# minutt} other {# minutter}} siden", + "relative_time.full.seconds": "for {number, plural, one {# sekund} other {# sekunder}} siden", "relative_time.hours": "{number}t", "relative_time.just_now": "nå", "relative_time.minutes": "{number}m", @@ -395,43 +473,49 @@ "relative_time.today": "i dag", "reply_indicator.cancel": "Avbryt", "report.block": "Blokker", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", + "report.block_explanation": "Du kommer ikke til å se innleggene deres. De vil ikke kunne se innleggene dine eller følge deg. De vil kunne se at de er blokkert.", + "report.categories.other": "Annet", "report.categories.spam": "Søppelpost", - "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", + "report.categories.violation": "Innholdet bryter en eller flere serverregler", + "report.category.subtitle": "Velg det som passer best", + "report.category.title": "Fortell oss hva som skjer med denne {type}", "report.category.title_account": "profil", "report.category.title_status": "innlegg", "report.close": "Utført", - "report.comment.title": "Is there anything else you think we should know?", + "report.comment.title": "Er det noe annet du mener vi burde vite?", "report.forward": "Videresend til {target}", "report.forward_hint": "Denne kontoen er fra en annen tjener. Vil du sende en anonymisert kopi av rapporten dit også?", "report.mute": "Demp", - "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", + "report.mute_explanation": "Du kommer ikke til å se deres innlegg. De kan fortsatt følge deg og se dine innlegg, og kan ikke se at de er dempet.", "report.next": "Neste", "report.placeholder": "Tilleggskommentarer", "report.reasons.dislike": "Jeg liker det ikke", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", + "report.reasons.dislike_description": "Det er ikke noe du har lyst til å se", + "report.reasons.other": "Det er noe annet", + "report.reasons.other_description": "Problemet passer ikke inn i de andre kategoriene", "report.reasons.spam": "Det er spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "It violates server rules", - "report.reasons.violation_description": "You are aware that it breaks specific rules", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.reasons.spam_description": "Ondsinnede lenker, falsk engasjement eller repeterende svar", + "report.reasons.violation": "Det bryter serverregler", + "report.reasons.violation_description": "Du er klar over at det bryter spesifikke regler", + "report.rules.subtitle": "Velg alle som passer", + "report.rules.title": "Hvilke regler brytes?", + "report.statuses.subtitle": "Velg alle som passer", + "report.statuses.title": "Er det noen innlegg som støtter opp under denne rapporten?", "report.submit": "Send inn", "report.target": "Rapporterer", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report.thanks.take_action": "Her er alternativene dine for å kontrollere hva du ser på Mastodon:", + "report.thanks.take_action_actionable": "Mens vi går gjennom dette, kan du iverksettet tiltak mot @{name}:", + "report.thanks.title": "Ønsker du ikke å se dette?", + "report.thanks.title_actionable": "Takk for at du rapporterer, vi skal se på dette.", + "report.unfollow": "Slutt å følge @{name}", + "report.unfollow_explanation": "Du følger denne kontoen. For ikke å se innleggene deres i din hjem-feed lenger, slutt å følge dem.", + "report_notification.attached_statuses": "{count, plural,one {{count} innlegg} other {{count} innlegg}} vedlagt", + "report_notification.categories.other": "Annet", + "report_notification.categories.spam": "Søppelpost", + "report_notification.categories.violation": "Regelbrudd", + "report_notification.open": "Åpne rapport", "search.placeholder": "Søk", + "search.search_or_paste": "Søk eller lim inn URL", "search_popout.search_format": "Avansert søkeformat", "search_popout.tips.full_text": "Enkel tekst gir resultater for statuser du har skrevet, likt, fremhevet, eller har blitt nevnt i, i tillegg til samsvarende brukernavn, visningsnavn og emneknagger.", "search_popout.tips.hashtag": "emneknagg", @@ -439,12 +523,22 @@ "search_popout.tips.text": "Enkel tekst returnerer matchende visningsnavn, brukernavn og emneknagger", "search_popout.tips.user": "bruker", "search_results.accounts": "Folk", - "search_results.all": "All", + "search_results.all": "Alle", "search_results.hashtags": "Emneknagger", - "search_results.nothing_found": "Could not find anything for these search terms", - "search_results.statuses": "Tuter", - "search_results.statuses_fts_disabled": "Å søke i tuter etter innhold er ikke skrudd på i denne Mastodon-tjeneren.", + "search_results.nothing_found": "Fant ikke noe for disse søkeordene", + "search_results.statuses": "Innlegg", + "search_results.statuses_fts_disabled": "Å søke i innlegg etter innhold er ikke skrudd på i denne Mastodon-tjeneren.", + "search_results.title": "Søk etter {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}", + "server_banner.about_active_users": "Personer som har brukt denne serveren i løpet av de siste 30 dagene (aktive brukere månedlig)", + "server_banner.active_users": "aktive brukere", + "server_banner.administered_by": "Administrert av:", + "server_banner.introduction": "{domain} er en del av det desentraliserte sosiale nettverket drevet av {mastodon}.", + "server_banner.learn_more": "Finn ut mer", + "server_banner.server_stats": "Serverstatistikk:", + "sign_in_banner.create_account": "Opprett konto", + "sign_in_banner.sign_in": "Logg inn", + "sign_in_banner.text": "Logg inn for å følge profiler eller hashtags, like, dele og svare på innlegg eller interagere fra din konto på en annen server.", "status.admin_account": "Åpne moderatorgrensesnittet for @{name}", "status.admin_status": "Åpne denne statusen i moderatorgrensesnittet", "status.block": "Blokkér @{name}", @@ -455,14 +549,16 @@ "status.delete": "Slett", "status.detailed_status": "Detaljert samtalevisning", "status.direct": "Send direktemelding til @{name}", - "status.edit": "Edit", - "status.edited": "Edited {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.edit": "Redigér", + "status.edited": "Redigert {date}", + "status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}", "status.embed": "Bygge inn", "status.favourite": "Lik", + "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.hide": "Skjul innlegg", + "status.history.created": "{name} opprettet {date}", + "status.history.edited": "{name} redigerte {date}", "status.load_more": "Last mer", "status.media_hidden": "Media skjult", "status.mention": "Nevn @{name}", @@ -471,34 +567,40 @@ "status.mute_conversation": "Demp samtale", "status.open": "Utvid denne statusen", "status.pin": "Fest på profilen", - "status.pinned": "Festet tut", + "status.pinned": "Festet innlegg", "status.read_more": "Les mer", "status.reblog": "Fremhev", "status.reblog_private": "Fremhev til det opprinnelige publikummet", "status.reblogged_by": "Fremhevd av {name}", - "status.reblogs.empty": "Ingen har fremhevet denne tuten enda. Når noen gjør det, vil de dukke opp her.", + "status.reblogs.empty": "Ingen har fremhevet dette innlegget enda. Når noen gjør det, vil de dukke opp her.", "status.redraft": "Slett og drøft på nytt", "status.remove_bookmark": "Fjern bokmerke", + "status.replied_to": "Svarte {name}", "status.reply": "Svar", "status.replyAll": "Svar til samtale", "status.report": "Rapporter @{name}", "status.sensitive_warning": "Følsomt innhold", "status.share": "Del", + "status.show_filter_reason": "Vis likevel", "status.show_less": "Vis mindre", "status.show_less_all": "Vis mindre for alle", "status.show_more": "Vis mer", "status.show_more_all": "Vis mer for alle", - "status.show_thread": "Vis tråden", + "status.show_original": "Vis original", + "status.translate": "Oversett", + "status.translated_from_with": "Oversatt fra {lang} ved å bruke {provider}", "status.uncached_media_warning": "Ikke tilgjengelig", "status.unmute_conversation": "Ikke demp samtale", "status.unpin": "Angre festing på profilen", + "subscribed_languages.lead": "Bare innlegg på valgte språk vil dukke opp i dine hjem- og liste-tidslinjer etter endringen. Velg ingen for å motta innlegg på alle språk.", + "subscribed_languages.save": "Lagre endringer", + "subscribed_languages.target": "Endre abbonerte språk for {target}", "suggestions.dismiss": "Utelukk forslaget", "suggestions.header": "Du er kanskje interessert i …", "tabs_bar.federated_timeline": "Felles", "tabs_bar.home": "Hjem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Varslinger", - "tabs_bar.search": "Søk", "time_remaining.days": "{number, plural,one {# dag} other {# dager}} igjen", "time_remaining.hours": "{number, plural, one {# time} other {# timer}} igjen", "time_remaining.minutes": "{number, plural, one {# minutt} other {# minutter}} igjen", @@ -507,8 +609,8 @@ "timeline_hint.remote_resource_not_displayed": "{resource} fra andre servere vises ikke.", "timeline_hint.resources.followers": "Følgere", "timeline_hint.resources.follows": "Følger", - "timeline_hint.resources.statuses": "Eldre tuter", - "trends.counter_by_accounts": "Snakkes om av {count, plural, one {{counter} person} other {{counter} personer}}", + "timeline_hint.resources.statuses": "Eldre innlegg", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} folk}} {days, plural, one {den siste dagen} other {de siste {days} dagene}}", "trends.trending_now": "Trender nå", "ui.beforeunload": "Din kladd vil bli forkastet om du forlater Mastodon.", "units.short.billion": "{count}m.ard", @@ -527,7 +629,7 @@ "upload_form.video_description": "Beskriv det for folk med hørselstap eller synshemminger", "upload_modal.analyzing_picture": "Analyserer bildet …", "upload_modal.apply": "Bruk", - "upload_modal.applying": "Applying…", + "upload_modal.applying": "Utfører…", "upload_modal.choose_image": "Velg et bilde", "upload_modal.description_placeholder": "Når du en gang kommer, neste sommer, skal vi atter drikke vin", "upload_modal.detect_text": "Oppdag tekst i bildet", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Forbereder OCR…", "upload_modal.preview_label": "Forhåndsvisning ({ratio})", "upload_progress.label": "Laster opp...", + "upload_progress.processing": "Behandler…", "video.close": "Lukk video", "video.download": "Last ned fil", "video.exit_fullscreen": "Lukk fullskjerm", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index c2041d10dcb618..8d86745413d663 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidors moderats", + "about.contact": "Contacte :", + "about.disclaimer": "Mastodon es gratuit, un logicial libre e una marca de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limitats", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspenduts", + "about.not_available": "Aquesta informacion foguèt pas renduda disponibla sus aqueste servidor.", + "about.powered_by": "Malhum social descentralizat propulsat per {mastodon}", + "about.rules": "Règlas del servidor", "account.account_note_header": "Nòta", "account.add_or_remove_from_list": "Ajustar o tirar de las listas", "account.badges.bot": "Robòt", @@ -7,31 +19,37 @@ "account.block_domain": "Tot amagar del domeni {domain}", "account.blocked": "Blocat", "account.browse_more_on_origin_server": "Navigar sul perfil original", - "account.cancel_follow_request": "Anullar la demanda de seguiment", + "account.cancel_follow_request": "Retirar la demanda d’abonament", "account.direct": "Escriure un MP a @{name}", "account.disable_notifications": "Quitar de m’avisar quand @{name} publica quicòm", "account.domain_blocked": "Domeni amagat", "account.edit_profile": "Modificar lo perfil", "account.enable_notifications": "M’avisar quand @{name} publica quicòm", "account.endorse": "Mostrar pel perfil", + "account.featured_tags.last_status_at": "Darrièra publicacion lo {date}", + "account.featured_tags.last_status_never": "Cap de publicacion", + "account.featured_tags.title": "Etiquetas en avant de {name}", "account.follow": "Sègre", "account.followers": "Seguidors", "account.followers.empty": "Degun sèc pas aqueste utilizaire pel moment.", "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}", - "account.following": "Following", + "account.following": "Abonat", "account.following_counter": "{count, plural, one {{counter} Abonaments} other {{counter} Abonaments}}", "account.follows.empty": "Aqueste utilizaire sèc pas degun pel moment.", "account.follows_you": "Vos sèc", + "account.go_to_profile": "Anar al perfil", "account.hide_reblogs": "Rescondre los partatges de @{name}", - "account.joined": "Arribèt en {date}", + "account.joined_short": "Venguèt lo", + "account.languages": "Modificar las lengas seguidas", "account.link_verified_on": "La proprietat d’aqueste ligam foguèt verificada lo {date}", "account.locked_info": "L’estatut de privacitat del compte es configurat sus clavat. Lo proprietari causís qual pòt sègre son compte.", "account.media": "Mèdias", "account.mention": "Mencionar @{name}", - "account.moved_to": "{name} a mudat los catons a :", + "account.moved_to": "{name} indiquèt que son nòu compte es ara :", "account.mute": "Rescondre @{name}", "account.mute_notifications": "Rescondre las notificacions de @{name}", "account.muted": "Mes en silenci", + "account.open_original_page": "Open original page", "account.posts": "Tuts", "account.posts_with_replies": "Tuts e responsas", "account.report": "Senhalar @{name}", @@ -41,12 +59,12 @@ "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}", "account.unblock": "Desblocar @{name}", "account.unblock_domain": "Desblocar {domain}", - "account.unblock_short": "Unblock", + "account.unblock_short": "Desblocat", "account.unendorse": "Mostrar pas pel perfil", "account.unfollow": "Quitar de sègre", "account.unmute": "Quitar de rescondre @{name}", "account.unmute_notifications": "Mostrar las notificacions de @{name}", - "account.unmute_short": "Unmute", + "account.unmute_short": "Tornar afichar", "account_note.placeholder": "Clicar per ajustar una nòta", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", @@ -59,18 +77,31 @@ "alert.unexpected.title": "Ops !", "announcement.announcement": "Anóncia", "attachments_list.unprocessed": "(pas tractat)", + "audio.hide": "Amagar àudio", "autosuggest_hashtag.per_week": "{count} per setmana", "boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven", - "bundle_column_error.body": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.", + "bundle_column_error.copy_stacktrace": "Copiar senhalament d’avaria", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh non !", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Error de ret", "bundle_column_error.retry": "Tornar ensajar", - "bundle_column_error.title": "Error de ret", + "bundle_column_error.return": "Tornar a l’acuèlh", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Tampar", "bundle_modal_error.message": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.", "bundle_modal_error.retry": "Tornar ensajar", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Trobar un autre servidor", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "S’inscriure a Mastodon", + "column.about": "A prepaus", "column.blocks": "Personas blocadas", "column.bookmarks": "Marcadors", "column.community": "Flux public local", - "column.direct": "Direct messages", + "column.direct": "Messatges dirèctes", "column.directory": "Percórrer los perfils", "column.domain_blocks": "Domenis resconduts", "column.favourites": "Favorits", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Sonque local", "community.column_settings.media_only": "Solament los mèdias", "community.column_settings.remote_only": "Sonque alonhat", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Cambiar de lenga", + "compose.language.search": "Recercar de lengas...", "compose_form.direct_message_warning_learn_more": "Ne saber mai", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Las pubicacions sus Mastodon son pas chifradas del cap a la fin. Partegetz pas d’informacions sensiblas sus Mastodon.", "compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap d’etiqueta estant qu’es pas listat. Òm pòt pas cercar que los tuts publics per etiqueta.", "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.", "compose_form.lock_disclaimer.lock": "clavat", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Levar aquesta opcion", "compose_form.poll.switch_to_multiple": "Cambiar lo sondatge per permetre de causidas multiplas", "compose_form.poll.switch_to_single": "Cambiar lo sondatge per permetre una sola causida", - "compose_form.publish": "Tut", + "compose_form.publish": "Publicar", "compose_form.publish_loud": "{publish} !", "compose_form.save_changes": "Salvar los cambiaments", "compose_form.sensitive.hide": "Marcar coma sensible", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blocar e senhalar", "confirmations.block.confirm": "Blocar", "confirmations.block.message": "Volètz vertadièrament blocar {name} ?", + "confirmations.cancel_follow_request.confirm": "Retirar la demandar", + "confirmations.cancel_follow_request.message": "Volètz vertadièrament retirar la demanda de seguiment de {name} ?", "confirmations.delete.confirm": "Escafar", "confirmations.delete.message": "Volètz vertadièrament escafar l’estatut ?", "confirmations.delete_list.confirm": "Suprimir", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Marcar coma legida", "conversation.open": "Veire la conversacion", "conversation.with": "Amb {names}", + "copypaste.copied": "Copiat", + "copypaste.copy": "Copiar", "directory.federated": "Del fediverse conegut", "directory.local": "Solament de {domain}", "directory.new_arrivals": "Nòus-venguts", "directory.recently_active": "Actius fa res", + "disabled_account_banner.account_settings": "Paramètres de compte", + "disabled_account_banner.text": "Vòstre compte {disabledAccount} es actualament desactivat.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Ignorar", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embarcar aqueste estatut per lo far veire sus un site Internet en copiar lo còdi çai-jos.", "embed.preview": "Semblarà aquò :", "emoji_button.activity": "Activitats", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Escafar", "emoji_button.custom": "Personalizats", "emoji_button.flags": "Drapèus", "emoji_button.food": "Beure e manjar", @@ -169,9 +212,9 @@ "empty_column.blocks": "Avètz pas blocat degun pel moment.", "empty_column.bookmarked_statuses": "Avètz pas cap de tuts marcats pel moment. Quand ne marquetz un, serà mostrat aquí.", "empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "Avètz pas encara cap de messatges. Quand ne mandatz un o que ne recebètz un, serà mostrat aquí.", "empty_column.domain_blocks": "I a pas encara cap de domeni amagat.", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.explore_statuses": "I a pas res en tendéncia pel moment. Tornatz mai tard !", "empty_column.favourited_statuses": "Avètz pas encara cap de tut favorit. Quand n’auretz un, apareisserà aquí.", "empty_column.favourites": "Degun a pas encara mes en favorit aqueste tut. Quand qualqu’un o farà, apareisserà aquí.", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", @@ -191,26 +234,42 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar las traças al quichapapièrs", "errors.unexpected_crash.report_issue": "Senhalar un problèma", "explore.search_results": "Resultats de recèrca", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Per vos", "explore.title": "Explorar", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Novèlas", + "explore.trending_statuses": "Publicacions", + "explore.trending_tags": "Etiquetas", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Filtre expirat !", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Paramètres del filtre", + "filter_modal.added.settings_link": "page de parametratge", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filtre apondut !", + "filter_modal.select_filter.context_mismatch": "s’aplica pas a aqueste contèxte", + "filter_modal.select_filter.expired": "expirat", + "filter_modal.select_filter.prompt_new": "Categoria novèla : {name}", + "filter_modal.select_filter.search": "Cercar o crear", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filtrar aquesta publicacion", + "filter_modal.title.status": "Filtrar una publicacion", "follow_recommendations.done": "Acabat", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Acceptar", "follow_request.reject": "Regetar", "follow_requests.unlocked_explanation": "Encara que vòstre compte siasque pas verrolhat, la còla de {domain} pensèt que volriatz benlèu repassar las demandas d’abonament d’aquestes comptes.", + "footer.about": "A prepaus", + "footer.directory": "Annuari de perfils", + "footer.get_app": "Obténer l’aplicacion", + "footer.invite": "Convidar de monde", + "footer.keyboard_shortcuts": "Acorchis clavièr", + "footer.privacy_policy": "Politica de confidencialitat", + "footer.source_code": "Veire lo còdi font", "generic.saved": "Enregistrat", - "getting_started.developers": "Desvelopaires", - "getting_started.directory": "Annuari de perfils", - "getting_started.documentation": "Documentacion", "getting_started.heading": "Per començar", - "getting_started.invite": "Convidar de mond", - "getting_started.open_source_notice": "Mastodon es un logicial liure. Podètz contribuir e mandar vòstres comentaris e rapòrt de bug via {github} sus GitHub.", - "getting_started.security": "Seguretat", - "getting_started.terms": "Condicions d’utilizacion", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sens {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Un d’aquestes", "hashtag.column_settings.tag_mode.none": "Cap d’aquestes", "hashtag.column_settings.tag_toggle": "Inclure las etiquetas suplementàrias dins aquesta colomna", + "hashtag.follow": "Sègre l’etiqueta", + "hashtag.unfollow": "Quitar de sègre l’etiqueta", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Mostrar los partatges", "home.column_settings.show_replies": "Mostrar las responsas", "home.hide_announcements": "Rescondre las anóncias", "home.show_announcements": "Mostrar las anóncias", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "Sus un autre servidor", + "interaction_modal.on_this_server": "Sus aqueste servidor", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Metre en favorit la publicacion de {name}", + "interaction_modal.title.follow": "Sègre {name}", + "interaction_modal.title.reblog": "Partejar la publicacion de {name}", + "interaction_modal.title.reply": "Respondre a la publicacion de {name}", "intervals.full.days": "{number, plural, one {# jorn} other {# jorns}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}", @@ -234,7 +307,7 @@ "keyboard_shortcuts.column": "centrar un estatut a una colomna", "keyboard_shortcuts.compose": "anar al camp tèxte", "keyboard_shortcuts.description": "descripcion", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "dobrir la colomna de messatges dirèctes", "keyboard_shortcuts.down": "far davalar dins la lista", "keyboard_shortcuts.enter": "dobrir los estatuts", "keyboard_shortcuts.favourite": "apondre als favorits", @@ -267,8 +340,8 @@ "lightbox.expand": "Espandir la fenèstra de visualizacion d’imatge", "lightbox.next": "Seguent", "lightbox.previous": "Precedent", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Afichar lo perfil de tota manièra", + "limited_account_hint.title": "Aqueste perfil foguèt rescondut per la moderacion de {domain}.", "lists.account.add": "Ajustar a la lista", "lists.account.remove": "Levar de la lista", "lists.delete": "Suprimir la lista", @@ -287,25 +360,24 @@ "media_gallery.toggle_visible": "Modificar la visibilitat", "missing_indicator.label": "Pas trobat", "missing_indicator.sublabel": "Aquesta ressorsa es pas estada trobada", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Durada", "mute_modal.hide_notifications": "Rescondre las notificacions d’aquesta persona ?", "mute_modal.indefinite": "Cap de data de fin", - "navigation_bar.apps": "Aplicacions mobil", + "navigation_bar.about": "A prepaus", "navigation_bar.blocks": "Personas blocadas", "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Flux public local", "navigation_bar.compose": "Escriure un nòu tut", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Messatges dirèctes", "navigation_bar.discover": "Trobar", "navigation_bar.domain_blocks": "Domenis resconduts", "navigation_bar.edit_profile": "Modificar lo perfil", - "navigation_bar.explore": "Explore", + "navigation_bar.explore": "Explorar", "navigation_bar.favourites": "Favorits", "navigation_bar.filters": "Mots ignorats", "navigation_bar.follow_requests": "Demandas d’abonament", "navigation_bar.follows_and_followers": "Abonament e seguidors", - "navigation_bar.info": "Tocant aqueste servidor", - "navigation_bar.keyboard_shortcuts": "Acorchis clavièr", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Desconnexion", "navigation_bar.mutes": "Personas rescondudas", @@ -313,8 +385,11 @@ "navigation_bar.pins": "Tuts penjats", "navigation_bar.preferences": "Preferéncias", "navigation_bar.public_timeline": "Flux public global", + "navigation_bar.search": "Recercar", "navigation_bar.security": "Seguretat", - "notification.admin.sign_up": "{name} signed up", + "not_signed_in_indicator.not_signed_in": "Devètz vos connectar per accedir a aquesta ressorsa.", + "notification.admin.report": "{name} senhalèt {target}", + "notification.admin.sign_up": "{name} se marquèt", "notification.favourite": "{name} a ajustat a sos favorits", "notification.follow": "{name} vos sèc", "notification.follow_request": "{name} a demandat a vos sègre", @@ -323,10 +398,11 @@ "notification.poll": "Avètz participat a un sondatge que ven de s’acabar", "notification.reblog": "{name} a partejat vòstre estatut", "notification.status": "{name} ven de publicar", - "notification.update": "{name} edited a post", + "notification.update": "{name} modiquè sa publicacion", "notifications.clear": "Escafar", "notifications.clear_confirmation": "Volètz vertadièrament escafar totas vòstras las notificacions ?", - "notifications.column_settings.admin.sign_up": "New sign-ups:", + "notifications.column_settings.admin.report": "Senhalaments novèls :", + "notifications.column_settings.admin.sign_up": "Nòus inscrits :", "notifications.column_settings.alert": "Notificacions localas", "notifications.column_settings.favourite": "Favorits :", "notifications.column_settings.filter_bar.advanced": "Mostrar totas las categorias", @@ -342,8 +418,8 @@ "notifications.column_settings.sound": "Emetre un son", "notifications.column_settings.status": "Tuts novèls :", "notifications.column_settings.unread_notifications.category": "Notificacions pas legidas", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Edits:", + "notifications.column_settings.unread_notifications.highlight": "Forçar sus las notificacions pas legidas", + "notifications.column_settings.update": "Modificacions :", "notifications.filter.all": "Totas", "notifications.filter.boosts": "Partages", "notifications.filter.favourites": "Favorits", @@ -372,13 +448,15 @@ "poll_button.remove_poll": "Levar lo sondatge", "privacy.change": "Ajustar la confidencialitat del messatge", "privacy.direct.long": "Mostrar pas qu’a las personas mencionadas", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Sonque per las personas mencionadas", "privacy.private.long": "Mostrar pas qu’a vòstres seguidors", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.private.short": "Sonque pels seguidors", + "privacy.public.long": "Visiblas per totes", "privacy.public.short": "Public", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Visible per totes mas desactivat per las foncionalitats de descobèrta", "privacy.unlisted.short": "Pas-listat", + "privacy_policy.last_updated": "Darrièra actualizacion {date}", + "privacy_policy.title": "Politica de confidencialitat", "refresh": "Actualizar", "regeneration_indicator.label": "Cargament…", "regeneration_indicator.sublabel": "Sèm a preparar vòstre flux d’acuèlh !", @@ -396,10 +474,10 @@ "reply_indicator.cancel": "Anullar", "report.block": "Blocar", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", - "report.categories.spam": "Spam", + "report.categories.other": "Autre", + "report.categories.spam": "Messatge indesirable", "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", + "report.category.subtitle": "Causissètz çò que correspond mai", "report.category.title": "Tell us what's going on with this {type}", "report.category.title_account": "perfil", "report.category.title_status": "publicacion", @@ -412,12 +490,12 @@ "report.next": "Seguent", "report.placeholder": "Comentaris addicionals", "report.reasons.dislike": "M’agrada pas", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "It's spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "It violates server rules", + "report.reasons.dislike_description": "Es pas quicòm que volriatz veire", + "report.reasons.other": "Es quicòm mai", + "report.reasons.other_description": "Lo problèma es pas dins cap d’autra categoria", + "report.reasons.spam": "Es un messatge indesirable", + "report.reasons.spam_description": "Ligams enganaires, fals engatjament o responsas repetitivas", + "report.reasons.violation": "Viòla las règlas del servidor", "report.reasons.violation_description": "You are aware that it breaks specific rules", "report.rules.subtitle": "Select all that apply", "report.rules.title": "Which rules are being violated?", @@ -427,11 +505,17 @@ "report.target": "Senhalar {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", + "report.thanks.title": "Volètz pas veire aquò ?", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", + "report.unfollow": "Quitar de sègre {name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} publicacion junta} other {{count} publicacions juntas}}", + "report_notification.categories.other": "Autre", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Dobrir lo senhalament", "search.placeholder": "Recercar", + "search.search_or_paste": "Recercar o picar una URL", "search_popout.search_format": "Format recèrca avançada", "search_popout.tips.full_text": "Un tèxte simple que tòrna los estatuts qu’avètz escriches, mes en favorits, partejats, o ont sètz mencionat, e tanben los noms d’utilizaires, escais-noms e etiquetas que correspondonas.", "search_popout.tips.hashtag": "etiqueta", @@ -439,12 +523,22 @@ "search_popout.tips.text": "Lo tèxte brut tòrna escais, noms d’utilizaire e etiquetas correspondents", "search_popout.tips.user": "utilizaire", "search_results.accounts": "Gents", - "search_results.all": "All", + "search_results.all": "Tot", "search_results.hashtags": "Etiquetas", - "search_results.nothing_found": "Could not find anything for these search terms", + "search_results.nothing_found": "Cap de resultat per aquestes tèrmes de recèrca", "search_results.statuses": "Tuts", "search_results.statuses_fts_disabled": "La recèrca de tuts per lor contengut es pas activada sus aqueste servidor Mastodon.", + "search_results.title": "Recèrca : {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "utilizaires actius", + "server_banner.administered_by": "Administrat per :", + "server_banner.introduction": "{domain} fa part del malhum social descentralizat propulsat per {mastodon}.", + "server_banner.learn_more": "Ne saber mai", + "server_banner.server_stats": "Estatisticas del servidor :", + "sign_in_banner.create_account": "Crear un compte", + "sign_in_banner.sign_in": "Se marcar", + "sign_in_banner.text": "Connectatz-vos per sègre perfils o etiquetas, apondre als favorits, partejar e respondre als messatges o interagir de vòstre compte estant d’un autre servidor.", "status.admin_account": "Dobrir l’interfàcia de moderacion per @{name}", "status.admin_status": "Dobrir aqueste estatut dins l’interfàcia de moderacion", "status.block": "Blocar @{name}", @@ -456,13 +550,15 @@ "status.detailed_status": "Vista detalhada de la convèrsa", "status.direct": "Messatge per @{name}", "status.edit": "Modificar", - "status.edited": "Edited {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.edited": "Modificat {date}", + "status.edited_x_times": "Modificat {count, plural, un {{count} còp} other {{count} còps}}", "status.embed": "Embarcar", "status.favourite": "Apondre als favorits", + "status.filter": "Filtrar aquesta publicacion", "status.filtered": "Filtrat", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.hide": "Amagar aqueste tut", + "status.history.created": "{name} o creèt lo {date}", + "status.history.edited": "{name} o modifiquèt lo {date}", "status.load_more": "Cargar mai", "status.media_hidden": "Mèdia rescondut", "status.mention": "Mencionar", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Degun a pas encara partejat aqueste tut. Quand qualqu’un o farà, apareisserà aquí.", "status.redraft": "Escafar e tornar formular", "status.remove_bookmark": "Suprimir lo marcador", + "status.replied_to": "Respondut a {name}", "status.reply": "Respondre", "status.replyAll": "Respondre a la conversacion", "status.report": "Senhalar @{name}", "status.sensitive_warning": "Contengut sensible", "status.share": "Partejar", + "status.show_filter_reason": "Afichar de tot biais", "status.show_less": "Tornar plegar", "status.show_less_all": "Los tornar plegar totes", "status.show_more": "Desplegar", "status.show_more_all": "Los desplegar totes", - "status.show_thread": "Mostrar lo fil", + "status.show_original": "Veire l’original", + "status.translate": "Traduire", + "status.translated_from_with": "Traduch del {lang} amb {provider}", "status.uncached_media_warning": "Pas disponible", "status.unmute_conversation": "Tornar mostrar la conversacion", "status.unpin": "Tirar del perfil", + "subscribed_languages.lead": "Sonque las publicacions dins las lengas seleccionadas apreissaràn dins vòstre acuèlh e linha cronologica aprèp aqueste cambiament. Seleccionatz pas res per recebre las publicacions en quina lenga que siá.", + "subscribed_languages.save": "Salvar los cambiaments", + "subscribed_languages.target": "Lengas d’abonaments cambiadas per {target}", "suggestions.dismiss": "Regetar la suggestion", "suggestions.header": "Vos poiriá interessar…", "tabs_bar.federated_timeline": "Flux public global", "tabs_bar.home": "Acuèlh", "tabs_bar.local_timeline": "Flux public local", "tabs_bar.notifications": "Notificacions", - "tabs_bar.search": "Recèrcas", "time_remaining.days": "demòra{number, plural, one { # jorn} other {n # jorns}}", "time_remaining.hours": "demòra{number, plural, one { # ora} other {n # oras}}", "time_remaining.minutes": "demòra{number, plural, one { # minuta} other {n # minutas}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Seguidors", "timeline_hint.resources.follows": "Abonaments", "timeline_hint.resources.statuses": "Tuts mai ancians", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona ne parla} other {{counter} personas ne parlan}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} dins los darrièrs {days, plural, one {jorn} other {{days} jorns}}", "trends.trending_now": "Tendéncia del moment", "ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Mastodon.", "units.short.billion": "{count}Md", @@ -520,7 +622,7 @@ "upload_error.poll": "Lo mandadís de fichièr es pas autorizat pels sondatges.", "upload_form.audio_description": "Descriure per las personas amb pèrdas auditivas", "upload_form.description": "Descripcion pels mal vesents", - "upload_form.description_missing": "No description added", + "upload_form.description_missing": "Cap de descripcion pas aponduda", "upload_form.edit": "Modificar", "upload_form.thumbnail": "Cambiar la vinheta", "upload_form.undo": "Suprimir", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparacion de la ROC…", "upload_modal.preview_label": "Apercebut ({ratio})", "upload_progress.label": "Mandadís…", + "upload_progress.processing": "Tractament…", "video.close": "Tampar la vidèo", "video.download": "Telecargar lo fichièr", "video.exit_fullscreen": "Sortir plen ecran", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 7b041a2084a0eb..a8585c042d78d0 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Block domain {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index a14fce01b5e449..a3757214b13915 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -1,4 +1,16 @@ { + "about.blocks": "Serwery moderowane", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon jest darmowym, otwartym oprogramowaniem i znakiem towarowym Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Powód niedostępny", + "about.domain_blocks.preamble": "Domyślnie Mastodon pozwala ci przeglądać i reagować na treści od innych użytkowników z jakiegokolwiek serwera w fediwersum. Poniżej znajduje się lista wyjątków, które zostały stworzone na tym konkretnym serwerze.", + "about.domain_blocks.silenced.explanation": "Zazwyczaj nie zobaczysz profili i treści z tego serwera, chyba że wyraźnie go poszukasz lub zdecydujesz się go obserwować.", + "about.domain_blocks.silenced.title": "Ograniczone", + "about.domain_blocks.suspended.explanation": "Żadne dane z tego serwera nie będą przetwarzane, przechowywane lub wymieniane, co uniemożliwia jakąkolwiek interakcję lub komunikację z użytkownikami z tego serwera.", + "about.domain_blocks.suspended.title": "Zawieszono", + "about.not_available": "Ta informacja nie została udostępniona na tym serwerze.", + "about.powered_by": "Zdecentralizowane media społecznościowe napędzane przez {mastodon}", + "about.rules": "Regulamin serwera", "account.account_note_header": "Notatka", "account.add_or_remove_from_list": "Dodaj lub usuń z list", "account.badges.bot": "Bot", @@ -7,31 +19,37 @@ "account.block_domain": "Blokuj wszystko z {domain}", "account.blocked": "Zablokowany(-a)", "account.browse_more_on_origin_server": "Zobacz więcej na oryginalnym profilu", - "account.cancel_follow_request": "Zrezygnuj z prośby o możliwość śledzenia", + "account.cancel_follow_request": "Wycofaj żądanie obserwowania", "account.direct": "Wyślij wiadomość bezpośrednią do @{name}", "account.disable_notifications": "Przestań powiadamiać mnie o wpisach @{name}", "account.domain_blocked": "Ukryto domenę", "account.edit_profile": "Edytuj profil", "account.enable_notifications": "Powiadamiaj mnie o wpisach @{name}", "account.endorse": "Wyróżnij na profilu", - "account.follow": "Śledź", - "account.followers": "Śledzący", - "account.followers.empty": "Nikt jeszcze nie śledzi tego użytkownika.", - "account.followers_counter": "{count, plural, one {{counter} śledzący} few {{counter} śledzących} many {{counter} śledzących} other {{counter} śledzących}}", - "account.following": "Śledzenie", - "account.following_counter": "{count, plural, one {{counter} śledzony} few {{counter} śledzonych} many {{counter} śledzonych} other {{counter} śledzonych}}", - "account.follows.empty": "Ten użytkownik nie śledzi jeszcze nikogo.", - "account.follows_you": "Śledzi Cię", + "account.featured_tags.last_status_at": "Ostatni post {date}", + "account.featured_tags.last_status_never": "Brak postów", + "account.featured_tags.title": "Polecane hasztagi {name}", + "account.follow": "Obserwuj", + "account.followers": "Obserwujący", + "account.followers.empty": "Nikt jeszcze nie obserwuje tego użytkownika.", + "account.followers_counter": "{count, plural, one {{counter} obserwujący} few {{counter} obserwujących} many {{counter} obserwujących} other {{counter} obserwujących}}", + "account.following": "Obserwowani", + "account.following_counter": "{count, plural, one {{counter} obserwowany} few {{counter} obserwowanych} many {{counter} obserwowanych} other {{counter} obserwowanych}}", + "account.follows.empty": "Ten użytkownik nie obserwuje jeszcze nikogo.", + "account.follows_you": "Obserwuje Cię", + "account.go_to_profile": "Przejdź do profilu", "account.hide_reblogs": "Ukryj podbicia od @{name}", - "account.joined": "Dołączył(a) {date}", + "account.joined_short": "Dołączył(a)", + "account.languages": "Zmień subskrybowane języki", "account.link_verified_on": "Własność tego odnośnika została potwierdzona {date}", - "account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go śledzić.", + "account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go obserwować.", "account.media": "Zawartość multimedialna", "account.mention": "Wspomnij o @{name}", - "account.moved_to": "{name} przeniósł(-osła) się do:", + "account.moved_to": "{name} jako swoje nowe konto wskazał/a:", "account.mute": "Wycisz @{name}", "account.mute_notifications": "Wycisz powiadomienia o @{name}", "account.muted": "Wyciszony", + "account.open_original_page": "Otwórz stronę oryginalną", "account.posts": "Wpisy", "account.posts_with_replies": "Wpisy i odpowiedzi", "account.report": "Zgłoś @{name}", @@ -43,7 +61,7 @@ "account.unblock_domain": "Odblokuj domenę {domain}", "account.unblock_short": "Odblokuj", "account.unendorse": "Przestań polecać", - "account.unfollow": "Przestań śledzić", + "account.unfollow": "Przestań obserwować", "account.unmute": "Cofnij wyciszenie @{name}", "account.unmute_notifications": "Cofnij wyciszenie powiadomień od @{name}", "account.unmute_short": "Włącz dźwięki", @@ -59,14 +77,27 @@ "alert.unexpected.title": "O nie!", "announcement.announcement": "Ogłoszenie", "attachments_list.unprocessed": "(nieprzetworzone)", + "audio.hide": "Ukryj dźwięk", "autosuggest_hashtag.per_week": "{count} co tydzień", "boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem", - "bundle_column_error.body": "Coś poszło nie tak podczas ładowania tego składnika.", + "bundle_column_error.copy_stacktrace": "Skopiuj raport o błędzie", + "bundle_column_error.error.body": "Nie można zrenderować żądanej strony. Może to być spowodowane błędem w naszym kodzie lub problemami z kompatybilnością przeglądarki.", + "bundle_column_error.error.title": "O nie!", + "bundle_column_error.network.body": "Wystąpił błąd podczas próby załadowania tej strony. Może to być spowodowane tymczasowym problemem z połączeniem z internetem lub serwerem.", + "bundle_column_error.network.title": "Błąd sieci", "bundle_column_error.retry": "Spróbuj ponownie", - "bundle_column_error.title": "Błąd sieci", + "bundle_column_error.return": "Wróć do strony głównej", + "bundle_column_error.routing.body": "Żądana strona nie została znaleziona. Czy na pewno adres URL w pasku adresu jest poprawny?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zamknij", "bundle_modal_error.message": "Coś poszło nie tak podczas ładowania tego składnika.", "bundle_modal_error.retry": "Spróbuj ponownie", + "closed_registrations.other_server_instructions": "Ponieważ Mastodon jest zdecentralizowany, możesz założyć konto na innym serwerze i wciąż mieć możliwość wchodzenia w interakcję z tym serwerem.", + "closed_registrations_modal.description": "Opcja tworzenia kont na {domain} jest aktualnie niedostępna, ale miej na uwadze to, że nie musisz mieć konta konkretnie na {domain} by używać Mastodona.", + "closed_registrations_modal.find_another_server": "Znajdź inny serwer", + "closed_registrations_modal.preamble": "Mastodon jest zdecentralizowany, więc bez względu na to, gdzie się zarejestrujesz, będziesz w stanie obserwować i wchodzić w interakcje z innymi osobami na tym serwerze. Możesz nawet uruchomić własny serwer!", + "closed_registrations_modal.title": "Rejestracja na Mastodonie", + "column.about": "O serwerze", "column.blocks": "Zablokowani użytkownicy", "column.bookmarks": "Zakładki", "column.community": "Lokalna oś czasu", @@ -74,7 +105,7 @@ "column.directory": "Przeglądaj profile", "column.domain_blocks": "Ukryte domeny", "column.favourites": "Ulubione", - "column.follow_requests": "Prośby o śledzenie", + "column.follow_requests": "Prośby o obserwację", "column.home": "Strona główna", "column.lists": "Listy", "column.mutes": "Wyciszeni użytkownicy", @@ -97,7 +128,7 @@ "compose_form.direct_message_warning_learn_more": "Dowiedz się więcej", "compose_form.encryption_warning": "Posty na Mastodon nie są szyfrowane end-to-end. Nie udostępniaj żadnych wrażliwych informacji przez Mastodon.", "compose_form.hashtag_warning": "Ten wpis nie będzie widoczny pod podanymi hasztagami, ponieważ jest oznaczony jako niewidoczny. Tylko publiczne wpisy mogą zostać znalezione z użyciem hasztagów.", - "compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię śledzi, może wyświetlać Twoje wpisy przeznaczone tylko dla śledzących.", + "compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię obserwuje, może wyświetlać Twoje wpisy przeznaczone tylko dla obserwujących.", "compose_form.lock_disclaimer.lock": "zablokowane", "compose_form.placeholder": "Co Ci chodzi po głowie?", "compose_form.poll.add_option": "Dodaj opcję", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Usuń tę opcję", "compose_form.poll.switch_to_multiple": "Pozwól na wybranie wielu opcji", "compose_form.poll.switch_to_single": "Pozwól na wybranie tylko jednej opcji", - "compose_form.publish": "Wyślij", + "compose_form.publish": "Opublikuj", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Zapisz zmiany", "compose_form.sensitive.hide": "Oznacz multimedia jako wrażliwe", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Zablokuj i zgłoś", "confirmations.block.confirm": "Zablokuj", "confirmations.block.message": "Czy na pewno chcesz zablokować {name}?", + "confirmations.cancel_follow_request.confirm": "Wycofaj żądanie", + "confirmations.cancel_follow_request.message": "Czy na pewno chcesz wycofać prośbę o możliwość obserwacji {name}?", "confirmations.delete.confirm": "Usuń", "confirmations.delete.message": "Czy na pewno chcesz usunąć ten wpis?", "confirmations.delete_list.confirm": "Usuń", @@ -130,22 +163,32 @@ "confirmations.logout.confirm": "Wyloguj", "confirmations.logout.message": "Czy na pewno chcesz się wylogować?", "confirmations.mute.confirm": "Wycisz", - "confirmations.mute.explanation": "To schowa ich i wspominające ich posty, ale wciąż pozwoli im widzieć twoje posty i śledzić cię.", + "confirmations.mute.explanation": "To schowa ich i wspominające ich posty, ale wciąż pozwoli im widzieć twoje posty i obserwować cię.", "confirmations.mute.message": "Czy na pewno chcesz wyciszyć {name}?", "confirmations.redraft.confirm": "Usuń i przeredaguj", "confirmations.redraft.message": "Czy na pewno chcesz usunąć i przeredagować ten wpis? Polubienia i podbicia zostaną utracone, a odpowiedzi do oryginalnego wpisu zostaną osierocone.", "confirmations.reply.confirm": "Odpowiedz", "confirmations.reply.message": "W ten sposób utracisz wpis który obecnie tworzysz. Czy na pewno chcesz to zrobić?", - "confirmations.unfollow.confirm": "Przestań śledzić", - "confirmations.unfollow.message": "Czy na pewno zamierzasz przestać śledzić {name}?", + "confirmations.unfollow.confirm": "Przestań obserwować", + "confirmations.unfollow.message": "Czy na pewno zamierzasz przestać obserwować {name}?", "conversation.delete": "Usuń rozmowę", "conversation.mark_as_read": "Oznacz jako przeczytane", "conversation.open": "Zobacz rozmowę", "conversation.with": "Z {names}", + "copypaste.copied": "Skopiowano", + "copypaste.copy": "Kopiuj", "directory.federated": "Ze znanego fediwersum", "directory.local": "Tylko z {domain}", "directory.new_arrivals": "Nowości", "directory.recently_active": "Ostatnio aktywne", + "disabled_account_banner.account_settings": "Ustawienia konta", + "disabled_account_banner.text": "Twoje konto {disabledAccount} jest obecnie wyłączone.", + "dismissable_banner.community_timeline": "To są najnowsze wpisy publiczne od osób, które mają założone konta na {domain}.", + "dismissable_banner.dismiss": "Schowaj", + "dismissable_banner.explore_links": "Te wiadomości obecnie są komentowane przez osoby z tego serwera i pozostałych w zdecentralizowanej sieci.", + "dismissable_banner.explore_statuses": "Obecnie te wpisy z tego serwera i pozostałych serwerów w zdecentralizowanej sieci zyskują popularność na tym serwerze.", + "dismissable_banner.explore_tags": "Te hasztagi obecnie zyskują popularność wśród osób z tego serwera i pozostałych w zdecentralizowanej sieci.", + "dismissable_banner.public_timeline": "To są najnowsze publiczne wpisy od osób z tego i innych serwerów zdecentralizowanej sieci, o których ten serwer wie.", "embed.instructions": "Osadź ten wpis na swojej stronie wklejając poniższy kod.", "embed.preview": "Tak będzie to wyglądać:", "emoji_button.activity": "Aktywność", @@ -175,9 +218,9 @@ "empty_column.favourited_statuses": "Nie dodałeś(-aś) żadnego wpisu do ulubionych. Kiedy to zrobisz, pojawi się on tutaj.", "empty_column.favourites": "Nikt nie dodał tego wpisu do ulubionych. Gdy ktoś to zrobi, pojawi się tutaj.", "empty_column.follow_recommendations": "Wygląda na to, że nie można wygenerować dla Ciebie żadnych sugestii. Możesz spróbować wyszukać osoby, które znasz, lub przeglądać popularne hasztagi.", - "empty_column.follow_requests": "Nie masz żadnych próśb o możliwość śledzenia. Kiedy ktoś utworzy ją, pojawi się tutaj.", + "empty_column.follow_requests": "Nie masz żadnych próśb o możliwość obserwacji. Kiedy ktoś utworzy ją, pojawi się tutaj.", "empty_column.hashtag": "Nie ma wpisów oznaczonych tym hasztagiem. Możesz napisać pierwszy(-a).", - "empty_column.home": "Nie śledzisz nikogo. Odwiedź globalną oś czasu lub użyj wyszukiwarki, aby znaleźć interesujące Cię profile.", + "empty_column.home": "Nie obserwujesz nikogo. Odwiedź globalną oś czasu lub użyj wyszukiwarki, aby znaleźć interesujące Cię profile.", "empty_column.home.suggestions": "Zobacz kilka sugestii", "empty_column.list": "Nie ma nic na tej liście. Kiedy członkowie listy dodadzą nowe wpisy, pojawia się one tutaj.", "empty_column.lists": "Nie masz żadnych list. Kiedy utworzysz jedną, pojawi się tutaj.", @@ -196,21 +239,37 @@ "explore.trending_links": "Aktualności", "explore.trending_statuses": "Posty", "explore.trending_tags": "Hasztagi", + "filter_modal.added.context_mismatch_explanation": "Ta kategoria filtrów nie ma zastosowania do kontekstu, w którym uzyskałeś dostęp do tego wpisu. Jeśli chcesz, aby wpis został przefiltrowany również w tym kontekście, będziesz musiał edytować filtr.", + "filter_modal.added.context_mismatch_title": "Niezgodność kontekstów!", + "filter_modal.added.expired_explanation": "Ta kategoria filtra wygasła, będziesz musiał zmienić datę wygaśnięcia, aby ją zastosować.", + "filter_modal.added.expired_title": "Wygasły filtr!", + "filter_modal.added.review_and_configure": "Aby przejrzeć i skonfigurować tę kategorię filtrów, przejdź do {settings_link}.", + "filter_modal.added.review_and_configure_title": "Ustawienia filtra", + "filter_modal.added.settings_link": "strona ustawień", + "filter_modal.added.short_explanation": "Ten wpis został dodany do następującej kategorii filtrów: {title}.", + "filter_modal.added.title": "Filtr dodany!", + "filter_modal.select_filter.context_mismatch": "nie dotyczy tego kontekstu", + "filter_modal.select_filter.expired": "wygasły", + "filter_modal.select_filter.prompt_new": "Nowa kategoria: {name}", + "filter_modal.select_filter.search": "Szukaj lub utwórz", + "filter_modal.select_filter.subtitle": "Użyj istniejącej kategorii lub utwórz nową", + "filter_modal.select_filter.title": "Filtruj ten wpis", + "filter_modal.title.status": "Filtruj wpis", "follow_recommendations.done": "Gotowe", - "follow_recommendations.heading": "Śledź ludzi, których wpisy chcesz czytać. Oto kilka propozycji.", - "follow_recommendations.lead": "Wpisy osób, które śledzisz będą pojawiać się w porządku chronologicznym na stronie głównej. Nie bój się popełniać błędów, możesz bez problemu przestać śledzić każdego w każdej chwili!", + "follow_recommendations.heading": "Obserwuj ludzi, których wpisy chcesz czytać. Oto kilka propozycji.", + "follow_recommendations.lead": "Wpisy osób, które obserwujesz będą pojawiać się w porządku chronologicznym na stronie głównej. Nie bój się popełniać błędów, możesz bez problemu przestać obserwować każdego w każdej chwili!", "follow_request.authorize": "Autoryzuj", "follow_request.reject": "Odrzuć", - "follow_requests.unlocked_explanation": "Mimo że Twoje konto nie jest zablokowane, zespół {domain} uznał że możesz chcieć ręcznie przejrzeć prośby o możliwość śledzenia.", + "follow_requests.unlocked_explanation": "Mimo że Twoje konto nie jest zablokowane, zespół {domain} uznał że możesz chcieć ręcznie przejrzeć prośby o możliwość obserwacji.", + "footer.about": "O serwerze", + "footer.directory": "Katalog profilów", + "footer.get_app": "Pobierz aplikację", + "footer.invite": "Zaproś znajomych", + "footer.keyboard_shortcuts": "Skróty klawiszowe", + "footer.privacy_policy": "Polityka prywatności", + "footer.source_code": "Zobacz kod źródłowy", "generic.saved": "Zapisano", - "getting_started.developers": "Dla programistów", - "getting_started.directory": "Katalog profilów", - "getting_started.documentation": "Dokumentacja", "getting_started.heading": "Rozpocznij", - "getting_started.invite": "Zaproś znajomych", - "getting_started.open_source_notice": "Mastodon jest oprogramowaniem o otwartym źródle. Możesz pomóc w rozwoju lub zgłaszać błędy na GitHubie tutaj: {github}.", - "getting_started.security": "Bezpieczeństwo", - "getting_started.terms": "Zasady użytkowania", "hashtag.column_header.tag_mode.all": "i {additional}", "hashtag.column_header.tag_mode.any": "lub {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Dowolne", "hashtag.column_settings.tag_mode.none": "Żadne", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Obserwuj hasztag", + "hashtag.unfollow": "Przestań obserwować hashtag", "home.column_settings.basic": "Podstawowe", "home.column_settings.show_reblogs": "Pokazuj podbicia", "home.column_settings.show_replies": "Pokazuj odpowiedzi", "home.hide_announcements": "Ukryj ogłoszenia", "home.show_announcements": "Pokaż ogłoszenia", + "interaction_modal.description.favourite": "Mając konto na Mastodonie, możesz dodawać wpisy do ulubionych by dać znać jego autorowi, że podoba Ci się ten wpis i zachować go na później.", + "interaction_modal.description.follow": "Mając konto na Mastodonie, możesz śledzić {name} by widzieć jego wpisy na swojej głównej osi czasu.", + "interaction_modal.description.reblog": "Mając konto na Mastodonie, możesz podbić ten wpis i udostępnić go Twoim obserwującym.", + "interaction_modal.description.reply": "Mając konto na Mastodonie, możesz odpowiedzieć na ten wpis.", + "interaction_modal.on_another_server": "Na innym serwerze", + "interaction_modal.on_this_server": "Na tym serwerze", + "interaction_modal.other_server_instructions": "Skopiuj i wklej ten adres URL do pola wyszukiwania w swojej ulubionej aplikacji Mastodon lub interfejsu internetowego swojego serwera Mastodon.", + "interaction_modal.preamble": "Ponieważ Mastodon jest zdecentralizowany, możesz użyć swojego istniejącego konta z innego serwera Mastodona lub innej kompatybilnej usługi, jeśli nie masz konta na tym serwerze.", + "interaction_modal.title.favourite": "Polub wpis użytkownika {name}", + "interaction_modal.title.follow": "Śledź {name}", + "interaction_modal.title.reblog": "Podbij wpis {name}", + "interaction_modal.title.reply": "Odpowiedz na post {name}", "intervals.full.days": "{number, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}", "intervals.full.hours": "{number, plural, one {# godzina} few {# godziny} many {# godzin} other {# godzin}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}", @@ -253,13 +326,13 @@ "keyboard_shortcuts.pinned": "aby przejść do listy przypiętych wpisów", "keyboard_shortcuts.profile": "aby przejść do profilu autora wpisu", "keyboard_shortcuts.reply": "aby odpowiedzieć", - "keyboard_shortcuts.requests": "aby przejść do listy próśb o możliwość śledzenia", + "keyboard_shortcuts.requests": "aby przejść do listy próśb o możliwość obserwacji", "keyboard_shortcuts.search": "aby przejść do pola wyszukiwania", "keyboard_shortcuts.spoilers": "aby pokazać/ukryć pole CW", "keyboard_shortcuts.start": "aby otworzyć kolumnę „Rozpocznij”", "keyboard_shortcuts.toggle_hidden": "aby wyświetlić lub ukryć wpis spod CW", "keyboard_shortcuts.toggle_sensitivity": "by pokazać/ukryć multimedia", - "keyboard_shortcuts.toot": "aby utworzyć nowy wpis", + "keyboard_shortcuts.toot": "Stwórz nowy post", "keyboard_shortcuts.unfocus": "aby opuścić pole wyszukiwania/pisania", "keyboard_shortcuts.up": "aby przejść na górę listy", "lightbox.close": "Zamknij", @@ -267,8 +340,8 @@ "lightbox.expand": "Rozwiń pole widoku obrazu", "lightbox.next": "Następne", "lightbox.previous": "Poprzednie", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Pokaż profil mimo wszystko", + "limited_account_hint.title": "Ten profil został ukryty przez moderatorów {domain}.", "lists.account.add": "Dodaj do listy", "lists.account.remove": "Usunąć z listy", "lists.delete": "Usuń listę", @@ -280,17 +353,18 @@ "lists.replies_policy.list": "Członkowie listy", "lists.replies_policy.none": "Nikt", "lists.replies_policy.title": "Pokazuj odpowiedzi dla:", - "lists.search": "Szukaj wśród osób które śledzisz", + "lists.search": "Szukaj wśród osób które obserwujesz", "lists.subheading": "Twoje listy", - "load_pending": "{count, plural, one {# nowy przedmiot} other {nowe przedmioty}}", + "load_pending": "{count, plural, one {# nowa pozycja} other {nowe pozycje}}", "loading_indicator.label": "Ładowanie…", "media_gallery.toggle_visible": "Przełącz widoczność", "missing_indicator.label": "Nie znaleziono", "missing_indicator.sublabel": "Nie można odnaleźć tego zasobu", + "moved_to_account_banner.text": "Twoje konto {disabledAccount} jest obecnie wyłączone, ponieważ zostało przeniesione na {movedToAccount}.", "mute_modal.duration": "Czas", "mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?", "mute_modal.indefinite": "Nieokreślony", - "navigation_bar.apps": "Aplikacje mobilne", + "navigation_bar.about": "O serwerze", "navigation_bar.blocks": "Zablokowani użytkownicy", "navigation_bar.bookmarks": "Zakładki", "navigation_bar.community_timeline": "Lokalna oś czasu", @@ -302,10 +376,8 @@ "navigation_bar.explore": "Odkrywaj", "navigation_bar.favourites": "Ulubione", "navigation_bar.filters": "Wyciszone słowa", - "navigation_bar.follow_requests": "Prośby o śledzenie", - "navigation_bar.follows_and_followers": "Śledzeni i śledzący", - "navigation_bar.info": "Szczegółowe informacje", - "navigation_bar.keyboard_shortcuts": "Skróty klawiszowe", + "navigation_bar.follow_requests": "Prośby o obserwację", + "navigation_bar.follows_and_followers": "Obserwowani i obserwujący", "navigation_bar.lists": "Listy", "navigation_bar.logout": "Wyloguj", "navigation_bar.mutes": "Wyciszeni użytkownicy", @@ -313,11 +385,14 @@ "navigation_bar.pins": "Przypięte wpisy", "navigation_bar.preferences": "Preferencje", "navigation_bar.public_timeline": "Globalna oś czasu", + "navigation_bar.search": "Szukaj", "navigation_bar.security": "Bezpieczeństwo", + "not_signed_in_indicator.not_signed_in": "Musisz się zalogować, aby otrzymać dostęp do tego zasobu.", + "notification.admin.report": "{name} zgłosił {target}", "notification.admin.sign_up": "Użytkownik {name} zarejestrował się", "notification.favourite": "{name} dodał(a) Twój wpis do ulubionych", - "notification.follow": "{name} zaczął(-ęła) Cię śledzić", - "notification.follow_request": "{name} poprosił(a) o możliwość śledzenia Cię", + "notification.follow": "{name} zaczął(-ęła) Cię obserwować", + "notification.follow_request": "{name} poprosił(a) o możliwość obserwacji Cię", "notification.mention": "{name} wspomniał(a) o tobie", "notification.own_poll": "Twoje głosowanie zakończyło się", "notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyło się", @@ -326,14 +401,15 @@ "notification.update": "{name} edytował post", "notifications.clear": "Wyczyść powiadomienia", "notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?", + "notifications.column_settings.admin.report": "Nowe raporty:", "notifications.column_settings.admin.sign_up": "Nowe rejestracje:", "notifications.column_settings.alert": "Powiadomienia na pulpicie", "notifications.column_settings.favourite": "Dodanie do ulubionych:", "notifications.column_settings.filter_bar.advanced": "Wyświetl wszystkie kategorie", "notifications.column_settings.filter_bar.category": "Szybkie filtrowanie", "notifications.column_settings.filter_bar.show_bar": "Pokaż filtry", - "notifications.column_settings.follow": "Nowi śledzący:", - "notifications.column_settings.follow_request": "Nowe prośby o możliwość śledzenia:", + "notifications.column_settings.follow": "Nowi obserwujący:", + "notifications.column_settings.follow_request": "Nowe prośby o możliwość obserwacji:", "notifications.column_settings.mention": "Wspomnienia:", "notifications.column_settings.poll": "Wyniki głosowania:", "notifications.column_settings.push": "Powiadomienia push", @@ -347,7 +423,7 @@ "notifications.filter.all": "Wszystkie", "notifications.filter.boosts": "Podbicia", "notifications.filter.favourites": "Ulubione", - "notifications.filter.follows": "Śledzenia", + "notifications.filter.follows": "Obserwacje", "notifications.filter.mentions": "Wspomienia", "notifications.filter.polls": "Wyniki głosowania", "notifications.filter.statuses": "Aktualizacje od osób które obserwujesz", @@ -373,12 +449,14 @@ "privacy.change": "Dostosuj widoczność wpisów", "privacy.direct.long": "Widoczny tylko dla wspomnianych", "privacy.direct.short": "Tylko wspomniane osoby", - "privacy.private.long": "Widoczny tylko dla osób, które Cię śledzą", - "privacy.private.short": "Tylko śledzący", + "privacy.private.long": "Widoczny tylko dla osób, które Cię obserwują", + "privacy.private.short": "Tylko obserwujący", "privacy.public.long": "Widoczne dla każdego", "privacy.public.short": "Publiczny", "privacy.unlisted.long": "Widoczne dla każdego, z wyłączeniem funkcji odkrywania", "privacy.unlisted.short": "Niewidoczny", + "privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}", + "privacy_policy.title": "Polityka prywatności", "refresh": "Odśwież", "regeneration_indicator.label": "Ładuję…", "regeneration_indicator.sublabel": "Twoja oś czasu jest przygotowywana!", @@ -395,7 +473,7 @@ "relative_time.today": "dzisiaj", "reply_indicator.cancel": "Anuluj", "report.block": "Zablokuj", - "report.block_explanation": "Nie zobaczysz ich postów. Nie będą mogli zobaczyć Twoich postów ani cię śledzić. Będą mogli domyślić się, że są zablokowani.", + "report.block_explanation": "Nie zobaczysz ich postów. Nie będą mogli zobaczyć Twoich postów ani cię obserwować. Będą mogli domyślić się, że są zablokowani.", "report.categories.other": "Inne", "report.categories.spam": "Spam", "report.categories.violation": "Zawartość narusza co najmniej jedną zasadę serwera", @@ -408,7 +486,7 @@ "report.forward": "Przekaż na {target}", "report.forward_hint": "To konto znajduje się na innej instancji. Czy chcesz wysłać anonimową kopię zgłoszenia rnież na nią?", "report.mute": "Wycisz", - "report.mute_explanation": "Nie zobaczysz ich wpisów. Mimo to będą mogli wciąż śledzić cię i widzieć twoje wpisy, ale nie będą widzieli, że są wyciszeni.", + "report.mute_explanation": "Nie zobaczysz ich wpisów. Mimo to będą mogli wciąż obserwować cię i widzieć twoje wpisy, ale nie będą widzieli, że są wyciszeni.", "report.next": "Dalej", "report.placeholder": "Dodatkowe komentarze", "report.reasons.dislike": "Nie podoba mi się to", @@ -429,9 +507,15 @@ "report.thanks.take_action_actionable": "W trakcie jak będziemy się przyglądać tej sprawie, możesz podjąć akcje przeciwko @{name}:", "report.thanks.title": "Nie chcesz tego widzieć?", "report.thanks.title_actionable": "Dziękujemy za zgłoszenie. Przyjrzymy się tej sprawie.", - "report.unfollow": "Przestań śledzić @{name}", - "report.unfollow_explanation": "Śledzisz to konto. Jeśli nie chcesz już widzieć postów z tego konta w swojej głównej osi czasu, przestań je śledzić.", + "report.unfollow": "Przestań obserwować @{name}", + "report.unfollow_explanation": "Obserwujesz to konto. Jeśli nie chcesz już widzieć postów z tego konta w swojej głównej osi czasu, przestań je obserwować.", + "report_notification.attached_statuses": "{count, plural, one {{count} wpis} few {{count} wpisy} many {{counter} wpisów} other {{counter} wpisów}}", + "report_notification.categories.other": "Inne", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Naruszenie zasad", + "report_notification.open": "Otwórz raport", "search.placeholder": "Szukaj", + "search.search_or_paste": "Wyszukaj lub wklej adres", "search_popout.search_format": "Zaawansowane wyszukiwanie", "search_popout.tips.full_text": "Pozwala na wyszukiwanie wpisów które napisałeś(-aś), dodałeś(-aś) do ulubionych lub podbiłeś(-aś), w których o Tobie wspomniano, oraz pasujące nazwy użytkowników, pełne nazwy i hashtagi.", "search_popout.tips.hashtag": "hasztag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Nie znaleziono innych wyników dla tego wyszukania", "search_results.statuses": "Wpisy", "search_results.statuses_fts_disabled": "Szukanie wpisów przy pomocy ich zawartości nie jest włączone na tym serwerze Mastodona.", - "search_results.total": "{count, number} {count, plural, one {wynik} few {wyniki} many {wyników} more {wyników}}", + "search_results.title": "Wyszukiwanie {q}", + "search_results.total": "{count, number} {count, plural, one {wynik} few {wyniki} many {wyników} other {wyników}}", + "server_banner.about_active_users": "Osoby korzystające z tego serwera w ciągu ostatnich 30 dni (Miesięcznie aktywni użytkownicy)", + "server_banner.active_users": "aktywni użytkownicy", + "server_banner.administered_by": "Zarządzana przez:", + "server_banner.introduction": "{domain} jest częścią zdecentralizowanej sieci społecznościowej wspieranej przez {mastodon}.", + "server_banner.learn_more": "Dowiedz się więcej", + "server_banner.server_stats": "Statystyki serwera:", + "sign_in_banner.create_account": "Załóż konto", + "sign_in_banner.sign_in": "Zaloguj się", + "sign_in_banner.text": "Zaloguj się, aby obserwować profile lub hasztagi, jak również dodawaj wpisy do ulubionych, udostępniaj je dalej i odpowiadaj na nie lub wchodź w interakcje z kontem na innym serwerze.", "status.admin_account": "Otwórz interfejs moderacyjny dla @{name}", "status.admin_status": "Otwórz ten wpis w interfejsie moderacyjnym", "status.block": "Zablokuj @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edytowano {count, plural, one {{count} raz} other {{count} razy}}", "status.embed": "Osadź", "status.favourite": "Dodaj do ulubionych", + "status.filter": "Filtruj ten wpis", "status.filtered": "Filtrowany(-a)", + "status.hide": "Schowaj toota", "status.history.created": "{name} utworzył(a) {date}", "status.history.edited": "{name} edytował(a) {date}", "status.load_more": "Załaduj więcej", @@ -479,36 +575,42 @@ "status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.", "status.redraft": "Usuń i przeredaguj", "status.remove_bookmark": "Usuń zakładkę", + "status.replied_to": "Odpowiedź do wpisu użytkownika {name}", "status.reply": "Odpowiedz", "status.replyAll": "Odpowiedz na wątek", "status.report": "Zgłoś @{name}", "status.sensitive_warning": "Wrażliwa zawartość", "status.share": "Udostępnij", + "status.show_filter_reason": "Pokaż mimo wszystko", "status.show_less": "Zwiń", "status.show_less_all": "Zwiń wszystkie", "status.show_more": "Rozwiń", "status.show_more_all": "Rozwiń wszystkie", - "status.show_thread": "Pokaż wątek", + "status.show_original": "Pokaż oryginał", + "status.translate": "Przetłumacz", + "status.translated_from_with": "Przetłumaczono z {lang} przy użyciu {provider}", "status.uncached_media_warning": "Niedostępne", "status.unmute_conversation": "Cofnij wyciszenie konwersacji", "status.unpin": "Odepnij z profilu", + "subscribed_languages.lead": "Tylko posty w wybranych językach pojawią się na Twojej osi czasu po zmianie. Nie wybieraj żadnego języka aby otrzymywać posty we wszystkich językach.", + "subscribed_languages.save": "Zapisz zmiany", + "subscribed_languages.target": "Zmień subskrybowane języki dla {target}", "suggestions.dismiss": "Odrzuć sugestię", "suggestions.header": "Może Cię zainteresować…", "tabs_bar.federated_timeline": "Globalne", "tabs_bar.home": "Strona główna", "tabs_bar.local_timeline": "Lokalne", "tabs_bar.notifications": "Powiadomienia", - "tabs_bar.search": "Szukaj", "time_remaining.days": "{number, plural, one {Pozostał # dzień} few {Pozostały # dni} many {Pozostało # dni} other {Pozostało # dni}}", "time_remaining.hours": "{number, plural, one {Pozostała # godzina} few {Pozostały # godziny} many {Pozostało # godzin} other {Pozostało # godzin}}", "time_remaining.minutes": "{number, plural, one {Pozostała # minuta} few {Pozostały # minuty} many {Pozostało # minut} other {Pozostało # minut}}", "time_remaining.moments": "Pozostała chwila", "time_remaining.seconds": "{number, plural, one {Pozostała # sekunda} few {Pozostały # sekundy} many {Pozostało # sekund} other {Pozostało # sekund}}", "timeline_hint.remote_resource_not_displayed": "{resource} z innych serwerów nie są wyświetlane.", - "timeline_hint.resources.followers": "Śledzący", - "timeline_hint.resources.follows": "Śledzeni", + "timeline_hint.resources.followers": "Obserwujący", + "timeline_hint.resources.follows": "Obserwowani", "timeline_hint.resources.statuses": "Starsze wpisy", - "trends.counter_by_accounts": "rozmawiają: {count, plural, one {{counter} osoba} few {{counter} osoby} many {{counter} osób} other {{counter} osoby}}", + "trends.counter_by_accounts": "{count, plural, one {jedna osoba} few {{count} osoby} many {{count} osób} other {{counter} ludzie}} w ciągu {days, plural, one {ostatniego dnia} other {ostatnich {days} dni}}", "trends.trending_now": "Popularne teraz", "ui.beforeunload": "Utracisz tworzony wpis, jeżeli opuścisz Mastodona.", "units.short.billion": "{count} mld", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Przygotowywanie OCR…", "upload_modal.preview_label": "Podgląd ({ratio})", "upload_progress.label": "Wysyłanie…", + "upload_progress.processing": "Przetwarzanie…", "video.close": "Zamknij film", "video.download": "Pobierz plik", "video.exit_fullscreen": "Opuść tryb pełnoekranowy", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index d6f0ead947e536..ab241a4221c813 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contato:", + "about.disclaimer": "Mastodon é um software de código aberto e livre, e uma marca registrada de Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "O Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor em específico.", + "about.domain_blocks.silenced.explanation": "Você geralmente não verá perfis e conteúdo deste servidor, a menos que você o procure explicitamente ou opte por seguir.", + "about.domain_blocks.silenced.title": "Limitado", + "about.domain_blocks.suspended.explanation": "Nenhum dado desse servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os usuários deste servidor.", + "about.domain_blocks.suspended.title": "Suspenso", + "about.not_available": "Esta informação não foi disponibilizada neste servidor.", + "about.powered_by": "Redes sociais descentralizadas alimentadas por {mastodon}", + "about.rules": "Regras do servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Adicionar ou remover de listas", "account.badges.bot": "Robô", @@ -7,13 +19,16 @@ "account.block_domain": "Bloquear domínio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Veja mais no perfil original", - "account.cancel_follow_request": "Cancelar solicitação", + "account.cancel_follow_request": "Cancelar solicitação para seguir", "account.direct": "Enviar toot direto para @{name}", "account.disable_notifications": "Cancelar notificações de @{name}", "account.domain_blocked": "Domínio bloqueado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificar novos toots de @{name}", "account.endorse": "Recomendar", + "account.featured_tags.last_status_at": "Última publicação em {date}", + "account.featured_tags.last_status_never": "Sem publicações", + "account.featured_tags.title": "Hashtags em destaque de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Nada aqui.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {segue {counter}} other {segue {counter}}}", "account.follows.empty": "Nada aqui.", "account.follows_you": "te segue", + "account.go_to_profile": "Ir para o perfil", "account.hide_reblogs": "Ocultar boosts de @{name}", - "account.joined": "Entrou em {date}", + "account.joined_short": "Entrou", + "account.languages": "Mudar idiomas inscritos", "account.link_verified_on": "link verificado em {date}", "account.locked_info": "Trancado. Seguir requer aprovação manual do perfil.", "account.media": "Mídia", "account.mention": "Mencionar @{name}", - "account.moved_to": "{name} se mudou para:", + "account.moved_to": "{name} indicou que sua nova conta agora é:", "account.mute": "Silenciar @{name}", "account.mute_notifications": "Ocultar notificações de @{name}", "account.muted": "Silenciado", + "account.open_original_page": "Abrir a página original", "account.posts": "Toots", "account.posts_with_replies": "Com respostas", "account.report": "Denunciar @{name}", @@ -46,7 +64,7 @@ "account.unfollow": "Deixar de seguir", "account.unmute": "Dessilenciar @{name}", "account.unmute_notifications": "Mostrar notificações de @{name}", - "account.unmute_short": "Reativar", + "account.unmute_short": "Dessilenciar", "account_note.placeholder": "Nota pessoal sobre este perfil aqui", "admin.dashboard.daily_retention": "Taxa de retenção de usuários por dia, após a inscrição", "admin.dashboard.monthly_retention": "Taxa de retenção de usuários por mês, após a inscrição", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Eita!", "announcement.announcement": "Comunicados", "attachments_list.unprocessed": "(não processado)", + "audio.hide": "Ocultar áudio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pressione {combo} para pular isso na próxima vez", - "bundle_column_error.body": "Erro ao carregar este componente.", + "bundle_column_error.copy_stacktrace": "Copiar erro de informe", + "bundle_column_error.error.body": "A página solicitada não pode ser renderizada. Pode ser devido a um erro em nosso código ou um problema de compatibilidade do navegador.", + "bundle_column_error.error.title": "Ah, não!", + "bundle_column_error.network.body": "Ocorreu um erro ao tentar carregar esta página. Isso pode ser devido a um problema temporário com sua conexão de internet ou deste servidor.", + "bundle_column_error.network.title": "Erro de rede", "bundle_column_error.retry": "Tente novamente", - "bundle_column_error.title": "Erro de rede", + "bundle_column_error.return": "Voltar à página inicial", + "bundle_column_error.routing.body": "A página solicitada não foi encontrada. Tem certeza de que a URL na barra de endereços está correta?", + "bundle_column_error.routing.title": "Erro 404", "bundle_modal_error.close": "Fechar", "bundle_modal_error.message": "Erro ao carregar este componente.", "bundle_modal_error.retry": "Tente novamente", + "closed_registrations.other_server_instructions": "Como o Mastodon é descentralizado, você pode criar uma conta em outro servidor e ainda pode interagir com este.", + "closed_registrations_modal.description": "Não é possível criar uma conta em {domain} no momento, mas atente que você não precisa de uma conta especificamente em {domain} para usar o Mastodon.", + "closed_registrations_modal.find_another_server": "Encontrar outro servidor", + "closed_registrations_modal.preamble": "O Mastodon é descentralizado, não importa onde você criou a sua conta, será possível seguir e interagir com qualquer pessoa neste servidor. Você pode até mesmo criar o seu próprio servidor!", + "closed_registrations_modal.title": "Inscrevendo-se no Mastodon", + "column.about": "Sobre", "column.blocks": "Usuários bloqueados", "column.bookmarks": "Salvos", "column.community": "Linha local", @@ -95,7 +126,7 @@ "compose.language.change": "Alterar idioma", "compose.language.search": "Pesquisar idiomas...", "compose_form.direct_message_warning_learn_more": "Saiba mais", - "compose_form.encryption_warning": "Postagens no Mastodon não são criptografados de ponta a ponta. Não compartilhe nenhuma informação perigosa sobre o Mastodon.", + "compose_form.encryption_warning": "As publicações no Mastodon não são criptografadas de ponta-a-ponta. Não compartilhe nenhuma informação sensível no Mastodon.", "compose_form.hashtag_warning": "Este toot não aparecerá em nenhuma hashtag porque está como não-listado. Somente toots públicos podem ser pesquisados por hashtag.", "compose_form.lock_disclaimer": "Seu perfil não está {locked}. Qualquer um pode te seguir e ver os toots privados.", "compose_form.lock_disclaimer.lock": "trancado", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remover opção", "compose_form.poll.switch_to_multiple": "Permitir múltiplas escolhas", "compose_form.poll.switch_to_single": "Opção única", - "compose_form.publish": "TOOT", + "compose_form.publish": "Publicar", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Salvar alterações", "compose_form.sensitive.hide": "{count, plural, one {Marcar mídia como sensível} other {Marcar mídias como sensível}}", @@ -119,12 +150,14 @@ "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "Você tem certeza de que deseja bloquear {name}?", + "confirmations.cancel_follow_request.confirm": "Cancelar a solicitação", + "confirmations.cancel_follow_request.message": "Tem certeza de que deseja cancelar seu pedido para seguir {name}?", "confirmations.delete.confirm": "Excluir", "confirmations.delete.message": "Você tem certeza de que deseja excluir este toot?", "confirmations.delete_list.confirm": "Excluir", "confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?", "confirmations.discard_edit_media.confirm": "Descartar", - "confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia; descartar assim mesmo?", + "confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?", "confirmations.domain_block.confirm": "Bloquear instância", "confirmations.domain_block.message": "Você tem certeza de que deseja bloquear tudo de {domain}? Você não verá mais o conteúdo desta instância em nenhuma linha do tempo pública ou nas suas notificações. Seus seguidores desta instância serão removidos.", "confirmations.logout.confirm": "Sair", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", "conversation.with": "Com {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Do fediverso conhecido", "directory.local": "Somente de {domain}", "directory.new_arrivals": "Acabaram de chegar", "directory.recently_active": "Ativos recentemente", + "disabled_account_banner.account_settings": "Configurações da conta", + "disabled_account_banner.text": "Sua conta {disabledAccount} está desativada no momento.", + "dismissable_banner.community_timeline": "Estas são as publicações públicas mais recentes das pessoas cujas contas são hospedadas por {domain}.", + "dismissable_banner.dismiss": "Dispensar", + "dismissable_banner.explore_links": "Estas novas histórias estão sendo contadas por pessoas neste e em outros servidores da rede descentralizada no momento.", + "dismissable_banner.explore_statuses": "Estas publicações deste e de outros servidores na rede descentralizada estão ganhando popularidade neste servidor agora.", + "dismissable_banner.explore_tags": "Estas hashtags estão ganhando popularidade no momento entre as pessoas deste e de outros servidores da rede descentralizada.", + "dismissable_banner.public_timeline": "Estas são as publicações mais recentes de pessoas deste e de outros servidores da rede descentralizada que este servidor conhece.", "embed.instructions": "Incorpore este toot no seu site ao copiar o código abaixo.", "embed.preview": "Aqui está como vai ficar:", "emoji_button.activity": "Atividade", @@ -194,23 +237,39 @@ "explore.suggested_follows": "Para você", "explore.title": "Explorar", "explore.trending_links": "Notícias", - "explore.trending_statuses": "Posts", + "explore.trending_statuses": "Publicações", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Esta categoria de filtro não se aplica ao contexto no qual você acessou esta publicação. Se quiser que a publicação seja filtrada nesse contexto também, você terá que editar o filtro.", + "filter_modal.added.context_mismatch_title": "Incompatibilidade de contexto!", + "filter_modal.added.expired_explanation": "Esta categoria de filtro expirou, você precisará alterar a data de expiração para aplicar.", + "filter_modal.added.expired_title": "Filtro expirado!", + "filter_modal.added.review_and_configure": "Para revisar e configurar ainda mais esta categoria de filtro, vá até {settings_link}.", + "filter_modal.added.review_and_configure_title": "Configurações de filtro", + "filter_modal.added.settings_link": "página de configurações", + "filter_modal.added.short_explanation": "Esta publicação foi adicionada à seguinte categoria de filtro: {title}.", + "filter_modal.added.title": "Filtro adicionado!", + "filter_modal.select_filter.context_mismatch": "não se aplica a este contexto", + "filter_modal.select_filter.expired": "expirado", + "filter_modal.select_filter.prompt_new": "Nova categoria: {name}", + "filter_modal.select_filter.search": "Buscar ou criar", + "filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova", + "filter_modal.select_filter.title": "Filtrar esta publicação", + "filter_modal.title.status": "Filtrar uma publicação", "follow_recommendations.done": "Salvar", "follow_recommendations.heading": "Siga pessoas que você gostaria de acompanhar! Aqui estão algumas sugestões.", "follow_recommendations.lead": "Toots de pessoas que você segue aparecerão em ordem cronológica na página inicial. Não tenha medo de cometer erros, você pode facilmente deixar de seguir a qualquer momento!", "follow_request.authorize": "Aprovar", "follow_request.reject": "Recusar", "follow_requests.unlocked_explanation": "Apesar de seu perfil não ser trancado, {domain} exige que você revise a solicitação para te seguir destes perfis manualmente.", + "footer.about": "Sobre", + "footer.directory": "Diretório de perfis", + "footer.get_app": "Baixe o app", + "footer.invite": "Convidar pessoas", + "footer.keyboard_shortcuts": "Atalhos de teclado", + "footer.privacy_policy": "Política de privacidade", + "footer.source_code": "Exibir código-fonte", "generic.saved": "Salvo", - "getting_started.developers": "Desenvolvedores", - "getting_started.directory": "Centro de usuários", - "getting_started.documentation": "Documentação", "getting_started.heading": "Primeiros passos", - "getting_started.invite": "Convidar pessoas", - "getting_started.open_source_notice": "Mastodon é um software de código aberto. Você pode contribuir ou reportar problemas na página do projeto no GitHub em {github}.", - "getting_started.security": "Configurações da conta", - "getting_started.terms": "Termos de serviço", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sem {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Qualquer uma", "hashtag.column_settings.tag_mode.none": "Nenhuma", "hashtag.column_settings.tag_toggle": "Adicionar mais hashtags aqui", + "hashtag.follow": "Seguir hashtag", + "hashtag.unfollow": "Parar de seguir hashtag", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar boosts", "home.column_settings.show_replies": "Mostrar respostas", "home.hide_announcements": "Ocultar comunicados", "home.show_announcements": "Mostrar comunicados", + "interaction_modal.description.favourite": "Com uma conta no Mastodon, você pode favoritar esta publicação para que o autor saiba que você gostou e salvá-lo para mais ler mais tarde.", + "interaction_modal.description.follow": "Com uma conta no Mastodon, você pode seguir {name} para receber publicações na sua página inicial.", + "interaction_modal.description.reblog": "Com uma conta no Mastodon, você pode impulsionar esta publicação para compartilhá-lo com seus próprios seguidores.", + "interaction_modal.description.reply": "Com uma conta no Mastodon, você pode responder a esta publicação.", + "interaction_modal.on_another_server": "Em um servidor diferente", + "interaction_modal.on_this_server": "Neste servidor", + "interaction_modal.other_server_instructions": "Copie e cole esta URL no campo de pesquisa do seu aplicativo Mastodon favorito ou a interface web do seu servidor Mastodon.", + "interaction_modal.preamble": "Como o Mastodon é descentralizado, você pode usar sua conta existente em outro servidor Mastodon ou plataforma compatível se você não tiver uma conta neste servidor.", + "interaction_modal.title.favourite": "Favoritar publicação de {name}", + "interaction_modal.title.follow": "Seguir {name}", + "interaction_modal.title.reblog": "Impulsionar publicação de {name}", + "interaction_modal.title.reply": "Responder à publicação de {name}", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Próximo", "lightbox.previous": "Anterior", "limited_account_hint.action": "Exibir perfil mesmo assim", - "limited_account_hint.title": "Este perfil foi ocultado pelos moderadores do seu servidor.", + "limited_account_hint.title": "Este perfil foi ocultado pelos moderadores do {domain}.", "lists.account.add": "Adicionar à lista", "lists.account.remove": "Remover da lista", "lists.delete": "Excluir lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Ocultar mídia} other {Ocultar mídias}}", "missing_indicator.label": "Não encontrado", "missing_indicator.sublabel": "Recurso não encontrado", + "moved_to_account_banner.text": "Sua conta {disabledAccount} está desativada porque você a moveu para {movedToAccount}.", "mute_modal.duration": "Duração", "mute_modal.hide_notifications": "Ocultar notificações deste usuário?", "mute_modal.indefinite": "Indefinido", - "navigation_bar.apps": "Aplicativos", + "navigation_bar.about": "Sobre", "navigation_bar.blocks": "Usuários bloqueados", "navigation_bar.bookmarks": "Salvos", "navigation_bar.community_timeline": "Linha do tempo local", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Palavras filtradas", "navigation_bar.follow_requests": "Seguidores pendentes", "navigation_bar.follows_and_followers": "Segue e seguidores", - "navigation_bar.info": "Sobre este servidor", - "navigation_bar.keyboard_shortcuts": "Atalhos de teclado", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Sair", "navigation_bar.mutes": "Usuários silenciados", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Toots fixados", "navigation_bar.preferences": "Preferências", "navigation_bar.public_timeline": "Linha global", + "navigation_bar.search": "Buscar", "navigation_bar.security": "Segurança", + "not_signed_in_indicator.not_signed_in": "Você precisa se autenticar para acessar este recurso.", + "notification.admin.report": "{name} denunciou {target}", "notification.admin.sign_up": "{name} se inscreveu", "notification.favourite": "{name} favoritou teu toot", "notification.follow": "{name} te seguiu", @@ -326,6 +401,7 @@ "notification.update": "{name} editou uma publicação", "notifications.clear": "Limpar notificações", "notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?", + "notifications.column_settings.admin.report": "Novos relatórios:", "notifications.column_settings.admin.sign_up": "Novas inscrições:", "notifications.column_settings.alert": "Notificações no computador", "notifications.column_settings.favourite": "Favoritos:", @@ -379,6 +455,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visível para todos, mas desativou os recursos de descoberta", "privacy.unlisted.short": "Não-listado", + "privacy_policy.last_updated": "Atualizado {date}", + "privacy_policy.title": "Política de privacidade", "refresh": "Atualizar", "regeneration_indicator.label": "Carregando…", "regeneration_indicator.sublabel": "Sua página inicial está sendo preparada!", @@ -395,7 +473,7 @@ "relative_time.today": "hoje", "reply_indicator.cancel": "Cancelar", "report.block": "Bloquear", - "report.block_explanation": "Você não verá suas postagens. Eles não poderão ver suas postagens ou segui-lo. Eles serão capazes de perceber que estão bloqueados.", + "report.block_explanation": "Você não verá suas publicações. Ele não poderá ver suas publicações ou segui-lo, e será capaz de perceber que está bloqueado.", "report.categories.other": "Outro", "report.categories.spam": "Spam", "report.categories.violation": "O conteúdo viola uma ou mais regras do servidor", @@ -408,7 +486,7 @@ "report.forward": "Encaminhar para {target}", "report.forward_hint": "A conta está em outra instância. Enviar uma cópia anônima da denúncia para lá?", "report.mute": "Silenciar", - "report.mute_explanation": "Você não verá suas postagens. Eles ainda podem seguir você e ver suas postagens e não saberão que estão silenciados.", + "report.mute_explanation": "Você não verá suas publicações. Ele ainda pode seguir você e ver suas publicações, e não saberá que está silenciado.", "report.next": "Próximo", "report.placeholder": "Comentários adicionais aqui", "report.reasons.dislike": "Eu não gosto disso", @@ -420,7 +498,7 @@ "report.reasons.violation": "Viola as regras do servidor", "report.reasons.violation_description": "Você está ciente de que isso quebra regras específicas", "report.rules.subtitle": "Selecione tudo que se aplica", - "report.rules.title": "Que regras estão sendo violadas?", + "report.rules.title": "Quais regras estão sendo violadas?", "report.statuses.subtitle": "Selecione tudo que se aplica", "report.statuses.title": "Existem postagens que respaldam esse relatório?", "report.submit": "Enviar", @@ -428,10 +506,16 @@ "report.thanks.take_action": "Aqui estão suas opções para controlar o que você vê no Mastodon:", "report.thanks.take_action_actionable": "Enquanto revisamos isso, você pode tomar medidas contra @{name}:", "report.thanks.title": "Não quer ver isto?", - "report.thanks.title_actionable": "Obrigado por reportar. Vamos analisar.", + "report.thanks.title_actionable": "Obrigado por denunciar, nós vamos analisar.", "report.unfollow": "Deixar de seguir @{name}", - "report.unfollow_explanation": "Você está seguindo esta conta. Para não mais ver os posts dele em sua página inicial, deixe de segui-lo.", + "report.unfollow_explanation": "Você está seguindo esta conta. Para não ver as publicações dela em sua página inicial, deixe de segui-la.", + "report_notification.attached_statuses": "{count, plural, one {{count} publicação} other {{count} publicações}} anexada(s)", + "report_notification.categories.other": "Outro", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Violação de regra", + "report_notification.open": "Abrir relatório", "search.placeholder": "Pesquisar", + "search.search_or_paste": "Buscar ou colar URL", "search_popout.search_format": "Formato de pesquisa avançada", "search_popout.tips.full_text": "Texto simples retorna toots que você escreveu, favoritou, deu boost, ou em que foi mencionado, assim como nomes de usuário e de exibição, e hashtags correspondentes.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Não foi possível encontrar nada para estes termos de busca", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Pesquisar toots por seu conteúdo não está ativado nesta instância Mastodon.", + "search_results.title": "Buscar {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Pessoas usando este servidor durante os últimos 30 dias (Usuários ativos mensalmente)", + "server_banner.active_users": "usuários ativos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} faz parte da rede social descentralizada desenvolvida por {mastodon}.", + "server_banner.learn_more": "Saiba mais", + "server_banner.server_stats": "Estatísticas do servidor:", + "sign_in_banner.create_account": "Criar conta", + "sign_in_banner.sign_in": "Entrar", + "sign_in_banner.text": "Entre para seguir perfis ou hashtags, favoritar, compartilhar e responder publicações, interagir a partir da sua conta em um servidor diferente.", "status.admin_account": "Abrir interface de moderação para @{name}", "status.admin_status": "Abrir este toot na interface de moderação", "status.block": "Bloquear @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Editado {count, plural, one {{count} hora} other {{count} vezes}}", "status.embed": "Incorporar", "status.favourite": "Favoritar", + "status.filter": "Filtrar esta publicação", "status.filtered": "Filtrado", + "status.hide": "Ocultar publicação", "status.history.created": "{name} criou {date}", "status.history.edited": "{name} editou {date}", "status.load_more": "Ver mais", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Nada aqui. Quando alguém der boost, o usuário aparecerá aqui.", "status.redraft": "Excluir e rascunhar", "status.remove_bookmark": "Remover do Salvos", + "status.replied_to": "Em resposta a {name}", "status.reply": "Responder", "status.replyAll": "Responder a conversa", "status.report": "Denunciar @{name}", "status.sensitive_warning": "Mídia sensível", "status.share": "Compartilhar", + "status.show_filter_reason": "Mostrar mesmo assim", "status.show_less": "Mostrar menos", "status.show_less_all": "Mostrar menos em tudo", "status.show_more": "Mostrar mais", "status.show_more_all": "Mostrar mais em tudo", - "status.show_thread": "Mostrar conversa", + "status.show_original": "Mostrar original", + "status.translate": "Traduzir", + "status.translated_from_with": "Traduzido do {lang} usando {provider}", "status.uncached_media_warning": "Não disponível", "status.unmute_conversation": "Dessilenciar conversa", "status.unpin": "Desafixar", + "subscribed_languages.lead": "Apenas publicações nos idiomas selecionados aparecerão na sua página inicial e outras linhas do tempo após a mudança. Selecione nenhum para receber publicações em todos os idiomas.", + "subscribed_languages.save": "Salvar alterações", + "subscribed_languages.target": "Alterar idiomas inscritos para {target}", "suggestions.dismiss": "Ignorar sugestão", "suggestions.header": "Talvez seja do teu interesse…", "tabs_bar.federated_timeline": "Linha global", "tabs_bar.home": "Página inicial", "tabs_bar.local_timeline": "Linha local", "tabs_bar.notifications": "Notificações", - "tabs_bar.search": "Pesquisar", "time_remaining.days": "{number, plural, one {# dia restante} other {# dias restantes}}", "time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}", "time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Seguidores", "timeline_hint.resources.follows": "Segue", "timeline_hint.resources.statuses": "Toots anteriores", - "trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} falando", + "trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} no(s) último(s) {days, plural, one {dia} other {{days} dias}}", "trends.trending_now": "Em alta agora", "ui.beforeunload": "Seu rascunho será perdido se sair do Mastodon.", "units.short.billion": "{count} bi", @@ -520,7 +622,7 @@ "upload_error.poll": "Mídias não podem ser anexadas em toots com enquetes.", "upload_form.audio_description": "Descrever para deficientes auditivos", "upload_form.description": "Descrever para deficientes visuais", - "upload_form.description_missing": "Nenhuma descrição adicionada", + "upload_form.description_missing": "Sem descrição", "upload_form.edit": "Editar", "upload_form.thumbnail": "Alterar miniatura", "upload_form.undo": "Excluir", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparando OCR…", "upload_modal.preview_label": "Prévia ({ratio})", "upload_progress.label": "Enviando...", + "upload_progress.processing": "Processando…", "video.close": "Fechar vídeo", "video.download": "Baixar", "video.exit_fullscreen": "Sair da tela cheia", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 89e6a68eef11bb..828efe9f9468be 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.disclaimer": "Mastodon é um software livre, de código aberto e uma marca registada do Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Motivo não disponível", + "about.domain_blocks.preamble": "Mastodon geralmente permite que veja e interaja com o conteúdo de utilizadores de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico.", + "about.domain_blocks.silenced.explanation": "Geralmente não verá perfis e conteúdo deste servidor, a menos que os procure explicitamente ou opte por os seguir.", + "about.domain_blocks.silenced.title": "Limitados", + "about.domain_blocks.suspended.explanation": "Nenhum dado dessas instâncias será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores dessas instâncias impossível.", + "about.domain_blocks.suspended.title": "Supensos", + "about.not_available": "Esta informação não foi disponibilizada neste servidor.", + "about.powered_by": "Rede social descentralizada baseada no {mastodon}", + "about.rules": "Regras da instância", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Adicionar ou remover das listas", "account.badges.bot": "Robô", @@ -7,13 +19,16 @@ "account.block_domain": "Esconder tudo do domínio {domain}", "account.blocked": "Bloqueado(a)", "account.browse_more_on_origin_server": "Encontrar mais no perfil original", - "account.cancel_follow_request": "Cancelar pedido para seguir", + "account.cancel_follow_request": "Retirar pedido para seguir", "account.direct": "Enviar mensagem direta para @{name}", "account.disable_notifications": "Parar de me notificar das publicações de @{name}", "account.domain_blocked": "Domínio bloqueado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificar-me das publicações de @{name}", "account.endorse": "Destacar no perfil", + "account.featured_tags.last_status_at": "Última publicação em {date}", + "account.featured_tags.last_status_never": "Sem publicações", + "account.featured_tags.title": "Hashtags destacadas por {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Ainda ninguém segue este utilizador.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, other {A seguir {counter}}}", "account.follows.empty": "Este utilizador ainda não segue ninguém.", "account.follows_you": "Segue-te", + "account.go_to_profile": "Ir para o perfil", "account.hide_reblogs": "Esconder partilhas de @{name}", - "account.joined": "Ingressou em {date}", + "account.joined_short": "Juntou-se a", + "account.languages": "Alterar idiomas subscritos", "account.link_verified_on": "A posse deste link foi verificada em {date}", "account.locked_info": "Esta conta é privada. O proprietário revê manualmente quem a pode seguir.", "account.media": "Média", "account.mention": "Mencionar @{name}", - "account.moved_to": "{name} mudou a sua conta para:", + "account.moved_to": "{name} indicou que a sua nova conta é agora:", "account.mute": "Silenciar @{name}", "account.mute_notifications": "Silenciar notificações de @{name}", "account.muted": "Silenciada", + "account.open_original_page": "Abrir a página original", "account.posts": "Toots", "account.posts_with_replies": "Publicações e respostas", "account.report": "Denunciar @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Bolas!", "announcement.announcement": "Anúncio", "attachments_list.unprocessed": "(não processado)", + "audio.hide": "Ocultar áudio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pode clicar {combo} para não voltar a ver", - "bundle_column_error.body": "Algo de errado aconteceu enquanto este componente era carregado.", + "bundle_column_error.copy_stacktrace": "Copiar relatório de erros", + "bundle_column_error.error.body": "A página solicitada não pôde ser renderizada. Isto pode ser devido a uma falha no nosso código ou a um problema de compatibilidade com o navegador.", + "bundle_column_error.error.title": "Oh, não!", + "bundle_column_error.network.body": "Houve um erro ao tentar carregar esta página. Isto pode ocorrer devido a um problema temporário com a sua conexão à internet ou a este servidor.", + "bundle_column_error.network.title": "Erro de rede", "bundle_column_error.retry": "Tente de novo", - "bundle_column_error.title": "Erro de rede", + "bundle_column_error.return": "Voltar à página inicial", + "bundle_column_error.routing.body": "A página solicitada não foi encontrada. Tem a certeza que o URL na barra de endereços está correto?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Fechar", "bundle_modal_error.message": "Algo de errado aconteceu enquanto este componente era carregado.", "bundle_modal_error.retry": "Tente de novo", + "closed_registrations.other_server_instructions": "Visto que o Mastodon é descentralizado, pode criar uma conta noutro servidor e interagir com este na mesma.", + "closed_registrations_modal.description": "Neste momento não é possível criar uma conta em {domain}, mas lembramos que não é preciso ter uma conta especificamente em {domain} para usar o Mastodon.", + "closed_registrations_modal.find_another_server": "Procurar outro servidor", + "closed_registrations_modal.preamble": "O Mastodon é descentralizado, por isso não importa onde a sua conta é criada, continuará a poder acompanhar e interagir com qualquer um neste servidor. Pode até alojar o seu próprio servidor!", + "closed_registrations_modal.title": "Inscrevendo-se no Mastodon", + "column.about": "Sobre", "column.blocks": "Utilizadores Bloqueados", "column.bookmarks": "Itens salvos", "column.community": "Cronologia local", @@ -95,7 +126,7 @@ "compose.language.change": "Alterar idioma", "compose.language.search": "Pesquisar idiomas...", "compose_form.direct_message_warning_learn_more": "Conhecer mais", - "compose_form.encryption_warning": "As publicações no Mastodon não são criptografadas de ponta a ponta. Não partilhe nenhuma informação sensível através do Mastodon.", + "compose_form.encryption_warning": "As publicações no Mastodon não são encriptadas ponta a ponta. Não partilhe nenhuma informação sensível através do Mastodon.", "compose_form.hashtag_warning": "Este toot não será listado em nenhuma hashtag por ser não listado. Apenas toots públics podem ser pesquisados por hashtag.", "compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Eliminar esta opção", "compose_form.poll.switch_to_multiple": "Alterar a votação para permitir múltiplas escolhas", "compose_form.poll.switch_to_single": "Alterar a votação para permitir uma única escolha", - "compose_form.publish": "Toot", + "compose_form.publish": "Publicar", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Guardar alterações", "compose_form.sensitive.hide": "Marcar media como sensível", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloquear e Denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "De certeza que queres bloquear {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar pedido", + "confirmations.cancel_follow_request.message": "Tem a certeza que pretende retirar o pedido para seguir {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "De certeza que quer eliminar esta publicação?", "confirmations.delete_list.confirm": "Eliminar", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", "conversation.with": "Com {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Do fediverso conhecido", "directory.local": "Apenas de {domain}", "directory.new_arrivals": "Recém chegados", "directory.recently_active": "Com actividade recente", + "disabled_account_banner.account_settings": "Definições da conta", + "disabled_account_banner.text": "A sua conta {disabledAccount} está, no momento, desativada.", + "dismissable_banner.community_timeline": "Estas são as publicações públicas mais recentes de pessoas cujas contas são hospedadas por {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Essas histórias de notícias estão, no momento, a ser faladas por pessoas neste e noutros servidores da rede descentralizada.", + "dismissable_banner.explore_statuses": "Estas publicações, deste e de outros servidores na rede descentralizada, estão, neste momento, a ganhar atenção neste servidor.", + "dismissable_banner.explore_tags": "Estas hashtags estão, neste momento, a ganhar atenção entre as pessoas neste e outros servidores da rede descentralizada.", + "dismissable_banner.public_timeline": "Estas são as publicações públicas mais recentes de pessoas neste e outros servidores da rede descentralizada que esse servidor conhece.", "embed.instructions": "Incorpore esta publicação no seu site copiando o código abaixo.", "embed.preview": "Podes ver aqui como irá ficar:", "emoji_button.activity": "Actividade", @@ -196,21 +239,37 @@ "explore.trending_links": "Notícias", "explore.trending_statuses": "Publicações", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "Esta categoria de filtro não se aplica ao contexto em que acedeu a esta publicação. Se pretender que esta publicação seja filtrada também neste contexto, terá que editar o filtro.", + "filter_modal.added.context_mismatch_title": "Contexto incoerente!", + "filter_modal.added.expired_explanation": "Esta categoria de filtro expirou, necessita alterar a data de validade para que ele seja aplicado.", + "filter_modal.added.expired_title": "Filtro expirado!", + "filter_modal.added.review_and_configure": "Para rever e configurar mais detalhadamente esta categoria de filtro, vá a {settings_link}.", + "filter_modal.added.review_and_configure_title": "Definições do filtro", + "filter_modal.added.settings_link": "página de definições", + "filter_modal.added.short_explanation": "Esta publicação foi adicionada à seguinte categoria de filtro: {title}.", + "filter_modal.added.title": "Filtro adicionado!", + "filter_modal.select_filter.context_mismatch": "não se aplica a este contexto", + "filter_modal.select_filter.expired": "expirado", + "filter_modal.select_filter.prompt_new": "Nova categoria: {name}", + "filter_modal.select_filter.search": "Pesquisar ou criar", + "filter_modal.select_filter.subtitle": "Utilize uma categoria existente ou crie uma nova", + "filter_modal.select_filter.title": "Filtrar esta publicação", + "filter_modal.title.status": "Filtrar uma publicação", "follow_recommendations.done": "Concluído", "follow_recommendations.heading": "Siga pessoas das quais gostaria de ver publicações! Aqui estão algumas sugestões.", "follow_recommendations.lead": "As publicações das pessoas que segue serão exibidos em ordem cronológica na sua página inicial. Não tenha medo de cometer erros, você pode deixar de seguir as pessoas tão facilmente a qualquer momento!", "follow_request.authorize": "Autorizar", "follow_request.reject": "Rejeitar", "follow_requests.unlocked_explanation": "Apesar de a sua não ser privada, a administração de {domain} pensa que poderá querer rever manualmente os pedidos de seguimento dessas contas.", + "footer.about": "Sobre", + "footer.directory": "Diretório de perfis", + "footer.get_app": "Obtém a aplicação", + "footer.invite": "Convidar pessoas", + "footer.keyboard_shortcuts": "Atalhos do teclado", + "footer.privacy_policy": "Política de privacidade", + "footer.source_code": "Ver código-fonte", "generic.saved": "Salvo", - "getting_started.developers": "Responsáveis pelo desenvolvimento", - "getting_started.directory": "Diretório de perfis", - "getting_started.documentation": "Documentação", "getting_started.heading": "Primeiros passos", - "getting_started.invite": "Convidar pessoas", - "getting_started.open_source_notice": "Mastodon é um software de código aberto. Podes contribuir ou reportar problemas no GitHub do projeto: {github}.", - "getting_started.security": "Segurança", - "getting_started.terms": "Termos de serviço", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sem {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Qualquer destes", "hashtag.column_settings.tag_mode.none": "Nenhum destes", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionais para esta coluna", + "hashtag.follow": "Seguir hashtag", + "hashtag.unfollow": "Parar de seguir hashtag", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar boosts", "home.column_settings.show_replies": "Mostrar respostas", "home.hide_announcements": "Ocultar anúncios", "home.show_announcements": "Exibir anúncios", + "interaction_modal.description.favourite": "Com uma conta no Mastodon, pode adicionar esta publicação aos favoritos para que o autor saiba que gostou e salvá-la para mais tarde.", + "interaction_modal.description.follow": "Com uma conta no Mastodon, pode seguir {name} para receber as suas publicações na sua página inicial.", + "interaction_modal.description.reblog": "Com uma conta no Mastodon, pode impulsionar esta publicação para compartilhá-lo com os seus seguidores.", + "interaction_modal.description.reply": "Com uma conta no Mastodon, pode responder a esta publicação.", + "interaction_modal.on_another_server": "Num servidor diferente", + "interaction_modal.on_this_server": "Neste servidor", + "interaction_modal.other_server_instructions": "Copie e cole este URL no campo de pesquisa do seu aplicativo Mastodon favorito ou da interface web do seu servidor Mastodon.", + "interaction_modal.preamble": "Uma vez que o Mastodon é descentralizado, pode utilizar a sua conta existente, hospedada em outro servidor Mastodon ou plataforma compatível, se não tiver uma conta neste servidor.", + "interaction_modal.title.favourite": "Adicionar a publicação de {name} aos favoritos", + "interaction_modal.title.follow": "Seguir {name}", + "interaction_modal.title.reblog": "Impulsionar a publicação de {name}", + "interaction_modal.title.reply": "Responder à publicação de {name}", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Próximo", "lightbox.previous": "Anterior", "limited_account_hint.action": "Exibir perfil mesmo assim", - "limited_account_hint.title": "Este perfil foi ocultado pelos moderadores do seu servidor.", + "limited_account_hint.title": "Este perfil foi ocultado pelos moderadores de {domain}.", "lists.account.add": "Adicionar à lista", "lists.account.remove": "Remover da lista", "lists.delete": "Eliminar lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Alternar visibilidade", "missing_indicator.label": "Não encontrado", "missing_indicator.sublabel": "Este recurso não foi encontrado", + "moved_to_account_banner.text": "A sua conta {disabledAccount} está, no momento, desativada, porque você migrou para {movedToAccount}.", "mute_modal.duration": "Duração", "mute_modal.hide_notifications": "Esconder notificações deste utilizador?", "mute_modal.indefinite": "Indefinidamente", - "navigation_bar.apps": "Aplicações móveis", + "navigation_bar.about": "Sobre", "navigation_bar.blocks": "Utilizadores bloqueados", "navigation_bar.bookmarks": "Itens salvos", "navigation_bar.community_timeline": "Cronologia local", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Palavras silenciadas", "navigation_bar.follow_requests": "Seguidores pendentes", "navigation_bar.follows_and_followers": "Seguindo e seguidores", - "navigation_bar.info": "Sobre esta instância", - "navigation_bar.keyboard_shortcuts": "Atalhos de teclado", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Sair", "navigation_bar.mutes": "Utilizadores silenciados", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Toots afixados", "navigation_bar.preferences": "Preferências", "navigation_bar.public_timeline": "Cronologia federada", + "navigation_bar.search": "Pesquisar", "navigation_bar.security": "Segurança", + "not_signed_in_indicator.not_signed_in": "Necessita de iniciar sessão para utilizar esta funcionalidade.", + "notification.admin.report": "{name} denunciou {target}", "notification.admin.sign_up": "{name} inscreveu-se", "notification.favourite": "{name} adicionou a tua publicação aos favoritos", "notification.follow": "{name} começou a seguir-te", @@ -326,6 +401,7 @@ "notification.update": "{name} editou uma publicação", "notifications.clear": "Limpar notificações", "notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?", + "notifications.column_settings.admin.report": "Novas denúncias:", "notifications.column_settings.admin.sign_up": "Novas inscrições:", "notifications.column_settings.alert": "Notificações no ambiente de trabalho", "notifications.column_settings.favourite": "Favoritos:", @@ -364,7 +440,7 @@ "poll.closed": "Fechado", "poll.refresh": "Recarregar", "poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}", - "poll.total_votes": "{contar, plural, um {# vote} outro {# votes}}", + "poll.total_votes": "{count, plural, one {# voto} other {# votos}}", "poll.vote": "Votar", "poll.voted": "Votaste nesta resposta", "poll.votes": "{votes, plural, one {# voto } other {# votos}}", @@ -379,6 +455,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visível para todos, mas não incluir em funcionalidades de divulgação", "privacy.unlisted.short": "Não listar", + "privacy_policy.last_updated": "Última atualização em {date}", + "privacy_policy.title": "Política de Privacidade", "refresh": "Actualizar", "regeneration_indicator.label": "A carregar…", "regeneration_indicator.sublabel": "A tua página inicial está a ser preparada!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Obrigado por reportar, vamos analisar.", "report.unfollow": "Deixar de seguir @{name}", "report.unfollow_explanation": "Está a seguir esta conta. Para não ver mais as publicações desta conta na sua página inicial, deixe de segui-la.", + "report_notification.attached_statuses": "{count, plural,one {{count} publicação} other {{count} publicações}} em anexo", + "report_notification.categories.other": "Outro", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Violação de regra", + "report_notification.open": "Abrir denúncia", "search.placeholder": "Pesquisar", + "search.search_or_paste": "Pesquisar ou introduzir URL", "search_popout.search_format": "Formato avançado de pesquisa", "search_popout.tips.full_text": "Texto simples devolve publicações que escreveu, marcou como favorita, partilhou ou em que foi mencionado, tal como nomes de utilizador, alcunhas e hashtags.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Não foi possível encontrar resultados para as expressões pesquisadas", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "A pesquisa de toots pelo seu conteúdo não está disponível nesta instância Mastodon.", + "search_results.title": "Pesquisar por {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Pessoas que utilizaram este servidor nos últimos 30 dias (Utilizadores Ativos Mensais)", + "server_banner.active_users": "utilizadores ativos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} faz parte da rede social descentralizada baseada no {mastodon}.", + "server_banner.learn_more": "Saber mais", + "server_banner.server_stats": "Estatísticas do servidor:", + "sign_in_banner.create_account": "Criar conta", + "sign_in_banner.sign_in": "Iniciar sessão", + "sign_in_banner.text": "Inicie sessão para seguir perfis ou hashtags, favoritos, partilhar e responder às publicações ou interagir através da sua conta noutro servidor.", "status.admin_account": "Abrir a interface de moderação para @{name}", "status.admin_status": "Abrir esta publicação na interface de moderação", "status.block": "Bloquear @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Editado {count, plural,one {{count} vez} other {{count} vezes}}", "status.embed": "Incorporar", "status.favourite": "Adicionar aos favoritos", + "status.filter": "Filtrar esta publicação", "status.filtered": "Filtrada", + "status.hide": "Esconder publicação", "status.history.created": "{name} criado em {date}", "status.history.edited": "{name} editado em {date}", "status.load_more": "Carregar mais", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Ainda ninguém fez boost a este toot. Quando alguém o fizer, ele irá aparecer aqui.", "status.redraft": "Apagar & reescrever", "status.remove_bookmark": "Remover dos itens salvos", + "status.replied_to": "Respondeu a {name}", "status.reply": "Responder", "status.replyAll": "Responder à conversa", "status.report": "Denunciar @{name}", "status.sensitive_warning": "Conteúdo sensível", "status.share": "Partilhar", + "status.show_filter_reason": "Mostrar mesmo assim", "status.show_less": "Mostrar menos", "status.show_less_all": "Mostrar menos para todas", "status.show_more": "Mostrar mais", "status.show_more_all": "Mostrar mais para todas", - "status.show_thread": "Mostrar conversa", + "status.show_original": "Mostrar original", + "status.translate": "Traduzir", + "status.translated_from_with": "Traduzido do {lang} usando {provider}", "status.uncached_media_warning": "Não disponível", "status.unmute_conversation": "Deixar de silenciar esta conversa", "status.unpin": "Não fixar no perfil", + "subscribed_languages.lead": "Após a alteração, apenas as publicações nos idiomas selecionados aparecerão na sua página inicial e listas. Não selecione nenhuma para receber publicações de todos os idiomas.", + "subscribed_languages.save": "Guardar alterações", + "subscribed_languages.target": "Alterar idiomas subscritos para {target}", "suggestions.dismiss": "Dispensar a sugestão", "suggestions.header": "Tu podes estar interessado em…", "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Início", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificações", - "tabs_bar.search": "Pesquisar", "time_remaining.days": "{número, plural, um {# day} outro {# days}} faltam", "time_remaining.hours": "{número, plural, um {# hour} outro {# hours}} faltam", "time_remaining.minutes": "{número, plural, um {# minute} outro {# minutes}} faltam", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Seguidores", "timeline_hint.resources.follows": "Seguindo", "timeline_hint.resources.statuses": "Toots antigos", - "trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} a conversar", + "trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} {days, plural, one {no último dia} other {nos últimos {days} dias}}", "trends.trending_now": "Tendências atuais", "ui.beforeunload": "O teu rascunho será perdido se abandonares o Mastodon.", "units.short.billion": "{count}MM", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "A preparar OCR…", "upload_modal.preview_label": "Pré-visualizar ({ratio})", "upload_progress.label": "A enviar...", + "upload_progress.processing": "A processar…", "video.close": "Fechar vídeo", "video.download": "Descarregar ficheiro", "video.exit_fullscreen": "Sair de full screen", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 0756608ab82ac0..2f76585f879522 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -1,4 +1,16 @@ { + "about.blocks": "Servere moderate", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon este o aplicație gratuită, open-source și o marcă înregistrată a Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Motivul nu este disponibil", + "about.domain_blocks.preamble": "Mastodon îți permite în general să vezi conținut de la și să interacționezi cu utilizatori de pe oricare server în fediverse. Acestea sunt excepțiile care au fost făcute pe acest server.", + "about.domain_blocks.silenced.explanation": "În general, nu vei vedea profiluri și conținut de pe acest server, cu excepția cazului în care îl cauți în mod explicit sau optezi pentru el prin urmărire.", + "about.domain_blocks.silenced.title": "Limitat", + "about.domain_blocks.suspended.explanation": "Nici o informație de la acest server nu va fi procesată, stocată sau schimbată, făcând imposibilă orice interacțiune sau comunicare cu utilizatorii de pe acest server.", + "about.domain_blocks.suspended.title": "Suspendat", + "about.not_available": "Această informație nu a fost pusă la dispoziție pe acest server.", + "about.powered_by": "Media socială descentralizată furnizată de {mastodon}", + "about.rules": "Reguli server", "account.account_note_header": "Notă", "account.add_or_remove_from_list": "Adaugă sau elimină din liste", "account.badges.bot": "Robot", @@ -7,31 +19,37 @@ "account.block_domain": "Blochează domeniul {domain}", "account.blocked": "Blocat", "account.browse_more_on_origin_server": "Vezi mai multe pe profilul original", - "account.cancel_follow_request": "Anulează cererea de abonare", + "account.cancel_follow_request": "Retrage cererea de urmărire", "account.direct": "Trimite-i un mesaj direct lui @{name}", "account.disable_notifications": "Nu îmi mai trimite notificări când postează @{name}", "account.domain_blocked": "Domeniu blocat", "account.edit_profile": "Modifică profilul", "account.enable_notifications": "Trimite-mi o notificare când postează @{name}", "account.endorse": "Promovează pe profil", + "account.featured_tags.last_status_at": "Ultima postare pe {date}", + "account.featured_tags.last_status_never": "Fără postări", + "account.featured_tags.title": "Hashtag-uri recomandate de {name}", "account.follow": "Abonează-te", "account.followers": "Abonați", "account.followers.empty": "Acest utilizator încă nu are abonați.", "account.followers_counter": "{count, plural, one {{counter} Abonat} few {{counter} Abonați} other {{counter} Abonați}}", - "account.following": "Following", + "account.following": "Urmăriți", "account.following_counter": "{count, plural, one {{counter} Abonament} few {{counter} Abonamente} other {{counter} Abonamente}}", "account.follows.empty": "Momentan acest utilizator nu are niciun abonament.", "account.follows_you": "Este abonat la tine", + "account.go_to_profile": "Mergi la profil", "account.hide_reblogs": "Ascunde distribuirile de la @{name}", - "account.joined": "S-a înscris în {date}", + "account.joined_short": "Înscris", + "account.languages": "Schimbă limbile abonate", "account.link_verified_on": "Proprietatea acestui link a fost verificată pe {date}", "account.locked_info": "Acest profil este privat. Această persoană aprobă manual conturile care se abonează la ea.", "account.media": "Media", "account.mention": "Menționează pe @{name}", - "account.moved_to": "{name} a fost mutat la:", + "account.moved_to": "{name} a indicat că noul său cont este acum:", "account.mute": "Ignoră pe @{name}", "account.mute_notifications": "Ignoră notificările de la @{name}", "account.muted": "Ignorat", + "account.open_original_page": "Deschide pagina originală", "account.posts": "Postări", "account.posts_with_replies": "Postări și răspunsuri", "account.report": "Raportează pe @{name}", @@ -41,15 +59,15 @@ "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", "account.unblock": "Deblochează pe @{name}", "account.unblock_domain": "Deblochează domeniul {domain}", - "account.unblock_short": "Unblock", + "account.unblock_short": "Deblochează", "account.unendorse": "Nu promova pe profil", "account.unfollow": "Nu mai urmări", "account.unmute": "Nu mai ignora pe @{name}", "account.unmute_notifications": "Activează notificările de la @{name}", - "account.unmute_short": "Unmute", + "account.unmute_short": "Reafișare", "account_note.placeholder": "Click to add a note", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", + "admin.dashboard.daily_retention": "Rata de retenţie a utilizatorului pe zi după înregistrare", + "admin.dashboard.monthly_retention": "Rata de retenţie a utilizatorului după luna de înscriere", "admin.dashboard.retention.average": "În medie", "admin.dashboard.retention.cohort": "Înregistrări lunar", "admin.dashboard.retention.cohort_size": "Utilizatori noi", @@ -59,18 +77,31 @@ "alert.unexpected.title": "Ups!", "announcement.announcement": "Anunț", "attachments_list.unprocessed": "(neprocesate)", + "audio.hide": "Ascunde audio", "autosuggest_hashtag.per_week": "{count} pe săptămână", "boost_modal.combo": "Poți apăsa {combo} pentru a sări peste asta data viitoare", - "bundle_column_error.body": "A apărut o eroare la încărcarea acestui element.", + "bundle_column_error.copy_stacktrace": "Copiază raportul de eroare", + "bundle_column_error.error.body": "Pagina solicitată nu a putut fi randată. Ar putea fi cauzată de o eroare în codul nostru sau de o problemă de compatibilitate cu browser-ul.", + "bundle_column_error.error.title": "Vai Nu!", + "bundle_column_error.network.body": "A apărut o eroare la încărcarea acestei pagini. Acest lucru se poate datora unei probleme temporare cu conexiunea la internet sau cu acest server.", + "bundle_column_error.network.title": "Eroare de rețea", "bundle_column_error.retry": "Încearcă din nou", - "bundle_column_error.title": "Eroare de rețea", + "bundle_column_error.return": "Înapoi acasă", + "bundle_column_error.routing.body": "Pagina solicitată nu a putut fi găsită. Ești sigur că adresa URL din bara de adrese este corectă?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Închide", "bundle_modal_error.message": "A apărut o eroare la încărcarea acestui element.", "bundle_modal_error.retry": "Încearcă din nou", + "closed_registrations.other_server_instructions": "Deoarece Mastodon este descentralizat, poți crea un cont pe un alt server și încă poți interacționa cu acesta.", + "closed_registrations_modal.description": "Crearea unui cont pe {domain} nu este posibilă momentan, dar aveți în vedere că nu aveți nevoie de un cont specific pe {domain} pentru a utiliza Mastodon.", + "closed_registrations_modal.find_another_server": "Caută un alt server", + "closed_registrations_modal.preamble": "Mastodon este descentralizat, deci indiferent unde îți creezi contul, vei putea urmări și interacționa cu oricine de pe acest server. Poți chiar să te găzduiești de unul singur!", + "closed_registrations_modal.title": "Înscrie-te pe Mastodon", + "column.about": "Despre", "column.blocks": "Utilizatori blocați", "column.bookmarks": "Marcaje", "column.community": "Cronologie locală", - "column.direct": "Direct messages", + "column.direct": "Mesaje directe", "column.directory": "Explorează profiluri", "column.domain_blocks": "Domenii blocate", "column.favourites": "Favorite", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "Doar local", "community.column_settings.media_only": "Doar media", "community.column_settings.remote_only": "Doar la distanţă", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Schimbare limbă", + "compose.language.search": "Căutare limbi…", "compose_form.direct_message_warning_learn_more": "Află mai multe", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Postările pe Mastodon nu sunt criptate în ambele părți. Nu împărtășiți nici o informație sensibilă pe Mastodon.", "compose_form.hashtag_warning": "Această postare nu va fi listată sub niciun hashtag deoarece este nelistată. Doar postările publice pot fi căutate cu un hashtag.", "compose_form.lock_disclaimer": "Contul tău nu este {locked}. Oricine se poate abona la tine pentru a îți vedea postările numai pentru abonați.", "compose_form.lock_disclaimer.lock": "privat", @@ -106,9 +137,9 @@ "compose_form.poll.remove_option": "Elimină acestă opțiune", "compose_form.poll.switch_to_multiple": "Modifică sondajul pentru a permite mai multe opțiuni", "compose_form.poll.switch_to_single": "Modifică sondajul pentru a permite o singură opțiune", - "compose_form.publish": "Postează", + "compose_form.publish": "Publică", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "Salvează modificările", "compose_form.sensitive.hide": "{count, plural, one {Marchează conținutul media ca fiind sensibil} few {Marchează conținuturile media ca fiind sensibile} other {Marchează conținuturile media ca fiind sensibile}}", "compose_form.sensitive.marked": "{count, plural, one {Conținutul media este marcat ca fiind sensibil} other {Conținuturile media sunt marcate ca fiind sensibile}}", "compose_form.sensitive.unmarked": "{count, plural, one {Conținutul media nu este marcat ca fiind sensibil} other {Conținuturile media nu sunt marcate ca fiind sensibile}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Blochează și raportează", "confirmations.block.confirm": "Blochează", "confirmations.block.message": "Ești sigur că vrei să blochezi pe {name}?", + "confirmations.cancel_follow_request.confirm": "Retrage cererea", + "confirmations.cancel_follow_request.message": "Sunteți sigur că doriți să retrageți cererea dvs. de urmărire pentru {name}?", "confirmations.delete.confirm": "Elimină", "confirmations.delete.message": "Ești sigur că vrei să elimini această postare?", "confirmations.delete_list.confirm": "Elimină", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Marchează ca citit", "conversation.open": "Vizualizează conversația", "conversation.with": "Cu {names}", + "copypaste.copied": "Copiat", + "copypaste.copy": "Copiere", "directory.federated": "Din fediversul cunoscut", "directory.local": "Doar din {domain}", "directory.new_arrivals": "Înscriși recent", "directory.recently_active": "Activi recent", + "disabled_account_banner.account_settings": "Setări cont", + "disabled_account_banner.text": "Contul tău {disabledAccount} este momentan dezactivat.", + "dismissable_banner.community_timeline": "Acestea sunt cele mai recente postări publice de la persoane ale căror conturi sunt găzduite de {domain}.", + "dismissable_banner.dismiss": "Renunțare", + "dismissable_banner.explore_links": "În acest moment, oamenii vorbesc despre aceste știri, pe acesta dar și pe alte servere ale rețelei descentralizate.", + "dismissable_banner.explore_statuses": "Aceste postări de pe acesta dar și alte servere din rețeaua descentralizată câștigă teren pe acest server chiar acum.", + "dismissable_banner.explore_tags": "Aceste hashtag-uri câștigă teren în rândul oamenilor de pe acesta și pe alte servere ale rețelei descentralizate chiar acum.", + "dismissable_banner.public_timeline": "Acestea sunt cele mai recente postări publice de la utilizatorii acestui server sau ai altor servere ale rețelei descentralizate cunoscute de acest server.", "embed.instructions": "Integrează această postare în site-ul tău copiind codul de mai jos.", "embed.preview": "Iată cum va arăta:", "emoji_button.activity": "Activități", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Ștergeți", "emoji_button.custom": "Personalizați", "emoji_button.flags": "Steaguri", "emoji_button.food": "Alimente și băuturi", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Terminat", "follow_recommendations.heading": "Urmărește persoanele ale căror postări te-ar interesa! Iată câteva sugestii.", "follow_recommendations.lead": "Postările de la persoanele la care te-ai abonat vor apărea în ordine cronologică în cronologia principală. Nu-ți fie teamă să faci greșeli, poți să te dezabonezi oricând de la ei la fel de ușor!", "follow_request.authorize": "Acceptă", "follow_request.reject": "Respinge", "follow_requests.unlocked_explanation": "Chiar dacă contul tău nu este blocat, personalul {domain} a considerat că ai putea prefera să consulți manual cererile de abonare de la aceste conturi.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Salvat", - "getting_started.developers": "Dezvoltatori", - "getting_started.directory": "Catalog de profiluri", - "getting_started.documentation": "Documentație", "getting_started.heading": "Primii pași", - "getting_started.invite": "Invită persoane", - "getting_started.open_source_notice": "Mastodon este un software cu sursă deschisă (open source). Poți contribui la dezvoltarea lui sau raporta probleme pe GitHub la {github}.", - "getting_started.security": "Setări cont", - "getting_started.terms": "Termeni și condiții", "hashtag.column_header.tag_mode.all": "și {additional}", "hashtag.column_header.tag_mode.any": "sau {additional}", "hashtag.column_header.tag_mode.none": "fără {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Oricare din acestea", "hashtag.column_settings.tag_mode.none": "Niciuna dintre acestea", "hashtag.column_settings.tag_toggle": "Adaugă etichete suplimentare pentru această coloană", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "De bază", "home.column_settings.show_reblogs": "Afișează distribuirile", "home.column_settings.show_replies": "Afișează răspunsurile", "home.hide_announcements": "Ascunde anunțurile", "home.show_announcements": "Afișează anunțurile", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural,one {# zi} other {# zile}}", "intervals.full.hours": "{number, plural, one {# oră} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minute}}", @@ -268,7 +341,7 @@ "lightbox.next": "Înainte", "lightbox.previous": "Înapoi", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Adaugă în listă", "lists.account.remove": "Elimină din listă", "lists.delete": "Șterge lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Ascunde imaginea} other {Ascunde imaginile}}", "missing_indicator.label": "Nu a fost găsit", "missing_indicator.sublabel": "Această resursă nu a putut fi găsită", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Durata", "mute_modal.hide_notifications": "Ascunde notificările de la acest utilizator?", "mute_modal.indefinite": "Nedeterminat", - "navigation_bar.apps": "Aplicații mobile", + "navigation_bar.about": "About", "navigation_bar.blocks": "Utilizatori blocați", "navigation_bar.bookmarks": "Marcaje", "navigation_bar.community_timeline": "Cronologie locală", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Cuvinte ignorate", "navigation_bar.follow_requests": "Cereri de abonare", "navigation_bar.follows_and_followers": "Abonamente și abonați", - "navigation_bar.info": "Despre această instanță", - "navigation_bar.keyboard_shortcuts": "Taste rapide", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Deconectare", "navigation_bar.mutes": "Utilizatori ignorați", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Postări fixate", "navigation_bar.preferences": "Preferințe", "navigation_bar.public_timeline": "Cronologie globală", + "navigation_bar.search": "Search", "navigation_bar.security": "Securitate", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} a adăugat postarea ta la favorite", "notification.follow": "{name} s-a abonat la tine", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Șterge notificările", "notifications.clear_confirmation": "Ești sigur că vrei să ștergi permanent toate notificările?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Notificări pe desktop", "notifications.column_settings.favourite": "Favorite:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Nelistat", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Reîncarcă", "regeneration_indicator.label": "Se încarcă…", "regeneration_indicator.sublabel": "Cronologia ta principală este în curs de pregătire!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Caută", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Formate pentru căutare avansată", "search_popout.tips.full_text": "Textele simple returnează postări pe care le-ai scris, favorizat, impulsionat, sau în care sunt menționate, deasemenea și utilizatorii sau hashtag-urile care se potrivesc.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Postări", "search_results.statuses_fts_disabled": "Căutarea de postări după conținutul lor nu este activată pe acest server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {rezultat} other {rezultate}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Deschide interfața de moderare pentru @{name}", "status.admin_status": "Deschide această stare în interfața de moderare", "status.block": "Blochează pe @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Înglobează", "status.favourite": "Favorite", + "status.filter": "Filter this post", "status.filtered": "Sortate", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Încarcă mai multe", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Nimeni nu a impulsionat această postare până acum. Când cineva o va face, va apărea aici.", "status.redraft": "Șterge și adaugă la ciorne", "status.remove_bookmark": "Îndepărtează marcajul", + "status.replied_to": "Replied to {name}", "status.reply": "Răspunde", "status.replyAll": "Răspunde la discuție", "status.report": "Raportează pe @{name}", "status.sensitive_warning": "Conținut sensibil", "status.share": "Distribuie", + "status.show_filter_reason": "Show anyway", "status.show_less": "Arată mai puțin", "status.show_less_all": "Arată mai puțin pentru toți", "status.show_more": "Arată mai mult", "status.show_more_all": "Arată mai mult pentru toți", - "status.show_thread": "Arată discuția", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Indisponibil", "status.unmute_conversation": "Repornește conversația", "status.unpin": "Eliberează din profil", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Omite sugestia", "suggestions.header": "Ai putea fi interesat de…", "tabs_bar.federated_timeline": "Global", "tabs_bar.home": "Acasă", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificări", - "tabs_bar.search": "Căutare", "time_remaining.days": "{number, plural, one {# zi} other {# zile}} rămase", "time_remaining.hours": "{number, plural, one {# oră} other {# ore}} rămase", "time_remaining.minutes": "{number, plural, one {# minut} other {# minute}} rămase", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Urmăritori", "timeline_hint.resources.follows": "Urmăriri", "timeline_hint.resources.statuses": "Postări mai vechi", - "trends.counter_by_accounts": "{count, plural, one {{counter} persoană postează} other {{counter} persoane postează}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "În tendință acum", "ui.beforeunload": "Postarea se va pierde dacă părăsești pagina.", "units.short.billion": "{count}Mld", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Se pregătește OCR…", "upload_modal.preview_label": "Previzualizare ({ratio})", "upload_progress.label": "Se încarcă...", + "upload_progress.processing": "Processing…", "video.close": "Închide video", "video.download": "Descarcă fișierul", "video.exit_fullscreen": "Ieși din modul ecran complet", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 58811783026716..db5c67b207f871 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -1,4 +1,16 @@ { + "about.blocks": "Модерируемые серверы", + "about.contact": "Контакты:", + "about.disclaimer": "Mastodon — бесплатное программным обеспечением с открытым исходным кодом и торговой маркой Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon обычно позволяет просматривать содержимое и взаимодействовать с другими пользователями любых серверов в Федиверсе. Вот исключения, сделанные конкретно для этого сервера.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Децентрализованные социальные сети на базе {mastodon}", + "about.rules": "Правила сервера", "account.account_note_header": "Заметка", "account.add_or_remove_from_list": "Управление списками", "account.badges.bot": "Бот", @@ -7,13 +19,16 @@ "account.block_domain": "Заблокировать {domain}", "account.blocked": "Заблокирован(а)", "account.browse_more_on_origin_server": "Посмотреть в оригинальном профиле", - "account.cancel_follow_request": "Отменить запрос", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Написать @{name}", - "account.disable_notifications": "Отключить уведомления от @{name}", + "account.disable_notifications": "Не уведомлять о постах от @{name}", "account.domain_blocked": "Домен заблокирован", "account.edit_profile": "Редактировать профиль", - "account.enable_notifications": "Включить уведомления для @{name}", + "account.enable_notifications": "Уведомлять о постах от @{name}", "account.endorse": "Рекомендовать в профиле", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Подписаться", "account.followers": "Подписчики", "account.followers.empty": "На этого пользователя пока никто не подписан.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} подписка} many {{counter} подписок} other {{counter} подписки}}", "account.follows.empty": "Этот пользователь пока ни на кого не подписался.", "account.follows_you": "Подписан(а) на вас", + "account.go_to_profile": "Перейти к профилю", "account.hide_reblogs": "Скрыть продвижения от @{name}", - "account.joined": "Зарегистрирован(а) с {date}", + "account.joined_short": "Joined", + "account.languages": "Изменить языки подписки", "account.link_verified_on": "Владение этой ссылкой было проверено {date}", "account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.", "account.media": "Медиа", "account.mention": "Упомянуть @{name}", - "account.moved_to": "Ищите {name} здесь:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Игнорировать @{name}", - "account.mute_notifications": "Скрыть уведомления от @{name}", + "account.mute_notifications": "Игнорировать уведомления от @{name}", "account.muted": "Игнорируется", + "account.open_original_page": "Open original page", "account.posts": "Посты", "account.posts_with_replies": "Посты и ответы", "account.report": "Пожаловаться на @{name}", @@ -44,7 +62,7 @@ "account.unblock_short": "Разблокировать", "account.unendorse": "Не рекомендовать в профиле", "account.unfollow": "Отписаться", - "account.unmute": "Не игнорировать @{name}", + "account.unmute": "Убрать {name} из игнорируемых", "account.unmute_notifications": "Показывать уведомления от @{name}", "account.unmute_short": "Не игнорировать", "account_note.placeholder": "Текст заметки", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Упс!", "announcement.announcement": "Объявление", "attachments_list.unprocessed": "(не обработан)", + "audio.hide": "Скрыть аудио", "autosuggest_hashtag.per_week": "{count} / неделю", "boost_modal.combo": "{combo}, чтобы пропустить это в следующий раз", - "bundle_column_error.body": "Что-то пошло не так при загрузке этого компонента.", + "bundle_column_error.copy_stacktrace": "Скопировать отчет об ошибке", + "bundle_column_error.error.body": "Запрошенная страница не может быть отображена. Это может быть вызвано ошибкой в нашем коде или проблемой совместимости браузера.", + "bundle_column_error.error.title": "О нет!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Ошибка сети", "bundle_column_error.retry": "Попробовать снова", - "bundle_column_error.title": "Ошибка сети", + "bundle_column_error.return": "Вернуться на главную", + "bundle_column_error.routing.body": "Запрошенная страница не найдена. Вы уверены, что URL в адресной строке правильный?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Закрыть", "bundle_modal_error.message": "Что-то пошло не так при загрузке этого компонента.", "bundle_modal_error.retry": "Попробовать снова", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Найдите другой сервер", + "closed_registrations_modal.preamble": "Mastodon децентрализован, поэтому независимо от того, где вы создадите свою учетную запись, вы сможете следить и взаимодействовать с кем угодно на этом сервере. Вы даже можете разместить его самостоятельно!", + "closed_registrations_modal.title": "Регистрация в Mastodon", + "column.about": "О проекте", "column.blocks": "Заблокированные пользователи", "column.bookmarks": "Закладки", "column.community": "Локальная лента", @@ -95,7 +126,7 @@ "compose.language.change": "Изменить язык", "compose.language.search": "Поиск языков...", "compose_form.direct_message_warning_learn_more": "Подробнее", - "compose_form.encryption_warning": "Посты в Mastodon не защищены сквозным шифрованием. Не делитесь потенциально опасной информацией.", + "compose_form.encryption_warning": "Посты в Mastodon не защищены сквозным шифрованием. Не делитесь конфиденциальной информацией через Mastodon.", "compose_form.hashtag_warning": "Так как этот пост не публичный, он не отобразится в поиске по хэштегам.", "compose_form.lock_disclaimer": "Ваша учётная запись {locked}. Любой пользователь сможет подписаться на вас и просматривать посты для подписчиков.", "compose_form.lock_disclaimer.lock": "не закрыта", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Убрать этот вариант", "compose_form.poll.switch_to_multiple": "Разрешить выбор нескольких вариантов", "compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа", - "compose_form.publish": "Запостить", + "compose_form.publish": "Опубликовать", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Сохранить", "compose_form.sensitive.hide": "{count, plural, one {Отметить медифайл как деликатный} other {Отметить медифайлы как деликатные}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Заблокировать и пожаловаться", "confirmations.block.confirm": "Заблокировать", "confirmations.block.message": "Вы уверены, что хотите заблокировать {name}?", + "confirmations.cancel_follow_request.confirm": "Отменить запрос", + "confirmations.cancel_follow_request.message": "Вы уверены, что хотите отозвать свой запрос на подписку {name}?", "confirmations.delete.confirm": "Удалить", "confirmations.delete.message": "Вы уверены, что хотите удалить этот пост?", "confirmations.delete_list.confirm": "Удалить", @@ -126,7 +159,7 @@ "confirmations.discard_edit_media.confirm": "Отменить", "confirmations.discard_edit_media.message": "У вас есть несохранённые изменения описания мультимедиа или предпросмотра, отменить их?", "confirmations.domain_block.confirm": "Да, заблокировать узел", - "confirmations.domain_block.message": "Вы точно уверены, что хотите скрыть все посты с узла {domain}? В большинстве случаев пары блокировок и скрытий вполне достаточно.\n\nПри блокировке узла, вы перестанете получать уведомления оттуда, все посты будут скрыты из публичных лент, а подписчики убраны.", + "confirmations.domain_block.message": "Вы точно уверены, что хотите заблокировать {domain} полностью? В большинстве случаев нескольких блокировок и игнорирований вполне достаточно. Вы перестанете видеть публичную ленту и уведомления оттуда. Ваши подписчики из этого домена будут удалены.", "confirmations.logout.confirm": "Выйти", "confirmations.logout.message": "Вы уверены, что хотите выйти?", "confirmations.mute.confirm": "Игнорировать", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Отметить как прочитанное", "conversation.open": "Просмотр беседы", "conversation.with": "С {names}", + "copypaste.copied": "Скопировано", + "copypaste.copy": "Скопировать", "directory.federated": "Со всей федерации", "directory.local": "Только с {domain}", "directory.new_arrivals": "Новички", "directory.recently_active": "Недавно активные", + "disabled_account_banner.account_settings": "Настройки учётной записи", + "disabled_account_banner.text": "Ваша учётная запись {disabledAccount} в настоящее время отключена.", + "dismissable_banner.community_timeline": "Это самые последние публичные сообщения от людей, чьи учетные записи размещены в {domain}.", + "dismissable_banner.dismiss": "Закрыть", + "dismissable_banner.explore_links": "Об этих новостях прямо сейчас говорят люди на этом и других серверах децентрализованной сети.", + "dismissable_banner.explore_statuses": "Эти сообщения с этого и других серверов в децентрализованной сети, сейчас набирают популярность на этом сервере.", + "dismissable_banner.explore_tags": "Эти хэштеги привлекают людей на этом и других серверах децентрализованной сети прямо сейчас.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:", "embed.preview": "Так это будет выглядеть:", "emoji_button.activity": "Занятия", @@ -196,21 +239,37 @@ "explore.trending_links": "Новости", "explore.trending_statuses": "Посты", "explore.trending_tags": "Хэштеги", + "filter_modal.added.context_mismatch_explanation": "Эта категория не применяется к контексту, в котором вы получили доступ к этому посту. Если вы хотите, чтобы пост был отфильтрован в этом контексте, вам придётся отредактировать фильтр.", + "filter_modal.added.context_mismatch_title": "Несоответствие контекста!", + "filter_modal.added.expired_explanation": "Эта категория фильтра устарела, вам нужно изменить дату окончания фильтра, чтобы применить его.", + "filter_modal.added.expired_title": "Истёкший фильтр!", + "filter_modal.added.review_and_configure": "Для просмотра и настройки этой категории фильтра, перейдите в {settings_link}.", + "filter_modal.added.review_and_configure_title": "Настройки фильтра", + "filter_modal.added.settings_link": "страница настроек", + "filter_modal.added.short_explanation": "Этот пост был добавлен в следующую категорию фильтра: {title}.", + "filter_modal.added.title": "Фильтр добавлен!", + "filter_modal.select_filter.context_mismatch": "не применяется к этому контексту", + "filter_modal.select_filter.expired": "истекло", + "filter_modal.select_filter.prompt_new": "Новая категория: {name}", + "filter_modal.select_filter.search": "Поиск или создание", + "filter_modal.select_filter.subtitle": "Используйте существующую категорию или создайте новую", + "filter_modal.select_filter.title": "Фильтровать этот пост", + "filter_modal.title.status": "Фильтровать пост", "follow_recommendations.done": "Готово", "follow_recommendations.heading": "Подпишитесь на людей, чьи посты вы бы хотели видеть. Вот несколько предложений.", "follow_recommendations.lead": "Посты от людей, на которых вы подписаны, будут отображаться в вашей домашней ленте в хронологическом порядке. Не бойтесь ошибиться — вы так же легко сможете отписаться от них в любое время!", "follow_request.authorize": "Авторизовать", "follow_request.reject": "Отказать", "follow_requests.unlocked_explanation": "Этот запрос отправлен с учётной записи, для которой администрация {domain} включила ручную проверку подписок.", + "footer.about": "О проекте", + "footer.directory": "Profiles directory", + "footer.get_app": "Скачать приложение", + "footer.invite": "Пригласить людей", + "footer.keyboard_shortcuts": "Сочетания клавиш", + "footer.privacy_policy": "Политика конфиденциальности", + "footer.source_code": "Исходный код", "generic.saved": "Сохранено", - "getting_started.developers": "Разработчикам", - "getting_started.directory": "Каталог профилей", - "getting_started.documentation": "Документация", "getting_started.heading": "Начать", - "getting_started.invite": "Пригласить людей", - "getting_started.open_source_notice": "Mastodon — сервис с открытым исходным кодом. Вы можете внести вклад или сообщить о проблемах на GitHub: {github}.", - "getting_started.security": "Настройки учётной записи", - "getting_started.terms": "Условия использования", "hashtag.column_header.tag_mode.all": "и {additional}", "hashtag.column_header.tag_mode.any": "или {additional}", "hashtag.column_header.tag_mode.none": "без {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Любой из списка", "hashtag.column_settings.tag_mode.none": "Ни один из списка", "hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этой колонки", + "hashtag.follow": "Подписаться на новые посты", + "hashtag.unfollow": "Отписаться", "home.column_settings.basic": "Основные", "home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_replies": "Показывать ответы", "home.hide_announcements": "Скрыть объявления", "home.show_announcements": "Показать объявления", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "На другом сервере", + "interaction_modal.on_this_server": "На этом сервере", + "interaction_modal.other_server_instructions": "Скопируйте и вставьте этот URL в поле поиска вашего любимого приложения Mastodon или веб-интерфейс вашего сервера Mastodon.", + "interaction_modal.preamble": "Поскольку Mastodon децентрализован, вы можете использовать существующую учётную запись, размещенную на другом сервере Mastodon или совместимой платформе, если у вас нет учётной записи на этом сервере.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Подписаться на {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# день} few {# дня} other {# дней}}", "intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}", "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}", @@ -246,7 +319,7 @@ "keyboard_shortcuts.legend": "показать это окно", "keyboard_shortcuts.local": "перейти к локальной ленте", "keyboard_shortcuts.mention": "упомянуть автора поста", - "keyboard_shortcuts.muted": "открыть список игнорируемых", + "keyboard_shortcuts.muted": "Открыть список игнорируемых", "keyboard_shortcuts.my_profile": "перейти к своему профилю", "keyboard_shortcuts.notifications": "перейти к уведомлениям", "keyboard_shortcuts.open_media": "открыть вложение", @@ -268,7 +341,7 @@ "lightbox.next": "Далее", "lightbox.previous": "Назад", "limited_account_hint.action": "Все равно показать профиль", - "limited_account_hint.title": "Этот профиль был скрыт модераторами вашего сервера.", + "limited_account_hint.title": "Этот профиль был скрыт модераторами {domain}.", "lists.account.add": "Добавить в список", "lists.account.remove": "Убрать из списка", "lists.delete": "Удалить список", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Показать/скрыть {number, plural, =1 {изображение} other {изображения}}", "missing_indicator.label": "Не найдено", "missing_indicator.sublabel": "Запрашиваемый ресурс не найден", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Продолжительность", "mute_modal.hide_notifications": "Скрыть уведомления от этого пользователя?", "mute_modal.indefinite": "Не определена", - "navigation_bar.apps": "Мобильные приложения", + "navigation_bar.about": "About", "navigation_bar.blocks": "Список блокировки", "navigation_bar.bookmarks": "Закладки", "navigation_bar.community_timeline": "Локальная лента", @@ -304,16 +378,17 @@ "navigation_bar.filters": "Игнорируемые слова", "navigation_bar.follow_requests": "Запросы на подписку", "navigation_bar.follows_and_followers": "Подписки и подписчики", - "navigation_bar.info": "Об узле", - "navigation_bar.keyboard_shortcuts": "Сочетания клавиш", "navigation_bar.lists": "Списки", "navigation_bar.logout": "Выйти", - "navigation_bar.mutes": "Список игнорируемых пользователей", + "navigation_bar.mutes": "Игнорируемые пользователи", "navigation_bar.personal": "Личное", "navigation_bar.pins": "Закреплённые посты", "navigation_bar.preferences": "Настройки", "navigation_bar.public_timeline": "Глобальная лента", + "navigation_bar.search": "Поиск", "navigation_bar.security": "Безопасность", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} сообщил о {target}", "notification.admin.sign_up": "{name} зарегистрирован", "notification.favourite": "{name} добавил(а) ваш пост в избранное", "notification.follow": "{name} подписался (-лась) на вас", @@ -326,6 +401,7 @@ "notification.update": "{name} изменил(а) пост", "notifications.clear": "Очистить уведомления", "notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?", + "notifications.column_settings.admin.report": "Новые жалобы:", "notifications.column_settings.admin.sign_up": "Новые регистрации:", "notifications.column_settings.alert": "Уведомления на рабочем столе", "notifications.column_settings.favourite": "Ваш пост добавили в «избранное»:", @@ -379,6 +455,8 @@ "privacy.public.short": "Публичный", "privacy.unlisted.long": "Виден всем, но не через функции обзора", "privacy.unlisted.short": "Скрытый", + "privacy_policy.last_updated": "Последнее обновление {date}", + "privacy_policy.title": "Политика конфиденциальности", "refresh": "Обновить", "regeneration_indicator.label": "Загрузка…", "regeneration_indicator.sublabel": "Один момент, мы подготавливаем вашу ленту!", @@ -405,7 +483,7 @@ "report.category.title_status": "этим постом", "report.close": "Готово", "report.comment.title": "Есть ли что-нибудь ещё, что нам стоит знать?", - "report.forward": "Переслать на {target}", + "report.forward": "Переслать в {target}", "report.forward_hint": "Эта учётная запись расположена на другом узле. Отправить туда анонимную копию вашей жалобы?", "report.mute": "Игнорировать", "report.mute_explanation": "Вы не будете видеть их посты. Они по-прежнему могут подписываться на вас и видеть ваши посты, но не будут знать, что они в списке игнорируемых.", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Спасибо за обращение, мы его рассмотрим.", "report.unfollow": "Отписаться от @{name}", "report.unfollow_explanation": "Вы подписаны на этого пользователя. Чтобы не видеть его/её посты в своей домашней ленте, отпишитесь от него/неё.", + "report_notification.attached_statuses": "{count, plural, one {{count} сообщение} few {{count} сообщения} many {{count} сообщений} other {{count} сообщений}} вложено", + "report_notification.categories.other": "Прочее", + "report_notification.categories.spam": "Спам", + "report_notification.categories.violation": "Нарушение правил", + "report_notification.open": "Подать жалобу", "search.placeholder": "Поиск", + "search.search_or_paste": "Поиск или вставка URL-адреса", "search_popout.search_format": "Продвинутый формат поиска", "search_popout.tips.full_text": "Поиск по простому тексту отобразит посты, которые вы написали, добавили в избранное, продвинули или в которых были упомянуты, а также подходящие имена пользователей и хэштеги.", "search_popout.tips.hashtag": "хэштег", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Ничего не найдено по этому запросу", "search_results.statuses": "Посты", "search_results.statuses_fts_disabled": "Поиск постов по их содержанию не поддерживается данным сервером Mastodon.", + "search_results.title": "Поиск {q}", "search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "активные пользователи", + "server_banner.administered_by": "Управляется:", + "server_banner.introduction": "{domain} является частью децентрализованной социальной сети, основанной на {mastodon}.", + "server_banner.learn_more": "Узнать больше", + "server_banner.server_stats": "Статистика сервера:", + "sign_in_banner.create_account": "Создать учётную запись", + "sign_in_banner.sign_in": "Войти", + "sign_in_banner.text": "Войдите, чтобы следить за профилями, хэштегами или избранным, делиться сообщениями и отвечать на них или взаимодействовать с вашей учётной записью на другом сервере.", "status.admin_account": "Открыть интерфейс модератора для @{name}", "status.admin_status": "Открыть этот пост в интерфейсе модератора", "status.block": "Заблокировать @{name}", @@ -460,9 +554,11 @@ "status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}", "status.embed": "Встроить на свой сайт", "status.favourite": "В избранное", + "status.filter": "Фильтровать этот пост", "status.filtered": "Отфильтровано", + "status.hide": "Скрыть пост", "status.history.created": "{name} создал {date}", - "status.history.edited": "{name} отредактировал {date}", + "status.history.edited": "{name} отредактировал(а) {date}", "status.load_more": "Загрузить остальное", "status.media_hidden": "Файл скрыт", "status.mention": "Упомянуть @{name}", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.", "status.redraft": "Удалить и исправить", "status.remove_bookmark": "Убрать из закладок", + "status.replied_to": "Replied to {name}", "status.reply": "Ответить", "status.replyAll": "Ответить всем", "status.report": "Пожаловаться", "status.sensitive_warning": "Содержимое «деликатного характера»", "status.share": "Поделиться", + "status.show_filter_reason": "Все равно показать", "status.show_less": "Свернуть", "status.show_less_all": "Свернуть все спойлеры в ветке", "status.show_more": "Развернуть", "status.show_more_all": "Развернуть все спойлеры в ветке", - "status.show_thread": "Показать обсуждение", + "status.show_original": "Показать оригинал", + "status.translate": "Перевод", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Невозможно отобразить файл", "status.unmute_conversation": "Не игнорировать обсуждение", "status.unpin": "Открепить от профиля", + "subscribed_languages.lead": "Посты только на выбранных языках будут отображаться на вашей домашней странице и в списке лент после изменения. Выберите «Нет», чтобы получать посты на всех языках.", + "subscribed_languages.save": "Сохранить изменения", + "subscribed_languages.target": "Изменить языки подписки для {target}", "suggestions.dismiss": "Удалить предложение", "suggestions.header": "Вам может быть интересно…", "tabs_bar.federated_timeline": "Глобальная", "tabs_bar.home": "Главная", "tabs_bar.local_timeline": "Локальная", "tabs_bar.notifications": "Уведомления", - "tabs_bar.search": "Поиск", "time_remaining.days": "{number, plural, one {остался # день} few {осталось # дня} many {осталось # дней} other {осталось # дней}}", "time_remaining.hours": "{number, plural, one {остался # час} few {осталось # часа} many {осталось # часов} other {осталось # часов}}", "time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "подписчиков", "timeline_hint.resources.follows": "подписки", "timeline_hint.resources.statuses": "прошлые посты", - "trends.counter_by_accounts": "{count, plural, one {{counter} человек обсуждает} few {{counter} человека обсуждают} many {{counter} человек обсуждают} other {{counter} человека обсуждает}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} человек} few {{counter} человека} many {{counter} человек} other {{counter} человека}} на протяжении {days, plural, =1 {последнего дня} one {последнего {days} дня} few {последних {days} дней} many {последних {days} дней} other {последних {days} дней}}", "trends.trending_now": "Самое актуальное", "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.", "units.short.billion": "{count} млрд", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Подготовка распознования…", "upload_modal.preview_label": "Предпросмотр ({ratio})", "upload_progress.label": "Загрузка...", + "upload_progress.processing": "Обработка…", "video.close": "Закрыть видео", "video.download": "Загрузить файл", "video.exit_fullscreen": "Покинуть полноэкранный режим", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index fef1913cf3bc32..01ed9e336ee297 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "टीका", "account.add_or_remove_from_list": "युज्यतां / नश्यतां सूच्याः", "account.badges.bot": "यन्त्रम्", @@ -7,13 +19,16 @@ "account.block_domain": "अवरुध्यतां प्रदेशः {domain}", "account.blocked": "अवरुद्धम्", "account.browse_more_on_origin_server": "अधिकं मूलव्यक्तिगतविवरणे दृश्यताम्", - "account.cancel_follow_request": "अनुसरणानुरोधो नश्यताम्", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "प्रत्यक्षसन्देशः @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "प्रदेशो निषिद्धः", "account.edit_profile": "सम्पाद्यताम्", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "व्यक्तिगतविवरणे वैशिष्ट्यम्", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "अनुस्रियताम्", "account.followers": "अनुसर्तारः", "account.followers.empty": "नाऽनुसर्तारो वर्तन्ते", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} अनुसृतः} two {{counter} अनुसृतौ} other {{counter} अनुसृताः}}", "account.follows.empty": "न कोऽप्यनुसृतो वर्तते", "account.follows_you": "त्वामनुसरति", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name} मित्रस्य प्रकाशनानि छिद्यन्ताम्", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "अन्तर्जालस्थानस्यास्य स्वामित्वं परीक्षितमासीत् {date} दिने", "account.locked_info": "एतस्या लेखायाः गुह्यता \"निषिद्ध\"इति वर्तते । स्वामी स्वयञ्चिनोति कोऽनुसर्ता भवितुमर्हतीति ।", "account.media": "सामग्री", "account.mention": "उल्लिख्यताम् @{name}", - "account.moved_to": "{name} अत्र प्रस्थापितम्:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "निःशब्दम् @{name}", "account.mute_notifications": "@{name} सूचनाः निष्क्रियन्ताम्", "account.muted": "निःशब्दम्", + "account.open_original_page": "Open original page", "account.posts": "दौत्यानि", "account.posts_with_replies": "दौत्यानि प्रत्युत्तराणि च", "account.report": "आविद्यताम् @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "अरे !", "announcement.announcement": "उद्घोषणा", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} प्रतिसप्ताहे", "boost_modal.combo": "{combo} अत्र स्प्रष्टुं शक्यते, त्यक्तुमेतमन्यस्मिन् समये", - "bundle_column_error.body": "विषयस्याऽऽरोपणे कश्चिद्दोषो जातः", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "पुनः यतताम्", - "bundle_column_error.title": "जाले दोषः", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "पिधीयताम्", "bundle_modal_error.message": "आरोपणे कश्चन दोषो जातः", "bundle_modal_error.retry": "पुनः यतताम्", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "निषिद्धभोक्तारः", "column.bookmarks": "पुटचिह्नानि", "column.community": "स्थानीयसमयतालिका", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "मतमेतन्नश्यताम्", "compose_form.poll.switch_to_multiple": "मतदानं परिवर्तयित्वा बहुवैकल्पिकमतदानं क्रियताम्", "compose_form.poll.switch_to_single": "मतदानं परिवर्तयित्वा निर्विकल्पमतदानं क्रियताम्", - "compose_form.publish": "दौत्यम्", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "संवेदनशीलसामग्रीत्यङ्यताम्", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "अवरुध्य आविद्यताम्", "confirmations.block.confirm": "निषेधः", "confirmations.block.message": "निश्चयेनाऽवरोधो विधेयः {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "नश्यताम्", "confirmations.delete.message": "निश्चयेन दौत्यमिदं नश्यताम्?", "confirmations.delete_list.confirm": "नश्यताम्", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "पठितमित्यङ्क्यताम्", "conversation.open": "वार्तालापो दृश्यताम्", "conversation.with": "{names} जनैः साकम्", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "सुपरिचितं Fediverse इति स्थानात्", "directory.local": "{domain} प्रदेशात्केवलम्", "directory.new_arrivals": "नवामगमाः", "directory.recently_active": "नातिपूर्वं सक्रियः", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "दौत्यमेतत् स्वीयजालस्थाने स्थापयितुमधो लिखितो विध्यादेशो युज्यताम्", "embed.preview": "अत्रैवं दृश्यते तत्:", "emoji_button.activity": "आचरणम्", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 4c3c485c6ef457..ea927e364afa20 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agiunghe o boga dae is listas", "account.badges.bot": "Robot", @@ -7,13 +19,16 @@ "account.block_domain": "Bloca su domìniu {domain}", "account.blocked": "Blocadu", "account.browse_more_on_origin_server": "Esplora de prus in su profilu originale", - "account.cancel_follow_request": "Annulla rechesta de sighidura", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Messàgiu deretu a @{name}", "account.disable_notifications": "Non mi notìfiches prus cando @{name} pùblichet messàgios", "account.domain_blocked": "Domìniu blocadu", "account.edit_profile": "Modìfica profilu", "account.enable_notifications": "Notìfica·mi cando @{name} pùblicat messàgios", "account.endorse": "Cussìgia in su profilu tuo", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Sighi", "account.followers": "Sighiduras", "account.followers.empty": "Nemos sighit ancora custa persone.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {Sighende a {counter}} other {Sighende a {counter}}}", "account.follows.empty": "Custa persone non sighit ancora a nemos.", "account.follows_you": "Ti sighit", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Cua is cumpartziduras de @{name}", - "account.joined": "At aderidu su {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Sa propiedade de custu ligòngiu est istada controllada su {date}", "account.locked_info": "S'istadu de riservadesa de custu contu est istadu cunfiguradu comente blocadu. Sa persone chi tenet sa propiedade revisionat a manu chie dda podet sighire.", "account.media": "Cuntenutu multimediale", "account.mention": "Mèntova a @{name}", - "account.moved_to": "{name} at cambiadu a:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Pone a @{name} a sa muda", "account.mute_notifications": "Disativa is notìficas de @{name}", "account.muted": "A sa muda", + "account.open_original_page": "Open original page", "account.posts": "Publicatziones", "account.posts_with_replies": "Publicatziones e rispostas", "account.report": "Signala @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oh!", "announcement.announcement": "Annùntziu", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} a sa chida", "boost_modal.combo": "Podes incarcare {combo} pro brincare custu sa borta chi benit", - "bundle_column_error.body": "Faddina in su carrigamentu de custu cumponente.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Torra·bi a proare", - "bundle_column_error.title": "Faddina de connessione", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Serra", "bundle_modal_error.message": "Faddina in su carrigamentu de custu cumponente.", "bundle_modal_error.retry": "Torra·bi a proare", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Persones blocadas", "column.bookmarks": "Sinnalibros", "column.community": "Lìnia de tempus locale", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Boga custa optzione", "compose_form.poll.switch_to_multiple": "Muda su sondàgiu pro permìtere multi-optziones", "compose_form.poll.switch_to_single": "Muda su sondàgiu pro permìtere un'optzione isceti", - "compose_form.publish": "Tut", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Marca elementu multimediale comente a sensìbile} other {Marca elementos multimediales comente sensìbiles}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bloca e signala", "confirmations.block.confirm": "Bloca", "confirmations.block.message": "Seguru chi boles blocare {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Cantzella", "confirmations.delete.message": "Seguru chi boles cantzellare custa publicatzione?", "confirmations.delete_list.confirm": "Cantzella", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Signala comente lèghidu", "conversation.open": "Ammustra arresonada", "conversation.with": "Cun {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Dae unu fediversu connotu", "directory.local": "Isceti dae {domain}", "directory.new_arrivals": "Arribos noos", "directory.recently_active": "Cun atividade dae pagu", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Inserta custa publicatzione in su situ web tuo copiende su còdighe de suta.", "embed.preview": "At a aparèssere aici:", "emoji_button.activity": "Atividade", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Fatu", "follow_recommendations.heading": "Sighi gente de chie boles bìdere is publicatziones! Càstia custos cussìgios.", "follow_recommendations.lead": "Is messàgios de gente a sa chi ses sighende ant a èssere ammustrados in òrdine cronològicu in sa lìnia de tempus printzipale tua. Non timas de fàghere errores, acabbare de sighire gente est fàtzile in cale si siat momentu!", "follow_request.authorize": "Autoriza", "follow_request.reject": "Refuda", "follow_requests.unlocked_explanation": "Fintzas si su contu tuo no est blocadu, su personale de {domain} at pensadu chi forsis bolias revisionare a manu is rechestas de custos contos.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Sarvadu", - "getting_started.developers": "Iscuadra de isvilupu", - "getting_started.directory": "Diretòriu de profilos", - "getting_started.documentation": "Documentatzione", "getting_started.heading": "Comente cumintzare", - "getting_started.invite": "Invita gente", - "getting_started.open_source_notice": "Mastodon est de còdighe abertu. Bi podes contribuire o sinnalare faddinas in {github}.", - "getting_started.security": "Cunfiguratziones de su contu", - "getting_started.terms": "Cunditziones de su servìtziu", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sena {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Cale si siat de custos", "hashtag.column_settings.tag_mode.none": "Perunu de custos", "hashtag.column_settings.tag_toggle": "Include etichetas additzionales pro custa colunna", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Bàsicu", "home.column_settings.show_reblogs": "Ammustra is cumpartziduras", "home.column_settings.show_replies": "Ammustra rispostas", "home.hide_announcements": "Cua annùntzios", "home.show_announcements": "Ammustra annùntzios", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# die} other {# dies}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}", @@ -268,7 +341,7 @@ "lightbox.next": "Imbeniente", "lightbox.previous": "Pretzedente", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Agiunghe a sa lista", "lists.account.remove": "Boga dae sa lista", "lists.delete": "Cantzella sa lista", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Cua {number, plural, one {immàgine} other {immàgines}}", "missing_indicator.label": "Perunu resurtadu", "missing_indicator.sublabel": "Resursa no agatada", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Durada", "mute_modal.hide_notifications": "Boles cuare is notìficas de custa persone?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicatziones mòbiles", + "navigation_bar.about": "About", "navigation_bar.blocks": "Persones blocadas", "navigation_bar.bookmarks": "Sinnalibros", "navigation_bar.community_timeline": "Lìnia de tempus locale", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Faeddos a sa muda", "navigation_bar.follow_requests": "Rechestas de sighidura", "navigation_bar.follows_and_followers": "Gente chi sighis e sighiduras", - "navigation_bar.info": "Informatziones de su serbidore", - "navigation_bar.keyboard_shortcuts": "Teclas de atzessu diretu", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Essi", "navigation_bar.mutes": "Persones a sa muda", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Publicatziones apicadas", "navigation_bar.preferences": "Preferèntzias", "navigation_bar.public_timeline": "Lìnia de tempus federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguresa", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} at marcadu sa publicatzione tua comente a preferida", "notification.follow": "{name} ti sighit", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Lìmpia notìficas", "notifications.clear_confirmation": "Seguru chi boles isboidare in manera permanente totu is notìficas tuas?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Notìficas de iscrivania", "notifications.column_settings.favourite": "Preferidos:", @@ -379,6 +455,8 @@ "privacy.public.short": "Pùblicu", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Esclùidu de sa lista", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Atualiza", "regeneration_indicator.label": "Carrighende…", "regeneration_indicator.sublabel": "Preparende sa lìnia de tempus printzipale tua.", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Chirca", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Formadu de chirca avantzada", "search_popout.tips.full_text": "Testu sèmplitze pro agatare publicatziones chi as iscritu, marcadu comente a preferidas, cumpartzidu o chi t'ant mentovadu, e fintzas nòmines, nòmines de utente e etichetas.", "search_popout.tips.hashtag": "eticheta", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Publicatziones", "search_results.statuses_fts_disabled": "Sa chirca de publicatziones pro su cuntenutu issoro no est abilitada in custu serbidore de Mastodon.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {resurtadu} other {resurtados}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Aberi s'interfache de moderatzione pro @{name}", "status.admin_status": "Aberi custa publicatzione in s'interfache de moderatzione", "status.block": "Bloca a @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Afissa", "status.favourite": "Preferidos", + "status.filter": "Filter this post", "status.filtered": "Filtradu", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Càrriga·nde àteros", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Nemos at ancora cumpartzidu custa publicatzione. Cando calicunu dd'at a fàghere, at a èssere ammustrada inoghe.", "status.redraft": "Cantzella e torra a iscrìere", "status.remove_bookmark": "Boga su sinnalibru", + "status.replied_to": "Replied to {name}", "status.reply": "Risponde", "status.replyAll": "Risponde a su tema", "status.report": "Sinnala @{name}", "status.sensitive_warning": "Cuntenutu sensìbile", "status.share": "Cumpartzi", + "status.show_filter_reason": "Show anyway", "status.show_less": "Ammustra·nde prus pagu", "status.show_less_all": "Ammustra·nde prus pagu pro totus", "status.show_more": "Ammustra·nde prus", "status.show_more_all": "Ammustra·nde prus pro totus", - "status.show_thread": "Ammustra su tema", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "No est a disponimentu", "status.unmute_conversation": "Torra a ativare s'arresonada", "status.unpin": "Boga dae pitzu de su profilu", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Iscarta cussìgiu", "suggestions.header": "Est possìbile chi tèngias interessu in…", "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Printzipale", "tabs_bar.local_timeline": "Locale", "tabs_bar.notifications": "Notìficas", - "tabs_bar.search": "Chirca", "time_remaining.days": "{number, plural, one {abarrat # die} other {abarrant # dies}}", "time_remaining.hours": "{number, plural, one {abarrat # ora} other {abarrant # oras}}", "time_remaining.minutes": "{number, plural, one {abarrat # minutu} other {abarrant # minutos}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Sighiduras", "timeline_hint.resources.follows": "Sighende", "timeline_hint.resources.statuses": "Publicatziones prus betzas", - "trends.counter_by_accounts": "{count, plural, one {{counter} persone} other {{counter} persones}} chistionende", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Est tendèntzia immoe", "ui.beforeunload": "S'abbotzu tuo at a èssere pèrdidu si essis dae Mastodon.", "units.short.billion": "{count}Mrd", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Ammaniende s'OCR…", "upload_modal.preview_label": "Previsualiza ({ratio})", "upload_progress.label": "Carrighende...", + "upload_progress.processing": "Processing…", "video.close": "Serra su vìdeu", "video.download": "Iscàrriga archìviu", "video.exit_fullscreen": "Essi de ischermu in mannària prena", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 4c63e0eb44f444..1c13c76cdeff8a 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "සටහන", "account.add_or_remove_from_list": "ලැයිස්තු වලින් එකතු හෝ ඉවත් කරන්න", "account.badges.bot": "ස්වයං ක්‍රමලේඛය", @@ -7,155 +19,186 @@ "account.block_domain": "{domain} වසම අවහිර කරන්න", "account.blocked": "අවහිර කර ඇත", "account.browse_more_on_origin_server": "මුල් පැතිකඩෙහි තවත් පිරික්සන්න", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name} සෘජු පණිවිඩය", - "account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් දීම නවත්වන්න", + "account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් නොදෙන්න", "account.domain_blocked": "වසම අවහිර කර ඇත", "account.edit_profile": "පැතිකඩ සංස්කරණය", "account.enable_notifications": "@{name} පළ කරන විට මට දැනුම් දෙන්න", "account.endorse": "පැතිකඩෙහි විශේෂාංගය", - "account.follow": "Follow", - "account.followers": "Followers", - "account.followers.empty": "No one follows this user yet.", - "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", - "account.following": "Following", - "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", - "account.follows.empty": "This user doesn't follow anyone yet.", - "account.follows_you": "Follows you", - "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "{date} එක් වී ඇත", - "account.link_verified_on": "මෙම සබැඳියේ හිමිකාරිත්වය {date} දින පරීක්ෂා කරන ලදි", - "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", + "account.follow": "අනුගමනය", + "account.followers": "අනුගාමිකයින්", + "account.followers.empty": "කිසිවෙක් අනුගමනය කර නැත.", + "account.followers_counter": "{count, plural, one {{counter} අනුගාමිකයෙක්} other {{counter} අනුගාමිකයින්}}", + "account.following": "අනුගමනය", + "account.following_counter": "{count, plural, one {අනුගාමිකයින් {counter}} other {අනුගාමිකයින් {counter}}}", + "account.follows.empty": "තවමත් කිසිවෙක් අනුගමනය නොකරයි.", + "account.follows_you": "ඔබව අනුගමනය කරයි", + "account.go_to_profile": "Go to profile", + "account.hide_reblogs": "@{name}සිට බූස්ට් සඟවන්න", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", + "account.link_verified_on": "මෙම සබැඳියේ අයිතිය {date} දී පරීක්‍ෂා කෙරිණි", + "account.locked_info": "මෙම ගිණුමේ රහස්‍යතා තත්ත්වය අගුලු දමා ඇත. හිමිකරු ඔවුන් අනුගමනය කළ හැක්කේ කාටදැයි හස්තීයව සමාලෝචනය කරයි.", "account.media": "මාධ්‍යය", "account.mention": "@{name} සැඳහුම", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "@{name} නිහඬ කරන්න", - "account.mute_notifications": "Mute notifications from @{name}", - "account.muted": "Muted", - "account.posts": "Toots", - "account.posts_with_replies": "Toots and replies", + "account.mute_notifications": "@{name}වෙතින් දැනුම්දීම් නිහඬ කරන්න", + "account.muted": "නිහඬ කළා", + "account.open_original_page": "Open original page", + "account.posts": "ලිපි", + "account.posts_with_replies": "ටූට්ස් සහ පිළිතුරු", "account.report": "@{name} වාර්තා කරන්න", - "account.requested": "Awaiting approval", + "account.requested": "අනුමැතිය බලාපොරොත්තුවෙන්", "account.share": "@{name} ගේ පැතිකඩ බෙදාගන්න", - "account.show_reblogs": "Show boosts from @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", + "account.show_reblogs": "@{name}සිට බූස්ට් පෙන්වන්න", + "account.statuses_counter": "{count, plural, one {{counter} ටූට්} other {{counter} ටූට්ස්}}", "account.unblock": "@{name} අනවහිර කරන්න", "account.unblock_domain": "{domain} වසම අනවහිර කරන්න", - "account.unblock_short": "Unblock", + "account.unblock_short": "අනවහිර", "account.unendorse": "පැතිකඩෙහි විශේෂාංග නොකරන්න", - "account.unfollow": "Unfollow", - "account.unmute": "Unmute @{name}", - "account.unmute_notifications": "Unmute notifications from @{name}", - "account.unmute_short": "Unmute", - "account_note.placeholder": "සටහන එකතු කිරීමට ක්ලික් කරන්න", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "නව පරිශීලකයින්", - "alert.rate_limited.message": "කරුණාකර {retry_time, time, medium} ට පසු නැවත උත්සාහ කරන්න.", - "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "An unexpected error occurred.", + "account.unfollow": "අනුගමනය නොකරන්න", + "account.unmute": "@{name}නිහඬ නොකරන්න", + "account.unmute_notifications": "@{name}වෙතින් දැනුම්දීම් නිහඬ නොකරන්න", + "account.unmute_short": "නොනිහඬ", + "account_note.placeholder": "සටහන යෙදීමට ඔබන්න", + "admin.dashboard.daily_retention": "ලියාපදිංචි වීමෙන් පසු දිනකට පරිශීලක රඳවා ගැනීමේ අනුපාතය", + "admin.dashboard.monthly_retention": "ලියාපදිංචි වීමෙන් පසු මාසය අනුව පරිශීලක රඳවා ගැනීමේ අනුපාතය", + "admin.dashboard.retention.average": "සාමාන්යය", + "admin.dashboard.retention.cohort": "ලියාපදිංචි වීමේ මාසය", + "admin.dashboard.retention.cohort_size": "නව පරිශ්‍රීලකයින්", + "alert.rate_limited.message": "{retry_time, time, medium} කට පසුව උත්සාහ කරන්න.", + "alert.rate_limited.title": "මිල සීමා සහිතයි", + "alert.unexpected.message": "අනපේක්ෂිත දෝෂයක් ඇතිවුනා.", "alert.unexpected.title": "අපොයි!", "announcement.announcement": "නිවේදනය", - "attachments_list.unprocessed": "(unprocessed)", - "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "attachments_list.unprocessed": "(සැකසුම් නොකළ)", + "audio.hide": "හඬපටය සඟවන්න", + "autosuggest_hashtag.per_week": "සතියකට {count}", + "boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට ඔබට {combo} එබිය හැක", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "නැවත උත්සාහ කරන්න", - "bundle_column_error.title": "ජාලයේ දෝෂයකි", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "වසන්න", - "bundle_modal_error.message": "Something went wrong while loading this component.", + "bundle_modal_error.message": "මෙම සංරචකය පූරණය කිරීමේදී යම් දෙයක් වැරදී ඇත.", "bundle_modal_error.retry": "නැවත උත්සාහ කරන්න", - "column.blocks": "අවහිර කළ පරිශීලකයින්", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "පිලිබඳව", + "column.blocks": "අවහිර කළ අය", "column.bookmarks": "පොත් යොමු", - "column.community": "Local timeline", - "column.direct": "Direct messages", - "column.directory": "පැතිකඩයන් පිරික්සන්න", + "column.community": "දේශීය කාලරේඛාව", + "column.direct": "සෘජු පණිවිඩ", + "column.directory": "පැතිකඩ පිරික්සන්න", "column.domain_blocks": "අවහිර කළ වසම්", "column.favourites": "ප්‍රියතමයන්", - "column.follow_requests": "Follow requests", + "column.follow_requests": "අනුගමන ඉල්ලීම්", "column.home": "මුල් පිටුව", - "column.lists": "ලැයිස්තු", - "column.mutes": "නිහඬ කළ පරිශීලකයන්", + "column.lists": "ලේඛන", + "column.mutes": "නිහඬ කළ අය", "column.notifications": "දැනුම්දීම්", - "column.pins": "Pinned toot", - "column.public": "Federated timeline", + "column.pins": "ඇමිණූ ලිපි", + "column.public": "ෆෙඩරේටඩ් කාලරේඛාව", "column_back_button.label": "ආපසු", "column_header.hide_settings": "සැකසුම් සඟවන්න", "column_header.moveLeft_settings": "තීරුව වමට ගෙනයන්න", "column_header.moveRight_settings": "තීරුව දකුණට ගෙනයන්න", - "column_header.pin": "Pin", + "column_header.pin": "අමුණන්න", "column_header.show_settings": "සැකසුම් පෙන්වන්න", - "column_header.unpin": "Unpin", + "column_header.unpin": "ගළවන්න", "column_subheading.settings": "සැකසුම්", "community.column_settings.local_only": "ස්ථානීයව පමණයි", "community.column_settings.media_only": "මාධ්‍ය පමණයි", "community.column_settings.remote_only": "දුරස්ථව පමණයි", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "භාෂාව සංශෝධනය", + "compose.language.search": "භාෂා සොයන්න...", "compose_form.direct_message_warning_learn_more": "තව දැනගන්න", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", - "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", + "compose_form.encryption_warning": "Mastodon හි පළ කිරීම් අන්තයේ සිට අවසානය දක්වා සංකේතනය කර නොමැත. Mastodon හරහා කිසිදු සංවේදී තොරතුරක් බෙදා නොගන්න.", + "compose_form.hashtag_warning": "මෙම මෙවලම ලැයිස්තුගත කර නොමැති බැවින් කිසිදු හැෂ් ටැගය යටතේ ලැයිස්තුගත නොකෙරේ. හැෂ් ටැග් මගින් සෙවිය හැක්කේ පොදු මෙවලම් පමණි.", + "compose_form.lock_disclaimer": "ඔබගේ ගිණුම {locked}නොවේ. ඔබගේ අනුගාමිකයින්ට පමණක් පළ කිරීම් බැලීමට ඕනෑම කෙනෙකුට ඔබව අනුගමනය කළ හැක.", "compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත", "compose_form.placeholder": "ඔබගේ සිතුවිලි මොනවාද?", - "compose_form.poll.add_option": "තේරීමක් එකතු කරන්න", + "compose_form.poll.add_option": "තේරීමක් යොදන්න", "compose_form.poll.duration": "මත විමසීමේ කාලය", - "compose_form.poll.option_placeholder": "Choice {number}", - "compose_form.poll.remove_option": "මෙම තේරීම ඉවත් කරන්න", - "compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයකට ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න", + "compose_form.poll.option_placeholder": "තේරීම {number}", + "compose_form.poll.remove_option": "මෙම ඉවත් කරන්න", + "compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයක් ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න", "compose_form.poll.switch_to_single": "තනි තේරීමකට ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න", - "compose_form.publish": "පිඹින්න", + "compose_form.publish": "ප්‍රකාශනය", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", - "compose_form.sensitive.hide": "{count, plural, one {මාධ්‍ය සංවේදී ලෙස සලකුණු කරන්න} other {මාධ්‍ය සංවේදී ලෙස සලකුණු කරන්න}}", + "compose_form.save_changes": "වෙනස්කම් සුරකින්න", + "compose_form.sensitive.hide": "{count, plural, one {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න} other {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න}}", "compose_form.sensitive.marked": "{count, plural, one {මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත} other {මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත}}", "compose_form.sensitive.unmarked": "{count, plural, one {මාධ්‍ය සංවේදී ලෙස සලකුණු කර නැත} other {මාධ්‍ය සංවේදී ලෙස සලකුණු කර නැත}}", - "compose_form.spoiler.marked": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "පාඨය සඟවා නැත", - "compose_form.spoiler_placeholder": "ඔබගේ අවවාදය මෙහි ලියන්න", + "compose_form.spoiler.marked": "අනතුරු ඇඟවීම පිටුපස පෙළ සඟවා ඇත", + "compose_form.spoiler.unmarked": "ප්‍රයෝජනය සඟවා නැත", + "compose_form.spoiler_placeholder": "අවවාදය මෙහි ලියන්න", "confirmation_modal.cancel": "අවලංගු", "confirmations.block.block_and_report": "අවහිර කර වාර්තා කරන්න", "confirmations.block.confirm": "අවහිර", - "confirmations.block.message": "ඔබට {name} අවහිර කිරීමට අවශ්‍ය බව විශ්වාසද?", - "confirmations.delete.confirm": "Delete", - "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.delete_list.confirm": "Delete", - "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.block.message": "ඔබට {name} අවහිර කිරීමට වුවමනා ද?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", + "confirmations.delete.confirm": "මකන්න", + "confirmations.delete.message": "ඔබට මෙම තත්ත්වය මැකීමට අවශ්‍ය බව විශ්වාසද?", + "confirmations.delete_list.confirm": "මකන්න", + "confirmations.delete_list.message": "ඔබට මෙම ලැයිස්තුව ස්ථිරවම මැකීමට අවශ්‍ය බව විශ්වාසද?", "confirmations.discard_edit_media.confirm": "ඉවත ලන්න", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.discard_edit_media.message": "ඔබට මාධ්‍ය විස්තරයට හෝ පෙරදසුනට නොසුරකින ලද වෙනස්කම් තිබේ, කෙසේ වෙතත් ඒවා ඉවත දමන්නද?", "confirmations.domain_block.confirm": "සම්පූර්ණ වසම අවහිර කරන්න", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.domain_block.message": "ඔබට සම්පූර්ණ {domain}අවහිර කිරීමට අවශ්‍ය බව ඔබට සැබවින්ම විශ්වාසද? බොහෝ අවස්ථාවලදී ඉලක්කගත බ්ලොක් හෝ නිශ්ශබ්ද කිරීම් කිහිපයක් ප්රමාණවත් වන අතර වඩාත් යෝග්ය වේ. ඔබ කිසිදු පොදු කාලරාමුවක හෝ ඔබගේ දැනුම්දීම් වල එම වසමේ අන්තර්ගතය නොදකිනු ඇත. එම වසමෙන් ඔබගේ අනුගාමිකයින් ඉවත් කරනු ලැබේ.", "confirmations.logout.confirm": "නික්මෙන්න", "confirmations.logout.message": "ඔබට නික්මෙන්න අවශ්‍ය බව විශ්වාසද?", "confirmations.mute.confirm": "නිශ්ශබ්ද", - "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", + "confirmations.mute.explanation": "මෙය ඔවුන්ගෙන් පළ කිරීම් සහ ඒවා සඳහන් කරන පළ කිරීම් සඟවයි, නමුත් එය ඔවුන්ට ඔබේ පළ කිරීම් බැලීමට සහ ඔබව අනුගමනය කිරීමට තවමත් ඉඩ ලබා දේ.", "confirmations.mute.message": "ඔබට {name} නිශ්ශබ්ද කිරීමට අවශ්‍ය බව විශ්වාසද?", - "confirmations.redraft.confirm": "Delete & redraft", - "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", + "confirmations.redraft.confirm": "මකන්න සහ නැවත කෙටුම්පත් කරන්න", + "confirmations.redraft.message": "ඔබට මෙම තත්ත්වය මකා එය නැවත කෙටුම්පත් කිරීමට අවශ්‍ය බව විශ්වාසද? ප්‍රියතමයන් සහ බූස්ට් අහිමි වනු ඇත, මුල් පළ කිරීම සඳහා පිළිතුරු අනාථ වනු ඇත.", "confirmations.reply.confirm": "පිළිතුර", - "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", - "confirmations.unfollow.confirm": "Unfollow", - "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", - "conversation.delete": "Delete conversation", - "conversation.mark_as_read": "කියවූ ලෙස සලකුණු කරන්න", + "confirmations.reply.message": "දැන් පිළිතුරු දීම ඔබ දැනට රචනා කරන පණිවිඩය උඩින් ලියයි. ඔබට ඉදිරියට යාමට අවශ්‍ය බව විශ්වාසද?", + "confirmations.unfollow.confirm": "අනුගමනය නොකරන්න", + "confirmations.unfollow.message": "ඔබට {name}අනුගමනය නොකිරීමට අවශ්‍ය බව විශ්වාසද?", + "conversation.delete": "සංවාදය මකන්න", + "conversation.mark_as_read": "කියවූ බව යොදන්න", "conversation.open": "සංවාදය බලන්න", "conversation.with": "{names} සමඟ", - "directory.federated": "From known fediverse", + "copypaste.copied": "පිටපත් විය", + "copypaste.copy": "පිටපතක්", + "directory.federated": "දන්නා fediverse වලින්", "directory.local": "{domain} වෙතින් පමණි", - "directory.new_arrivals": "New arrivals", - "directory.recently_active": "Recently active", - "embed.instructions": "Embed this status on your website by copying the code below.", - "embed.preview": "Here is what it will look like:", + "directory.new_arrivals": "නව පැමිණීම්", + "directory.recently_active": "මෑත දී සක්‍රියයි", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම තත්ත්වය ඔබේ වෙබ් අඩවියට ඇතුළත් කරන්න.", + "embed.preview": "එය පෙනෙන්නේ කෙසේද යන්න මෙන්න:", "emoji_button.activity": "ක්‍රියාකාරකම", - "emoji_button.clear": "Clear", + "emoji_button.clear": "මකන්න", "emoji_button.custom": "අභිරුචි", - "emoji_button.flags": "Flags", + "emoji_button.flags": "කොඩි", "emoji_button.food": "ආහාර සහ පාන", - "emoji_button.label": "Insert emoji", - "emoji_button.nature": "සොබාදහම", - "emoji_button.not_found": "No matching emojis found", + "emoji_button.label": "ඉමොජි යොදන්න", + "emoji_button.nature": "ස්වභාවික", + "emoji_button.not_found": "ගැළපෙන ඉමෝජි හමු නොවිණි", "emoji_button.objects": "වස්තූන්", "emoji_button.people": "මිනිසුන්", "emoji_button.recent": "නිතර භාවිතා වූ", @@ -164,386 +207,446 @@ "emoji_button.symbols": "සංකේත", "emoji_button.travel": "චාරිකා සහ ස්ථාන", "empty_column.account_suspended": "ගිණුම අත්හිටුවා ඇත", - "empty_column.account_timeline": "No toots here!", - "empty_column.account_unavailable": "Profile unavailable", - "empty_column.blocks": "ඔබ තවමත් කිසිදු පරිශීලකයෙකු අවහිර කර නැත.", - "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", - "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", - "empty_column.domain_blocks": "අවහිර කළ වසම් නොමැත.", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", - "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.", - "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", - "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", - "empty_column.hashtag": "There is nothing in this hashtag yet.", - "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", - "empty_column.home.suggestions": "See some suggestions", - "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", - "empty_column.mutes": "You haven't muted any users yet.", - "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", - "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", - "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.", - "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", - "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", - "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", - "errors.unexpected_crash.report_issue": "Report issue", - "explore.search_results": "Search results", - "explore.suggested_follows": "For you", - "explore.title": "Explore", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", - "follow_recommendations.done": "Done", - "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", - "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", - "follow_request.authorize": "Authorize", - "follow_request.reject": "ප්‍රතික්ෂේප", - "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "empty_column.account_timeline": "මෙහි දත් නැත!", + "empty_column.account_unavailable": "පැතිකඩ නොතිබේ", + "empty_column.blocks": "කිසිදු පරිශීලකයෙකු අවහිර කර නැත.", + "empty_column.bookmarked_statuses": "ඔබට තවමත් පිටු සලකුණු කළ මෙවලම් කිසිවක් නොමැත. ඔබ එකක් පිටු සලකුණු කළ විට, එය මෙහි පෙන්වනු ඇත.", + "empty_column.community": "දේශීය කාලරේඛාව හිස් ය. පන්දුව පෙරළීමට ප්‍රසිද්ධියේ යමක් ලියන්න!", + "empty_column.direct": "ඔබට තවමත් සෘජු පණිවිඩ කිසිවක් නොමැත. ඔබ එකක් යවන විට හෝ ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.", + "empty_column.domain_blocks": "අවහිර කරන ලද වසම් නැත.", + "empty_column.explore_statuses": "දැන් කිසිවක් නැඹුරු නොවේ. පසුව නැවත පරීක්ෂා කරන්න!", + "empty_column.favourited_statuses": "ඔබට තවමත් ප්‍රියතම දත් කිසිවක් නැත. ඔබ කැමති එකක් වූ විට, එය මෙහි පෙන්වනු ඇත.", + "empty_column.favourites": "කිසිවෙකු තවමත් මෙම මෙවලමට ප්‍රිය කර නැත. යමෙකු එසේ කළ විට, ඔවුන් මෙහි පෙන්වනු ඇත.", + "empty_column.follow_recommendations": "ඔබ වෙනුවෙන් යෝජනා ජනනය කළ නොහැකි බව පෙනේ. ඔබ දන්නා හඳුනන පුද්ගලයින් සෙවීමට හෝ ප්‍රවණතා හැෂ් ටැග් ගවේෂණය කිරීමට ඔබට සෙවීම භාවිත කිරීමට උත්සාහ කළ හැක.", + "empty_column.follow_requests": "ඔබට තවමත් අනුගමනය කිරීමේ ඉල්ලීම් කිසිවක් නොමැත. ඔබට එකක් ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.", + "empty_column.hashtag": "මෙම හැෂ් ටැග් එකේ තවම කිසිවක් නොමැත.", + "empty_column.home": "ඔබගේ නිවසේ කාලරේඛාව හිස්ය! එය පිරවීම සඳහා තවත් පුද්ගලයින් අනුගමනය කරන්න. {suggestions}", + "empty_column.home.suggestions": "යෝජනා කිහිපයක් බලන්න", + "empty_column.list": "මෙම ලැයිස්තුවේ තවමත් කිසිවක් නොමැත. මෙම ලැයිස්තුවේ සාමාජිකයන් නව තත්ව පළ කරන විට, ඔවුන් මෙහි දිස් වනු ඇත.", + "empty_column.lists": "ඔබට තවමත් ලැයිස්තු කිසිවක් නැත. ඔබ එකක් සාදන විට, එය මෙහි පෙන්වනු ඇත.", + "empty_column.mutes": "ඔබ තවමත් කිසිදු පරිශීලකයෙකු නිහඬ කර නැත.", + "empty_column.notifications": "ඔබට තවම දැනුම්දීම් කිසිවක් නැත. වෙනත් පුද්ගලයින් ඔබ සමඟ අන්තර් ක්‍රියා කරන විට, ඔබ එය මෙහි දකිනු ඇත.", + "empty_column.public": "මෙහි කිසිවක් නැත! යමක් ප්‍රසිද්ධියේ ලියන්න, නැතහොත් එය පිරවීම සඳහා වෙනත් සේවාදායකයන්ගෙන් පරිශීලකයන් හස්තීයව අනුගමනය කරන්න", + "error.unexpected_crash.explanation": "අපගේ කේතයේ දෝෂයක් හෝ බ්‍රවුසර ගැළපුම් ගැටලුවක් හේතුවෙන්, මෙම පිටුව නිවැරදිව ප්‍රදර්ශනය කළ නොහැක.", + "error.unexpected_crash.explanation_addons": "මෙම පිටුව නිවැරදිව ප්‍රදර්ශනය කළ නොහැක. මෙම දෝෂය බ්‍රවුසර ඇඩෝනයක් හෝ ස්වයංක්‍රීය පරිවර්තන මෙවලම් නිසා ඇති විය හැක.", + "error.unexpected_crash.next_steps": "පිටුව නැවුම් කිරීමට උත්සාහ කරන්න. එය උදව් නොකළහොත්, ඔබට තවමත් වෙනත් බ්‍රවුසරයක් හෝ ස්වදේශීය යෙදුමක් හරහා Mastodon භාවිත කිරීමට හැකි වේ.", + "error.unexpected_crash.next_steps_addons": "ඒවා අක්‍රිය කර පිටුව නැවුම් කිරීමට උත්සාහ කරන්න. එය උදව් නොකළහොත්, ඔබට තවමත් වෙනත් බ්‍රවුසරයක් හෝ ස්වදේශීය යෙදුමක් හරහා Mastodon භාවිත කිරීමට හැකි වේ.", + "errors.unexpected_crash.copy_stacktrace": "ස්ටැක්ට්රේස් පසුරු පුවරුවට පිටපත් කරන්න", + "errors.unexpected_crash.report_issue": "ගැටළුව වාර්තාව", + "explore.search_results": "සෙවුම් ප්‍රතිඵල", + "explore.suggested_follows": "ඔබට", + "explore.title": "ගවේශණය", + "explore.trending_links": "පුවත්", + "explore.trending_statuses": "ලිපි", + "explore.trending_tags": "හැෂ් ටැග්", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "පෙරහන ඉකුත්ය!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "පෙරහන් සැකසුම්", + "filter_modal.added.settings_link": "සැකසුම් පිටුව", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "ඉකුත්ය", + "filter_modal.select_filter.prompt_new": "නව ප්‍රවර්ගය: {name}", + "filter_modal.select_filter.search": "සොයන්න හෝ සාදන්න", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", + "follow_recommendations.done": "අහවරයි", + "follow_recommendations.heading": "ඔබ පළ කිරීම් බැලීමට කැමති පුද්ගලයින් අනුගමනය කරන්න! මෙන්න යෝජනා කිහිපයක්.", + "follow_recommendations.lead": "ඔබ අනුගමන කරන පුද්ගලයින්ගේ පළ කිරීම් ඔබගේ නිවසේ සංග්‍රහයේ කාලානුක්‍රමික අනුපිළිවෙලට පෙන්වනු ඇත. වැරදි කිරීමට බිය නොවන්න, ඔබට ඕනෑම වේලාවක පහසුවෙන් මිනිසුන් අනුගමනය කළ නොහැක!", + "follow_request.authorize": "අවසරලත්", + "follow_request.reject": "ප්‍රතික්‍ෂේප", + "follow_requests.unlocked_explanation": "ඔබගේ ගිණුම අගුලු දමා නොතිබුණද, {domain} කාර්ය මණ්ඩලය සිතුවේ ඔබට මෙම ගිණුම් වලින් ලැබෙන ඉල්ලීම් හස්තීයව සමාලෝචනය කිරීමට අවශ්‍ය විය හැකි බවයි.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "සුරැකිණි", - "getting_started.developers": "සංවර්ධකයින්", - "getting_started.directory": "පැතිකඩ නාමාවලිය", - "getting_started.documentation": "ප්‍රලේඛනය", - "getting_started.heading": "Getting started", - "getting_started.invite": "මිනිසුන්ට ආරාධනා කරන්න", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "ගිණුමේ සැකසුම්", - "getting_started.terms": "සේවාවේ කොන්දේසි", + "getting_started.heading": "පටන් ගන්න", "hashtag.column_header.tag_mode.all": "සහ {additional}", "hashtag.column_header.tag_mode.any": "හෝ {additional}", - "hashtag.column_header.tag_mode.none": "without {additional}", - "hashtag.column_settings.select.no_options_message": "යෝජනා කිසිවක් හමු නොවිණි", - "hashtag.column_settings.select.placeholder": "Enter hashtags…", + "hashtag.column_header.tag_mode.none": "{additional}නොමැතිව", + "hashtag.column_settings.select.no_options_message": "යෝජනා හමු නොවිණි", + "hashtag.column_settings.select.placeholder": "හැෂ් ටැග්…ඇතුලත් කරන්න", "hashtag.column_settings.tag_mode.all": "මේ සියල්ලම", - "hashtag.column_settings.tag_mode.any": "මෙයින් ඕනෑම එකක්", - "hashtag.column_settings.tag_mode.none": "None of these", - "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.column_settings.tag_mode.any": "ඇතුළත් එකක්", + "hashtag.column_settings.tag_mode.none": "මේ කිසිවක් නැත", + "hashtag.column_settings.tag_toggle": "මෙම තීරුවේ අමතර ටැග් ඇතුළත් කරන්න", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "මූලික", - "home.column_settings.show_reblogs": "Show boosts", - "home.column_settings.show_replies": "ප්‍රතිචාර පෙන්වන්න", + "home.column_settings.show_reblogs": "බූස්ට් පෙන්වන්න", + "home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න", "home.hide_announcements": "නිවේදන සඟවන්න", "home.show_announcements": "නිවේදන පෙන්වන්න", - "intervals.full.days": "{number, plural, one {# day} other {# days}}", - "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", - "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", - "keyboard_shortcuts.back": "to navigate back", - "keyboard_shortcuts.blocked": "to open blocked users list", - "keyboard_shortcuts.boost": "to boost", - "keyboard_shortcuts.column": "to focus a status in one of the columns", - "keyboard_shortcuts.compose": "to focus the compose textarea", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", + "intervals.full.days": "{number, plural, one {# දින} other {# දින}}", + "intervals.full.hours": "{number, plural, one {# පැය} other {# පැය}}", + "intervals.full.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}}", + "keyboard_shortcuts.back": "ආපසු යාත්‍රණය", + "keyboard_shortcuts.blocked": "අවහිර කළ පරිශීලක ලැයිස්තුව විවෘත කිරීමට", + "keyboard_shortcuts.boost": "වැඩි කිරීමට", + "keyboard_shortcuts.column": "එක් තීරුවක තත්ත්වය නාභිගත කිරීමට", + "keyboard_shortcuts.compose": "රචනා පාඨ ප්‍රදේශය නාභිගත කිරීමට", "keyboard_shortcuts.description": "සවිස්තරය", - "keyboard_shortcuts.direct": "to open direct messages column", - "keyboard_shortcuts.down": "to move down in the list", - "keyboard_shortcuts.enter": "to open status", - "keyboard_shortcuts.favourite": "to favourite", - "keyboard_shortcuts.favourites": "to open favourites list", - "keyboard_shortcuts.federated": "to open federated timeline", - "keyboard_shortcuts.heading": "Keyboard Shortcuts", - "keyboard_shortcuts.home": "to open home timeline", - "keyboard_shortcuts.hotkey": "උණුසුම් යතුර", - "keyboard_shortcuts.legend": "to display this legend", - "keyboard_shortcuts.local": "to open local timeline", - "keyboard_shortcuts.mention": "to mention author", - "keyboard_shortcuts.muted": "to open muted users list", - "keyboard_shortcuts.my_profile": "to open your profile", - "keyboard_shortcuts.notifications": "to open notifications column", - "keyboard_shortcuts.open_media": "to open media", - "keyboard_shortcuts.pinned": "to open pinned 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.spoilers": "to show/hide CW field", - "keyboard_shortcuts.start": "to open \"get started\" column", - "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", - "keyboard_shortcuts.toot": "to start a brand new toot", - "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "to move up in the list", + "keyboard_shortcuts.direct": "සෘජු පණිවිඩ තීරුව විවෘත කිරීමට", + "keyboard_shortcuts.down": "ලැයිස්තුවේ පහළට ගමන් කිරීමට", + "keyboard_shortcuts.enter": "ලිපිය අරින්න", + "keyboard_shortcuts.favourite": "කැමති කිරීමට", + "keyboard_shortcuts.favourites": "ප්රියතම ලැයිස්තුව විවෘත කිරීමට", + "keyboard_shortcuts.federated": "ෆෙඩරේටඩ් කාලරාමුව විවෘත කිරීමට", + "keyboard_shortcuts.heading": "යතුරුපුවරු කෙටිමං", + "keyboard_shortcuts.home": "නිවසේ කාලරේඛාව විවෘත කිරීමට", + "keyboard_shortcuts.hotkey": "උණු යතුර", + "keyboard_shortcuts.legend": "මෙම පුරාවෘත්තය ප්රදර්ශනය කිරීමට", + "keyboard_shortcuts.local": "දේශීය කාලරේඛාව විවෘත කිරීමට", + "keyboard_shortcuts.mention": "කතුවරයා සඳහන් කිරීමට", + "keyboard_shortcuts.muted": "නිශ්ශබ්ද පරිශීලක ලැයිස්තුව විවෘත කිරීමට", + "keyboard_shortcuts.my_profile": "ඔබගේ පැතිකඩ අරින්න", + "keyboard_shortcuts.notifications": "දැනුම්දීම් තීරුව විවෘත කිරීමට", + "keyboard_shortcuts.open_media": "මාධ්‍ය අරින්න", + "keyboard_shortcuts.pinned": "ඇමිණූ ලිපි ලේඛනය අරින්න", + "keyboard_shortcuts.profile": "කතෘගේ පැතිකඩ අරින්න", + "keyboard_shortcuts.reply": "පිළිතුරු දීමට", + "keyboard_shortcuts.requests": "පහත ඉල්ලීම් ලැයිස්තුව විවෘත කිරීමට", + "keyboard_shortcuts.search": "සෙවුම් අවධානය යොමු කිරීමට", + "keyboard_shortcuts.spoilers": "CW ක්ෂේත්‍රය පෙන්වීමට/සැඟවීමට", + "keyboard_shortcuts.start": "\"පටන් ගන්න\" තීරුව අරින්න", + "keyboard_shortcuts.toggle_hidden": "CW පිටුපස පෙළ පෙන්වීමට/සැඟවීමට", + "keyboard_shortcuts.toggle_sensitivity": "මාධ්‍ය පෙන්වන්න/සඟවන්න", + "keyboard_shortcuts.toot": "අලුත්ම ටූට් එකක් පටන් ගන්න", + "keyboard_shortcuts.unfocus": "අවධානය යොමු නොකිරීමට textarea/search රචනා කරන්න", + "keyboard_shortcuts.up": "ලැයිස්තුවේ ඉහළට යාමට", "lightbox.close": "වසන්න", - "lightbox.compress": "Compress image view box", - "lightbox.expand": "Expand image view box", + "lightbox.compress": "රූප බැලීමේ කොටුව සම්පීඩනය කරන්න", + "lightbox.expand": "රූප දර්ශන පෙට්ටිය දිග හරින්න", "lightbox.next": "ඊළඟ", "lightbox.previous": "පෙර", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", - "lists.account.add": "ලැයිස්තුවට එකතු කරන්න", - "lists.account.remove": "Remove from list", - "lists.delete": "Delete list", - "lists.edit": "ලැයිස්තුව සංස්කරණය කරන්න", - "lists.edit.submit": "Change title", + "limited_account_hint.action": "කෙසේ හෝ පැතිකඩ පෙන්වන්න", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", + "lists.account.add": "ලේඛනයට දමන්න", + "lists.account.remove": "ලේඛනයෙන් ඉවතලන්න", + "lists.delete": "ලේඛනය මකන්න", + "lists.edit": "ලේඛනය සංස්කරණය", + "lists.edit.submit": "මාතෘකාව වෙනස් කරන්න", "lists.new.create": "ලැයිස්තුව එකතු කරන්න", - "lists.new.title_placeholder": "New list title", - "lists.replies_policy.followed": "Any followed user", - "lists.replies_policy.list": "Members of the list", + "lists.new.title_placeholder": "නව ලැයිස්තු මාතෘකාව", + "lists.replies_policy.followed": "අනුගමනය කරන ඕනෑම පරිශීලකයෙක්", + "lists.replies_policy.list": "ලැයිස්තුවේ සාමාජිකයන්", "lists.replies_policy.none": "කිසිවෙක් නැත", - "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", - "load_pending": "{count, plural, one {# new item} other {# new items}}", + "lists.replies_policy.title": "පිළිතුරු පෙන්වන්න:", + "lists.search": "ඔබ අනුගමනය කරන පුද්ගලයින් අතර සොයන්න", + "lists.subheading": "ඔබගේ ලේඛන", + "load_pending": "{count, plural, one {# නව අයිතමයක්} other {නව අයිතම #ක්}}", "loading_indicator.label": "පූරණය වෙමින්...", - "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", - "missing_indicator.label": "Not found", - "missing_indicator.sublabel": "This resource could not be found", - "mute_modal.duration": "Duration", - "mute_modal.hide_notifications": "Hide notifications from this user?", - "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "ජංගම යෙදුම්", - "navigation_bar.blocks": "අවහිර කළ පරිශීලකයින්", - "navigation_bar.bookmarks": "පොත් යොමු", - "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", + "media_gallery.toggle_visible": "{number, plural, one {රූපය සඟවන්න} other {පින්තූර සඟවන්න}}", + "missing_indicator.label": "හමු නොවිණි", + "missing_indicator.sublabel": "මෙම සම්පත හමු නොවිණි", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", + "mute_modal.duration": "පරාසය", + "mute_modal.hide_notifications": "මෙම පරිශීලකයාගෙන් දැනුම්දීම් සඟවන්නද?", + "mute_modal.indefinite": "අවිනිශ්චිත", + "navigation_bar.about": "About", + "navigation_bar.blocks": "අවහිර කළ අය", + "navigation_bar.bookmarks": "පොත්යොමු", + "navigation_bar.community_timeline": "දේශීය කාලරේඛාව", + "navigation_bar.compose": "නව ටූට් සාදන්න", + "navigation_bar.direct": "සෘජු පණිවිඩ", + "navigation_bar.discover": "සොයා ගන්න", + "navigation_bar.domain_blocks": "අවහිර කළ වසම්", "navigation_bar.edit_profile": "පැතිකඩ සංස්කරණය", - "navigation_bar.explore": "Explore", + "navigation_bar.explore": "ගවේෂණය කරන්න", "navigation_bar.favourites": "ප්‍රියතමයන්", "navigation_bar.filters": "නිහඬ කළ වචන", - "navigation_bar.follow_requests": "Follow requests", - "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "මෙම සේවාදායකය පිළිබඳව", - "navigation_bar.keyboard_shortcuts": "උණුසුම් යතුරු", - "navigation_bar.lists": "Lists", + "navigation_bar.follow_requests": "අනුගමන ඉල්ලීම්", + "navigation_bar.follows_and_followers": "අනුගමනය හා අනුගාමිකයින්", + "navigation_bar.lists": "ලේඛන", "navigation_bar.logout": "නික්මෙන්න", - "navigation_bar.mutes": "Muted users", + "navigation_bar.mutes": "නිහඬ කළ අය", "navigation_bar.personal": "පුද්ගලික", - "navigation_bar.pins": "Pinned toots", - "navigation_bar.preferences": "Preferences", - "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.pins": "ඇමිණූ ලිපි", + "navigation_bar.preferences": "අභිප්‍රේත", + "navigation_bar.public_timeline": "ෆෙඩරේටඩ් කාලරේඛාව", + "navigation_bar.search": "Search", "navigation_bar.security": "ආරක්ෂාව", - "notification.admin.sign_up": "{name} signed up", - "notification.favourite": "{name} favourited your status", - "notification.follow": "{name} followed you", - "notification.follow_request": "{name} has requested to follow you", - "notification.mention": "{name} mentioned you", - "notification.own_poll": "Your poll has ended", - "notification.poll": "A poll you have voted in has ended", - "notification.reblog": "{name} boosted your status", - "notification.status": "{name} just posted", - "notification.update": "{name} edited a post", - "notifications.clear": "දැනුම්දීම් හිස්කරන්න", - "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", - "notifications.column_settings.admin.sign_up": "New sign-ups:", - "notifications.column_settings.alert": "Desktop notifications", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} වාර්තා {target}", + "notification.admin.sign_up": "{name} අත්සන් කර ඇත", + "notification.favourite": "{name} ඔබගේ තත්වයට කැමති විය", + "notification.follow": "{name} ඔබව අනුගමනය කළා", + "notification.follow_request": "{name} ඔබව අනුගමනය කිරීමට ඉල්ලා ඇත", + "notification.mention": "{name} ඔබව සඳහන් කර ඇත", + "notification.own_poll": "ඔබගේ මත විමසුම නිමයි", + "notification.poll": "ඔබ ඡන්දය දුන් මත විමසුමක් නිමයි", + "notification.reblog": "{name} ඔබේ තත්ත්වය ඉහළ නැංවීය", + "notification.status": "{name} දැන් පළ කළා", + "notification.update": "{name} පළ කිරීමක් සංස්කරණය කළා", + "notifications.clear": "දැනුම්දීම් මකන්න", + "notifications.clear_confirmation": "ඔබට ඔබගේ සියලු දැනුම්දීම් ස්ථිරවම හිස් කිරීමට අවශ්‍ය බව විශ්වාසද?", + "notifications.column_settings.admin.report": "නව වාර්තා:", + "notifications.column_settings.admin.sign_up": "නව ලියාපදිංචි:", + "notifications.column_settings.alert": "වැඩතල දැනුම්දීම්", "notifications.column_settings.favourite": "ප්‍රියතමයන්:", - "notifications.column_settings.filter_bar.advanced": "Display all categories", - "notifications.column_settings.filter_bar.category": "Quick filter bar", - "notifications.column_settings.filter_bar.show_bar": "Show filter bar", - "notifications.column_settings.follow": "New followers:", - "notifications.column_settings.follow_request": "New follow requests:", + "notifications.column_settings.filter_bar.advanced": "සියළු ප්‍රවර්ග පෙන්වන්න", + "notifications.column_settings.filter_bar.category": "ඉක්මන් පෙරහන් තීරුව", + "notifications.column_settings.filter_bar.show_bar": "පෙරහන් තීරුව පෙන්වන්න", + "notifications.column_settings.follow": "නව අනුගාමිකයින්:", + "notifications.column_settings.follow_request": "නව අනුගමන ඉල්ලීම්:", "notifications.column_settings.mention": "සැඳහුම්:", - "notifications.column_settings.poll": "Poll results:", - "notifications.column_settings.push": "Push notifications", - "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.poll": "ඡන්ද ප්‍රතිඵල:", + "notifications.column_settings.push": "තල්ලු දැනුම්දීම්", + "notifications.column_settings.reblog": "තල්ලු කිරීම්:", "notifications.column_settings.show": "තීරුවෙහි පෙන්වන්න", - "notifications.column_settings.sound": "ශබ්දය ධාවනය", - "notifications.column_settings.status": "New toots:", - "notifications.column_settings.unread_notifications.category": "Unread notifications", - "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications", - "notifications.column_settings.update": "Edits:", + "notifications.column_settings.sound": "ශබ්දය වාදනය", + "notifications.column_settings.status": "නව ලිපි:", + "notifications.column_settings.unread_notifications.category": "නොකියවූ දැනුම්දීම්", + "notifications.column_settings.unread_notifications.highlight": "නොකියවූ දැනුම්දීම් ඉස්මතු කරන්න", + "notifications.column_settings.update": "සංශෝධන:", "notifications.filter.all": "සියල්ල", - "notifications.filter.boosts": "Boosts", + "notifications.filter.boosts": "බූස්ට් කරයි", "notifications.filter.favourites": "ප්‍රියතමයන්", - "notifications.filter.follows": "Follows", + "notifications.filter.follows": "අනුගමනය", "notifications.filter.mentions": "සැඳහුම්", - "notifications.filter.polls": "Poll results", - "notifications.filter.statuses": "Updates from people you follow", - "notifications.grant_permission": "Grant permission.", + "notifications.filter.polls": "ඡන්ද ප්‍රතිඵල", + "notifications.filter.statuses": "ඔබ අනුගමනය කරන පුද්ගලයින්ගෙන් යාවත්කාලීන", + "notifications.grant_permission": "අවසර දෙන්න.", "notifications.group": "දැනුම්දීම් {count}", - "notifications.mark_as_read": "සෑම දැනුම්දීමක්ම කියවූ ලෙස සලකුණු කරන්න", - "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", - "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", - "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", - "notifications_permission_banner.enable": "Enable desktop notifications", - "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", - "notifications_permission_banner.title": "Never miss a thing", - "picture_in_picture.restore": "Put it back", + "notifications.mark_as_read": "සියළු දැනුම්දීම් කියවූ බව යොදන්න", + "notifications.permission_denied": "කලින් ප්‍රතික්ෂේප කළ බ්‍රවුසර අවසර ඉල්ලීම හේතුවෙන් ඩෙස්ක්ටොප් දැනුම්දීම් නොමැත", + "notifications.permission_denied_alert": "බ්‍රවුසර අවසරය පෙර ප්‍රතික්ෂේප කර ඇති බැවින්, ඩෙස්ක්ටොප් දැනුම්දීම් සබල කළ නොහැක", + "notifications.permission_required": "අවශ්‍ය අවසරය ලබා දී නොමැති නිසා ඩෙස්ක්ටොප් දැනුම්දීම් නොමැත.", + "notifications_permission_banner.enable": "වැඩතල දැනුම්දීම් සබල කරන්න", + "notifications_permission_banner.how_to_control": "Mastodon විවෘතව නොමැති විට දැනුම්දීම් ලබා ගැනීමට, ඩෙස්ක්ටොප් දැනුම්දීම් සබල කරන්න. ඔබට ඒවා සක්‍රිය කළ පසු ඉහත {icon} බොත්තම හරහා ඩෙස්ක්ටොප් දැනුම්දීම් ජනනය කරන්නේ කුමන ආකාරයේ අන්තර්ක්‍රියාද යන්න නිවැරදිව පාලනය කළ හැක.", + "notifications_permission_banner.title": "කිසිම දෙයක් අතපසු කරන්න එපා", + "picture_in_picture.restore": "ආපහු දාන්න", "poll.closed": "වසා ඇත", "poll.refresh": "නැවුම් කරන්න", - "poll.total_people": "{count, plural, one {# person} other {# people}}", - "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "මනාපය", - "poll.voted": "You voted for this answer", - "poll.votes": "{votes, plural, one {# vote} other {# votes}}", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", - "privacy.change": "Adjust status privacy", - "privacy.direct.long": "Visible for mentioned users only", - "privacy.direct.short": "Direct", - "privacy.private.long": "Visible for followers only", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "poll.total_people": "{count, plural, one {# පුද්ගලයා} other {# මහජන}}", + "poll.total_votes": "{count, plural, one {# ඡන්දය} other {ඡන්ද #}}", + "poll.vote": "ඡන්දය", + "poll.voted": "ඔබ මෙම පිළිතුරට ඡන්දය දුන්නා", + "poll.votes": "{votes, plural, one {# ඡන්දය} other {ඡන්ද #}}", + "poll_button.add_poll": "මත විමසුමක් යොදන්න", + "poll_button.remove_poll": "මත විමසුම ඉවතලන්න", + "privacy.change": "ලිපියේ රහස්‍යතාව සංශෝධනය", + "privacy.direct.long": "සඳහන් කළ අයට දිස්වෙයි", + "privacy.direct.short": "සඳහන් කළ අයට පමණි", + "privacy.private.long": "අනුගාමිකයින්ට දිස්වේ", + "privacy.private.short": "අනුගාමිකයින් පමණි", + "privacy.public.long": "සැමට දිස්වෙයි", "privacy.public.short": "ප්‍රසිද්ධ", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", - "privacy.unlisted.short": "Unlisted", + "privacy.unlisted.long": "සැමට දෘශ්‍යමාන, නමුත් සොයාගැනීමේ විශේෂාංග වලින් ඉවත් විය", + "privacy.unlisted.short": "ලැයිස්තුගත නොකළ", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "නැවුම් කරන්න", "regeneration_indicator.label": "පූරණය වෙමින්…", - "regeneration_indicator.sublabel": "Your home feed is being prepared!", - "relative_time.days": "{number}d", - "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", - "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", - "relative_time.full.just_now": "just now", - "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", - "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", - "relative_time.hours": "{number}h", + "regeneration_indicator.sublabel": "ඔබේ නිවසේ පෝෂණය සූදානම් වෙමින් පවතී!", + "relative_time.days": "ද. {number}", + "relative_time.full.days": "{number, plural, one {# දින} other {# දින}} පෙර", + "relative_time.full.hours": "{number, plural, one {පැය #} other {පැය #}} කට පෙර", + "relative_time.full.just_now": "මේ දැන්", + "relative_time.full.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}} කට පෙර", + "relative_time.full.seconds": "{number, plural, one {තත්පර #} other {තත්පර #}} කට පෙර", + "relative_time.hours": "පැය {number}", "relative_time.just_now": "දැන්", - "relative_time.minutes": "{number}m", - "relative_time.seconds": "{number}s", + "relative_time.minutes": "වි. {number}", + "relative_time.seconds": "තත්. {number}", "relative_time.today": "අද", "reply_indicator.cancel": "අවලංගු කරන්න", - "report.block": "Block", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", - "report.categories.spam": "Spam", - "report.categories.violation": "Content violates one or more server rules", - "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", - "report.category.title_account": "profile", - "report.category.title_status": "post", - "report.close": "Done", - "report.comment.title": "Is there anything else you think we should know?", - "report.forward": "Forward to {target}", - "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", - "report.mute": "Mute", - "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", - "report.next": "Next", + "report.block": "අවහිර", + "report.block_explanation": "ඔබට ඔවුන්ගේ පෝස්ට් නොපෙනේ. ඔවුන්ට ඔබේ පළ කිරීම් බැලීමට හෝ ඔබව අනුගමනය කිරීමට නොහැකි වනු ඇත. ඔවුන් අවහිර කර ඇති බව ඔවුන්ට පැවසිය හැකිය.", + "report.categories.other": "වෙනත්", + "report.categories.spam": "ආයාචිත", + "report.categories.violation": "අන්තර්ගතය සේවාදායක නීති එකක් හෝ කිහිපයක් උල්ලංඝනය කරයි", + "report.category.subtitle": "හොඳම ගැලපීම තෝරන්න", + "report.category.title": "මෙම {type}සමඟ සිදුවන්නේ කුමක්දැයි අපට කියන්න", + "report.category.title_account": "පැතිකඩ", + "report.category.title_status": "තැපැල්", + "report.close": "අහවරයි", + "report.comment.title": "අප දැනගත යුතු යැයි ඔබ සිතන තවත් යමක් තිබේද?", + "report.forward": "{target} වෙත හරවන්න", + "report.forward_hint": "ගිණුම වෙනත් සේවාදායකයකින්. වාර්තාවේ නිර්නාමික පිටපතක් එතනටත් එවන්න?", + "report.mute": "නිහඬ", + "report.mute_explanation": "ඔබට ඔවුන්ගේ පෝස්ට් නොපෙනේ. ඔවුන්ට තවමත් ඔබව අනුගමනය කිරීමට සහ ඔබේ පළ කිරීම් දැකීමට හැකි අතර ඒවා නිශ්ශබ්ද කර ඇති බව නොදැනේ.", + "report.next": "ඊළඟ", "report.placeholder": "අමතර අදහස්", - "report.reasons.dislike": "I don't like it", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "It's spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", - "report.reasons.violation": "It violates server rules", - "report.reasons.violation_description": "You are aware that it breaks specific rules", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.reasons.dislike": "මම එයට අකැමතියි", + "report.reasons.dislike_description": "ඒක බලන්න ඕන දෙයක් නෙවෙයි", + "report.reasons.other": "ඒක වෙන දෙයක්", + "report.reasons.other_description": "ගැටළුව වෙනත් වර්ග වලට නොගැලපේ", + "report.reasons.spam": "එය අයාචිතයි", + "report.reasons.spam_description": "අනිෂ්ට සබැඳි, ව්‍යාජ නියැලීම, හෝ පුනරාවර්තන පිළිතුරු", + "report.reasons.violation": "එය සේවාදායකයේ නීති කඩ කරයි", + "report.reasons.violation_description": "එය නිශ්චිත නීති කඩ කරන බව ඔබ දන්නවා", + "report.rules.subtitle": "අදාළ සියල්ල තෝරන්න", + "report.rules.title": "කුමන නීති උල්ලංඝනය කරන්නේද?", + "report.statuses.subtitle": "අදාළ සියල්ල තෝරන්න", + "report.statuses.title": "මෙම වාර්තාව උපස්ථ කරන පෝස්ට් තිබේද?", "report.submit": "යොමන්න", - "report.target": "Report {target}", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", - "report.thanks.title": "Don't want to see this?", - "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report.target": "වාර්තාව {target}", + "report.thanks.take_action": "Mastodon හි ඔබ දකින දේ පාලනය කිරීම සඳහා ඔබේ විකල්ප මෙන්න:", + "report.thanks.take_action_actionable": "අපි මෙය සමාලෝචනය කරන අතරතුර, ඔබට @{name}ට එරෙහිව පියවර ගත හැක:", + "report.thanks.title": "මෙය නොපෙන්විය යුතුද?", + "report.thanks.title_actionable": "වාර්තා කිරීමට ස්තූතියි, අපි මේ ගැන සොයා බලමු.", + "report.unfollow": "@{name}අනුගමනය නොකරන්න", + "report.unfollow_explanation": "ඔබ මෙම ගිණුම අනුගමනය කරයි. ඔබේ නිවසේ සංග්‍රහයේ ඔවුන්ගේ පළ කිරීම් තවදුරටත් නොදැකීමට, ඒවා අනුගමනය නොකරන්න.", + "report_notification.attached_statuses": "{count, plural, one {ලිපි {count}} other {ලිපි {count} ක්}} අමුණා ඇත", + "report_notification.categories.other": "වෙනත්", + "report_notification.categories.spam": "ආයාචිත", + "report_notification.categories.violation": "නීතිය කඩ කිරීම", + "report_notification.open": "විවෘත වාර්තාව", "search.placeholder": "සොයන්න", - "search_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.search_or_paste": "Search or paste URL", + "search_popout.search_format": "උසස් සෙවුම් ආකෘතිය", + "search_popout.tips.full_text": "සරල පෙළ ඔබ ලියා ඇති, ප්‍රිය කළ, වැඩි කළ හෝ සඳහන් කර ඇති තත්ත්වයන් මෙන්ම ගැළපෙන පරිශීලක නාම, සංදර්ශක නම් සහ හැෂ් ටැග් ලබා දෙයි.", + "search_popout.tips.hashtag": "හෑෂ් ටැගය", + "search_popout.tips.status": "ලිපිය", + "search_popout.tips.text": "සරල පෙළ ගැළපෙන සංදර්ශක නම්, පරිශීලක නාම සහ හැෂ් ටැග් ලබා දෙයි", "search_popout.tips.user": "පරිශීලක", "search_results.accounts": "මිනිසුන්", - "search_results.all": "All", - "search_results.hashtags": "Hashtags", - "search_results.nothing_found": "Could not find anything for these search terms", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", - "search_results.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": "@{name} අවහිර කරන්න", - "status.bookmark": "පොත් යොමුව", + "search_results.all": "සියල්ල", + "search_results.hashtags": "හැෂ් ටැග්", + "search_results.nothing_found": "මෙම සෙවුම් පද සඳහා කිසිවක් සොයාගත නොහැකි විය", + "search_results.statuses": "ලිපි", + "search_results.statuses_fts_disabled": "මෙම Mastodon සේවාදායකයේ ඒවායේ අන්තර්ගතය අනුව මෙවලම් සෙවීම සබල නොවේ.", + "search_results.title": "Search for {q}", + "search_results.total": "{count, number} {count, plural, one {ප්රතිඵලය} other {ප්රතිපල}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "status.admin_account": "@{name}සඳහා මධ්‍යස්ථ අතුරුමුහුණත විවෘත කරන්න", + "status.admin_status": "මධ්‍යස්ථ අතුරුමුහුණතෙහි මෙම තත්ත්වය විවෘත කරන්න", + "status.block": "@{name} අවහිර", + "status.bookmark": "පොත්යොමුවක්", "status.cancel_reblog_private": "Unboost", - "status.cannot_reblog": "This post cannot be boosted", - "status.copy": "Copy link to status", - "status.delete": "Delete", - "status.detailed_status": "Detailed conversation view", - "status.direct": "@{name} සෘජු පණිවිඩය", - "status.edit": "Edit", - "status.edited": "Edited {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", - "status.embed": "එබ්බවූ", + "status.cannot_reblog": "මෙම තනතුර වැඩි කළ නොහැක", + "status.copy": "තත්වයට සබැඳිය පිටපත් කරන්න", + "status.delete": "මකන්න", + "status.detailed_status": "විස්තරාත්මක සංවාද දැක්ම", + "status.direct": "@{name} සෘජු පණිවිඩයක්", + "status.edit": "සංස්කරණය", + "status.edited": "සංශෝධිතයි {date}", + "status.edited_x_times": "සංශෝධිතයි {count, plural, one {වාර {count}} other {වාර {count}}}", + "status.embed": "කාවැද්දූ", "status.favourite": "ප්‍රියතම", + "status.filter": "Filter this post", "status.filtered": "පෙරන ලද", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", - "status.load_more": "තව පූරණය කරන්න", + "status.hide": "Hide toot", + "status.history.created": "{name} නිර්මාණය {date}", + "status.history.edited": "{name} සංස්කරණය {date}", + "status.load_more": "තව පූරණය", "status.media_hidden": "මාධ්‍ය සඟවා ඇත", "status.mention": "@{name} සැඳහුම", "status.more": "තව", - "status.mute": "@{name} නිහඬ කරන්න", - "status.mute_conversation": "සංවාදය නිහඬ කරන්න", - "status.open": "Expand this status", - "status.pin": "Pin on profile", - "status.pinned": "Pinned toot", + "status.mute": "@{name} නිහඬව", + "status.mute_conversation": "සංවාදය නිහඬව", + "status.open": "මෙම ලිපිය විහිදන්න", + "status.pin": "පැතිකඩට අමුණන්න", + "status.pinned": "ඇමිණූ ලිපියකි", "status.read_more": "තව කියවන්න", - "status.reblog": "Boost", - "status.reblog_private": "Boost with original visibility", - "status.reblogged_by": "{name} boosted", - "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", - "status.redraft": "Delete & re-draft", - "status.remove_bookmark": "පොත්යොමුව ඉවත් කරන්න", + "status.reblog": "බූස්ට් කරන්න", + "status.reblog_private": "මුල් දෘශ්‍යතාව සමඟ වැඩි කරන්න", + "status.reblogged_by": "{name} වැඩි කරන ලදී", + "status.reblogs.empty": "තාම කවුරුත් මේ toot එක boost කරලා නැහැ. යමෙකු එසේ කළ විට, ඔවුන් මෙහි පෙන්වනු ඇත.", + "status.redraft": "මකන්න සහ නැවත කෙටුම්පත", + "status.remove_bookmark": "පොත්යොමුව ඉවතලන්න", + "status.replied_to": "Replied to {name}", "status.reply": "පිළිතුරු", - "status.replyAll": "Reply to thread", - "status.report": "@{name} වාර්තා කරන්න", + "status.replyAll": "ත්‍රෙඩ් එකට පිළිතුරු දෙන්න", + "status.report": "@{name} වාර්තාව", "status.sensitive_warning": "සංවේදී අන්තර්ගතයකි", "status.share": "බෙදාගන්න", + "status.show_filter_reason": "කෙසේ වුවද පෙන්වන්න", "status.show_less": "අඩුවෙන් පෙන්වන්න", - "status.show_less_all": "Show less for all", - "status.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", + "status.show_less_all": "සියල්ල අඩුවෙන් පෙන්වන්න", + "status.show_more": "තවත් පෙන්වන්න", + "status.show_more_all": "සියල්ල වැඩියෙන් පෙන්වන්න", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", + "status.uncached_media_warning": "නොතිබේ", + "status.unmute_conversation": "සංවාදය නොනිහඬ", + "status.unpin": "පැතිකඩෙන් ගළවන්න", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "වෙනස්කම් සුරකින්න", + "subscribed_languages.target": "Change subscribed languages for {target}", + "suggestions.dismiss": "යෝජනාව ඉවතලන්න", + "suggestions.header": "ඔබ…ගැන උනන්දු විය හැකිය", + "tabs_bar.federated_timeline": "ෆෙඩරල්", "tabs_bar.home": "මුල් පිටුව", "tabs_bar.local_timeline": "ස්ථානීය", "tabs_bar.notifications": "දැනුම්දීම්", - "tabs_bar.search": "සොයන්න", - "time_remaining.days": "{number, plural, one {# day} other {# days}} left", - "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", - "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", - "time_remaining.moments": "Moments remaining", - "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", - "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", - "timeline_hint.resources.followers": "Followers", - "timeline_hint.resources.follows": "Follows", - "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", - "trends.trending_now": "Trending now", - "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", - "units.short.billion": "{count}B", - "units.short.million": "{count}M", - "units.short.thousand": "{count}K", - "upload_area.title": "උඩුගත කිරීමට ඇද දමන්න", - "upload_button.label": "Add images, a video or an audio file", - "upload_error.limit": "ගොනුව උඩුගත කළ හැකි සීමාව ඉක්මවා ඇත.", - "upload_error.poll": "File upload not allowed with polls.", - "upload_form.audio_description": "Describe for people with hearing loss", - "upload_form.description": "Describe for the visually impaired", - "upload_form.description_missing": "No description added", + "time_remaining.days": "{number, plural, one {# දින} other {# දින}} අත්හැරියා", + "time_remaining.hours": "{number, plural, one {# පැය} other {# පැය}} අත්හැරියා", + "time_remaining.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}} අත්හැරියා", + "time_remaining.moments": "ඉතිරිව ඇති මොහොත", + "time_remaining.seconds": "{number, plural, one {# දෙවැනි} other {# තත්පර}} අත්හැරියා", + "timeline_hint.remote_resource_not_displayed": "වෙනත් සේවාදායකයන්ගෙන් {resource} දර්ශනය නොවේ.", + "timeline_hint.resources.followers": "අනුගාමිකයින්", + "timeline_hint.resources.follows": "අනුගමනය", + "timeline_hint.resources.statuses": "පරණ ලිපි", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.trending_now": "දැන් ප්‍රවණතාවය", + "ui.beforeunload": "ඔබ මාස්ටඩන් හැර ගියහොත් කටුපිටපත අහිමි වේ.", + "units.short.billion": "{count}බී", + "units.short.million": "ද.ල. {count}", + "units.short.thousand": "{count}කි", + "upload_area.title": "උඩුගතයට ඇද දමන්න", + "upload_button.label": "රූප, දෘශ්‍යක හෝ හඬපට යොදන්න", + "upload_error.limit": "සීමාව ඉක්මවා ඇත.", + "upload_error.poll": "මත විමසුම් සමඟ ගොනු යෙදීමට ඉඩ නොදේ.", + "upload_form.audio_description": "නොඇසෙන අය සඳහා විස්තර කරන්න", + "upload_form.description": "දෘශ්‍යාබාධිතයන් සඳහා විස්තර කරන්න", + "upload_form.description_missing": "සවිස්තරයක් නැත", "upload_form.edit": "සංස්කරණය", - "upload_form.thumbnail": "Change thumbnail", - "upload_form.undo": "Delete", - "upload_form.video_description": "Describe for people with hearing loss or visual impairment", + "upload_form.thumbnail": "සිඟිති රුව වෙනස් කරන්න", + "upload_form.undo": "මකන්න", + "upload_form.video_description": "ශ්‍රවණාබාධ හෝ දෘශ්‍යාබාධිත පුද්ගලයන් සඳහා විස්තර කරන්න", "upload_modal.analyzing_picture": "පින්තූරය විශ්ලේෂණය කරමින්…", "upload_modal.apply": "යොදන්න", - "upload_modal.applying": "Applying…", - "upload_modal.choose_image": "පින්තුරයක් තෝරන්න", + "upload_modal.applying": "යොදමින්…", + "upload_modal.choose_image": "රූපයක් තෝරන්න", "upload_modal.description_placeholder": "කඩිසර දුඹුරු හිවලෙක් කම්මැලි බල්ලා මතින් පනී", - "upload_modal.detect_text": "පින්තූරයෙන් පාඨ හඳුනාගන්න", + "upload_modal.detect_text": "රූපයෙහි පෙළ අනාවරණය", "upload_modal.edit_media": "මාධ්‍ය සංස්කරණය", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preparing_ocr": "Preparing OCR…", + "upload_modal.hint": "සියලුම සිඟිති රූ මත සැම විටම දර්ශනය වන නාභි ලක්ෂ්‍යය තේරීමට පෙරදසුනෙහි රවුම ක්ලික් කරන්න හෝ අදින්න.", + "upload_modal.preparing_ocr": "OCR…සූදානම් කරමින්", "upload_modal.preview_label": "පෙරදසුන ({ratio})", "upload_progress.label": "උඩුගත වෙමින්...", + "upload_progress.processing": "Processing…", "video.close": "දෘශ්‍යකය වසන්න", "video.download": "ගොනුව බාගන්න", "video.exit_fullscreen": "පූර්ණ තිරයෙන් පිටවන්න", - "video.expand": "Expand video", + "video.expand": "දෘශ්‍යකය විහිදන්න", "video.fullscreen": "පූර්ණ තිරය", "video.hide": "දෘශ්‍යකය සඟවන්න", - "video.mute": "Mute sound", + "video.mute": "ශබ්දය නිහඬ", "video.pause": "විරාමය", "video.play": "ධාවනය", - "video.unmute": "Unmute sound" + "video.unmute": "ශබ්දය නොනිහඬ" } diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 48d67de4cfd6eb..d02fb0bec9f77b 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Obmedzená", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Vylúčený/á", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Serverové pravidlá", "account.account_note_header": "Poznámka", "account.add_or_remove_from_list": "Pridaj do, alebo odober zo zoznamov", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Ukry všetko z {domain}", "account.blocked": "Blokovaný/á", "account.browse_more_on_origin_server": "Prehľadávaj viac na pôvodnom profile", - "account.cancel_follow_request": "Zruš žiadosť o sledovanie", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Priama správa pre @{name}", "account.disable_notifications": "Prestaň oznamovať, keď má príspevky @{name}", "account.domain_blocked": "Doména ukrytá", "account.edit_profile": "Uprav profil", "account.enable_notifications": "Oboznamuj ma, keď má @{name} príspevky", "account.endorse": "Zobrazuj na profile", + "account.featured_tags.last_status_at": "Posledný príspevok dňa {date}", + "account.featured_tags.last_status_never": "Žiadne príspevky", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Nasleduj", "account.followers": "Sledujúci", "account.followers.empty": "Tohto používateľa ešte nikto nenásleduje.", @@ -22,18 +37,21 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "Tento používateľ ešte nikoho nenasleduje.", "account.follows_you": "Nasleduje ťa", + "account.go_to_profile": "Prejdi na profil", "account.hide_reblogs": "Skry vyzdvihnutia od @{name}", - "account.joined": "Pridal/a sa v {date}", + "account.joined_short": "Pridal/a sa", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}", "account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sám prehodnocuje, kto ho môže sledovať.", "account.media": "Médiá", "account.mention": "Spomeň @{name}", - "account.moved_to": "{name} sa presunul/a na:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Nevšímaj si @{name}", "account.mute_notifications": "Stĺm oboznámenia od @{name}", "account.muted": "Nevšímaný/á", - "account.posts": "Príspevky", - "account.posts_with_replies": "Príspevky, aj s odpoveďami", + "account.open_original_page": "Open original page", + "account.posts": "Príspevky/ov", + "account.posts_with_replies": "Príspevky a odpovede", "account.report": "Nahlás @{name}", "account.requested": "Čaká na schválenie. Klikni pre zrušenie žiadosti", "account.share": "Zdieľaj @{name} profil", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Ups!", "announcement.announcement": "Oboznámenie", "attachments_list.unprocessed": "(nespracované)", + "audio.hide": "Skry zvuk", "autosuggest_hashtag.per_week": "{count} týždenne", "boost_modal.combo": "Nabudúce môžeš kliknúť {combo} pre preskočenie", - "bundle_column_error.body": "Pri načítaní tohto prvku nastala nejaká chyba.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Chyba siete", "bundle_column_error.retry": "Skús to znova", - "bundle_column_error.title": "Chyba siete", + "bundle_column_error.return": "Prejdi späť na domovskú stránku", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zatvor", "bundle_modal_error.message": "Nastala chyba pri načítaní tohto komponentu.", "bundle_modal_error.retry": "Skúsiť znova", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Vytvorenie účtu na {domain} nie je v súčasnosti možné, ale majte prosím na pamäti, že nepotrebujete účet práve na {domain}, aby bolo možné používať Mastodon.", + "closed_registrations_modal.find_another_server": "Nájdi iný server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Registrácia na Mastodon", + "column.about": "O tomto serveri", "column.blocks": "Blokovaní užívatelia", "column.bookmarks": "Záložky", "column.community": "Miestna časová os", @@ -92,8 +123,8 @@ "community.column_settings.local_only": "Iba miestna", "community.column_settings.media_only": "Iba médiá", "community.column_settings.remote_only": "Iba odľahlé", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Zmeň jazyk", + "compose.language.search": "Hľadaj medzi jazykmi...", "compose_form.direct_message_warning_learn_more": "Zisti viac", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "Tento toot nebude zobrazený pod žiadným haštagom lebo nieje listovaný. Iba verejné tooty môžu byť nájdené podľa haštagu.", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Odstráň túto voľbu", "compose_form.poll.switch_to_multiple": "Zmeň anketu pre povolenie viacerých možností", "compose_form.poll.switch_to_single": "Zmeň anketu na takú s jedinou voľbou", - "compose_form.publish": "Pošli", + "compose_form.publish": "Zverejni", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Ulož zmeny", "compose_form.sensitive.hide": "Označ médiá ako chúlostivé", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Zablokuj a nahlás", "confirmations.block.confirm": "Blokuj", "confirmations.block.message": "Si si istý/á, že chceš blokovať {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Vymaž", "confirmations.delete.message": "Si si istý/á, že chceš vymazať túto správu?", "confirmations.delete_list.confirm": "Vymaž", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Označ za prečítané", "conversation.open": "Ukáž konverzáciu", "conversation.with": "S {names}", + "copypaste.copied": "Skopírované", + "copypaste.copy": "Kopíruj", "directory.federated": "Zo známého fedivesmíru", "directory.local": "Iba z {domain}", "directory.new_arrivals": "Nové príchody", "directory.recently_active": "Nedávno aktívne", + "disabled_account_banner.account_settings": "Nastavenia účtu", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.", "embed.preview": "Tu je ako to bude vyzerať:", "emoji_button.activity": "Aktivita", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Vyčisti", "emoji_button.custom": "Vlastné", "emoji_button.flags": "Vlajky", "emoji_button.food": "Jedlá a nápoje", @@ -169,7 +212,7 @@ "empty_column.blocks": "Ešte si nikoho nezablokoval/a.", "empty_column.bookmarked_statuses": "Ešte nemáš žiadné záložky. Keď si pridáš príspevok k záložkám, zobrazí sa tu.", "empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "Ešte nemáš žiadne priame správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.", "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "Nemáš obľúbené ešte žiadne príspevky. Keď si nejaký obľúbiš, bude zobrazený práve tu.", @@ -196,21 +239,37 @@ "explore.trending_links": "Novinky", "explore.trending_statuses": "Príspevky", "explore.trending_tags": "Haštagy", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Nastavenie triedenia", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Triedenie pridané!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "vypršalo", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Hotovo", "follow_recommendations.heading": "Následuj ľudí od ktorých by si chcel/a vidieť príspevky! Tu sú nejaké návrhy.", "follow_recommendations.lead": "Príspevky od ľudi ktorých sledujete sa zobrazia v chronologickom poradí na Vašej nástenke. Nebojte sa spraviť chyby, vždy môžete zrušiť sledovanie konkrétnych ľudí!", "follow_request.authorize": "Povoľ prístup", "follow_request.reject": "Odmietni", "follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Pozvi ľudí", + "footer.keyboard_shortcuts": "Klávesové skratky", + "footer.privacy_policy": "Zásady súkromia", + "footer.source_code": "Zobraziť zdrojový kód", "generic.saved": "Uložené", - "getting_started.developers": "Vývojári", - "getting_started.directory": "Zoznam profilov", - "getting_started.documentation": "Dokumentácia", "getting_started.heading": "Začni tu", - "getting_started.invite": "Pozvi ľudí", - "getting_started.open_source_notice": "Mastodon je softvér s otvoreným kódom. Nahlásiť chyby, alebo prispievať môžeš na GitHube v {github}.", - "getting_started.security": "Zabezpečenie", - "getting_started.terms": "Podmienky prevozu", "hashtag.column_header.tag_mode.all": "a {additional}", "hashtag.column_header.tag_mode.any": "alebo {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Hociktorý z týchto", "hashtag.column_settings.tag_mode.none": "Žiaden z týchto", "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec", + "hashtag.follow": "Nasleduj haštag", + "hashtag.unfollow": "Nesleduj haštag", "home.column_settings.basic": "Základné", "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté", "home.column_settings.show_replies": "Ukáž odpovede", "home.hide_announcements": "Skry oboznámenia", "home.show_announcements": "Ukáž oboznámenia", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "Na inom serveri", + "interaction_modal.on_this_server": "Na tomto serveri", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Nasleduj {name}", + "interaction_modal.title.reblog": "Vyzdvihni {name}ov/in príspevok", + "interaction_modal.title.reply": "Odpovedz na {name}ov/in príspevok", "intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodín}}", "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minút}}", @@ -234,7 +307,7 @@ "keyboard_shortcuts.column": "zameraj sa na príspevok v jednom zo stĺpcov", "keyboard_shortcuts.compose": "zameraj sa na písaciu plochu", "keyboard_shortcuts.description": "Popis", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "pre otvorenie panelu priamých správ", "keyboard_shortcuts.down": "posunúť sa dole v zozname", "keyboard_shortcuts.enter": "Otvor príspevok", "keyboard_shortcuts.favourite": "pridaj do obľúbených", @@ -267,8 +340,8 @@ "lightbox.expand": "Rozšíriť náhľad obrázku", "lightbox.next": "Ďalšie", "lightbox.previous": "Predchádzajúci", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Ukáž profil aj tak", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Pridaj do zoznamu", "lists.account.remove": "Odober zo zoznamu", "lists.delete": "Vymaž list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Zapni/Vypni viditeľnosť", "missing_indicator.label": "Nenájdené", "missing_indicator.sublabel": "Tento zdroj sa ešte nepodarilo nájsť", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Trvanie", "mute_modal.hide_notifications": "Skry oznámenia od tohto používateľa?", "mute_modal.indefinite": "Bez obmedzenia", - "navigation_bar.apps": "Aplikácie", + "navigation_bar.about": "O tomto serveri", "navigation_bar.blocks": "Blokovaní užívatelia", "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Miestna časová os", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Filtrované slová", "navigation_bar.follow_requests": "Žiadosti o sledovanie", "navigation_bar.follows_and_followers": "Sledovania a následovatelia", - "navigation_bar.info": "O tomto serveri", - "navigation_bar.keyboard_shortcuts": "Klávesové skratky", "navigation_bar.lists": "Zoznamy", "navigation_bar.logout": "Odhlás sa", "navigation_bar.mutes": "Stíšení užívatelia", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pripnuté príspevky", "navigation_bar.preferences": "Nastavenia", "navigation_bar.public_timeline": "Federovaná časová os", + "navigation_bar.search": "Hľadaj", "navigation_bar.security": "Zabezbečenie", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} nahlásil/a {target}", "notification.admin.sign_up": "{name} sa zaregistroval/a", "notification.favourite": "{name} si obľúbil/a tvoj príspevok", "notification.follow": "{name} ťa začal/a následovať", @@ -326,6 +401,7 @@ "notification.update": "{name} upravil/a príspevok", "notifications.clear": "Vyčisti oboznámenia", "notifications.clear_confirmation": "Naozaj chceš nenávratne prečistiť všetky tvoje oboznámenia?", + "notifications.column_settings.admin.report": "Nové hlásenia:", "notifications.column_settings.admin.sign_up": "Nové registrácie:", "notifications.column_settings.alert": "Oboznámenia na ploche", "notifications.column_settings.favourite": "Obľúbené:", @@ -372,16 +448,18 @@ "poll_button.remove_poll": "Odstráň anketu", "privacy.change": "Uprav súkromie príspevku", "privacy.direct.long": "Pošli iba spomenutým užívateľom", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Iba spomenutým ľudom", "privacy.private.long": "Pošli iba následovateľom", - "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.private.short": "Iba pre sledujúcich", + "privacy.public.long": "Viditeľné pre všetkých", "privacy.public.short": "Verejné", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Verejne, ale nezobraziť v osi", + "privacy_policy.last_updated": "Posledná úprava {date}", + "privacy_policy.title": "Zásady súkromia", "refresh": "Obnoviť", "regeneration_indicator.label": "Načítava sa…", - "regeneration_indicator.sublabel": "Vaša nástenka sa pripravuje!", + "regeneration_indicator.sublabel": "Tvoja domovská nástenka sa pripravuje!", "relative_time.days": "{number}dní", "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", @@ -396,7 +474,7 @@ "reply_indicator.cancel": "Zrušiť", "report.block": "Blokuj", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", + "report.categories.other": "Ostatné", "report.categories.spam": "Spam", "report.categories.violation": "Content violates one or more server rules", "report.category.subtitle": "Choose the best match", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Nesleduj @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Ostatné", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Hľadaj", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Pokročilé vyhľadávanie", "search_popout.tips.full_text": "Vráti jednoduchý textový výpis príspevkov ktoré si napísal/a, ktoré si obľúbil/a, povýšil/a, alebo aj tých, v ktorých si bol/a spomenutý/á, a potom všetky zadaniu odpovedajúce prezývky, mená a haštagy.", "search_popout.tips.hashtag": "haštag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Príspevky", "search_results.statuses_fts_disabled": "Vyhľadávanie v obsahu príspevkov nieje na tomto Mastodon serveri povolené.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {výsledok} many {výsledkov} other {výsledky}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Správcom je:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Zisti viac", + "server_banner.server_stats": "Serverové štatistiky:", + "sign_in_banner.create_account": "Vytvor účet", + "sign_in_banner.sign_in": "Prihlás sa", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Otvor moderovacie rozhranie užívateľa @{name}", "status.admin_status": "Otvor tento príspevok v moderovacom rozhraní", "status.block": "Blokuj @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Vložiť", "status.favourite": "Páči sa mi", + "status.filter": "Filter this post", "status.filtered": "Filtrované", + "status.hide": "Skry príspevok", "status.history.created": "{name} vytvoril/a {date}", "status.history.edited": "{name} upravil/a {date}", "status.load_more": "Ukáž viac", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Nikto ešte nevyzdvihol tento príspevok. Keď tak niekto urobí, bude to zobrazené práve tu.", "status.redraft": "Vymaž a prepíš", "status.remove_bookmark": "Odstráň záložku", + "status.replied_to": "Odpoveď na {name}", "status.reply": "Odpovedať", "status.replyAll": "Odpovedz na diskusiu", "status.report": "Nahlás @{name}", "status.sensitive_warning": "Chúlostivý obsah", "status.share": "Zdieľaj", + "status.show_filter_reason": "Ukáž aj tak", "status.show_less": "Zobraz menej", "status.show_less_all": "Všetkým ukáž menej", "status.show_more": "Ukáž viac", "status.show_more_all": "Všetkým ukáž viac", - "status.show_thread": "Ukáž diskusné vlákno", + "status.show_original": "Ukáž pôvodný", + "status.translate": "Preložiť", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nedostupný/é", "status.unmute_conversation": "Prestaň si nevšímať konverzáciu", "status.unpin": "Odopni z profilu", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Ulož zmeny", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Zavrhni návrh", "suggestions.header": "Mohlo by ťa zaujímať…", "tabs_bar.federated_timeline": "Federovaná", "tabs_bar.home": "Domov", "tabs_bar.local_timeline": "Miestna", "tabs_bar.notifications": "Oboznámenia", - "tabs_bar.search": "Hľadaj", "time_remaining.days": "Ostáva {number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}", "time_remaining.hours": "Ostáva {number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}", "time_remaining.minutes": "Ostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Sledujúci", "timeline_hint.resources.follows": "Následuje", "timeline_hint.resources.statuses": "Staršie príspevky", - "trends.counter_by_accounts": "{count, plural, one {{counter} človek rozpráva} few {{counter} ľudia rozprávajú} many {{counter} ľudia rozprávajú} other {{counter} ľudí rozpráva}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Teraz populárne", "ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Mastodon.", "units.short.billion": "{count}mld.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Pripravujem OCR…", "upload_modal.preview_label": "Náhľad ({ratio})", "upload_progress.label": "Nahráva sa...", + "upload_progress.processing": "Processing…", "video.close": "Zavri video", "video.download": "Stiahni súbor", "video.exit_fullscreen": "Vypni zobrazenie na celú obrazovku", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index b094abfff88bd3..a450225a5b31e3 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderirani strežniki", + "about.contact": "Stik:", + "about.disclaimer": "Mastodon je prosto, odprto-kodno programje in blagovna znamka Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Razlog ni na voljo", + "about.domain_blocks.preamble": "Mastodon vam splošno omogoča ogled vsebin in interakcijo z uporabniki iz vseh drugih strežnikov v fediverzumu. To so izjeme, opravljene na tem strežniku.", + "about.domain_blocks.silenced.explanation": "V splošnem ne boste videli profilov in vsebin s tega strežnika, če jih eksplicino ne poiščete ali nanje naročite s sledenjem.", + "about.domain_blocks.silenced.title": "Omejeno", + "about.domain_blocks.suspended.explanation": "Nobeni podatki s tega strežnika ne bodo obdelani, shranjeni ali izmenjani, zaradi česar je nemogoča kakršna koli interakcija ali komunikacija z uporabniki s tega strežnika.", + "about.domain_blocks.suspended.title": "Suspendiran", + "about.not_available": "Ti podatki še niso na voljo na tem strežniku.", + "about.powered_by": "Decentraliziran družabni medij, ki ga poganja {mastodon}", + "about.rules": "Pravila strežnika", "account.account_note_header": "Opombe", "account.add_or_remove_from_list": "Dodaj ali odstrani s seznamov", "account.badges.bot": "Robot", @@ -7,47 +19,53 @@ "account.block_domain": "Blokiraj domeno {domain}", "account.blocked": "Blokirano", "account.browse_more_on_origin_server": "Brskaj več po izvirnem profilu", - "account.cancel_follow_request": "Prekliči prošnjo za sledenje", + "account.cancel_follow_request": "Umakni zahtevo za sledenje", "account.direct": "Neposredno sporočilo @{name}", "account.disable_notifications": "Ne obveščaj me več, ko ima @{name} novo objavo", "account.domain_blocked": "Blokirana domena", "account.edit_profile": "Uredi profil", "account.enable_notifications": "Obvesti me, ko ima @{name} novo objavo", "account.endorse": "Izpostavi v profilu", + "account.featured_tags.last_status_at": "Zadnja objava {date}", + "account.featured_tags.last_status_never": "Ni objav", + "account.featured_tags.title": "Izpostavljeni ključniki {name}", "account.follow": "Sledi", "account.followers": "Sledilci", "account.followers.empty": "Nihče ne sledi temu uporabniku.", - "account.followers_counter": "{count, plural, one {ima {count} sledilca} two {ima {count} sledilca} few {ima {count} sledilcev} other {ima {count} sledilce}}", + "account.followers_counter": "{count, plural, one {ima {counter} sledilca} two {ima {counter} sledilca} few {ima {counter} sledilce} other {ima {counter} sledilcev}}", "account.following": "Sledim", "account.following_counter": "{count, plural, one {sledi {count} osebi} two {sledi {count} osebama} few {sledi {count} osebam} other {sledi {count} osebam}}", "account.follows.empty": "Ta uporabnik še ne sledi nikomur.", "account.follows_you": "Vam sledi", + "account.go_to_profile": "Pojdi na profil", "account.hide_reblogs": "Skrij izpostavitve od @{name}", - "account.joined": "Pridružen/a {date}", + "account.joined_short": "Pridružil/a", + "account.languages": "Spremeni naročene jezike", "account.link_verified_on": "Lastništvo te povezave je bilo preverjeno {date}", "account.locked_info": "Stanje zasebnosti računa je nastavljeno na zaklenjeno. Lastnik ročno pregleda, kdo ga lahko spremlja.", "account.media": "Mediji", "account.mention": "Omeni @{name}", - "account.moved_to": "{name} se je premaknil na:", + "account.moved_to": "{name} nakazuje, da ima zdaj nov račun:", "account.mute": "Utišaj @{name}", "account.mute_notifications": "Utišaj obvestila od @{name}", "account.muted": "Utišan", + "account.open_original_page": "Odpri izvirno stran", "account.posts": "Objave", "account.posts_with_replies": "Objave in odgovori", "account.report": "Prijavi @{name}", "account.requested": "Čakanje na odobritev. Kliknite, da prekličete prošnjo za sledenje", - "account.share": "Delite profil osebe @{name}", + "account.share": "Deli profil osebe @{name}", "account.show_reblogs": "Pokaži izpostavitve osebe @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", + "account.statuses_counter": "{count, plural, one {{count} tut} two {{count} tuta} few {{count} tuti} other {{count} tutov}}", "account.unblock": "Odblokiraj @{name}", - "account.unblock_domain": "Razkrij {domain}", + "account.unblock_domain": "Odblokiraj domeno {domain}", "account.unblock_short": "Odblokiraj", "account.unendorse": "Ne vključi v profil", "account.unfollow": "Prenehaj slediti", "account.unmute": "Odtišaj @{name}", "account.unmute_notifications": "Vklopi obvestila od @{name}", "account.unmute_short": "Odtišaj", - "account_note.placeholder": "Click to add a note", + "account_note.placeholder": "Kliknite za dodajanje opombe", "admin.dashboard.daily_retention": "Mera ohranjanja uporabnikov po dnevih od registracije", "admin.dashboard.monthly_retention": "Mera ohranjanja uporabnikov po mesecih od registracije", "admin.dashboard.retention.average": "Povprečje", @@ -56,23 +74,36 @@ "alert.rate_limited.message": "Poskusite znova čez {retry_time, time, medium}.", "alert.rate_limited.title": "Hitrost omejena", "alert.unexpected.message": "Zgodila se je nepričakovana napaka.", - "alert.unexpected.title": "Uups!", - "announcement.announcement": "Objava", + "alert.unexpected.title": "Ojoj!", + "announcement.announcement": "Obvestilo", "attachments_list.unprocessed": "(neobdelano)", + "audio.hide": "Skrij zvok", "autosuggest_hashtag.per_week": "{count} na teden", "boost_modal.combo": "Če želite preskočiti to, lahko pritisnete {combo}", - "bundle_column_error.body": "Med nalaganjem te komponente je prišlo do napake.", - "bundle_column_error.retry": "Poskusi ponovno", - "bundle_column_error.title": "Napaka omrežja", + "bundle_column_error.copy_stacktrace": "Kopiraj poročilo o napaki", + "bundle_column_error.error.body": "Zahtevane strani ni mogoče upodobiti. Vzrok težave je morda hrošč v naši kodi ali pa nezdružljivost z brskalnikom.", + "bundle_column_error.error.title": "Oh, ne!", + "bundle_column_error.network.body": "Pri poskusu nalaganja te strani je prišlo do napake. Vzrok je lahko začasna težava z vašo internetno povezavo ali s tem strežnikom.", + "bundle_column_error.network.title": "Napaka v omrežju", + "bundle_column_error.retry": "Poskusi znova", + "bundle_column_error.return": "Nazaj domov", + "bundle_column_error.routing.body": "Zahtevane strani ni mogoče najti. Ali ste prepričani, da je naslov URL v naslovni vrstici pravilen?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zapri", "bundle_modal_error.message": "Med nalaganjem te komponente je prišlo do napake.", - "bundle_modal_error.retry": "Poskusi ponovno", + "bundle_modal_error.retry": "Poskusi znova", + "closed_registrations.other_server_instructions": "Ker je Mastodon decentraliziran, lahko ustvarite račun na drugem strežniku in ste še vedno v interakciji s tem.", + "closed_registrations_modal.description": "Odpiranje računa na {domain} trenutno ni možno, upoštevajte pa, da ne potrebujete računa prav na {domain}, da bi uporabljali Mastodon.", + "closed_registrations_modal.find_another_server": "Najdi drug strežnik", + "closed_registrations_modal.preamble": "Mastodon je decentraliziran, kar pomeni, da ni pomembno, kje ustvarite svoj račun; od koder koli je omogočeno sledenje in interakcija z vsemi s tega strežnika. Strežnik lahko gostite tudi sami!", + "closed_registrations_modal.title": "Registracija v Mastodon", + "column.about": "O programu", "column.blocks": "Blokirani uporabniki", "column.bookmarks": "Zaznamki", - "column.community": "Lokalna časovnica", + "column.community": "Krajevna časovnica", "column.direct": "Neposredna sporočila", "column.directory": "Prebrskaj profile", - "column.domain_blocks": "Skrite domene", + "column.domain_blocks": "Blokirane domene", "column.favourites": "Priljubljene", "column.follow_requests": "Sledi prošnjam", "column.home": "Domov", @@ -86,7 +117,7 @@ "column_header.moveLeft_settings": "Premakni stolpec na levo", "column_header.moveRight_settings": "Premakni stolpec na desno", "column_header.pin": "Pripni", - "column_header.show_settings": "Prikaži nastavitve", + "column_header.show_settings": "Pokaži nastavitve", "column_header.unpin": "Odpni", "column_subheading.settings": "Nastavitve", "community.column_settings.local_only": "Samo krajevno", @@ -96,10 +127,10 @@ "compose.language.search": "Poišči jezik ...", "compose_form.direct_message_warning_learn_more": "Izvej več", "compose_form.encryption_warning": "Objave na Mastodonu niso šifrirane od kraja do kraja. Prek Mastodona ne delite nobenih občutljivih informacij.", - "compose_form.hashtag_warning": "Ta objava ne bo navedena pod nobenim ključnikom, ker ni javen. Samo javne objave lahko iščete s ključniki.", + "compose_form.hashtag_warning": "Ta objava ne bo navedena pod nobenim ključnikom, ker ni javna. Samo javne objave lahko iščete s ključniki.", "compose_form.lock_disclaimer": "Vaš račun ni {locked}. Vsakdo vam lahko sledi in si ogleda objave, ki so namenjene samo sledilcem.", "compose_form.lock_disclaimer.lock": "zaklenjen", - "compose_form.placeholder": "O čem razmišljaš?", + "compose_form.placeholder": "O čem razmišljate?", "compose_form.poll.add_option": "Dodaj izbiro", "compose_form.poll.duration": "Trajanje ankete", "compose_form.poll.option_placeholder": "Izbira {number}", @@ -109,23 +140,25 @@ "compose_form.publish": "Objavi", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Shrani spremembe", - "compose_form.sensitive.hide": "Označi medij kot občutljiv", - "compose_form.sensitive.marked": "Medij je označen kot občutljiv", - "compose_form.sensitive.unmarked": "Medij ni označen kot občutljiv", - "compose_form.spoiler.marked": "Besedilo je skrito za opozorilom", - "compose_form.spoiler.unmarked": "Besedilo ni skrito", + "compose_form.sensitive.hide": "{count, plural,one {Označi medij kot občutljiv} two {Označi medija kot občutljiva} other {Označi medije kot občutljive}}", + "compose_form.sensitive.marked": "{count, plural,one {Medij je označen kot občutljiv} two {Medija sta označena kot občutljiva} other {Mediji so označeni kot občutljivi}}", + "compose_form.sensitive.unmarked": "{count, plural,one {Medij ni označen kot občutljiv} two {Medija nista označena kot občutljiva} other {Mediji niso označeni kot občutljivi}}", + "compose_form.spoiler.marked": "Odstrani opozorilo o vsebini", + "compose_form.spoiler.unmarked": "Dodaj opozorilo o vsebini", "compose_form.spoiler_placeholder": "Tukaj napišite opozorilo", "confirmation_modal.cancel": "Prekliči", - "confirmations.block.block_and_report": "Blokiraj in Prijavi", + "confirmations.block.block_and_report": "Blokiraj in prijavi", "confirmations.block.confirm": "Blokiraj", "confirmations.block.message": "Ali ste prepričani, da želite blokirati {name}?", + "confirmations.cancel_follow_request.confirm": "Umakni zahtevo", + "confirmations.cancel_follow_request.message": "Ali ste prepričani, da želite umakniti svojo zahtevo, da bi sledili {name}?", "confirmations.delete.confirm": "Izbriši", "confirmations.delete.message": "Ali ste prepričani, da želite izbrisati to objavo?", "confirmations.delete_list.confirm": "Izbriši", "confirmations.delete_list.message": "Ali ste prepričani, da želite trajno izbrisati ta seznam?", "confirmations.discard_edit_media.confirm": "Opusti", "confirmations.discard_edit_media.message": "Imate ne shranjene spremembe za medijski opis ali predogled; jih želite kljub temu opustiti?", - "confirmations.domain_block.confirm": "Skrij celotno domeno", + "confirmations.domain_block.confirm": "Blokiraj celotno domeno", "confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše. Vsebino iz te domene ne boste videli v javnih časovnicah ali obvestilih. Vaši sledilci iz te domene bodo odstranjeni.", "confirmations.logout.confirm": "Odjava", "confirmations.logout.message": "Ali ste prepričani, da se želite odjaviti?", @@ -140,44 +173,54 @@ "confirmations.unfollow.message": "Ali ste prepričani, da ne želite več slediti {name}?", "conversation.delete": "Izbriši pogovor", "conversation.mark_as_read": "Označi kot prebrano", - "conversation.open": "Prikaži pogovor", + "conversation.open": "Pokaži pogovor", "conversation.with": "Z {names}", + "copypaste.copied": "Kopirano", + "copypaste.copy": "Kopiraj", "directory.federated": "Iz znanega fediverzuma", "directory.local": "Samo iz {domain}", "directory.new_arrivals": "Novi prišleki", "directory.recently_active": "Nedavno aktiven/a", - "embed.instructions": "Vstavi ta status na svojo spletno stran tako, da kopirate spodnjo kodo.", + "disabled_account_banner.account_settings": "Nastavitve računa", + "disabled_account_banner.text": "Vaš račun {disabledAccount} je trenutno onemogočen.", + "dismissable_banner.community_timeline": "To so najnovejše javne objave oseb, katerih računi gostujejo na {domain}.", + "dismissable_banner.dismiss": "Opusti", + "dismissable_banner.explore_links": "O teh novicah ravno zdaj veliko govorijo osebe na tem in drugih strežnikih decentraliziranega omrežja.", + "dismissable_banner.explore_statuses": "Te objave s tega in drugih strežnikov v decentraliziranem omrežju pridobivajo ravno zdaj veliko pozornosti na tem strežniku.", + "dismissable_banner.explore_tags": "Ravno zdaj dobivajo ti ključniki veliko pozoronosti med osebami na tem in drugih strežnikih decentraliziranega omrežja.", + "dismissable_banner.public_timeline": "To so zadnje javne objave oseb na tem in drugih strežnikih decentraliziranega omrežja, za katera ve ta strežnik.", + "embed.instructions": "Vstavite to objavo na svojo spletno stran tako, da kopirate spodnjo kodo.", "embed.preview": "Tako bo izgledalo:", "emoji_button.activity": "Dejavnost", "emoji_button.clear": "Počisti", "emoji_button.custom": "Po meri", "emoji_button.flags": "Zastave", - "emoji_button.food": "Hrana in Pijača", + "emoji_button.food": "Hrana in pijača", "emoji_button.label": "Vstavi emotikon", "emoji_button.nature": "Narava", - "emoji_button.not_found": "Ni emotikonov!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Ni zadetkov med emotikoni", "emoji_button.objects": "Predmeti", "emoji_button.people": "Ljudje", "emoji_button.recent": "Pogosto uporabljeni", - "emoji_button.search": "Poišči...", + "emoji_button.search": "Poišči ...", "emoji_button.search_results": "Rezultati iskanja", "emoji_button.symbols": "Simboli", - "emoji_button.travel": "Potovanja in Kraji", + "emoji_button.travel": "Potovanja in kraji", "empty_column.account_suspended": "Račun je suspendiran", "empty_column.account_timeline": "Tukaj ni objav!", "empty_column.account_unavailable": "Profil ni na voljo", "empty_column.blocks": "Niste še blokirali nobenega uporabnika.", - "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", - "empty_column.community": "Lokalna časovnica je prazna. Napišite nekaj javnega, da se bo žoga zakotalila!", + "empty_column.bookmarked_statuses": "Zaenkrat še nimate zaznamovanih objav. Ko objavo zaznamujete, se pojavi tukaj.", + "empty_column.community": "Krajevna časovnica je prazna. Napišite nekaj javnega, da se bo snežna kepa zakotalila!", "empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga boste poslali ali prejeli, se bo prikazal tukaj.", - "empty_column.domain_blocks": "Še vedno ni skritih domen.", + "empty_column.domain_blocks": "Zaenkrat ni blokiranih domen.", "empty_column.explore_statuses": "Trenutno ni nič v trendu. Preverite znova kasneje!", "empty_column.favourited_statuses": "Nimate priljubljenih objav. Ko boste vzljubili kakšno, bo prikazana tukaj.", "empty_column.favourites": "Nihče še ni vzljubil te objave. Ko jo bo nekdo, se bo pojavila tukaj.", "empty_column.follow_recommendations": "Kaže, da za vas ni mogoče pripraviti nobenih predlogov. Poskusite uporabiti iskanje, da poiščete osebe, ki jih poznate, ali raziščete ključnike, ki so v trendu.", "empty_column.follow_requests": "Nimate prošenj za sledenje. Ko boste prejeli kakšno, se bo prikazala tukaj.", "empty_column.hashtag": "V tem ključniku še ni nič.", - "empty_column.home": "Vaša domača časovnica je prazna! Obiščite {public} ali uporabite iskanje, da se boste srečali druge uporabnike.", + "empty_column.home": "Vaša domača časovnica je prazna! Sledite več osebam, da jo zapolnite. {suggestions}", "empty_column.home.suggestions": "Oglejte si nekaj predlogov", "empty_column.list": "Na tem seznamu ni ničesar. Ko bodo člani tega seznama objavili nove statuse, se bodo pojavili tukaj.", "empty_column.lists": "Nimate seznamov. Ko ga boste ustvarili, se bo prikazal tukaj.", @@ -188,7 +231,7 @@ "error.unexpected_crash.explanation_addons": "Te strani ni mogoče ustrezno prikazati. To napako najverjetneje povzroča dodatek briskalnika ali samodejna orodja za prevajanje.", "error.unexpected_crash.next_steps": "Poskusite osvežiti stran. Če to ne pomaga, boste morda še vedno lahko uporabljali Mastodon prek drugega brskalnika ali z domorodno aplikacijo.", "error.unexpected_crash.next_steps_addons": "Poskusite jih onemogočiti in osvežiti stran. Če to ne pomaga, boste morda še vedno lahko uporabljali Mastodon prek drugega brskalnika ali z domorodno aplikacijo.", - "errors.unexpected_crash.copy_stacktrace": "Kopiraj sledenje sklada na odložišče", + "errors.unexpected_crash.copy_stacktrace": "Kopiraj sledenje skladu na odložišče", "errors.unexpected_crash.report_issue": "Prijavi težavo", "explore.search_results": "Rezultati iskanja", "explore.suggested_follows": "Za vas", @@ -196,79 +239,109 @@ "explore.trending_links": "Novice", "explore.trending_statuses": "Objave", "explore.trending_tags": "Ključniki", + "filter_modal.added.context_mismatch_explanation": "Ta kategorija filtra ne velja za kontekst, v katerem ste dostopali do te objave. Če želite, da je objava filtrirana tudi v tem kontekstu, morate urediti filter.", + "filter_modal.added.context_mismatch_title": "Neujemanje konteksta!", + "filter_modal.added.expired_explanation": "Ta kategorija filtra je pretekla, morali boste spremeniti datum veljavnosti, da bo veljal še naprej.", + "filter_modal.added.expired_title": "Filter je pretekel!", + "filter_modal.added.review_and_configure": "Če želite pregledati in nadalje prilagoditi kategorijo filtra, obiščite {settings_link}.", + "filter_modal.added.review_and_configure_title": "Nastavitve filtra", + "filter_modal.added.settings_link": "stran nastavitev", + "filter_modal.added.short_explanation": "Ta objava je bila dodana v naslednjo kategorijo filtra: {title}.", + "filter_modal.added.title": "Filter dodan!", + "filter_modal.select_filter.context_mismatch": "ne velja za ta kontekst", + "filter_modal.select_filter.expired": "poteklo", + "filter_modal.select_filter.prompt_new": "Nova kategorija: {name}", + "filter_modal.select_filter.search": "Išči ali ustvari", + "filter_modal.select_filter.subtitle": "Uporabite obstoječo kategorijo ali ustvarite novo", + "filter_modal.select_filter.title": "Filtriraj to objavo", + "filter_modal.title.status": "Filtrirajte objavo", "follow_recommendations.done": "Opravljeno", "follow_recommendations.heading": "Sledite osebam, katerih objave želite videti! Tukaj je nekaj predlogov.", "follow_recommendations.lead": "Objave oseb, ki jim sledite, se bodo prikazale v kronološkem zaporedju v vašem domačem viru. Ne bojte se storiti napake, osebam enako enostavno nehate slediti kadar koli!", "follow_request.authorize": "Overi", "follow_request.reject": "Zavrni", "follow_requests.unlocked_explanation": "Čeprav vaš račun ni zaklenjen, zaposleni pri {domain} menijo, da bi morda želeli pregledati zahteve za sledenje teh računov ročno.", + "footer.about": "O Mastodonu", + "footer.directory": "Imenik profilov", + "footer.get_app": "Prenesite aplikacijo", + "footer.invite": "Povabite osebe", + "footer.keyboard_shortcuts": "Tipkovne bližnjice", + "footer.privacy_policy": "Pravilnik o zasebnosti", + "footer.source_code": "Pokaži izvorno kodo", "generic.saved": "Shranjeno", - "getting_started.developers": "Razvijalci", - "getting_started.directory": "Imenik profilov", - "getting_started.documentation": "Dokumentacija", "getting_started.heading": "Kako začeti", - "getting_started.invite": "Povabite osebe", - "getting_started.open_source_notice": "Mastodon je odprtokodna programska oprema. Na GitHubu na {github} lahko prispevate ali poročate o napakah.", - "getting_started.security": "Varnost", - "getting_started.terms": "Pogoji uporabe", "hashtag.column_header.tag_mode.all": "in {additional}", "hashtag.column_header.tag_mode.any": "ali {additional}", "hashtag.column_header.tag_mode.none": "brez {additional}", "hashtag.column_settings.select.no_options_message": "Ni najdenih predlogov", - "hashtag.column_settings.select.placeholder": "Vpiši ključnik…", + "hashtag.column_settings.select.placeholder": "Vnesi ključnike …", "hashtag.column_settings.tag_mode.all": "Vse od naštetega", "hashtag.column_settings.tag_mode.any": "Karkoli od naštetega", "hashtag.column_settings.tag_mode.none": "Nič od naštetega", "hashtag.column_settings.tag_toggle": "Za ta stolpec vključi dodatne oznake", + "hashtag.follow": "Sledi ključniku", + "hashtag.unfollow": "Nehaj slediti ključniku", "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži izpostavitve", "home.column_settings.show_replies": "Pokaži odgovore", - "home.hide_announcements": "Skrij objave", - "home.show_announcements": "Prikaži objave", + "home.hide_announcements": "Skrij obvestila", + "home.show_announcements": "Pokaži obvestila", + "interaction_modal.description.favourite": "Z računom na Mastodonu lahko to objavo postavite med priljubljene in tako avtorju nakažete, da jo cenite, in jo shranite za kasneje.", + "interaction_modal.description.follow": "Z računom na Mastodonu lahko sledite {name}, da prejemate njihove objave v svoj domači vir.", + "interaction_modal.description.reblog": "Z računom na Mastodonu lahko izpostavite to objavo, tako da jo delite s svojimi sledilci.", + "interaction_modal.description.reply": "Z računom na Mastodonu lahko odgovorite na to objavo.", + "interaction_modal.on_another_server": "Na drugem strežniku", + "interaction_modal.on_this_server": "Na tem strežniku", + "interaction_modal.other_server_instructions": "Kopirajte in prilepite ta URL v polje iskanja vašega priljubljenega programa Mastodon ali spletnega vmesnika vašega strežnika Mastodon.", + "interaction_modal.preamble": "Ker je Mastodon decentraliziran, lahko uporabite svoj obstoječi račun, ki gostuje na drugem strežniku Mastodon ali združljivi platformi, če nimate računa na tej.", + "interaction_modal.title.favourite": "Daj objavo {name} med priljubljene", + "interaction_modal.title.follow": "Sledi {name}", + "interaction_modal.title.reblog": "Izpostavi objavo {name}", + "interaction_modal.title.reply": "Odgovori na objavo {name}", "intervals.full.days": "{number, plural, one {# dan} two {# dni} few {# dni} other {# dni}}", "intervals.full.hours": "{number, plural, one {# ura} two {# uri} few {# ure} other {# ur}}", "intervals.full.minutes": "{number, plural, one {# minuta} two {# minuti} few {# minute} other {# minut}}", - "keyboard_shortcuts.back": "pojdi nazaj", - "keyboard_shortcuts.blocked": "odpri seznam blokiranih uporabnikov", + "keyboard_shortcuts.back": "Pojdi nazaj", + "keyboard_shortcuts.blocked": "Odpri seznam blokiranih uporabnikov", "keyboard_shortcuts.boost": "Izpostavi objavo", - "keyboard_shortcuts.column": "fokusiraj na status v enemu od stolpcev", - "keyboard_shortcuts.compose": "fokusiraj na območje za sestavljanje besedila", + "keyboard_shortcuts.column": "Pozornost na stolpec", + "keyboard_shortcuts.compose": "Pozornost na območje za sestavljanje besedila", "keyboard_shortcuts.description": "Opis", "keyboard_shortcuts.direct": "odpri stolpec za neposredna sporočila", - "keyboard_shortcuts.down": "premakni se navzdol po seznamu", - "keyboard_shortcuts.enter": "odpri status", - "keyboard_shortcuts.favourite": "vzljubi", - "keyboard_shortcuts.favourites": "odpri seznam priljubljenih", - "keyboard_shortcuts.federated": "odpri združeno časovnico", + "keyboard_shortcuts.down": "Premakni navzdol po seznamu", + "keyboard_shortcuts.enter": "Odpri objavo", + "keyboard_shortcuts.favourite": "Vzljubi objavo", + "keyboard_shortcuts.favourites": "Odpri seznam priljubljenih", + "keyboard_shortcuts.federated": "Odpri združeno časovnico", "keyboard_shortcuts.heading": "Tipkovne bližnjice", - "keyboard_shortcuts.home": "odpri domačo časovnico", + "keyboard_shortcuts.home": "Odpri domačo časovnico", "keyboard_shortcuts.hotkey": "Hitra tipka", - "keyboard_shortcuts.legend": "pokaži to legendo", + "keyboard_shortcuts.legend": "Pokaži to legendo", "keyboard_shortcuts.local": "Odpri krajevno časovnico", - "keyboard_shortcuts.mention": "omeni avtorja", - "keyboard_shortcuts.muted": "odpri seznam utišanih uporabnikov", - "keyboard_shortcuts.my_profile": "odpri svoj profil", - "keyboard_shortcuts.notifications": "odpri stolpec z obvestili", - "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.mention": "Omeni avtorja", + "keyboard_shortcuts.muted": "Odpri seznam utišanih uporabnikov", + "keyboard_shortcuts.my_profile": "Odprite svoj profil", + "keyboard_shortcuts.notifications": "Odpri stolpec z obvestili", + "keyboard_shortcuts.open_media": "Odpri medij", "keyboard_shortcuts.pinned": "Odpri seznam pripetih objav", - "keyboard_shortcuts.profile": "odpri avtorjev profil", - "keyboard_shortcuts.reply": "odgovori", - "keyboard_shortcuts.requests": "odpri seznam s prošnjami za sledenje", - "keyboard_shortcuts.search": "fokusiraj na iskanje", - "keyboard_shortcuts.spoilers": "to show/hide CW field", - "keyboard_shortcuts.start": "odpri stolpec \"začni\"", - "keyboard_shortcuts.toggle_hidden": "prikaži/skrij besedilo za CW", - "keyboard_shortcuts.toggle_sensitivity": "prikaži/skrij medije", + "keyboard_shortcuts.profile": "Odpri avtorjev profil", + "keyboard_shortcuts.reply": "Odgovori na objavo", + "keyboard_shortcuts.requests": "Odpri seznam s prošnjami za sledenje", + "keyboard_shortcuts.search": "Pozornost na iskalno vrstico", + "keyboard_shortcuts.spoilers": "Pokaži/skrij polje CW", + "keyboard_shortcuts.start": "Odpri stolpec \"začni\"", + "keyboard_shortcuts.toggle_hidden": "Pokaži/skrij besedilo za CW", + "keyboard_shortcuts.toggle_sensitivity": "Pokaži/skrij medije", "keyboard_shortcuts.toot": "Začni povsem novo objavo", - "keyboard_shortcuts.unfocus": "odfokusiraj območje za sestavljanje besedila/iskanje", - "keyboard_shortcuts.up": "premakni se navzgor po seznamu", + "keyboard_shortcuts.unfocus": "Odstrani pozornost z območja za sestavljanje besedila/iskanje", + "keyboard_shortcuts.up": "Premakni navzgor po seznamu", "lightbox.close": "Zapri", "lightbox.compress": "Strni ogledno polje slike", "lightbox.expand": "Razširi ogledno polje slike", "lightbox.next": "Naslednji", "lightbox.previous": "Prejšnji", "limited_account_hint.action": "Vseeno pokaži profil", - "limited_account_hint.title": "Profil so moderatorji vašega strežnika skrili.", + "limited_account_hint.title": "Profil so moderatorji strežnika {domain} skrili.", "lists.account.add": "Dodaj na seznam", "lists.account.remove": "Odstrani s seznama", "lists.delete": "Izbriši seznam", @@ -280,32 +353,31 @@ "lists.replies_policy.list": "Članom seznama", "lists.replies_policy.none": "Nikomur", "lists.replies_policy.title": "Pokaži odgovore:", - "lists.search": "Išči med ljudmi, katerim sledite", + "lists.search": "Iščite med ljudmi, katerim sledite", "lists.subheading": "Vaši seznami", - "load_pending": "{count, plural, one {# nov element} other {# novih elementov}}", - "loading_indicator.label": "Nalaganje...", - "media_gallery.toggle_visible": "Preklopi vidljivost", + "load_pending": "{count, plural, one {# nov element} two {# nova elementa} few {# novi elementi} other {# novih elementov}}", + "loading_indicator.label": "Nalaganje ...", + "media_gallery.toggle_visible": "{number, plural,one {Skrij sliko} two {Skrij sliki} other {Skrij slike}}", "missing_indicator.label": "Ni najdeno", "missing_indicator.sublabel": "Tega vira ni bilo mogoče najti", + "moved_to_account_banner.text": "Vaš račun {disabledAccount} je trenutno onemogočen, ker ste se prestavili na {movedToAccount}.", "mute_modal.duration": "Trajanje", - "mute_modal.hide_notifications": "Skrij obvestila tega uporabnika?", + "mute_modal.hide_notifications": "Ali želite skriti obvestila tega uporabnika?", "mute_modal.indefinite": "Nedoločeno", - "navigation_bar.apps": "Mobilne aplikacije", + "navigation_bar.about": "O Mastodonu", "navigation_bar.blocks": "Blokirani uporabniki", "navigation_bar.bookmarks": "Zaznamki", - "navigation_bar.community_timeline": "Lokalna časovnica", + "navigation_bar.community_timeline": "Krajevna časovnica", "navigation_bar.compose": "Sestavi novo objavo", "navigation_bar.direct": "Neposredna sporočila", "navigation_bar.discover": "Odkrijte", - "navigation_bar.domain_blocks": "Skrite domene", + "navigation_bar.domain_blocks": "Blokirane domene", "navigation_bar.edit_profile": "Uredi profil", "navigation_bar.explore": "Razišči", "navigation_bar.favourites": "Priljubljeni", "navigation_bar.filters": "Utišane besede", "navigation_bar.follow_requests": "Prošnje za sledenje", "navigation_bar.follows_and_followers": "Sledenja in sledilci", - "navigation_bar.info": "O tem strežniku", - "navigation_bar.keyboard_shortcuts": "Hitre tipke", "navigation_bar.lists": "Seznami", "navigation_bar.logout": "Odjava", "navigation_bar.mutes": "Utišani uporabniki", @@ -313,19 +385,23 @@ "navigation_bar.pins": "Pripete objave", "navigation_bar.preferences": "Nastavitve", "navigation_bar.public_timeline": "Združena časovnica", + "navigation_bar.search": "Iskanje", "navigation_bar.security": "Varnost", + "not_signed_in_indicator.not_signed_in": "Za dostop do tega vira se morate prijaviti.", + "notification.admin.report": "{name} je prijavil/a {target}", "notification.admin.sign_up": "{name} se je vpisal/a", "notification.favourite": "{name} je vzljubil/a vaš status", "notification.follow": "{name} vam sledi", "notification.follow_request": "{name} vam želi slediti", "notification.mention": "{name} vas je omenil/a", - "notification.own_poll": "Vaša anketa se je končala", - "notification.poll": "Glasovanje, v katerem ste sodelovali, se je končalo", + "notification.own_poll": "Vaša anketa je zaključena", + "notification.poll": "Anketa, v kateri ste sodelovali, je zaključena", "notification.reblog": "{name} je izpostavila/a vašo objavo", "notification.status": "{name} je pravkar objavil/a", "notification.update": "{name} je uredil(a) objavo", "notifications.clear": "Počisti obvestila", - "notifications.clear_confirmation": "Ali ste prepričani, da želite trajno izbrisati vsa vaša obvestila?", + "notifications.clear_confirmation": "Ali ste prepričani, da želite trajno izbrisati vsa svoja obvestila?", + "notifications.column_settings.admin.report": "Nove prijave:", "notifications.column_settings.admin.sign_up": "Novi vpisi:", "notifications.column_settings.alert": "Namizna obvestila", "notifications.column_settings.favourite": "Priljubljeni:", @@ -335,12 +411,12 @@ "notifications.column_settings.follow": "Novi sledilci:", "notifications.column_settings.follow_request": "Nove prošnje za sledenje:", "notifications.column_settings.mention": "Omembe:", - "notifications.column_settings.poll": "Rezultati glasovanja:", + "notifications.column_settings.poll": "Rezultati ankete:", "notifications.column_settings.push": "Potisna obvestila", "notifications.column_settings.reblog": "Izpostavitve:", - "notifications.column_settings.show": "Prikaži v stolpcu", + "notifications.column_settings.show": "Pokaži v stolpcu", "notifications.column_settings.sound": "Predvajaj zvok", - "notifications.column_settings.status": "New toots:", + "notifications.column_settings.status": "Nove objave:", "notifications.column_settings.unread_notifications.category": "Neprebrana obvestila", "notifications.column_settings.unread_notifications.highlight": "Poudari neprebrana obvestila", "notifications.column_settings.update": "Urejanja:", @@ -349,11 +425,11 @@ "notifications.filter.favourites": "Priljubljeni", "notifications.filter.follows": "Sledi", "notifications.filter.mentions": "Omembe", - "notifications.filter.polls": "Rezultati glasovanj", + "notifications.filter.polls": "Rezultati anket", "notifications.filter.statuses": "Posodobitve pri osebah, ki jih spremljate", "notifications.grant_permission": "Dovoli.", "notifications.group": "{count} obvestil", - "notifications.mark_as_read": "Vsa obvestila ozači kot prebrana", + "notifications.mark_as_read": "Vsa obvestila označi kot prebrana", "notifications.permission_denied": "Namizna obvestila niso na voljo zaradi poprej zavrnjene zahteve dovoljenja brskalnika.", "notifications.permission_denied_alert": "Namiznih obvestil ni mogoče omogočiti, ker je bilo dovoljenje brskalnika že prej zavrnjeno", "notifications.permission_required": "Namizna obvestila niso na voljo, ker zahtevano dovoljenje ni bilo podeljeno.", @@ -364,34 +440,36 @@ "poll.closed": "Zaprto", "poll.refresh": "Osveži", "poll.total_people": "{count, plural, one {# oseba} two {# osebi} few {# osebe} other {# oseb}}", - "poll.total_votes": "{count, plural,one {# glas} other {# glasov}}", + "poll.total_votes": "{count, plural, one {# glas} two {# glasova} few {# glasovi} other {# glasov}}", "poll.vote": "Glasuj", "poll.voted": "Glasovali ste za ta odgovor", "poll.votes": "{votes, plural, one {# glas} two {# glasova} few {# glasovi} other {# glasov}}", "poll_button.add_poll": "Dodaj anketo", "poll_button.remove_poll": "Odstrani anketo", - "privacy.change": "Prilagodi zasebnost statusa", + "privacy.change": "Spremeni zasebnost objave", "privacy.direct.long": "Objavi samo omenjenim uporabnikom", "privacy.direct.short": "Samo omenjeni", - "privacy.private.long": "Objavi samo sledilcem", + "privacy.private.long": "Vidno samo sledilcem", "privacy.private.short": "Samo sledilci", "privacy.public.long": "Vidno vsem", "privacy.public.short": "Javno", "privacy.unlisted.long": "Vidno za vse, vendar izključeno iz funkcionalnosti odkrivanja", "privacy.unlisted.short": "Ni prikazano", + "privacy_policy.last_updated": "Zadnja posodobitev {date}", + "privacy_policy.title": "Pravilnik o zasebnosti", "refresh": "Osveži", - "regeneration_indicator.label": "Nalaganje…", + "regeneration_indicator.label": "Nalaganje …", "regeneration_indicator.sublabel": "Vaš domači vir se pripravlja!", - "relative_time.days": "{number}d", + "relative_time.days": "{number} d", "relative_time.full.days": "{number, plural, one {pred # dnem} two {pred # dnevoma} few {pred # dnevi} other {pred # dnevi}}", "relative_time.full.hours": "{number, plural, one {pred # uro} two {pred # urama} few {pred # urami} other {pred # urami}}", "relative_time.full.just_now": "pravkar", "relative_time.full.minutes": "{number, plural, one {pred # minuto} two {pred # minutama} few {pred # minutami} other {pred # minutami}}", "relative_time.full.seconds": "{number, plural, one {pred # sekundo} two {pred # sekundama} few {pred # sekundami} other {pred # sekundami}}", - "relative_time.hours": "{number}u", + "relative_time.hours": "{number} u", "relative_time.just_now": "zdaj", - "relative_time.minutes": "{number}m", - "relative_time.seconds": "{number}s", + "relative_time.minutes": "{number} m", + "relative_time.seconds": "{number} s", "relative_time.today": "danes", "reply_indicator.cancel": "Prekliči", "report.block": "Blokiraj", @@ -399,16 +477,16 @@ "report.categories.other": "Drugo", "report.categories.spam": "Neželeno", "report.categories.violation": "Vsebina krši eno ali več pravil strežnika", - "report.category.subtitle": "Izberite najboljši zadetek", + "report.category.subtitle": "Izberite najustreznejši zadetek", "report.category.title": "Povejte nam, kaj se dogaja s to/tem {type}", "report.category.title_account": "profil", "report.category.title_status": "objava", "report.close": "Opravljeno", "report.comment.title": "Je še kaj, za kar menite, da bi morali vedeti?", - "report.forward": "Posreduj do {target}", - "report.forward_hint": "Račun je iz drugega strežnika. Pošljem anonimno kopijo poročila tudi na drugi strežnik?", + "report.forward": "Posreduj k {target}", + "report.forward_hint": "Račun je z drugega strežnika. Ali želite poslati anonimno kopijo prijave tudi na drugi strežnik?", "report.mute": "Utišaj", - "report.mute_explanation": "Njihovih objav ne boste videli. Še vedno vam lahko sledijo in vidijo vaše objave, ne bodo vedeli, da so utišani.", + "report.mute_explanation": "Njihovih objav ne boste videli. Še vedno vam lahko sledijo in vidijo vaše objave, ne bodo pa vedeli, da so utišani.", "report.next": "Naprej", "report.placeholder": "Dodatni komentarji", "report.reasons.dislike": "Ni mi všeč", @@ -422,16 +500,22 @@ "report.rules.subtitle": "Izberite vse, kar ustreza", "report.rules.title": "Katera pravila so kršena?", "report.statuses.subtitle": "Izberite vse, kar ustreza", - "report.statuses.title": "Ali so kakšne objave, ki dokazujejo trditve iz tega poročila?", + "report.statuses.title": "Ali so kakšne objave, ki dokazujejo trditve iz te prijave?", "report.submit": "Pošlji", "report.target": "Prijavi {target}", "report.thanks.take_action": "Tukaj so vaše možnosti za nadzor tistega, kar vidite na Mastodonu:", "report.thanks.take_action_actionable": "Medtem, ko to pregledujemo, lahko proti @{name} ukrepate:", - "report.thanks.title": "Ali si želite to pogledati?", - "report.thanks.title_actionable": "Hvala za poročilo, bomo preverili.", + "report.thanks.title": "Ali ne želite tega videti?", + "report.thanks.title_actionable": "Hvala za prijavo, bomo preverili.", "report.unfollow": "Ne sledi več @{name}", "report.unfollow_explanation": "Temu računu sledite. Da ne boste več videli njegovih objav v svojem domačem viru, mu prenehajte slediti.", + "report_notification.attached_statuses": "{count, plural, one {{count} objava pripeta} two {{count} objavi pripeti} few {{count} objave pripete} other {{count} objav pripetih}}", + "report_notification.categories.other": "Drugo", + "report_notification.categories.spam": "Neželeno", + "report_notification.categories.violation": "Kršitev pravila", + "report_notification.open": "Odpri prijavo", "search.placeholder": "Iskanje", + "search.search_or_paste": "Iščite ali prilepite URL", "search_popout.search_format": "Napredna oblika iskanja", "search_popout.tips.full_text": "Enostavno besedilo vrne objave, ki ste jih napisali, vzljubili, izpostavili ali ste bili v njih omenjeni, kot tudi ujemajoča se uporabniška imena, prikazna imena in ključnike.", "search_popout.tips.hashtag": "ključnik", @@ -444,23 +528,35 @@ "search_results.nothing_found": "Za ta iskalni niz ni zadetkov", "search_results.statuses": "Objave", "search_results.statuses_fts_disabled": "Iskanje objav po njihovi vsebini ni omogočeno na tem strežniku Mastodon.", - "search_results.total": "{count, number} {count, plural, one {rezultat} other {rezultatov}}", + "search_results.title": "Išči {q}", + "search_results.total": "{count, number} {count, plural, one {rezultat} two {rezultata} few {rezultati} other {rezultatov}}", + "server_banner.about_active_users": "Osebe, ki so uporabljale ta strežnik zadnjih 30 dni (dejavni uporabniki meseca)", + "server_banner.active_users": "dejavnih uporabnikov", + "server_banner.administered_by": "Upravlja:", + "server_banner.introduction": "{domain} je del decentraliziranega družbenega omrežja, ki ga poganja {mastodon}.", + "server_banner.learn_more": "Več o tem", + "server_banner.server_stats": "Statistika strežnika:", + "sign_in_banner.create_account": "Ustvari račun", + "sign_in_banner.sign_in": "Prijava", + "sign_in_banner.text": "Prijavite se, da sledite profilom ali ključnikom, dodajate med priljubljene, delite z drugimi ter odgovarjate na objave, pa tudi ostajate v interakciji iz svojega računa na drugem strežniku.", "status.admin_account": "Odpri vmesnik za moderiranje za @{name}", - "status.admin_status": "Odpri status v vmesniku za moderiranje", + "status.admin_status": "Odpri to objavo v vmesniku za moderiranje", "status.block": "Blokiraj @{name}", "status.bookmark": "Dodaj med zaznamke", "status.cancel_reblog_private": "Prekliči izpostavitev", "status.cannot_reblog": "Te objave ni mogoče izpostaviti", - "status.copy": "Kopiraj povezavo do statusa", + "status.copy": "Kopiraj povezavo do objave", "status.delete": "Izbriši", "status.detailed_status": "Podroben pogled pogovora", "status.direct": "Neposredno sporočilo @{name}", "status.edit": "Uredi", "status.edited": "Urejeno {date}", "status.edited_x_times": "Urejeno {count, plural, one {#-krat} two {#-krat} few {#-krat} other {#-krat}}", - "status.embed": "Vgradi", + "status.embed": "Vdelaj", "status.favourite": "Priljubljen", + "status.filter": "Filtriraj to objavo", "status.filtered": "Filtrirano", + "status.hide": "Skrij tut", "status.history.created": "{name}: ustvarjeno {date}", "status.history.edited": "{name}: urejeno {date}", "status.load_more": "Naloži več", @@ -469,7 +565,7 @@ "status.more": "Več", "status.mute": "Utišaj @{name}", "status.mute_conversation": "Utišaj pogovor", - "status.open": "Razširi ta status", + "status.open": "Razširi to objavo", "status.pin": "Pripni na profil", "status.pinned": "Pripeta objava", "status.read_more": "Preberi več", @@ -479,63 +575,70 @@ "status.reblogs.empty": "Nihče še ni izpostavil te objave. Ko se bo to zgodilo, se bodo pojavile tukaj.", "status.redraft": "Izbriši in preoblikuj", "status.remove_bookmark": "Odstrani zaznamek", + "status.replied_to": "Odgovoril/a {name}", "status.reply": "Odgovori", - "status.replyAll": "Odgovori na objavo", + "status.replyAll": "Odgovori na nit", "status.report": "Prijavi @{name}", "status.sensitive_warning": "Občutljiva vsebina", "status.share": "Deli", - "status.show_less": "Prikaži manj", + "status.show_filter_reason": "Vseeno pokaži", + "status.show_less": "Pokaži manj", "status.show_less_all": "Prikaži manj za vse", - "status.show_more": "Prikaži več", - "status.show_more_all": "Prikaži več za vse", - "status.show_thread": "Prikaži objavo", + "status.show_more": "Pokaži več", + "status.show_more_all": "Pokaži več za vse", + "status.show_original": "Pokaži izvirnik", + "status.translate": "Prevedi", + "status.translated_from_with": "Prevedeno iz {lang} s pomočjo {provider}", "status.uncached_media_warning": "Ni na voljo", "status.unmute_conversation": "Odtišaj pogovor", "status.unpin": "Odpni iz profila", + "subscribed_languages.lead": "Po spremembi bodo na vaši domači in seznamski časovnici prikazane objave samo v izbranih jezikih. Izberite brez, da boste prejemali objave v vseh jezikih.", + "subscribed_languages.save": "Shrani spremembe", + "subscribed_languages.target": "Spremeni naročene jezike za {target}", "suggestions.dismiss": "Zavrni predlog", - "suggestions.header": "Morda bi vas zanimalo…", + "suggestions.header": "Morda bi vas zanimalo …", "tabs_bar.federated_timeline": "Združeno", "tabs_bar.home": "Domov", "tabs_bar.local_timeline": "Krajevno", "tabs_bar.notifications": "Obvestila", - "tabs_bar.search": "Iskanje", - "time_remaining.days": "{number, plural, one {# dan} other {# dni}} je ostalo", + "time_remaining.days": "{number, plural, one {preostaja # dan} two {preostajata # dneva} few {preostajajo # dnevi} other {preostaja # dni}}", "time_remaining.hours": "{number, plural, one {# ura} other {# ur}} je ostalo", "time_remaining.minutes": "{number, plural, one {# minuta} other {# minut}} je ostalo", "time_remaining.moments": "Preostali trenutki", - "time_remaining.seconds": "{number, plural, one {# sekunda} other {# sekund}} je ostalo", + "time_remaining.seconds": "{number, plural, one {# sekunda je preostala} two {# sekundi sta preostali} few {# sekunde so preostale} other {# sekund je preostalo}}", "timeline_hint.remote_resource_not_displayed": "{resource} z drugih strežnikov ni prikazano.", "timeline_hint.resources.followers": "sledilcev", "timeline_hint.resources.follows": "Sledi", - "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{count} oseba govori} two {{count} osebi govorita} few {{count} osebe govorijo} other {{count} oseb govori}}", + "timeline_hint.resources.statuses": "Starejše objave", + "trends.counter_by_accounts": "{count, plural, one {{count} oseba} two {{count} osebi} few {{count} osebe} other {{count} oseb}} v {days, plural, one {zadnjem {day} dnevu} two {zadnjih {days} dneh} few {zadnjih {days} dneh} other {zadnjih {days} dneh}}", "trends.trending_now": "Zdaj v trendu", "ui.beforeunload": "Vaš osnutek bo izgubljen, če zapustite Mastodona.", "units.short.billion": "{count} milijard", "units.short.million": "{count} mio.", "units.short.thousand": "{count} tisoč", "upload_area.title": "Za pošiljanje povlecite in spustite", - "upload_button.label": "Dodaj medije", + "upload_button.label": "Dodajte slike, video ali zvočno datoteko", "upload_error.limit": "Omejitev prenosa datoteke je presežena.", "upload_error.poll": "Prenos datoteke z anketami ni dovoljen.", "upload_form.audio_description": "Opiši za osebe z okvaro sluha", "upload_form.description": "Opišite za slabovidne", - "upload_form.description_missing": "Noben opis ni bil dodan", + "upload_form.description_missing": "Noben opis ni dodan", "upload_form.edit": "Uredi", "upload_form.thumbnail": "Spremeni sličico", "upload_form.undo": "Izbriši", - "upload_form.video_description": "Opiši za osebe z okvaro sluha in/ali vida", + "upload_form.video_description": "Opišite za osebe z okvaro sluha in/ali vida", "upload_modal.analyzing_picture": "Analiziranje slike …", "upload_modal.apply": "Uveljavi", "upload_modal.applying": "Uveljavljanje poteka …", "upload_modal.choose_image": "Izberite sliko", "upload_modal.description_placeholder": "Pri Jakcu bom vzel šest čudežnih fig", - "upload_modal.detect_text": "Zaznaj besedilo s slike", + "upload_modal.detect_text": "Zaznaj besedilo v sliki", "upload_modal.edit_media": "Uredi medij", "upload_modal.hint": "Kliknite ali povlecite krog v predogledu, da izberete točko pozornosti, ki bo vedno vidna na vseh oglednih sličicah.", - "upload_modal.preparing_ocr": "Priprava optične prepoznave znakov (OCR) ...", + "upload_modal.preparing_ocr": "Priprava optične prepoznave znakov (OCR) …", "upload_modal.preview_label": "Predogled ({ratio})", - "upload_progress.label": "Pošiljanje...", + "upload_progress.label": "Pošiljanje ...", + "upload_progress.processing": "Obdelovanje …", "video.close": "Zapri video", "video.download": "Prenesi datoteko", "video.exit_fullscreen": "Izhod iz celozaslonskega načina", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 2112e0f0cb9d42..860c0e5a1bf560 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -1,4 +1,16 @@ { + "about.blocks": "Shërbyes të moderuar", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon-i është software i lirë, me burim të hapët dhe shenjë tregtare e Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "S’ka arsye", + "about.domain_blocks.preamble": "Mastodon-i ju lë përgjithësisht të shihni lëndë prej përdoruesish dhe të ndërveproni me ta nga cilido shërbyes tjetër qofshin në fedivers. Ka përjashtime që janë bërë në këtë shërbyes të dhënë.", + "about.domain_blocks.silenced.explanation": "Përgjithësisht s’do të shihni profile dhe lëndë nga ky shërbyes, veç në i kërkofshi shprehimisht apo zgjidhni të bëhet kjo, duke i ndjekur.", + "about.domain_blocks.silenced.title": "E kufizuar", + "about.domain_blocks.suspended.explanation": "S’do të përpunohen, depozitohen apo shkëmbehen të dhëna të këtij shërbyesi, duke e bërë të pamundur çfarëdo ndërveprimi apo komunikimi me përdorues nga ky shërbyes.", + "about.domain_blocks.suspended.title": "E pezulluar", + "about.not_available": "Ky informacion nuk jepet në këtë shërbyes.", + "about.powered_by": "Media shoqërore e decentralizuar, bazuar në {mastodon}", + "about.rules": "Rregulla shërbyesi", "account.account_note_header": "Shënim", "account.add_or_remove_from_list": "Shtoni ose Hiqni prej listash", "account.badges.bot": "Robot", @@ -7,13 +19,16 @@ "account.block_domain": "Blloko përkatësinë {domain}", "account.blocked": "E bllokuar", "account.browse_more_on_origin_server": "Shfletoni më tepër rreth profilit origjinal", - "account.cancel_follow_request": "Anulo kërkesë ndjekjeje", + "account.cancel_follow_request": "Tërhiq mbrapsht kërkesë për ndjekje", "account.direct": "Mesazh i drejtpërdrejtë për @{name}", "account.disable_notifications": "Resht së njoftuari mua, kur poston @{name}", "account.domain_blocked": "Përkatësia u bllokua", "account.edit_profile": "Përpunoni profilin", "account.enable_notifications": "Njoftomë, kur poston @{name}", "account.endorse": "Pasqyrojeni në profil", + "account.featured_tags.last_status_at": "Postimi i fundit më {date}", + "account.featured_tags.last_status_never": "Pa postime", + "account.featured_tags.title": "Hashtagë të zgjedhur të {name}", "account.follow": "Ndiqeni", "account.followers": "Ndjekës", "account.followers.empty": "Këtë përdorues ende s’e ndjek kush.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} i Ndjekur} other {{counter} të Ndjekur}}", "account.follows.empty": "Ky përdorues ende s’ndjek kënd.", "account.follows_you": "Ju ndjek", + "account.go_to_profile": "Kalo te profili", "account.hide_reblogs": "Fshih përforcime nga @{name}", - "account.joined": "U bë pjesë më {date}", + "account.joined_short": "U bë pjesë", + "account.languages": "Ndryshoni gjuhë pajtimesh", "account.link_verified_on": "Pronësia e kësaj lidhjeje qe kontrolluar më {date}", "account.locked_info": "Gjendja e privatësisë së kësaj llogarie është caktuar si e kyçur. I zoti merr dorazi në shqyrtim cilët mund ta ndjekin.", "account.media": "Media", "account.mention": "Përmendni @{name}", - "account.moved_to": "{name} ka kaluar te:", + "account.moved_to": "{name} ka treguar se llogari e vet e re tani është:", "account.mute": "Heshtoni @{name}", "account.mute_notifications": "Heshtoji njoftimet prej @{name}", "account.muted": "Heshtuar", + "account.open_original_page": "Hap faqen origjinale", "account.posts": "Mesazhe", "account.posts_with_replies": "Mesazhe dhe përgjigje", "account.report": "Raportojeni @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Hëm!", "announcement.announcement": "Lajmërim", "attachments_list.unprocessed": "(e papërpunuar)", + "audio.hide": "Fshihe audion", "autosuggest_hashtag.per_week": "{count} për javë", "boost_modal.combo": "Që kjo të anashkalohet herës tjetër, mund të shtypni {combo}", - "bundle_column_error.body": "Diç shkoi ters teksa ngarkohej ky përbërës.", + "bundle_column_error.copy_stacktrace": "Kopjo raportim gabimi", + "bundle_column_error.error.body": "Faqja e kërkuar s’u vizatua dot. Kjo mund të vijë nga një e metë në kodin tonë, ose nga një problem përputhshmërie i shfletuesit.", + "bundle_column_error.error.title": "Oh, mos!", + "bundle_column_error.network.body": "Pati një gabim teksa provohej të ngarkohej kjo faqe. Kjo mund të vijë për shkak të një problemi të përkohshëm me lidhjen tuaj internet ose me këtë shërbyes.", + "bundle_column_error.network.title": "Gabim rrjeti", "bundle_column_error.retry": "Riprovoni", - "bundle_column_error.title": "Gabim rrjeti", + "bundle_column_error.return": "Shko mbrapsht te kreu", + "bundle_column_error.routing.body": "Faqja e kërkuar s’u gjet dot. Jeni i sigurt se URL-ja te shtylla e adresave është e saktë?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Mbylle", "bundle_modal_error.message": "Diç shkoi ters teksa ngarkohej ky përbërës.", "bundle_modal_error.retry": "Riprovoni", + "closed_registrations.other_server_instructions": "Ngaqë Mastodon-i është i decentralizuar, mund të krijoni një llogari në një tjetër shërbyes dhe prapë të ndëveproni me këtë këtu.", + "closed_registrations_modal.description": "Krijimi i një llogarie te {domain} aktualisht është i pamundur, por kini parasysh se s’keni nevojë për një llogari posaçërisht në {domain} që të përdorni Mastodon-in.", + "closed_registrations_modal.find_another_server": "Gjeni shërbyes tjetër", + "closed_registrations_modal.preamble": "Mastodon-i është i decentralizuar, ndaj pavarësisht se ku krijoni llogarinë tuaj, do të jeni në gjendje të ndiqni dhe ndërveproni me këdo në këtë shërbyes. Mundeni madje edhe ta strehoni ju vetë!", + "closed_registrations_modal.title": "Po regjistroheni në Mastodon", + "column.about": "Mbi", "column.blocks": "Përdorues të bllokuar", "column.bookmarks": "Faqerojtës", "column.community": "Rrjedhë kohore vendore", @@ -92,8 +123,8 @@ "community.column_settings.local_only": "Vetëm vendore", "community.column_settings.media_only": "Vetëm Media", "community.column_settings.remote_only": "Vetëm të largëta", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Ndryshoni gjuhën", + "compose.language.search": "Kërkoni te gjuhët…", "compose_form.direct_message_warning_learn_more": "Mësoni më tepër", "compose_form.encryption_warning": "Postimet në Mastodon nuk fshehtëzohen skaj-më-skaj. Mos ndani me të tjerë gjëra me spec në Mastodon.", "compose_form.hashtag_warning": "Ky mesazh s’do të paraqitet nën ndonjë hashtag, ngaqë s’i është caktuar ndonjë. Vetëm mesazhet publike mund të kërkohen sipas hashtagësh.", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Hiqe këtë zgjedhje", "compose_form.poll.switch_to_multiple": "Ndrysho votimin për të lejuar shumë zgjedhje", "compose_form.poll.switch_to_single": "Ndrysho votimin për të lejuar vetëm një zgjedhje", - "compose_form.publish": "Mesazh", + "compose_form.publish": "Botoje", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Ruaji ndryshimet", "compose_form.sensitive.hide": "{count, plural, one {Vëri shenjë medias si rezervat} other {Vëru shenjë mediave si rezervat}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Bllokojeni & Raportojeni", "confirmations.block.confirm": "Bllokoje", "confirmations.block.message": "Jeni i sigurt se doni të bllokohet {name}?", + "confirmations.cancel_follow_request.confirm": "Tërhiqeni mbrapsht kërkesën", + "confirmations.cancel_follow_request.message": "Jeni i sigurt se doni të tërhiqni mbrapsht kërkesën tuaj për ndjekje të {name}?", "confirmations.delete.confirm": "Fshije", "confirmations.delete.message": "Jeni i sigurt se doni të fshihet kjo gjendje?", "confirmations.delete_list.confirm": "Fshije", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Vëri shenjë si të lexuar", "conversation.open": "Shfaq bisedën", "conversation.with": "Me {names}", + "copypaste.copied": "U kopjua", + "copypaste.copy": "Kopjoje", "directory.federated": "Nga fedivers i njohur", "directory.local": "Vetëm nga {domain}", "directory.new_arrivals": "Të ardhur rishtas", "directory.recently_active": "Aktivë së fundi", + "disabled_account_banner.account_settings": "Rregullime llogarie", + "disabled_account_banner.text": "Llogaria juaj {disabledAccount} është aktualisht e çaktivizuar.", + "dismissable_banner.community_timeline": "Këto janë postime më të freskëta publike nga persona llogaritë e të cilëve strehohen nga {domain}.", + "dismissable_banner.dismiss": "Hidhe tej", + "dismissable_banner.explore_links": "Këto histori të reja po tirren nga persona në këtë shërbyes dhe të tjerë të tillë të rrjetit të decentralizuar mu tani.", + "dismissable_banner.explore_statuses": "Këto postime nga ky shërbyes dhe të tjerë në rrjetin e decentralizuar po tërheqin vëmendjen tani.", + "dismissable_banner.explore_tags": "Këta hashtag-ë po tërheqin vëmendjen mes personave në këtë shërbyes dhe të tjerë të tillë të rrjetit të decentralizuar mu tani.", + "dismissable_banner.public_timeline": "Këto janë postimet publike më të freskëta nga persona në këtë shërbyes dhe të tjerë të rrejtit të decentralizuar për të cilët ky shërbyes ka dijeni.", "embed.instructions": "Trupëzojeni këtë gjendje në sajtin tuaj duke kopjuar kodin më poshtë.", "embed.preview": "Ja si do të duket:", "emoji_button.activity": "Veprimtari", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Spastroje", "emoji_button.custom": "Vetjak", "emoji_button.flags": "Flamuj", "emoji_button.food": "Ushqim & Pije", @@ -196,21 +239,37 @@ "explore.trending_links": "Lajme", "explore.trending_statuses": "Postime", "explore.trending_tags": "Hashtagë", + "filter_modal.added.context_mismatch_explanation": "Kjo kategori filtrash nuk aplikohet për kontekstin nën të cilin po merreni me këtë postim. Nëse doni që postimi të filtrohet edhe në këtë kontekst, do t’ju duhet të përpunoni filtrin.", + "filter_modal.added.context_mismatch_title": "Mospërputhje kontekstesh!", + "filter_modal.added.expired_explanation": "Kjo kategori filtrash ka skaduar, do t’ju duhet të ndryshoni datën e skadimit për të, pa të aplikohet.", + "filter_modal.added.expired_title": "Filtër i skaduar!", + "filter_modal.added.review_and_configure": "Që të shqyrtoni dhe formësoni më tej këtë kategori filtrash, kaloni te {settings_link}.", + "filter_modal.added.review_and_configure_title": "Rregullime filtrash", + "filter_modal.added.settings_link": "faqe rregullimesh", + "filter_modal.added.short_explanation": "Ky postim është shtuar te kategoria vijuese e filtrave: {title}.", + "filter_modal.added.title": "U shtua filtër!", + "filter_modal.select_filter.context_mismatch": "mos e apliko mbi këtë kontekst", + "filter_modal.select_filter.expired": "ka skaduar", + "filter_modal.select_filter.prompt_new": "Kategori e re: {name}", + "filter_modal.select_filter.search": "Kërkoni, ose krijoni", + "filter_modal.select_filter.subtitle": "Përdorni një kategori ekzistuese, ose krijoni një të re", + "filter_modal.select_filter.title": "Filtroje këtë postim", + "filter_modal.title.status": "Filtroni një postim", "follow_recommendations.done": "U bë", "follow_recommendations.heading": "Ndiqni persona prej të cilëve doni të shihni postime! Ja ca sugjerime.", "follow_recommendations.lead": "Postimet prej personash që ndiqni do të shfaqen në rend kohor te prurja juaj kryesore. Mos kini frikë të bëni gabime, mund të ndalni po aq kollaj ndjekjen e dikujt, në çfarëdo kohe!", "follow_request.authorize": "Autorizoje", "follow_request.reject": "Hidhe tej", "follow_requests.unlocked_explanation": "Edhe pse llogaria juaj s’është e kyçur, ekipi i {domain} mendoi se mund të donit të shqyrtonit dorazi kërkesa ndjekjeje prej këtyre llogarive.", + "footer.about": "Mbi", + "footer.directory": "Drejtori profilesh", + "footer.get_app": "Merreni aplikacionin", + "footer.invite": "Ftoni njerëz", + "footer.keyboard_shortcuts": "Shkurtore tastiere", + "footer.privacy_policy": "Rregulla privatësie", + "footer.source_code": "Shihni kodin burim", "generic.saved": "U ruajt", - "getting_started.developers": "Zhvillues", - "getting_started.directory": "Drejtori profilesh", - "getting_started.documentation": "Dokumentim", "getting_started.heading": "Si t’ia fillohet", - "getting_started.invite": "Ftoni njerëz", - "getting_started.open_source_notice": "Mastodon-i është software me burim të hapur. Mund të jepni ndihmesë ose të njoftoni probleme në GitHub, te {github}.", - "getting_started.security": "Rregullime llogarie", - "getting_started.terms": "Kushte shërbimi", "hashtag.column_header.tag_mode.all": "dhe {additional}", "hashtag.column_header.tag_mode.any": "ose {additional}", "hashtag.column_header.tag_mode.none": "pa {additional}", @@ -220,55 +279,69 @@ "hashtag.column_settings.tag_mode.any": "Cilindo prej këtyre", "hashtag.column_settings.tag_mode.none": "Asnjë prej këtyre", "hashtag.column_settings.tag_toggle": "Përfshi etiketa shtesë për këtë shtyllë", + "hashtag.follow": "Ndiqe hashtag-un", + "hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut", "home.column_settings.basic": "Bazë", "home.column_settings.show_reblogs": "Shfaq përforcime", "home.column_settings.show_replies": "Shfaq përgjigje", "home.hide_announcements": "Fshihi lajmërimet", "home.show_announcements": "Shfaqi lajmërimet", + "interaction_modal.description.favourite": "Me një llogari në Mastodon, mund ta pëlqeni këtë postim, për t’i bërë të ditur autorit se e çmoni dhe e ruani për më vonë.", + "interaction_modal.description.follow": "Me një llogari në Mastodon, mund ta ndiqni {name} për të marrë postimet e tyre në prurjen tuaj të kreut.", + "interaction_modal.description.reblog": "Me një llogari në Mastodon, mund ta përforconi këtë postim për ta ndarë me ndjekësit tuaj.", + "interaction_modal.description.reply": "Me një llogari në Mastodon, mund t’i përgjigjeni këtij postimi.", + "interaction_modal.on_another_server": "Në një tjetër shërbyes", + "interaction_modal.on_this_server": "Në këtë shërbyes", + "interaction_modal.other_server_instructions": "Kopjojeni dhe ngjiteni këtë URL te fusha e kërkimeve të aplikacionit tuaj të parapëlqyer Mastodon, ose të ndërfaqes web të shërbyesit tuaj Mastodon.", + "interaction_modal.preamble": "Ngaqë Mastodon-i është i decentralizuar, mund të përdorni llogarinë tuaj ekzistuese të sterhuar nga një tjetër shërbyes Mastodon, ose platformë e përputhshme, nëse s’keni një llogari në këtë shërbyes.", + "interaction_modal.title.favourite": "Parapëlqejeni postimin e {name}", + "interaction_modal.title.follow": "Ndiq {name}", + "interaction_modal.title.reblog": "Përforconi postimin e {name}", + "interaction_modal.title.reply": "Përgjigjuni postimit të {name}", "intervals.full.days": "{number, plural, one {# ditë} other {# ditë}}", "intervals.full.hours": "{number, plural, one {# orë} other {# orë}}", "intervals.full.minutes": "{number, plural, one {# minutë} other {# minuta}}", - "keyboard_shortcuts.back": "për shkuarje mbrapsht", - "keyboard_shortcuts.blocked": "për hapje liste përdoruesish të bllokuar", - "keyboard_shortcuts.boost": "për përforcim", - "keyboard_shortcuts.column": "për kalim fokusi mbi një gjendje te një nga shtyllat", - "keyboard_shortcuts.compose": "për kalim fokusi te fusha e hartimit të mesazheve", + "keyboard_shortcuts.back": "Për shkuarje mbrapsht", + "keyboard_shortcuts.blocked": "Për hapje liste përdoruesish të bllokuar", + "keyboard_shortcuts.boost": "Përforcim postimi", + "keyboard_shortcuts.column": "Fokusi mbi një shtyllë", + "keyboard_shortcuts.compose": "Fokusi te fusha e hartimit të mesazheve", "keyboard_shortcuts.description": "Përshkrim", "keyboard_shortcuts.direct": "për hapje shtylle mesazhesh të drejtpërdrejtë", - "keyboard_shortcuts.down": "për zbritje poshtë nëpër listë", - "keyboard_shortcuts.enter": "për hapje gjendjeje", - "keyboard_shortcuts.favourite": "për t’i vënë shenjë si të parapëlqyer", - "keyboard_shortcuts.favourites": "për hapje liste të parapëlqyerish", - "keyboard_shortcuts.federated": "për hapje rrjedhe kohore të të federuarve", + "keyboard_shortcuts.down": "Për zbritje poshtë nëpër listë", + "keyboard_shortcuts.enter": "Për hapje postimi", + "keyboard_shortcuts.favourite": "Për t’i vënë shenjë si të parapëlqyer një postimi", + "keyboard_shortcuts.favourites": "Për hapje liste të parapëlqyerish", + "keyboard_shortcuts.federated": "Për hapje rrjedhe kohore të të federuarve", "keyboard_shortcuts.heading": "Shkurtore tastiere", - "keyboard_shortcuts.home": "për hapje rrjedhe kohore vetjake", + "keyboard_shortcuts.home": "Për hapje rrjedhe kohore vetjake", "keyboard_shortcuts.hotkey": "Tast përkatës", - "keyboard_shortcuts.legend": "për shfaqje të kësaj legjende", - "keyboard_shortcuts.local": "për hapje rrjedhe kohore vendore", - "keyboard_shortcuts.mention": "për përmendje të autorit", - "keyboard_shortcuts.muted": "për hapje liste përdoruesish të heshtuar", - "keyboard_shortcuts.my_profile": "për hapjen e profilit tuaj", - "keyboard_shortcuts.notifications": "për hapje shtylle njoftimesh", - "keyboard_shortcuts.open_media": "për hapje mediash", - "keyboard_shortcuts.pinned": "për hapje liste mesazhesh të fiksuar", - "keyboard_shortcuts.profile": "për hapje të profilit të autorit", - "keyboard_shortcuts.reply": "për t’u përgjigjur", - "keyboard_shortcuts.requests": "për hapje liste kërkesash për ndjekje", - "keyboard_shortcuts.search": "për kalim fokusi te kërkimi", - "keyboard_shortcuts.spoilers": "për shfaqje/fshehje fushe CW", - "keyboard_shortcuts.start": "për hapjen e shtyllës “fillojani”", - "keyboard_shortcuts.toggle_hidden": "për shfaqje/fshehje teksti pas CW", - "keyboard_shortcuts.toggle_sensitivity": "për shfaqje/fshehje mediash", - "keyboard_shortcuts.toot": "për të filluar një mesazh fringo të ri", - "keyboard_shortcuts.unfocus": "për heqjen e fokusit nga fusha e hartimit të mesazheve apo kërkimeve", - "keyboard_shortcuts.up": "për ngjitje sipër nëpër listë", + "keyboard_shortcuts.legend": "Për shfaqje të kësaj legjende", + "keyboard_shortcuts.local": "Për hapje rrjedhe kohore vendore", + "keyboard_shortcuts.mention": "Për përmendje të autorit", + "keyboard_shortcuts.muted": "Për hapje liste përdoruesish të heshtuar", + "keyboard_shortcuts.my_profile": "Për hapjen e profilit tuaj", + "keyboard_shortcuts.notifications": "Për hapje shtylle njoftimesh", + "keyboard_shortcuts.open_media": "Për hapje mediash", + "keyboard_shortcuts.pinned": "Për hapje liste mesazhesh të fiksuar", + "keyboard_shortcuts.profile": "Për hapje të profilit të autorit", + "keyboard_shortcuts.reply": "Për t’iu përgjigjur një postimi", + "keyboard_shortcuts.requests": "Për hapje liste kërkesash për ndjekje", + "keyboard_shortcuts.search": "Për kalim fokusi te kërkimi", + "keyboard_shortcuts.spoilers": "Për shfaqje/fshehje fushe CW", + "keyboard_shortcuts.start": "Për hapjen e shtyllës “fillojani”", + "keyboard_shortcuts.toggle_hidden": "Për shfaqje/fshehje teksti pas CW", + "keyboard_shortcuts.toggle_sensitivity": "Për shfaqje/fshehje mediash", + "keyboard_shortcuts.toot": "Për të filluar një mesazh të ri", + "keyboard_shortcuts.unfocus": "Për heqjen e fokusit nga fusha e hartimit të mesazheve apo kërkimeve", + "keyboard_shortcuts.up": "Për ngjitje sipër nëpër listë", "lightbox.close": "Mbylle", "lightbox.compress": "Ngjeshe kuadratin e parjes së figurave", "lightbox.expand": "Zgjeroje kuadratin e parjes së figurave", "lightbox.next": "Pasuesja", "lightbox.previous": "E mëparshmja", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Shfaqe profilin sido qoftë", + "limited_account_hint.title": "Ky profil është fshehur nga moderatorët e {domain}.", "lists.account.add": "Shto në listë", "lists.account.remove": "Hiqe nga lista", "lists.delete": "Fshije listën", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Fshihni {number, plural, one {figurë} other {figura}}", "missing_indicator.label": "S’u gjet", "missing_indicator.sublabel": "Ky burim s’u gjet dot", + "moved_to_account_banner.text": "Llogaria juaj {disabledAccount} aktualisht është e çaktivizuar, ngaqë kaluat te {movedToAccount}.", "mute_modal.duration": "Kohëzgjatje", "mute_modal.hide_notifications": "Të kalohen të fshehura njoftimet prej këtij përdoruesi?", "mute_modal.indefinite": "E pacaktuar", - "navigation_bar.apps": "Aplikacione për celular", + "navigation_bar.about": "Mbi", "navigation_bar.blocks": "Përdorues të bllokuar", "navigation_bar.bookmarks": "Faqerojtës", "navigation_bar.community_timeline": "Rrjedhë kohore vendore", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Fjalë të heshtuara", "navigation_bar.follow_requests": "Kërkesa për ndjekje", "navigation_bar.follows_and_followers": "Ndjekje dhe ndjekës", - "navigation_bar.info": "Mbi këtë shërbyes", - "navigation_bar.keyboard_shortcuts": "Taste përkatës", "navigation_bar.lists": "Lista", "navigation_bar.logout": "Dalje", "navigation_bar.mutes": "Përdorues të heshtuar", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Mesazhe të fiksuar", "navigation_bar.preferences": "Parapëlqime", "navigation_bar.public_timeline": "Rrjedhë kohore të federuarish", + "navigation_bar.search": "Kërkoni", "navigation_bar.security": "Siguri", + "not_signed_in_indicator.not_signed_in": "Që të përdorni këtë burim, lypset të bëni hyrjen.", + "notification.admin.report": "{name} raportoi {target}", "notification.admin.sign_up": "{name} u regjistrua", "notification.favourite": "{name} pëlqeu mesazhin tuaj", "notification.follow": "{name} zuri t’ju ndjekë", @@ -326,6 +401,7 @@ "notification.update": "{name} përpunoi një postim", "notifications.clear": "Spastroji njoftimet", "notifications.clear_confirmation": "Jeni i sigurt se doni të spastrohen përgjithmonë krejt njoftimet tuaja?", + "notifications.column_settings.admin.report": "Raportime të reja:", "notifications.column_settings.admin.sign_up": "Regjistrime të reja:", "notifications.column_settings.alert": "Njoftime desktopi", "notifications.column_settings.favourite": "Të parapëlqyer:", @@ -379,6 +455,8 @@ "privacy.public.short": "Publik", "privacy.unlisted.long": "I dukshëm për të tërë, por lënë jashtë nga veçoritë e zbulimit", "privacy.unlisted.short": "Jo në lista", + "privacy_policy.last_updated": "Përditësuar së fundi më {date}", + "privacy_policy.title": "Rregulla Privatësie", "refresh": "Rifreskoje", "regeneration_indicator.label": "Po ngarkohet…", "regeneration_indicator.sublabel": "Prurja juaj vetjake po përgatitet!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Faleminderit për raportimin, do ta shohim.", "report.unfollow": "Mos e ndiq më @{name}", "report.unfollow_explanation": "Po e ndiqni këtë llogari. Për të mos parë më postimet e tyre te prurja juaj e kreut, ndalni ndjekjen e tyre.", + "report_notification.attached_statuses": "{count, plural, one {{count} postim} other {{count} postime}} bashkëngjitur", + "report_notification.categories.other": "Tjetër", + "report_notification.categories.spam": "I padëshiruar", + "report_notification.categories.violation": "Cenim rregullash", + "report_notification.open": "Hape raportimin", "search.placeholder": "Kërkoni", + "search.search_or_paste": "Kërkoni, ose hidhni një URL", "search_popout.search_format": "Format kërkimi të mëtejshëm", "search_popout.tips.full_text": "Kërkimi për tekst të thjeshtë përgjigjet me mesazhe që keni shkruar, parapëlqyer, përforcuar, ose ku jeni përmendur, si dhe emra përdoruesish, emra ekrani dhe hashtag-ë që kanë përputhje me termin e kërkimit.", "search_popout.tips.hashtag": "hashtag", @@ -444,7 +528,17 @@ "search_results.nothing_found": "S’u gjet gjë për këto terma kërkimi", "search_results.statuses": "Mesazhe", "search_results.statuses_fts_disabled": "Kërkimi i mesazheve sipas lëndës së tyre s’është i aktivizuar në këtë shërbyes Mastodon.", + "search_results.title": "Kërkoni për {q}", "search_results.total": "{count, number} {count, plural, one {përfundim} other {përfundime}}", + "server_banner.about_active_users": "Persona që përdorin këtë shërbyes gjatë 30 ditëve të fundit (Përdorues Mujorë Aktivë)", + "server_banner.active_users": "përdorues aktivë", + "server_banner.administered_by": "Administruar nga:", + "server_banner.introduction": "{domain} është pjesë e rrjetit shoqëror të decentralizuar të ngritur mbi {mastodon}.", + "server_banner.learn_more": "Mësoni më tepër", + "server_banner.server_stats": "Statistika shërbyesi:", + "sign_in_banner.create_account": "Krijoni llogari", + "sign_in_banner.sign_in": "Hyni", + "sign_in_banner.text": "Që të ndiqni profile ose hashtag-ë, të pëlqeni, të ndani me të tjerë dhe të përgjigjeni në postime, apo të ndërveproni me llogarinë tuaj nga një shërbyes tjetër, bëni hyrjen.", "status.admin_account": "Hap ndërfaqe moderimi për @{name}", "status.admin_status": "Hape këtë mesazh te ndërfaqja e moderimit", "status.block": "Blloko @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Përpunuar {count, plural, one {{count} herë} other {{count} herë}}", "status.embed": "Trupëzim", "status.favourite": "I parapëlqyer", + "status.filter": "Filtroje këtë postim", "status.filtered": "I filtruar", + "status.hide": "Fshihe mesazhin", "status.history.created": "{name} u krijua më {date}", "status.history.edited": "{name} u përpunua më {date}", "status.load_more": "Ngarko më tepër", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.", "status.redraft": "Fshijeni & rihartojeni", "status.remove_bookmark": "Hiqe faqerojtësin", + "status.replied_to": "Iu përgjigj {name}", "status.reply": "Përgjigjuni", "status.replyAll": "Përgjigjuni rrjedhës", "status.report": "Raportojeni @{name}", "status.sensitive_warning": "Lëndë rezervat", "status.share": "Ndajeni me të tjerë", + "status.show_filter_reason": "Shfaqe, sido qoftë", "status.show_less": "Shfaq më pak", "status.show_less_all": "Shfaq më pak për të tërë", "status.show_more": "Shfaq më tepër", "status.show_more_all": "Shfaq më tepër për të tërë", - "status.show_thread": "Shfaq rrjedhën", + "status.show_original": "Shfaq origjinalin", + "status.translate": "Përktheje", + "status.translated_from_with": "Përkthyer nga {lang} duke përdorur {provider}", "status.uncached_media_warning": "Jo e passhme", "status.unmute_conversation": "Ktheji zërin bisedës", "status.unpin": "Shfiksoje nga profili", + "subscribed_languages.lead": "Pas ndryshimit, te kreu juaj dhe te rrjedha kohore liste do të shfaqen vetëm postime në gjuhët e përzgjedhura. Që të merrni postime në krejt gjuhë, mos përzgjidhni gjë.", + "subscribed_languages.save": "Ruaji ndryshimet", + "subscribed_languages.target": "Ndryshoni gjuhë pajtimesh për {target}", "suggestions.dismiss": "Mos e merr parasysh sugjerimin", "suggestions.header": "Mund t’ju interesonte…", "tabs_bar.federated_timeline": "E federuar", "tabs_bar.home": "Kreu", "tabs_bar.local_timeline": "Vendore", "tabs_bar.notifications": "Njoftime", - "tabs_bar.search": "Kërkim", "time_remaining.days": "Edhe {number, plural, one {# ditë} other {# ditë}}", "time_remaining.hours": "Edhe {number, plural, one {# orë} other {# orë}}", "time_remaining.minutes": "Edhe {number, plural, one {# minutë} other {# minuta}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Ndjekës", "timeline_hint.resources.follows": "Ndjekje", "timeline_hint.resources.statuses": "Mesazhe të vjetër", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} vetë}} duke folur", + "trends.counter_by_accounts": "{count, plural, një {{counter} person} other {{counter} vetë}} në {days, plural, një {day} other {{days} ditë}} të kaluar", "trends.trending_now": "Prirjet e tashme", "ui.beforeunload": "Skica juaj do të humbë, nëse dilni nga Mastodon-i.", "units.short.billion": "{count}Md", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Po përgatitet OCR-ja…", "upload_modal.preview_label": "Paraparje ({ratio})", "upload_progress.label": "Po ngarkohet…", + "upload_progress.processing": "Po përpunon…", "video.close": "Mbylle videon", "video.download": "Shkarkoje kartelën", "video.exit_fullscreen": "Dil nga mënyra Sa Krejt Ekrani", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index b4e992a07e931e..aae597974a09f7 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Sakrij sve sa domena {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct Message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Izmeni profil", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Zaprati", "account.followers": "Pratioca", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Prati Vas", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Sakrij podrške koje daje korisnika @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Mediji", "account.mention": "Pomeni korisnika @{name}", - "account.moved_to": "{name} se pomerio na:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Ućutkaj korisnika @{name}", "account.mute_notifications": "Isključi obaveštenja od korisnika @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Statusa", "account.posts_with_replies": "Toots with replies", "account.report": "Prijavi @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Možete pritisnuti {combo} da preskočite ovo sledeći put", - "bundle_column_error.body": "Nešto je pošlo po zlu prilikom učitavanja ove komponente.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Pokušajte ponovo", - "bundle_column_error.title": "Mrežna greška", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zatvori", "bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.", "bundle_modal_error.retry": "Pokušajte ponovo", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blokirani korisnici", "column.bookmarks": "Bookmarks", "column.community": "Lokalna lajna", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Tutni", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Blokiraj", "confirmations.block.message": "Da li ste sigurni da želite da blokirate korisnika {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Obriši", "confirmations.delete.message": "Da li ste sigurni da želite obrišete ovaj status?", "confirmations.delete_list.confirm": "Obriši", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Ugradi ovaj status na Vaš veb sajt kopiranjem koda ispod.", "embed.preview": "Ovako će da izgleda:", "emoji_button.activity": "Aktivnost", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Odobri", "follow_request.reject": "Odbij", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Da počnete", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodont je softver otvorenog koda. Možete mu doprineti ili prijaviti probleme preko GitHub-a na {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}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Prikaži i podržavanja", "home.column_settings.show_replies": "Prikaži odgovore", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Sledeći", "lightbox.previous": "Prethodni", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Dodaj na listu", "lists.account.remove": "Ukloni sa liste", "lists.delete": "Obriši listu", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Uključi/isključi vidljivost", "missing_indicator.label": "Nije pronađeno", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blokirani korisnici", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalna lajna", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Zahtevi za praćenje", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "O ovoj instanci", - "navigation_bar.keyboard_shortcuts": "Prečice na tastaturi", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Odjava", "navigation_bar.mutes": "Ućutkani korisnici", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Prikačeni tutovi", "navigation_bar.preferences": "Podešavanja", "navigation_bar.public_timeline": "Federisana lajna", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} je stavio Vaš status kao omiljeni", "notification.follow": "{name} Vas je zapratio", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Očisti obaveštenja", "notifications.clear_confirmation": "Da li ste sigurno da trajno želite da očistite Vaša obaveštenja?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Obaveštenja na radnoj površini", "notifications.column_settings.favourite": "Omiljeni:", @@ -379,6 +455,8 @@ "privacy.public.short": "Javno", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Neizlistano", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Pretraga", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Napredni format pretrage", "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": "hešteg", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Ugradi na sajt", "status.favourite": "Omiljeno", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Učitaj još", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Odgovori", "status.replyAll": "Odgovori na diskusiju", "status.report": "Prijavi korisnika @{name}", "status.sensitive_warning": "Osetljiv sadržaj", "status.share": "Podeli", + "status.show_filter_reason": "Show anyway", "status.show_less": "Prikaži manje", "status.show_less_all": "Show less for all", "status.show_more": "Prikaži više", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Uključi prepisku", "status.unpin": "Otkači sa profila", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federisano", "tabs_bar.home": "Početna", "tabs_bar.local_timeline": "Lokalno", "tabs_bar.notifications": "Obaveštenja", - "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Ako napustite Mastodont, izgubićete napisani nacrt.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Otpremam...", + "upload_progress.processing": "Processing…", "video.close": "Zatvori video", "video.download": "Download file", "video.exit_fullscreen": "Napusti ceo ekran", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 159628b6c7ffdd..d35f9bb02ea459 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Напомена", "account.add_or_remove_from_list": "Додај или Одстрани са листа", "account.badges.bot": "Бот", @@ -7,13 +19,16 @@ "account.block_domain": "Сакриј све са домена {domain}", "account.blocked": "Блокиран", "account.browse_more_on_origin_server": "Погледајте још на оригиналном налогу", - "account.cancel_follow_request": "Поништи захтеве за праћење", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Директна порука @{name}", "account.disable_notifications": "Прекини обавештавање за објаве корисника @{name}", "account.domain_blocked": "Домен сакривен", "account.edit_profile": "Уреди налог", "account.enable_notifications": "Обавести ме када @{name} објави", "account.endorse": "Истакнуто на налогу", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Запрати", "account.followers": "Пратиоци", "account.followers.empty": "Тренутно нико не прати овог корисника.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} прати} few {{counter} прати} other {{counter} прати}}", "account.follows.empty": "Корисник тренутно не прати никога.", "account.follows_you": "Прати Вас", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Сакриј подршке које даје корисника @{name}", - "account.joined": "Придружио/ла се {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Власништво над овом везом је проверено {date}", "account.locked_info": "Статус приватности овог налога је подешен на закључано. Власник ручно прегледа ко га може пратити.", "account.media": "Медији", "account.mention": "Помени корисника @{name}", - "account.moved_to": "{name} се померио на:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Ућуткај корисника @{name}", "account.mute_notifications": "Искључи обавештења од корисника @{name}", "account.muted": "Ућуткан", + "account.open_original_page": "Open original page", "account.posts": "Трубе", "account.posts_with_replies": "Трубе и одговори", "account.report": "Пријави @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Упс!", "announcement.announcement": "Најава", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} недељно", "boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут", - "bundle_column_error.body": "Нешто је пошло по злу приликом учитавања ове компоненте.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Покушајте поново", - "bundle_column_error.title": "Мрежна грешка", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Затвори", "bundle_modal_error.message": "Нешто није било у реду при учитавању ове компоненте.", "bundle_modal_error.retry": "Покушајте поново", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Блокирани корисници", "column.bookmarks": "Обележивачи", "column.community": "Локална временска линија", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Одстрани овај избор", "compose_form.poll.switch_to_multiple": "Промените анкету да бисте омогућили више избора", "compose_form.poll.switch_to_single": "Промените анкету да бисте омогућили један избор", - "compose_form.publish": "Труби", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "Означи мултимедију као осетљиву", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Блокирај и Пријави", "confirmations.block.confirm": "Блокирај", "confirmations.block.message": "Да ли сте сигурни да желите да блокирате корисника {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Обриши", "confirmations.delete.message": "Да ли сте сигурни да желите обришете овај статус?", "confirmations.delete_list.confirm": "Обриши", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Означи као прочитано", "conversation.open": "Прикажи преписку", "conversation.with": "Са {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Са знаних здружених инстанци", "directory.local": "Само са {domain}", "directory.new_arrivals": "Новопридошли", "directory.recently_active": "Недавно активни", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Угради овај статус на Ваш веб сајт копирањем кода испод.", "embed.preview": "Овако ће да изгледа:", "emoji_button.activity": "Активност", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Одобри", "follow_request.reject": "Одбиј", "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} је помислило да бисте можда желели ручно да прегледате захтеве за праћење са ових налога.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Сачувано", - "getting_started.developers": "Програмери", - "getting_started.directory": "Директоријум налога", - "getting_started.documentation": "Документација", "getting_started.heading": "Да почнете", - "getting_started.invite": "Позовите људе", - "getting_started.open_source_notice": "Мастoдон је софтвер отвореног кода. Можете му допринети или пријавити проблеме преко ГитХаба на {github}.", - "getting_started.security": "Безбедност", - "getting_started.terms": "Услови коришћења", "hashtag.column_header.tag_mode.all": "и {additional}", "hashtag.column_header.tag_mode.any": "или {additional}", "hashtag.column_header.tag_mode.none": "без {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Било које од ових", "hashtag.column_settings.tag_mode.none": "Ништа од ових", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Прикажи и подржавања", "home.column_settings.show_replies": "Прикажи одговоре", "home.hide_announcements": "Сакриј најаве", "home.show_announcements": "Пријажи најаве", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# дан} other {# дана}}", "intervals.full.hours": "{number, plural, one {# сат} other {# сати}}", "intervals.full.minutes": "{number, plural, one {# минут} other {# минута}}", @@ -268,7 +341,7 @@ "lightbox.next": "Следећи", "lightbox.previous": "Претходни", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Додај на листу", "lists.account.remove": "Уклони са листе", "lists.delete": "Обриши листу", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "Укључи/искључи видљивост", "missing_indicator.label": "Није пронађено", "missing_indicator.sublabel": "Овај ресурс није пронађен", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Трајање", "mute_modal.hide_notifications": "Сакриј обавештења од овог корисника?", "mute_modal.indefinite": "Неодређен", - "navigation_bar.apps": "Мобилне апликације", + "navigation_bar.about": "About", "navigation_bar.blocks": "Блокирани корисници", "navigation_bar.bookmarks": "Маркери", "navigation_bar.community_timeline": "Локална временска линија", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Пригушене речи", "navigation_bar.follow_requests": "Захтеви за праћење", "navigation_bar.follows_and_followers": "Праћења и пратиоци", - "navigation_bar.info": "О овој инстанци", - "navigation_bar.keyboard_shortcuts": "Пречице на тастатури", "navigation_bar.lists": "Листе", "navigation_bar.logout": "Одјава", "navigation_bar.mutes": "Ућуткани корисници", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Прикачене трубе", "navigation_bar.preferences": "Подешавања", "navigation_bar.public_timeline": "Здружена временска линија", + "navigation_bar.search": "Search", "navigation_bar.security": "Безбедност", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} је ставио/ла Ваш статус као омиљени", "notification.follow": "{name} Вас је запратио/ла", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Очисти обавештења", "notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Обавештења на радној површини", "notifications.column_settings.favourite": "Омиљени:", @@ -379,6 +455,8 @@ "privacy.public.short": "Јавно", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Неизлистано", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Освежи", "regeneration_indicator.label": "Учитавање…", "regeneration_indicator.sublabel": "Ваша почетна страница се припрема!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Претрага", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "Напредни формат претраге", "search_popout.tips.full_text": "Једноставан текст враћа статусе које сте написали, фаворизовали, подржали или били поменути, као и подударање корисничких имена, приказаних имена, и тараба.", "search_popout.tips.hashtag": "хештег", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Трубе", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Отвори модераторски интерфејс за @{name}", "status.admin_status": "Отвори овај статус у модераторском интерфејсу", "status.block": "Блокирај @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Угради на сајт", "status.favourite": "Омиљено", + "status.filter": "Filter this post", "status.filtered": "Филтрирано", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Учитај још", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Још увек нико није подржао ову трубу. Када буде подржана, појавиће се овде.", "status.redraft": "Избриши и преправи", "status.remove_bookmark": "Уклони обележивач", + "status.replied_to": "Replied to {name}", "status.reply": "Одговори", "status.replyAll": "Одговори на дискусију", "status.report": "Пријави корисника @{name}", "status.sensitive_warning": "Осетљив садржај", "status.share": "Подели", + "status.show_filter_reason": "Show anyway", "status.show_less": "Прикажи мање", "status.show_less_all": "Прикажи мање за све", "status.show_more": "Прикажи више", "status.show_more_all": "Прикажи више за све", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Није доступно", "status.unmute_conversation": "Укључи преписку", "status.unpin": "Откачи са налога", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Федерисано", "tabs_bar.home": "Почетна", "tabs_bar.local_timeline": "Локално", "tabs_bar.notifications": "Обавештења", - "tabs_bar.search": "Претрага", "time_remaining.days": "Остало {number, plural, one {# дан} few {# дана} other {# дана}}", "time_remaining.hours": "Остало {number, plural, one {# сат} few {# сата} other {# сати}}", "time_remaining.minutes": "Остало {number, plural, one {# минут} few {# минута} other {# минута}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Пратиоци", "timeline_hint.resources.follows": "Праћени", "timeline_hint.resources.statuses": "Старији тут", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Ако напустите Мастодонт, изгубићете написани нацрт.", "units.short.billion": "{count}Б", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Преглед ({ratio})", "upload_progress.label": "Отпремам...", + "upload_progress.processing": "Processing…", "video.close": "Затвори видео", "video.download": "Преузимање датотеке", "video.exit_fullscreen": "Напусти цео екран", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 6085241dcb4148..dd4fa8683bb443 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -1,19 +1,34 @@ { + "about.blocks": "Modererade servrar", + "about.contact": "Kontakt:", + "about.disclaimer": "Mastodon är fri programvara med öppen källkod och ett varumärke tillhörande Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Okänd orsak", + "about.domain_blocks.preamble": "Som regel låter Mastodon dig interagera med användare från andra servrar i fediversumet och se deras innehåll. Detta är de undantag som gjorts på just denna servern.", + "about.domain_blocks.silenced.explanation": "Såvida du inte uttryckligen söker upp dem eller samtycker till att se dem genom att följa dem kommer du i allmänhet inte se profiler från den här servern, eller deras innehåll.", + "about.domain_blocks.silenced.title": "Begränsat", + "about.domain_blocks.suspended.explanation": "Inga data från denna server kommer behandlas, lagras eller bytas ut, vilket omöjliggör kommunikation med användare på denna server.", + "about.domain_blocks.suspended.title": "Avstängd", + "about.not_available": "Denna information har inte gjorts tillgänglig på denna server.", + "about.powered_by": "En decentraliserad plattform for sociala medier, drivet av {mastodon}", + "about.rules": "Serverregler", "account.account_note_header": "Anteckning", "account.add_or_remove_from_list": "Lägg till i eller ta bort från listor", - "account.badges.bot": "Robot", + "account.badges.bot": "Bot", "account.badges.group": "Grupp", "account.block": "Blockera @{name}", - "account.block_domain": "Dölj allt från {domain}", + "account.block_domain": "Blockera domänen {domain}", "account.blocked": "Blockerad", - "account.browse_more_on_origin_server": "Läs mer på original profilen", - "account.cancel_follow_request": "Avbryt följarförfrågan", - "account.direct": "Skicka ett direktmeddelande till @{name}", - "account.disable_notifications": "Sluta meddela mig när @{name} tutar", - "account.domain_blocked": "Domän dold", + "account.browse_more_on_origin_server": "Läs mer på den ursprungliga profilen", + "account.cancel_follow_request": "Återkalla följförfrågan", + "account.direct": "Skicka direktmeddelande till @{name}", + "account.disable_notifications": "Sluta notifiera mig när @{name} gör inlägg", + "account.domain_blocked": "Domän blockerad", "account.edit_profile": "Redigera profil", - "account.enable_notifications": "Meddela mig när @{name} tutar", + "account.enable_notifications": "Notifiera mig när @{name} gör inlägg", "account.endorse": "Visa på profil", + "account.featured_tags.last_status_at": "Senaste inlägg den {date}", + "account.featured_tags.last_status_never": "Inga inlägg", + "account.featured_tags.title": "{name}s utvalda hashtaggar", "account.follow": "Följ", "account.followers": "Följare", "account.followers.empty": "Ingen följer denna användare än.", @@ -22,23 +37,26 @@ "account.following_counter": "{count, plural, one {{counter} Följer} other {{counter} Följer}}", "account.follows.empty": "Denna användare följer inte någon än.", "account.follows_you": "Följer dig", - "account.hide_reblogs": "Dölj knuffar från @{name}", - "account.joined": "Gick med {date}", - "account.link_verified_on": "Ägarskap för detta konto kontrollerades den {date}", - "account.locked_info": "Detta konto har låst integritetsstatus. Ägaren väljer manuellt vem som kan följa.", + "account.go_to_profile": "Gå till profilen", + "account.hide_reblogs": "Dölj boostar från @{name}", + "account.joined_short": "Gick med", + "account.languages": "Ändra prenumererade språk", + "account.link_verified_on": "Ägarskap för denna länk kontrollerades den {date}", + "account.locked_info": "För detta konto har ägaren valt att manuellt godkänna vem som kan följa dem.", "account.media": "Media", "account.mention": "Nämn @{name}", - "account.moved_to": "{name} har flyttat till:", + "account.moved_to": "{name} har indikerat att hen har ett nytt konto:", "account.mute": "Tysta @{name}", "account.mute_notifications": "Stäng av notifieringar från @{name}", "account.muted": "Tystad", + "account.open_original_page": "Öppna den ursprungliga sidan", "account.posts": "Inlägg", "account.posts_with_replies": "Inlägg och svar", "account.report": "Rapportera @{name}", - "account.requested": "Inväntar godkännande. Klicka för att avbryta följarförfrågan", + "account.requested": "Inväntar godkännande. Klicka för att avbryta följdförfrågan", "account.share": "Dela @{name}s profil", - "account.show_reblogs": "Visa knuffar från @{name}", - "account.statuses_counter": "{count, plural,one {{counter} Tuta} other {{counter} Tutor}}", + "account.show_reblogs": "Visa boostar från @{name}", + "account.statuses_counter": "{count, plural, one {{counter} Inlägg} other {{counter} Inlägg}}", "account.unblock": "Avblockera @{name}", "account.unblock_domain": "Sluta dölja {domain}", "account.unblock_short": "Avblockera", @@ -46,7 +64,7 @@ "account.unfollow": "Sluta följ", "account.unmute": "Sluta tysta @{name}", "account.unmute_notifications": "Återaktivera aviseringar från @{name}", - "account.unmute_short": "Unmute", + "account.unmute_short": "Avtysta", "account_note.placeholder": "Klicka för att lägga till anteckning", "admin.dashboard.daily_retention": "Användarlojalitet per dag efter registrering", "admin.dashboard.monthly_retention": "Användarlojalitet per månad efter registrering", @@ -58,15 +76,28 @@ "alert.unexpected.message": "Ett oväntat fel uppstod.", "alert.unexpected.title": "Hoppsan!", "announcement.announcement": "Meddelande", - "attachments_list.unprocessed": "(obearbetad)", + "attachments_list.unprocessed": "(obehandlad)", + "audio.hide": "Dölj audio", "autosuggest_hashtag.per_week": "{count} per vecka", - "boost_modal.combo": "Du kan trycka {combo} för att slippa detta nästa gång", - "bundle_column_error.body": "Något gick fel medan denna komponent laddades.", + "boost_modal.combo": "Du kan trycka på {combo} för att hoppa över detta nästa gång", + "bundle_column_error.copy_stacktrace": "Kopiera felrapport", + "bundle_column_error.error.body": "Den begärda sidan kunde inte visas. Det kan bero på ett fel i vår kod eller ett problem med webbläsarens kompatibilitet.", + "bundle_column_error.error.title": "Åh nej!", + "bundle_column_error.network.body": "Det uppstod ett fel när denna sida skulle visas. Detta kan bero på ett tillfälligt problem med din internetanslutning eller med servern.", + "bundle_column_error.network.title": "Nätverksfel", "bundle_column_error.retry": "Försök igen", - "bundle_column_error.title": "Nätverksfel", + "bundle_column_error.return": "Tillbaka till startsidan", + "bundle_column_error.routing.body": "Den begärda sidan kunde inte hittas. Är du säker på att adressen angivits korrekt?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Stäng", - "bundle_modal_error.message": "Något gick fel när denna komponent laddades.", + "bundle_modal_error.message": "Något gick fel när komponenten skulle läsas in.", "bundle_modal_error.retry": "Försök igen", + "closed_registrations.other_server_instructions": "Eftersom Mastodon är decentraliserat kan du skapa ett konto på en annan server och fortfarande interagera med denna.", + "closed_registrations_modal.description": "Det är för närvarande inte möjligt att skapa ett konto på {domain} men kom ihåg att du inte behöver ett konto specifikt på {domain} för att använda Mastodon.", + "closed_registrations_modal.find_another_server": "Hitta en annan server", + "closed_registrations_modal.preamble": "Mastodon är decentraliserat så oavsett var du skapar ditt konto kommer du att kunna följa och interagera med någon på denna server. Du kan också köra din egen server!", + "closed_registrations_modal.title": "Registrera sig på Mastodon", + "column.about": "Om", "column.blocks": "Blockerade användare", "column.bookmarks": "Bokmärken", "column.community": "Lokal tidslinje", @@ -79,7 +110,7 @@ "column.lists": "Listor", "column.mutes": "Tystade användare", "column.notifications": "Aviseringar", - "column.pins": "Nålade toots", + "column.pins": "Fästa inlägg", "column.public": "Federerad tidslinje", "column_back_button.label": "Tillbaka", "column_header.hide_settings": "Dölj inställningar", @@ -92,11 +123,11 @@ "community.column_settings.local_only": "Endast lokalt", "community.column_settings.media_only": "Endast media", "community.column_settings.remote_only": "Endast fjärr", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Ändra språk", + "compose.language.search": "Sök språk...", "compose_form.direct_message_warning_learn_more": "Lär dig mer", - "compose_form.encryption_warning": "Inlägg på Mastodon är inte end-to-end-krypterade. Dela inte någon känslig information över Mastodon.", - "compose_form.hashtag_warning": "Denna toot kommer inte att visas under någon hashtag eftersom den är onoterad. Endast offentliga toots kan sökas med hashtag.", + "compose_form.encryption_warning": "Inlägg på Mastodon är inte obrutet krypterade. Dela inte någon känslig information på Mastodon.", + "compose_form.hashtag_warning": "Detta inlägg kommer inte listas under någon hashtagg eftersom det är olistat. Endast offentliga inlägg kan eftersökas med hashtagg.", "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan följa dig för att se dina inlägg som endast är för följare.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Vad tänker du på?", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Ta bort detta val", "compose_form.poll.switch_to_multiple": "Ändra enkät för att tillåta flera val", "compose_form.poll.switch_to_single": "Ändra enkät för att tillåta ett enda val", - "compose_form.publish": "Tut", + "compose_form.publish": "Publicera", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Spara ändringar", "compose_form.sensitive.hide": "Markera media som känsligt", @@ -119,8 +150,10 @@ "confirmations.block.block_and_report": "Blockera & rapportera", "confirmations.block.confirm": "Blockera", "confirmations.block.message": "Är du säker på att du vill blockera {name}?", + "confirmations.cancel_follow_request.confirm": "Återkalla förfrågan", + "confirmations.cancel_follow_request.message": "Är du säker på att du vill återkalla din begäran om att följa {name}?", "confirmations.delete.confirm": "Radera", - "confirmations.delete.message": "Är du säker på att du vill radera denna status?", + "confirmations.delete.message": "Är du säker på att du vill radera detta inlägg?", "confirmations.delete_list.confirm": "Radera", "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.discard_edit_media.confirm": "Kasta", @@ -130,10 +163,10 @@ "confirmations.logout.confirm": "Logga ut", "confirmations.logout.message": "Är du säker på att du vill logga ut?", "confirmations.mute.confirm": "Tysta", - "confirmations.mute.explanation": "Detta kommer att dölja poster från dem och poster som nämner dem, men fortfarande tillåta dem att se dina poster och följa dig.", + "confirmations.mute.explanation": "Detta kommer dölja inlägg från dem och inlägg som nämner dem, men de tillåts fortfarande se dina inlägg och följa dig.", "confirmations.mute.message": "Är du säker på att du vill tysta {name}?", "confirmations.redraft.confirm": "Radera & gör om", - "confirmations.redraft.message": "Är du säker på att du vill radera detta meddelande och göra om det? Du kommer förlora alla favoriter, knuffar och svar till det ursprungliga meddelandet.", + "confirmations.redraft.message": "Är du säker på att du vill radera detta inlägg och göra om det? Favoritmarkeringar, boostar och svar till det ursprungliga inlägget kommer förlora sitt sammanhang.", "confirmations.reply.confirm": "Svara", "confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?", "confirmations.unfollow.confirm": "Avfölj", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "Markera som läst", "conversation.open": "Visa konversation", "conversation.with": "Med {names}", - "directory.federated": "Från känt servernätverk", + "copypaste.copied": "Kopierad", + "copypaste.copy": "Kopiera", + "directory.federated": "Från känt fediversum", "directory.local": "Endast från {domain}", "directory.new_arrivals": "Nyanlända", "directory.recently_active": "Nyligen aktiva", - "embed.instructions": "Lägg in denna status på din webbplats genom att kopiera koden nedan.", + "disabled_account_banner.account_settings": "Kontoinställningar", + "disabled_account_banner.text": "Ditt konto {disabledAccount} är för närvarande inaktiverat.", + "dismissable_banner.community_timeline": "Dessa är de senaste offentliga inläggen från personer vars konton tillhandahålls av {domain}.", + "dismissable_banner.dismiss": "Avfärda", + "dismissable_banner.explore_links": "Dessa nyheter pratas det om just nu, på denna och på andra servrar i det decentraliserade nätverket.", + "dismissable_banner.explore_statuses": "Dessa inlägg, från denna och andra servrar i det decentraliserade nätverket, pratas det om just nu på denna server.", + "dismissable_banner.explore_tags": "Dessa hashtaggar pratas det om just nu bland folk på denna och andra servrar i det decentraliserade nätverket.", + "dismissable_banner.public_timeline": "Dessa är de senaste offentliga inläggen från personer på denna och andra servrar på det decentraliserade nätverket som denna server känner till.", + "embed.instructions": "Bädda in detta inlägg på din webbplats genom att kopiera koden nedan.", "embed.preview": "Så här kommer det att se ut:", "emoji_button.activity": "Aktivitet", - "emoji_button.clear": "Clear", + "emoji_button.clear": "Rensa", "emoji_button.custom": "Anpassad", "emoji_button.flags": "Flaggor", "emoji_button.food": "Mat & dryck", @@ -167,19 +210,19 @@ "empty_column.account_timeline": "Inga inlägg här!", "empty_column.account_unavailable": "Profilen ej tillgänglig", "empty_column.blocks": "Du har ännu ej blockerat några användare.", - "empty_column.bookmarked_statuses": "Du har inte bokmärkt några tutar än. När du gör ett bokmärke kommer det synas här.", + "empty_column.bookmarked_statuses": "Du har inte bokmärkt några inlägg än. När du bokmärker ett inlägg kommer det synas här.", "empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att sätta bollen i rullning!", "empty_column.direct": "Du har inga direktmeddelanden. När du skickar eller tar emot ett direktmeddelande kommer det att visas här.", "empty_column.domain_blocks": "Det finns ännu inga dolda domäner.", "empty_column.explore_statuses": "Ingenting är trendigt just nu. Kom tillbaka senare!", - "empty_column.favourited_statuses": "Du har inga favoritmarkerade toots än. När du favoritmarkerar en kommer den visas här.", - "empty_column.favourites": "Ingen har favoritmarkerat den här tooten än. När någon gör det kommer den visas här.", + "empty_column.favourited_statuses": "Du har inga favoritmarkerade inlägg än. När du favoritmarkerar ett inlägg kommer det visas här.", + "empty_column.favourites": "Ingen har favoritmarkerat detta inlägg än. När någon gör det kommer de synas här.", "empty_column.follow_recommendations": "Det ser ut som om inga förslag kan genereras till dig. Du kan prova att använda sök för att leta efter personer som du kanske känner eller utforska trendande hash-taggar.", "empty_column.follow_requests": "Du har inga följarförfrågningar än. När du får en kommer den visas här.", "empty_column.hashtag": "Det finns inget i denna hashtag ännu.", "empty_column.home": "Din hemma-tidslinje är tom! Besök {public} eller använd sökning för att komma igång och träffa andra användare.", "empty_column.home.suggestions": "Se några förslag", - "empty_column.list": "Det finns inget i denna lista än. När medlemmar i denna lista lägger till nya statusar kommer de att visas här.", + "empty_column.list": "Det finns inget i denna lista än. När listmedlemmar publicerar nya inlägg kommer de synas här.", "empty_column.lists": "Du har inga listor än. När skapar en kommer den dyka upp här.", "empty_column.mutes": "Du har ännu inte tystat några användare.", "empty_column.notifications": "Du har inga meddelanden än. Interagera med andra för att starta konversationen.", @@ -196,21 +239,37 @@ "explore.trending_links": "Nyheter", "explore.trending_statuses": "Inlägg", "explore.trending_tags": "Hashtaggar", + "filter_modal.added.context_mismatch_explanation": "Denna filterkategori gäller inte för det sammanhang där du har tillgång till det här inlägget. Om du vill att inlägget ska filtreras även i detta sammanhang måste du redigera filtret.", + "filter_modal.added.context_mismatch_title": "Misspassning av sammanhang!", + "filter_modal.added.expired_explanation": "Denna filterkategori har utgått, du måste ändra utgångsdatum för att den ska kunna tillämpas.", + "filter_modal.added.expired_title": "Utgånget filter!", + "filter_modal.added.review_and_configure": "För att granska och vidare konfigurera denna filterkategorin, gå till {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filterinställningar", + "filter_modal.added.settings_link": "inställningar", + "filter_modal.added.short_explanation": "Inlägget har lagts till i följande filterkategori: {title}.", + "filter_modal.added.title": "Filter tillagt!", + "filter_modal.select_filter.context_mismatch": "gäller inte för detta sammanhang", + "filter_modal.select_filter.expired": "utgånget", + "filter_modal.select_filter.prompt_new": "Ny kategori: {name}", + "filter_modal.select_filter.search": "Sök eller skapa", + "filter_modal.select_filter.subtitle": "Använd en befintlig kategori eller skapa en ny", + "filter_modal.select_filter.title": "Filtrera detta inlägg", + "filter_modal.title.status": "Filtrera ett inlägg", "follow_recommendations.done": "Klar", - "follow_recommendations.heading": "Följ personer som du skulle vilja se inlägg från! Här finns det några förslag.", - "follow_recommendations.lead": "Inlägg från personer du följer kommer att dyka upp i kronologisk ordning i ditt hem-flöde. Var inte rädd för att göra misstag, du kan sluta följa människor lika enkelt när som helst!", + "follow_recommendations.heading": "Följ personer du skulle vilja se inlägg från! Här kommer några förslag.", + "follow_recommendations.lead": "Inlägg från personer du följer kommer att dyka upp i kronologisk ordning i ditt hemflöde. Var inte rädd för att göra misstag, du kan sluta följa folk när som helst!", "follow_request.authorize": "Godkänn", "follow_request.reject": "Avvisa", "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.", + "footer.about": "Om", + "footer.directory": "Profilkatalog", + "footer.get_app": "Skaffa appen", + "footer.invite": "Bjud in personer", + "footer.keyboard_shortcuts": "Tangentbordsgenvägar", + "footer.privacy_policy": "Integritetspolicy", + "footer.source_code": "Visa källkod", "generic.saved": "Sparad", - "getting_started.developers": "Utvecklare", - "getting_started.directory": "Profilkatalog", - "getting_started.documentation": "Dokumentation", "getting_started.heading": "Kom igång", - "getting_started.invite": "Skicka inbjudningar", - "getting_started.open_source_notice": "Mastodon är programvara med öppen källkod. Du kan bidra eller rapportera problem via GitHub på {github}.", - "getting_started.security": "Kontoinställningar", - "getting_started.terms": "Användarvillkor", "hashtag.column_header.tag_mode.all": "och {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "utan {additional}", @@ -220,24 +279,38 @@ "hashtag.column_settings.tag_mode.any": "Någon av dessa", "hashtag.column_settings.tag_mode.none": "Ingen av dessa", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Följ hashtagg", + "hashtag.unfollow": "Avfölj hashtagg", "home.column_settings.basic": "Grundläggande", - "home.column_settings.show_reblogs": "Visa knuffar", + "home.column_settings.show_reblogs": "Visa boostar", "home.column_settings.show_replies": "Visa svar", "home.hide_announcements": "Dölj notiser", "home.show_announcements": "Visa notiser", + "interaction_modal.description.favourite": "Med ett Mastodon-konto kan du favoritmarkera detta inlägg för att visa författaren att du gillar det och för att spara det till senare.", + "interaction_modal.description.follow": "Med ett Mastodon-konto kan du följa {name} för att se deras inlägg i ditt hemflöde.", + "interaction_modal.description.reblog": "Med ett Mastodon-konto kan du boosta detta inlägg för att dela den med dina egna följare.", + "interaction_modal.description.reply": "Med ett Mastodon-konto kan du svara på detta inlägg.", + "interaction_modal.on_another_server": "På en annan server", + "interaction_modal.on_this_server": "På denna server", + "interaction_modal.other_server_instructions": "Kopiera och klistra in denna URL i sökfältet i din favorit-Mastodon-app eller webbgränssnittet på din Mastodon-server.", + "interaction_modal.preamble": "Eftersom Mastodon är decentraliserat kan du använda ditt befintliga konto från en annan Mastodonserver, eller annan kompatibel plattform, om du inte har ett konto på denna.", + "interaction_modal.title.favourite": "Favoritmarkera {name}s inlägg", + "interaction_modal.title.follow": "Följ {name}", + "interaction_modal.title.reblog": "Boosta {name}s inlägg", + "interaction_modal.title.reply": "Svara på {name}s inlägg", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# timme} other {# timmar}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuter}}", "keyboard_shortcuts.back": "för att gå bakåt", "keyboard_shortcuts.blocked": "för att öppna listan över blockerade användare", - "keyboard_shortcuts.boost": "för att knuffa", + "keyboard_shortcuts.boost": "Boosta inlägg", "keyboard_shortcuts.column": "för att fokusera en status i en av kolumnerna", "keyboard_shortcuts.compose": "för att fokusera skrivfältet", "keyboard_shortcuts.description": "Beskrivning", "keyboard_shortcuts.direct": "för att öppna Direktmeddelanden", "keyboard_shortcuts.down": "för att flytta nedåt i listan", - "keyboard_shortcuts.enter": "för att öppna en status", - "keyboard_shortcuts.favourite": "för att sätta som favorit", + "keyboard_shortcuts.enter": "Öppna inlägg", + "keyboard_shortcuts.favourite": "Favoritmarkera inlägg", "keyboard_shortcuts.favourites": "för att öppna Favoriter", "keyboard_shortcuts.federated": "Öppna federerad tidslinje", "keyboard_shortcuts.heading": "Tangentbordsgenvägar", @@ -250,16 +323,16 @@ "keyboard_shortcuts.my_profile": "för att öppna din profil", "keyboard_shortcuts.notifications": "för att öppna Meddelanden", "keyboard_shortcuts.open_media": "öppna media", - "keyboard_shortcuts.pinned": "för att öppna nålade inlägg", + "keyboard_shortcuts.pinned": "Öppna listan över fästa inlägg", "keyboard_shortcuts.profile": "för att öppna skaparens profil", - "keyboard_shortcuts.reply": "för att svara", + "keyboard_shortcuts.reply": "Svara på inlägg", "keyboard_shortcuts.requests": "för att öppna Följförfrågningar", "keyboard_shortcuts.search": "för att fokusera sökfältet", "keyboard_shortcuts.spoilers": "visa/dölja CW-fält", "keyboard_shortcuts.start": "för att öppna \"Kom igång\"-kolumnen", "keyboard_shortcuts.toggle_hidden": "för att visa/gömma text bakom CW", "keyboard_shortcuts.toggle_sensitivity": "för att visa/gömma media", - "keyboard_shortcuts.toot": "för att påbörja en helt ny toot", + "keyboard_shortcuts.toot": "Starta nytt inlägg", "keyboard_shortcuts.unfocus": "för att avfokusera skrivfält/sökfält", "keyboard_shortcuts.up": "för att flytta uppåt i listan", "lightbox.close": "Stäng", @@ -267,8 +340,8 @@ "lightbox.expand": "Utöka bildvyrutan", "lightbox.next": "Nästa", "lightbox.previous": "Tidigare", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "Visa profil ändå", + "limited_account_hint.title": "Denna profil har dolts av {domain}s moderatorer.", "lists.account.add": "Lägg till i lista", "lists.account.remove": "Ta bort från lista", "lists.delete": "Radera lista", @@ -287,14 +360,15 @@ "media_gallery.toggle_visible": "Växla synlighet", "missing_indicator.label": "Hittades inte", "missing_indicator.sublabel": "Den här resursen kunde inte hittas", + "moved_to_account_banner.text": "Ditt konto {disabledAccount} är för närvarande inaktiverat eftersom du flyttat till {movedToAccount}.", "mute_modal.duration": "Varaktighet", "mute_modal.hide_notifications": "Dölj aviseringar från denna användare?", "mute_modal.indefinite": "Obestämt", - "navigation_bar.apps": "Mobilappar", + "navigation_bar.about": "Om", "navigation_bar.blocks": "Blockerade användare", "navigation_bar.bookmarks": "Bokmärken", "navigation_bar.community_timeline": "Lokal tidslinje", - "navigation_bar.compose": "Författa ny toot", + "navigation_bar.compose": "Författa nytt inlägg", "navigation_bar.direct": "Direktmeddelanden", "navigation_bar.discover": "Upptäck", "navigation_bar.domain_blocks": "Dolda domäner", @@ -304,28 +378,30 @@ "navigation_bar.filters": "Tystade ord", "navigation_bar.follow_requests": "Följförfrågningar", "navigation_bar.follows_and_followers": "Följer och följare", - "navigation_bar.info": "Om denna instans", - "navigation_bar.keyboard_shortcuts": "Kortkommandon", "navigation_bar.lists": "Listor", "navigation_bar.logout": "Logga ut", "navigation_bar.mutes": "Tystade användare", "navigation_bar.personal": "Personligt", - "navigation_bar.pins": "Nålade inlägg (toots)", + "navigation_bar.pins": "Fästa inlägg", "navigation_bar.preferences": "Inställningar", "navigation_bar.public_timeline": "Federerad tidslinje", + "navigation_bar.search": "Sök", "navigation_bar.security": "Säkerhet", + "not_signed_in_indicator.not_signed_in": "Du behöver logga in för att få åtkomst till denna resurs.", + "notification.admin.report": "{name} rapporterade {target}", "notification.admin.sign_up": "{name} registrerade sig", - "notification.favourite": "{name} favoriserade din status", + "notification.favourite": "{name} favoritmarkerade din status", "notification.follow": "{name} följer dig", "notification.follow_request": "{name} har begärt att följa dig", "notification.mention": "{name} nämnde dig", "notification.own_poll": "Din röstning har avslutats", "notification.poll": "En omröstning du röstat i har avslutats", - "notification.reblog": "{name} knuffade din status", - "notification.status": "{name} skrev just", + "notification.reblog": "{name} boostade ditt inlägg", + "notification.status": "{name} publicerade just ett inlägg", "notification.update": "{name} redigerade ett inlägg", "notifications.clear": "Rensa aviseringar", "notifications.clear_confirmation": "Är du säker på att du vill rensa alla dina aviseringar permanent?", + "notifications.column_settings.admin.report": "Nya rapporter:", "notifications.column_settings.admin.sign_up": "Nya registreringar:", "notifications.column_settings.alert": "Skrivbordsaviseringar", "notifications.column_settings.favourite": "Favoriter:", @@ -337,7 +413,7 @@ "notifications.column_settings.mention": "Omnämningar:", "notifications.column_settings.poll": "Omröstningsresultat:", "notifications.column_settings.push": "Push-aviseringar", - "notifications.column_settings.reblog": "Knuffar:", + "notifications.column_settings.reblog": "Boostar:", "notifications.column_settings.show": "Visa i kolumnen", "notifications.column_settings.sound": "Spela upp ljud", "notifications.column_settings.status": "Nya inlägg:", @@ -345,7 +421,7 @@ "notifications.column_settings.unread_notifications.highlight": "Markera o-lästa aviseringar", "notifications.column_settings.update": "Redigeringar:", "notifications.filter.all": "Alla", - "notifications.filter.boosts": "Knuffar", + "notifications.filter.boosts": "Boostar", "notifications.filter.favourites": "Favoriter", "notifications.filter.follows": "Följer", "notifications.filter.mentions": "Omnämningar", @@ -370,15 +446,17 @@ "poll.votes": "{votes, plural, one {# röst} other {# röster}}", "poll_button.add_poll": "Lägg till en omröstning", "poll_button.remove_poll": "Ta bort omröstning", - "privacy.change": "Justera sekretess", + "privacy.change": "Ändra inläggsintegritet", "privacy.direct.long": "Skicka endast till nämnda användare", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Endast omnämnda personer", "privacy.private.long": "Endast synligt för följare", "privacy.private.short": "Endast följare", "privacy.public.long": "Synlig för alla", "privacy.public.short": "Publik", - "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", + "privacy.unlisted.long": "Synlig för alla, men visas inte i upptäcksfunktioner", "privacy.unlisted.short": "Olistad", + "privacy_policy.last_updated": "Senast uppdaterad {date}", + "privacy_policy.title": "Integritetspolicy", "refresh": "Läs om", "regeneration_indicator.label": "Laddar…", "regeneration_indicator.sublabel": "Ditt hemmaflöde förbereds!", @@ -395,7 +473,7 @@ "relative_time.today": "idag", "reply_indicator.cancel": "Ångra", "report.block": "Blockera", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", + "report.block_explanation": "Du kommer inte se deras inlägg. De kommer inte kunna se dina inlägg eller följa dig. De kommer kunna se att de är blockerade.", "report.categories.other": "Övrigt", "report.categories.spam": "Skräppost", "report.categories.violation": "Innehåll bryter mot en eller flera serverregler", @@ -404,38 +482,44 @@ "report.category.title_account": "profil", "report.category.title_status": "inlägg", "report.close": "Färdig", - "report.comment.title": "Is there anything else you think we should know?", + "report.comment.title": "Finns det något annat vi borde veta?", "report.forward": "Vidarebefordra till {target}", "report.forward_hint": "Kontot är från en annan server. Skicka även en anonymiserad kopia av anmälan dit?", "report.mute": "Tysta", - "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", + "report.mute_explanation": "Du kommer inte se deras inlägg. De kan fortfarande följa dig och se dina inlägg. De kommer inte veta att de är tystade.", "report.next": "Nästa", "report.placeholder": "Ytterligare kommentarer", "report.reasons.dislike": "Jag tycker inte om det", "report.reasons.dislike_description": "Det är inget som du vill se", "report.reasons.other": "Det är något annat", - "report.reasons.other_description": "The issue does not fit into other categories", + "report.reasons.other_description": "Problemet passar inte in i andra kategorier", "report.reasons.spam": "Det är skräppost", "report.reasons.spam_description": "Skadliga länkar, bedrägligt beteende eller repetitiva svar", "report.reasons.violation": "Det bryter mot serverns regler", "report.reasons.violation_description": "Du är medveten om att det bryter mot specifika regler", - "report.rules.subtitle": "Select all that apply", - "report.rules.title": "Which rules are being violated?", - "report.statuses.subtitle": "Select all that apply", - "report.statuses.title": "Are there any posts that back up this report?", + "report.rules.subtitle": "Välj alla som stämmer", + "report.rules.title": "Vilka regler överträds?", + "report.statuses.subtitle": "Välj alla som stämmer", + "report.statuses.title": "Finns det några inlägg som stöder denna rapport?", "report.submit": "Skicka", "report.target": "Rapporterar {target}", - "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", - "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", + "report.thanks.take_action": "Här är dina alternativ för att bestämma vad du ser på Mastodon:", + "report.thanks.take_action_actionable": "Medan vi granskar detta kan du vidta åtgärder mot {name}:", "report.thanks.title": "Vill du inte se det här?", "report.thanks.title_actionable": "Tack för att du rapporterar, vi kommer att titta på detta.", "report.unfollow": "Sluta följ @{username}", - "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report.unfollow_explanation": "Du följer detta konto. Avfölj dem för att inte se deras inlägg i ditt hemflöde.", + "report_notification.attached_statuses": "bifogade {count, plural, one {{count} inlägg} other {{count} inlägg}}", + "report_notification.categories.other": "Övrigt", + "report_notification.categories.spam": "Skräppost", + "report_notification.categories.violation": "Regelöverträdelse", + "report_notification.open": "Öppna rapport", "search.placeholder": "Sök", + "search.search_or_paste": "Sök eller klistra in URL", "search_popout.search_format": "Avancerat sökformat", - "search_popout.tips.full_text": "Enkel text returnerar statusar där du har skrivit, favoriserat, knuffat eller nämnts samt med matchande användarnamn, visningsnamn och hashtags.", + "search_popout.tips.full_text": "Enkel text returnerar inlägg du har skrivit, favoritmarkerat, boostat eller blivit nämnd i, samt matchar användarnamn, visningsnamn och hashtaggar.", "search_popout.tips.hashtag": "hash-tagg", - "search_popout.tips.status": "status", + "search_popout.tips.status": "inlägg", "search_popout.tips.text": "Enkel text returnerar matchande visningsnamn, användarnamn och hashtags", "search_popout.tips.user": "användare", "search_results.accounts": "Människor", @@ -443,15 +527,25 @@ "search_results.hashtags": "Hashtaggar", "search_results.nothing_found": "Kunde inte hitta något för dessa sökord", "search_results.statuses": "Inlägg", - "search_results.statuses_fts_disabled": "Att söka toots med deras innehåll är inte möjligt på denna Mastodon-server.", - "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}", + "search_results.statuses_fts_disabled": "Att söka efter inlägg baserat på innehåll är inte aktiverat på denna Mastodon-server.", + "search_results.title": "Sök efter {q}", + "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "Personer som använt denna server de senaste 30 dagarna (månatligt aktiva användare)", + "server_banner.active_users": "aktiva användare", + "server_banner.administered_by": "Administrerad av:", + "server_banner.introduction": "{domain} är en del av det decentraliserade sociala nätverket som drivs av {mastodon}.", + "server_banner.learn_more": "Lär dig mer", + "server_banner.server_stats": "Serverstatistik:", + "sign_in_banner.create_account": "Skapa konto", + "sign_in_banner.sign_in": "Logga in", + "sign_in_banner.text": "Logga in för att följa profiler eller hashtaggar, favoritmarkera, dela och svara på inlägg eller interagera från ditt konto på en annan server.", "status.admin_account": "Öppet modereringsgränssnitt för @{name}", - "status.admin_status": "Öppna denna status i modereringsgränssnittet", + "status.admin_status": "Öppna detta inlägg i modereringsgränssnittet", "status.block": "Blockera @{name}", "status.bookmark": "Bokmärk", - "status.cancel_reblog_private": "Ta bort knuff", - "status.cannot_reblog": "Detta inlägg kan inte knuffas", - "status.copy": "Kopiera länk till status", + "status.cancel_reblog_private": "Sluta boosta", + "status.cannot_reblog": "Detta inlägg kan inte boostas", + "status.copy": "Kopiera inläggslänk", "status.delete": "Radera", "status.detailed_status": "Detaljerad samtalsvy", "status.direct": "Direktmeddela @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Redigerad {count, plural, one {{count} gång} other {{count} gånger}}", "status.embed": "Bädda in", "status.favourite": "Favorit", + "status.filter": "Filtrera detta inlägg", "status.filtered": "Filtrerat", + "status.hide": "Göm inlägg", "status.history.created": "{name} skapade {date}", "status.history.edited": "{name} redigerade {date}", "status.load_more": "Ladda fler", @@ -469,36 +565,42 @@ "status.more": "Mer", "status.mute": "Tysta @{name}", "status.mute_conversation": "Tysta konversation", - "status.open": "Utvidga denna status", + "status.open": "Utvidga detta inlägg", "status.pin": "Fäst i profil", - "status.pinned": "Fäst toot", + "status.pinned": "Fästa inlägg", "status.read_more": "Läs mer", - "status.reblog": "Knuffa", - "status.reblog_private": "Knuffa till de ursprungliga åhörarna", - "status.reblogged_by": "{name} knuffade", - "status.reblogs.empty": "Ingen har favoriserat den här tutningen än. När någon gör det kommer den att synas här.", + "status.reblog": "Boosta", + "status.reblog_private": "Boosta med ursprunglig synlighet", + "status.reblogged_by": "{name} boostade", + "status.reblogs.empty": "Ingen har boostat detta inlägg än. När någon gör det kommer de synas här.", "status.redraft": "Radera & gör om", "status.remove_bookmark": "Ta bort bokmärke", + "status.replied_to": "Svarade på {name}", "status.reply": "Svara", "status.replyAll": "Svara på tråden", "status.report": "Rapportera @{name}", "status.sensitive_warning": "Känsligt innehåll", "status.share": "Dela", + "status.show_filter_reason": "Visa ändå", "status.show_less": "Visa mindre", "status.show_less_all": "Visa mindre för alla", "status.show_more": "Visa mer", "status.show_more_all": "Visa mer för alla", - "status.show_thread": "Visa tråd", + "status.show_original": "Visa original", + "status.translate": "Översätt", + "status.translated_from_with": "Översatt från {lang} med {provider}", "status.uncached_media_warning": "Ej tillgängligt", "status.unmute_conversation": "Öppna konversation", "status.unpin": "Ångra fäst i profil", + "subscribed_languages.lead": "Endast inlägg på valda språk kommer att visas på dina hem- och listflöden efter ändringen. Välj ingenting för att se inlägg på alla språk.", + "subscribed_languages.save": "Spara ändringar", + "subscribed_languages.target": "Ändra språkprenumerationer för {target}", "suggestions.dismiss": "Avfärda förslag", "suggestions.header": "Du kanske är intresserad av…", "tabs_bar.federated_timeline": "Federerad", "tabs_bar.home": "Hem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Aviseringar", - "tabs_bar.search": "Sök", "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} kvar", "time_remaining.hours": "{hours, plural, one {# timme} other {# timmar}} kvar", "time_remaining.minutes": "{minutes, plural, one {1 minut} other {# minuter}} kvar", @@ -507,8 +609,8 @@ "timeline_hint.remote_resource_not_displayed": "{resource} från andra servrar visas inte.", "timeline_hint.resources.followers": "Följare", "timeline_hint.resources.follows": "Följer", - "timeline_hint.resources.statuses": "Äldre tutningar", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} pratar", + "timeline_hint.resources.statuses": "Äldre inlägg", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} senaste {days, plural, one {dygnet} other {{days} dagarna}}", "trends.trending_now": "Trendar nu", "ui.beforeunload": "Ditt utkast kommer att förloras om du lämnar Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Förbereder OCR…", "upload_modal.preview_label": "Förhandstitt ({ratio})", "upload_progress.label": "Laddar upp...", + "upload_progress.processing": "Bearbetar…", "video.close": "Stäng video", "video.download": "Ladda ner fil", "video.exit_fullscreen": "Stäng helskärm", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index 7b041a2084a0eb..a8585c042d78d0 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Block domain {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 43508be0125379..a69becb950bcba 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -1,4 +1,16 @@ { + "about.blocks": "நடுநிலையான சேவையகங்கள்", + "about.contact": "தொடர்பு:", + "about.disclaimer": "மாஸ்டோடன் இலவச, திறந்த மூல மென்பொருள் மற்றும் மாஸ்டோடன் gGmbH இன் வர்த்தக முத்திரை.", + "about.domain_blocks.no_reason_available": "காரணம் கிடைக்கவில்லை", + "about.domain_blocks.preamble": "மாஸ்டோடன் பொதுவாக நீங்கள் ஃபெடிவர்ஸில் உள்ள வேறு எந்தச் சர்வரிலிருந்தும் உள்ளடக்கத்தைப் பார்க்கவும், பயனர்களுடன் தொடர்பு கொள்ளவும் அனுமதிக்கிறது. இந்தக் குறிப்பிட்ட சர்வரில் செய்யப்பட்ட விதிவிலக்குகள் இவை.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "குறிப்பு", "account.add_or_remove_from_list": "பட்டியல்களில் சேர்/நீக்கு", "account.badges.bot": "பாட்", @@ -7,31 +19,37 @@ "account.block_domain": "{domain} யில் இருந்து வரும் எல்லாவற்றையும் மறை", "account.blocked": "முடக்கப்பட்டது", "account.browse_more_on_origin_server": "மேலும் உலாவ சுயவிவரத்திற்குச் செல்க", - "account.cancel_follow_request": "பின்தொடரும் கோரிக்கையை நிராகரி", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "நேரடி செய்தி @{name}", - "account.disable_notifications": "Stop notifying me when @{name} posts", + "account.disable_notifications": "@{name} பதிவிட்டல் எனக்கு தெரியபடுத்த வேண்டாம்", "account.domain_blocked": "மறைக்கப்பட்டத் தளங்கள்", "account.edit_profile": "சுயவிவரத்தை மாற்று", - "account.enable_notifications": "Notify me when @{name} posts", + "account.enable_notifications": "@{name} பதிவிட்டல் எனக்குத் தெரியப்படுத்தவும்", "account.endorse": "சுயவிவரத்தில் வெளிப்படுத்து", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "பின்தொடர்", "account.followers": "பின்தொடர்பவர்கள்", "account.followers.empty": "இதுவரை யாரும் இந்த பயனரைப் பின்தொடரவில்லை.", "account.followers_counter": "{count, plural, one {{counter} வாசகர்} other {{counter} வாசகர்கள்}}", - "account.following": "Following", + "account.following": "பின்தொடரும்", "account.following_counter": "{count, plural,one {{counter} சந்தா} other {{counter} சந்தாக்கள்}}", "account.follows.empty": "இந்த பயனர் இதுவரை யாரையும் பின்தொடரவில்லை.", "account.follows_you": "உங்களைப் பின்தொடர்கிறார்", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "இருந்து ஊக்கியாக மறை @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "இந்த இணைப்பை உரிமையாளர் சரிபார்க்கப்பட்டது {date}", "account.locked_info": "இந்தக் கணக்கு தனியுரிமை நிலை பூட்டப்பட்டுள்ளது. அவர்களைப் பின்தொடர்பவர் யார் என்பதை உரிமையாளர் கைமுறையாக மதிப்பாய்வு செய்கிறார்.", "account.media": "ஊடகங்கள்", "account.mention": "குறிப்பிடு @{name}", - "account.moved_to": "{name} நகர்த்தப்பட்டது:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "ஊமையான @{name}", "account.mute_notifications": "அறிவிப்புகளை முடக்கு @{name}", "account.muted": "முடக்கியது", + "account.open_original_page": "Open original page", "account.posts": "டூட்டுகள்", "account.posts_with_replies": "Toots மற்றும் பதில்கள்", "account.report": "@{name} -ஐப் புகாரளி", @@ -41,36 +59,49 @@ "account.statuses_counter": "{count, plural, one {{counter} டூட்} other {{counter} டூட்டுகள்}}", "account.unblock": "@{name} மீது தடை நீக்குக", "account.unblock_domain": "{domain} ஐ காண்பி", - "account.unblock_short": "Unblock", + "account.unblock_short": "தடையை நீக்கு", "account.unendorse": "சுயவிவரத்தில் இடம்பெற வேண்டாம்", "account.unfollow": "பின்தொடர்வதை நிறுத்துக", "account.unmute": "@{name} இன் மீது மௌனத் தடையை நீக்குக", "account.unmute_notifications": "@{name} இலிருந்து அறிவிப்புகளின் மீது மௌனத் தடையை நீக்குக", - "account.unmute_short": "Unmute", + "account.unmute_short": "அமைதியை நீக்கு", "account_note.placeholder": "குறிப்பு ஒன்றை சேர்க்க சொடுக்கவும்", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "New users", + "admin.dashboard.daily_retention": "பதிவுசெய்த பிறகு நாள்தோறும் பயனர் தக்கவைப்பு விகிதம்", + "admin.dashboard.monthly_retention": "பதிவுசெய்த பிறகு மாதந்தோறும் பயனர் தக்கவைப்பு விகிதம்", + "admin.dashboard.retention.average": "சராசரி", + "admin.dashboard.retention.cohort": "பதிவுசெய்த மாதம்", + "admin.dashboard.retention.cohort_size": "புதிய பயனர்கள்", "alert.rate_limited.message": "{retry_time, time, medium} க்கு பிறகு மீண்டும் முயற்சிக்கவும்.", "alert.rate_limited.title": "பயன்பாடு கட்டுப்படுத்தப்பட்டுள்ளது", "alert.unexpected.message": "எதிர்பாராத பிழை ஏற்பட்டுவிட்டது.", "alert.unexpected.title": "அச்சச்சோ!", "announcement.announcement": "அறிவிப்பு", - "attachments_list.unprocessed": "(unprocessed)", + "attachments_list.unprocessed": "(செயலாக்கப்படாதது)", + "audio.hide": "ஆடியோவை மறை", "autosuggest_hashtag.per_week": "ஒவ்வொரு வாரம் {count}", "boost_modal.combo": "நீங்கள் இதை அடுத்தமுறை தவிர்க்க {combo} வை அழுத்தவும்", - "bundle_column_error.body": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "மீண்டும் முயற்சிக்கவும்", - "bundle_column_error.title": "பிணையப் பிழை", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "மூடுக", "bundle_modal_error.message": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.", "bundle_modal_error.retry": "மீண்டும் முயற்சி செய்", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "தடுக்கப்பட்ட பயனர்கள்", "column.bookmarks": "அடையாளக்குறிகள்", "column.community": "சுய நிகழ்வு காலவரிசை", - "column.direct": "Direct messages", + "column.direct": "நேரடி செய்திகள்", "column.directory": "சுயவிவரங்களை உலாவு", "column.domain_blocks": "மறைந்திருக்கும் திரளங்கள்", "column.favourites": "பிடித்தவைகள்", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "அருகிலிருந்து மட்டுமே", "community.column_settings.media_only": "படங்கள் மட்டுமே", "community.column_settings.remote_only": "தொலைவிலிருந்து மட்டுமே", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "மொழியை மாற்று", + "compose.language.search": "தேடல் மொழிகள்...", "compose_form.direct_message_warning_learn_more": "மேலும் அறிய", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Mastodonல் உள்ள பதிவுகள் முறையாக என்க்ரிப்ட்(encrypt) செய்யபடவில்லை. அதனால் முக்கிய தகவல்களை இங்கே பகிர வேண்டாம்.", "compose_form.hashtag_warning": "இது ஒரு பட்டியலிடப்படாத டூட் என்பதால் எந்த ஹேஷ்டேகின் கீழும் வராது. ஹேஷ்டேகின் மூலம் பொதுவில் உள்ள டூட்டுகளை மட்டுமே தேட முடியும்.", "compose_form.lock_disclaimer": "உங்கள் கணக்கு {locked} செய்யப்படவில்லை. உங்கள் பதிவுகளை யார் வேண்டுமானாலும் பின்தொடர்ந்து காணலாம்.", "compose_form.lock_disclaimer.lock": "பூட்டப்பட்டது", @@ -106,9 +137,9 @@ "compose_form.poll.remove_option": "இந்தத் தேர்வை அகற்று", "compose_form.poll.switch_to_multiple": "பல தேர்வுகளை அனுமதிக்குமாறு மாற்று", "compose_form.poll.switch_to_single": "ஒரே ஒரு தேர்வை மட்டும் அனுமதிக்குமாறு மாற்று", - "compose_form.publish": "டூட்", + "compose_form.publish": "வெளியிடு", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "மாற்றங்களை சேமி", "compose_form.sensitive.hide": "அனைவருக்கும் ஏற்றப் படம் இல்லை எனக் குறியிடு", "compose_form.sensitive.marked": "இப்படம் அனைவருக்கும் ஏற்றதல்ல எனக் குறியிடப்பட்டுள்ளது", "compose_form.sensitive.unmarked": "இப்படம் அனைவருக்கும் ஏற்றதல்ல எனக் குறியிடப்படவில்லை", @@ -119,12 +150,14 @@ "confirmations.block.block_and_report": "தடுத்துப் புகாரளி", "confirmations.block.confirm": "தடு", "confirmations.block.message": "{name}-ஐ நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "நீக்கு", "confirmations.delete.message": "இப்பதிவை நிச்சயமாக நீக்க விரும்புகிறீர்களா?", "confirmations.delete_list.confirm": "நீக்கு", "confirmations.delete_list.message": "இப்பட்டியலை நிரந்தரமாக நீக்க நிச்சயம் விரும்புகிறீர்களா?", - "confirmations.discard_edit_media.confirm": "Discard", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.discard_edit_media.confirm": "நிராகரி", + "confirmations.discard_edit_media.message": "சேமிக்கப்படாத மாற்றங்கள் ஊடக விளக்கம் அல்லது முன்னோட்டத்தில் உள்ளது. அவற்றை நிராகரிக்கவா?", "confirmations.domain_block.confirm": "முழு களத்தையும் மறை", "confirmations.domain_block.message": "நீங்கள் முழு {domain} களத்தையும் நிச்சயமாக, நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா? பெரும்பாலும் சில குறிப்பிட்ட பயனர்களைத் தடுப்பதே போதுமானது. முழு களத்தையும் தடுத்தால், அதிலிருந்து வரும் எந்தப் பதிவையும் உங்களால் காண முடியாது, மேலும் அப்பதிவுகள் குறித்த அறிவிப்புகளும் உங்களுக்கு வராது. அந்தக் களத்தில் இருக்கும் பின்தொடர்பவர்கள் உங்கள் பக்கத்திலிருந்து நீக்கப்படுவார்கள்.", "confirmations.logout.confirm": "வெளியேறு", @@ -142,14 +175,24 @@ "conversation.mark_as_read": "படிக்கபட்டதாகக் குறி", "conversation.open": "உரையாடலைக் காட்டு", "conversation.with": "{names} உடன்", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "அறியப்பட்ட ஃபெடிவெர்சிலிருந்து", "directory.local": "{domain} களத்திலிருந்து மட்டும்", "directory.new_arrivals": "புதிய வரவு", "directory.recently_active": "சற்றுமுன் செயல்பாட்டில் இருந்தவர்கள்", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "இந்தப் பதிவை உங்கள் வலைதளத்தில் பொதிக்கக் கீழே உள்ள வரிகளை காப்பி செய்யவும்.", "embed.preview": "பார்க்க இப்படி இருக்கும்:", "emoji_button.activity": "செயல்பாடு", - "emoji_button.clear": "Clear", + "emoji_button.clear": "அழி", "emoji_button.custom": "தனிப்பயன்", "emoji_button.flags": "கொடிகள்", "emoji_button.food": "உணவு மற்றும் பானம்", @@ -163,13 +206,13 @@ "emoji_button.search_results": "தேடல் முடிவுகள்", "emoji_button.symbols": "குறியீடுகள்", "emoji_button.travel": "சுற்றுலா மற்றும் இடங்கள்", - "empty_column.account_suspended": "Account suspended", + "empty_column.account_suspended": "கணக்கு இடைநீக்கப்பட்டது", "empty_column.account_timeline": "டூட்டுகள் ஏதும் இல்லை!", "empty_column.account_unavailable": "சுயவிவரம் கிடைக்கவில்லை", "empty_column.blocks": "நீங்கள் இதுவரை எந்தப் பயனர்களையும் முடக்கியிருக்கவில்லை.", "empty_column.bookmarked_statuses": "உங்களிடம் அடையாளக்குறியிட்ட டூட்டுகள் எவையும் இல்லை. அடையாளக்குறியிட்ட பிறகு அவை இங்கே காட்டப்படும்.", "empty_column.community": "உங்கள் மாஸ்டடான் முச்சந்தியில் யாரும் இல்லை. எதையேனும் எழுதி ஆட்டத்தைத் துவக்குங்கள்!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "உங்களுக்குத் தனிப்பட்ட செய்திகள் ஏதும் இல்லை. செய்தியை நீங்கள் அனுப்பும்போதோ அல்லது பெறும்போதோ, அது இங்கே காண்பிக்கப்படும்.", "empty_column.domain_blocks": "தடுக்கப்பட்டக் களங்கள் இதுவரை இல்லை.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.favourited_statuses": "உங்களுக்குப் பிடித்த டூட்டுகள் இதுவரை இல்லை. ஒரு டூட்டில் நீங்கள் விருப்பக்குறி இட்டால், அது இங்கே காண்பிக்கப்படும்.", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "அனுமதியளி", "follow_request.reject": "நிராகரி", "follow_requests.unlocked_explanation": "உங்கள் கணக்கு பூட்டப்படவில்லை என்றாலும், இந்தக் கணக்குகளிலிருந்து உங்களைப் பின்தொடர விரும்பும் கோரிக்கைகளை நீங்கள் பரீசீலிப்பது நலம் என்று {domain} ஊழியர் எண்ணுகிறார்.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "சேமிக்கப்பட்டது", - "getting_started.developers": "உருவாக்குநர்கள்", - "getting_started.directory": "பயனர்கள்", - "getting_started.documentation": "ஆவணங்கள்", "getting_started.heading": "முதன்மைப் பக்கம்", - "getting_started.invite": "நண்பர்களை அழைக்க", - "getting_started.open_source_notice": "மாஸ்டடான் ஒரு open source மென்பொருள் ஆகும். {github} -இன் மூலம் உங்களால் இதில் பங்களிக்கவோ, சிக்கல்களைத் தெரியப்படுத்தவோ முடியும்.", - "getting_started.security": "கணக்கு அமைப்புகள்", - "getting_started.terms": "சேவை விதிமுறைகள்", "hashtag.column_header.tag_mode.all": "மற்றும் {additional}", "hashtag.column_header.tag_mode.any": "அல்லது {additional}", "hashtag.column_header.tag_mode.none": "{additional} தவிர்த்து", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "இவற்றில் எவையேனும்", "hashtag.column_settings.tag_mode.none": "இவற்றில் ஏதுமில்லை", "hashtag.column_settings.tag_toggle": "இந்த நெடுவரிசையில் கூடுதல் சிட்டைகளைச் சேர்க்கவும்", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "அடிப்படையானவை", "home.column_settings.show_reblogs": "பகிர்வுகளைக் காண்பி", "home.column_settings.show_replies": "மறுமொழிகளைக் காண்பி", "home.hide_announcements": "அறிவிப்புகளை மறை", "home.show_announcements": "அறிவிப்புகளைக் காட்டு", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# நாள்} other {# நாட்கள்}}", "intervals.full.hours": "{number, plural, one {# மணிநேரம்} other {# மணிநேரங்கள்}}", "intervals.full.minutes": "{number, plural, one {# நிமிடம்} other {# நிமிடங்கள்}}", @@ -268,7 +341,7 @@ "lightbox.next": "அடுத்த", "lightbox.previous": "சென்ற", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "பட்டியலில் சேர்", "lists.account.remove": "பட்டியலில் இருந்து அகற்று", "lists.delete": "பட்டியலை நீக்கு", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "நிலைமாற்று தெரியும்", "missing_indicator.label": "கிடைக்கவில்லை", "missing_indicator.sublabel": "இந்த ஆதாரத்தை காண முடியவில்லை", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "இந்த பயனரின் அறிவிப்புகளை மறைக்கவா?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "மொபைல் பயன்பாடுகள்", + "navigation_bar.about": "About", "navigation_bar.blocks": "தடுக்கப்பட்ட பயனர்கள்", "navigation_bar.bookmarks": "அடையாளக்குறிகள்", "navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு", @@ -304,8 +378,6 @@ "navigation_bar.filters": "முடக்கப்பட்ட வார்த்தைகள்", "navigation_bar.follow_requests": "கோரிக்கைகளை பின்பற்றவும்", "navigation_bar.follows_and_followers": "பின்பற்றல்கள் மற்றும் பின்பற்றுபவர்கள்", - "navigation_bar.info": "இந்த நிகழ்வு பற்றி", - "navigation_bar.keyboard_shortcuts": "சுருக்குவிசைகள்", "navigation_bar.lists": "குதிரை வீர்ர்கள்", "navigation_bar.logout": "விடு பதிகை", "navigation_bar.mutes": "முடக்கப்பட்ட பயனர்கள்", @@ -313,7 +385,10 @@ "navigation_bar.pins": "பொருத்தப்பட்டன toots", "navigation_bar.preferences": "விருப்பங்கள்", "navigation_bar.public_timeline": "கூட்டாட்சி காலக்கெடு", + "navigation_bar.search": "Search", "navigation_bar.security": "பத்திரம்", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} ஆர்வம் கொண்டவர், உங்கள் நிலை", "notification.follow": "{name} உங்களைப் பின்தொடர்கிறார்", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "அறிவிப்புகளை அழிக்கவும்", "notifications.clear_confirmation": "உங்கள் எல்லா அறிவிப்புகளையும் நிரந்தரமாக அழிக்க விரும்புகிறீர்களா?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "டெஸ்க்டாப் அறிவிப்புகள்", "notifications.column_settings.favourite": "பிடித்தவை:", @@ -364,7 +440,7 @@ "poll.closed": "மூடிய", "poll.refresh": "பத்துயிர்ப்ப?ட்டு", "poll.total_people": "{count, plural, one {# நபர்} other {# நபர்கள்}}", - "poll.total_votes": "{count, plural, one {# vote} மற்ற {# votes}}", + "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", "poll.vote": "வாக்களி", "poll.voted": "உங்கள் தேர்வு", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", @@ -379,6 +455,8 @@ "privacy.public.short": "பொது", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "பட்டியலிடப்படாத", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "புதுப்பி", "regeneration_indicator.label": "சுமையேற்றம்…", "regeneration_indicator.sublabel": "உங்கள் வீட்டு ஊட்டம் தயார் செய்யப்படுகிறது!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "தேடு", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "மேம்பட்ட தேடல் வடிவம்", "search_popout.tips.full_text": "எளிமையான உரை நீங்கள் எழுதப்பட்ட, புகழ், அதிகரித்தது, அல்லது குறிப்பிட்டுள்ள, அதே போல் பயனர் பெயர்கள், காட்சி பெயர்கள், மற்றும் ஹேஸ்டேகைகளை கொண்டுள்ளது என்று நிலைகளை கொடுக்கிறது.", "search_popout.tips.hashtag": "ஹேஸ்டேக்", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "டூட்டுகள்", "search_results.statuses_fts_disabled": "டூட்டுகளின் வார்த்தைகளைக்கொண்டு தேடுவது இந்த மச்டோடன் வழங்கியில் இயல்விக்கப்படவில்லை.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} மற்ற {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "மிதமான இடைமுகத்தை திறக்க @{name}", "status.admin_status": "மிதமான இடைமுகத்தில் இந்த நிலையை திறக்கவும்", "status.block": "@{name} -ஐத் தடு", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "கிடத்து", "status.favourite": "விருப்பத்துக்குகந்த", + "status.filter": "Filter this post", "status.filtered": "வடிகட்டு", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "அதிகமாய் ஏற்று", @@ -479,26 +575,32 @@ "status.reblogs.empty": "இதுவரை யாரும் இந்த மோதலை அதிகரிக்கவில்லை. யாராவது செய்தால், அவர்கள் இங்கே காண்பார்கள்.", "status.redraft": "நீக்கு மற்றும் மீண்டும் வரைவு", "status.remove_bookmark": "அடையாளம் நீக்கு", + "status.replied_to": "Replied to {name}", "status.reply": "பதில்", "status.replyAll": "நூலுக்கு பதிலளிக்கவும்", "status.report": "@{name} மீது புகாரளி", "status.sensitive_warning": "உணர்திறன் உள்ளடக்கம்", "status.share": "பங்கிடு", + "status.show_filter_reason": "Show anyway", "status.show_less": "குறைவாகக் காண்பி", "status.show_less_all": "அனைத்தையும் குறைவாக காட்டு", "status.show_more": "மேலும் காட்ட", "status.show_more_all": "அனைவருக்கும் மேலும் காட்டு", - "status.show_thread": "நூல் காட்டு", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "கிடைக்கவில்லை", "status.unmute_conversation": "ஊமையாக உரையாடல் இல்லை", "status.unpin": "சுயவிவரத்திலிருந்து நீக்கவும்", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "பரிந்துரை விலக்க", "suggestions.header": "நீங்கள் ஆர்வமாக இருக்கலாம் …", "tabs_bar.federated_timeline": "கூட்டமைந்த", "tabs_bar.home": "முகப்பு", "tabs_bar.local_timeline": "உள்ளூர்", "tabs_bar.notifications": "அறிவிப்புகள்", - "tabs_bar.search": "தேடு", "time_remaining.days": "{number, plural, one {# day} மற்ற {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} மற்ற {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} மற்ற {# minutes}} left", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "வாசகர்கள்", "timeline_hint.resources.follows": "வாசிக்கிறார்", "timeline_hint.resources.statuses": "பழைய டூட்டுகள்", - "trends.counter_by_accounts": "{count, plural, one {{counter} நபர்} other {{counter} நபர்கள்}} உரையாடலில்", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "இப்போது செல்திசையில் இருப்பவை", "ui.beforeunload": "நீங்கள் வெளியே சென்றால் உங்கள் வரைவு இழக்கப்படும் மஸ்தோடோன்.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "முன்னோட்டம் ({ratio})", "upload_progress.label": "ஏற்றுகிறது ...", + "upload_progress.processing": "Processing…", "video.close": "வீடியோவை மூடு", "video.download": "கோப்பைப் பதிவிறக்கவும்", "video.exit_fullscreen": "முழு திரையில் இருந்து வெளியேறவும்", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index 2bc2a29da5c334..a3ae8a0510c18b 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Block domain {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Mûi-thé", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index a25a019fb0b9fa..1d99fc4dffbf21 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "జాబితాల నుండి చేర్చు లేదా తీసివేయి", "account.badges.bot": "బాట్", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} నుంచి అన్నీ దాచిపెట్టు", "account.blocked": "బ్లాక్ అయినవి", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name}కు నేరుగా సందేశం పంపు", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "డొమైన్ దాచిపెట్టబడినది", "account.edit_profile": "ప్రొఫైల్ని సవరించండి", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "ప్రొఫైల్లో చూపించు", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "అనుసరించు", "account.followers": "అనుచరులు", "account.followers.empty": "ఈ వినియోగదారుడిని ఇంకా ఎవరూ అనుసరించడంలేదు.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "ఈ వినియోగదారి ఇంకా ఎవరినీ అనుసరించడంలేదు.", "account.follows_you": "మిమ్మల్ని అనుసరిస్తున్నారు", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name} నుంచి బూస్ట్ లను దాచిపెట్టు", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "ఈ లంకె యొక్క యాజమాన్యం {date}న పరీక్షించబడింది", "account.locked_info": "ఈ ఖాతా యొక్క గోప్యత స్థితి లాక్ చేయబడి వుంది. ఈ ఖాతాను ఎవరు అనుసరించవచ్చో యజమానే నిర్ణయం తీసుకుంటారు.", "account.media": "మీడియా", "account.mention": "@{name}ను ప్రస్తావించు", - "account.moved_to": "{name} ఇక్కడికి మారారు:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "@{name}ను మ్యూట్ చెయ్యి", "account.mute_notifications": "@{name}నుంచి ప్రకటనలను మ్యూట్ చెయ్యి", "account.muted": "మ్యూట్ అయినవి", + "account.open_original_page": "Open original page", "account.posts": "టూట్లు", "account.posts_with_replies": "టూట్లు మరియు ప్రత్యుత్తరములు", "account.report": "@{name}పై ఫిర్యాదుచేయు", @@ -59,14 +77,27 @@ "alert.unexpected.title": "అయ్యో!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "మీరు తదుపరిసారి దీనిని దాటవేయడానికి {combo} నొక్కవచ్చు", - "bundle_column_error.body": "ఈ భాగం లోడ్ అవుతున్నప్పుడు ఏదో తప్పు జరిగింది.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "మళ్ళీ ప్రయత్నించండి", - "bundle_column_error.title": "నెట్వర్క్ లోపం", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "మూసివేయు", "bundle_modal_error.message": "ఈ భాగం లోడ్ అవుతున్నప్పుడు ఏదో తప్పు జరిగింది.", "bundle_modal_error.retry": "మళ్ళీ ప్రయత్నించండి", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "column.bookmarks": "Bookmarks", "column.community": "స్థానిక కాలక్రమం", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "ఈ ఎంపికను తొలగించు", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "టూట్", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "బ్లాక్ చేయి", "confirmations.block.message": "మీరు ఖచ్చితంగా {name}ని బ్లాక్ చేయాలనుకుంటున్నారా?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "తొలగించు", "confirmations.delete.message": "మీరు ఖచ్చితంగా ఈ స్టేటస్ ని తొలగించాలనుకుంటున్నారా?", "confirmations.delete_list.confirm": "తొలగించు", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "దిగువ కోడ్ను కాపీ చేయడం ద్వారా మీ వెబ్సైట్లో ఈ స్టేటస్ ని పొందుపరచండి.", "embed.preview": "అది ఈ క్రింది విధంగా కనిపిస్తుంది:", "emoji_button.activity": "కార్యకలాపాలు", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "అనుమతించు", "follow_request.reject": "తిరస్కరించు", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "డెవలపర్లు", - "getting_started.directory": "ప్రొఫైల్ డైరెక్టరీ", - "getting_started.documentation": "డాక్యుమెంటేషన్", "getting_started.heading": "మొదలుపెడదాం", - "getting_started.invite": "వ్యక్తులను ఆహ్వానించండి", - "getting_started.open_source_notice": "మాస్టొడొన్ ఓపెన్ సోర్స్ సాఫ్ట్వేర్. మీరు {github} వద్ద GitHub పై సమస్యలను నివేదించవచ్చు లేదా తోడ్పడచ్చు.", - "getting_started.security": "భద్రత", - "getting_started.terms": "సేవా నిబంధనలు", "hashtag.column_header.tag_mode.all": "మరియు {additional}", "hashtag.column_header.tag_mode.any": "లేదా {additional}", "hashtag.column_header.tag_mode.none": "{additional} లేకుండా", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "వీటిలో ఏవైనా", "hashtag.column_settings.tag_mode.none": "ఇవేవీ కావు", "hashtag.column_settings.tag_toggle": "ఈ నిలువు వరుసలో మరికొన్ని ట్యాగులను చేర్చండి", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "ప్రాథమిక", "home.column_settings.show_reblogs": "బూస్ట్ లను చూపించు", "home.column_settings.show_replies": "ప్రత్యుత్తరాలను చూపించు", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "తరువాత", "lightbox.previous": "మునుపటి", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "జాబితాకు జోడించు", "lists.account.remove": "జాబితా నుండి తొలగించు", "lists.delete": "జాబితాను తొలగించు", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "దృశ్యమానతను టోగుల్ చేయండి", "missing_indicator.label": "దొరకలేదు", "missing_indicator.sublabel": "ఈ వనరు కనుగొనబడలేదు", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "ఈ వినియోగదారు నుండి నోటిఫికేషన్లను దాచాలా?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "మొబైల్ ఆప్ లు", + "navigation_bar.about": "About", "navigation_bar.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "స్థానిక కాలక్రమం", @@ -304,8 +378,6 @@ "navigation_bar.filters": "మ్యూట్ చేయబడిన పదాలు", "navigation_bar.follow_requests": "అనుసరించడానికి అభ్యర్ధనలు", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ఈ సేవిక గురించి", - "navigation_bar.keyboard_shortcuts": "హాట్ కీలు", "navigation_bar.lists": "జాబితాలు", "navigation_bar.logout": "లాగ్ అవుట్ చేయండి", "navigation_bar.mutes": "మ్యూట్ చేయబడిన వినియోగదారులు", @@ -313,7 +385,10 @@ "navigation_bar.pins": "అతికించిన టూట్లు", "navigation_bar.preferences": "ప్రాధాన్యతలు", "navigation_bar.public_timeline": "సమాఖ్య కాలక్రమం", + "navigation_bar.search": "Search", "navigation_bar.security": "భద్రత", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} మీ స్టేటస్ ను ఇష్టపడ్డారు", "notification.follow": "{name} మిమ్మల్ని అనుసరిస్తున్నారు", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "ప్రకటనలను తుడిచివేయు", "notifications.clear_confirmation": "మీరు మీ అన్ని నోటిఫికేషన్లను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "డెస్క్టాప్ నోటిఫికేషన్లు", "notifications.column_settings.favourite": "ఇష్టపడినవి:", @@ -379,6 +455,8 @@ "privacy.public.short": "ప్రజా", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "జాబితా చేయబడనిది", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "లోడ్ అవుతోంది…", "regeneration_indicator.sublabel": "మీ హోమ్ ఫీడ్ సిద్ధమవుతోంది!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "శోధన", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "అధునాతన శోధన ఆకృతి", "search_popout.tips.full_text": "సాధారణ వచనం మీరు వ్రాసిన, ఇష్టపడే, పెంచబడిన లేదా పేర్కొనబడిన, అలాగే యూజర్పేర్లు, ప్రదర్శన పేర్లు, మరియు హ్యాష్ట్యాగ్లను నమోదు చేసిన హోదాలను అందిస్తుంది.", "search_popout.tips.hashtag": "హాష్ ట్యాగ్", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "టూట్లు", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "@{name} కొరకు సమన్వయ వినిమయసీమను తెరువు", "status.admin_status": "సమన్వయ వినిమయసీమలో ఈ స్టేటస్ ను తెరవండి", "status.block": "@{name} ను బ్లాక్ చేయి", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "ఎంబెడ్", "status.favourite": "ఇష్టపడు", + "status.filter": "Filter this post", "status.filtered": "వడకట్టబడిన", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "మరిన్ని లోడ్ చేయి", @@ -479,26 +575,32 @@ "status.reblogs.empty": "ఈ టూట్ను ఇంకా ఎవరూ బూస్ట్ చేయలేదు. ఎవరైనా చేసినప్పుడు, అవి ఇక్కడ కనబడతాయి.", "status.redraft": "తొలగించు & తిరగరాయు", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "ప్రత్యుత్తరం", "status.replyAll": "సంభాషణకు ప్రత్యుత్తరం ఇవ్వండి", "status.report": "@{name}పై ఫిర్యాదుచేయు", "status.sensitive_warning": "సున్నితమైన కంటెంట్", "status.share": "పంచుకోండి", + "status.show_filter_reason": "Show anyway", "status.show_less": "తక్కువ చూపించు", "status.show_less_all": "అన్నిటికీ తక్కువ చూపించు", "status.show_more": "ఇంకా చూపించు", "status.show_more_all": "అన్నిటికీ ఇంకా చూపించు", - "status.show_thread": "గొలుసును చూపించు", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "సంభాషణను అన్మ్యూట్ చేయి", "status.unpin": "ప్రొఫైల్ నుండి పీకివేయు", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "సూచనను రద్దు చేయి", "suggestions.header": "మీకు వీటి మీద ఆసక్తి ఉండవచ్చు…", "tabs_bar.federated_timeline": "సమాఖ్య", "tabs_bar.home": "హోమ్", "tabs_bar.local_timeline": "స్థానిక", "tabs_bar.notifications": "ప్రకటనలు", - "tabs_bar.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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "మీరు మాస్టొడొన్ను వదిలివేస్తే మీ డ్రాఫ్ట్లు పోతాయి.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "అప్లోడ్ అవుతోంది...", + "upload_progress.processing": "Processing…", "video.close": "వీడియోని మూసివేయి", "video.download": "Download file", "video.exit_fullscreen": "పూర్తి స్క్రీన్ నుండి నిష్క్రమించు", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 84faa0a1c109f1..d6d53d56c6990b 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -1,4 +1,16 @@ { + "about.blocks": "เซิร์ฟเวอร์ที่มีการควบคุม", + "about.contact": "ติดต่อ:", + "about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH", + "about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน", + "about.domain_blocks.preamble": "โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ", + "about.domain_blocks.silenced.explanation": "โดยทั่วไปคุณจะไม่เห็นโปรไฟล์และเนื้อหาจากเซิร์ฟเวอร์นี้ เว้นแต่คุณจะค้นหาเซิร์ฟเวอร์หรือเลือกรับเซิร์ฟเวอร์โดยการติดตามอย่างชัดเจน", + "about.domain_blocks.silenced.title": "จำกัดอยู่", + "about.domain_blocks.suspended.explanation": "จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์นี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์นี้เป็นไปไม่ได้", + "about.domain_blocks.suspended.title": "ระงับอยู่", + "about.not_available": "ไม่ได้ทำให้ข้อมูลนี้พร้อมใช้งานในเซิร์ฟเวอร์นี้", + "about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}", + "about.rules": "กฎของเซิร์ฟเวอร์", "account.account_note_header": "หมายเหตุ", "account.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ", "account.badges.bot": "บอต", @@ -7,13 +19,16 @@ "account.block_domain": "ปิดกั้นโดเมน {domain}", "account.blocked": "ปิดกั้นอยู่", "account.browse_more_on_origin_server": "เรียกดูเพิ่มเติมในโปรไฟล์ดั้งเดิม", - "account.cancel_follow_request": "ยกเลิกคำขอติดตาม", + "account.cancel_follow_request": "ถอนคำขอติดตาม", "account.direct": "ส่งข้อความโดยตรงถึง @{name}", "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.domain_blocked": "ปิดกั้นโดเมนอยู่", "account.edit_profile": "แก้ไขโปรไฟล์", "account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.endorse": "แนะนำในโปรไฟล์", + "account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}", + "account.featured_tags.last_status_never": "ไม่มีโพสต์", + "account.featured_tags.title": "แฮชแท็กที่แนะนำของ {name}", "account.follow": "ติดตาม", "account.followers": "ผู้ติดตาม", "account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}", "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร", "account.follows_you": "ติดตามคุณ", + "account.go_to_profile": "ไปยังโปรไฟล์", "account.hide_reblogs": "ซ่อนการดันจาก @{name}", - "account.joined": "เข้าร่วมเมื่อ {date}", + "account.joined_short": "เข้าร่วมเมื่อ", + "account.languages": "เปลี่ยนภาษาที่บอกรับ", "account.link_verified_on": "ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ {date}", "account.locked_info": "มีการตั้งสถานะความเป็นส่วนตัวของบัญชีนี้เป็นล็อคอยู่ เจ้าของตรวจทานผู้ที่สามารถติดตามเขาด้วยตนเอง", "account.media": "สื่อ", "account.mention": "กล่าวถึง @{name}", - "account.moved_to": "{name} ได้ย้ายไปยัง:", + "account.moved_to": "{name} ได้ระบุว่าบัญชีใหม่ของเขาในตอนนี้คือ:", "account.mute": "ซ่อน @{name}", "account.mute_notifications": "ซ่อนการแจ้งเตือนจาก @{name}", "account.muted": "ซ่อนอยู่", + "account.open_original_page": "เปิดหน้าดั้งเดิม", "account.posts": "โพสต์", "account.posts_with_replies": "โพสต์และการตอบกลับ", "account.report": "รายงาน @{name}", @@ -48,8 +66,8 @@ "account.unmute_notifications": "เลิกซ่อนการแจ้งเตือนจาก @{name}", "account.unmute_short": "เลิกซ่อน", "account_note.placeholder": "คลิกเพื่อเพิ่มหมายเหตุ", - "admin.dashboard.daily_retention": "อัตราการรักษาผู้ใช้ตามวันหลังจากลงทะเบียน", - "admin.dashboard.monthly_retention": "อัตราการรักษาผู้ใช้ตามเดือนหลังจากลงทะเบียน", + "admin.dashboard.daily_retention": "อัตราการเก็บรักษาผู้ใช้ตามวันหลังจากลงทะเบียน", + "admin.dashboard.monthly_retention": "อัตราการเก็บรักษาผู้ใช้ตามเดือนหลังจากลงทะเบียน", "admin.dashboard.retention.average": "ค่าเฉลี่ย", "admin.dashboard.retention.cohort": "เดือนที่ลงทะเบียน", "admin.dashboard.retention.cohort_size": "ผู้ใช้ใหม่", @@ -59,14 +77,27 @@ "alert.unexpected.title": "อุปส์!", "announcement.announcement": "ประกาศ", "attachments_list.unprocessed": "(ยังไม่ได้ประมวลผล)", + "audio.hide": "ซ่อนเสียง", "autosuggest_hashtag.per_week": "{count} ต่อสัปดาห์", "boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป", - "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้", + "bundle_column_error.copy_stacktrace": "คัดลอกรายงานข้อผิดพลาด", + "bundle_column_error.error.body": "ไม่สามารถแสดงผลหน้าที่ขอ ข้อผิดพลาดอาจเป็นเพราะข้อบกพร่องในโค้ดของเรา หรือปัญหาความเข้ากันได้ของเบราว์เซอร์", + "bundle_column_error.error.title": "โอ้ ไม่!", + "bundle_column_error.network.body": "มีข้อผิดพลาดขณะพยายามโหลดหน้านี้ นี่อาจเป็นเพราะปัญหาชั่วคราวกับการเชื่อมต่ออินเทอร์เน็ตของคุณหรือเซิร์ฟเวอร์นี้", + "bundle_column_error.network.title": "ข้อผิดพลาดเครือข่าย", "bundle_column_error.retry": "ลองอีกครั้ง", - "bundle_column_error.title": "ข้อผิดพลาดเครือข่าย", + "bundle_column_error.return": "กลับไปที่หน้าแรก", + "bundle_column_error.routing.body": "ไม่พบหน้าที่ขอ คุณแน่ใจหรือไม่ว่า URL ในแถบที่อยู่ถูกต้อง?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "ปิด", "bundle_modal_error.message": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้", "bundle_modal_error.retry": "ลองอีกครั้ง", + "closed_registrations.other_server_instructions": "เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ คุณสามารถสร้างบัญชีในเซิร์ฟเวอร์อื่นและยังคงโต้ตอบกับเซิร์ฟเวอร์นี้", + "closed_registrations_modal.description": "ไม่สามารถสร้างบัญชีใน {domain} ได้ในปัจจุบัน แต่โปรดจำไว้ว่าคุณไม่จำเป็นต้องมีบัญชีใน {domain} โดยเฉพาะเพื่อใช้ Mastodon", + "closed_registrations_modal.find_another_server": "ค้นหาเซิร์ฟเวอร์อื่น", + "closed_registrations_modal.preamble": "Mastodon เป็นแบบกระจายศูนย์ ดังนั้นไม่ว่าคุณจะสร้างบัญชีของคุณที่ใด คุณจะสามารถติดตามและโต้ตอบกับใครก็ตามในเซิร์ฟเวอร์นี้ คุณยังสามารถโฮสต์บัญชีด้วยตนเองได้อีกด้วย!", + "closed_registrations_modal.title": "การลงทะเบียนใน Mastodon", + "column.about": "เกี่ยวกับ", "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "column.bookmarks": "ที่คั่นหน้า", "column.community": "เส้นเวลาในเซิร์ฟเวอร์", @@ -95,8 +126,8 @@ "compose.language.change": "เปลี่ยนภาษา", "compose.language.search": "ค้นหาภาษา...", "compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม", - "compose_form.encryption_warning": "โพสต์ใน Mastodon ไม่ได้เข้ารหัสแบบต้นทางถึงปลายทาง อย่าแบ่งปันข้อมูลที่เป็นอันตรายใด ๆ ผ่าน Mastodon", - "compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาได้โดยแฮชแท็ก", + "compose_form.encryption_warning": "โพสต์ใน Mastodon ไม่ได้เข้ารหัสแบบต้นทางถึงปลายทาง อย่าแบ่งปันข้อมูลที่ละเอียดอ่อนใด ๆ ผ่าน Mastodon", + "compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากโพสต์ไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาได้โดยแฮชแท็ก", "compose_form.lock_disclaimer": "บัญชีของคุณไม่ได้ {locked} ใครก็ตามสามารถติดตามคุณเพื่อดูโพสต์สำหรับผู้ติดตามเท่านั้นของคุณ", "compose_form.lock_disclaimer.lock": "ล็อคอยู่", "compose_form.placeholder": "คุณกำลังคิดอะไรอยู่?", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "เอาตัวเลือกนี้ออก", "compose_form.poll.switch_to_multiple": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตหลายตัวเลือก", "compose_form.poll.switch_to_single": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตตัวเลือกเดี่ยว", - "compose_form.publish": "โพสต์", + "compose_form.publish": "เผยแพร่", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "บันทึกการเปลี่ยนแปลง", "compose_form.sensitive.hide": "{count, plural, other {ทำเครื่องหมายสื่อว่าละเอียดอ่อน}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "ปิดกั้นแล้วรายงาน", "confirmations.block.confirm": "ปิดกั้น", "confirmations.block.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดกั้น {name}?", + "confirmations.cancel_follow_request.confirm": "ถอนคำขอ", + "confirmations.cancel_follow_request.message": "คุณแน่ใจหรือไม่ว่าต้องการถอนคำขอเพื่อติดตาม {name} ของคุณ?", "confirmations.delete.confirm": "ลบ", "confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้?", "confirmations.delete_list.confirm": "ลบ", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว", "conversation.open": "ดูการสนทนา", "conversation.with": "กับ {names}", + "copypaste.copied": "คัดลอกแล้ว", + "copypaste.copy": "คัดลอก", "directory.federated": "จากจักรวาลสหพันธ์ที่รู้จัก", "directory.local": "จาก {domain} เท่านั้น", "directory.new_arrivals": "มาใหม่", "directory.recently_active": "ใช้งานล่าสุด", + "disabled_account_banner.account_settings": "การตั้งค่าบัญชี", + "disabled_account_banner.text": "มีการปิดใช้งานบัญชีของคุณ {disabledAccount} ในปัจจุบัน", + "dismissable_banner.community_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนที่บัญชีได้รับการโฮสต์โดย {domain}", + "dismissable_banner.dismiss": "ปิด", + "dismissable_banner.explore_links": "เรื่องข่าวเหล่านี้กำลังได้รับการพูดถึงโดยผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ในตอนนี้", + "dismissable_banner.explore_statuses": "โพสต์เหล่านี้จากเซิร์ฟเวอร์นี้และอื่น ๆ ในเครือข่ายแบบกระจายศูนย์กำลังได้รับความสนใจในเซิร์ฟเวอร์นี้ในตอนนี้", + "dismissable_banner.explore_tags": "แฮชแท็กเหล่านี้กำลังได้รับความสนใจในหมู่ผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ในตอนนี้", + "dismissable_banner.public_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนในเซิร์ฟเวอร์นี้และอื่น ๆ ของเครือข่ายแบบกระจายศูนย์ที่เซิร์ฟเวอร์นี้รู้เกี่ยวกับ", "embed.instructions": "ฝังโพสต์นี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง", "embed.preview": "นี่คือลักษณะที่จะปรากฏ:", "emoji_button.activity": "กิจกรรม", @@ -196,21 +239,37 @@ "explore.trending_links": "ข่าว", "explore.trending_statuses": "โพสต์", "explore.trending_tags": "แฮชแท็ก", + "filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่ได้นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง", + "filter_modal.added.context_mismatch_title": "บริบทไม่ตรงกัน!", + "filter_modal.added.expired_explanation": "หมวดหมู่ตัวกรองนี้หมดอายุแล้ว คุณจะต้องเปลี่ยนวันหมดอายุสำหรับหมวดหมู่เพื่อนำไปใช้", + "filter_modal.added.expired_title": "ตัวกรองหมดอายุแล้ว!", + "filter_modal.added.review_and_configure": "เพื่อตรวจทานและกำหนดค่าหมวดหมู่ตัวกรองนี้เพิ่มเติม ไปยัง {settings_link}", + "filter_modal.added.review_and_configure_title": "การตั้งค่าตัวกรอง", + "filter_modal.added.settings_link": "หน้าการตั้งค่า", + "filter_modal.added.short_explanation": "เพิ่มโพสต์นี้ไปยังหมวดหมู่ตัวกรองดังต่อไปนี้แล้ว: {title}", + "filter_modal.added.title": "เพิ่มตัวกรองแล้ว!", + "filter_modal.select_filter.context_mismatch": "ไม่นำไปใช้กับบริบทนี้", + "filter_modal.select_filter.expired": "หมดอายุแล้ว", + "filter_modal.select_filter.prompt_new": "หมวดหมู่ใหม่: {name}", + "filter_modal.select_filter.search": "ค้นหาหรือสร้าง", + "filter_modal.select_filter.subtitle": "ใช้หมวดหมู่ที่มีอยู่หรือสร้างหมวดหมู่ใหม่", + "filter_modal.select_filter.title": "กรองโพสต์นี้", + "filter_modal.title.status": "กรองโพสต์", "follow_recommendations.done": "เสร็จสิ้น", "follow_recommendations.heading": "ติดตามผู้คนที่คุณต้องการเห็นโพสต์! นี่คือข้อเสนอแนะบางส่วน", - "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", + "follow_recommendations.lead": "โพสต์จากผู้คนที่คุณติดตามจะแสดงตามลำดับเวลาในฟีดหน้าแรกของคุณ อย่ากลัวที่จะทำผิดพลาด คุณสามารถเลิกติดตามผู้คนได้อย่างง่ายดายเมื่อใดก็ตาม!", "follow_request.authorize": "อนุญาต", "follow_request.reject": "ปฏิเสธ", "follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง", + "footer.about": "เกี่ยวกับ", + "footer.directory": "ไดเรกทอรีโปรไฟล์", + "footer.get_app": "รับแอป", + "footer.invite": "เชิญผู้คน", + "footer.keyboard_shortcuts": "แป้นพิมพ์ลัด", + "footer.privacy_policy": "นโยบายความเป็นส่วนตัว", + "footer.source_code": "ดูโค้ดต้นฉบับ", "generic.saved": "บันทึกแล้ว", - "getting_started.developers": "นักพัฒนา", - "getting_started.directory": "ไดเรกทอรีโปรไฟล์", - "getting_started.documentation": "เอกสารประกอบ", "getting_started.heading": "เริ่มต้นใช้งาน", - "getting_started.invite": "เชิญผู้คน", - "getting_started.open_source_notice": "Mastodon เป็นซอฟต์แวร์โอเพนซอร์ส คุณสามารถมีส่วนร่วมหรือรายงานปัญหาได้ใน GitHub ที่ {github}", - "getting_started.security": "การตั้งค่าบัญชี", - "getting_started.terms": "เงื่อนไขการให้บริการ", "hashtag.column_header.tag_mode.all": "และ {additional}", "hashtag.column_header.tag_mode.any": "หรือ {additional}", "hashtag.column_header.tag_mode.none": "โดยไม่มี {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "ใดก็ตามนี้", "hashtag.column_settings.tag_mode.none": "ไม่ใช่ทั้งหมดนี้", "hashtag.column_settings.tag_toggle": "รวมแท็กเพิ่มเติมสำหรับคอลัมน์นี้", + "hashtag.follow": "ติดตามแฮชแท็ก", + "hashtag.unfollow": "เลิกติดตามแฮชแท็ก", "home.column_settings.basic": "พื้นฐาน", "home.column_settings.show_reblogs": "แสดงการดัน", "home.column_settings.show_replies": "แสดงการตอบกลับ", "home.hide_announcements": "ซ่อนประกาศ", "home.show_announcements": "แสดงประกาศ", + "interaction_modal.description.favourite": "เมื่อมีบัญชีใน Mastodon คุณสามารถชื่นชอบโพสต์นี้เพื่อให้ผู้สร้างทราบว่าคุณชื่นชมโพสต์และบันทึกโพสต์ไว้สำหรับภายหลัง", + "interaction_modal.description.follow": "เมื่อมีบัญชีใน Mastodon คุณสามารถติดตาม {name} เพื่อรับโพสต์ของเขาในฟีดหน้าแรกของคุณ", + "interaction_modal.description.reblog": "เมื่อมีบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแบ่งปันโพสต์กับผู้ติดตามของคุณเอง", + "interaction_modal.description.reply": "เมื่อมีบัญชีใน Mastodon คุณสามารถตอบกลับโพสต์นี้", + "interaction_modal.on_another_server": "ในเซิร์ฟเวอร์อื่น", + "interaction_modal.on_this_server": "ในเซิร์ฟเวอร์นี้", + "interaction_modal.other_server_instructions": "คัดลอกแล้ววาง URL นี้ลงในช่องค้นหาของแอป Mastodon โปรดของคุณหรือส่วนติดต่อเว็บของเซิร์ฟเวอร์ Mastodon ของคุณ", + "interaction_modal.preamble": "เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ คุณสามารถใช้บัญชีที่มีอยู่ของคุณที่ได้รับการโฮสต์โดยเซิร์ฟเวอร์ Mastodon อื่นหรือแพลตฟอร์มที่เข้ากันได้หากคุณไม่มีบัญชีในเซิร์ฟเวอร์นี้", + "interaction_modal.title.favourite": "ชื่นชอบโพสต์ของ {name}", + "interaction_modal.title.follow": "ติดตาม {name}", + "interaction_modal.title.reblog": "ดันโพสต์ของ {name}", + "interaction_modal.title.reply": "ตอบกลับโพสต์ของ {name}", "intervals.full.days": "{number, plural, other {# วัน}}", "intervals.full.hours": "{number, plural, other {# ชั่วโมง}}", "intervals.full.minutes": "{number, plural, other {# นาที}}", @@ -268,7 +341,7 @@ "lightbox.next": "ถัดไป", "lightbox.previous": "ก่อนหน้า", "limited_account_hint.action": "แสดงโปรไฟล์ต่อไป", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "มีการซ่อนโปรไฟล์นี้โดยผู้ควบคุมของ {domain}", "lists.account.add": "เพิ่มไปยังรายการ", "lists.account.remove": "เอาออกจากรายการ", "lists.delete": "ลบรายการ", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, other {ซ่อนภาพ}}", "missing_indicator.label": "ไม่พบ", "missing_indicator.sublabel": "ไม่พบทรัพยากรนี้", + "moved_to_account_banner.text": "มีการปิดใช้งานบัญชีของคุณ {disabledAccount} ในปัจจุบันเนื่องจากคุณได้ย้ายไปยัง {movedToAccount}", "mute_modal.duration": "ระยะเวลา", "mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?", "mute_modal.indefinite": "ไม่มีกำหนด", - "navigation_bar.apps": "แอปมือถือ", + "navigation_bar.about": "เกี่ยวกับ", "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "navigation_bar.bookmarks": "ที่คั่นหน้า", "navigation_bar.community_timeline": "เส้นเวลาในเซิร์ฟเวอร์", @@ -304,8 +378,6 @@ "navigation_bar.filters": "คำที่ซ่อนอยู่", "navigation_bar.follow_requests": "คำขอติดตาม", "navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม", - "navigation_bar.info": "เกี่ยวกับเซิร์ฟเวอร์นี้", - "navigation_bar.keyboard_shortcuts": "ปุ่มลัด", "navigation_bar.lists": "รายการ", "navigation_bar.logout": "ออกจากระบบ", "navigation_bar.mutes": "ผู้ใช้ที่ซ่อนอยู่", @@ -313,7 +385,10 @@ "navigation_bar.pins": "โพสต์ที่ปักหมุด", "navigation_bar.preferences": "การกำหนดลักษณะ", "navigation_bar.public_timeline": "เส้นเวลาที่ติดต่อกับภายนอก", + "navigation_bar.search": "ค้นหา", "navigation_bar.security": "ความปลอดภัย", + "not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องลงชื่อเข้าเพื่อเข้าถึงทรัพยากรนี้", + "notification.admin.report": "{name} ได้รายงาน {target}", "notification.admin.sign_up": "{name} ได้ลงทะเบียน", "notification.favourite": "{name} ได้ชื่นชอบโพสต์ของคุณ", "notification.follow": "{name} ได้ติดตามคุณ", @@ -326,6 +401,7 @@ "notification.update": "{name} ได้แก้ไขโพสต์", "notifications.clear": "ล้างการแจ้งเตือน", "notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?", + "notifications.column_settings.admin.report": "รายงานใหม่:", "notifications.column_settings.admin.sign_up": "การลงทะเบียนใหม่:", "notifications.column_settings.alert": "การแจ้งเตือนบนเดสก์ท็อป", "notifications.column_settings.favourite": "รายการโปรด:", @@ -358,7 +434,7 @@ "notifications.permission_denied_alert": "ไม่สามารถเปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป เนื่องจากมีการปฏิเสธสิทธิอนุญาตเบราว์เซอร์ก่อนหน้านี้", "notifications.permission_required": "การแจ้งเตือนบนเดสก์ท็อปไม่พร้อมใช้งานเนื่องจากไม่ได้ให้สิทธิอนุญาตที่จำเป็น", "notifications_permission_banner.enable": "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป", - "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", + "notifications_permission_banner.how_to_control": "เพื่อรับการแจ้งเตือนเมื่อ Mastodon ไม่ได้เปิด เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป คุณสามารถควบคุมชนิดของการโต้ตอบที่สร้างการแจ้งเตือนบนเดสก์ท็อปได้อย่างแม่นยำผ่านปุ่ม {icon} ด้านบนเมื่อเปิดใช้งานการแจ้งเตือน", "notifications_permission_banner.title": "ไม่พลาดสิ่งใด", "picture_in_picture.restore": "นำกลับมา", "poll.closed": "ปิดแล้ว", @@ -379,6 +455,8 @@ "privacy.public.short": "สาธารณะ", "privacy.unlisted.long": "ปรากฏแก่ทั้งหมด แต่เลือกไม่รับคุณลักษณะการค้นพบ", "privacy.unlisted.short": "ไม่อยู่ในรายการ", + "privacy_policy.last_updated": "อัปเดตล่าสุดเมื่อ {date}", + "privacy_policy.title": "นโยบายความเป็นส่วนตัว", "refresh": "รีเฟรช", "regeneration_indicator.label": "กำลังโหลด…", "regeneration_indicator.sublabel": "กำลังเตรียมฟีดหน้าแรกของคุณ!", @@ -418,7 +496,7 @@ "report.reasons.spam": "โพสต์เป็นสแปม", "report.reasons.spam_description": "ลิงก์ที่เป็นอันตราย, การมีส่วนร่วมปลอม หรือการตอบกลับซ้ำ ๆ", "report.reasons.violation": "โพสต์ละเมิดกฎของเซิร์ฟเวอร์", - "report.reasons.violation_description": "คุณทราบว่าโพสต์แหกกฎเฉพาะ", + "report.reasons.violation_description": "คุณตระหนักว่าโพสต์แหกกฎเฉพาะ", "report.rules.subtitle": "เลือกทั้งหมดที่นำไปใช้", "report.rules.title": "กำลังละเมิดกฎใด?", "report.statuses.subtitle": "เลือกทั้งหมดที่นำไปใช้", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "ขอบคุณสำหรับการรายงาน เราจะตรวจสอบสิ่งนี้", "report.unfollow": "เลิกติดตาม @{name}", "report.unfollow_explanation": "คุณกำลังติดตามบัญชีนี้ เพื่อไม่ให้เห็นโพสต์ของเขาในฟีดหน้าแรกของคุณอีกต่อไป เลิกติดตามเขา", + "report_notification.attached_statuses": "{count, plural, other {{count} โพสต์}}ที่แนบมา", + "report_notification.categories.other": "อื่น ๆ", + "report_notification.categories.spam": "สแปม", + "report_notification.categories.violation": "การละเมิดกฎ", + "report_notification.open": "รายงานที่เปิด", "search.placeholder": "ค้นหา", + "search.search_or_paste": "ค้นหาหรือวาง URL", "search_popout.search_format": "รูปแบบการค้นหาขั้นสูง", "search_popout.tips.full_text": "ข้อความแบบง่ายส่งคืนโพสต์ที่คุณได้เขียน ชื่นชอบ ดัน หรือได้รับการกล่าวถึง ตลอดจนชื่อผู้ใช้, ชื่อที่แสดง และแฮชแท็กที่ตรงกัน", "search_popout.tips.hashtag": "แฮชแท็ก", @@ -444,7 +528,17 @@ "search_results.nothing_found": "ไม่พบสิ่งใดสำหรับคำค้นหาเหล่านี้", "search_results.statuses": "โพสต์", "search_results.statuses_fts_disabled": "ไม่มีการเปิดใช้งานการค้นหาโพสต์โดยเนื้อหาของโพสต์ในเซิร์ฟเวอร์ Mastodon นี้", + "search_results.title": "ค้นหาสำหรับ {q}", "search_results.total": "{count, number} {count, plural, other {ผลลัพธ์}}", + "server_banner.about_active_users": "ผู้คนที่ใช้เซิร์ฟเวอร์นี้ในระหว่าง 30 วันที่ผ่านมา (ผู้ใช้ที่ใช้งานอยู่รายเดือน)", + "server_banner.active_users": "ผู้ใช้ที่ใช้งานอยู่", + "server_banner.administered_by": "ดูแลโดย:", + "server_banner.introduction": "{domain} เป็นส่วนหนึ่งของเครือข่ายสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}", + "server_banner.learn_more": "เรียนรู้เพิ่มเติม", + "server_banner.server_stats": "สถิติเซิร์ฟเวอร์:", + "sign_in_banner.create_account": "สร้างบัญชี", + "sign_in_banner.sign_in": "ลงชื่อเข้า", + "sign_in_banner.text": "ลงชื่อเข้าเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แบ่งปัน และตอบกลับโพสต์ หรือโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น", "status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}", "status.admin_status": "เปิดโพสต์นี้ในส่วนติดต่อการควบคุม", "status.block": "ปิดกั้น @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "แก้ไข {count, plural, other {{count} ครั้ง}}", "status.embed": "ฝัง", "status.favourite": "ชื่นชอบ", + "status.filter": "กรองโพสต์นี้", "status.filtered": "กรองอยู่", + "status.hide": "ซ่อนโพสต์", "status.history.created": "{name} ได้สร้างเมื่อ {date}", "status.history.edited": "{name} ได้แก้ไขเมื่อ {date}", "status.load_more": "โหลดเพิ่มเติม", @@ -479,26 +575,32 @@ "status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่", "status.redraft": "ลบแล้วร่างใหม่", "status.remove_bookmark": "เอาที่คั่นหน้าออก", + "status.replied_to": "ตอบกลับ {name}", "status.reply": "ตอบกลับ", "status.replyAll": "ตอบกลับกระทู้", "status.report": "รายงาน @{name}", "status.sensitive_warning": "เนื้อหาที่ละเอียดอ่อน", "status.share": "แบ่งปัน", + "status.show_filter_reason": "แสดงต่อไป", "status.show_less": "แสดงน้อยลง", "status.show_less_all": "แสดงน้อยลงทั้งหมด", "status.show_more": "แสดงเพิ่มเติม", "status.show_more_all": "แสดงเพิ่มเติมทั้งหมด", - "status.show_thread": "แสดงกระทู้", + "status.show_original": "แสดงดั้งเดิม", + "status.translate": "แปล", + "status.translated_from_with": "แปลจาก {lang} โดยใช้ {provider}", "status.uncached_media_warning": "ไม่พร้อมใช้งาน", "status.unmute_conversation": "เลิกซ่อนการสนทนา", "status.unpin": "ถอนหมุดจากโปรไฟล์", + "subscribed_languages.lead": "เฉพาะโพสต์ในภาษาที่เลือกเท่านั้นที่จะปรากฏในเส้นเวลาหน้าแรกและรายการหลังจากการเปลี่ยนแปลง เลือก ไม่มี เพื่อรับโพสต์ในภาษาทั้งหมด", + "subscribed_languages.save": "บันทึกการเปลี่ยนแปลง", + "subscribed_languages.target": "เปลี่ยนภาษาที่บอกรับสำหรับ {target}", "suggestions.dismiss": "ปิดข้อเสนอแนะ", "suggestions.header": "คุณอาจสนใจ…", "tabs_bar.federated_timeline": "ที่ติดต่อกับภายนอก", "tabs_bar.home": "หน้าแรก", "tabs_bar.local_timeline": "ในเซิร์ฟเวอร์", "tabs_bar.notifications": "การแจ้งเตือน", - "tabs_bar.search": "ค้นหา", "time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}", "time_remaining.hours": "เหลืออีก {number, plural, other {# ชั่วโมง}}", "time_remaining.minutes": "เหลืออีก {number, plural, other {# นาที}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "ผู้ติดตาม", "timeline_hint.resources.follows": "การติดตาม", "timeline_hint.resources.statuses": "โพสต์ที่เก่ากว่า", - "trends.counter_by_accounts": "{count, plural, other {{counter} คน}}กำลังพูดคุย", + "trends.counter_by_accounts": "{count, plural, other {{counter} คน}}ใน {days, plural, other {{days} วัน}}ที่ผ่านมา", "trends.trending_now": "กำลังนิยม", "ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon", "units.short.billion": "{count} พันล้าน", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "กำลังเตรียม OCR…", "upload_modal.preview_label": "ตัวอย่าง ({ratio})", "upload_progress.label": "กำลังอัปโหลด...", + "upload_progress.processing": "กำลังประมวลผล…", "video.close": "ปิดวิดีโอ", "video.download": "ดาวน์โหลดไฟล์", "video.exit_fullscreen": "ออกจากเต็มหน้าจอ", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index f98574e11a2c1a..9dd5aef767ba12 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -1,4 +1,16 @@ { + "about.blocks": "Denetlenen sunucular", + "about.contact": "İletişim:", + "about.disclaimer": "Mastodon özgür, açık kaynak bir yazılımdır ve Mastodon gGmbH şirketinin ticari markasıdır.", + "about.domain_blocks.no_reason_available": "Gerekçe mevcut değil", + "about.domain_blocks.preamble": "Mastodon, genel olarak fediverse'teki herhangi bir sunucudan içerik görüntülemenize ve kullanıcılarıyla etkileşim kurmanıza izin verir. Bunlar, bu sunucuda yapılmış olan istisnalardır.", + "about.domain_blocks.silenced.explanation": "Açık bir şekilde aramadığınız veya takip ederek abone olmadığınız sürece, bu sunucudaki profilleri veya içerikleri genelde göremeyeceksiniz.", + "about.domain_blocks.silenced.title": "Sınırlı", + "about.domain_blocks.suspended.explanation": "Bu sunucudaki hiçbir veri işlenmeyecek, saklanmayacak veya değiş tokuş edilmeyecektir, dolayısıyla bu sunucudaki kullanıcılarla herhangi bir etkileşim veya iletişim imkansız olacaktır.", + "about.domain_blocks.suspended.title": "Askıya alındı", + "about.not_available": "Bu sunucuda bu bilgi kullanıma sunulmadı.", + "about.powered_by": "{mastodon} destekli merkeziyetsiz sosyal medya", + "about.rules": "Sunucu kuralları", "account.account_note_header": "Not", "account.add_or_remove_from_list": "Listelere ekle veya kaldır", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} alan adını engelle", "account.blocked": "Engellendi", "account.browse_more_on_origin_server": "Orijinal profilde daha fazlasına göz atın", - "account.cancel_follow_request": "Takip isteğini iptal et", + "account.cancel_follow_request": "Takip isteğini geri çek", "account.direct": "@{name} adlı kişiye mesaj gönder", "account.disable_notifications": "@{name} kişisinin gönderi bildirimlerini kapat", "account.domain_blocked": "Alan adı engellendi", "account.edit_profile": "Profili düzenle", "account.enable_notifications": "@{name} kişisinin gönderi bildirimlerini aç", "account.endorse": "Profilimde öne çıkar", + "account.featured_tags.last_status_at": "Son gönderinin tarihi {date}", + "account.featured_tags.last_status_never": "Gönderi yok", + "account.featured_tags.title": "{name} kişisinin öne çıkan etiketleri", "account.follow": "Takip et", "account.followers": "Takipçi", "account.followers.empty": "Henüz kimse bu kullanıcıyı takip etmiyor.", @@ -22,24 +37,27 @@ "account.following_counter": "{count, plural, one {{counter} Takip Edilen} other {{counter} Takip Edilen}}", "account.follows.empty": "Bu kullanıcı henüz kimseyi takip etmiyor.", "account.follows_you": "Seni takip ediyor", + "account.go_to_profile": "Profile git", "account.hide_reblogs": "@{name} kişisinin boostlarını gizle", - "account.joined": "{date} tarihinde katıldı", - "account.link_verified_on": "Bu bağlantının sahipliği {date} tarihinde kontrol edildi", + "account.joined_short": "Katıldı", + "account.languages": "Abone olunan dilleri değiştir", + "account.link_verified_on": "Bu bağlantının sahipliği {date} tarihinde denetlendi", "account.locked_info": "Bu hesabın gizlilik durumu gizli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini manuel olarak onaylıyor.", "account.media": "Medya", - "account.mention": "@{name} kişisinden bahset", - "account.moved_to": "{name} şuraya taşındı:", - "account.mute": "@{name} adlı kişiyi sessize al", - "account.mute_notifications": "@{name} adlı kişinin bildirimlerini kapat", + "account.mention": "@{name}'i an", + "account.moved_to": "{name} yeni hesabının artık şu olduğunu belirtti:", + "account.mute": "@{name}'i sustur", + "account.mute_notifications": "@{name}'in bildirimlerini sustur", "account.muted": "Susturuldu", + "account.open_original_page": "Asıl sayfayı aç", "account.posts": "Gönderiler", "account.posts_with_replies": "Gönderiler ve yanıtlar", - "account.report": "@{name} adlı kişiyi bildir", + "account.report": "@{name}'i şikayet et", "account.requested": "Onay bekleniyor. Takip isteğini iptal etmek için tıklayın", - "account.share": "@{name} adlı kişinin profilini paylaş", + "account.share": "@{name}'in profilini paylaş", "account.show_reblogs": "@{name} kişisinin boostlarını göster", "account.statuses_counter": "{count, plural, one {{counter} Gönderi} other {{counter} Gönderi}}", - "account.unblock": "@{name} adlı kişinin engelini kaldır", + "account.unblock": "@{name}'in engelini kaldır", "account.unblock_domain": "{domain} alan adının engelini kaldır", "account.unblock_short": "Engeli kaldır", "account.unendorse": "Profilimde öne çıkarma", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Hay aksi!", "announcement.announcement": "Duyuru", "attachments_list.unprocessed": "(işlenmemiş)", + "audio.hide": "Sesi gizle", "autosuggest_hashtag.per_week": "Haftada {count}", "boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsin", - "bundle_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.", + "bundle_column_error.copy_stacktrace": "Hata raporunu kopyala", + "bundle_column_error.error.body": "İstenen sayfa gösterilemiyor. Bu durum kodumuzdaki bir hatadan veya tarayıcı uyum sorunundan kaynaklanıyor olabilir.", + "bundle_column_error.error.title": "Ah, hayır!", + "bundle_column_error.network.body": "Sayfayı yüklemeye çalışırken bir hata oluştu. Bu durum internet bağlantınızdaki veya bu sunucudaki geçici bir sorundan kaynaklanıyor olabilir.", + "bundle_column_error.network.title": "Ağ hatası", "bundle_column_error.retry": "Tekrar deneyin", - "bundle_column_error.title": "Ağ hatası", + "bundle_column_error.return": "Anasayfaya geri dön", + "bundle_column_error.routing.body": "İstenen sayfa bulunamadı. Adres çubuğundaki URL'nin doğru olduğundan emin misiniz?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Kapat", "bundle_modal_error.message": "Bu bileşen yüklenirken bir şeyler ters gitti.", "bundle_modal_error.retry": "Tekrar deneyin", + "closed_registrations.other_server_instructions": "Mastodon ademi merkeziyetçi olduğu için, başka bir sunucuda hesap oluşturabilir ve bu sunuyla etkileşebilirsiniz.", + "closed_registrations_modal.description": "{domain} adresinde hesap oluşturmak şu an mümkün değil ancak unutmayın ki Mastodon kullanmak için özellikle {domain} adresinde hesap oluşturmanız gerekmez.", + "closed_registrations_modal.find_another_server": "Başka sunucu bul", + "closed_registrations_modal.preamble": "Mastodon ademi merkeziyetçi, bu yüzden hesabınızı nerede oluşturursanız oluşturun, bu sunucudaki herhangi birini takip edebilecek veya onunla etkileşebileceksiniz. Kendiniz bile sunabilirsiniz!", + "closed_registrations_modal.title": "Mastodon'a kayıt olmak", + "column.about": "Hakkında", "column.blocks": "Engellenen kullanıcılar", "column.bookmarks": "Yer İmleri", "column.community": "Yerel zaman tüneli", @@ -95,7 +126,7 @@ "compose.language.change": "Dili değiştir", "compose.language.search": "Dilleri ara...", "compose_form.direct_message_warning_learn_more": "Daha fazla bilgi edinin", - "compose_form.encryption_warning": "Mastodondaki gönderiler uçtan uca şifrelemeli değildir. Mastodon üzerinden hassas olabilecek bir bilginizi paylaşmayın.", + "compose_form.encryption_warning": "Mastodon gönderileri uçtan uca şifrelemeli değildir. Hassas olabilecek herhangi bir bilgiyi Mastodon'da paylaşmayın.", "compose_form.hashtag_warning": "Bu gönderi liste dışı olduğu için hiç bir etikette yer almayacak. Sadece herkese açık gönderiler etiketlerde bulunabilir.", "compose_form.lock_disclaimer": "Hesabın {locked} değil. Yalnızca takipçilere özel gönderilerini görüntülemek için herkes seni takip edebilir.", "compose_form.lock_disclaimer.lock": "kilitli", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Bu seçeneği kaldır", "compose_form.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir", "compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir", - "compose_form.publish": "Tootla", + "compose_form.publish": "Yayınla", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Değişiklikleri kaydet", "compose_form.sensitive.hide": "{count, plural, one {Medyayı hassas olarak işaretle} other {Medyayı hassas olarak işaretle}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Engelle ve Bildir", "confirmations.block.confirm": "Engelle", "confirmations.block.message": "{name} adlı kullanıcıyı engellemek istediğinden emin misin?", + "confirmations.cancel_follow_request.confirm": "İsteği geri çek", + "confirmations.cancel_follow_request.message": "{name} kişisini takip etme isteğini geri çekmek istediğinden emin misin?", "confirmations.delete.confirm": "Sil", "confirmations.delete.message": "Bu tootu silmek istediğinden emin misin?", "confirmations.delete_list.confirm": "Sil", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Okundu olarak işaretle", "conversation.open": "Sohbeti görüntüle", "conversation.with": "{names} ile", + "copypaste.copied": "Kopyalandı", + "copypaste.copy": "Kopyala", "directory.federated": "Bilinen fediverse'lerden", "directory.local": "Yalnızca {domain} adresinden", "directory.new_arrivals": "Yeni gelenler", "directory.recently_active": "Son zamanlarda aktif", + "disabled_account_banner.account_settings": "Hesap ayarları", + "disabled_account_banner.text": "{disabledAccount} hesabınız şu an devre dışı.", + "dismissable_banner.community_timeline": "Bunlar, {domain} sunucusunda hesabı olanların yakın zamandaki herkese açık gönderileridir.", + "dismissable_banner.dismiss": "Yoksay", + "dismissable_banner.explore_links": "Bunlar, ademi merkeziyetçi ağda bu ve diğer sunucularda şimdilerde insanların hakkında konuştuğu haber öyküleridir.", + "dismissable_banner.explore_statuses": "Ademi merkeziyetçi ağın bu ve diğer sunucularındaki bu gönderiler, mevcut sunucuda şimdilerde ilgi çekiyorlar.", + "dismissable_banner.explore_tags": "Bu etiketler, ademi merkeziyetçi ağdaki bu ve diğer sunuculardaki insanların şimdilerde ilgisini çekiyor.", + "dismissable_banner.public_timeline": "Bunlar, ademi merkeziyetçi ağdaki bu ve diğer sunuculardaki insanların son zamanlardaki herkese açık gönderilerinden bu sunucunun haberdar olduklarıdır.", "embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.", "embed.preview": "İşte nasıl görüneceği:", "emoji_button.activity": "Aktivite", @@ -196,21 +239,37 @@ "explore.trending_links": "Haberler", "explore.trending_statuses": "Gönderiler", "explore.trending_tags": "Etiketler", + "filter_modal.added.context_mismatch_explanation": "Bu filtre kategorisi, bu gönderide eriştiğin bağlama uymuyor. Eğer gönderinin bu bağlamda da filtrelenmesini istiyorsanız, filtreyi düzenlemeniz gerekiyor.", + "filter_modal.added.context_mismatch_title": "Bağlam uyumsuzluğu!", + "filter_modal.added.expired_explanation": "Bu filtre kategorisinin süresi dolmuş, filtreyi uygulamak için bitiş tarihini değiştirmeniz gerekiyor.", + "filter_modal.added.expired_title": "Süresi dolmuş filtre!", + "filter_modal.added.review_and_configure": "Bu filtre kategorisini gözden geçirmek ve daha ayrıntılı bir şekilde yapılandırmak için {settings_link} adresine gidin.", + "filter_modal.added.review_and_configure_title": "Filtre ayarları", + "filter_modal.added.settings_link": "ayarlar sayfası", + "filter_modal.added.short_explanation": "Bu gönderi şu filtre kategorisine eklendi: {title}.", + "filter_modal.added.title": "Filtre eklendi!", + "filter_modal.select_filter.context_mismatch": "bu bağlama uymuyor", + "filter_modal.select_filter.expired": "süresi dolmuş", + "filter_modal.select_filter.prompt_new": "Yeni kategori: {name}", + "filter_modal.select_filter.search": "Ara veya oluştur", + "filter_modal.select_filter.subtitle": "Mevcut bir kategoriyi kullan veya yeni bir tane oluştur", + "filter_modal.select_filter.title": "Bu gönderiyi filtrele", + "filter_modal.title.status": "Bir gönderi filtrele", "follow_recommendations.done": "Tamam", "follow_recommendations.heading": "Gönderilerini görmek isteyeceğiniz kişileri takip edin! Burada bazı öneriler bulabilirsiniz.", "follow_recommendations.lead": "Takip ettiğiniz kişilerin gönderileri anasayfa akışınızda kronolojik sırada görünmeye devam edecek. Hata yapmaktan çekinmeyin, kişileri istediğiniz anda kolayca takipten çıkabilirsiniz!", "follow_request.authorize": "İzin Ver", "follow_request.reject": "Reddet", "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa bile, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.", + "footer.about": "Hakkında", + "footer.directory": "Profil dizini", + "footer.get_app": "Uygulamayı indir", + "footer.invite": "İnsanları davet et", + "footer.keyboard_shortcuts": "Klavye kısayolları", + "footer.privacy_policy": "Gizlilik politikası", + "footer.source_code": "Kaynak kodu görüntüle", "generic.saved": "Kaydedildi", - "getting_started.developers": "Geliştiriciler", - "getting_started.directory": "Profil Dizini", - "getting_started.documentation": "Belgeler", "getting_started.heading": "Başlarken", - "getting_started.invite": "İnsanları davet et", - "getting_started.open_source_notice": "Mastodon açık kaynaklı bir yazılımdır. GitHub'taki {github} üzerinden katkıda bulunabilir veya sorunları bildirebilirsiniz.", - "getting_started.security": "Hesap ayarları", - "getting_started.terms": "Kullanım şartları", "hashtag.column_header.tag_mode.all": "ve {additional}", "hashtag.column_header.tag_mode.any": "ya da {additional}", "hashtag.column_header.tag_mode.none": "{additional} olmadan", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Herhangi biri", "hashtag.column_settings.tag_mode.none": "Bunların hiçbiri", "hashtag.column_settings.tag_toggle": "Bu sütundaki ek etiketleri içer", + "hashtag.follow": "Etiketi takip et", + "hashtag.unfollow": "Etiketi takibi bırak", "home.column_settings.basic": "Temel", "home.column_settings.show_reblogs": "Boostları göster", "home.column_settings.show_replies": "Yanıtları göster", "home.hide_announcements": "Duyuruları gizle", "home.show_announcements": "Duyuruları göster", + "interaction_modal.description.favourite": "Mastodon'da bir hesapla, bu gönderiyi, yazarın onu beğendiğinizi bilmesi ve daha sonrası saklamak için beğenebilirsiniz.", + "interaction_modal.description.follow": "Mastodon'daki bir hesapla, {name} kişisini, ana akışınızdaki gönderilerini görmek üzere takip edebilirsiniz.", + "interaction_modal.description.reblog": "Mastodon'daki bir hesapla, bu gönderiyi takipçilerinizle paylaşmak için yükseltebilirsiniz.", + "interaction_modal.description.reply": "Mastodon'daki bir hesapla, bu gönderiye yanıt verebilirsiniz.", + "interaction_modal.on_another_server": "Farklı bir sunucuda", + "interaction_modal.on_this_server": "Bu sunucuda", + "interaction_modal.other_server_instructions": "Bu URL'yi kopyalayın ve Mastodon sunucunuzun web arayüzündeki veya gözde Mastodon uygulamanızdaki arama sahasına yapıştırın.", + "interaction_modal.preamble": "Mastodon ademi merkeziyetçi olduğu için, bu sunucuda bir hesabınız yoksa bile başka bir Mastodon sunucusu veya uyumlu bir platformda barındırılan mevcut hesabınızı kullanabilirsiniz.", + "interaction_modal.title.favourite": "{name} kişisinin gönderisini favorilerine ekle", + "interaction_modal.title.follow": "{name} kişisini takip et", + "interaction_modal.title.reblog": "{name} kişisinin gönderisini yükselt", + "interaction_modal.title.reply": "{name} kişisinin gönderisine yanıt ver", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}", @@ -237,8 +310,8 @@ "keyboard_shortcuts.direct": "doğrudan iletiler sütununu açmak için", "keyboard_shortcuts.down": "listede aşağıya inmek için", "keyboard_shortcuts.enter": "gönderiyi aç", - "keyboard_shortcuts.favourite": "gönderiyi favorilerine ekle", - "keyboard_shortcuts.favourites": "favoriler listesini açmak için", + "keyboard_shortcuts.favourite": "Gönderiyi favorilerine ekle", + "keyboard_shortcuts.favourites": "Favoriler listesini aç", "keyboard_shortcuts.federated": "federe akışı aç", "keyboard_shortcuts.heading": "Klavye kısayolları", "keyboard_shortcuts.home": "ana akışı aç", @@ -268,7 +341,7 @@ "lightbox.next": "Sonraki", "lightbox.previous": "Önceki", "limited_account_hint.action": "Yine de profili göster", - "limited_account_hint.title": "Bu profil sunucunuzun moderatörleri tarafından gizlendi.", + "limited_account_hint.title": "Bu profil {domain} moderatörleri tarafından gizlendi.", "lists.account.add": "Listeye ekle", "lists.account.remove": "Listeden kaldır", "lists.delete": "Listeyi sil", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Resmi} other {Resimleri}} gizle", "missing_indicator.label": "Bulunamadı", "missing_indicator.sublabel": "Bu kaynak bulunamadı", + "moved_to_account_banner.text": "{disabledAccount} hesabınız, {movedToAccount} hesabına taşıdığınız için şu an devre dışı.", "mute_modal.duration": "Süre", "mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?", "mute_modal.indefinite": "Belirsiz", - "navigation_bar.apps": "Mobil uygulamalar", + "navigation_bar.about": "Hakkında", "navigation_bar.blocks": "Engellenen kullanıcılar", "navigation_bar.bookmarks": "Yer İmleri", "navigation_bar.community_timeline": "Yerel Zaman Tüneli", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Sessize alınmış kelimeler", "navigation_bar.follow_requests": "Takip istekleri", "navigation_bar.follows_and_followers": "Takip edilenler ve takipçiler", - "navigation_bar.info": "Bu sunucu hakkında", - "navigation_bar.keyboard_shortcuts": "Klavye kısayolları", "navigation_bar.lists": "Listeler", "navigation_bar.logout": "Oturumu kapat", "navigation_bar.mutes": "Sessize alınmış kullanıcılar", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Sabitlenmiş gönderiler", "navigation_bar.preferences": "Tercihler", "navigation_bar.public_timeline": "Federe zaman tüneli", + "navigation_bar.search": "Arama", "navigation_bar.security": "Güvenlik", + "not_signed_in_indicator.not_signed_in": "Bu kaynağa erişmek için oturum açmanız gerekir.", + "notification.admin.report": "{name}, {target} kişisini bildirdi", "notification.admin.sign_up": "{name} kaydoldu", "notification.favourite": "{name} gönderini favorilerine ekledi", "notification.follow": "{name} seni takip etti", @@ -326,6 +401,7 @@ "notification.update": "{name} bir gönderiyi düzenledi", "notifications.clear": "Bildirimleri temizle", "notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?", + "notifications.column_settings.admin.report": "Yeni bildirimler:", "notifications.column_settings.admin.sign_up": "Yeni kayıtlar:", "notifications.column_settings.alert": "Masaüstü bildirimleri", "notifications.column_settings.favourite": "Favoriler:", @@ -379,6 +455,8 @@ "privacy.public.short": "Herkese açık", "privacy.unlisted.long": "Keşfet harici herkese açık", "privacy.unlisted.short": "Listelenmemiş", + "privacy_policy.last_updated": "Son güncelleme {date}", + "privacy_policy.title": "Gizlilik Politikası", "refresh": "Yenile", "regeneration_indicator.label": "Yükleniyor…", "regeneration_indicator.sublabel": "Ana akışın hazırlanıyor!", @@ -431,9 +509,15 @@ "report.thanks.title_actionable": "Bildirdiğiniz için teşekkürler, konuyu araştıracağız.", "report.unfollow": "@{name} takip etmeyi bırak", "report.unfollow_explanation": "Bu hesabı takip ediyorsunuz. Ana akışınızda gönderilerini görmek istemiyorsanız, onu takip etmeyi bırakın.", + "report_notification.attached_statuses": "{count, plural, one {{count} gönderi} other {{count} gönderi}} eklendi", + "report_notification.categories.other": "Diğer", + "report_notification.categories.spam": "İstenmeyen", + "report_notification.categories.violation": "Kural ihlali", + "report_notification.open": "Bildirim aç", "search.placeholder": "Ara", + "search.search_or_paste": "Ara veya URL gir", "search_popout.search_format": "Gelişmiş arama biçimi", - "search_popout.tips.full_text": "Basit metin yazdığınız, beğendiğiniz, teşvik ettiğiniz veya söz edilen gönderilerin yanı sıra kullanıcı adlarını, görünen adları ve hashtag'leri eşleştiren gönderileri de döndürür.", + "search_popout.tips.full_text": "Basit metin yazdığınız, beğendiğiniz, teşvik ettiğiniz veya söz edilen gönderilerin yanı sıra kullanıcı adlarını, görünen adları ve etiketleri eşleşen gönderileri de döndürür.", "search_popout.tips.hashtag": "etiket", "search_popout.tips.status": "gönderi", "search_popout.tips.text": "Basit metin, eşleşen görünen adları, kullanıcı adlarını ve hashtag'leri döndürür", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Bu arama seçenekleriyle bir sonuç bulunamadı", "search_results.statuses": "Gönderiler", "search_results.statuses_fts_disabled": "Bu Mastodon sunucusunda gönderi içeriğine göre arama etkin değil.", + "search_results.title": "{q} araması", "search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuç}}", + "server_banner.about_active_users": "Bu sunucuyu son 30 günde kullanan insanlar (Aylık Etkin Kullanıcılar)", + "server_banner.active_users": "etkin kullanıcılar", + "server_banner.administered_by": "Yönetici:", + "server_banner.introduction": "{domain}, {mastodon} destekli ademi merkeziyetçi sosyal ağın bir parçasıdır.", + "server_banner.learn_more": "Daha fazlasını öğrenin", + "server_banner.server_stats": "Sunucu istatistikleri:", + "sign_in_banner.create_account": "Hesap oluştur", + "sign_in_banner.sign_in": "Giriş yap", + "sign_in_banner.text": "Profilleri veya etiketleri izlemek, gönderileri beğenmek, paylaşmak ve yanıtlamak için veya başka bir sunucunuzdaki hesabınızla etkileşmek için giriş yapın.", "status.admin_account": "@{name} için denetim arayüzünü açın", "status.admin_status": "Denetim arayüzünde bu gönderiyi açın", "status.block": "@{name} adlı kişiyi engelle", @@ -460,7 +554,9 @@ "status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi", "status.embed": "Gömülü", "status.favourite": "Favorilerine ekle", + "status.filter": "Bu gönderiyi filtrele", "status.filtered": "Filtrelenmiş", + "status.hide": "Toot'u gizle", "status.history.created": "{name} oluşturdu {date}", "status.history.edited": "{name} düzenledi {date}", "status.load_more": "Daha fazlasını yükle", @@ -469,9 +565,9 @@ "status.more": "Daha fazla", "status.mute": "@{name} kişisini sessize al", "status.mute_conversation": "Sohbeti sessize al", - "status.open": "Bu tootu genişlet", + "status.open": "Bu gönderiyi genişlet", "status.pin": "Profile sabitle", - "status.pinned": "Sabitlenmiş toot", + "status.pinned": "Sabitlenmiş gönderi", "status.read_more": "Devamını okuyun", "status.reblog": "Boostla", "status.reblog_private": "Orijinal görünürlük ile boostla", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Henüz kimse bu tootu boostlamadı. Biri yaptığında burada görünecek.", "status.redraft": "Sil ve yeniden taslak yap", "status.remove_bookmark": "Yer imini kaldır", + "status.replied_to": "{name} kullanıcısına yanıt verildi", "status.reply": "Yanıtla", "status.replyAll": "Konuyu yanıtla", "status.report": "@{name} adlı kişiyi bildir", "status.sensitive_warning": "Hassas içerik", "status.share": "Paylaş", + "status.show_filter_reason": "Yine de göster", "status.show_less": "Daha az göster", "status.show_less_all": "Hepsi için daha az göster", "status.show_more": "Daha fazlasını göster", "status.show_more_all": "Hepsi için daha fazla göster", - "status.show_thread": "Konuyu göster", + "status.show_original": "Orijinali göster", + "status.translate": "Çevir", + "status.translated_from_with": "{provider} kullanılarak {lang} dilinden çevrildi", "status.uncached_media_warning": "Mevcut değil", "status.unmute_conversation": "Sohbet sesini aç", "status.unpin": "Profilden sabitlemeyi kaldır", + "subscribed_languages.lead": "Değişiklikten sonra ana akışınızda sadece seçili dillerdeki gönderiler görüntülenecek ve zaman akışları listelenecektir. Tüm dillerde gönderiler için hiçbirini seçin.", + "subscribed_languages.save": "Değişiklikleri kaydet", + "subscribed_languages.target": "{target} abone olduğu dilleri değiştir", "suggestions.dismiss": "Öneriyi görmezden gel", "suggestions.header": "Şuna ilgi duyuyor olabilirsiniz…", "tabs_bar.federated_timeline": "Federe", "tabs_bar.home": "Ana Sayfa", "tabs_bar.local_timeline": "Yerel", "tabs_bar.notifications": "Bildirimler", - "tabs_bar.search": "Ara", "time_remaining.days": "{number, plural, one {# gün} other {# gün}} kaldı", "time_remaining.hours": "{number, plural, one {# saat} other {# saat}} kaldı", "time_remaining.minutes": "{number, plural, one {# dakika} other {# dakika}} kaldı", @@ -507,8 +609,8 @@ "timeline_hint.remote_resource_not_displayed": "diğer sunucudaki {resource} gösterilemiyor.", "timeline_hint.resources.followers": "Takipçiler", "timeline_hint.resources.follows": "Takip Edilenler", - "timeline_hint.resources.statuses": "Eski tootlar", - "trends.counter_by_accounts": "{count, plural, one {{counter} kişi} other {{counter} kişi}} konuşuyor", + "timeline_hint.resources.statuses": "Eski gönderiler", + "trends.counter_by_accounts": "Son {days, plural, one {gündeki} other {{days} gündeki}} {count, plural, one {{counter} kişi} other {{counter} kişi}}", "trends.trending_now": "Şu an gündemde", "ui.beforeunload": "Mastodon'u terk ederseniz taslağınız kaybolacak.", "units.short.billion": "{count}Mr", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "OCR hazırlanıyor…", "upload_modal.preview_label": "Ön izleme ({ratio})", "upload_progress.label": "Yükleniyor...", + "upload_progress.processing": "İşleniyor…", "video.close": "Videoyu kapat", "video.download": "Dosyayı indir", "video.exit_fullscreen": "Tam ekrandan çık", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index e05804d93c06e7..fc36699c7a0be2 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Язма", "account.add_or_remove_from_list": "Исемлеккә кертү я бетерү", "account.badges.bot": "Бот", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} доменын блоклау", "account.blocked": "Блокланган", "account.browse_more_on_origin_server": "Тулырак оригинал профилендә карап була", - "account.cancel_follow_request": "Язылуга сорауны бетерү", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name} өчен яңа хат", "account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү", "account.domain_blocked": "Домен блокланган", "account.edit_profile": "Профильны үзгәртү", "account.enable_notifications": "@{name} язулары өчен белдерүләр яндыру", "account.endorse": "Профильдә рекомендацияләү", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Языл", "account.followers": "Язылучылар", "account.followers.empty": "Әле беркем дә язылмаган.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Язылган} other {{counter} Язылган}}", "account.follows.empty": "Беркемгә дә язылмаган әле.", "account.follows_you": "Сезгә язылган", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "{date} көнендә теркәлде", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "Бу - ябык аккаунт. Аны язылучылар гына күрә ала.", "account.media": "Медиа", "account.mention": "@{name} искәртү", - "account.moved_to": "{name} монда күчте:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Ой!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Ябу", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Кыстыргычлар", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Блоклау", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Бетерү", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Бетерү", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Активлык", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Сакланды", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Киләсе", "lightbox.previous": "Алдагы", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Исемлектән бетерергә", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Дәвамлык", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Кыстыргычлар", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Caylaw", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Хәвефсезлек", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Яңарту", "regeneration_indicator.label": "Йөкләү...", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Эзләү", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "@{name} блоклау", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Уртаклашу", + "status.show_filter_reason": "Show anyway", "status.show_less": "Әзрәк күрсәтү", "status.show_less_all": "Show less for all", "status.show_more": "Күбрәк күрсәтү", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Баш бит", "tabs_bar.local_timeline": "Җирле", "tabs_bar.notifications": "Notifications", - "tabs_bar.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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Видеоны ябу", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index 7b041a2084a0eb..a8585c042d78d0 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +19,16 @@ "account.block_domain": "Block domain {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "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}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "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", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} followed you", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index d7e8a446f097d2..3273dae14f95c6 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -1,4 +1,16 @@ { + "about.blocks": "Модеровані сервери", + "about.contact": "Kонтакти:", + "about.disclaimer": "Mastodon — це безплатне програмне забезпечення з відкритим вихідним кодом та торгова марка компанії Mastodon GmbH.", + "about.domain_blocks.no_reason_available": "Причина недоступна", + "about.domain_blocks.preamble": "Mastodon зазвичай дозволяє вам взаємодіяти з користувачами будь-яких серверів у Федіверсі та переглядати їх вміст. Ось винятки, які було зроблено на цьому конкретному сервері.", + "about.domain_blocks.silenced.explanation": "Ви загалом не побачите профілі та вміст цього сервера, якщо тільки Ви не обрали його явним або не обрали його наступним чином.", + "about.domain_blocks.silenced.title": "Обмежені", + "about.domain_blocks.suspended.explanation": "Дані з цього сервера не обробляться, зберігаються чи обмінюються, взаємодію чи спілкування з користувачами цього сервера неможливі.", + "about.domain_blocks.suspended.title": "Призупинено", + "about.not_available": "Ця інформація не доступна на цьому сервері.", + "about.powered_by": "Децентралізовані соціальні мережі від {mastodon}", + "about.rules": "Правила сервера", "account.account_note_header": "Примітка", "account.add_or_remove_from_list": "Додати або видалити зі списків", "account.badges.bot": "Бот", @@ -7,38 +19,44 @@ "account.block_domain": "Заблокувати домен {domain}", "account.blocked": "Заблоковані", "account.browse_more_on_origin_server": "Переглянути більше в оригінальному профілі", - "account.cancel_follow_request": "Скасувати запит на підписку", + "account.cancel_follow_request": "Відкликати запит на стеження", "account.direct": "Надіслати пряме повідомлення @{name}", "account.disable_notifications": "Не повідомляти мене про дописи @{name}", "account.domain_blocked": "Домен заблоковано", "account.edit_profile": "Редагувати профіль", "account.enable_notifications": "Повідомляти мене про дописи @{name}", "account.endorse": "Рекомендувати у профілі", + "account.featured_tags.last_status_at": "Останній допис {date}", + "account.featured_tags.last_status_never": "Немає дописів", + "account.featured_tags.title": "{name} виділяє хештеґи", "account.follow": "Підписатися", "account.followers": "Підписники", "account.followers.empty": "Ніхто ще не підписаний на цього користувача.", - "account.followers_counter": "{count, plural, one {{counter} підписник} few {{counter} підписника} many {{counter} підписників} other {{counter} підписники}}", + "account.followers_counter": "{count, plural, one {{counter} підписник} few {{counter} підписники} many {{counter} підписників} other {{counter} підписники}}", "account.following": "Ви стежите", "account.following_counter": "{count, plural, one {{counter} підписка} few {{counter} підписки} many {{counter} підписок} other {{counter} підписки}}", "account.follows.empty": "Цей користувач ще ні на кого не підписався.", "account.follows_you": "Підписані на вас", + "account.go_to_profile": "Перейти до профілю", "account.hide_reblogs": "Сховати поширення від @{name}", - "account.joined": "Долучилися {date}", + "account.joined_short": "Дата приєднання", + "account.languages": "Змінити обрані мови", "account.link_verified_on": "Права власності на це посилання були перевірені {date}", "account.locked_info": "Це закритий обліковий запис. Власник вручну обирає, хто може на нього підписуватися.", "account.media": "Медіа", "account.mention": "Згадати @{name}", - "account.moved_to": "{name} переїхав на:", + "account.moved_to": "{name} вказує, що їхній новий обліковий запис тепер:", "account.mute": "Приховати @{name}", "account.mute_notifications": "Не показувати сповіщення від @{name}", "account.muted": "Нехтується", - "account.posts": "Дмухи", - "account.posts_with_replies": "Дмухи й відповіді", + "account.open_original_page": "Відкрити оригінальну сторінку", + "account.posts": "Дописи", + "account.posts_with_replies": "Дописи й відповіді", "account.report": "Поскаржитися на @{name}", - "account.requested": "Очікує підтвердження. Натисніть щоб відмінити запит", + "account.requested": "Очікує підтвердження. Натисніть, щоб скасувати запит на підписку", "account.share": "Поділитися профілем @{name}", - "account.show_reblogs": "Показати передмухи від @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Пост} few {{counter} Пости} many {{counter} Постів} other {{counter} Пости}}", + "account.show_reblogs": "Показати поширення від @{name}", + "account.statuses_counter": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} дописи}}", "account.unblock": "Розблокувати @{name}", "account.unblock_domain": "Розблокувати {domain}", "account.unblock_short": "Розблокувати", @@ -47,7 +65,7 @@ "account.unmute": "Не нехтувати @{name}", "account.unmute_notifications": "Показувати сповіщення від @{name}", "account.unmute_short": "Не нехтувати", - "account_note.placeholder": "Коментарі відсутні", + "account_note.placeholder": "Натисніть, щоб додати примітку", "admin.dashboard.daily_retention": "Щоденний показник утримання користувачів після реєстрації", "admin.dashboard.monthly_retention": "Щомісячний показник утримання користувачів після реєстрації", "admin.dashboard.retention.average": "Середнє", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Ой!", "announcement.announcement": "Оголошення", "attachments_list.unprocessed": "(не оброблено)", + "audio.hide": "Сховати аудіо", "autosuggest_hashtag.per_week": "{count} в тиждень", "boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", - "bundle_column_error.body": "Щось пішло не так під час завантаження цього компоненту.", + "bundle_column_error.copy_stacktrace": "Копіювати звіт про помилку", + "bundle_column_error.error.body": "Неможливо показати запитану сторінку. Це може бути спричинено помилкою у нашому коді, або через проблему сумісності з браузером.", + "bundle_column_error.error.title": "О, ні!", + "bundle_column_error.network.body": "Під час завантаження цієї сторінки сталася помилка. Це могло статися через тимчасову проблему з вашим інтернетом чи цим сервером.", + "bundle_column_error.network.title": "Помилка мережі", "bundle_column_error.retry": "Спробуйте ще раз", - "bundle_column_error.title": "Помилка мережі", + "bundle_column_error.return": "На головну", + "bundle_column_error.routing.body": "Запитувана сторінка не знайдена. Ви впевнені, що URL-адреса у панелі адрес правильна?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Закрити", "bundle_modal_error.message": "Щось пішло не так під час завантаження цього компоненту.", "bundle_modal_error.retry": "Спробувати ще раз", + "closed_registrations.other_server_instructions": "Оскільки Mastodon децентралізований, ви можете створити обліковий запис на іншому сервері й досі взаємодіяти з ним.", + "closed_registrations_modal.description": "Створення облікового запису на {domain} наразі неможливе, але майте на увазі, що вам не потрібен обліковий запис саме на {domain}, щоб використовувати Mastodon.", + "closed_registrations_modal.find_another_server": "Знайти інший сервер", + "closed_registrations_modal.preamble": "Mastodon децентралізований, тож незалежно від того, де ви створюєте свій обліковий запис, ви зможете слідкувати та взаємодіяти з будь-ким на цьому сервері. Ви навіть можете розмістити його самостійно!", + "closed_registrations_modal.title": "Реєстрація на Mastodon", + "column.about": "Про застосунок", "column.blocks": "Заблоковані користувачі", "column.bookmarks": "Закладки", "column.community": "Локальна стрічка", @@ -95,7 +126,7 @@ "compose.language.change": "Змінити мову", "compose.language.search": "Шукати мови...", "compose_form.direct_message_warning_learn_more": "Дізнатися більше", - "compose_form.encryption_warning": "Дописи на Mastodon не захищені шифруванням. Не поширюйте жодну потенційно небезпечну інформацію.", + "compose_form.encryption_warning": "Дописи на Mastodon не захищені шифруванням. Не поширюйте жодну делікатну інформацію.", "compose_form.hashtag_warning": "Цей допис не буде зображений у жодній стрічці гештеґу, оскільки він прихований. Тільки публічні дописи можуть бути знайдені за гештеґом.", "compose_form.lock_disclaimer": "Ваш обліковий запис не {locked}. Будь-який користувач може підписатися на вас та переглядати ваші дописи для підписників.", "compose_form.lock_disclaimer.lock": "приватний", @@ -106,19 +137,21 @@ "compose_form.poll.remove_option": "Видалити цей варіант", "compose_form.poll.switch_to_multiple": "Дозволити вибір декількох відповідей", "compose_form.poll.switch_to_single": "Перемкнути у режим вибору однієї відповіді", - "compose_form.publish": "Надіслати", + "compose_form.publish": "Опублікувати", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Зберегти зміни", "compose_form.sensitive.hide": "{count, plural, one {Позначити медіа делікатним} other {Позначити медіа делікатними}}", "compose_form.sensitive.marked": "{count, plural, one {Медіа позначене делікатним} other {Медіа позначені делікатними}}", "compose_form.sensitive.unmarked": "{count, plural, one {Медіа не позначене делікатним} other {Медіа не позначені делікатними}}", - "compose_form.spoiler.marked": "Текст приховано під попередженням", - "compose_form.spoiler.unmarked": "Текст видимий", + "compose_form.spoiler.marked": "Прибрати попередження про вміст", + "compose_form.spoiler.unmarked": "Додати попередження про вміст", "compose_form.spoiler_placeholder": "Напишіть своє попередження тут", "confirmation_modal.cancel": "Відмінити", "confirmations.block.block_and_report": "Заблокувати та поскаржитися", "confirmations.block.confirm": "Заблокувати", "confirmations.block.message": "Ви впевнені, що хочете заблокувати {name}?", + "confirmations.cancel_follow_request.confirm": "Відкликати запит", + "confirmations.cancel_follow_request.message": "Ви дійсно бажаєте відкликати запит на стеження за {name}?", "confirmations.delete.confirm": "Видалити", "confirmations.delete.message": "Ви впевнені, що хочете видалити цей допис?", "confirmations.delete_list.confirm": "Видалити", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Позначити як прочитане", "conversation.open": "Переглянути бесіду", "conversation.with": "З {names}", + "copypaste.copied": "Скопійовано", + "copypaste.copy": "Копіювати", "directory.federated": "З відомого федесвіту", "directory.local": "Лише з домену {domain}", "directory.new_arrivals": "Нові надходження", "directory.recently_active": "Нещодавно активні", + "disabled_account_banner.account_settings": "Налаштування облікового запису", + "disabled_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений.", + "dismissable_banner.community_timeline": "Це останні публічні дописи від людей, чиї облікові записи розміщені на {domain}.", + "dismissable_banner.dismiss": "Відхилити", + "dismissable_banner.explore_links": "Ці новини розповідають історії про людей на цих та інших серверах децентралізованої мережі прямо зараз.", + "dismissable_banner.explore_statuses": "Ці дописи з цього та інших серверів децентралізованої мережі зараз набирають популярності на цьому сервері.", + "dismissable_banner.explore_tags": "Ці хештеги зараз набирають популярності серед людей на цьому та інших серверах децентралізованої мережі.", + "dismissable_banner.public_timeline": "Це останні публічні дописи від людей на цьому та інших серверах децентралізованої мережі, про які відомо цьому серверу.", "embed.instructions": "Вбудуйте цей допис до вашого вебсайту, скопіювавши код нижче.", "embed.preview": "Ось як він виглядатиме:", "emoji_button.activity": "Діяльність", @@ -155,7 +198,7 @@ "emoji_button.food": "Їжа та напої", "emoji_button.label": "Вставити емоджі", "emoji_button.nature": "Природа", - "emoji_button.not_found": "Немає емоджі!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Відповідних емоджі не знайдено", "emoji_button.objects": "Предмети", "emoji_button.people": "Люди", "emoji_button.recent": "Часто використовувані", @@ -196,21 +239,37 @@ "explore.trending_links": "Новини", "explore.trending_statuses": "Дописи", "explore.trending_tags": "Хештеґи", + "filter_modal.added.context_mismatch_explanation": "Ця категорія фільтра не застосовується до контексту, в якому ви отримали доступ до цього допису. Якщо ви хочете, щоб дописи також фільтрувалися за цим контекстом, вам доведеться редагувати фільтр.", + "filter_modal.added.context_mismatch_title": "Невідповідність контексту!", + "filter_modal.added.expired_explanation": "Категорія цього фільтра застаріла, Вам потрібно змінити дату закінчення терміну дії, щоб застосувати її.", + "filter_modal.added.expired_title": "Застарілий фільтр!", + "filter_modal.added.review_and_configure": "Щоб розглянути та далі налаштувати цю категорію фільтрів, перейдіть на {settings_link}.", + "filter_modal.added.review_and_configure_title": "Налаштування фільтра", + "filter_modal.added.settings_link": "сторінка налаштувань", + "filter_modal.added.short_explanation": "Цей допис було додано до такої категорії фільтра: {title}.", + "filter_modal.added.title": "Фільтр додано!", + "filter_modal.select_filter.context_mismatch": "не застосовується до цього контексту", + "filter_modal.select_filter.expired": "застарілий", + "filter_modal.select_filter.prompt_new": "Нова категорія: {name}", + "filter_modal.select_filter.search": "Пошук або створення", + "filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову", + "filter_modal.select_filter.title": "Фільтрувати цей допис", + "filter_modal.title.status": "Фільтрувати допис", "follow_recommendations.done": "Готово", "follow_recommendations.heading": "Підпишіться на людей, чиї дописи ви хочете бачити! Ось деякі пропозиції.", "follow_recommendations.lead": "Дописи від людей, за якими ви стежите, з'являться в хронологічному порядку у вашій домашній стрічці. Не бійся помилятися, ви можете відписатися від людей так само легко в будь-який час!", "follow_request.authorize": "Авторизувати", "follow_request.reject": "Відмовити", - "follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, працівники {domain} припускають, що, можливо, ви хотіли б переглянути ці запити на підписку.", + "follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, персонал {domain} припускає, що, можливо, ви хотіли б переглянути ці запити на підписку.", + "footer.about": "Про проєкт", + "footer.directory": "Каталог профілів", + "footer.get_app": "Завантажити застосунок", + "footer.invite": "Запросити людей", + "footer.keyboard_shortcuts": "Комбінації клавіш", + "footer.privacy_policy": "Політика приватності", + "footer.source_code": "Перегляд програмного коду", "generic.saved": "Збережено", - "getting_started.developers": "Розробникам", - "getting_started.directory": "Каталог профілів", - "getting_started.documentation": "Документація", "getting_started.heading": "Розпочати", - "getting_started.invite": "Запросити людей", - "getting_started.open_source_notice": "Mastodon — програма з відкритим сирцевим кодом. Ви можете допомогти проєкту, або повідомити про проблеми на GitHub: {github}.", - "getting_started.security": "Налаштування облікового запису", - "getting_started.terms": "Умови використання", "hashtag.column_header.tag_mode.all": "та {additional}", "hashtag.column_header.tag_mode.any": "або {additional}", "hashtag.column_header.tag_mode.none": "без {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Який-небудь зі списку", "hashtag.column_settings.tag_mode.none": "Жоден зі списку", "hashtag.column_settings.tag_toggle": "Додати додаткові теґи до цього стовпчика", + "hashtag.follow": "Стежити за хештегом", + "hashtag.unfollow": "Не стежити за хештегом", "home.column_settings.basic": "Основні", "home.column_settings.show_reblogs": "Показувати поширення", "home.column_settings.show_replies": "Показувати відповіді", "home.hide_announcements": "Приховати оголошення", "home.show_announcements": "Показати оголошення", + "interaction_modal.description.favourite": "Маючи обліковий запис на Mastodon, ви можете вподобати цей допис, щоб дати автору знати, що ви його цінуєте, і зберегти його на потім.", + "interaction_modal.description.follow": "Маючи обліковий запис на Mastodon, ви можете підписатися на {name}, щоб отримувати дописи цього користувача у свою стрічку.", + "interaction_modal.description.reblog": "Маючи обліковий запис на Mastodon, ви можете поширити цей допис, щоб поділитися ним зі своїми підписниками.", + "interaction_modal.description.reply": "Маючи обліковий запис на Mastodon, ви можете відповісти на цей допис.", + "interaction_modal.on_another_server": "На іншому сервері", + "interaction_modal.on_this_server": "На цьому сервері", + "interaction_modal.other_server_instructions": "Скопіюйте та вставте цю URL-адресу в поле пошуку вашого улюбленого застосунку Mastodon або вебінтерфейсу вашого сервера Mastodon.", + "interaction_modal.preamble": "Оскільки Mastodon децентралізований, ви можете використовувати свій наявний обліковий запис, розміщений на іншому сервері Mastodon або сумісній платформі, якщо у вас немає облікового запису на цьому сервері.", + "interaction_modal.title.favourite": "Вподобати допис {name}", + "interaction_modal.title.follow": "Підписатися на {name}", + "interaction_modal.title.reblog": "Поширити допис {name}", + "interaction_modal.title.reply": "Відповісти на допис {name}", "intervals.full.days": "{number, plural, one {# день} few {# дні} other {# днів}}", "intervals.full.hours": "{number, plural, one {# година} few {# години} other {# годин}}", "intervals.full.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}", @@ -253,24 +326,24 @@ "keyboard_shortcuts.pinned": "Відкрити список закріплених дописів", "keyboard_shortcuts.profile": "Відкрити профіль автора", "keyboard_shortcuts.reply": "Відповісти", - "keyboard_shortcuts.requests": "відкрити список бажаючих підписатися", - "keyboard_shortcuts.search": "сфокусуватися на пошуку", - "keyboard_shortcuts.spoilers": "показати/приховати поле CW", - "keyboard_shortcuts.start": "відкрити колонку \"Початок\"", - "keyboard_shortcuts.toggle_hidden": "показати/приховати текст під попередженням", - "keyboard_shortcuts.toggle_sensitivity": "показати/приховати медіа", - "keyboard_shortcuts.toot": "почати писати новий дмух", - "keyboard_shortcuts.unfocus": "розфокусуватися з нового допису чи пошуку", - "keyboard_shortcuts.up": "рухатися вверх списком", + "keyboard_shortcuts.requests": "Відкрити список охочих підписатися", + "keyboard_shortcuts.search": "Сфокусуватися на пошуку", + "keyboard_shortcuts.spoilers": "Показати/приховати поле попередження про вміст", + "keyboard_shortcuts.start": "Відкрити колонку \"Розпочати\"", + "keyboard_shortcuts.toggle_hidden": "Показати/приховати текст під попередженням про вміст", + "keyboard_shortcuts.toggle_sensitivity": "Показати/приховати медіа", + "keyboard_shortcuts.toot": "Створити новий допис", + "keyboard_shortcuts.unfocus": "Розфокусуватися з нового допису чи пошуку", + "keyboard_shortcuts.up": "Рухатися вгору списком", "lightbox.close": "Закрити", "lightbox.compress": "Стиснути поле перегляду зображень", "lightbox.expand": "Розгорнути поле перегляду зображень", "lightbox.next": "Далі", "lightbox.previous": "Назад", "limited_account_hint.action": "Усе одно показати профіль", - "limited_account_hint.title": "Цей профіль прихований модераторами вашого сервера.", + "limited_account_hint.title": "Цей профіль сховали модератори {domain}.", "lists.account.add": "Додати до списку", - "lists.account.remove": "Видалити зі списку", + "lists.account.remove": "Вилучити зі списку", "lists.delete": "Видалити список", "lists.edit": "Редагувати список", "lists.edit.submit": "Змінити назву", @@ -284,13 +357,14 @@ "lists.subheading": "Ваші списки", "load_pending": "{count, plural, one {# новий елемент} other {# нових елементів}}", "loading_indicator.label": "Завантаження...", - "media_gallery.toggle_visible": "Показати/приховати", + "media_gallery.toggle_visible": "{number, plural, one {Приховати зображення} other {Приховати зображення}}", "missing_indicator.label": "Не знайдено", - "missing_indicator.sublabel": "Ресурс не знайдений", + "missing_indicator.sublabel": "Ресурс не знайдено", + "moved_to_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений, оскільки вас перенесено до {movedToAccount}.", "mute_modal.duration": "Тривалість", "mute_modal.hide_notifications": "Сховати сповіщення від користувача?", "mute_modal.indefinite": "Не визначено", - "navigation_bar.apps": "Мобільні застосунки", + "navigation_bar.about": "Про застосунок", "navigation_bar.blocks": "Заблоковані користувачі", "navigation_bar.bookmarks": "Закладки", "navigation_bar.community_timeline": "Локальна стрічка", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Приховані слова", "navigation_bar.follow_requests": "Запити на підписку", "navigation_bar.follows_and_followers": "Підписки та підписники", - "navigation_bar.info": "Про цей сервер", - "navigation_bar.keyboard_shortcuts": "Гарячі клавіші", "navigation_bar.lists": "Списки", "navigation_bar.logout": "Вийти", "navigation_bar.mutes": "Нехтувані користувачі", @@ -313,19 +385,23 @@ "navigation_bar.pins": "Закріплені дописи", "navigation_bar.preferences": "Налаштування", "navigation_bar.public_timeline": "Глобальна стрічка", + "navigation_bar.search": "Пошук", "navigation_bar.security": "Безпека", + "not_signed_in_indicator.not_signed_in": "Для доступу до цього ресурсу вам потрібно увійти.", + "notification.admin.report": "Скарга від {name} на {target}", "notification.admin.sign_up": "{name} приєдналися", "notification.favourite": "{name} вподобали ваш допис", "notification.follow": "{name} підписалися на вас", "notification.follow_request": "{name} відправили запит на підписку", "notification.mention": "{name} згадали вас", "notification.own_poll": "Ваше опитування завершено", - "notification.poll": "Опитування, у якому ви голосували, закінчилося", - "notification.reblog": "{name} поширили ваш допис", + "notification.poll": "Опитування, у якому ви голосували, скінчилося", + "notification.reblog": "{name} поширює ваш допис", "notification.status": "{name} щойно дописує", "notification.update": "{name} змінює допис", "notifications.clear": "Очистити сповіщення", "notifications.clear_confirmation": "Ви впевнені, що хочете назавжди видалити всі сповіщення?", + "notifications.column_settings.admin.report": "Нові скарги:", "notifications.column_settings.admin.sign_up": "Нові реєстрації:", "notifications.column_settings.alert": "Сповіщення на комп'ютері", "notifications.column_settings.favourite": "Вподобане:", @@ -337,16 +413,16 @@ "notifications.column_settings.mention": "Згадки:", "notifications.column_settings.poll": "Результати опитування:", "notifications.column_settings.push": "Push-сповіщення", - "notifications.column_settings.reblog": "Передмухи:", - "notifications.column_settings.show": "Показати в колонці", + "notifications.column_settings.reblog": "Поширення:", + "notifications.column_settings.show": "Показати в стовпчику", "notifications.column_settings.sound": "Відтворювати звуки", "notifications.column_settings.status": "Нові дмухи:", "notifications.column_settings.unread_notifications.category": "Непрочитані сповіщення", "notifications.column_settings.unread_notifications.highlight": "Виділити непрочитані сповіщення", "notifications.column_settings.update": "Зміни:", "notifications.filter.all": "Усі", - "notifications.filter.boosts": "Передмухи", - "notifications.filter.favourites": "Улюблені", + "notifications.filter.boosts": "Поширення", + "notifications.filter.favourites": "Вподобані", "notifications.filter.follows": "Підписки", "notifications.filter.mentions": "Згадки", "notifications.filter.polls": "Результати опитування", @@ -363,7 +439,7 @@ "picture_in_picture.restore": "Повернути назад", "poll.closed": "Закрито", "poll.refresh": "Оновити", - "poll.total_people": "{count, plural, one {# особа} other {# осіб}}", + "poll.total_people": "{count, plural, one {# особа} few {# особи} many {# осіб} other {# особи}}", "poll.total_votes": "{count, plural, one {# голос} few {# голоси} many {# голосів} other {# голосів}}", "poll.vote": "Проголосувати", "poll.voted": "Ви проголосували за цю відповідь", @@ -379,6 +455,8 @@ "privacy.public.short": "Публічно", "privacy.unlisted.long": "Видимий для всіх, але не через можливості виявлення", "privacy.unlisted.short": "Прихований", + "privacy_policy.last_updated": "Оновлено {date}", + "privacy_policy.title": "Політика приватності", "refresh": "Оновити", "regeneration_indicator.label": "Завантаження…", "regeneration_indicator.sublabel": "Хвилинку, ми готуємо вашу стрічку!", @@ -406,7 +484,7 @@ "report.close": "Готово", "report.comment.title": "Чи є щось, що нам потрібно знати?", "report.forward": "Надіслати до {target}", - "report.forward_hint": "Це акаунт з іншого серверу. Відправити анонімізовану копію скарги і туди?", + "report.forward_hint": "Це обліковий запис з іншого сервера. Відправити анонімізовану копію скарги й туди?", "report.mute": "Нехтувати", "report.mute_explanation": "Ви не побачите їхніх дописів. Вони все ще можуть стежити за вами, бачити ваші дописи та не знатимуть про нехтування.", "report.next": "Далі", @@ -425,17 +503,23 @@ "report.statuses.title": "Чи є дописи, які належать до цієї скарги?", "report.submit": "Відправити", "report.target": "Скаржимося на {target}", - "report.thanks.take_action": "Ось ваші варіанти управління тим, що ви бачите в Mastodon:", + "report.thanks.take_action": "Ось ваші варіанти керування тим, що ви бачите в Mastodon:", "report.thanks.take_action_actionable": "Поки ми переглядаємо це, ви можете вжити власних заходів проти @{name}:", "report.thanks.title": "Не хочете це бачити?", "report.thanks.title_actionable": "Дякуємо за скаргу, ми розглянемо її.", "report.unfollow": "Відписатися від @{name}", "report.unfollow_explanation": "Ви підписані на цього користувача. Щоб більше не бачити їхні дописи у вашій стрічці, відпишіться від них.", + "report_notification.attached_statuses": "{count, plural, one {{count} допис} few {{count} дописи} other {{counter} дописів}} прикріплено", + "report_notification.categories.other": "Інше", + "report_notification.categories.spam": "Спам", + "report_notification.categories.violation": "Порушення правил", + "report_notification.open": "Відкрити скаргу", "search.placeholder": "Пошук", + "search.search_or_paste": "Введіть адресу або пошуковий запит", "search_popout.search_format": "Розширений формат пошуку", - "search_popout.tips.full_text": "Пошук за текстом знаходить статуси, які ви написали, вподобали, передмухнули, або в яких вас згадували. Також він знаходить імена користувачів, реальні імена та хештеґи.", + "search_popout.tips.full_text": "Пошук за текстом знаходить дописи, які ви написали, вподобали, поширили, або в яких вас згадували. Також він знаходить імена користувачів, реальні імена та гештеґи.", "search_popout.tips.hashtag": "хештеґ", - "search_popout.tips.status": "статус", + "search_popout.tips.status": "допис", "search_popout.tips.text": "Пошук за текстом знаходить імена користувачів, реальні імена та хештеґи", "search_popout.tips.user": "користувач", "search_results.accounts": "Люди", @@ -444,14 +528,24 @@ "search_results.nothing_found": "Нічого не вдалося знайти за цими пошуковими термінами", "search_results.statuses": "Дмухів", "search_results.statuses_fts_disabled": "Пошук дописів за вмістом недоступний на даному сервері Mastodon.", + "search_results.title": "Шукати {q}", "search_results.total": "{count, number} {count, plural, one {результат} few {результати} many {результатів} other {результатів}}", + "server_banner.about_active_users": "Люди, які використовують цей сервер протягом останніх 30 днів (Щомісячні Активні Користувачі)", + "server_banner.active_users": "активні користувачі", + "server_banner.administered_by": "Адміністратор:", + "server_banner.introduction": "{domain} є частиною децентралізованої соціальної мережі від {mastodon}.", + "server_banner.learn_more": "Дізнайтесь більше", + "server_banner.server_stats": "Статистика сервера:", + "sign_in_banner.create_account": "Створити обліковий запис", + "sign_in_banner.sign_in": "Увійти", + "sign_in_banner.text": "Увійдіть, щоб слідкувати за профілями або хештеґами, вподобаними, ділитися і відповідати на повідомлення або взаємодіяти з вашого облікового запису на іншому сервері.", "status.admin_account": "Відкрити інтерфейс модерації для @{name}", - "status.admin_status": "Відкрити цей статус в інтерфейсі модерації", + "status.admin_status": "Відкрити цей допис в інтерфейсі модерації", "status.block": "Заблокувати @{name}", "status.bookmark": "Додати в закладки", "status.cancel_reblog_private": "Відмінити передмухання", "status.cannot_reblog": "Цей допис не може бути передмухнутий", - "status.copy": "Копіювати посилання до статусу", + "status.copy": "Копіювати посилання на допис", "status.delete": "Видалити", "status.detailed_status": "Детальний вигляд бесіди", "status.direct": "Пряме повідомлення до @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Відредаговано {count, plural, one {{count} раз} few {{count} рази} many {{counter} разів} other {{counter} разів}}", "status.embed": "Вбудувати", "status.favourite": "Подобається", + "status.filter": "Фільтрувати цей допис", "status.filtered": "Відфільтровано", + "status.hide": "Сховати дмух", "status.history.created": "{name} створює {date}", "status.history.edited": "{name} змінює {date}", "status.load_more": "Завантажити більше", @@ -471,34 +567,40 @@ "status.mute_conversation": "Ігнорувати діалог", "status.open": "Розгорнути допис", "status.pin": "Закріпити у профілі", - "status.pinned": "Закріплений дмух", + "status.pinned": "Закріплений допис", "status.read_more": "Дізнатися більше", - "status.reblog": "Передмухнути", - "status.reblog_private": "Передмухнути для початкової аудиторії", - "status.reblogged_by": "{name} передмухнув(-ла)", - "status.reblogs.empty": "Ніхто ще не передмухнув цього дмуху. Коли якісь користувачі це зроблять, вони будуть відображені тут.", - "status.redraft": "Видалити та перестворити", + "status.reblog": "Поширити", + "status.reblog_private": "Поширити для початкової аудиторії", + "status.reblogged_by": "{name} поширив", + "status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.", + "status.redraft": "Видалити та виправити", "status.remove_bookmark": "Видалити закладку", + "status.replied_to": "Відповідь для {name}", "status.reply": "Відповісти", "status.replyAll": "Відповісти на ланцюжок", "status.report": "Поскаржитися на @{name}", "status.sensitive_warning": "Делікатний зміст", "status.share": "Поділитися", + "status.show_filter_reason": "Усе одно показати", "status.show_less": "Згорнути", - "status.show_less_all": "Показувати менше для всіх", + "status.show_less_all": "Згорнути для всіх", "status.show_more": "Розгорнути", - "status.show_more_all": "Показувати більше для всіх", - "status.show_thread": "Показати ланцюжок", + "status.show_more_all": "Розгорнути для всіх", + "status.show_original": "Показати оригінал", + "status.translate": "Перекласти", + "status.translated_from_with": "Перекладено з {lang} за допомогою {provider}", "status.uncached_media_warning": "Недоступно", "status.unmute_conversation": "Не ігнорувати діалог", "status.unpin": "Відкріпити від профілю", + "subscribed_languages.lead": "Лише дописи вибраними мовами з'являтимуться на вашій домівці та у списку стрічок після змін. Виберіть «none», щоб отримувати повідомлення всіма мовами.", + "subscribed_languages.save": "Зберегти зміни", + "subscribed_languages.target": "Змінити підписані мови для {target}", "suggestions.dismiss": "Відхилити пропозицію", "suggestions.header": "Вас може зацікавити…", "tabs_bar.federated_timeline": "Глобальна", "tabs_bar.home": "Головна", "tabs_bar.local_timeline": "Локальна", "tabs_bar.notifications": "Сповіщення", - "tabs_bar.search": "Пошук", "time_remaining.days": "{number, plural, one {# день} few {# дні} other {# днів}}", "time_remaining.hours": "{number, plural, one {# година} few {# години} other {# годин}}", "time_remaining.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}", @@ -508,12 +610,12 @@ "timeline_hint.resources.followers": "Підписники", "timeline_hint.resources.follows": "Підписки", "timeline_hint.resources.statuses": "Попередні дописи", - "trends.counter_by_accounts": "{count, plural, one {{counter} особа обговорює} few {{counter} особи обговорюють} many {{counter} осіб обговорюють} other {{counter} особи обговорюють}}", - "trends.trending_now": "Актуальні", + "trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особи} other {{counter} осіб}} {days, plural, one {за останній {days} день} few {за останні {days} дні} other {за останні {days} днів}}", + "trends.trending_now": "Популярне зараз", "ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Mastodon.", - "units.short.billion": "{count} млрд.", - "units.short.million": "{count} млн.", - "units.short.thousand": "{count} тис.", + "units.short.billion": "{count} млрд", + "units.short.million": "{count} млн", + "units.short.thousand": "{count} тис", "upload_area.title": "Перетягніть сюди, щоб завантажити", "upload_button.label": "Додати зображення, відео або аудіо", "upload_error.limit": "Ліміт завантаження файлів перевищено.", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Підготовка OCR…", "upload_modal.preview_label": "Переглянути ({ratio})", "upload_progress.label": "Завантаження...", + "upload_progress.processing": "Обробка…", "video.close": "Закрити відео", "video.download": "Завантажити файл", "video.exit_fullscreen": "Вийти з повноекранного режиму", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index d5ed07a9c3f7c2..3702a7ffeb4d05 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "نوٹ", "account.add_or_remove_from_list": "فہرست میں شامل یا برطرف کریں", "account.badges.bot": "روبوٹ", @@ -7,13 +19,16 @@ "account.block_domain": "{domain} سے سب چھپائیں", "account.blocked": "مسدود کردہ", "account.browse_more_on_origin_server": "اصل پروفائل پر مزید براؤز کریں", - "account.cancel_follow_request": "درخواستِ پیروی منسوخ کریں", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "راست پیغام @{name}", "account.disable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع نہ کریں", "account.domain_blocked": "پوشیدہ ڈومین", "account.edit_profile": "مشخص ترمیم کریں", "account.enable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع کریں", "account.endorse": "مشکص پر نمایاں کریں", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "پیروی کریں", "account.followers": "پیروکار", "account.followers.empty": "\"ہنوز اس صارف کی کوئی پیروی نہیں کرتا\".", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} پیروی کر رہے ہیں} other {{counter} پیروی کر رہے ہیں}}", "account.follows.empty": "\"یہ صارف ہنوز کسی کی پیروی نہیں کرتا ہے\".", "account.follows_you": "آپ کا پیروکار ہے", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "@{name} سے فروغ چھپائیں", - "account.joined": "{date} شامل ہوئے", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "اس لنک کی ملکیت کی توثیق {date} پر کی گئی تھی", "account.locked_info": "اس اکاونٹ کا اخفائی ضابطہ مقفل ہے۔ صارف کی پیروی کون کر سکتا ہے اس کا جائزہ وہ خود لیتا ہے.", "account.media": "وسائل", "account.mention": "ذکر @{name}", - "account.moved_to": "{name} منتقل ہگیا ہے بہ:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "خاموش @{name}", "account.mute_notifications": "@{name} سے اطلاعات خاموش کریں", "account.muted": "خاموش کردہ", + "account.open_original_page": "Open original page", "account.posts": "ٹوٹ", "account.posts_with_replies": "ٹوٹ اور جوابات", "account.report": "@{name} اطلاع کریں", @@ -59,14 +77,27 @@ "alert.unexpected.title": "ا رے!", "announcement.announcement": "اعلان", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} فی ہفتہ", "boost_modal.combo": "آئیندہ یہ نہ دیکھنے کیلئے آپ {combo} دبا سکتے ہیں", - "bundle_column_error.body": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "دوبارہ کوشش کریں", - "bundle_column_error.title": "نیٹ ورک کی خرابی", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "بند کریں", "bundle_modal_error.message": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", "bundle_modal_error.retry": "دوبارہ کوشش کریں", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "مسدود صارفین", "column.bookmarks": "بُک مارکس", "column.community": "مقامی زمانی جدول", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "یہ انتخاب ہٹا دیں", "compose_form.poll.switch_to_multiple": "متعدد انتخاب کی اجازت دینے کے لیے پول تبدیل کریں", "compose_form.poll.switch_to_single": "کسی ایک انتخاب کے لیے پول تبدیل کریں", - "compose_form.publish": "ٹوٹ", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "وسائل کو حساس نشاندہ کریں", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "شکایت کریں اور بلاک کریں", "confirmations.block.confirm": "بلاک", "confirmations.block.message": "کیا واقعی آپ {name} کو بلاک کرنا چاہتے ہیں؟", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "ڈیلیٹ", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "ڈیلیٹ", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "بطور پڑھا ہوا دکھائیں", "conversation.open": "گفتگو دیکھیں", "conversation.with": "{names} کے ساتھ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "معروف فیڈی ورس سے", "directory.local": "صرف {domain} سے", "directory.new_arrivals": "نئے آنے والے", "directory.recently_active": "حال میں میں ایکٹیو", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "یہ اس طرح نظر آئے گا:", "emoji_button.activity": "سرگرمی", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "اجازت دیں", "follow_request.reject": "انکار کریں", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "فہرست مشخصات", - "getting_started.documentation": "اسناد", "getting_started.heading": "آغاز کریں", - "getting_started.invite": "دوستوں کو دعوت دیں", - "getting_started.open_source_notice": "ماسٹوڈون آزاد منبع سوفٹویر ہے. آپ {github} گِٹ ہب پر مسائل میں معاونت یا مشکلات کی اطلاع دے سکتے ہیں.", - "getting_started.security": "ترتیباتِ اکاؤنٹ", - "getting_started.terms": "شرائط خدمات", "hashtag.column_header.tag_mode.all": "اور {additional}", "hashtag.column_header.tag_mode.any": "یا {additional}", "hashtag.column_header.tag_mode.none": "بغیر {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "ان میں سے کوئی", "hashtag.column_settings.tag_mode.none": "ان میں سے کوئی بھی نہیں", "hashtag.column_settings.tag_toggle": "اس کالم کے لئے مزید ٹیگز شامل کریں", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "بنیادی", "home.column_settings.show_reblogs": "افزائشات دکھائیں", "home.column_settings.show_replies": "جوابات دکھائیں", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "Add to list", "lists.account.remove": "Remove from list", "lists.delete": "Delete list", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "غیر معینہ", - "navigation_bar.apps": "موبائل ایپس", + "navigation_bar.about": "About", "navigation_bar.blocks": "مسدود صارفین", "navigation_bar.bookmarks": "بُک مارکس", "navigation_bar.community_timeline": "مقامی ٹائم لائن", @@ -304,8 +378,6 @@ "navigation_bar.filters": "خاموش کردہ الفاظ", "navigation_bar.follow_requests": "پیروی کی درخواستیں", "navigation_bar.follows_and_followers": "پیروی کردہ اور پیروکار", - "navigation_bar.info": "اس سرور کے بارے میں", - "navigation_bar.keyboard_shortcuts": "ہوٹ کیز", "navigation_bar.lists": "فہرستیں", "navigation_bar.logout": "لاگ آؤٹ", "navigation_bar.mutes": "خاموش کردہ صارفین", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "ترجیحات", "navigation_bar.public_timeline": "وفاقی ٹائم لائن", + "navigation_bar.search": "Search", "navigation_bar.security": "سیکورٹی", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "{name} آپ کی پیروی کی", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "اطلاعات ہٹائیں", "notifications.clear_confirmation": "کیا آپ واقعی اپنی تمام اطلاعات کو صاف کرنا چاہتے ہیں؟", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "ڈیسک ٹاپ اطلاعات", "notifications.column_settings.favourite": "پسندیدہ:", @@ -379,6 +455,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "Search", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "Load more", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "Share", + "status.show_filter_reason": "Show anyway", "status.show_less": "Show less", "status.show_less_all": "Show less for all", "status.show_more": "Show more", "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "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", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index e4e7c233b82c1c..11847e1b24715b 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -1,19 +1,34 @@ { + "about.blocks": "Giới hạn chung", + "about.contact": "Liên lạc:", + "about.disclaimer": "Mastodon là phần mềm tự do mã nguồn mở, một thương hiệu của Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Lý do không được cung cấp", + "about.domain_blocks.preamble": "Mastodon cho phép bạn tương tác nội dung và giao tiếp với mọi người từ bất kỳ máy chủ nào khác trong mạng liên hợp. Còn máy chủ này có những ngoại lệ riêng.", + "about.domain_blocks.silenced.explanation": "Nói chung, bạn sẽ không thấy người và nội dung từ máy chủ này, trừ khi bạn tự tìm kiếm hoặc tự theo dõi.", + "about.domain_blocks.silenced.title": "Hạn chế", + "about.domain_blocks.suspended.explanation": "Dữ liệu từ máy chủ này sẽ không được xử lý, lưu trữ hoặc trao đổi. Mọi tương tác hoặc giao tiếp với người từ máy chủ này đều bị cấm.", + "about.domain_blocks.suspended.title": "Vô hiệu hóa", + "about.not_available": "Máy chủ này chưa cung cấp thông tin.", + "about.powered_by": "Mạng xã hội liên hợp {mastodon}", + "about.rules": "Quy tắc máy chủ", "account.account_note_header": "Ghi chú", - "account.add_or_remove_from_list": "Thêm hoặc Xóa khỏi danh sách", + "account.add_or_remove_from_list": "Thêm hoặc xóa khỏi danh sách", "account.badges.bot": "Bot", "account.badges.group": "Nhóm", "account.block": "Chặn @{name}", - "account.block_domain": "Ẩn mọi thứ từ {domain}", + "account.block_domain": "Chặn mọi thứ từ {domain}", "account.blocked": "Đã chặn", "account.browse_more_on_origin_server": "Truy cập trang của người này", - "account.cancel_follow_request": "Hủy yêu cầu theo dõi", + "account.cancel_follow_request": "Thu hồi yêu cầu theo dõi", "account.direct": "Nhắn riêng @{name}", - "account.disable_notifications": "Tắt thông báo khi @{name} đăng tút", - "account.domain_blocked": "Người đã chặn", + "account.disable_notifications": "Tắt thông báo khi @{name} đăng bài viết", + "account.domain_blocked": "Tên miền đã chặn", "account.edit_profile": "Sửa hồ sơ", "account.enable_notifications": "Nhận thông báo khi @{name} đăng tút", "account.endorse": "Tôn vinh người này", + "account.featured_tags.last_status_at": "Tút gần nhất {date}", + "account.featured_tags.last_status_never": "Chưa có tút", + "account.featured_tags.title": "Hashtag {name} thường dùng", "account.follow": "Theo dõi", "account.followers": "Người theo dõi", "account.followers.empty": "Chưa có người theo dõi nào.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Theo dõi} other {{counter} Theo dõi}}", "account.follows.empty": "Người này chưa theo dõi ai.", "account.follows_you": "Đang theo dõi bạn", + "account.go_to_profile": "Xem hồ sơ", "account.hide_reblogs": "Ẩn tút @{name} đăng lại", - "account.joined": "Đã tham gia {date}", + "account.joined_short": "Đã tham gia", + "account.languages": "Đổi ngôn ngữ mong muốn", "account.link_verified_on": "Liên kết này đã được xác minh vào {date}", - "account.locked_info": "Đây là tài khoản riêng tư. Họ sẽ tự mình xét duyệt các yêu cầu theo dõi.", + "account.locked_info": "Đây là tài khoản riêng tư. Chủ tài khoản tự mình xét duyệt các yêu cầu theo dõi.", "account.media": "Media", "account.mention": "Nhắc đến @{name}", - "account.moved_to": "{name} đã chuyển sang:", + "account.moved_to": "{name} đã chuyển sang máy chủ khác:", "account.mute": "Ẩn @{name}", "account.mute_notifications": "Tắt thông báo từ @{name}", "account.muted": "Đã ẩn", + "account.open_original_page": "Mở trang gốc", "account.posts": "Tút", "account.posts_with_replies": "Trả lời", "account.report": "Báo cáo @{name}", @@ -52,24 +70,37 @@ "admin.dashboard.monthly_retention": "Tỉ lệ người dùng ở lại sau khi đăng ký", "admin.dashboard.retention.average": "Trung bình", "admin.dashboard.retention.cohort": "Tháng đăng ký", - "admin.dashboard.retention.cohort_size": "Người dùng mới", + "admin.dashboard.retention.cohort_size": "Người mới", "alert.rate_limited.message": "Vui lòng thử lại sau {retry_time, time, medium}.", "alert.rate_limited.title": "Vượt giới hạn", "alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.", "alert.unexpected.title": "Ốiii!", "announcement.announcement": "Có gì mới?", "attachments_list.unprocessed": "(chưa xử lí)", + "audio.hide": "Ẩn âm thanh", "autosuggest_hashtag.per_week": "{count} mỗi tuần", "boost_modal.combo": "Nhấn {combo} để bỏ qua bước này", - "bundle_column_error.body": "Đã có lỗi xảy ra trong khi tải nội dung này.", + "bundle_column_error.copy_stacktrace": "Sao chép báo lỗi", + "bundle_column_error.error.body": "Không thể hiện trang này. Đây có thể là một lỗi trong mã lập trình của chúng tôi, hoặc là vấn đề tương thích của trình duyệt.", + "bundle_column_error.error.title": "Ôi không!", + "bundle_column_error.network.body": "Đã xảy ra lỗi khi tải trang này. Đây có thể là vấn đề tạm thời rớt mạng của bạn hoặc máy chủ này.", + "bundle_column_error.network.title": "Lỗi mạng", "bundle_column_error.retry": "Thử lại", - "bundle_column_error.title": "Không có kết nối internet", + "bundle_column_error.return": "Quay lại trang chủ", + "bundle_column_error.routing.body": "Không thể tìm thấy trang cần tìm. Bạn có chắc URL trong thanh địa chỉ là chính xác?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Đóng", "bundle_modal_error.message": "Đã có lỗi xảy ra trong khi tải nội dung này.", "bundle_modal_error.retry": "Thử lại", + "closed_registrations.other_server_instructions": "Vì Mastodon liên hợp nên bạn có thể tạo tài khoản trên máy chủ khác và vẫn tương tác với máy chủ này.", + "closed_registrations_modal.description": "{domain} hiện tắt đăng ký, nhưng hãy lưu ý rằng bạn không cần một tài khoản riêng trên {domain} để sử dụng Mastodon.", + "closed_registrations_modal.find_another_server": "Tìm máy chủ khác", + "closed_registrations_modal.preamble": "Mastodon liên hợp, vì vậy bất kể bạn tạo tài khoản ở đâu, bạn sẽ có thể theo dõi và tương tác với bất kỳ ai trên máy chủ này. Bạn thậm chí có thể tự mở máy chủ!", + "closed_registrations_modal.title": "Đăng ký trên Mastodon", + "column.about": "Giới thiệu", "column.blocks": "Người đã chặn", "column.bookmarks": "Đã lưu", - "column.community": "Máy chủ của bạn", + "column.community": "Máy chủ này", "column.direct": "Nhắn riêng", "column.directory": "Tìm người cùng sở thích", "column.domain_blocks": "Máy chủ đã chặn", @@ -80,7 +111,7 @@ "column.mutes": "Người đã ẩn", "column.notifications": "Thông báo", "column.pins": "Tút ghim", - "column.public": "Mạng liên hợp", + "column.public": "Liên hợp", "column_back_button.label": "Quay lại", "column_header.hide_settings": "Ẩn bộ lọc", "column_header.moveLeft_settings": "Dời cột sang bên trái", @@ -91,8 +122,8 @@ "column_subheading.settings": "Cài đặt", "community.column_settings.local_only": "Chỉ máy chủ của bạn", "community.column_settings.media_only": "Chỉ xem media", - "community.column_settings.remote_only": "Chỉ người dùng ở máy chủ khác", - "compose.language.change": "Đổi ngôn ngữ", + "community.column_settings.remote_only": "Chỉ người ở máy chủ khác", + "compose.language.change": "Chọn ngôn ngữ tút", "compose.language.search": "Tìm ngôn ngữ...", "compose_form.direct_message_warning_learn_more": "Tìm hiểu thêm", "compose_form.encryption_warning": "Các tút trên Mastodon không được mã hóa đầu cuối. Không chia sẻ bất kỳ thông tin nhạy cảm nào qua Mastodon.", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Chặn & Báo cáo", "confirmations.block.confirm": "Chặn", "confirmations.block.message": "Bạn có thật sự muốn chặn {name}?", + "confirmations.cancel_follow_request.confirm": "Thu hồi yêu cầu", + "confirmations.cancel_follow_request.message": "Bạn có chắc muốn thu hồi yêu cầu theo dõi của bạn với {name}?", "confirmations.delete.confirm": "Xóa bỏ", "confirmations.delete.message": "Bạn thật sự muốn xóa tút này?", "confirmations.delete_list.confirm": "Xóa bỏ", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Đánh dấu là đã đọc", "conversation.open": "Xem toàn bộ tin nhắn", "conversation.with": "Với {names}", + "copypaste.copied": "Đã sao chép", + "copypaste.copy": "Sao chép", "directory.federated": "Từ mạng liên hợp", "directory.local": "Từ {domain}", "directory.new_arrivals": "Mới tham gia", "directory.recently_active": "Hoạt động gần đây", + "disabled_account_banner.account_settings": "Cài đặt tài khoản", + "disabled_account_banner.text": "Tài khoản {disabledAccount} của bạn hiện không khả dụng.", + "dismissable_banner.community_timeline": "Những tút gần đây của những người có tài khoản thuộc máy chủ {domain}.", + "dismissable_banner.dismiss": "Bỏ qua", + "dismissable_banner.explore_links": "Những sự kiện đang được thảo luận nhiều trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", + "dismissable_banner.explore_statuses": "Những tút đang phổ biến trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", + "dismissable_banner.explore_tags": "Những hashtag đang được sử dụng nhiều trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", + "dismissable_banner.public_timeline": "Những tút công khai gần đây nhất trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", "embed.instructions": "Sao chép đoạn mã dưới đây và chèn vào trang web của bạn.", "embed.preview": "Nó sẽ hiển thị như vầy:", "emoji_button.activity": "Hoạt động", @@ -171,10 +214,10 @@ "empty_column.community": "Máy chủ của bạn chưa có tút nào công khai. Bạn hãy thử viết gì đó đi!", "empty_column.direct": "Bạn chưa có tin nhắn riêng nào. Khi bạn gửi hoặc nhận một tin nhắn riêng, nó sẽ xuất hiện ở đây.", "empty_column.domain_blocks": "Chưa ẩn bất kỳ máy chủ nào.", - "empty_column.explore_statuses": "Chưa có xu hướng nào. Kiểm tra lại sau!", + "empty_column.explore_statuses": "Chưa có gì hot. Kiểm tra lại sau!", "empty_column.favourited_statuses": "Bạn chưa thích tút nào. Hãy thử đi, nó sẽ xuất hiện ở đây.", "empty_column.favourites": "Chưa có ai thích tút này.", - "empty_column.follow_recommendations": "Bạn chưa có gợi ý theo dõi nào. Hãy thử tìm kiếm những người thú vị hoặc khám phá những hashtag xu hướng.", + "empty_column.follow_recommendations": "Bạn chưa có gợi ý theo dõi nào. Hãy thử tìm kiếm những người thú vị hoặc khám phá những hashtag nổi bật.", "empty_column.follow_requests": "Bạn chưa có yêu cầu theo dõi nào.", "empty_column.hashtag": "Chưa có bài đăng nào dùng hashtag này.", "empty_column.home": "Bảng tin của bạn đang trống! Hãy theo dõi nhiều người hơn. {suggestions}", @@ -196,21 +239,37 @@ "explore.trending_links": "Tin tức", "explore.trending_statuses": "Tút", "explore.trending_tags": "Hashtag", + "filter_modal.added.context_mismatch_explanation": "Danh mục bộ lọc này không áp dụng cho ngữ cảnh mà bạn đã truy cập tút này. Nếu bạn muốn tút cũng được lọc trong ngữ cảnh này, bạn sẽ phải chỉnh sửa bộ lọc.", + "filter_modal.added.context_mismatch_title": "Bối cảnh không phù hợp!", + "filter_modal.added.expired_explanation": "Danh mục bộ lọc này đã hết hạn, bạn sẽ cần thay đổi ngày hết hạn để áp dụng.", + "filter_modal.added.expired_title": "Bộ lọc đã hết hạn!", + "filter_modal.added.review_and_configure": "Để xem lại và định cấu hình thêm danh mục bộ lọc này, hãy xem {settings_link}.", + "filter_modal.added.review_and_configure_title": "Thiết lập bộ lọc", + "filter_modal.added.settings_link": "trang cài đặt", + "filter_modal.added.short_explanation": "Tút này đã được thêm vào danh mục bộ lọc sau: {title}.", + "filter_modal.added.title": "Đã thêm bộ lọc!", + "filter_modal.select_filter.context_mismatch": "không áp dụng cho bối cảnh này", + "filter_modal.select_filter.expired": "hết hạn", + "filter_modal.select_filter.prompt_new": "Danh mục mới: {name}", + "filter_modal.select_filter.search": "Tìm kiếm hoặc tạo mới", + "filter_modal.select_filter.subtitle": "Sử dụng một danh mục hiện có hoặc tạo một danh mục mới", + "filter_modal.select_filter.title": "Lọc tút này", + "filter_modal.title.status": "Lọc một tút", "follow_recommendations.done": "Xong", "follow_recommendations.heading": "Theo dõi những người bạn muốn đọc tút của họ! Dưới đây là vài gợi ý.", "follow_recommendations.lead": "Tút từ những người bạn theo dõi sẽ hiện theo thứ tự thời gian trên bảng tin. Đừng ngại, bạn có thể dễ dàng ngưng theo dõi họ bất cứ lúc nào!", "follow_request.authorize": "Cho phép", "follow_request.reject": "Từ chối", "follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.", + "footer.about": "Giới thiệu", + "footer.directory": "Cộng đồng", + "footer.get_app": "Tải ứng dụng", + "footer.invite": "Mời bạn bè", + "footer.keyboard_shortcuts": "Phím tắt", + "footer.privacy_policy": "Chính sách bảo mật", + "footer.source_code": "Mã nguồn", "generic.saved": "Đã lưu", - "getting_started.developers": "Nhà phát triển", - "getting_started.directory": "Cộng đồng", - "getting_started.documentation": "Tài liệu", "getting_started.heading": "Quản lý", - "getting_started.invite": "Mời bạn bè", - "getting_started.open_source_notice": "Mastodon là phần mềm mã nguồn mở. Bạn có thể đóng góp hoặc báo lỗi trên GitHub tại {github}.", - "getting_started.security": "Bảo mật", - "getting_started.terms": "Điều khoản dịch vụ", "hashtag.column_header.tag_mode.all": "và {additional}", "hashtag.column_header.tag_mode.any": "hoặc {additional}", "hashtag.column_header.tag_mode.none": "mà không {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Một phần", "hashtag.column_settings.tag_mode.none": "Không chọn", "hashtag.column_settings.tag_toggle": "Bao gồm thêm hashtag cho cột này", + "hashtag.follow": "Theo dõi hashtag", + "hashtag.unfollow": "Ngưng theo dõi hashtag", "home.column_settings.basic": "Tùy chỉnh", "home.column_settings.show_reblogs": "Hiện những lượt đăng lại", "home.column_settings.show_replies": "Hiện những tút dạng trả lời", "home.hide_announcements": "Ẩn thông báo máy chủ", "home.show_announcements": "Hiện thông báo máy chủ", + "interaction_modal.description.favourite": "Với tài khoản Mastodon, bạn có thể yêu thích tút này để cho người đăng biết bạn thích nó và lưu lại tút.", + "interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để nhận những tút của họ trên bảng tin của mình.", + "interaction_modal.description.reblog": "Với tài khoản Mastodon, bạn có thể đăng lại tút này để chia sẻ nó với những người đang theo dõi bạn.", + "interaction_modal.description.reply": "Với tài khoản Mastodon, bạn có thể bình luận tút này.", + "interaction_modal.on_another_server": "Trên một máy chủ khác", + "interaction_modal.on_this_server": "Trên máy chủ này", + "interaction_modal.other_server_instructions": "Sao chép và dán URL này vào thanh tìm kiếm của ứng dụng Mastodon hoặc giao diện web máy chủ Mastodon mà bạn hiện dùng.", + "interaction_modal.preamble": "Do Mastodon phi tập trung, bạn có thể sử dụng tài khoản hiện có trên một máy chủ Mastodon khác hoặc một nền tảng tương thích nếu bạn chưa có tài khoản trên máy chủ này.", + "interaction_modal.title.favourite": "Thích tút của {name}", + "interaction_modal.title.follow": "Theo dõi {name}", + "interaction_modal.title.reblog": "Đăng lại tút của {name}", + "interaction_modal.title.reply": "Trả lời tút của {name}", "intervals.full.days": "{number, plural, other {# ngày}}", "intervals.full.hours": "{number, plural, other {# giờ}}", "intervals.full.minutes": "{number, plural, other {# phút}}", @@ -268,7 +341,7 @@ "lightbox.next": "Tiếp", "lightbox.previous": "Trước", "limited_account_hint.action": "Vẫn cứ xem", - "limited_account_hint.title": "Người này bị ẩn bởi kiểm duyệt viên máy chủ.", + "limited_account_hint.title": "Người này đã bị ẩn bởi quản trị viên của {domain}.", "lists.account.add": "Thêm vào danh sách", "lists.account.remove": "Xóa khỏi danh sách", "lists.delete": "Xóa danh sách", @@ -287,15 +360,16 @@ "media_gallery.toggle_visible": "{number, plural, other {Ẩn hình ảnh}}", "missing_indicator.label": "Không tìm thấy", "missing_indicator.sublabel": "Nội dung này không còn tồn tại", + "moved_to_account_banner.text": "Tài khoản {disabledAccount} của bạn hiện không khả dụng vì bạn đã chuyển sang {movedToAccount}.", "mute_modal.duration": "Thời hạn", "mute_modal.hide_notifications": "Ẩn thông báo từ người này?", "mute_modal.indefinite": "Vĩnh viễn", - "navigation_bar.apps": "Apps", + "navigation_bar.about": "Giới thiệu", "navigation_bar.blocks": "Người đã chặn", "navigation_bar.bookmarks": "Đã lưu", "navigation_bar.community_timeline": "Cộng đồng", "navigation_bar.compose": "Viết tút mới", - "navigation_bar.direct": "Tin nhắn", + "navigation_bar.direct": "Nhắn riêng", "navigation_bar.discover": "Khám phá", "navigation_bar.domain_blocks": "Máy chủ đã ẩn", "navigation_bar.edit_profile": "Sửa hồ sơ", @@ -304,17 +378,18 @@ "navigation_bar.filters": "Bộ lọc từ ngữ", "navigation_bar.follow_requests": "Yêu cầu theo dõi", "navigation_bar.follows_and_followers": "Quan hệ", - "navigation_bar.info": "Về máy chủ này", - "navigation_bar.keyboard_shortcuts": "Phím tắt", "navigation_bar.lists": "Danh sách", "navigation_bar.logout": "Đăng xuất", "navigation_bar.mutes": "Người đã ẩn", "navigation_bar.personal": "Cá nhân", "navigation_bar.pins": "Tút ghim", "navigation_bar.preferences": "Cài đặt", - "navigation_bar.public_timeline": "Thế giới", + "navigation_bar.public_timeline": "Liên hợp", + "navigation_bar.search": "Tìm kiếm", "navigation_bar.security": "Bảo mật", - "notification.admin.sign_up": "{name} đăng ký máy chủ của bạn", + "not_signed_in_indicator.not_signed_in": "Bạn cần đăng nhập để truy cập mục này.", + "notification.admin.report": "{name} báo cáo {target}", + "notification.admin.sign_up": "{name} tham gia máy chủ của bạn", "notification.favourite": "{name} thích tút của bạn", "notification.follow": "{name} theo dõi bạn", "notification.follow_request": "{name} yêu cầu theo dõi bạn", @@ -326,7 +401,8 @@ "notification.update": "{name} đã viết lại một tút", "notifications.clear": "Xóa hết thông báo", "notifications.clear_confirmation": "Bạn thật sự muốn xóa vĩnh viễn tất cả thông báo của mình?", - "notifications.column_settings.admin.sign_up": "Lượt đăng ký mới:", + "notifications.column_settings.admin.report": "Báo cáo mới:", + "notifications.column_settings.admin.sign_up": "Người mới tham gia:", "notifications.column_settings.alert": "Thông báo trên máy tính", "notifications.column_settings.favourite": "Lượt thích:", "notifications.column_settings.filter_bar.advanced": "Toàn bộ", @@ -338,8 +414,8 @@ "notifications.column_settings.poll": "Kết quả bình chọn:", "notifications.column_settings.push": "Thông báo đẩy", "notifications.column_settings.reblog": "Lượt đăng lại mới:", - "notifications.column_settings.show": "Thông báo trên thanh menu", - "notifications.column_settings.sound": "Kèm theo tiếng \"bíp\"", + "notifications.column_settings.show": "Hiện trên thanh bên", + "notifications.column_settings.sound": "Kèm âm thanh", "notifications.column_settings.status": "Tút mới:", "notifications.column_settings.unread_notifications.category": "Thông báo chưa đọc", "notifications.column_settings.unread_notifications.highlight": "Nổi bật thông báo chưa đọc", @@ -372,13 +448,15 @@ "poll_button.remove_poll": "Hủy cuộc bình chọn", "privacy.change": "Thay đổi quyền riêng tư", "privacy.direct.long": "Chỉ người được nhắc đến mới thấy", - "privacy.direct.short": "Chỉ người được nhắc", + "privacy.direct.short": "Nhắn riêng", "privacy.private.long": "Dành riêng cho người theo dõi", "privacy.private.short": "Chỉ người theo dõi", "privacy.public.long": "Hiển thị với mọi người", "privacy.public.short": "Công khai", - "privacy.unlisted.long": "Hiển thị với mọi người, nhưng không hiện trong tính năng khám phá", + "privacy.unlisted.long": "Công khai nhưng ẩn trên bảng tin", "privacy.unlisted.short": "Hạn chế", + "privacy_policy.last_updated": "Cập nhật lần cuối {date}", + "privacy_policy.title": "Chính sách bảo mật", "refresh": "Làm mới", "regeneration_indicator.label": "Đang tải…", "regeneration_indicator.sublabel": "Bảng tin của bạn đang được cập nhật!", @@ -400,8 +478,8 @@ "report.categories.spam": "Spam", "report.categories.violation": "Vi phạm quy tắc máy chủ", "report.category.subtitle": "Chọn mục gần khớp nhất", - "report.category.title": "Nói với họ chuyện gì xảy ra với {type}", - "report.category.title_account": "người dùng", + "report.category.title": "Có vấn đề gì với {type}", + "report.category.title_account": "người này", "report.category.title_status": "tút", "report.close": "Xong", "report.comment.title": "Bạn nghĩ chúng tôi nên biết thêm điều gì?", @@ -431,20 +509,36 @@ "report.thanks.title_actionable": "Cảm ơn đã báo cáo, chúng tôi sẽ xem xét kỹ.", "report.unfollow": "Ngưng theo dõi @{name}", "report.unfollow_explanation": "Bạn đang theo dõi người này. Để không thấy tút của họ trong bảng tin nữa, hãy ngưng theo dõi.", + "report_notification.attached_statuses": "{count, plural, other {{count} tút}} đính kèm", + "report_notification.categories.other": "Khác", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Vi phạm quy tắc", + "report_notification.open": "Mở báo cáo", "search.placeholder": "Tìm kiếm", + "search.search_or_paste": "Tìm kiếm hoặc nhập URL", "search_popout.search_format": "Gợi ý", - "search_popout.tips.full_text": "Nội dung trả về bao gồm những tút mà bạn đã viết, thích, đăng lại hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm địa chỉ người dùng, tên hiển thị và hashtag.", + "search_popout.tips.full_text": "Nội dung trả về bao gồm những tút mà bạn đã viết, thích, đăng lại hoặc những tút có nhắc đến bạn. Bạn cũng có thể tìm tên người dùng, biệt danh và hashtag.", "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "tút", - "search_popout.tips.text": "Nội dung trả về là tên người dùng, tên hiển thị và hashtag", - "search_popout.tips.user": "người dùng", - "search_results.accounts": "Người dùng", + "search_popout.tips.text": "Nội dung trả về là tên người dùng, biệt danh và hashtag", + "search_popout.tips.user": "mọi người", + "search_results.accounts": "Mọi người", "search_results.all": "Toàn bộ", "search_results.hashtags": "Hashtags", "search_results.nothing_found": "Không tìm thấy kết quả trùng khớp", "search_results.statuses": "Tút", "search_results.statuses_fts_disabled": "Máy chủ của bạn không bật tính năng tìm kiếm tút.", + "search_results.title": "Tìm kiếm {q}", "search_results.total": "{count, number} {count, plural, one {kết quả} other {kết quả}}", + "server_banner.about_active_users": "Những người ở máy chủ này trong 30 ngày qua (MAU)", + "server_banner.active_users": "người hoạt động", + "server_banner.administered_by": "Quản trị bởi:", + "server_banner.introduction": "{domain} là một phần của mạng xã hội liên hợp {mastodon}.", + "server_banner.learn_more": "Tìm hiểu", + "server_banner.server_stats": "Thống kê:", + "sign_in_banner.create_account": "Tạo tài khoản", + "sign_in_banner.sign_in": "Đăng nhập", + "sign_in_banner.text": "Đăng nhập để theo dõi hồ sơ hoặc hashtag; thích, chia sẻ và trả lời tút hoặc tương tác bằng tài khoản của bạn trên một máy chủ khác.", "status.admin_account": "Mở giao diện quản trị @{name}", "status.admin_status": "Mở tút này trong giao diện quản trị", "status.block": "Chặn @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Đã sửa {count, plural, other {{count} lần}}", "status.embed": "Nhúng", "status.favourite": "Thích", + "status.filter": "Lọc tút này", "status.filtered": "Bộ lọc", + "status.hide": "Ẩn tút", "status.history.created": "{name} tạo lúc {date}", "status.history.edited": "{name} sửa lúc {date}", "status.load_more": "Tải thêm", @@ -479,26 +575,32 @@ "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.", "status.redraft": "Xóa và viết lại", "status.remove_bookmark": "Bỏ lưu", + "status.replied_to": "Trả lời đến {name}", "status.reply": "Trả lời", "status.replyAll": "Trả lời người đăng tút", "status.report": "Báo cáo @{name}", "status.sensitive_warning": "Nhạy cảm", "status.share": "Chia sẻ", + "status.show_filter_reason": "Vẫn cứ xem", "status.show_less": "Thu gọn", "status.show_less_all": "Thu gọn toàn bộ", "status.show_more": "Xem thêm", "status.show_more_all": "Hiển thị tất cả", - "status.show_thread": "Xem chuỗi tút này", + "status.show_original": "Bản gốc", + "status.translate": "Dịch", + "status.translated_from_with": "Dịch từ {lang} bằng {provider}", "status.uncached_media_warning": "Uncached", "status.unmute_conversation": "Quan tâm", "status.unpin": "Bỏ ghim trên hồ sơ", + "subscribed_languages.lead": "Chỉ các tút đăng bằng các ngôn ngữ đã chọn mới được xuất hiện trên bảng tin của bạn. Không chọn gì cả để đọc tút đăng bằng mọi ngôn ngữ.", + "subscribed_languages.save": "Lưu thay đổi", + "subscribed_languages.target": "Đổi ngôn ngữ mong muốn cho {target}", "suggestions.dismiss": "Tắt đề xuất", "suggestions.header": "Có thể bạn quan tâm…", - "tabs_bar.federated_timeline": "Thế giới", + "tabs_bar.federated_timeline": "Liên hợp", "tabs_bar.home": "Bảng tin", "tabs_bar.local_timeline": "Máy chủ", "tabs_bar.notifications": "Thông báo", - "tabs_bar.search": "Tìm kiếm", "time_remaining.days": "{number, plural, other {# ngày}}", "time_remaining.hours": "{number, plural, other {# giờ}}", "time_remaining.minutes": "{number, plural, other {# phút}}", @@ -508,8 +610,8 @@ "timeline_hint.resources.followers": "Người theo dõi", "timeline_hint.resources.follows": "Đang theo dõi", "timeline_hint.resources.statuses": "Tút cũ hơn", - "trends.counter_by_accounts": "{count, plural, one {{counter} người} other {{counter} người}} đang thảo luận", - "trends.trending_now": "Xu hướng", + "trends.counter_by_accounts": "{count, plural, other {{count} lượt}} dùng trong {days, plural, other {{days} ngày}} qua", + "trends.trending_now": "Thịnh hành", "ui.beforeunload": "Bản nháp của bạn sẽ bị mất nếu bạn thoát khỏi Mastodon.", "units.short.billion": "{count}B", "units.short.million": "{count}M", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Đang nhận dạng ký tự…", "upload_modal.preview_label": "Xem trước ({ratio})", "upload_progress.label": "Đang tải lên...", + "upload_progress.processing": "Đang tải lên…", "video.close": "Đóng video", "video.download": "Lưu về máy", "video.exit_fullscreen": "Thoát toàn màn hình", diff --git a/app/javascript/mastodon/locales/whitelist_de.json b/app/javascript/mastodon/locales/whitelist_de.json index 6c9617e609d44e..448cc9e778247a 100644 --- a/app/javascript/mastodon/locales/whitelist_de.json +++ b/app/javascript/mastodon/locales/whitelist_de.json @@ -2,7 +2,6 @@ "relative_time.seconds", "relative_time.minutes", "relative_time.hours", - "relative_time.days", "account.badges.bot", "compose_form.publish_loud", "search_results.hashtags" diff --git a/app/javascript/mastodon/locales/whitelist_fy.json b/app/javascript/mastodon/locales/whitelist_fy.json new file mode 100644 index 00000000000000..0d4f101c7a37a4 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_fy.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/whitelist_ig.json b/app/javascript/mastodon/locales/whitelist_ig.json new file mode 100644 index 00000000000000..0d4f101c7a37a4 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_ig.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/whitelist_my.json b/app/javascript/mastodon/locales/whitelist_my.json new file mode 100644 index 00000000000000..0d4f101c7a37a4 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_my.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index 02b0ed563363c3..804fb6c0adf97b 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -1,4 +1,16 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "Limited", + "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "about.domain_blocks.suspended.title": "Suspended", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "ⵍⵎⴷ ⵓⴳⴳⴰⵔ", "account.add_or_remove_from_list": "ⵔⵏⵓ ⵏⵖ ⵙⵉⵜⵜⵢ ⵙⴳ ⵜⵍⴳⴰⵎⵜ", "account.badges.bot": "ⴰⴱⵓⵜ", @@ -7,13 +19,16 @@ "account.block_domain": "ⴳⴷⵍ ⵉⴳⵔ {domain}", "account.blocked": "ⵉⵜⵜⵓⴳⴷⵍ", "account.browse_more_on_origin_server": "ⵙⵜⴰⵔⴰ ⵓⴳⴳⴰⵔ ⴳ ⵉⴼⵔⵙ ⴰⵏⵚⵍⵉ", - "account.cancel_follow_request": "ⵙⵔ ⵜⵓⵜⵔⴰ ⵏ ⵓⴹⴼⵕ", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "ⵜⵓⵣⵉⵏⵜ ⵜⵓⵙⵔⵉⴷⵜ @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "ⵉⵜⵜⵓⴳⴷⵍ ⵉⴳⵔ", "account.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "ⴹⴼⵕ", "account.followers": "ⵉⵎⴹⴼⴰⵕⵏ", "account.followers.empty": "No one follows this user yet.", @@ -22,16 +37,19 @@ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "ⴹⴼⵕⵏ ⴽⵯⵏ", + "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", + "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "ⴰⵙⵏⵖⵎⵉⵙ", "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "ⵥⵥⵉⵥⵏ @{name}", "account.mute_notifications": "ⵥⵥⵉⵥⵏ ⵜⵉⵏⵖⵎⵉⵙⵉⵏ ⵙⴳ @{name}", "account.muted": "ⵉⵜⵜⵓⵥⵉⵥⵏ", + "account.open_original_page": "Open original page", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "Oops!", "announcement.announcement": "Announcement", "attachments_list.unprocessed": "(unprocessed)", + "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} ⵙ ⵉⵎⴰⵍⴰⵙⵙ", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "bundle_column_error.copy_stacktrace": "Copy error report", + "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", + "bundle_column_error.network.title": "Network error", "bundle_column_error.retry": "ⴰⵍⵙ ⴰⵔⵎ", - "bundle_column_error.title": "ⴰⵣⴳⴰⵍ ⵏ ⵓⵥⵟⵟⴰ", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "ⵔⴳⵍ", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "ⴰⵍⵙ ⴰⵔⵎ", + "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", + "closed_registrations_modal.find_another_server": "Find another server", + "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", + "closed_registrations_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "ⵉⵏⵙⵙⵎⵔⵙⵏ ⵜⵜⵓⴳⴷⵍⵏⵉⵏ", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -106,7 +137,7 @@ "compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", - "compose_form.publish": "Toot", + "compose_form.publish": "Publish", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "ⴳⴷⵍ", "confirmations.block.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴳⴷⵍⴷ {name}?", + "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "ⴽⴽⵙ", "confirmations.delete.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴽⴽⵙⴷ ⵜⴰⵥⵕⵉⴳⵜ ⴰ?", "confirmations.delete_list.confirm": "ⴽⴽⵙ", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "ⴰⴽⴷ {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "disabled_account_banner.account_settings": "Account settings", + "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -196,21 +239,37 @@ "explore.trending_links": "News", "explore.trending_statuses": "Posts", "explore.trending_tags": "Hashtags", + "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_title": "Context mismatch!", + "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_title": "Expired filter!", + "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.settings_link": "settings page", + "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.title": "Filter added!", + "filter_modal.select_filter.context_mismatch": "does not apply to this context", + "filter_modal.select_filter.expired": "expired", + "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.search": "Search or create", + "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", + "filter_modal.select_filter.title": "Filter this post", + "filter_modal.title.status": "Filter a post", "follow_recommendations.done": "Done", "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", "follow_request.authorize": "Authorize", "follow_request.reject": "ⴰⴳⵢ", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "footer.about": "About", + "footer.directory": "Profiles directory", + "footer.get_app": "Get the app", + "footer.invite": "Invite people", + "footer.keyboard_shortcuts": "Keyboard shortcuts", + "footer.privacy_policy": "Privacy policy", + "footer.source_code": "View source code", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "ⵜⵉⵙⵖⴰⵍ ⵏ ⵓⵎⵉⴹⴰⵏ", - "getting_started.terms": "Terms of service", "hashtag.column_header.tag_mode.all": "ⴷ {additional}", "hashtag.column_header.tag_mode.any": "ⵏⵖ {additional}", "hashtag.column_header.tag_mode.none": "without {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.follow": "Follow hashtag", + "hashtag.unfollow": "Unfollow hashtag", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.on_another_server": "On a different server", + "interaction_modal.on_this_server": "On this server", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ⵡⴰⵙⵙ} other {# ⵡⵓⵙⵙⴰⵏ}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# ⵜⵓⵙⴷⵉⴷⵜ} other {# ⵜⵓⵙⴷⵉⴷⵉⵏ}}", @@ -268,7 +341,7 @@ "lightbox.next": "Next", "lightbox.previous": "Previous", "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.", "lists.account.add": "ⵔⵏⵓ ⵖⵔ ⵜⵍⴳⴰⵎⵜ", "lists.account.remove": "ⴽⴽⵙ ⵙⴳ ⵜⵍⴳⴰⵎⵜ", "lists.delete": "ⴽⴽⵙ ⵜⴰⵍⴳⴰⵎⵜ", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "ⴼⴼⵔ {number, plural, one {ⵜⴰⵡⵍⴰⴼⵜ} other {ⵜⵉⵡⵍⴰⴼⵉⵏ}}", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", + "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Local timeline", @@ -304,8 +378,6 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "ⵜⵓⵜⵔⴰⵡⵉⵏ ⵏ ⵓⴹⴼⴰⵕ", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ⵅⴼ ⵓⵎⴰⴽⴽⴰⵢ ⴰ", - "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "ⵜⵉⵍⴳⴰⵎⵉⵏ", "navigation_bar.logout": "ⴼⴼⵖ", "navigation_bar.mutes": "Muted users", @@ -313,7 +385,10 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", + "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", "notification.follow": "ⵉⴹⴼⴼⴰⵔ ⴽ {name}", @@ -326,6 +401,7 @@ "notification.update": "{name} edited a post", "notifications.clear": "ⵙⴼⴹ ⵜⵉⵏⵖⵎⵉⵙⵉⵏ", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", "notifications.column_settings.favourite": "Favourites:", @@ -379,6 +455,8 @@ "privacy.public.short": "ⵜⴰⴳⴷⵓⴷⴰⵏⵜ", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "ⴰⵣⴷⴰⵎ…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.unfollow": "Unfollow @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "ⵔⵣⵓ", + "search.search_or_paste": "Search or paste URL", "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", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "ⴳⴷⵍ @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", + "status.filter": "Filter this post", "status.filtered": "Filtered", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "ⵙⵙⵉⵍⵉ ⵓⴳⴳⴰⵔ", @@ -479,26 +575,32 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "ⵔⴰⵔ", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", "status.sensitive_warning": "Sensitive content", "status.share": "ⴱⴹⵓ", + "status.show_filter_reason": "Show anyway", "status.show_less": "ⵙⵎⴰⵍ ⴷⵔⵓⵙ", "status.show_less_all": "ⵙⵎⴰⵍ ⴷⵔⵓⵙ ⵉ ⵎⴰⵕⵕⴰ", "status.show_more": "ⵙⵎⴰⵍ ⵓⴳⴳⴰⵔ", "status.show_more_all": "ⵙⵎⴰⵍ ⵓⴳⴳⴰⵔ ⵉ ⵎⴰⵕⵕⴰ", - "status.show_thread": "Show thread", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "ⴰⵙⵏⵓⴱⴳ", "tabs_bar.local_timeline": "ⴰⴷⵖⴰⵔⴰⵏ", "tabs_bar.notifications": "ⵜⵉⵏⵖⵎⵉⵙⵉⵏ", - "tabs_bar.search": "ⵔⵣⵓ", "time_remaining.days": "{number, plural, one {# ⵡⴰⵙⵙ} other {# ⵡⵓⵙⵙⴰⵏ}} ⵉⵇⵇⵉⵎⵏ", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "ⵉⵎⴹⴼⴰⵕⵏ", "timeline_hint.resources.follows": "Follows", "timeline_hint.resources.statuses": "Older toots", - "trends.counter_by_accounts": "{count, plural, one {{counter} ⵓⴼⴳⴰⵏ} other {{counter} ⵉⴼⴳⴰⵏⵏ}} ⴰⴳ ⵙⵙⴰⵡⴰⵍⵏ", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", + "upload_progress.processing": "Processing…", "video.close": "ⵔⴳⵍ ⴰⴼⵉⴷⵢⵓ", "video.download": "ⴰⴳⵎ ⴰⴼⴰⵢⵍⵓ", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index d4b7db72a74a13..10c137e8358218 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1,4 +1,16 @@ { + "about.blocks": "被限制的服务器", + "about.contact": "联系方式:", + "about.disclaimer": "Mastodon 是免费的开源软件,由 Mastodon gGmbH 持有商标。", + "about.domain_blocks.no_reason_available": "原因不可用", + "about.domain_blocks.preamble": "通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但其中一些在本服务器上被设置为例外。", + "about.domain_blocks.silenced.explanation": "除非明确地搜索并关注对方,否则你不会看到来自此服务器的用户信息与内容。", + "about.domain_blocks.silenced.title": "已隐藏", + "about.domain_blocks.suspended.explanation": "此服务器的数据将不会被处理、存储或者交换,本站也将无法和来自此服务器的用户互动或者交流。", + "about.domain_blocks.suspended.title": "已封禁", + "about.not_available": "此信息在当前服务器尚不可用。", + "about.powered_by": "由 {mastodon} 驱动的分布式社交媒体", + "about.rules": "站点规则", "account.account_note_header": "备注", "account.add_or_remove_from_list": "从列表中添加或移除", "account.badges.bot": "机器人", @@ -7,13 +19,16 @@ "account.block_domain": "屏蔽 {domain} 实例", "account.blocked": "已屏蔽", "account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情", - "account.cancel_follow_request": "取消关注请求", + "account.cancel_follow_request": "撤回关注请求", "account.direct": "发送私信给 @{name}", "account.disable_notifications": "当 @{name} 发嘟时不要通知我", "account.domain_blocked": "域名已屏蔽", "account.edit_profile": "修改个人资料", "account.enable_notifications": "当 @{name} 发嘟时通知我", "account.endorse": "在个人资料中推荐此用户", + "account.featured_tags.last_status_at": "最近发言于 {date}", + "account.featured_tags.last_status_never": "暂无嘟文", + "account.featured_tags.title": "{name} 的精选标签", "account.follow": "关注", "account.followers": "关注者", "account.followers.empty": "目前无人关注此用户。", @@ -22,16 +37,19 @@ "account.following_counter": "正在关注 {counter} 人", "account.follows.empty": "此用户目前尚未关注任何人。", "account.follows_you": "关注了你", + "account.go_to_profile": "转到个人资料", "account.hide_reblogs": "隐藏来自 @{name} 的转贴", - "account.joined": "加入于 {date}", + "account.joined_short": "加入于", + "account.languages": "更改订阅语言", "account.link_verified_on": "此链接的所有权已在 {date} 检查", "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注者。", "account.media": "媒体", "account.mention": "提及 @{name}", - "account.moved_to": "{name} 已经迁移到:", + "account.moved_to": "{name} 的新账号是:", "account.mute": "隐藏 @{name}", "account.mute_notifications": "隐藏来自 @{name} 的通知", "account.muted": "已隐藏", + "account.open_original_page": "打开原始页面", "account.posts": "嘟文", "account.posts_with_replies": "嘟文和回复", "account.report": "举报 @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "哎呀!", "announcement.announcement": "公告", "attachments_list.unprocessed": "(未处理)", + "audio.hide": "隐藏音频", "autosuggest_hashtag.per_week": "每星期 {count} 条", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", - "bundle_column_error.body": "载入这个组件时发生了错误。", + "bundle_column_error.copy_stacktrace": "复制错误报告", + "bundle_column_error.error.body": "请求的页面无法渲染。这可能是由于代码错误或浏览器兼容性等问题造成。", + "bundle_column_error.error.title": "糟糕!", + "bundle_column_error.network.body": "尝试加载此页面时出错。这可能是由于你到此服务器的网络连接存在问题。", + "bundle_column_error.network.title": "网络错误", "bundle_column_error.retry": "重试", - "bundle_column_error.title": "网络错误", + "bundle_column_error.return": "返回首页", + "bundle_column_error.routing.body": "找不到请求的页面。你确定地址栏中的 URL 正确吗?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "关闭", "bundle_modal_error.message": "载入这个组件时发生了错误。", "bundle_modal_error.retry": "重试", + "closed_registrations.other_server_instructions": "基于 Mastodon 去中心化的特性,你可以在其它服务器上创建账号并继续与此账号保持联系。", + "closed_registrations_modal.description": "目前不能在 {domain} 上创建账号,但请注意使用 Mastodon 并非必须持有 {domain} 上的账号。", + "closed_registrations_modal.find_another_server": "查找另外的服务器", + "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以无论在哪个实例创建账号,都可以关注本服务器上的账号并与之交流。 或者你还可以自己搭建实例!", + "closed_registrations_modal.title": "在 Mastodon 注册", + "column.about": "关于", "column.blocks": "已屏蔽的用户", "column.bookmarks": "书签", "column.community": "本站时间轴", @@ -106,11 +137,11 @@ "compose_form.poll.remove_option": "移除此选项", "compose_form.poll.switch_to_multiple": "将投票改为多选", "compose_form.poll.switch_to_single": "将投票改为单选", - "compose_form.publish": "嘟嘟", + "compose_form.publish": "发布", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "保存更改", - "compose_form.sensitive.hide": "{count, plural, one {将媒体标记为敏感内容} other {将媒体标记为敏感内容}}", - "compose_form.sensitive.marked": "{count, plural, one {媒体已被标记为敏感内容} other {媒体已被标记为敏感内容}}", + "compose_form.sensitive.hide": "标记媒体为敏感内容", + "compose_form.sensitive.marked": "媒体已被标记为敏感内容", "compose_form.sensitive.unmarked": "媒体未被标记为敏感内容", "compose_form.spoiler.marked": "移除内容警告", "compose_form.spoiler.unmarked": "添加内容警告", @@ -119,6 +150,8 @@ "confirmations.block.block_and_report": "屏蔽与举报", "confirmations.block.confirm": "屏蔽", "confirmations.block.message": "你确定要屏蔽 {name} 吗?", + "confirmations.cancel_follow_request.confirm": "撤回请求", + "confirmations.cancel_follow_request.message": "确定要撤回对 {name} 的关注请求吗?", "confirmations.delete.confirm": "删除", "confirmations.delete.message": "你确定要删除这条嘟文吗?", "confirmations.delete_list.confirm": "删除", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "标记为已读", "conversation.open": "查看对话", "conversation.with": "与 {names}", + "copypaste.copied": "已复制", + "copypaste.copy": "复制", "directory.federated": "来自已知联邦宇宙", "directory.local": "仅来自 {domain}", "directory.new_arrivals": "新来者", "directory.recently_active": "最近活跃", + "disabled_account_banner.account_settings": "账号设置", + "disabled_account_banner.text": "您的账号 {disabledAccount} 目前已被禁用。", + "dismissable_banner.community_timeline": "这些是来自 {domain} 用户的最新公共嘟文。", + "dismissable_banner.dismiss": "忽略", + "dismissable_banner.explore_links": "这些新闻故事正被本站和分布式网络上其他站点的用户谈论。", + "dismissable_banner.explore_statuses": "来自本站和分布式网络上其他站点的这些嘟文正在本站引起关注。", + "dismissable_banner.explore_tags": "这些标签正在本站和分布式网络上其他站点的用户中引起关注。", + "dismissable_banner.public_timeline": "这些是来自本站和分布式网络上其他已知站点用户的最新公共嘟文。", "embed.instructions": "复制下列代码以在你的网站中嵌入此嘟文。", "embed.preview": "它会像这样显示出来:", "emoji_button.activity": "活动", @@ -196,21 +239,37 @@ "explore.trending_links": "最新消息", "explore.trending_statuses": "嘟文", "explore.trending_tags": "话题标签", + "filter_modal.added.context_mismatch_explanation": "此过滤器分类不适用访问过嘟文的环境中。如果你想要在环境中过滤嘟文,你必须编辑此过滤器。", + "filter_modal.added.context_mismatch_title": "环境不匹配!", + "filter_modal.added.expired_explanation": "此过滤器分类已过期,你需要修改到期日期才能应用。", + "filter_modal.added.expired_title": "过滤器已过期!", + "filter_modal.added.review_and_configure": "要审核并进一步配置此过滤器分类,请前往{settings_link}。", + "filter_modal.added.review_and_configure_title": "过滤器设置", + "filter_modal.added.settings_link": "设置页面", + "filter_modal.added.short_explanation": "此嘟文已添加到以下过滤器分类:{title}。", + "filter_modal.added.title": "过滤器已添加 !", + "filter_modal.select_filter.context_mismatch": "不适用于此环境", + "filter_modal.select_filter.expired": "已过期", + "filter_modal.select_filter.prompt_new": "新分类:{name}", + "filter_modal.select_filter.search": "搜索或创建", + "filter_modal.select_filter.subtitle": "使用一个已存在分类,或创建一个新分类", + "filter_modal.select_filter.title": "过滤此嘟文", + "filter_modal.title.status": "过滤一条嘟文", "follow_recommendations.done": "完成", "follow_recommendations.heading": "关注你感兴趣的用户!这里有一些推荐。", - "follow_recommendations.lead": "你关注的人的嘟文将按时间顺序在你的主页上显示。 别担心,你可以随时取消关注!", + "follow_recommendations.lead": "你关注的人的嘟文将按时间顺序显示在你的主页上。别担心,你可以在任何时候取消对别人的关注!", "follow_request.authorize": "授权", "follow_request.reject": "拒绝", "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。", + "footer.about": "关于本站", + "footer.directory": "用户目录", + "footer.get_app": "获取应用程序", + "footer.invite": "邀请", + "footer.keyboard_shortcuts": "快捷键列表", + "footer.privacy_policy": "隐私政策", + "footer.source_code": "查看源代码", "generic.saved": "已保存", - "getting_started.developers": "开发", - "getting_started.directory": "用户目录", - "getting_started.documentation": "文档", "getting_started.heading": "开始使用", - "getting_started.invite": "邀请用户", - "getting_started.open_source_notice": "Mastodon 是开源软件。欢迎前往 GitHub({github})贡献代码或反馈问题。", - "getting_started.security": "账号设置", - "getting_started.terms": "使用条款", "hashtag.column_header.tag_mode.all": "以及 {additional}", "hashtag.column_header.tag_mode.any": "或是 {additional}", "hashtag.column_header.tag_mode.none": "而不用 {additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "任一", "hashtag.column_settings.tag_mode.none": "无一", "hashtag.column_settings.tag_toggle": "在此栏加入额外的标签", + "hashtag.follow": "关注哈希标签", + "hashtag.unfollow": "取消关注哈希标签", "home.column_settings.basic": "基本设置", "home.column_settings.show_reblogs": "显示转嘟", "home.column_settings.show_replies": "显示回复", "home.hide_announcements": "隐藏公告", "home.show_announcements": "显示公告", + "interaction_modal.description.favourite": "拥有一个 Mastodon 账号,你可以对此嘟文点赞及收藏,并让其作者收到你的赞赏。", + "interaction_modal.description.follow": "拥有一个 Mastodon 账号,你可以关注 {name} 并在自己的首页上接收对方的新嘟文。", + "interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你可以向自己的关注者们转发此嘟文。", + "interaction_modal.description.reply": "拥有一个 Mastodon 账号,你可以回复此嘟文。", + "interaction_modal.on_another_server": "在另一服务器", + "interaction_modal.on_this_server": "在此服务器", + "interaction_modal.other_server_instructions": "复制此链接并粘贴到你使用的Mastodon应用或者Mastodon服务器网页版搜索栏中。", + "interaction_modal.preamble": "基于 Mastodon 去中心化的特性,如果你在本站没有账号,也可以使用在另一 Mastodon 服务器或其他兼容平台上的已有账号。", + "interaction_modal.title.favourite": "喜欢 {name} 的嘟文", + "interaction_modal.title.follow": "关注 {name}", + "interaction_modal.title.reblog": "转发 {name} 的嘟文", + "interaction_modal.title.reply": "回复 {name} 的嘟文", "intervals.full.days": "{number} 天", "intervals.full.hours": "{number} 小时", "intervals.full.minutes": "{number} 分钟", @@ -268,7 +341,7 @@ "lightbox.next": "下一个", "lightbox.previous": "上一个", "limited_account_hint.action": "仍然显示个人资料", - "limited_account_hint.title": "此个人资料已被服务器监察员隐藏。", + "limited_account_hint.title": "此账号资料已被 {domain} 管理员隐藏。", "lists.account.add": "添加到列表", "lists.account.remove": "从列表中移除", "lists.delete": "删除列表", @@ -278,7 +351,7 @@ "lists.new.title_placeholder": "新列表的标题", "lists.replies_policy.followed": "任何被关注的用户", "lists.replies_policy.list": "列表成员", - "lists.replies_policy.none": "没有人", + "lists.replies_policy.none": "无人", "lists.replies_policy.title": "显示回复给:", "lists.search": "搜索你关注的人", "lists.subheading": "你的列表", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "隐藏图片", "missing_indicator.label": "找不到内容", "missing_indicator.sublabel": "无法找到此资源", + "moved_to_account_banner.text": "您的账号 {disabledAccount} 已停用,因为您已迁移到 {movedToAccount} 。", "mute_modal.duration": "持续时长", "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知?", "mute_modal.indefinite": "无期限", - "navigation_bar.apps": "移动应用", + "navigation_bar.about": "关于", "navigation_bar.blocks": "已屏蔽的用户", "navigation_bar.bookmarks": "书签", "navigation_bar.community_timeline": "本站时间轴", @@ -304,8 +378,6 @@ "navigation_bar.filters": "隐藏关键词", "navigation_bar.follow_requests": "关注请求", "navigation_bar.follows_and_followers": "关注管理", - "navigation_bar.info": "关于本站", - "navigation_bar.keyboard_shortcuts": "快捷键列表", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", "navigation_bar.mutes": "已隐藏的用户", @@ -313,7 +385,10 @@ "navigation_bar.pins": "置顶嘟文", "navigation_bar.preferences": "首选项", "navigation_bar.public_timeline": "跨站公共时间轴", + "navigation_bar.search": "搜索", "navigation_bar.security": "安全", + "not_signed_in_indicator.not_signed_in": "您需要登录才能访问此资源。", + "notification.admin.report": "{name} 已报告 {target}", "notification.admin.sign_up": "{name} 注册了", "notification.favourite": "{name} 喜欢了你的嘟文", "notification.follow": "{name} 开始关注你", @@ -321,11 +396,12 @@ "notification.mention": "{name} 提及了你", "notification.own_poll": "你的投票已经结束", "notification.poll": "你参与的一个投票已经结束", - "notification.reblog": "{name} 转嘟了你的嘟文", + "notification.reblog": "{name} 转发了你的嘟文", "notification.status": "{name} 刚刚发嘟", "notification.update": "{name} 编辑了嘟文", "notifications.clear": "清空通知列表", "notifications.clear_confirmation": "你确定要永久清空通知列表吗?", + "notifications.column_settings.admin.report": "新报告", "notifications.column_settings.admin.sign_up": "新注册:", "notifications.column_settings.alert": "桌面通知", "notifications.column_settings.favourite": "喜欢:", @@ -373,12 +449,14 @@ "privacy.change": "设置嘟文的可见范围", "privacy.direct.long": "只有被提及的用户能看到", "privacy.direct.short": "仅提到的人", - "privacy.private.long": "仅关注者可见", - "privacy.private.short": "仅对关注者可见", + "privacy.private.long": "仅对关注者可见", + "privacy.private.short": "仅关注者", "privacy.public.long": "所有人可见", "privacy.public.short": "公开", "privacy.unlisted.long": "对所有人可见,但不加入探索功能", "privacy.unlisted.short": "不公开", + "privacy_policy.last_updated": "最近更新于 {date}", + "privacy_policy.title": "隐私政策", "refresh": "刷新", "regeneration_indicator.label": "加载中……", "regeneration_indicator.sublabel": "你的主页动态正在准备中!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "感谢提交举报,我们将会进行处理。", "report.unfollow": "取消关注 @{name}", "report.unfollow_explanation": "你正在关注此账户。如果要想在你的主页上不再看到他们的帖子,取消对他们的关注即可。", + "report_notification.attached_statuses": "附上 {count} 条嘟文", + "report_notification.categories.other": "其他", + "report_notification.categories.spam": "骚扰", + "report_notification.categories.violation": "违反规则", + "report_notification.open": "展开报告", "search.placeholder": "搜索", + "search.search_or_paste": "搜索或输入链接", "search_popout.search_format": "高级搜索格式", "search_popout.tips.full_text": "输入关键词检索所有你发送、喜欢、转嘟过或提及到你的帖子,以及其他用户公开的用户名、昵称和话题标签。", "search_popout.tips.hashtag": "话题标签", @@ -444,7 +528,17 @@ "search_results.nothing_found": "无法找到符合这些搜索词的任何内容", "search_results.statuses": "嘟文", "search_results.statuses_fts_disabled": "此 Mastodon 服务器未启用帖子内容搜索。", + "search_results.title": "搜索 {q}", "search_results.total": "共 {count, number} 个结果", + "server_banner.about_active_users": "过去 30 天内使用此服务器的人(每月活跃用户)", + "server_banner.active_users": "活跃用户", + "server_banner.administered_by": "本站管理员:", + "server_banner.introduction": "{domain} 是由 {mastodon} 驱动的去中心化社交网络的一部分。", + "server_banner.learn_more": "了解更多", + "server_banner.server_stats": "服务器统计数据:", + "sign_in_banner.create_account": "创建账户", + "sign_in_banner.sign_in": "登录", + "sign_in_banner.text": "登录以关注个人资料或主题标签、喜欢、分享和嘟文,或与在不同服务器上的帐号进行互动。", "status.admin_account": "打开 @{name} 的管理界面", "status.admin_status": "打开此帖的管理界面", "status.block": "屏蔽 @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "共编辑 {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "嵌入", "status.favourite": "喜欢", + "status.filter": "过滤此嘟文", "status.filtered": "已过滤", + "status.hide": "屏蔽嘟文", "status.history.created": "{name} 创建于 {date}", "status.history.edited": "{name} 编辑于 {date}", "status.load_more": "加载更多", @@ -479,26 +575,32 @@ "status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。", "status.redraft": "删除并重新编辑", "status.remove_bookmark": "移除书签", + "status.replied_to": "回复给 {name}", "status.reply": "回复", "status.replyAll": "回复所有人", "status.report": "举报 @{name}", "status.sensitive_warning": "敏感内容", "status.share": "分享", + "status.show_filter_reason": "继续显示", "status.show_less": "隐藏内容", "status.show_less_all": "隐藏全部内容", "status.show_more": "显示更多", "status.show_more_all": "显示全部内容", - "status.show_thread": "显示全部对话", + "status.show_original": "显示原文", + "status.translate": "翻译", + "status.translated_from_with": "由 {provider} 翻译自 {lang}", "status.uncached_media_warning": "暂不可用", "status.unmute_conversation": "恢复此对话的通知提醒", "status.unpin": "在个人资料页面取消置顶", + "subscribed_languages.lead": "更改此选择后,仅选定语言的嘟文会出现在您的主页和列表时间轴上。选择「无」将接收所有语言的嘟文。", + "subscribed_languages.save": "保存更改", + "subscribed_languages.target": "为 {target} 更改订阅语言", "suggestions.dismiss": "关闭建议", "suggestions.header": "你可能会感兴趣…", "tabs_bar.federated_timeline": "跨站", "tabs_bar.home": "主页", "tabs_bar.local_timeline": "本地", "tabs_bar.notifications": "通知", - "tabs_bar.search": "搜索", "time_remaining.days": "剩余 {number, plural, one {# 天} other {# 天}}", "time_remaining.hours": "剩余 {number, plural, one {# 小时} other {# 小时}}", "time_remaining.minutes": "剩余 {number, plural, one {# 分钟} other {# 分钟}}", @@ -508,7 +610,7 @@ "timeline_hint.resources.followers": "关注者", "timeline_hint.resources.follows": "关注", "timeline_hint.resources.statuses": "更早的嘟文", - "trends.counter_by_accounts": "{count, plural, one {{counter} 人} other {{counter} 人}}正在讨论", + "trends.counter_by_accounts": "过去 {day} 天有 {counter} 人讨论", "trends.trending_now": "现在流行", "ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会丢失。", "units.short.billion": "{count} B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "正在准备文字识别…", "upload_modal.preview_label": "预览 ({ratio})", "upload_progress.label": "上传中…", + "upload_progress.processing": "正在处理…", "video.close": "关闭视频", "video.download": "下载文件", "video.exit_fullscreen": "退出全屏", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index dc0b794dd90de2..495cfdca494980 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -1,4 +1,16 @@ { + "about.blocks": "受管制的伺服器", + "about.contact": "聯絡我們:", + "about.disclaimer": "Mastodon 是一個自由的開源軟體,為 Mastodon gGmbH 的註冊商標。", + "about.domain_blocks.no_reason_available": "Reason not available", + "about.domain_blocks.preamble": "Mastodon 一般允許您閱讀,並和聯邦宇宙上任何伺服器的用戶互動。這些伺服器是本站設下的例外。", + "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確地打開或著追蹤此個人檔案。", + "about.domain_blocks.silenced.title": "受限的", + "about.domain_blocks.suspended.explanation": "來自此伺服器的資料將不會被處理、儲存或交換,本站也將無法和此伺服器上的用戶互動或者溝通。", + "about.domain_blocks.suspended.title": "已停權", + "about.not_available": "此信息在此伺服器上尚未可存取。", + "about.powered_by": "由 {mastodon} 提供之去中心化社交媒體", + "about.rules": "伺服器規則", "account.account_note_header": "筆記", "account.add_or_remove_from_list": "從列表中新增或移除", "account.badges.bot": "機械人", @@ -7,74 +19,93 @@ "account.block_domain": "封鎖來自 {domain} 的一切文章", "account.blocked": "已封鎖", "account.browse_more_on_origin_server": "瀏覽原服務站上的個人資料頁", - "account.cancel_follow_request": "取消關注請求", + "account.cancel_follow_request": "撤回追蹤請求", "account.direct": "私訊 @{name}", "account.disable_notifications": "如果 @{name} 發文請不要再通知我", "account.domain_blocked": "服務站被封鎖", "account.edit_profile": "修改個人資料", "account.enable_notifications": "如果 @{name} 發文請通知我", "account.endorse": "在個人資料頁推薦對方", + "account.featured_tags.last_status_at": "上次帖文於 {date}", + "account.featured_tags.last_status_never": "沒有帖文", + "account.featured_tags.title": "{name} 的精選標籤", "account.follow": "關注", - "account.followers": "關注者", - "account.followers.empty": "尚未有人關注這位使用者。", - "account.followers_counter": "有 {count, plural,one {{counter} 個} other {{counter} 個}}關注者", - "account.following": "Following", - "account.following_counter": "正在關注 {count, plural,one {{counter}}other {{counter} 人}}", - "account.follows.empty": "這位使用者尚未關注任何人。", - "account.follows_you": "關注你", + "account.followers": "追蹤者", + "account.followers.empty": "尚未有人追蹤這位使用者。", + "account.followers_counter": "有 {count, plural,one {{counter} 個} other {{counter} 個}} 追蹤者", + "account.following": "正在追蹤", + "account.following_counter": "正在追蹤 {count, plural,one {{counter}}other {{counter} 人}}", + "account.follows.empty": "這位使用者尚未追蹤任何人。", + "account.follows_you": "追蹤您", + "account.go_to_profile": "前往個人檔案", "account.hide_reblogs": "隱藏 @{name} 的轉推", - "account.joined": "於 {date} 加入", + "account.joined_short": "加入於", + "account.languages": "變更訂閱語言", "account.link_verified_on": "此連結的所有權已在 {date} 檢查過", - "account.locked_info": "這位使用者將私隱設定為「不公開」,會手動審批誰能關注他/她。", + "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核追蹤者。", "account.media": "媒體", "account.mention": "提及 @{name}", - "account.moved_to": "{name} 已經遷移到:", + "account.moved_to": "{name} 的新帳號現在是:", "account.mute": "將 @{name} 靜音", "account.mute_notifications": "將來自 @{name} 的通知靜音", "account.muted": "靜音", + "account.open_original_page": "Open original page", "account.posts": "文章", "account.posts_with_replies": "包含回覆的文章", "account.report": "舉報 @{name}", - "account.requested": "等候審批", + "account.requested": "正在等待核准。按一下以取消追蹤請求", "account.share": "分享 @{name} 的個人資料", "account.show_reblogs": "顯示 @{name} 的推文", "account.statuses_counter": "{count, plural,one {{counter} 篇}other {{counter} 篇}}文章", "account.unblock": "解除對 @{name} 的封鎖", "account.unblock_domain": "解除對域名 {domain} 的封鎖", - "account.unblock_short": "Unblock", + "account.unblock_short": "解除封鎖", "account.unendorse": "不再於個人資料頁面推薦對方", - "account.unfollow": "取消關注", + "account.unfollow": "取消追蹤", "account.unmute": "取消 @{name} 的靜音", "account.unmute_notifications": "取消來自 @{name} 通知的靜音", - "account.unmute_short": "Unmute", + "account.unmute_short": "取消靜音", "account_note.placeholder": "按此添加備注", - "admin.dashboard.daily_retention": "User retention rate by day after sign-up", - "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", - "admin.dashboard.retention.average": "Average", - "admin.dashboard.retention.cohort": "Sign-up month", - "admin.dashboard.retention.cohort_size": "New users", + "admin.dashboard.daily_retention": "註冊後用戶日計存留率", + "admin.dashboard.monthly_retention": "註冊後用戶月計存留率", + "admin.dashboard.retention.average": "平均", + "admin.dashboard.retention.cohort": "註冊月份", + "admin.dashboard.retention.cohort_size": "新用戶", "alert.rate_limited.message": "請在 {retry_time, time, medium} 後重試", "alert.rate_limited.title": "已限速", "alert.unexpected.message": "發生不可預期的錯誤。", "alert.unexpected.title": "噢!", "announcement.announcement": "公告", - "attachments_list.unprocessed": "(unprocessed)", + "attachments_list.unprocessed": "(未處理)", + "audio.hide": "隱藏音訊", "autosuggest_hashtag.per_week": "{count} / 週", "boost_modal.combo": "如你想在下次路過這顯示,請按{combo},", - "bundle_column_error.body": "加載本組件出錯。", + "bundle_column_error.copy_stacktrace": "複製錯誤報告", + "bundle_column_error.error.body": "無法提供請求的頁面。這可能是因為代碼出現錯誤或瀏覽器出現相容問題。", + "bundle_column_error.error.title": "大鑊!", + "bundle_column_error.network.body": "嘗試載入此頁面時發生錯誤。這可能是因為您的網路連線或此伺服器暫時出現問題。", + "bundle_column_error.network.title": "網絡錯誤", "bundle_column_error.retry": "重試", - "bundle_column_error.title": "網絡錯誤", + "bundle_column_error.return": "返回主頁", + "bundle_column_error.routing.body": "找不到請求的頁面。您確定網址欄中的 URL 正確嗎?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "關閉", "bundle_modal_error.message": "加載本組件出錯。", "bundle_modal_error.retry": "重試", + "closed_registrations.other_server_instructions": "基於Mastodon去中心化的特性,你可以在其他伺服器上創建賬戶並與本站互動。", + "closed_registrations_modal.description": "目前無法在 {domain} 建立新帳號,但您並不一定需要擁有 {domain} 的帳號亦能使用 Mastodon 。", + "closed_registrations_modal.find_another_server": "尋找另外的伺服器", + "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器建立帳號,都可以追蹤此伺服器上的任何人並與他們互動。您甚至可以自行搭建一個全新的伺服器!", + "closed_registrations_modal.title": "在 Mastodon 註冊", + "column.about": "關於", "column.blocks": "封鎖名單", "column.bookmarks": "書籤", "column.community": "本站時間軸", - "column.direct": "Direct messages", + "column.direct": "私訊", "column.directory": "瀏覽個人資料", "column.domain_blocks": "封鎖的服務站", "column.favourites": "最愛的文章", - "column.follow_requests": "關注請求", + "column.follow_requests": "追蹤請求", "column.home": "主頁", "column.lists": "列表", "column.mutes": "靜音名單", @@ -92,10 +123,10 @@ "community.column_settings.local_only": "只顯示本站", "community.column_settings.media_only": "只顯示多媒體", "community.column_settings.remote_only": "只顯示外站", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "更改語言", + "compose.language.search": "搜尋語言...", "compose_form.direct_message_warning_learn_more": "了解更多", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", + "compose_form.encryption_warning": "Mastodon 上的帖文並未端對端加密。請不要透過 Mastodon 分享任何敏感資訊。", "compose_form.hashtag_warning": "這文章因為不是公開,所以不會被標籤搜索。只有公開的文章才會被標籤搜索。", "compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。", "compose_form.lock_disclaimer.lock": "鎖定", @@ -106,9 +137,9 @@ "compose_form.poll.remove_option": "移除此選擇", "compose_form.poll.switch_to_multiple": "變更投票為允許多個選項", "compose_form.poll.switch_to_single": "變更投票為限定單一選項", - "compose_form.publish": "發文", + "compose_form.publish": "發佈", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "儲存變更", "compose_form.sensitive.hide": "標記媒體為敏感內容", "compose_form.sensitive.marked": "媒體被標示為敏感", "compose_form.sensitive.unmarked": "媒體沒有被標示為敏感", @@ -119,12 +150,14 @@ "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", "confirmations.block.message": "你確定要封鎖{name}嗎?", + "confirmations.cancel_follow_request.confirm": "撤回請求", + "confirmations.cancel_follow_request.message": "您確定要撤回追蹤 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", "confirmations.delete.message": "你確定要刪除這文章嗎?", "confirmations.delete_list.confirm": "刪除", "confirmations.delete_list.message": "你確定要永久刪除這列表嗎?", - "confirmations.discard_edit_media.confirm": "Discard", - "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", + "confirmations.discard_edit_media.confirm": "捨棄", + "confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?", "confirmations.domain_block.confirm": "封鎖整個網站", "confirmations.domain_block.message": "你真的真的確定要封鎖整個 {domain} ?多數情況下,封鎖或靜音幾個特定目標就已經有效,也是比較建議的做法。若然封鎖全站,你將不會再在這裏看到該站的內容和通知。來自該站的關注者亦會被移除。", "confirmations.logout.confirm": "登出", @@ -136,20 +169,30 @@ "confirmations.redraft.message": "你確定要刪除並重新編輯嗎?所有相關的回覆、轉推與最愛都會被刪除。", "confirmations.reply.confirm": "回覆", "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?", - "confirmations.unfollow.confirm": "取消關注", - "confirmations.unfollow.message": "真的不要繼續關注 {name} 了嗎?", + "confirmations.unfollow.confirm": "取消追蹤", + "confirmations.unfollow.message": "真的不要繼續追蹤 {name} 了嗎?", "conversation.delete": "刪除對話", "conversation.mark_as_read": "標為已讀", "conversation.open": "檢視對話", "conversation.with": "與 {names}", + "copypaste.copied": "已複製", + "copypaste.copy": "複製", "directory.federated": "來自已知的聯盟網絡", "directory.local": "僅來自 {domain}", "directory.new_arrivals": "新內容", "directory.recently_active": "最近活躍", + "disabled_account_banner.account_settings": "帳號設定", + "disabled_account_banner.text": "您的帳號 {disabledAccount} 目前已停用。", + "dismissable_banner.community_timeline": "這些是 {domain} 上用戶的最新公開帖文。", + "dismissable_banner.dismiss": "關閉", + "dismissable_banner.explore_links": "這些新聞內容正在被本站以及去中心化網路上其他伺服器的人們熱烈討論。", + "dismissable_banner.explore_statuses": "來自本站以及去中心化網路中其他伺服器的這些帖文正在本站引起關注。", + "dismissable_banner.explore_tags": "這些主題標籤正在被本站以及去中心化網路上的人們熱烈討論。", + "dismissable_banner.public_timeline": "這些是來自本站以及去中心化網路中其他已知伺服器之最新公開帖文。", "embed.instructions": "要內嵌此文章,請將以下代碼貼進你的網站。", "embed.preview": "看上去會是這樣:", "emoji_button.activity": "活動", - "emoji_button.clear": "Clear", + "emoji_button.clear": "清除", "emoji_button.custom": "自訂", "emoji_button.flags": "旗幟", "emoji_button.food": "飲飲食食", @@ -169,13 +212,13 @@ "empty_column.blocks": "你還沒有封鎖任何使用者。", "empty_column.bookmarked_statuses": "你還沒建立任何書籤。這裡將會顯示你建立的書籤。", "empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!", - "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", + "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將在此顯示。", "empty_column.domain_blocks": "尚未隱藏任何網域。", - "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", + "empty_column.explore_statuses": "目前沒有熱門話題,請稍候再回來看看!", "empty_column.favourited_statuses": "你還沒收藏任何文章。這裡將會顯示你收藏的嘟文。", "empty_column.favourites": "還沒有人收藏這則文章。這裡將會顯示被收藏的嘟文。", "empty_column.follow_recommendations": "似乎未能替您產生任何建議。您可以試著搜尋您知道的帳戶或者探索熱門主題標籤", - "empty_column.follow_requests": "您尚未收到任何關注請求。這裡將會顯示收到的關注請求。", + "empty_column.follow_requests": "您尚未收到任何追蹤請求。這裡將會顯示收到的追蹤請求。", "empty_column.hashtag": "這個標籤暫時未有內容。", "empty_column.home": "你還沒有關注任何使用者。快看看{public},向其他使用者搭訕吧。", "empty_column.home.suggestions": "檢視部份建議", @@ -190,27 +233,43 @@ "error.unexpected_crash.next_steps_addons": "請嘗試停止使用這些附加元件然後重新載入頁面。如果問題沒有解決,你仍然可以使用不同的瀏覽器或 Mastodon 應用程式來檢視。", "errors.unexpected_crash.copy_stacktrace": "複製 stacktrace 到剪貼簿", "errors.unexpected_crash.report_issue": "舉報問題", - "explore.search_results": "Search results", - "explore.suggested_follows": "For you", - "explore.title": "Explore", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.search_results": "搜尋結果", + "explore.suggested_follows": "為您推薦", + "explore.title": "探索", + "explore.trending_links": "最新消息", + "explore.trending_statuses": "帖文", + "explore.trending_tags": "主題標籤", + "filter_modal.added.context_mismatch_explanation": "此過濾器類別不適用於您所存取帖文的情境。如果您想要此帖文被於此情境被過濾,您必須編輯過濾器。", + "filter_modal.added.context_mismatch_title": "情境不符合!", + "filter_modal.added.expired_explanation": "此過濾器類別已失效,您需要更新過期日期才能套用。", + "filter_modal.added.expired_title": "過期的過濾器!", + "filter_modal.added.review_and_configure": "若欲檢視並進一步配置此過濾器類別,請前往 {settings_link}。", + "filter_modal.added.review_and_configure_title": "過濾器設定", + "filter_modal.added.settings_link": "設定頁面", + "filter_modal.added.short_explanation": "此帖文已被新增至以下過濾器類別:{title}。", + "filter_modal.added.title": "已新增過濾器!", + "filter_modal.select_filter.context_mismatch": "不適用於目前情境", + "filter_modal.select_filter.expired": "已過期", + "filter_modal.select_filter.prompt_new": "新類別:{name}", + "filter_modal.select_filter.search": "搜尋或新增", + "filter_modal.select_filter.subtitle": "使用既有類別,或創建一個新類別", + "filter_modal.select_filter.title": "過濾此帖文", + "filter_modal.title.status": "過濾一則帖文", "follow_recommendations.done": "完成", - "follow_recommendations.heading": "跟隨人們以看到來自他們的嘟文!這裡有些建議。", - "follow_recommendations.lead": "您跟隨對象知嘟文將會以時間順序顯示於您的 home feed 上。別擔心犯下錯誤,您隨時可以取消跟隨人們!", + "follow_recommendations.heading": "追蹤人們以看到他們的帖文!這裡有些建議。", + "follow_recommendations.lead": "您所追蹤的對象之帖文將會以時間順序顯示於您的首頁時間軸上。別擔心犯下錯誤,您隨時可以取消追蹤任何人!", "follow_request.authorize": "批准", "follow_request.reject": "拒絕", - "follow_requests.unlocked_explanation": "即使您的帳戶未上鎖,{domain} 的工作人員認為您可能想手動審核來自這些帳戶的關注請求。", + "follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。", + "footer.about": "關於", + "footer.directory": "個人檔案目錄", + "footer.get_app": "取得應用程式", + "footer.invite": "邀請他人", + "footer.keyboard_shortcuts": "鍵盤快速鍵", + "footer.privacy_policy": "隱私權政策", + "footer.source_code": "查看原始碼", "generic.saved": "已儲存", - "getting_started.developers": "開發者", - "getting_started.directory": "個人資料目錄", - "getting_started.documentation": "文件", "getting_started.heading": "開始使用", - "getting_started.invite": "邀請使用者", - "getting_started.open_source_notice": "Mastodon(萬象)是一個開放源碼的軟件。你可以在官方 GitHub {github} 貢獻或者回報問題。", - "getting_started.security": "帳戶設定", - "getting_started.terms": "服務條款", "hashtag.column_header.tag_mode.all": "以及{additional}", "hashtag.column_header.tag_mode.any": "或是{additional}", "hashtag.column_header.tag_mode.none": "而無需{additional}", @@ -220,11 +279,25 @@ "hashtag.column_settings.tag_mode.any": "任一", "hashtag.column_settings.tag_mode.none": "全不", "hashtag.column_settings.tag_toggle": "在這欄位加入額外的標籤", + "hashtag.follow": "追蹤主題標籤", + "hashtag.unfollow": "取消追蹤主題標籤", "home.column_settings.basic": "基本", "home.column_settings.show_reblogs": "顯示被轉推的文章", "home.column_settings.show_replies": "顯示回應文章", "home.hide_announcements": "隱藏公告", "home.show_announcements": "顯示公告", + "interaction_modal.description.favourite": "在 Mastodon 上有個帳號的話,您可以點讚並收藏此帖文,讓作者知道您對它的欣賞。", + "interaction_modal.description.follow": "在 Mastodon 上有個帳號的話,您可以追蹤 {name} 以於首頁時間軸接收他們的帖文。", + "interaction_modal.description.reblog": "在 Mastodon 上有個帳號的話,您可以向自己的追縱者們轉發此帖文。", + "interaction_modal.description.reply": "在 Mastodon 上擁有帳號的話,您可以回覆此帖文。", + "interaction_modal.on_another_server": "於不同伺服器", + "interaction_modal.on_this_server": "於此伺服器", + "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", + "interaction_modal.preamble": "由於 Mastodon 是去中心化的,即使您於此伺服器上沒有帳號,仍可以利用託管於其他 Mastodon 伺服器或相容平台上的既存帳號。", + "interaction_modal.title.favourite": "將 {name} 的帖文加入最愛", + "interaction_modal.title.follow": "追蹤 {name}", + "interaction_modal.title.reblog": "轉發 {name} 的帖文", + "interaction_modal.title.reply": "回覆 {name} 的帖文", "intervals.full.days": "{number, plural, one {# 天} other {# 天}}", "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}", "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}", @@ -234,7 +307,7 @@ "keyboard_shortcuts.column": "把標示移動到其中一列", "keyboard_shortcuts.compose": "把標示移動到文字輸入區", "keyboard_shortcuts.description": "描述", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "開啟私訊欄", "keyboard_shortcuts.down": "在列表往下移動", "keyboard_shortcuts.enter": "打開文章", "keyboard_shortcuts.favourite": "收藏文章", @@ -267,8 +340,8 @@ "lightbox.expand": "擴大檢視", "lightbox.next": "下一頁", "lightbox.previous": "上一頁", - "limited_account_hint.action": "Show profile anyway", - "limited_account_hint.title": "This profile has been hidden by the moderators of your server.", + "limited_account_hint.action": "一律顯示個人檔案", + "limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。", "lists.account.add": "新增到列表", "lists.account.remove": "從列表刪除", "lists.delete": "刪除列表", @@ -287,25 +360,24 @@ "media_gallery.toggle_visible": "隱藏圖片", "missing_indicator.label": "找不到內容", "missing_indicator.sublabel": "無法找到內容", + "moved_to_account_banner.text": "您的帳號 {disabledAccount} 目前已停用,因為您已搬家至 {movedToAccount}。", "mute_modal.duration": "時間", "mute_modal.hide_notifications": "需要隱藏這使用者的通知嗎?", "mute_modal.indefinite": "沒期限", - "navigation_bar.apps": "手機 App", + "navigation_bar.about": "關於", "navigation_bar.blocks": "封鎖名單", "navigation_bar.bookmarks": "書籤", "navigation_bar.community_timeline": "本站時間軸", "navigation_bar.compose": "撰寫新文章", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "私訊", "navigation_bar.discover": "探索", "navigation_bar.domain_blocks": "封鎖的服務站", "navigation_bar.edit_profile": "修改個人資料", - "navigation_bar.explore": "Explore", + "navigation_bar.explore": "探索", "navigation_bar.favourites": "最愛的內容", "navigation_bar.filters": "靜音詞彙", - "navigation_bar.follow_requests": "關注請求", - "navigation_bar.follows_and_followers": "關注及關注者", - "navigation_bar.info": "關於本服務站", - "navigation_bar.keyboard_shortcuts": "鍵盤快速鍵", + "navigation_bar.follow_requests": "追蹤請求", + "navigation_bar.follows_and_followers": "追蹤及追蹤者", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", "navigation_bar.mutes": "靜音名單", @@ -313,11 +385,14 @@ "navigation_bar.pins": "置頂文章", "navigation_bar.preferences": "偏好設定", "navigation_bar.public_timeline": "跨站時間軸", + "navigation_bar.search": "搜尋", "navigation_bar.security": "安全", - "notification.admin.sign_up": "{name} signed up", + "not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。", + "notification.admin.report": "{name} 檢舉了 {target}", + "notification.admin.sign_up": "{name} 已經註冊", "notification.favourite": "{name} 喜歡你的文章", - "notification.follow": "{name} 開始關注你", - "notification.follow_request": "{name} 要求關注你", + "notification.follow": "{name} 開始追蹤你", + "notification.follow_request": "{name} 要求追蹤你", "notification.mention": "{name} 提及你", "notification.own_poll": "你的投票已結束", "notification.poll": "你參與過的一個投票已經結束", @@ -326,14 +401,15 @@ "notification.update": "{name} edited a post", "notifications.clear": "清空通知紀錄", "notifications.clear_confirmation": "你確定要清空通知紀錄嗎?", + "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "顯示桌面通知", "notifications.column_settings.favourite": "你最愛的文章:", "notifications.column_settings.filter_bar.advanced": "顯示所有分類", "notifications.column_settings.filter_bar.category": "快速過濾欄", "notifications.column_settings.filter_bar.show_bar": "Show filter bar", - "notifications.column_settings.follow": "關注你:", - "notifications.column_settings.follow_request": "新的關注請求:", + "notifications.column_settings.follow": "新追蹤者:", + "notifications.column_settings.follow_request": "新的追蹤請求:", "notifications.column_settings.mention": "提及你:", "notifications.column_settings.poll": "投票結果:", "notifications.column_settings.push": "推送通知", @@ -347,7 +423,7 @@ "notifications.filter.all": "全部", "notifications.filter.boosts": "轉推", "notifications.filter.favourites": "最愛", - "notifications.filter.follows": "關注的使用者", + "notifications.filter.follows": "追蹤的使用者", "notifications.filter.mentions": "提及", "notifications.filter.polls": "投票結果", "notifications.filter.statuses": "已關注的用戶的最新動態", @@ -379,6 +455,8 @@ "privacy.public.short": "公共", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "公開", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "重新整理", "regeneration_indicator.label": "載入中……", "regeneration_indicator.sublabel": "你的主頁時間軸正在準備中!", @@ -407,7 +485,7 @@ "report.comment.title": "Is there anything else you think we should know?", "report.forward": "轉寄到 {target}", "report.forward_hint": "這個帳戶屬於其他服務站。要向該服務站發送匿名的舉報訊息嗎?", - "report.mute": "Mute", + "report.mute": "靜音", "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", "report.next": "Next", "report.placeholder": "額外訊息", @@ -429,9 +507,15 @@ "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.title": "Don't want to see this?", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", - "report.unfollow": "Unfollow @{name}", + "report.unfollow": "取消追蹤 @{name}", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", + "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", + "report_notification.categories.other": "Other", + "report_notification.categories.spam": "Spam", + "report_notification.categories.violation": "Rule violation", + "report_notification.open": "Open report", "search.placeholder": "搜尋", + "search.search_or_paste": "Search or paste URL", "search_popout.search_format": "高級搜索格式", "search_popout.tips.full_text": "輸入簡單的文字,搜索由你發放、收藏、轉推和提及你的文章,以及符合的使用者名稱,顯示名稱和標籤。", "search_popout.tips.hashtag": "標籤", @@ -444,7 +528,17 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "文章", "search_results.statuses_fts_disabled": "此 Mastodon 伺服器並未啟用「搜尋文章內章」功能。", + "search_results.title": "Search for {q}", "search_results.total": "{count, number} 項結果", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", + "sign_in_banner.create_account": "Create account", + "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "開啟 @{name} 的管理介面", "status.admin_status": "在管理介面開啟這篇文章", "status.block": "封鎖 @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "嵌入", "status.favourite": "最愛", + "status.filter": "Filter this post", "status.filtered": "已過濾", + "status.hide": "Hide toot", "status.history.created": "{name} created {date}", "status.history.edited": "{name} edited {date}", "status.load_more": "載入更多", @@ -479,36 +575,42 @@ "status.reblogs.empty": "還未有人轉推。有的話會顯示在這裡。", "status.redraft": "刪除並編輯", "status.remove_bookmark": "移除書籤", + "status.replied_to": "Replied to {name}", "status.reply": "回應", "status.replyAll": "回應所有人", "status.report": "舉報 @{name}", "status.sensitive_warning": "敏感內容", "status.share": "分享", + "status.show_filter_reason": "Show anyway", "status.show_less": "收起", "status.show_less_all": "全部收起", "status.show_more": "展開", "status.show_more_all": "全部展開", - "status.show_thread": "顯示討論串", + "status.show_original": "Show original", + "status.translate": "Translate", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "無法使用", "status.unmute_conversation": "對話解除靜音", "status.unpin": "解除置頂", + "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.save": "Save changes", + "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "關閉建議", "suggestions.header": "你可能對這些感興趣…", "tabs_bar.federated_timeline": "跨站", "tabs_bar.home": "主頁", "tabs_bar.local_timeline": "本站", "tabs_bar.notifications": "通知", - "tabs_bar.search": "搜尋", "time_remaining.days": "剩餘 {number, plural, one {# 天} other {# 天}}", "time_remaining.hours": "剩餘 {number, plural, one {# 小時} other {# 小時}}", "time_remaining.minutes": "剩餘 {number, plural, one {# 分鐘} other {# 分鐘}}", "time_remaining.moments": "剩餘時間", "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}", "timeline_hint.remote_resource_not_displayed": "不會顯示來自其他伺服器的 {resource}", - "timeline_hint.resources.followers": "關注者", - "timeline_hint.resources.follows": "關注中", + "timeline_hint.resources.followers": "追蹤者", + "timeline_hint.resources.follows": "追蹤中", "timeline_hint.resources.statuses": "更早的文章", - "trends.counter_by_accounts": "{count, plural, one {{counter} 個人}other {{counter} 個人}}正在討論", + "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "現在流行", "ui.beforeunload": "如果你現在離開 Mastodon,你的草稿內容將會被丟棄。", "units.short.billion": "{count}B", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "準備辨識圖片文字…", "upload_modal.preview_label": "預覽 ({ratio})", "upload_progress.label": "上載中……", + "upload_progress.processing": "Processing…", "video.close": "關閉影片", "video.download": "下載檔案", "video.exit_fullscreen": "退出全螢幕", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 17d0b9998b566e..a5ac8dbf7480b0 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -1,4 +1,16 @@ { + "about.blocks": "受管制的伺服器", + "about.contact": "聯絡我們:", + "about.disclaimer": "Mastodon 是一個自由的開源軟體,是 Mastodon gGmbH 的註冊商標。", + "about.domain_blocks.no_reason_available": "無法存取之原因", + "about.domain_blocks.preamble": "Mastodon 一般來說允許您閱讀並和聯邦宇宙上任何伺服器的使用者互動。這些伺服器是這個站台設下的例外。", + "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確地打開或著跟隨此個人檔案。", + "about.domain_blocks.silenced.title": "受限的", + "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法和此伺服器上的使用者互動與溝通。", + "about.domain_blocks.suspended.title": "已停權", + "about.not_available": "這個資料於此伺服器上不可存取。", + "about.powered_by": "由 {mastodon} 提供之去中心化社群媒體", + "about.rules": "伺服器規則", "account.account_note_header": "備註", "account.add_or_remove_from_list": "從列表中新增或移除", "account.badges.bot": "機器人", @@ -7,13 +19,16 @@ "account.block_domain": "封鎖來自 {domain} 網域的所有內容", "account.blocked": "已封鎖", "account.browse_more_on_origin_server": "於該伺服器的個人檔案頁上瀏覽更多", - "account.cancel_follow_request": "取消跟隨請求", + "account.cancel_follow_request": "收回跟隨請求", "account.direct": "傳私訊給 @{name}", "account.disable_notifications": "取消來自 @{name} 嘟文的通知", "account.domain_blocked": "已封鎖網域", "account.edit_profile": "編輯個人檔案", "account.enable_notifications": "當 @{name} 嘟文時通知我", "account.endorse": "在個人檔案推薦對方", + "account.featured_tags.last_status_at": "上次嘟文於 {date}", + "account.featured_tags.last_status_never": "沒有嘟文", + "account.featured_tags.title": "{name} 的特色主題標籤", "account.follow": "跟隨", "account.followers": "跟隨者", "account.followers.empty": "尚未有人跟隨這位使用者。", @@ -22,16 +37,19 @@ "account.following_counter": "正在跟隨 {count, plural,one {{counter}}other {{counter} 人}}", "account.follows.empty": "這位使用者尚未跟隨任何人。", "account.follows_you": "跟隨了您", + "account.go_to_profile": "前往個人檔案", "account.hide_reblogs": "隱藏來自 @{name} 的轉嘟", - "account.joined": "加入於 {date}", + "account.joined_short": "已加入", + "account.languages": "變更訂閱的語言", "account.link_verified_on": "已在 {date} 檢查此連結的擁有者權限", - "account.locked_info": "此帳戶的隱私狀態被設為鎖定。該擁有者會手動審核能跟隨此帳號的人。", + "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核能跟隨此帳號的人。", "account.media": "媒體", "account.mention": "提及 @{name}", - "account.moved_to": "{name} 已遷移至:", + "account.moved_to": "{name} 現在的新帳號為:", "account.mute": "靜音 @{name}", "account.mute_notifications": "靜音來自 @{name} 的通知", "account.muted": "已靜音", + "account.open_original_page": "檢視原始頁面", "account.posts": "嘟文", "account.posts_with_replies": "嘟文與回覆", "account.report": "檢舉 @{name}", @@ -59,14 +77,27 @@ "alert.unexpected.title": "哎呀!", "announcement.announcement": "公告", "attachments_list.unprocessed": "(未經處理)", + "audio.hide": "隱藏音訊", "autosuggest_hashtag.per_week": "{count} / 週", "boost_modal.combo": "下次您可以按 {combo} 跳過", - "bundle_column_error.body": "載入此元件時發生錯誤。", + "bundle_column_error.copy_stacktrace": "複製錯誤報告", + "bundle_column_error.error.body": "無法繪製請求的頁面。這可能是因為我們程式碼中的臭蟲或是瀏覽器的相容問題。", + "bundle_column_error.error.title": "糟糕!", + "bundle_column_error.network.body": "嘗試載入此頁面時發生錯誤。這可能是因為您的網際網路連線或此伺服器有暫時性的問題。", + "bundle_column_error.network.title": "網路錯誤", "bundle_column_error.retry": "重試", - "bundle_column_error.title": "網路錯誤", + "bundle_column_error.return": "返回首頁", + "bundle_column_error.routing.body": "找不到請求的頁面。您確定網址列中的 URL 是正確的嗎?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "關閉", "bundle_modal_error.message": "載入此元件時發生錯誤。", "bundle_modal_error.retry": "重試", + "closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,所以您也能於其他伺服器上建立帳號,並仍然與這個伺服器互動。", + "closed_registrations_modal.description": "目前無法在 {domain} 建立新帳號,但也請別忘了,您並不一定需要有 {domain} 伺服器的帳號,也能使用 Mastodon 。", + "closed_registrations_modal.find_another_server": "尋找另一個伺服器", + "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器新增帳號,都可以與此伺服器上的任何人追蹤及互動。您甚至能自行架一個自己的伺服器!", + "closed_registrations_modal.title": "註冊 Mastodon", + "column.about": "關於", "column.blocks": "已封鎖的使用者", "column.bookmarks": "書籤", "column.community": "本站時間軸", @@ -89,14 +120,14 @@ "column_header.show_settings": "顯示設定", "column_header.unpin": "取消釘選", "column_subheading.settings": "設定", - "community.column_settings.local_only": "只有本站", - "community.column_settings.media_only": "只有媒體", - "community.column_settings.remote_only": "只有遠端", + "community.column_settings.local_only": "只顯示本站", + "community.column_settings.media_only": "只顯示媒體", + "community.column_settings.remote_only": "只顯示遠端", "compose.language.change": "變更語言", "compose.language.search": "搜尋語言...", "compose_form.direct_message_warning_learn_more": "了解更多", - "compose_form.encryption_warning": "Mastodon 上的嘟文並未端到端加密。請不要透過 Mastodon 分享任何敏感資訊。", - "compose_form.hashtag_warning": "由於這則嘟文設定為「不公開」,它將不會被列於任何主題標籤下。只有公開的嘟文才能藉由主題標籤找到。", + "compose_form.encryption_warning": "Mastodon 上的嘟文並未進行端到端加密。請不要透過 Mastodon 分享任何敏感資訊。", + "compose_form.hashtag_warning": "由於這則嘟文設定為「不公開」,它將不被列於任何主題標籤下。只有公開的嘟文才能藉由主題標籤被找到。", "compose_form.lock_disclaimer": "您的帳號尚未 {locked}。任何人皆能跟隨您並看到您設定成只有跟隨者能看的嘟文。", "compose_form.lock_disclaimer.lock": "上鎖", "compose_form.placeholder": "正在想些什麼嗎?", @@ -112,13 +143,15 @@ "compose_form.sensitive.hide": "標記媒體為敏感內容", "compose_form.sensitive.marked": "此媒體被標記為敏感內容", "compose_form.sensitive.unmarked": "此媒體未被標記為敏感內容", - "compose_form.spoiler.marked": "正文已隱藏到警告之後", - "compose_form.spoiler.unmarked": "正文未被隱藏", + "compose_form.spoiler.marked": "移除內容警告", + "compose_form.spoiler.unmarked": "新增內容警告", "compose_form.spoiler_placeholder": "請在此處寫入警告訊息", "confirmation_modal.cancel": "取消", "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", "confirmations.block.message": "您確定要封鎖 {name} ?", + "confirmations.cancel_follow_request.confirm": "收回請求", + "confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", "confirmations.delete.message": "您確定要刪除這則嘟文?", "confirmations.delete_list.confirm": "刪除", @@ -142,10 +175,20 @@ "conversation.mark_as_read": "標記為已讀", "conversation.open": "檢視對話", "conversation.with": "與 {names}", + "copypaste.copied": "已複製", + "copypaste.copy": "複製", "directory.federated": "來自已知聯邦宇宙", "directory.local": "僅來自 {domain} 網域", "directory.new_arrivals": "新人", "directory.recently_active": "最近活躍", + "disabled_account_banner.account_settings": "帳號設定", + "disabled_account_banner.text": "您的帳號 {disabledAccount} 目前已停用。", + "dismissable_banner.community_timeline": "這些是 {domain} 上面託管帳號之最新公開嘟文。", + "dismissable_banner.dismiss": "關閉", + "dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。", + "dismissable_banner.explore_statuses": "這些於這裡以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。", + "dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。", + "dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。", "embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。", "embed.preview": "它將顯示成這樣:", "emoji_button.activity": "活動", @@ -167,7 +210,7 @@ "empty_column.account_timeline": "這裡還沒有嘟文!", "empty_column.account_unavailable": "無法取得個人檔案", "empty_column.blocks": "您還沒有封鎖任何使用者。", - "empty_column.bookmarked_statuses": "您還沒建立任何書籤。當您建立書簽時,它將於此顯示。", + "empty_column.bookmarked_statuses": "您還沒建立任何書籤。當您建立書籤時,它將於此顯示。", "empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!", "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。", "empty_column.domain_blocks": "尚未封鎖任何網域。", @@ -180,14 +223,14 @@ "empty_column.home": "您的首頁時間軸是空的!前往 {suggestions} 或使用搜尋功能來認識其他人。", "empty_column.home.suggestions": "檢視部份建議", "empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。", - "empty_column.lists": "您還沒有建立任何列表。這裡將會顯示您所建立的列表。", + "empty_column.lists": "您還沒有建立任何列表。當您建立列表時,它將於此顯示。", "empty_column.mutes": "您尚未靜音任何使用者。", "empty_column.notifications": "您尚未收到任何通知,和別人互動開啟對話吧。", "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了", "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。", "error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。", "error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。", - "error.unexpected_crash.next_steps_addons": "請嘗試關閉他們然後重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。", + "error.unexpected_crash.next_steps_addons": "請嘗試關閉它們然後重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。", "errors.unexpected_crash.copy_stacktrace": "複製 stacktrace 到剪貼簿", "errors.unexpected_crash.report_issue": "回報問題", "explore.search_results": "搜尋結果", @@ -196,21 +239,37 @@ "explore.trending_links": "最新消息", "explore.trending_statuses": "嘟文", "explore.trending_tags": "主題標籤", + "filter_modal.added.context_mismatch_explanation": "此過濾器類別不是用您所存取嘟文的情境。若您想要此嘟文被於此情境被過濾,您必須編輯過濾器。", + "filter_modal.added.context_mismatch_title": "不符合情境!", + "filter_modal.added.expired_explanation": "此過濾器類別已失效,您需要更新過期日期以套用。", + "filter_modal.added.expired_title": "過期的過濾器!", + "filter_modal.added.review_and_configure": "若欲檢視和進一步設定此過濾器類別,請至 {settings_link}。", + "filter_modal.added.review_and_configure_title": "過濾器設定", + "filter_modal.added.settings_link": "設定頁面", + "filter_modal.added.short_explanation": "此嘟文已被新增至以下過濾器類別:{title}。", + "filter_modal.added.title": "已新增過濾器!", + "filter_modal.select_filter.context_mismatch": "不是用目前情境", + "filter_modal.select_filter.expired": "已過期", + "filter_modal.select_filter.prompt_new": "新類別:{name}", + "filter_modal.select_filter.search": "搜尋或新增", + "filter_modal.select_filter.subtitle": "使用既有的類別或是新增", + "filter_modal.select_filter.title": "過濾此嘟文", + "filter_modal.title.status": "過濾一則嘟文", "follow_recommendations.done": "完成", "follow_recommendations.heading": "跟隨您想檢視其嘟文的人!這裡有一些建議。", "follow_recommendations.lead": "來自您跟隨的人之嘟文將會按時間順序顯示在您的首頁時間軸上。不要害怕犯錯,您隨時都可以取消跟隨其他人!", "follow_request.authorize": "授權", "follow_request.reject": "拒絕", "follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的管理員認為您可能想要自己審核這些帳號的跟隨請求。", + "footer.about": "關於", + "footer.directory": "個人檔案目錄", + "footer.get_app": "取得應用程式", + "footer.invite": "邀請他人", + "footer.keyboard_shortcuts": "鍵盤快速鍵", + "footer.privacy_policy": "隱私權政策", + "footer.source_code": "檢視原始碼", "generic.saved": "已儲存", - "getting_started.developers": "開發者", - "getting_started.directory": "個人檔案目錄", - "getting_started.documentation": "文件", "getting_started.heading": "開始使用", - "getting_started.invite": "邀請使用者", - "getting_started.open_source_notice": "Mastodon 是開源軟體。您可以在 GitHub {github} 上貢獻或是回報問題。", - "getting_started.security": "帳號安全性設定", - "getting_started.terms": "服務條款", "hashtag.column_header.tag_mode.all": "以及 {additional}", "hashtag.column_header.tag_mode.any": "或是 {additional}", "hashtag.column_header.tag_mode.none": "而無需 {additional}", @@ -220,22 +279,36 @@ "hashtag.column_settings.tag_mode.any": "任一", "hashtag.column_settings.tag_mode.none": "全不", "hashtag.column_settings.tag_toggle": "將額外標籤加入到這個欄位", - "home.column_settings.basic": "基本", + "hashtag.follow": "追蹤主題標籤", + "hashtag.unfollow": "取消追蹤主題標籤", + "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "顯示轉嘟", "home.column_settings.show_replies": "顯示回覆", "home.hide_announcements": "隱藏公告", "home.show_announcements": "顯示公告", + "interaction_modal.description.favourite": "在 Mastodon 上有個帳號的話,您可以將此嘟文加入最愛以讓作者知道您欣賞它且將它儲存下來。", + "interaction_modal.description.follow": "在 Mastodon 上有個帳號的話,您可以跟隨 {name} 以於首頁時間軸接收他們的嘟文。", + "interaction_modal.description.reblog": "在 Mastodon 上有個帳號的話,您可以轉嘟此嘟文以分享給您的跟隨者們。", + "interaction_modal.description.reply": "在 Mastodon 上有個帳號的話,您可以回覆此嘟文。", + "interaction_modal.on_another_server": "於不同伺服器", + "interaction_modal.on_this_server": "於此伺服器", + "interaction_modal.other_server_instructions": "複製貼上此 URL 至您愛用的 Mastodon 應用程式或您 Mastodon 伺服器之網頁介面的搜尋欄。", + "interaction_modal.preamble": "由於 Mastodon 是去中心化的,即便您於此沒有帳號,仍可以利用託管於其他 Mastodon 伺服器或相容平台上的既存帳號。", + "interaction_modal.title.favourite": "將 {name} 的嘟文加入最愛", + "interaction_modal.title.follow": "跟隨 {name}", + "interaction_modal.title.reblog": "轉嘟 {name} 的嘟文", + "interaction_modal.title.reply": "回覆 {name} 的嘟文", "intervals.full.days": "{number, plural, one {# 天} other {# 天}}", "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}", "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}", "keyboard_shortcuts.back": "返回上一頁", "keyboard_shortcuts.blocked": "開啟「封鎖使用者」名單", "keyboard_shortcuts.boost": "轉嘟", - "keyboard_shortcuts.column": "將焦點放在其中一欄的嘟文", - "keyboard_shortcuts.compose": "將焦點移至撰寫文字區塊", + "keyboard_shortcuts.column": "聚焦至其中一欄的嘟文", + "keyboard_shortcuts.compose": "聚焦至撰寫文字區塊", "keyboard_shortcuts.description": "說明", "keyboard_shortcuts.direct": "開啟私訊欄", - "keyboard_shortcuts.down": "在列表中往下移動", + "keyboard_shortcuts.down": "往下移動", "keyboard_shortcuts.enter": "檢視嘟文", "keyboard_shortcuts.favourite": "加到最愛", "keyboard_shortcuts.favourites": "開啟最愛列表", @@ -243,7 +316,7 @@ "keyboard_shortcuts.heading": "鍵盤快速鍵", "keyboard_shortcuts.home": "開啟首頁時間軸", "keyboard_shortcuts.hotkey": "快速鍵", - "keyboard_shortcuts.legend": "顯示此圖例", + "keyboard_shortcuts.legend": "顯示此說明選單", "keyboard_shortcuts.local": "開啟本站時間軸", "keyboard_shortcuts.mention": "提及作者", "keyboard_shortcuts.muted": "開啟靜音使用者列表", @@ -254,21 +327,21 @@ "keyboard_shortcuts.profile": "開啟作者的個人檔案頁面", "keyboard_shortcuts.reply": "回應嘟文", "keyboard_shortcuts.requests": "開啟跟隨請求列表", - "keyboard_shortcuts.search": "將焦點移至搜尋框", - "keyboard_shortcuts.spoilers": "顯示或隱藏被折疊的正文", + "keyboard_shortcuts.search": "聚焦至搜尋框", + "keyboard_shortcuts.spoilers": "顯示或隱藏內容警告之嘟文", "keyboard_shortcuts.start": "開啟「開始使用」欄位", - "keyboard_shortcuts.toggle_hidden": "顯示或隱藏在內容警告之後的正文", + "keyboard_shortcuts.toggle_hidden": "顯示或隱藏在內容警告之後的嘟文", "keyboard_shortcuts.toggle_sensitivity": "顯示或隱藏媒體", - "keyboard_shortcuts.toot": "開始發出新嘟文", - "keyboard_shortcuts.unfocus": "取消輸入文字區塊 / 搜尋的焦點", - "keyboard_shortcuts.up": "在列表中往上移動", + "keyboard_shortcuts.toot": "發個新嘟文", + "keyboard_shortcuts.unfocus": "取消輸入文字區塊或搜尋之焦點", + "keyboard_shortcuts.up": "往上移動", "lightbox.close": "關閉", "lightbox.compress": "折疊圖片檢視框", "lightbox.expand": "展開圖片檢視框", "lightbox.next": "下一步", "lightbox.previous": "上一步", "limited_account_hint.action": "一律顯示個人檔案", - "limited_account_hint.title": "此個人檔案已被您伺服器的管理員隱藏。", + "limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。", "lists.account.add": "新增至列表", "lists.account.remove": "從列表中移除", "lists.delete": "刪除列表", @@ -287,10 +360,11 @@ "media_gallery.toggle_visible": "切換可見性", "missing_indicator.label": "找不到", "missing_indicator.sublabel": "找不到此資源", + "moved_to_account_banner.text": "您的帳號 {disabledAccount} 目前已停用,因為您已搬家至 {movedToAccount}。", "mute_modal.duration": "持續時間", "mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?", "mute_modal.indefinite": "無期限", - "navigation_bar.apps": "行動應用程式", + "navigation_bar.about": "關於", "navigation_bar.blocks": "封鎖使用者", "navigation_bar.bookmarks": "書籤", "navigation_bar.community_timeline": "本站時間軸", @@ -304,8 +378,6 @@ "navigation_bar.filters": "靜音詞彙", "navigation_bar.follow_requests": "跟隨請求", "navigation_bar.follows_and_followers": "跟隨中與跟隨者", - "navigation_bar.info": "關於此伺服器", - "navigation_bar.keyboard_shortcuts": "快速鍵", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", "navigation_bar.mutes": "靜音的使用者", @@ -313,7 +385,10 @@ "navigation_bar.pins": "釘選的嘟文", "navigation_bar.preferences": "偏好設定", "navigation_bar.public_timeline": "聯邦時間軸", + "navigation_bar.search": "搜尋", "navigation_bar.security": "安全性", + "not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。", + "notification.admin.report": "{name} 檢舉了 {target}", "notification.admin.sign_up": "{name} 已經註冊", "notification.favourite": "{name} 把您的嘟文加入了最愛", "notification.follow": "{name} 跟隨了您", @@ -326,12 +401,13 @@ "notification.update": "{name} 編輯了嘟文", "notifications.clear": "清除通知", "notifications.clear_confirmation": "您確定要永久清除您的通知嗎?", + "notifications.column_settings.admin.report": "新檢舉報告:", "notifications.column_settings.admin.sign_up": "新註冊帳號:", "notifications.column_settings.alert": "桌面通知", "notifications.column_settings.favourite": "最愛:", "notifications.column_settings.filter_bar.advanced": "顯示所有分類", - "notifications.column_settings.filter_bar.category": "快速過濾欄", - "notifications.column_settings.filter_bar.show_bar": "顯示過濾器列", + "notifications.column_settings.filter_bar.category": "快速過濾器", + "notifications.column_settings.filter_bar.show_bar": "顯示過濾器", "notifications.column_settings.follow": "新的跟隨者:", "notifications.column_settings.follow_request": "新的跟隨請求:", "notifications.column_settings.mention": "提及:", @@ -379,6 +455,8 @@ "privacy.public.short": "公開", "privacy.unlisted.long": "對所有人可見,但選擇退出探索功能", "privacy.unlisted.short": "不公開", + "privacy_policy.last_updated": "最後更新:{date}", + "privacy_policy.title": "隱私權政策", "refresh": "重新整理", "regeneration_indicator.label": "載入中…", "regeneration_indicator.sublabel": "您的首頁時間軸正在準備中!", @@ -431,7 +509,13 @@ "report.thanks.title_actionable": "感謝您的檢舉,我們將會著手處理。", "report.unfollow": "取消跟隨 @{name}", "report.unfollow_explanation": "您正在跟隨此帳號。如不欲於首頁時間軸再見到他們的嘟文,請取消跟隨。", + "report_notification.attached_statuses": "{count, plural, one {{count} 則} other {{count} 則}} 嘟文", + "report_notification.categories.other": "其他", + "report_notification.categories.spam": "垃圾訊息", + "report_notification.categories.violation": "違反規則", + "report_notification.open": "開啟檢舉報告", "search.placeholder": "搜尋", + "search.search_or_paste": "搜尋或輸入網址", "search_popout.search_format": "進階搜尋格式", "search_popout.tips.full_text": "輸入簡單的文字,搜尋由您撰寫、最愛、轉嘟或提您的嘟文,以及與關鍵詞匹配的使用者名稱、帳號顯示名稱和主題標籤。", "search_popout.tips.hashtag": "主題標籤", @@ -444,7 +528,17 @@ "search_results.nothing_found": "無法找到符合搜尋條件之結果", "search_results.statuses": "嘟文", "search_results.statuses_fts_disabled": "「依內容搜尋嘟文」未在此 Mastodon 伺服器啟用。", + "search_results.title": "搜尋:{q}", "search_results.total": "{count, number} 項結果", + "server_banner.about_active_users": "最近三十日內使用此伺服器的人 (月活躍使用者)", + "server_banner.active_users": "活躍使用者", + "server_banner.administered_by": "管理者:", + "server_banner.introduction": "{domain} 是由 {mastodon} 提供之去中心化社群網路一部分。", + "server_banner.learn_more": "了解更多", + "server_banner.server_stats": "伺服器統計:", + "sign_in_banner.create_account": "新增帳號", + "sign_in_banner.sign_in": "登入", + "sign_in_banner.text": "登入以追蹤個人檔案、主題標籤、最愛,分享和回覆嘟文,或以您其他伺服器之帳號進行互動:", "status.admin_account": "開啟 @{name} 的管理介面", "status.admin_status": "在管理介面開啟此嘟文", "status.block": "封鎖 @{name}", @@ -460,7 +554,9 @@ "status.edited_x_times": "已編輯 {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "內嵌", "status.favourite": "最愛", + "status.filter": "過濾此嘟文", "status.filtered": "已過濾", + "status.hide": "隱藏嘟文", "status.history.created": "{name} 於 {date} 建立", "status.history.edited": "{name} 於 {date} 修改", "status.load_more": "載入更多", @@ -474,31 +570,37 @@ "status.pinned": "釘選的嘟文", "status.read_more": "閱讀更多", "status.reblog": "轉嘟", - "status.reblog_private": "轉嘟給原有關注者", + "status.reblog_private": "依照原嘟可見性轉嘟", "status.reblogged_by": "{name} 轉嘟了", "status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。", "status.redraft": "刪除並重新編輯", "status.remove_bookmark": "移除書籤", + "status.replied_to": "回覆給 {name}", "status.reply": "回覆", "status.replyAll": "回覆討論串", "status.report": "檢舉 @{name}", "status.sensitive_warning": "敏感內容", "status.share": "分享", + "status.show_filter_reason": "仍要顯示", "status.show_less": "減少顯示", "status.show_less_all": "減少顯示這類嘟文", "status.show_more": "顯示更多", "status.show_more_all": "顯示更多這類嘟文", - "status.show_thread": "顯示討論串", + "status.show_original": "顯示原文", + "status.translate": "翻譯", + "status.translated_from_with": "透過 {provider} 翻譯 {lang}", "status.uncached_media_warning": "無法使用", "status.unmute_conversation": "解除此對話的靜音", - "status.unpin": "從個人檔案頁面解除釘選", + "status.unpin": "從個人檔案頁面取消釘選", + "subscribed_languages.lead": "僅選定語言的嘟文才會出現在您的首頁上,並在變更後列出時間軸。選取「無」以接收所有語言的嘟文。", + "subscribed_languages.save": "儲存變更", + "subscribed_languages.target": "變更 {target} 的訂閱語言", "suggestions.dismiss": "關閉建議", "suggestions.header": "您可能對這些東西有興趣…", "tabs_bar.federated_timeline": "聯邦宇宙", "tabs_bar.home": "首頁", "tabs_bar.local_timeline": "本站", "tabs_bar.notifications": "通知", - "tabs_bar.search": "搜尋", "time_remaining.days": "剩餘 {number, plural, one {# 天} other {# 天}}", "time_remaining.hours": "剩餘 {number, plural, one {# 小時} other {# 小時}}", "time_remaining.minutes": "剩餘 {number, plural, one {# 分鐘} other {# 分鐘}}", @@ -508,8 +610,8 @@ "timeline_hint.resources.followers": "跟隨者", "timeline_hint.resources.follows": "正在跟隨", "timeline_hint.resources.statuses": "更早的嘟文", - "trends.counter_by_accounts": "{count, plural,one {{counter} 人}other {{counter} 人}}正在討論", - "trends.trending_now": "現正熱門", + "trends.counter_by_accounts": "{count, plural, one {{counter} 人} other {{counter} 人}} 於過去 {days, plural, one {日} other {{days} days}} 之間", + "trends.trending_now": "現正熱門趨勢", "ui.beforeunload": "如果離開 Mastodon,您的草稿將會不見。", "units.short.billion": "{count}B", "units.short.million": "{count}M", @@ -536,6 +638,7 @@ "upload_modal.preparing_ocr": "準備 OCR 中……", "upload_modal.preview_label": "預覽 ({ratio})", "upload_progress.label": "上傳中...", + "upload_progress.processing": "處理中...", "video.close": "關閉影片", "video.download": "下載檔案", "video.exit_fullscreen": "退出全螢幕", diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.js index bda51f692b770f..69a7ee91f9a769 100644 --- a/app/javascript/mastodon/main.js +++ b/app/javascript/mastodon/main.js @@ -1,34 +1,44 @@ -import * as registerPushNotifications from './actions/push_notifications'; -import { setupBrowserNotifications } from './actions/notifications'; -import { default as Mastodon, store } from './containers/mastodon'; import React from 'react'; import ReactDOM from 'react-dom'; -import ready from './ready'; +import { setupBrowserNotifications } from 'mastodon/actions/notifications'; +import Mastodon, { store } from 'mastodon/containers/mastodon'; +import { me } from 'mastodon/initial_state'; +import ready from 'mastodon/ready'; -const perf = require('./performance'); +const perf = require('mastodon/performance'); +/** + * @returns {Promise} + */ function main() { perf.start('main()'); - if (window.history && history.replaceState) { - const { pathname, search, hash } = window.location; - const path = pathname + search + hash; - if (!(/^\/web($|\/)/).test(path)) { - history.replaceState(null, document.title, `/web${path}`); - } - } - - ready(() => { + return ready(async () => { const mountNode = document.getElementById('mastodon'); const props = JSON.parse(mountNode.getAttribute('data-props')); ReactDOM.render(, mountNode); store.dispatch(setupBrowserNotifications()); - if (process.env.NODE_ENV === 'production') { - // avoid offline in dev mode because it's harder to debug - require('offline-plugin/runtime').install(); - store.dispatch(registerPushNotifications.register()); + + if (process.env.NODE_ENV === 'production' && me && 'serviceWorker' in navigator) { + const { Workbox } = await import('workbox-window'); + const wb = new Workbox('/sw.js'); + /** @type {ServiceWorkerRegistration} */ + let registration; + + try { + registration = await wb.register(); + } catch (err) { + console.error(err); + } + + if (registration) { + const registerPushNotifications = await import('mastodon/actions/push_notifications'); + + store.dispatch(registerPushNotifications.register()); + } } + perf.stop('main()'); }); } diff --git a/app/javascript/mastodon/permissions.js b/app/javascript/mastodon/permissions.js new file mode 100644 index 00000000000000..752ddd6c531f28 --- /dev/null +++ b/app/javascript/mastodon/permissions.js @@ -0,0 +1,3 @@ +export const PERMISSION_INVITE_USERS = 0x0000000000010000; +export const PERMISSION_MANAGE_USERS = 0x0000000000000400; +export const PERMISSION_MANAGE_REPORTS = 0x0000000000000010; diff --git a/app/javascript/mastodon/ready.js b/app/javascript/mastodon/ready.js index dd543910bb0ea5..e769cc756079f0 100644 --- a/app/javascript/mastodon/ready.js +++ b/app/javascript/mastodon/ready.js @@ -1,7 +1,32 @@ -export default function ready(loaded) { - if (['interactive', 'complete'].includes(document.readyState)) { - loaded(); - } else { - document.addEventListener('DOMContentLoaded', loaded); - } +// @ts-check + +/** + * @param {(() => void) | (() => Promise)} callback + * @returns {Promise} + */ +export default function ready(callback) { + return new Promise((resolve, reject) => { + function loaded() { + let result; + try { + result = callback(); + } catch (err) { + reject(err); + + return; + } + + if (typeof result?.then === 'function') { + result.then(resolve).catch(reject); + } else { + resolve(); + } + } + + if (['interactive', 'complete'].includes(document.readyState)) { + loaded(); + } else { + document.addEventListener('DOMContentLoaded', loaded); + } + }); } diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js index e0d42e9cd44303..53e08c8fbe45e1 100644 --- a/app/javascript/mastodon/reducers/accounts_map.js +++ b/app/javascript/mastodon/reducers/accounts_map.js @@ -1,14 +1,16 @@ import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer'; import { Map as ImmutableMap } from 'immutable'; +export const normalizeForLookup = str => str.toLowerCase(); + const initialState = ImmutableMap(); export default function accountsMap(state = initialState, action) { switch(action.type) { case ACCOUNT_IMPORT: - return state.set(action.account.acct, action.account.id); + return state.set(normalizeForLookup(action.account.acct), action.account.id); case ACCOUNTS_IMPORT: - return state.withMutations(map => action.accounts.forEach(account => map.set(account.acct, account.id))); + return state.withMutations(map => action.accounts.forEach(account => map.set(normalizeForLookup(account.acct), account.id))); default: return state; } diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index d7478c33d4a9c9..8cc7bf52057f67 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -14,6 +14,7 @@ import { COMPOSE_UPLOAD_FAIL, COMPOSE_UPLOAD_UNDO, COMPOSE_UPLOAD_PROGRESS, + COMPOSE_UPLOAD_PROCESSING, THUMBNAIL_UPLOAD_REQUEST, THUMBNAIL_UPLOAD_SUCCESS, THUMBNAIL_UPLOAD_FAIL, @@ -134,8 +135,9 @@ function appendMedia(state, media, file) { if (media.get('type') === 'image') { media = media.set('file', file); } - map.update('media_attachments', list => list.push(media)); + map.update('media_attachments', list => list.push(media.set('unattached', true))); map.set('is_uploading', false); + map.set('is_processing', false); map.set('resetFileKey', Math.floor((Math.random() * 0x10000))); map.set('idempotencyKey', uuid()); map.update('pending_media_attachments', n => n - 1); @@ -328,6 +330,10 @@ export default function compose(state = initialState, action) { map.set('preselectDate', new Date()); map.set('idempotencyKey', uuid()); + if (action.status.get('language')) { + map.set('language', action.status.get('language')); + } + if (action.status.get('spoiler_text').length > 0) { map.set('spoiler', true); map.set('spoiler_text', action.status.get('spoiler_text')); @@ -350,10 +356,12 @@ export default function compose(state = initialState, action) { return state.set('is_changing_upload', false); case COMPOSE_UPLOAD_REQUEST: return state.set('is_uploading', true).update('pending_media_attachments', n => n + 1); + case COMPOSE_UPLOAD_PROCESSING: + return state.set('is_processing', true); case COMPOSE_UPLOAD_SUCCESS: return appendMedia(state, fromJS(action.media), action.file); case COMPOSE_UPLOAD_FAIL: - return state.set('is_uploading', false).update('pending_media_attachments', n => n - 1); + return state.set('is_uploading', false).set('is_processing', false).update('pending_media_attachments', n => n - 1); case COMPOSE_UPLOAD_UNDO: return removeMedia(state, action.media_id); case COMPOSE_UPLOAD_PROGRESS: @@ -428,7 +436,7 @@ export default function compose(state = initialState, action) { .setIn(['media_modal', 'dirty'], false) .update('media_attachments', list => list.map(item => { if (item.get('id') === action.media.id) { - return fromJS(action.media); + return fromJS(action.media).set('unattached', true); } return item; @@ -438,12 +446,13 @@ export default function compose(state = initialState, action) { map.set('text', action.raw_text || unescapeHTML(expandMentions(action.status))); map.set('in_reply_to', action.status.get('in_reply_to_id')); map.set('privacy', action.status.get('visibility')); - map.set('media_attachments', action.status.get('media_attachments')); + map.set('media_attachments', action.status.get('media_attachments').map((media) => media.set('unattached', true))); map.set('focusDate', new Date()); map.set('caretPosition', null); map.set('idempotencyKey', uuid()); map.set('sensitive', action.status.get('sensitive')); map.set('language', action.status.get('language')); + map.set('id', null); if (action.status.get('spoiler_text').length > 0) { map.set('spoiler', true); diff --git a/app/javascript/mastodon/reducers/filters.js b/app/javascript/mastodon/reducers/filters.js index 33f0c6732801ac..f4f97cd3a8a8cb 100644 --- a/app/javascript/mastodon/reducers/filters.js +++ b/app/javascript/mastodon/reducers/filters.js @@ -1,10 +1,43 @@ -import { FILTERS_FETCH_SUCCESS } from '../actions/filters'; -import { List as ImmutableList, fromJS } from 'immutable'; +import { FILTERS_IMPORT } from '../actions/importer'; +import { FILTERS_FETCH_SUCCESS, FILTERS_CREATE_SUCCESS } from '../actions/filters'; +import { Map as ImmutableMap, is, fromJS } from 'immutable'; -export default function filters(state = ImmutableList(), action) { +const normalizeFilter = (state, filter) => { + const normalizedFilter = fromJS({ + id: filter.id, + title: filter.title, + context: filter.context, + filter_action: filter.filter_action, + keywords: filter.keywords, + expires_at: filter.expires_at ? Date.parse(filter.expires_at) : null, + }); + + if (is(state.get(filter.id), normalizedFilter)) { + return state; + } else { + // Do not overwrite keywords when receiving a partial filter + return state.update(filter.id, ImmutableMap(), (old) => ( + old.mergeWith(((old_value, new_value) => (new_value === undefined ? old_value : new_value)), normalizedFilter) + )); + } +}; + +const normalizeFilters = (state, filters) => { + filters.forEach(filter => { + state = normalizeFilter(state, filter); + }); + + return state; +}; + +export default function filters(state = ImmutableMap(), action) { switch(action.type) { + case FILTERS_CREATE_SUCCESS: + return normalizeFilter(state, action.filter); case FILTERS_FETCH_SUCCESS: - return fromJS(action.filters); + return normalizeFilters(ImmutableMap(), action.filters); + case FILTERS_IMPORT: + return normalizeFilters(state, action.filters); default: return state; } diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js index 0219d8a5e1b049..bccdc186557ae5 100644 --- a/app/javascript/mastodon/reducers/index.js +++ b/app/javascript/mastodon/reducers/index.js @@ -17,7 +17,7 @@ import status_lists from './status_lists'; import mutes from './mutes'; import blocks from './blocks'; import boosts from './boosts'; -import rules from './rules'; +import server from './server'; import contexts from './contexts'; import compose from './compose'; import search from './search'; @@ -39,6 +39,7 @@ import markers from './markers'; import picture_in_picture from './picture_in_picture'; import accounts_map from './accounts_map'; import history from './history'; +import tags from './tags'; const reducers = { announcements, @@ -61,7 +62,7 @@ const reducers = { mutes, blocks, boosts, - rules, + server, contexts, compose, search, @@ -81,6 +82,7 @@ const reducers = { markers, picture_in_picture, history, + tags, }; export default combineReducers(reducers); diff --git a/app/javascript/mastodon/reducers/meta.js b/app/javascript/mastodon/reducers/meta.js index 65becc44f8f464..5040a340fc60b1 100644 --- a/app/javascript/mastodon/reducers/meta.js +++ b/app/javascript/mastodon/reducers/meta.js @@ -7,12 +7,13 @@ const initialState = ImmutableMap({ streaming_api_base_url: null, access_token: null, layout: layoutFromWindow(), + permissions: '0', }); export default function meta(state = initialState, action) { switch(action.type) { case STORE_HYDRATE: - return state.merge(action.state.get('meta')); + return state.merge(action.state.get('meta')).set('permissions', action.state.getIn(['role', 'permissions'])); case APP_LAYOUT_CHANGE: return state.set('layout', action.layout); default: diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js index b587b6d0f619c9..eb5368198c46fb 100644 --- a/app/javascript/mastodon/reducers/notifications.js +++ b/app/javascript/mastodon/reducers/notifications.js @@ -28,7 +28,7 @@ import { } from '../actions/app'; import { DOMAIN_BLOCK_SUCCESS } from 'mastodon/actions/domain_blocks'; import { TIMELINE_DELETE, TIMELINE_DISCONNECT } from '../actions/timelines'; -import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; +import { fromJS, Map as ImmutableMap, List as ImmutableList } from 'immutable'; import compareId from '../compare_id'; const initialState = ImmutableMap({ @@ -41,7 +41,7 @@ const initialState = ImmutableMap({ lastReadId: '0', readMarkerId: '0', isTabVisible: true, - isLoading: false, + isLoading: 0, browserSupport: false, browserPermission: 'default', }); @@ -52,11 +52,17 @@ const notificationToMap = notification => ImmutableMap({ account: notification.account.id, created_at: notification.created_at, status: notification.status ? notification.status.id : null, + report: notification.report ? fromJS(notification.report) : null, }); const normalizeNotification = (state, notification, usePendingItems) => { const top = state.get('top'); + // Under currently unknown conditions, the client may receive duplicates from the server + if (state.get('pendingItems').some((item) => item?.get('id') === notification.id) || state.get('items').some((item) => item?.get('id') === notification.id)) { + return state; + } + if (usePendingItems || !state.get('pendingItems').isEmpty()) { return state.update('pendingItems', list => list.unshift(notificationToMap(notification))).update('unread', unread => unread + 1); } @@ -76,28 +82,74 @@ const normalizeNotification = (state, notification, usePendingItems) => { }); }; -const expandNormalizedNotifications = (state, notifications, next, isLoadingRecent, usePendingItems) => { - const lastReadId = state.get('lastReadId'); - let items = ImmutableList(); +const expandNormalizedNotifications = (state, notifications, next, isLoadingMore, isLoadingRecent, usePendingItems) => { + // This method is pretty tricky because: + // - existing notifications might be out of order + // - the existing notifications may have gaps, most often explicitly noted with a `null` item + // - ideally, we don't want it to reorder existing items + // - `notifications` may include items that are already included + // - this function can be called either to fill in a gap, or load newer items - notifications.forEach((n, i) => { - items = items.set(i, notificationToMap(n)); - }); + const lastReadId = state.get('lastReadId'); + const newItems = ImmutableList(notifications.map(notificationToMap)); return state.withMutations(mutable => { - if (!items.isEmpty()) { + if (!newItems.isEmpty()) { usePendingItems = isLoadingRecent && (usePendingItems || !mutable.get('pendingItems').isEmpty()); - mutable.update(usePendingItems ? 'pendingItems' : 'items', list => { - const lastIndex = 1 + list.findLastIndex( - item => item !== null && (compareId(item.get('id'), items.last().get('id')) > 0 || item.get('id') === items.last().get('id')), + mutable.update(usePendingItems ? 'pendingItems' : 'items', oldItems => { + // If called to poll *new* notifications, we just need to add them on top without duplicates + if (isLoadingRecent) { + const idsToCheck = oldItems.map(item => item?.get('id')).toSet(); + const insertedItems = newItems.filterNot(item => idsToCheck.includes(item.get('id'))); + return insertedItems.concat(oldItems); + } + + // If called to expand more (presumably older than any known to the WebUI), we just have to + // add them to the bottom without duplicates + if (isLoadingMore) { + const idsToCheck = oldItems.map(item => item?.get('id')).toSet(); + const insertedItems = newItems.filterNot(item => idsToCheck.includes(item.get('id'))); + return oldItems.concat(insertedItems); + } + + // Now this gets tricky, as we don't necessarily know for sure where the gap to fill is, + // and some items in the timeline may not be properly ordered. + + // However, we know that `newItems.last()` is the oldest item that was requested and that + // there is no “hole” between `newItems.last()` and `newItems.first()`. + + // First, find the furthest (if properly sorted, oldest) item in the notifications that is + // newer than the oldest fetched one, as it's most likely that it delimits the gap. + // Start the gap *after* that item. + const lastIndex = oldItems.findLastIndex(item => item !== null && compareId(item.get('id'), newItems.last().get('id')) >= 0) + 1; + + // Then, try to find the furthest (if properly sorted, oldest) item in the notifications that + // is newer than the most recent fetched one, as it delimits a section comprised of only + // items older or within `newItems` (or that were deleted from the server, so should be removed + // anyway). + // Stop the gap *after* that item. + const firstIndex = oldItems.take(lastIndex).findLastIndex(item => item !== null && compareId(item.get('id'), newItems.first().get('id')) > 0) + 1; + + // At this point: + // - no `oldItems` after `firstIndex` is newer than any of the `newItems` + // - all `oldItems` after `lastIndex` are older than every of the `newItems` + // - it is possible for items in the replaced slice to be older than every `newItems` + // - it is possible for items before `firstIndex` to be in the `newItems` range + // Therefore: + // - to avoid losing items, items from the replaced slice that are older than `newItems` + // should be added in the back. + // - to avoid duplicates, `newItems` should be checked the first `firstIndex` items of + // `oldItems` + const idsToCheck = oldItems.take(firstIndex).map(item => item?.get('id')).toSet(); + const insertedItems = newItems.filterNot(item => idsToCheck.includes(item.get('id'))); + const olderItems = oldItems.slice(firstIndex, lastIndex).filter(item => item !== null && compareId(item.get('id'), newItems.last().get('id')) < 0); + + return oldItems.take(firstIndex).concat( + insertedItems, + olderItems, + oldItems.skip(lastIndex), ); - - const firstIndex = 1 + list.take(lastIndex).findLastIndex( - item => item !== null && compareId(item.get('id'), items.first().get('id')) > 0, - ); - - return list.take(firstIndex).concat(items, list.skip(lastIndex)); }); } @@ -108,13 +160,13 @@ const expandNormalizedNotifications = (state, notifications, next, isLoadingRece if (shouldCountUnreadNotifications(state)) { mutable.set('unread', mutable.get('pendingItems').count(item => item !== null) + mutable.get('items').count(item => item && compareId(item.get('id'), lastReadId) > 0)); } else { - const mostRecent = items.find(item => item !== null); + const mostRecent = newItems.find(item => item !== null); if (mostRecent && compareId(lastReadId, mostRecent.get('id')) < 0) { mutable.set('lastReadId', mostRecent.get('id')); } } - mutable.set('isLoading', false); + mutable.update('isLoading', (nbLoading) => nbLoading - 1); }); }; @@ -213,9 +265,9 @@ export default function notifications(state = initialState, action) { case NOTIFICATIONS_LOAD_PENDING: return state.update('items', list => state.get('pendingItems').concat(list.take(40))).set('pendingItems', ImmutableList()).set('unread', 0); case NOTIFICATIONS_EXPAND_REQUEST: - return state.set('isLoading', true); + return state.update('isLoading', (nbLoading) => nbLoading + 1); case NOTIFICATIONS_EXPAND_FAIL: - return state.set('isLoading', false); + return state.update('isLoading', (nbLoading) => nbLoading - 1); case NOTIFICATIONS_FILTER_SET: return state.set('items', ImmutableList()).set('pendingItems', ImmutableList()).set('hasMore', true); case NOTIFICATIONS_SCROLL_TOP: @@ -223,7 +275,7 @@ export default function notifications(state = initialState, action) { case NOTIFICATIONS_UPDATE: return normalizeNotification(state, action.notification, action.usePendingItems); case NOTIFICATIONS_EXPAND_SUCCESS: - return expandNormalizedNotifications(state, action.notifications, action.next, action.isLoadingRecent, action.usePendingItems); + return expandNormalizedNotifications(state, action.notifications, action.next, action.isLoadingMore, action.isLoadingRecent, action.usePendingItems); case ACCOUNT_BLOCK_SUCCESS: return filterNotifications(state, [action.relationship.id]); case ACCOUNT_MUTE_SUCCESS: @@ -233,8 +285,6 @@ export default function notifications(state = initialState, action) { case FOLLOW_REQUEST_AUTHORIZE_SUCCESS: case FOLLOW_REQUEST_REJECT_SUCCESS: return filterNotifications(state, [action.id], 'follow_request'); - case ACCOUNT_MUTE_SUCCESS: - return action.relationship.muting_notifications ? filterNotifications(state, [action.relationship.id]) : state; case NOTIFICATIONS_CLEAR: return state.set('items', ImmutableList()).set('pendingItems', ImmutableList()).set('hasMore', false); case TIMELINE_DELETE: diff --git a/app/javascript/mastodon/reducers/rules.js b/app/javascript/mastodon/reducers/rules.js deleted file mode 100644 index c1180b52038a12..00000000000000 --- a/app/javascript/mastodon/reducers/rules.js +++ /dev/null @@ -1,13 +0,0 @@ -import { RULES_FETCH_SUCCESS } from 'mastodon/actions/rules'; -import { List as ImmutableList, fromJS } from 'immutable'; - -const initialState = ImmutableList(); - -export default function rules(state = initialState, action) { - switch (action.type) { - case RULES_FETCH_SUCCESS: - return fromJS(action.rules); - default: - return state; - } -} diff --git a/app/javascript/mastodon/reducers/server.js b/app/javascript/mastodon/reducers/server.js new file mode 100644 index 00000000000000..db9f2b5e6b61a6 --- /dev/null +++ b/app/javascript/mastodon/reducers/server.js @@ -0,0 +1,53 @@ +import { + SERVER_FETCH_REQUEST, + SERVER_FETCH_SUCCESS, + SERVER_FETCH_FAIL, + EXTENDED_DESCRIPTION_REQUEST, + EXTENDED_DESCRIPTION_SUCCESS, + EXTENDED_DESCRIPTION_FAIL, + SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, + SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, + SERVER_DOMAIN_BLOCKS_FETCH_FAIL, +} from 'mastodon/actions/server'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; + +const initialState = ImmutableMap({ + server: ImmutableMap({ + isLoading: true, + }), + + extendedDescription: ImmutableMap({ + isLoading: true, + }), + + domainBlocks: ImmutableMap({ + isLoading: true, + isAvailable: true, + items: ImmutableList(), + }), +}); + +export default function server(state = initialState, action) { + switch (action.type) { + case SERVER_FETCH_REQUEST: + return state.setIn(['server', 'isLoading'], true); + case SERVER_FETCH_SUCCESS: + return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false); + case SERVER_FETCH_FAIL: + return state.setIn(['server', 'isLoading'], false); + case EXTENDED_DESCRIPTION_REQUEST: + return state.setIn(['extendedDescription', 'isLoading'], true); + case EXTENDED_DESCRIPTION_SUCCESS: + return state.set('extendedDescription', fromJS(action.description)).setIn(['extendedDescription', 'isLoading'], false); + case EXTENDED_DESCRIPTION_FAIL: + return state.setIn(['extendedDescription', 'isLoading'], false); + case SERVER_DOMAIN_BLOCKS_FETCH_REQUEST: + return state.setIn(['domainBlocks', 'isLoading'], true); + case SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS: + return state.setIn(['domainBlocks', 'items'], fromJS(action.blocks)).setIn(['domainBlocks', 'isLoading'], false).setIn(['domainBlocks', 'isAvailable'], action.isAvailable); + case SERVER_DOMAIN_BLOCKS_FETCH_FAIL: + return state.setIn(['domainBlocks', 'isLoading'], false); + default: + return state; + } +} diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js index 39dffc232d782a..c34d2f5e20984b 100644 --- a/app/javascript/mastodon/reducers/settings.js +++ b/app/javascript/mastodon/reducers/settings.js @@ -39,6 +39,7 @@ const initialState = ImmutableMap({ status: false, update: false, 'admin.sign_up': false, + 'admin.report': false, }), quickFilter: ImmutableMap({ @@ -60,6 +61,7 @@ const initialState = ImmutableMap({ status: true, update: true, 'admin.sign_up': true, + 'admin.report': true, }), sounds: ImmutableMap({ @@ -72,6 +74,7 @@ const initialState = ImmutableMap({ status: true, update: true, 'admin.sign_up': true, + 'admin.report': true, }), }), diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js index 53dec95859d118..c30c1e2ccd0def 100644 --- a/app/javascript/mastodon/reducers/statuses.js +++ b/app/javascript/mastodon/reducers/statuses.js @@ -13,6 +13,10 @@ import { STATUS_REVEAL, STATUS_HIDE, STATUS_COLLAPSE, + STATUS_TRANSLATE_SUCCESS, + STATUS_TRANSLATE_UNDO, + STATUS_FETCH_REQUEST, + STATUS_FETCH_FAIL, } from '../actions/statuses'; import { TIMELINE_DELETE } from '../actions/timelines'; import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer'; @@ -35,6 +39,10 @@ const initialState = ImmutableMap(); export default function statuses(state = initialState, action) { switch(action.type) { + case STATUS_FETCH_REQUEST: + return state.setIn([action.id, 'isLoading'], true); + case STATUS_FETCH_FAIL: + return state.delete(action.id); case STATUS_IMPORT: return importStatus(state, action.status); case STATUSES_IMPORT: @@ -77,6 +85,10 @@ export default function statuses(state = initialState, action) { return state.setIn([action.id, 'collapsed'], action.isCollapsed); case TIMELINE_DELETE: return deleteStatus(state, action.id, action.references); + case STATUS_TRANSLATE_SUCCESS: + return state.setIn([action.id, 'translation'], fromJS(action.translation)); + case STATUS_TRANSLATE_UNDO: + return state.deleteIn([action.id, 'translation']); default: return state; } diff --git a/app/javascript/mastodon/reducers/tags.js b/app/javascript/mastodon/reducers/tags.js new file mode 100644 index 00000000000000..d24098e3941ae8 --- /dev/null +++ b/app/javascript/mastodon/reducers/tags.js @@ -0,0 +1,25 @@ +import { + HASHTAG_FETCH_SUCCESS, + HASHTAG_FOLLOW_REQUEST, + HASHTAG_FOLLOW_FAIL, + HASHTAG_UNFOLLOW_REQUEST, + HASHTAG_UNFOLLOW_FAIL, +} from 'mastodon/actions/tags'; +import { Map as ImmutableMap, fromJS } from 'immutable'; + +const initialState = ImmutableMap(); + +export default function tags(state = initialState, action) { + switch(action.type) { + case HASHTAG_FETCH_SUCCESS: + return state.set(action.name, fromJS(action.tag)); + case HASHTAG_FOLLOW_REQUEST: + case HASHTAG_UNFOLLOW_FAIL: + return state.setIn([action.name, 'following'], true); + case HASHTAG_FOLLOW_FAIL: + case HASHTAG_UNFOLLOW_REQUEST: + return state.setIn([action.name, 'following'], false); + default: + return state; + } +}; diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js index 10aaa2d682d6b0..88b51fb63c15e0 100644 --- a/app/javascript/mastodon/reducers/user_lists.js +++ b/app/javascript/mastodon/reducers/user_lists.js @@ -51,7 +51,12 @@ import { DIRECTORY_EXPAND_SUCCESS, DIRECTORY_EXPAND_FAIL, } from 'mastodon/actions/directory'; -import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; +import { + FEATURED_TAGS_FETCH_REQUEST, + FEATURED_TAGS_FETCH_SUCCESS, + FEATURED_TAGS_FETCH_FAIL, +} from 'mastodon/actions/featured_tags'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; const initialListState = ImmutableMap({ next: null, @@ -67,6 +72,7 @@ const initialState = ImmutableMap({ follow_requests: initialListState, blocks: initialListState, mutes: initialListState, + featured_tags: initialListState, }); const normalizeList = (state, path, accounts, next) => { @@ -89,6 +95,18 @@ const normalizeFollowRequest = (state, notification) => { }); }; +const normalizeFeaturedTag = (featuredTags, accountId) => { + const normalizeFeaturedTag = { ...featuredTags, accountId: accountId }; + return fromJS(normalizeFeaturedTag); +}; + +const normalizeFeaturedTags = (state, path, featuredTags, accountId) => { + return state.setIn(path, ImmutableMap({ + items: ImmutableList(featuredTags.map(featuredTag => normalizeFeaturedTag(featuredTag, accountId)).sort((a, b) => b.get('statuses_count') - a.get('statuses_count'))), + isLoading: false, + })); +}; + export default function userLists(state = initialState, action) { switch(action.type) { case FOLLOWERS_FETCH_SUCCESS: @@ -160,6 +178,12 @@ export default function userLists(state = initialState, action) { case DIRECTORY_FETCH_FAIL: case DIRECTORY_EXPAND_FAIL: return state.setIn(['directory', 'isLoading'], false); + case FEATURED_TAGS_FETCH_SUCCESS: + return normalizeFeaturedTags(state, ['featured_tags', action.id], action.tags, action.id); + case FEATURED_TAGS_FETCH_REQUEST: + return state.setIn(['featured_tags', action.id, 'isLoading'], true); + case FEATURED_TAGS_FETCH_FAIL: + return state.setIn(['featured_tags', action.id, 'isLoading'], false); default: return state; } diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js index 3121774b3d6b5d..bf46c810e2073e 100644 --- a/app/javascript/mastodon/selectors/index.js +++ b/app/javascript/mastodon/selectors/index.js @@ -1,5 +1,6 @@ import { createSelector } from 'reselect'; -import { List as ImmutableList, Map as ImmutableMap, is } from 'immutable'; +import { List as ImmutableList, Map as ImmutableMap } from 'immutable'; +import { toServerSideType } from 'mastodon/utils/filters'; import { me } from '../initial_state'; const getAccountBase = (state, id) => state.getIn(['accounts', id], null); @@ -20,69 +21,15 @@ export const makeGetAccount = () => { }); }; -const toServerSideType = columnType => { - switch (columnType) { - case 'home': - case 'notifications': - case 'public': - case 'thread': - case 'account': - return columnType; - default: - if (columnType.indexOf('list:') > -1) { - return 'home'; - } else { - return 'public'; // community, account, hashtag - } - } -}; - -const escapeRegExp = string => - string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string - -const regexFromFilters = filters => { - if (filters.size === 0) { - return null; - } - - return new RegExp(filters.map(filter => { - let expr = escapeRegExp(filter.get('phrase')); - - if (filter.get('whole_word')) { - if (/^[\w]/.test(expr)) { - expr = `\\b${expr}`; - } - - if (/[\w]$/.test(expr)) { - expr = `${expr}\\b`; - } - } - - return expr; - }).join('|'), 'i'); -}; - -// Memoize the filter regexps for each valid server contextType -const makeGetFiltersRegex = () => { - let memo = {}; - - return (state, { contextType }) => { - if (!contextType) return ImmutableList(); +const getFilters = (state, { contextType }) => { + if (!contextType) return null; - const serverSideType = toServerSideType(contextType); - const filters = state.get('filters', ImmutableList()).filter(filter => filter.get('context').includes(serverSideType) && (filter.get('expires_at') === null || Date.parse(filter.get('expires_at')) > (new Date()))); + const serverSideType = toServerSideType(contextType); + const now = new Date(); - if (!memo[serverSideType] || !is(memo[serverSideType].filters, filters)) { - const dropRegex = regexFromFilters(filters.filter(filter => filter.get('irreversible'))); - const regex = regexFromFilters(filters); - memo[serverSideType] = { filters: filters, results: [dropRegex, regex] }; - } - return memo[serverSideType].results; - }; + return state.get('filters').filter((filter) => filter.get('context').includes(serverSideType) && (filter.get('expires_at') === null || filter.get('expires_at') > now)); }; -export const getFiltersRegex = makeGetFiltersRegex(); - export const makeGetStatus = () => { return createSelector( [ @@ -90,11 +37,11 @@ export const makeGetStatus = () => { (state, { id }) => state.getIn(['statuses', state.getIn(['statuses', id, 'reblog'])]), (state, { id }) => state.getIn(['accounts', state.getIn(['statuses', id, 'account'])]), (state, { id }) => state.getIn(['accounts', state.getIn(['statuses', state.getIn(['statuses', id, 'reblog']), 'account'])]), - getFiltersRegex, + getFilters, ], - (statusBase, statusReblog, accountBase, accountReblog, filtersRegex) => { - if (!statusBase) { + (statusBase, statusReblog, accountBase, accountReblog, filters) => { + if (!statusBase || statusBase.get('isLoading')) { return null; } @@ -104,18 +51,22 @@ export const makeGetStatus = () => { statusReblog = null; } - const dropRegex = (accountReblog || accountBase).get('id') !== me && filtersRegex[0]; - if (dropRegex && dropRegex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'))) { - return null; + let filtered = false; + if ((accountReblog || accountBase).get('id') !== me && filters) { + let filterResults = statusReblog?.get('filtered') || statusBase.get('filtered') || ImmutableList(); + if (filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'hide')) { + return null; + } + filterResults = filterResults.filter(result => filters.has(result.get('filter'))); + if (!filterResults.isEmpty()) { + filtered = filterResults.map(result => filters.getIn([result.get('filter'), 'title'])); + } } - const regex = (accountReblog || accountBase).get('id') !== me && filtersRegex[1]; - const filtered = regex && regex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index')); - return statusBase.withMutations(map => { map.set('reblog', statusReblog); map.set('account', accountBase); - map.set('filtered', filtered); + map.set('matched_filters', filtered); }); }, ); @@ -152,14 +103,15 @@ export const getAlerts = createSelector([getAlertsBase], (base) => { return arr; }); -export const makeGetNotification = () => { - return createSelector([ - (_, base) => base, - (state, _, accountId) => state.getIn(['accounts', accountId]), - ], (base, account) => { - return base.set('account', account); - }); -}; +export const makeGetNotification = () => createSelector([ + (_, base) => base, + (state, _, accountId) => state.getIn(['accounts', accountId]), +], (base, account) => base.set('account', account)); + +export const makeGetReport = () => createSelector([ + (_, base) => base, + (state, _, targetAccountId) => state.getIn(['accounts', targetAccountId]), +], (base, targetAccount) => base.set('target_account', targetAccount)); export const getAccountGallery = createSelector([ (state, id) => state.getIn(['timelines', `account:${id}:media`, 'items'], ImmutableList()), diff --git a/app/javascript/mastodon/service_worker/entry.js b/app/javascript/mastodon/service_worker/entry.js index b354f3b3321dc5..9026012feb5823 100644 --- a/app/javascript/mastodon/service_worker/entry.js +++ b/app/javascript/mastodon/service_worker/entry.js @@ -1,44 +1,74 @@ -// import { freeStorage, storageFreeable } from '../storage/modifier'; -import './web_push_notifications'; +import { ExpirationPlugin } from 'workbox-expiration'; +import { precacheAndRoute } from 'workbox-precaching'; +import { registerRoute } from 'workbox-routing'; +import { CacheFirst } from 'workbox-strategies'; +import { handleNotificationClick, handlePush } from './web_push_notifications'; -// function openSystemCache() { -// return caches.open('mastodon-system'); -// } +const CACHE_NAME_PREFIX = 'mastodon-'; function openWebCache() { - return caches.open('mastodon-web'); + return caches.open(`${CACHE_NAME_PREFIX}web`); } function fetchRoot() { return fetch('/', { credentials: 'include', redirect: 'manual' }); } -// const firefox = navigator.userAgent.match(/Firefox\/(\d+)/); -// const invalidOnlyIfCached = firefox && firefox[1] < 60; +precacheAndRoute(self.__WB_MANIFEST); + +registerRoute( + /locale_.*\.js$/, + new CacheFirst({ + cacheName: `${CACHE_NAME_PREFIX}locales`, + plugins: [ + new ExpirationPlugin({ + maxAgeSeconds: 30 * 24 * 60 * 60, // 1 month + maxEntries: 5, + }), + ], + }), +); + +registerRoute( + ({ request }) => request.destination === 'font', + new CacheFirst({ + cacheName: `${CACHE_NAME_PREFIX}fonts`, + plugins: [ + new ExpirationPlugin({ + maxAgeSeconds: 30 * 24 * 60 * 60, // 1 month + maxEntries: 5, + }), + ], + }), +); + +registerRoute( + ({ request }) => request.destination === 'image', + new CacheFirst({ + cacheName: `m${CACHE_NAME_PREFIX}media`, + plugins: [ + new ExpirationPlugin({ + maxAgeSeconds: 7 * 24 * 60 * 60, // 1 week + maxEntries: 256, + }), + ], + }), +); // Cause a new version of a registered Service Worker to replace an existing one // that is already installed, and replace the currently active worker on open pages. self.addEventListener('install', function(event) { event.waitUntil(Promise.all([openWebCache(), fetchRoot()]).then(([cache, root]) => cache.put('/', root))); }); + self.addEventListener('activate', function(event) { event.waitUntil(self.clients.claim()); }); + self.addEventListener('fetch', function(event) { const url = new URL(event.request.url); - if (url.pathname.startsWith('/web/')) { - const asyncResponse = fetchRoot(); - const asyncCache = openWebCache(); - - event.respondWith(asyncResponse.then( - response => { - const clonedResponse = response.clone(); - asyncCache.then(cache => cache.put('/', clonedResponse)).catch(); - return response; - }, - () => asyncCache.then(cache => cache.match('/')))); - } else if (url.pathname === '/auth/sign_out') { + if (url.pathname === '/auth/sign_out') { const asyncResponse = fetch(event.request); const asyncCache = openWebCache(); @@ -52,26 +82,8 @@ self.addEventListener('fetch', function(event) { return response; })); - } /* else if (storageFreeable && (ATTACHMENT_HOST ? url.host === ATTACHMENT_HOST : url.pathname.startsWith('/system/'))) { - event.respondWith(openSystemCache().then(cache => { - return cache.match(event.request.url).then(cached => { - if (cached === undefined) { - const asyncResponse = invalidOnlyIfCached && event.request.cache === 'only-if-cached' ? - fetch(event.request, { cache: 'no-cache' }) : fetch(event.request); - - return asyncResponse.then(response => { - if (response.ok) { - cache - .put(event.request.url, response.clone()) - .catch(()=>{}).then(freeStorage()).catch(); - } - - return response; - }); - } - - return cached; - }); - })); - } */ + } }); + +self.addEventListener('push', handlePush); +self.addEventListener('notificationclick', handleNotificationClick); diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js index 48a2be7e70223d..f125957773c232 100644 --- a/app/javascript/mastodon/service_worker/web_push_notifications.js +++ b/app/javascript/mastodon/service_worker/web_push_notifications.js @@ -15,7 +15,7 @@ const notify = options => icon: '/android-chrome-192x192.png', tag: GROUP_TAG, data: { - url: (new URL('/web/notifications', self.location)).href, + url: (new URL('/notifications', self.location)).href, count: notifications.length + 1, preferred_locale: options.data.preferred_locale, }, @@ -75,7 +75,7 @@ const formatMessage = (messageId, locale, values = {}) => const htmlToPlainText = html => unescape(html.replace(//g, '\n').replace(/<\/p>

      /g, '\n\n').replace(/<[^>]*>/g, '')); -const handlePush = (event) => { +export const handlePush = (event) => { const { access_token, notification_id, preferred_locale, title, body, icon } = event.data.json(); // Placeholder until more information can be loaded @@ -90,7 +90,7 @@ const handlePush = (event) => { options.tag = notification.id; options.badge = '/badge.png'; options.image = notification.status && notification.status.media_attachments.length > 0 && notification.status.media_attachments[0].preview_url || undefined; - options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/web/@${notification.account.acct}/${notification.status.id}` : `/web/@${notification.account.acct}` }; + options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/@${notification.account.acct}/${notification.status.id}` : `/@${notification.account.acct}` }; if (notification.status && notification.status.spoiler_text || notification.status.sensitive) { options.data.hiddenBody = htmlToPlainText(notification.status.content); @@ -115,7 +115,7 @@ const handlePush = (event) => { tag: notification_id, timestamp: new Date(), badge: '/badge.png', - data: { access_token, preferred_locale, url: '/web/notifications' }, + data: { access_token, preferred_locale, url: '/notifications' }, }); }), ); @@ -166,30 +166,16 @@ const removeActionFromNotification = (notification, action) => { const openUrl = url => self.clients.matchAll({ type: 'window' }).then(clientList => { - if (clientList.length !== 0) { - const webClients = clientList.filter(client => /\/web\//.test(client.url)); - - if (webClients.length !== 0) { - const client = findBestClient(webClients); - const { pathname } = new URL(url, self.location); - - if (pathname.startsWith('/web/')) { - return client.focus().then(client => client.postMessage({ - type: 'navigate', - path: pathname.slice('/web/'.length - 1), - })); - } - } else if ('navigate' in clientList[0]) { // Chrome 42-48 does not support navigate - const client = findBestClient(clientList); + if (clientList.length !== 0 && 'navigate' in clientList[0]) { // Chrome 42-48 does not support navigate + const client = findBestClient(clientList); - return client.navigate(url).then(client => client.focus()); - } + return client.navigate(url).then(client => client.focus()); } return self.clients.openWindow(url); }); -const handleNotificationClick = (event) => { +export const handleNotificationClick = (event) => { const reactToNotificationClick = new Promise((resolve, reject) => { if (event.action) { if (event.action === 'expand') { @@ -211,6 +197,3 @@ const handleNotificationClick = (event) => { event.waitUntil(reactToNotificationClick); }; - -self.addEventListener('push', handlePush); -self.addEventListener('notificationclick', handleNotificationClick); diff --git a/app/javascript/mastodon/settings.js b/app/javascript/mastodon/settings.js index 7643a508ea0ce0..46cfadfa36ba95 100644 --- a/app/javascript/mastodon/settings.js +++ b/app/javascript/mastodon/settings.js @@ -45,3 +45,4 @@ export default class Settings { export const pushNotificationsSetting = new Settings('mastodon_push_notification_data'); export const tagHistory = new Settings('mastodon_tag_history'); +export const bannerSettings = new Settings('mastodon_banner_settings'); diff --git a/app/javascript/mastodon/storage/db.js b/app/javascript/mastodon/storage/db.js deleted file mode 100644 index 377a792a7decaf..00000000000000 --- a/app/javascript/mastodon/storage/db.js +++ /dev/null @@ -1,27 +0,0 @@ -export default () => new Promise((resolve, reject) => { - // ServiceWorker is required to synchronize the login state. - // Microsoft Edge 17 does not support getAll according to: - // Catalog of standard and vendor APIs across browsers - Microsoft Edge Development - // https://developer.microsoft.com/en-us/microsoft-edge/platform/catalog/?q=specName%3Aindexeddb - if (!('caches' in self && 'getAll' in IDBObjectStore.prototype)) { - reject(); - return; - } - - const request = indexedDB.open('mastodon'); - - request.onerror = reject; - request.onsuccess = ({ target }) => resolve(target.result); - - request.onupgradeneeded = ({ target }) => { - const accounts = target.result.createObjectStore('accounts', { autoIncrement: true }); - const statuses = target.result.createObjectStore('statuses', { autoIncrement: true }); - - accounts.createIndex('id', 'id', { unique: true }); - accounts.createIndex('moved', 'moved'); - - statuses.createIndex('id', 'id', { unique: true }); - statuses.createIndex('account', 'account'); - statuses.createIndex('reblog', 'reblog'); - }; -}); diff --git a/app/javascript/mastodon/storage/modifier.js b/app/javascript/mastodon/storage/modifier.js deleted file mode 100644 index 9fadabef44cd17..00000000000000 --- a/app/javascript/mastodon/storage/modifier.js +++ /dev/null @@ -1,211 +0,0 @@ -import openDB from './db'; - -const accountAssetKeys = ['avatar', 'avatar_static', 'header', 'header_static']; -const storageMargin = 8388608; -const storeLimit = 1024; - -// navigator.storage is not present on: -// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.100 Safari/537.36 Edge/16.16299 -// estimate method is not present on Chrome 57.0.2987.98 on Linux. -export const storageFreeable = 'storage' in navigator && 'estimate' in navigator.storage; - -function openCache() { - // ServiceWorker and Cache API is not available on iOS 11 - // https://webkit.org/status/#specification-service-workers - return self.caches ? caches.open('mastodon-system') : Promise.reject(); -} - -function printErrorIfAvailable(error) { - if (error) { - console.warn(error); - } -} - -function put(name, objects, onupdate, oncreate) { - return openDB().then(db => (new Promise((resolve, reject) => { - const putTransaction = db.transaction(name, 'readwrite'); - const putStore = putTransaction.objectStore(name); - const putIndex = putStore.index('id'); - - objects.forEach(object => { - putIndex.getKey(object.id).onsuccess = retrieval => { - function addObject() { - putStore.add(object); - } - - function deleteObject() { - putStore.delete(retrieval.target.result).onsuccess = addObject; - } - - if (retrieval.target.result) { - if (onupdate) { - onupdate(object, retrieval.target.result, putStore, deleteObject); - } else { - deleteObject(); - } - } else { - if (oncreate) { - oncreate(object, addObject); - } else { - addObject(); - } - } - }; - }); - - putTransaction.oncomplete = () => { - const readTransaction = db.transaction(name, 'readonly'); - const readStore = readTransaction.objectStore(name); - const count = readStore.count(); - - count.onsuccess = () => { - const excess = count.result - storeLimit; - - if (excess > 0) { - const retrieval = readStore.getAll(null, excess); - - retrieval.onsuccess = () => resolve(retrieval.result); - retrieval.onerror = reject; - } else { - resolve([]); - } - }; - - count.onerror = reject; - }; - - putTransaction.onerror = reject; - })).then(resolved => { - db.close(); - return resolved; - }, error => { - db.close(); - throw error; - })); -} - -function evictAccountsByRecords(records) { - return openDB().then(db => { - const transaction = db.transaction(['accounts', 'statuses'], 'readwrite'); - const accounts = transaction.objectStore('accounts'); - const accountsIdIndex = accounts.index('id'); - const accountsMovedIndex = accounts.index('moved'); - const statuses = transaction.objectStore('statuses'); - const statusesIndex = statuses.index('account'); - - function evict(toEvict) { - toEvict.forEach(record => { - openCache() - .then(cache => accountAssetKeys.forEach(key => cache.delete(records[key]))) - .catch(printErrorIfAvailable); - - accountsMovedIndex.getAll(record.id).onsuccess = ({ target }) => evict(target.result); - - statusesIndex.getAll(record.id).onsuccess = - ({ target }) => evictStatusesByRecords(target.result); - - accountsIdIndex.getKey(record.id).onsuccess = - ({ target }) => target.result && accounts.delete(target.result); - }); - } - - evict(records); - - db.close(); - }).catch(printErrorIfAvailable); -} - -export function evictStatus(id) { - evictStatuses([id]); -} - -export function evictStatuses(ids) { - return openDB().then(db => { - const transaction = db.transaction('statuses', 'readwrite'); - const store = transaction.objectStore('statuses'); - const idIndex = store.index('id'); - const reblogIndex = store.index('reblog'); - - ids.forEach(id => { - reblogIndex.getAllKeys(id).onsuccess = - ({ target }) => target.result.forEach(reblogKey => store.delete(reblogKey)); - - idIndex.getKey(id).onsuccess = - ({ target }) => target.result && store.delete(target.result); - }); - - db.close(); - }).catch(printErrorIfAvailable); -} - -function evictStatusesByRecords(records) { - return evictStatuses(records.map(({ id }) => id)); -} - -export function putAccounts(records, avatarStatic) { - const avatarKey = avatarStatic ? 'avatar_static' : 'avatar'; - const newURLs = []; - - put('accounts', records, (newRecord, oldKey, store, oncomplete) => { - store.get(oldKey).onsuccess = ({ target }) => { - accountAssetKeys.forEach(key => { - const newURL = newRecord[key]; - const oldURL = target.result[key]; - - if (newURL !== oldURL) { - openCache() - .then(cache => cache.delete(oldURL)) - .catch(printErrorIfAvailable); - } - }); - - const newURL = newRecord[avatarKey]; - const oldURL = target.result[avatarKey]; - - if (newURL !== oldURL) { - newURLs.push(newURL); - } - - oncomplete(); - }; - }, (newRecord, oncomplete) => { - newURLs.push(newRecord[avatarKey]); - oncomplete(); - }).then(records => Promise.all([ - evictAccountsByRecords(records), - openCache().then(cache => cache.addAll(newURLs)), - ])).then(freeStorage, error => { - freeStorage(); - throw error; - }).catch(printErrorIfAvailable); -} - -export function putStatuses(records) { - put('statuses', records) - .then(evictStatusesByRecords) - .catch(printErrorIfAvailable); -} - -export function freeStorage() { - return storageFreeable && navigator.storage.estimate().then(({ quota, usage }) => { - if (usage + storageMargin < quota) { - return null; - } - - return openDB().then(db => new Promise((resolve, reject) => { - const retrieval = db.transaction('accounts', 'readonly').objectStore('accounts').getAll(null, 1); - - retrieval.onsuccess = () => { - if (retrieval.result.length > 0) { - resolve(evictAccountsByRecords(retrieval.result).then(freeStorage)); - } else { - resolve(caches.delete('mastodon-system')); - } - }; - - retrieval.onerror = reject; - - db.close(); - })); - }); -} diff --git a/app/javascript/mastodon/utils/filters.js b/app/javascript/mastodon/utils/filters.js new file mode 100644 index 00000000000000..97b433a991f4af --- /dev/null +++ b/app/javascript/mastodon/utils/filters.js @@ -0,0 +1,16 @@ +export const toServerSideType = columnType => { + switch (columnType) { + case 'home': + case 'notifications': + case 'public': + case 'thread': + case 'account': + return columnType; + default: + if (columnType.indexOf('list:') > -1) { + return 'home'; + } else { + return 'public'; // community, account, hashtag + } + } +}; diff --git a/app/javascript/mastodon/utils/icons.js b/app/javascript/mastodon/utils/icons.js new file mode 100644 index 00000000000000..c3e362e39ad6a5 --- /dev/null +++ b/app/javascript/mastodon/utils/icons.js @@ -0,0 +1,15 @@ +import React from 'react'; + +// Copied from emoji-mart for consistency with emoji picker and since +// they don't export the icons in the package +export const loupeIcon = ( + + + +); + +export const deleteIcon = ( + + + +); diff --git a/app/javascript/mastodon/utils/resize_image.js b/app/javascript/mastodon/utils/resize_image.js index 22ff86801a642a..fb8c3c11e6ae93 100644 --- a/app/javascript/mastodon/utils/resize_image.js +++ b/app/javascript/mastodon/utils/resize_image.js @@ -109,7 +109,7 @@ const loadImage = inputFile => new Promise((resolve, reject) => { }); const getOrientation = (img, type = 'image/png') => new Promise(resolve => { - if (type !== 'image/jpeg') { + if (!['image/jpeg', 'image/webp'].includes(type)) { resolve(1); return; } diff --git a/app/javascript/packs/about.js b/app/javascript/packs/about.js deleted file mode 100644 index 892d825ece23e5..00000000000000 --- a/app/javascript/packs/about.js +++ /dev/null @@ -1,26 +0,0 @@ -import './public-path'; -import loadPolyfills from '../mastodon/load_polyfills'; -import { start } from '../mastodon/common'; - -start(); - -function loaded() { - const TimelineContainer = require('../mastodon/containers/timeline_container').default; - const React = require('react'); - const ReactDOM = require('react-dom'); - const mountNode = document.getElementById('mastodon-timeline'); - - if (mountNode !== null) { - const props = JSON.parse(mountNode.getAttribute('data-props')); - ReactDOM.render(, mountNode); - } -} - -function main() { - const ready = require('../mastodon/ready').default; - ready(loaded); -} - -loadPolyfills().then(main).catch(error => { - console.error(error); -}); diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.js index a3ed1ffedd8feb..de86e0e1172f8e 100644 --- a/app/javascript/packs/admin.js +++ b/app/javascript/packs/admin.js @@ -2,20 +2,91 @@ import './public-path'; import { delegate } from '@rails/ujs'; import ready from '../mastodon/ready'; +const setAnnouncementEndsAttributes = (target) => { + const valid = target?.value && target?.validity?.valid; + const element = document.querySelector('input[type="datetime-local"]#announcement_ends_at'); + if (valid) { + element.classList.remove('optional'); + element.required = true; + element.min = target.value; + } else { + element.classList.add('optional'); + element.removeAttribute('required'); + element.removeAttribute('min'); + } +}; + +delegate(document, 'input[type="datetime-local"]#announcement_starts_at', 'change', ({ target }) => { + setAnnouncementEndsAttributes(target); +}); + const batchCheckboxClassName = '.batch-checkbox input[type="checkbox"]'; +const showSelectAll = () => { + const selectAllMatchingElement = document.querySelector('.batch-table__select-all'); + selectAllMatchingElement.classList.add('active'); +}; + +const hideSelectAll = () => { + const selectAllMatchingElement = document.querySelector('.batch-table__select-all'); + const hiddenField = document.querySelector('#select_all_matching'); + const selectedMsg = document.querySelector('.batch-table__select-all .selected'); + const notSelectedMsg = document.querySelector('.batch-table__select-all .not-selected'); + + selectAllMatchingElement.classList.remove('active'); + selectedMsg.classList.remove('active'); + notSelectedMsg.classList.add('active'); + hiddenField.value = '0'; +}; + delegate(document, '#batch_checkbox_all', 'change', ({ target }) => { + const selectAllMatchingElement = document.querySelector('.batch-table__select-all'); + [].forEach.call(document.querySelectorAll(batchCheckboxClassName), (content) => { content.checked = target.checked; }); + + if (selectAllMatchingElement) { + if (target.checked) { + showSelectAll(); + } else { + hideSelectAll(); + } + } +}); + +delegate(document, '.batch-table__select-all button', 'click', () => { + const hiddenField = document.querySelector('#select_all_matching'); + const active = hiddenField.value === '1'; + const selectedMsg = document.querySelector('.batch-table__select-all .selected'); + const notSelectedMsg = document.querySelector('.batch-table__select-all .not-selected'); + + if (active) { + hiddenField.value = '0'; + selectedMsg.classList.remove('active'); + notSelectedMsg.classList.add('active'); + } else { + hiddenField.value = '1'; + notSelectedMsg.classList.remove('active'); + selectedMsg.classList.add('active'); + } }); delegate(document, batchCheckboxClassName, 'change', () => { const checkAllElement = document.querySelector('#batch_checkbox_all'); + const selectAllMatchingElement = document.querySelector('.batch-table__select-all'); if (checkAllElement) { checkAllElement.checked = [].every.call(document.querySelectorAll(batchCheckboxClassName), (content) => content.checked); checkAllElement.indeterminate = !checkAllElement.checked && [].some.call(document.querySelectorAll(batchCheckboxClassName), (content) => content.checked); + + if (selectAllMatchingElement) { + if (checkAllElement.checked) { + showSelectAll(); + } else { + hideSelectAll(); + } + } } }); @@ -88,6 +159,20 @@ const onChangeRegistrationMode = (target) => { }); }; +const convertUTCDateTimeToLocal = (value) => { + const date = new Date(value + 'Z'); + const twoChars = (x) => (x.toString().padStart(2, '0')); + return `${date.getFullYear()}-${twoChars(date.getMonth()+1)}-${twoChars(date.getDate())}T${twoChars(date.getHours())}:${twoChars(date.getMinutes())}`; +}; + +const convertLocalDatetimeToUTC = (value) => { + const re = /^([0-9]{4,})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})/; + const match = re.exec(value); + const date = new Date(match[1], match[2] - 1, match[3], match[4], match[5]); + const fullISO8601 = date.toISOString(); + return fullISO8601.slice(0, fullISO8601.indexOf('T') + 6); +}; + delegate(document, '#form_admin_settings_registrations_mode', 'change', ({ target }) => onChangeRegistrationMode(target)); ready(() => { @@ -110,6 +195,28 @@ ready(() => { } }); + [].forEach.call(document.querySelectorAll('input[type="datetime-local"]'), element => { + if (element.value) { + element.value = convertUTCDateTimeToLocal(element.value); + } + if (element.placeholder) { + element.placeholder = convertUTCDateTimeToLocal(element.placeholder); + } + }); + + delegate(document, 'form', 'submit', ({ target }) => { + [].forEach.call(target.querySelectorAll('input[type="datetime-local"]'), element => { + if (element.value && element.validity.valid) { + element.value = convertLocalDatetimeToUTC(element.value); + } + }); + }); + + const announcementStartsAt = document.querySelector('input[type="datetime-local"]#announcement_starts_at'); + if (announcementStartsAt) { + setAnnouncementEndsAttributes(announcementStartsAt); + } + const React = require('react'); const ReactDOM = require('react-dom'); diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 91240aecfb85a0..020f2b4a0edada 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -4,8 +4,10 @@ import { start } from '../mastodon/common'; start(); -loadPolyfills().then(() => { - require('../mastodon/main').default(); +loadPolyfills().then(async () => { + const { default: main } = await import('mastodon/main'); + + return main(); }).catch(e => { console.error(e); }); diff --git a/app/javascript/packs/mailer.js b/app/javascript/packs/mailer.js index 732fc1698162a3..a4b6d54464584a 100644 --- a/app/javascript/packs/mailer.js +++ b/app/javascript/packs/mailer.js @@ -1 +1,3 @@ require('../styles/mailer.scss'); + +require.context('../icons'); diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js index 3d0a937e1f8074..786fc8ede2d746 100644 --- a/app/javascript/packs/public.js +++ b/app/javascript/packs/public.js @@ -4,6 +4,7 @@ import loadPolyfills from '../mastodon/load_polyfills'; import ready from '../mastodon/ready'; import { start } from '../mastodon/common'; import loadKeyboardExtensions from '../mastodon/load_keyboard_extensions'; +import 'cocoon-js-vanilla'; start(); @@ -32,7 +33,6 @@ function main() { const { messages } = getLocale(); const React = require('react'); const ReactDOM = require('react-dom'); - const Rellax = require('rellax'); const { createBrowserHistory } = require('history'); const scrollToDetailedStatus = () => { @@ -111,12 +111,6 @@ function main() { scrollToDetailedStatus(); } - const parallaxComponents = document.querySelectorAll('.parallax'); - - if (parallaxComponents.length > 0 ) { - new Rellax('.parallax', { speed: -1 }); - } - delegate(document, '#registration_user_password_confirmation,#registration_user_password', 'input', () => { const password = document.getElementById('registration_user_password'); const confirmation = document.getElementById('registration_user_password_confirmation'); @@ -167,28 +161,6 @@ function main() { }); }); - delegate(document, '.webapp-btn', 'click', ({ target, button }) => { - if (button !== 0) { - return true; - } - window.location.href = target.href; - return false; - }); - - delegate(document, '.modal-button', 'click', e => { - e.preventDefault(); - - let href; - - if (e.target.nodeName !== 'A') { - href = e.target.parentNode.href; - } else { - href = e.target.href; - } - - window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); - }); - delegate(document, '#account_display_name', 'input', ({ target }) => { const name = document.querySelector('.card .display-name strong'); if (name) { @@ -275,8 +247,31 @@ function main() { input.readonly = oldReadOnly; }); + const toggleSidebar = () => { + const sidebar = document.querySelector('.sidebar ul'); + const toggleButton = document.querySelector('.sidebar__toggle__icon'); + + if (sidebar.classList.contains('visible')) { + document.body.style.overflow = null; + toggleButton.setAttribute('aria-expanded', false); + } else { + document.body.style.overflow = 'hidden'; + toggleButton.setAttribute('aria-expanded', true); + } + + toggleButton.classList.toggle('active'); + sidebar.classList.toggle('visible'); + }; + delegate(document, '.sidebar__toggle__icon', 'click', () => { - document.querySelector('.sidebar ul').classList.toggle('visible'); + toggleSidebar(); + }); + + delegate(document, '.sidebar__toggle__icon', 'keydown', e => { + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + toggleSidebar(); + } }); // Empty the honeypot fields in JS in case something like an extension diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss index 8ebc45b62d1ae8..81a040108ec504 100644 --- a/app/javascript/styles/application.scss +++ b/app/javascript/styles/application.scss @@ -2,14 +2,12 @@ @import 'mastodon/variables'; @import 'fonts/roboto'; @import 'fonts/roboto-mono'; -@import 'fonts/montserrat'; @import 'mastodon/reset'; @import 'mastodon/basics'; +@import 'mastodon/branding'; @import 'mastodon/containers'; @import 'mastodon/lists'; -@import 'mastodon/footer'; -@import 'mastodon/compact_header'; @import 'mastodon/widgets'; @import 'mastodon/forms'; @import 'mastodon/accounts'; @@ -17,7 +15,6 @@ @import 'mastodon/boost'; @import 'mastodon/components'; @import 'mastodon/polls'; -@import 'mastodon/introduction'; @import 'mastodon/modal'; @import 'mastodon/emoji_picker'; @import 'mastodon/about'; diff --git a/app/javascript/styles/contrast/diff.scss b/app/javascript/styles/contrast/diff.scss index 841ed66480c628..4fa1a0361661c9 100644 --- a/app/javascript/styles/contrast/diff.scss +++ b/app/javascript/styles/contrast/diff.scss @@ -1,4 +1,3 @@ -// components.scss .compose-form { .compose-form__modifiers { .compose-form__upload { @@ -13,70 +12,67 @@ } } -.rich-formatting a, -.rich-formatting p a, -.rich-formatting li a, -.landing-page__short-description p a, .status__content a, -.reply-indicator__content a { - color: lighten($ui-highlight-color, 12%); +.link-footer a, +.reply-indicator__content a, +.status__content__read-more-button { text-decoration: underline; - &.mention { + &:hover, + &:focus, + &:active { text-decoration: none; } - &.mention span { - text-decoration: underline; + &.mention { + text-decoration: none; + + span { + text-decoration: underline; + } &:hover, &:focus, &:active { - text-decoration: none; + span { + text-decoration: none; + } } } +} - &:hover, - &:focus, - &:active { - text-decoration: none; - } +.status__content a { + color: $highlight-text-color; +} - &.status__content__spoiler-link { - color: $secondary-text-color; - text-decoration: none; - } +.nothing-here { + color: $darker-text-color; } -.status__content__read-more-button { - text-decoration: underline; +.compose-form__poll-wrapper .button.button-secondary, +.compose-form .autosuggest-textarea__textarea::placeholder, +.compose-form .spoiler-input__input::placeholder, +.report-dialog-modal__textarea::placeholder, +.language-dropdown__dropdown__results__item__common-name, +.compose-form .icon-button { + color: $inverted-text-color; +} - &:hover, - &:focus, - &:active { - text-decoration: none; - } +.text-icon-button.active { + color: $ui-highlight-color; } -.getting-started__footer a { - text-decoration: underline; +.language-dropdown__dropdown__results__item.active { + background: $ui-highlight-color; + font-weight: 500; +} + +.link-button:disabled { + cursor: not-allowed; &:hover, &:focus, &:active { - text-decoration: none; + text-decoration: none !important; } } - -.nothing-here { - color: $darker-text-color; -} - -.public-layout .public-account-header__tabs__tabs .counter.active::after { - border-bottom: 4px solid $ui-highlight-color; -} - -.compose-form .autosuggest-textarea__textarea::placeholder, -.compose-form .spoiler-input__input::placeholder { - color: $inverted-text-color; -} diff --git a/app/javascript/styles/contrast/variables.scss b/app/javascript/styles/contrast/variables.scss index cfe3b21dbc6f36..e38d24b271cf8e 100644 --- a/app/javascript/styles/contrast/variables.scss +++ b/app/javascript/styles/contrast/variables.scss @@ -4,20 +4,18 @@ $black: #000000; $classic-base-color: #282c37; $classic-primary-color: #9baec8; $classic-secondary-color: #d9e1e8; -$classic-highlight-color: #2b90d9; +$classic-highlight-color: #6364ff; $ui-base-color: $classic-base-color !default; $ui-primary-color: $classic-primary-color !default; $ui-secondary-color: $classic-secondary-color !default; - -// Differences -$ui-highlight-color: #2b5fd9; +$ui-highlight-color: $classic-highlight-color !default; $darker-text-color: lighten($ui-primary-color, 20%) !default; $dark-text-color: lighten($ui-primary-color, 12%) !default; $secondary-text-color: lighten($ui-secondary-color, 6%) !default; -$highlight-text-color: $classic-highlight-color !default; -$action-button-color: #8d9ac2; +$highlight-text-color: lighten($ui-highlight-color, 10%) !default; +$action-button-color: lighten($ui-base-color, 50%); $inverted-text-color: $black !default; $lighter-text-color: darken($ui-base-color, 6%) !default; diff --git a/app/javascript/styles/custom.scss b/app/javascript/styles/custom.scss index 161d0842380f96..a0cd27ed15fdf2 100644 --- a/app/javascript/styles/custom.scss +++ b/app/javascript/styles/custom.scss @@ -1,293 +1,337 @@ -@mixin header__area(){ - will-change: transform; - font-size: 20px; - padding: 3px; - border-radious: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display: inline-block; +@import 'application'; + +@mixin header-area() { + will-change: transform; + font-size: 20px; + padding: 3px; + border-radious: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + display: inline-block; +} + +@mixin header-2eng-area() { + will-change: transform; + font-size: 15px; + padding: 3px; + border-radious: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + display: inline-block; +} + +@mixin header-remote-1kanji-area() { + @include header-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -@mixin header__2eng__area(){ - will-change: transform; - font-size: 15px; - padding: 3px; - border-radious: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display: inline-block; +.account__header__area-wrapper { + display: block; + margin: -27px 0 0 67px; + padding: 0; + line-height: 20px; } -@mixin header__remote__1kanji__area(){ - @include header__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__header__area-unknown { + @include header-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-wrapper{ - display: block; - margin: -27px 0px 0px 67px; - padding: 0px; - line-height: 20px; +.account__header__area-kobe { + @include header-area; + + background-color: rgba(255, 180, 255, 90%); + color: #000000; } -.account__header__area-unknown{ - @include header__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__header__area-hanshin { + @include header-area; + + background-color: rgba(200, 200, 51, 90%); + color: #000000; } -.account__header__area-kobe{ - @include header__area(); - background-color: rgba(255,180,255,0.9); - color:#000000; +.account__header__area-tanba { + @include header-area; + + background-color: rgba(160, 160, 160, 90%); + color: #111111; } -.account__header__area-hanshin{ - @include header__area(); - background-color: rgba(200,200,51,0.9); - color:#000000; +.account__header__area-tajima { + @include header-area; + + background-color: rgba(170, 80, 80, 90%); + color: #cccccc; } -.account__header__area-tanba{ - @include header__area(); - background-color: rgba(160,160,160,0.9); - color:#111111; +.account__header__area-seiban { + @include header-area; + + background-color: rgba(140, 190, 250, 90%); + color: #000000; } -.account__header__area-tajima{ - @include header__area(); - background-color: rgba(170,80,80,0.9); - color:#cccccc; +.account__header__area-touban { + @include header-area; + + background-color: rgba(250, 190, 140, 90%); + color: #000000; } -.account__header__area-seiban{ - @include header__area(); - background-color: rgba(140,190,250,0.9); - color:#000000; +.account__header__area-awaji { + @include header-area; + + background-color: rgba(170, 80, 170, 90%); + color: #ccccff; } -.account__header__area-touban{ - @include header__area(); - background-color: rgba(250,190,140,0.9); - color:#000000; +.account__header__area-kengai { + @include header-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-awaji{ - @include header__area(); - background-color: rgba(170,80,170,0.9); - color:#ccccff; +.account__header__area-remote-osaka { + @include header-remote-1kanji-area; } -.account__header__area-kengai{ - @include header__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__header__area-remote-mastodos { + @include header-remote-1kanji-area; } -.account__header__area-remote-osaka{ - @include header__remote__1kanji__area(); +.account__header__area-remote-pawoo { + @include header-2eng-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-remote-mastodos{ - @include header__remote__1kanji__area(); +.account__header__area-remote-jp { + @include header-2eng-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-remote-pawoo{ - @include header__2eng__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__header__area-remote-social { + @include header-2eng-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-remote-jp{ - @include header__2eng__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__header__area-remote-bestfriends { + @include header-2eng-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-remote-social{ - @include header__2eng__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__header__area-remote-matsudai { + @include header-remote-1kanji-area; } -.account__header__area-remote-bestfriends{ - @include header__2eng__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__header__area-remote-shachiku { + @include header-remote-1kanji-area; } -.account__header__area-remote-matsudai{ - @include header__remote__1kanji__area(); +.account__header__area-remote-minohdon { + @include header-remote-1kanji-area; } -.account__header__area-remote-shachiku{ - @include header__remote__1kanji__area(); +.account__header__area-remote-fedibird { + @include header-2eng-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-remote-minohdon{ - @include header__remote__1kanji__area(); +.account__header__area-remote-mastodon-japan { + @include header-2eng-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__header__area-remote-fedibird{ - @include header__2eng__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +@mixin avatar-area() { + will-change: transform; + font-size: 15px; + padding: 3px; + border-radious: 4px; + -webkit-border-radius: 4px; + display: inline-block; } -@mixin avatar__area(){ - will-change: transform; - font-size: 15px; - padding: 3px; - border-radious: 4px; - -webkit-border-radius: 4px; - display: inline-block; +@mixin avatar-2eng-area() { + will-change: transform; + font-size: 13px; + padding: 3px; + border-radious: 4px; + -webkit-border-radius: 4px; + display: inline-block; } -@mixin avatar__2eng__area(){ - will-change: transform; - font-size: 13px; - padding: 3px; - border-radious: 4px; - -webkit-border-radius: 4px; - display: inline-block; +@mixin avatar-area-remote-1kanji() { + @include avatar-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -@mixin avatar__area__remote_1kanji(){ - @include avatar__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-wrapper { + display: block; + margin: -20.5px 0 0 27px; + padding: 0; + line-height: 15px; } -.account__avatar__area-wrapper{ - display: block; - margin: -20.5px 0px 0px 27px; - padding:0px; - line-height: 15px; +.account__avatar__area-unknown { + @include avatar-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__avatar__area-unknown{ - @include avatar__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-kobe { + @include avatar-area; + + background-color: rgba(255, 180, 255, 90%); + color: #000000; } -.account__avatar__area-kobe{ - @include avatar__area(); - background-color: rgba(255,180,255,0.9); - color:#000000; +.account__avatar__area-hanshin { + @include avatar-area; + + background-color: rgba(200, 200, 51, 90%); + color: #000000; } -.account__avatar__area-hanshin{ - @include avatar__area(); - background-color: rgba(200,200,51,0.9); - color:#000000; +.account__avatar__area-tanba { + @include avatar-area; + + background-color: rgba(160, 160, 160, 90%); + color: #111111; } -.account__avatar__area-tanba{ - @include avatar__area(); - background-color: rgba(160,160,160,0.9); - color:#111111; +.account__avatar__area-tajima { + @include avatar-area; + + background-color: rgba(170, 80, 80, 90%); + color: #cccccc; } -.account__avatar__area-tajima{ - @include avatar__area(); - background-color: rgba(170,80,80,0.9); - color:#cccccc; +.account__avatar__area-seiban { + @include avatar-area; + + background-color: rgba(140, 190, 250, 90%); + color: #000000; } -.account__avatar__area-seiban{ - @include avatar__area(); - background-color: rgba(140,190,250,0.9); - color:#000000; +.account__avatar__area-touban { + @include avatar-area; + + background-color: rgba(250, 190, 140, 90%); + color: #000000; } -.account__avatar__area-touban{ - @include avatar__area(); - background-color: rgba(250,190,140,0.9); - color:#000000; +.account__avatar__area-awaji { + @include avatar-area; + + background-color: rgba(170, 80, 170, 90%); + color: #ccccff; } -.account__avatar__area-awaji{ - @include avatar__area(); - background-color: rgba(170,80,170,0.9); - color:#ccccff; +.account__avatar__area-kengai { + @include avatar-area; + + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__avatar__area-kengai{ - @include avatar__area(); - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-remote-osaka { + @include avatar-area-remote-1kanji; } -.account__avatar__area-remote-osaka{ - @include avatar__area__remote_1kanji(); +.account__avatar__area-remote-mastodos { + @include avatar-area-remote-1kanji; } -.account__avatar__area-remote-mastodos{ - @include avatar__area__remote_1kanji(); +.account__avatar__area-remote-pawoo { + @include avatar-2eng-area; + + margin: 0 0 0 -4px; + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__avatar__area-remote-pawoo{ - @include avatar__2eng__area(); - margin: 0px 0px 0px -4px; - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-remote-jp { + @include avatar-2eng-area; + + margin: 0; + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__avatar__area-remote-jp{ - @include avatar__2eng__area(); - margin: 0px; - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-remote-social { + @include avatar-2eng-area; + + margin: 0; + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__avatar__area-remote-social{ - @include avatar__2eng__area(); - margin: 0px; - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-remote-bestfriends { + @include avatar-2eng-area; + + margin: 0; + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__avatar__area-remote-bestfriends{ - @include avatar__2eng__area(); - margin: 0px; - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-remote-matsudai { + @include avatar-area-remote-1kanji; } -.account__avatar__area-remote-matsudai{ - @include avatar__area__remote_1kanji(); +.account__avatar__area-remote-shachiku { + @include avatar-area-remote-1kanji; } -.account__avatar__area-remote-shachiku{ - @include avatar__area__remote_1kanji(); +.account__avatar__area-remote-minohdon { + @include avatar-area-remote-1kanji; } -.account__avatar__area-remote-minohdon{ - @include avatar__area__remote_1kanji(); +.account__avatar__area-remote-fedibird { + @include avatar-2eng-area; + + margin: 0; + background-color: rgba(200, 200, 200, 90%); + color: #000000; } -.account__avatar__area-remote-fedibird{ - @include avatar__2eng__area(); - margin: 0px; - background-color: rgba(200,200,200,0.9); - color:#000000; +.account__avatar__area-remote-mastodon-japan { + @include avatar-2eng-area; + + margin: 0; + background-color: rgba(200, 200, 200, 90%); + color: #000000; } .setting-select { - color: #9baec8; - background: transparent; - border: none; - border-bottom: 2px solid #9baec8; - -webkit-box-sizing: border-box; - box-sizing: border-box; - display: block; - font-family: inherit; - margin-bottom: 10px; - padding: 7px 0; - width: 100%; - background: #393f4f; + color: $primary-text-color; + border: none; + border-bottom: 2px solid $classic-primary-color; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + font-family: inherit; + margin-bottom: 10px; + padding: 7px 0; + width: 100%; + background: lighten($ui-base-color, 8%); } - -@import 'application'; diff --git a/app/javascript/styles/fonts/montserrat.scss b/app/javascript/styles/fonts/montserrat.scss deleted file mode 100644 index ea7e04536aae69..00000000000000 --- a/app/javascript/styles/fonts/montserrat.scss +++ /dev/null @@ -1,19 +0,0 @@ -@font-face { - font-family: 'mastodon-font-display'; - src: local('Montserrat'), - url('../fonts/montserrat/Montserrat-Regular.woff2') format('woff2'), - url('../fonts/montserrat/Montserrat-Regular.woff') format('woff'), - url('../fonts/montserrat/Montserrat-Regular.ttf') format('truetype'); - font-weight: 400; - font-display: swap; - font-style: normal; -} - -@font-face { - font-family: 'mastodon-font-display'; - src: local('Montserrat Medium'), - url('../fonts/montserrat/Montserrat-Medium.ttf') format('truetype'); - font-weight: 500; - font-display: swap; - font-style: normal; -} diff --git a/app/javascript/styles/fonts/roboto-mono.scss b/app/javascript/styles/fonts/roboto-mono.scss index bd9839abfb7f25..3802212a9b9fa5 100644 --- a/app/javascript/styles/fonts/roboto-mono.scss +++ b/app/javascript/styles/fonts/roboto-mono.scss @@ -1,6 +1,7 @@ @font-face { - font-family: 'mastodon-font-monospace'; - src: local('Roboto Mono'), + font-family: mastodon-font-monospace; + src: + local('Roboto Mono'), url('../fonts/roboto-mono/robotomono-regular-webfont.woff2') format('woff2'), url('../fonts/roboto-mono/robotomono-regular-webfont.woff') format('woff'), url('../fonts/roboto-mono/robotomono-regular-webfont.ttf') format('truetype'), diff --git a/app/javascript/styles/fonts/roboto.scss b/app/javascript/styles/fonts/roboto.scss index f3a6dcb6e774ef..65715238076a62 100644 --- a/app/javascript/styles/fonts/roboto.scss +++ b/app/javascript/styles/fonts/roboto.scss @@ -1,6 +1,7 @@ @font-face { - font-family: 'mastodon-font-sans-serif'; - src: local('Roboto Italic'), + font-family: mastodon-font-sans-serif; + src: + local('Roboto Italic'), url('../fonts/roboto/roboto-italic-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-italic-webfont.woff') format('woff'), url('../fonts/roboto/roboto-italic-webfont.ttf') format('truetype'), @@ -11,8 +12,9 @@ } @font-face { - font-family: 'mastodon-font-sans-serif'; - src: local('Roboto Bold'), + font-family: mastodon-font-sans-serif; + src: + local('Roboto Bold'), url('../fonts/roboto/roboto-bold-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-bold-webfont.woff') format('woff'), url('../fonts/roboto/roboto-bold-webfont.ttf') format('truetype'), @@ -23,8 +25,9 @@ } @font-face { - font-family: 'mastodon-font-sans-serif'; - src: local('Roboto Medium'), + font-family: mastodon-font-sans-serif; + src: + local('Roboto Medium'), url('../fonts/roboto/roboto-medium-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-medium-webfont.woff') format('woff'), url('../fonts/roboto/roboto-medium-webfont.ttf') format('truetype'), @@ -35,8 +38,9 @@ } @font-face { - font-family: 'mastodon-font-sans-serif'; - src: local('Roboto'), + font-family: mastodon-font-sans-serif; + src: + local('Roboto'), url('../fonts/roboto/roboto-regular-webfont.woff2') format('woff2'), url('../fonts/roboto/roboto-regular-webfont.woff') format('woff'), url('../fonts/roboto/roboto-regular-webfont.ttf') format('truetype'), diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 61c2d0d66ddf50..928af8453eff09 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -36,6 +36,21 @@ html { border-top: 0; } +.column > .scrollable.about { + border-top: 1px solid lighten($ui-base-color, 8%); +} + +.about__meta, +.about__section__title, +.interaction-modal { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.rules-list li::before { + background: $ui-highlight-color; +} + .directory__card__img { background: lighten($ui-base-color, 12%); } @@ -45,10 +60,6 @@ html { border-bottom: 1px solid lighten($ui-base-color, 8%); } -.table-of-contents { - border: 1px solid lighten($ui-base-color, 8%); -} - .column-back-button, .column-header { background: $white; @@ -67,7 +78,7 @@ html { .column-header__back-button, .column-header__button, .column-header__button.active, -.account__header__bar { +.account__header { background: $white; } @@ -138,11 +149,6 @@ html { .compose-form__poll-wrapper select, .search__input, .setting-text, -.box-widget input[type="text"], -.box-widget input[type="email"], -.box-widget input[type="password"], -.box-widget textarea, -.statuses-grid .detailed-status, .report-dialog-modal__textarea, .audio-player { border: 1px solid lighten($ui-base-color, 8%); @@ -197,7 +203,8 @@ html { // Change the colors used in compose-form .compose-form { .compose-form__modifiers { - .compose-form__upload__actions .icon-button { + .compose-form__upload__actions .icon-button, + .compose-form__upload__warning .icon-button { color: lighten($white, 7%); &:active, @@ -206,14 +213,6 @@ html { color: $white; } } - - .compose-form__upload-description input { - color: lighten($white, 7%); - - &::placeholder { - color: lighten($white, 7%); - } - } } .compose-form__buttons-wrapper { @@ -262,7 +261,8 @@ html { .status__content .status__content__spoiler-link { background: $ui-base-color; - &:hover { + &:hover, + &:focus { background: lighten($ui-base-color, 4%); } } @@ -409,6 +409,7 @@ html { .icon-with-badge__badge { border-color: $white; + color: $white; } .report-modal__comment { @@ -425,10 +426,36 @@ html { border-top: 0; } -.focal-point__preview strong { +.dashboard__quick-access, +.focal-point__preview strong, +.admin-wrapper .content__heading__tabs a.selected { color: $white; } +.button.button-tertiary { + &:hover, + &:focus, + &:active { + color: $white; + } +} + +.button.button-secondary { + border-color: $darker-text-color; + color: $darker-text-color; + + &:hover, + &:focus, + &:active { + border-color: darken($darker-text-color, 8%); + color: darken($darker-text-color, 8%); + } +} + +.flash-message.warning { + color: lighten($gold-star, 16%); +} + .boost-modal__action-bar, .confirmation-modal__action-bar, .mute-modal__action-bar, @@ -480,52 +507,16 @@ html { background: $white; } -.tabs-bar { - background: $white; - border: 1px solid lighten($ui-base-color, 8%); - border-bottom: 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 0; - } - - &__link { - padding-bottom: 14px; - border-bottom-width: 1px; - border-bottom-color: lighten($ui-base-color, 8%); - - &:hover, - &:active, - &:focus { - background: $ui-base-color; - } - - &.active { - &:hover, - &:active, - &:focus { - background: transparent; - border-bottom-color: $ui-highlight-color; - } - } - } -} - // Change the default colors used on some parts of the profile pages .activity-stream-tabs { background: $account-background-color; border-bottom-color: lighten($ui-base-color, 8%); } -.box-widget, .nothing-here, .page-header, .directory__tag > a, -.directory__tag > div, -.landing-page__call-to-action, -.contact-widget, -.landing .hero-widget__text, -.landing-page__information.contact-widget { +.directory__tag > div { background: $white; border: 1px solid lighten($ui-base-color, 8%); @@ -536,16 +527,11 @@ html { } } -.landing .hero-widget__text { - border-top: 0; - border-bottom: 0; -} - .simple_form { - input[type=text], - input[type=number], - input[type=email], - input[type=password], + input[type="text"], + input[type="number"], + input[type="email"], + input[type="password"], textarea { &:hover { border-color: lighten($ui-base-color, 12%); @@ -553,26 +539,12 @@ html { } } -.landing .hero-widget__footer { - background: $white; - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border: 0; - } -} - .picture-in-picture-placeholder { background: $white; border-color: lighten($ui-base-color, 8%); color: lighten($ui-base-color, 8%); } -.brand__tagline { - color: $ui-secondary-color; -} - .directory__tag > a { &:hover, &:active, @@ -666,8 +638,7 @@ html { } } -.simple_form, -.table-form { +.simple_form { .warning { box-shadow: none; background: rgba($error-red, 0.5); @@ -691,6 +662,16 @@ html { } } +.reply-indicator { + background: transparent; + border: 1px solid lighten($ui-base-color, 8%); +} + +.dismissable-banner { + border-left: 1px solid lighten($ui-base-color, 8%); + border-right: 1px solid lighten($ui-base-color, 8%); +} + .status__content, .reply-indicator__content { a { @@ -706,104 +687,12 @@ html { } } -.public-layout { - .account__section-headline { - border: 1px solid lighten($ui-base-color, 8%); - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 0; - } - } - - .header, - .public-account-header, - .public-account-bio { - box-shadow: none; - } - - .public-account-bio, - .hero-widget__text { - background: $account-background-color; - } - - .header { - background: $ui-base-color; - border: 1px solid lighten($ui-base-color, 8%); - - @media screen and (max-width: $no-gap-breakpoint) { - border: 0; - } - - .brand { - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 4%); - } - } - } - - .public-account-header { - &__image { - background: lighten($ui-base-color, 12%); - - &::after { - box-shadow: none; - } - } - - &__bar { - &::before { - background: $account-background-color; - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; - } - - .avatar img { - border-color: $account-background-color; - } - - @media screen and (max-width: $no-columns-breakpoint) { - background: $account-background-color; - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; - } - } - - &__tabs { - &__name { - h1, - h1 small { - color: $white; - - @media screen and (max-width: $no-columns-breakpoint) { - color: $primary-text-color; - } - } - } - } - - &__extra { - .public-account-bio { - border: 0; - } - - .public-account-bio .account__header__fields { - border-color: lighten($ui-base-color, 8%); - } - } - } -} - .notification__filter-bar button.active::after, .account__section-headline a.active::after { border-color: transparent transparent $white; } .hero-widget, -.box-widget, -.contact-widget, -.landing-page__information.contact-widget, .moved-account-widget, .memoriam-widget, .activity-stream, diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss index bc039ff03d5783..cae065878c5fe0 100644 --- a/app/javascript/styles/mastodon-light/variables.scss +++ b/app/javascript/styles/mastodon-light/variables.scss @@ -5,7 +5,7 @@ $white: #ffffff; $classic-base-color: #282c37; $classic-primary-color: #9baec8; $classic-secondary-color: #d9e1e8; -$classic-highlight-color: #2b90d9; +$classic-highlight-color: #6364ff; // Differences $success-green: lighten(#3c754d, 8%); @@ -17,10 +17,11 @@ $ui-base-color: $classic-secondary-color !default; $ui-base-lighter-color: #b0c0cf; $ui-primary-color: #9bcbed; $ui-secondary-color: $classic-base-color !default; -$ui-highlight-color: #2b90d9; +$ui-highlight-color: $classic-highlight-color !default; $primary-text-color: $black !default; $darker-text-color: $classic-base-color !default; +$highlight-text-color: darken($ui-highlight-color, 8%) !default; $dark-text-color: #444b5d; $action-button-color: #606984; @@ -28,10 +29,10 @@ $inverted-text-color: $black !default; $lighter-text-color: $classic-base-color !default; $light-text-color: #444b5d; -//Newly added colors +// Newly added colors $account-background-color: $white !default; -//Invert darkened and lightened colors +// Invert darkened and lightened colors @function darken($color, $amount) { @return hsl(hue($color), saturation($color), lightness($color) + $amount); } diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss index 68cad0fde31787..dcfab6bd0157bc 100644 --- a/app/javascript/styles/mastodon/_mixins.scss +++ b/app/javascript/styles/mastodon/_mixins.scss @@ -20,6 +20,7 @@ font-family: inherit; background: $ui-base-color; color: $darker-text-color; + border-radius: 4px; font-size: 14px; margin: 0; } diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss index 9f2a1a3afa8219..0183c43d5e75d7 100644 --- a/app/javascript/styles/mastodon/about.scss +++ b/app/javascript/styles/mastodon/about.scss @@ -1,7 +1,5 @@ $maximum-width: 1235px; $fluid-breakpoint: $maximum-width + 20px; -$column-breakpoint: 700px; -$small-breakpoint: 960px; .container { box-sizing: border-box; @@ -15,892 +13,44 @@ $small-breakpoint: 960px; } } -.rich-formatting { - font-family: $font-sans-serif, sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.7; - word-wrap: break-word; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - - &:hover, - &:focus, - &:active { - text-decoration: none; - } - } - - p, - li { - color: $darker-text-color; - } - - p { - margin-top: 0; - margin-bottom: .85em; - - &:last-child { - margin-bottom: 0; - } - } - - strong { - font-weight: 700; - color: $secondary-text-color; - } - - em { - font-style: italic; - color: $secondary-text-color; - } - - code { - font-size: 0.85em; - background: darken($ui-base-color, 8%); - border-radius: 4px; - padding: 0.2em 0.3em; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-family: $font-display, sans-serif; - margin-top: 1.275em; - margin-bottom: .85em; - font-weight: 500; - color: $secondary-text-color; - } - - h1 { - font-size: 2em; - } - - h2 { - font-size: 1.75em; - } - - h3 { - font-size: 1.5em; - } - - h4 { - font-size: 1.25em; - } - - h5, - h6 { - font-size: 1em; - } - - ul { - list-style: disc; - } - - ol { - list-style: decimal; - } - - ul, - ol { - margin: 0; - padding: 0; - padding-left: 2em; - margin-bottom: 0.85em; - - &[type='a'] { - list-style-type: lower-alpha; - } - - &[type='i'] { - list-style-type: lower-roman; - } - } - - hr { - width: 100%; - height: 0; - border: 0; - border-bottom: 1px solid lighten($ui-base-color, 4%); - margin: 1.7em 0; - - &.spacer { - height: 1px; - border: 0; - } - } - - table { - width: 100%; - border-collapse: collapse; - break-inside: auto; - margin-top: 24px; - margin-bottom: 32px; - - thead tr, - tbody tr { - border-bottom: 1px solid lighten($ui-base-color, 4%); - font-size: 1em; - line-height: 1.625; - font-weight: 400; - text-align: left; - color: $darker-text-color; - } - - thead tr { - border-bottom-width: 2px; - line-height: 1.5; - font-weight: 500; - color: $dark-text-color; - } - - th, - td { - padding: 8px; - align-self: start; - align-items: start; - word-break: break-all; - - &.nowrap { - width: 25%; - position: relative; - - &::before { - content: ' '; - visibility: hidden; - } - - span { - position: absolute; - left: 8px; - right: 8px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - } - - & > :first-child { - margin-top: 0; - } +.brand { + position: relative; + text-decoration: none; } -.information-board { - background: darken($ui-base-color, 4%); - padding: 20px 0; - - .container-alt { - position: relative; - padding-right: 280px + 15px; - } - - &__sections { - display: flex; - justify-content: space-between; - flex-wrap: wrap; - } - - &__section { - flex: 1 0 0; - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - line-height: 28px; - color: $primary-text-color; - text-align: right; - padding: 10px 15px; - - span, - strong { - display: block; - } - - span { - &:last-child { - color: $secondary-text-color; - } - } - - strong { - font-family: $font-display, sans-serif; - font-weight: 500; - font-size: 32px; - line-height: 48px; - } - - @media screen and (max-width: $column-breakpoint) { - text-align: center; - } - } - - .panel { - position: absolute; - width: 280px; - box-sizing: border-box; - background: darken($ui-base-color, 8%); - padding: 20px; - padding-top: 10px; - border-radius: 4px 4px 0 0; - right: 0; - bottom: -40px; - - .panel-header { - font-family: $font-display, sans-serif; - font-size: 14px; - line-height: 24px; - font-weight: 500; - color: $darker-text-color; - padding-bottom: 5px; - margin-bottom: 15px; - border-bottom: 1px solid lighten($ui-base-color, 4%); - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - - a, - span { - font-weight: 400; - color: darken($darker-text-color, 10%); - } - - a { - text-decoration: none; - } - } - } - - .owner { - text-align: center; - - .avatar { - width: 80px; - height: 80px; - margin: 0 auto; - margin-bottom: 15px; - - img { - display: block; - width: 80px; - height: 80px; - border-radius: 48px; - } - } - - .name { - font-size: 14px; - - a { - display: block; - color: $primary-text-color; - text-decoration: none; - - &:hover { - .display_name { - text-decoration: underline; - } - } - } - - .username { - display: block; - color: $darker-text-color; - } - } - } -} +.rules-list { + font-size: 15px; + line-height: 22px; + color: $primary-text-color; + counter-reset: list-counter; -.landing-page { - p, li { - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - font-weight: 400; - line-height: 30px; - margin-bottom: 12px; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - } - } - - em { - display: inline; - margin: 0; - padding: 0; - font-weight: 700; - background: transparent; - font-family: inherit; - font-size: inherit; - line-height: inherit; - color: lighten($darker-text-color, 10%); - } - - h1 { - font-family: $font-display, sans-serif; - font-size: 26px; - line-height: 30px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - - small { - font-family: $font-sans-serif, sans-serif; - display: block; - font-size: 18px; - font-weight: 400; - color: lighten($darker-text-color, 10%); - } - } - - h2 { - font-family: $font-display, sans-serif; - font-size: 22px; - line-height: 26px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h3 { - font-family: $font-display, sans-serif; - font-size: 18px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h4 { - font-family: $font-display, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h5 { - font-family: $font-display, sans-serif; - font-size: 14px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h6 { - font-family: $font-display, sans-serif; - font-size: 12px; - line-height: 24px; + position: relative; + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 1em 1.75em; + padding-left: 3em; font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - ul, - ol { - margin-left: 20px; - - &[type='a'] { - list-style-type: lower-alpha; - } - - &[type='i'] { - list-style-type: lower-roman; - } - } - - ul { - list-style: disc; - } - - ol { - list-style: decimal; - } - - li > ol, - li > ul { - margin-top: 6px; - } - - hr { - width: 100%; - height: 0; - border: 0; - border-bottom: 1px solid rgba($ui-base-lighter-color, .6); - margin: 20px 0; - - &.spacer { - height: 1px; - border: 0; - } - } - - &__information, - &__forms { - padding: 20px; - } - - &__call-to-action { - background: $ui-base-color; - border-radius: 4px; - padding: 25px 40px; - overflow: hidden; - box-sizing: border-box; - - .row { - width: 100%; - display: flex; - flex-direction: row-reverse; - flex-wrap: nowrap; - justify-content: space-between; - align-items: center; - } - - .row__information-board { - display: flex; - justify-content: flex-end; - align-items: flex-end; - - .information-board__section { - flex: 1 0 auto; - padding: 0 10px; - } - - @media screen and (max-width: $no-gap-breakpoint) { - width: 100%; - justify-content: space-between; - } - } - - .row__mascot { - flex: 1; - margin: 10px -50px 0 0; - - @media screen and (max-width: $no-gap-breakpoint) { - display: none; - } - } - } - - &__logo { - margin-right: 20px; - - img { - height: 50px; - width: auto; - mix-blend-mode: lighten; - } - } - - &__information { - padding: 45px 40px; - margin-bottom: 10px; - - &:last-child { - margin-bottom: 0; - } - - strong { + counter-increment: list-counter; + + &::before { + content: counter(list-counter); + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + background: $highlight-text-color; + color: $ui-base-color; + border-radius: 50%; + width: 4ch; + height: 4ch; font-weight: 500; - color: lighten($darker-text-color, 10%); - } - - .account { - border-bottom: 0; - padding: 0; - - &__display-name { - align-items: center; - display: flex; - margin-right: 5px; - } - - div.account__display-name { - &:hover { - .display-name strong { - text-decoration: none; - } - } - - .account__avatar { - cursor: default; - } - } - - &__avatar-wrapper { - margin-left: 0; - flex: 0 0 auto; - } - - .display-name { - font-size: 15px; - - &__account { - font-size: 14px; - } - } - } - - @media screen and (max-width: $small-breakpoint) { - .contact { - margin-top: 30px; - } - } - - @media screen and (max-width: $column-breakpoint) { - padding: 25px 20px; - } - } - - &__information, - &__forms, - #mastodon-timeline { - box-sizing: border-box; - background: $ui-base-color; - border-radius: 4px; - box-shadow: 0 0 6px rgba($black, 0.1); - } - - &__mascot { - height: 104px; - position: relative; - left: -40px; - bottom: 25px; - - img { - height: 190px; - width: auto; - } - } - - &__short-description { - .row { display: flex; - flex-wrap: wrap; + justify-content: center; align-items: center; - margin-bottom: 40px; - } - - @media screen and (max-width: $column-breakpoint) { - .row { - margin-bottom: 20px; - } - } - - p a { - color: $secondary-text-color; - } - - h1 { - font-weight: 500; - color: $primary-text-color; - margin-bottom: 0; - - small { - color: $darker-text-color; - - span { - color: $secondary-text-color; - } - } - } - - p:last-child { - margin-bottom: 0; - } - } - - &__hero { - margin-bottom: 10px; - - img { - display: block; - margin: 0; - max-width: 100%; - height: auto; - border-radius: 4px; - } - } - - @media screen and (max-width: 840px) { - .information-board { - .container-alt { - padding-right: 20px; - } - - .panel { - position: static; - margin-top: 20px; - width: 100%; - border-radius: 4px; - - .panel-header { - text-align: center; - } - } - } - } - - @media screen and (max-width: 675px) { - .header-wrapper { - padding-top: 0; - - &.compact { - padding-bottom: 0; - } - - &.compact .hero .heading { - text-align: initial; - } } - .header .container-alt, - .features .container-alt { - display: block; - } - } - - .cta { - margin: 20px; - } -} - -.landing { - margin-bottom: 100px; - - @media screen and (max-width: 738px) { - margin-bottom: 0; - } - - &__brand { - display: flex; - justify-content: center; - align-items: center; - padding: 50px; - - svg { - fill: $primary-text-color; - height: 52px; - } - - @media screen and (max-width: $no-gap-breakpoint) { - padding: 0; - margin-bottom: 30px; - } - } - - .directory { - margin-top: 30px; - background: transparent; - box-shadow: none; - border-radius: 0; - } - - .hero-widget { - margin-top: 30px; - margin-bottom: 0; - - h4 { - padding: 10px; - text-transform: uppercase; - font-weight: 700; - font-size: 13px; - color: $darker-text-color; - } - - &__text { - border-radius: 0; - padding-bottom: 0; - } - - &__footer { - background: $ui-base-color; - padding: 10px; - border-radius: 0 0 4px 4px; - display: flex; - - &__column { - flex: 1 1 50%; - overflow-x: hidden; - } - } - - .account { - padding: 10px 0; - border-bottom: 0; - - .account__display-name { - display: flex; - align-items: center; - } - } - - &__counters__wrapper { - display: flex; - } - - &__counter { - padding: 10px; - width: 50%; - - strong { - font-family: $font-display, sans-serif; - font-size: 15px; - font-weight: 700; - display: block; - } - - span { - font-size: 14px; - color: $darker-text-color; - } - } - } - - .simple_form .user_agreement .label_input > label { - font-weight: 400; - color: $darker-text-color; - } - - .simple_form p.lead { - color: $darker-text-color; - font-size: 15px; - line-height: 20px; - font-weight: 400; - margin-bottom: 25px; - } - - &__grid { - max-width: 960px; - margin: 0 auto; - display: grid; - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - grid-gap: 30px; - - @media screen and (max-width: 738px) { - grid-template-columns: minmax(0, 100%); - grid-gap: 10px; - - &__column-login { - grid-row: 1; - display: flex; - flex-direction: column; - - .box-widget { - order: 2; - flex: 0 0 auto; - } - - .hero-widget { - margin-top: 0; - margin-bottom: 10px; - order: 1; - flex: 0 0 auto; - } - } - - &__column-registration { - grid-row: 2; - } - - .directory { - margin-top: 10px; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - - .hero-widget { - display: block; - margin-bottom: 0; - box-shadow: none; - - &__img, - &__img img, - &__footer { - border-radius: 0; - } - } - - .hero-widget, - .box-widget, - .directory__tag { - border-bottom: 1px solid lighten($ui-base-color, 8%); - } - - .directory { - margin-top: 0; - - &__tag { - margin-bottom: 0; - - & > a, - & > div { - border-radius: 0; - box-shadow: none; - } - - &:last-child { - border-bottom: 0; - } - } - } - } - } -} - -.brand { - position: relative; - text-decoration: none; -} - -.brand__tagline { - display: block; - position: absolute; - bottom: -10px; - left: 50px; - width: 300px; - color: $ui-primary-color; - text-decoration: none; - font-size: 14px; - - @media screen and (max-width: $no-gap-breakpoint) { - position: static; - width: auto; - margin-top: 20px; - color: $dark-text-color; - } -} - -.rules-list { - background: darken($ui-base-color, 2%); - border: 1px solid darken($ui-base-color, 8%); - border-radius: 4px; - padding: 0.5em 2.5em !important; - margin-top: 1.85em !important; - - li { - border-bottom: 1px solid lighten($ui-base-color, 4%); - color: $dark-text-color; - padding: 1em; - &:last-child { border-bottom: 0; } } - - &__text { - color: $primary-text-color; - } } diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss index 215774a192f6d9..c007eb4b57ee74 100644 --- a/app/javascript/styles/mastodon/accounts.scss +++ b/app/javascript/styles/mastodon/accounts.scss @@ -202,7 +202,8 @@ } .account-role, -.simple_form .recommended { +.simple_form .recommended, +.simple_form .not_recommended { display: inline-block; padding: 4px 6px; cursor: default; @@ -210,9 +211,9 @@ font-size: 12px; line-height: 12px; font-weight: 500; - color: $ui-secondary-color; - background-color: rgba($ui-secondary-color, 0.1); - border: 1px solid rgba($ui-secondary-color, 0.5); + color: var(--user-role-accent, $ui-secondary-color); + background-color: var(--user-role-background, rgba($ui-secondary-color, 0.1)); + border: 1px solid var(--user-role-border, rgba($ui-secondary-color, 0.5)); &.moderator { color: $success-green; @@ -227,6 +228,12 @@ } } +.simple_form .not_recommended { + color: lighten($error-red, 12%); + background-color: rgba(lighten($error-red, 12%), 0.1); + border-color: rgba(lighten($error-red, 12%), 0.5); +} + .account__header__fields { max-width: 100vw; padding: 0; diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 68e6d2482f020c..7a50a89bb62a10 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -31,23 +31,17 @@ $content-width: 840px; &__toggle { display: none; - background: lighten($ui-base-color, 8%); - height: 48px; + background: darken($ui-base-color, 4%); + border-bottom: 1px solid lighten($ui-base-color, 4%); + align-items: center; &__logo { flex: 1 1 auto; a { - display: inline-block; + display: block; padding: 15px; } - - svg { - fill: $primary-text-color; - height: 20px; - position: relative; - bottom: -2px; - } } &__icon { @@ -55,15 +49,27 @@ $content-width: 840px; color: $darker-text-color; text-decoration: none; flex: 0 0 auto; - font-size: 20px; - padding: 15px; - } + font-size: 18px; + padding: 10px; + margin: 5px 10px; + border-radius: 4px; - a { - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 12%); + &:focus { + background: $ui-base-color; + } + + .fa-times { + display: none; + } + + &.active { + .fa-times { + display: block; + } + + .fa-bars { + display: none; + } } } } @@ -75,6 +81,13 @@ $content-width: 840px; height: 100px; } + .logo--wordmark { + display: inherit; + margin: inherit; + width: inherit; + height: 25px; + } + @media screen and (max-width: $no-columns-breakpoint) { & > a:first-child { display: none; @@ -133,12 +146,12 @@ $content-width: 840px; .simple-navigation-active-leaf a { color: $primary-text-color; - background-color: $ui-highlight-color; + background-color: darken($ui-highlight-color, 2%); border-bottom: 0; border-radius: 0; &:hover { - background-color: lighten($ui-highlight-color, 5%); + background-color: $ui-highlight-color; } } } @@ -181,24 +194,65 @@ $content-width: 840px; padding-top: 30px; } - &-heading { - display: flex; + &__heading { + margin-bottom: 45px; - padding-bottom: 36px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + &__row { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + margin: -15px -15px 0 0; + + & > * { + margin-top: 15px; + margin-right: 15px; + } + } - margin: -15px -15px 40px 0; + &__tabs { + margin-top: 30px; + width: 100%; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; + & > div { + display: flex; + flex-wrap: wrap; + gap: 5px; + } - & > * { - margin-top: 15px; - margin-right: 15px; + a { + font-size: 14px; + display: inline-flex; + align-items: center; + padding: 7px 10px; + border-radius: 4px; + color: $darker-text-color; + text-decoration: none; + font-weight: 500; + gap: 5px; + white-space: nowrap; + + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 4%); + } + + &.selected { + font-weight: 700; + color: $primary-text-color; + background: $ui-highlight-color; + + &:hover, + &:focus, + &:active { + background: lighten($ui-highlight-color, 4%); + } + } + } } - &-actions { + &__actions { display: inline-flex; & > :not(:first-child) { @@ -206,6 +260,14 @@ $content-width: 840px; } } + h2 small { + font-size: 12px; + display: block; + font-weight: 500; + color: $darker-text-color; + line-height: 18px; + } + @media screen and (max-width: $no-columns-breakpoint) { border-bottom: 0; padding-bottom: 0; @@ -216,11 +278,7 @@ $content-width: 840px; color: $secondary-text-color; font-size: 24px; line-height: 36px; - font-weight: 400; - - @media screen and (max-width: $no-columns-breakpoint) { - font-weight: 700; - } + font-weight: 700; } h3 { @@ -294,7 +352,7 @@ $content-width: 840px; width: 100%; height: 0; border: 0; - border-bottom: 1px solid rgba($ui-base-lighter-color, .6); + border-bottom: 1px solid rgba($ui-base-lighter-color, 0.6); margin: 20px 0; &.spacer { @@ -325,6 +383,14 @@ $content-width: 840px; &.visible { display: block; + position: fixed; + z-index: 10; + width: 100%; + height: calc(100vh - 56px); + left: 0; + bottom: 0; + overflow-y: auto; + background: $ui-base-color; } } @@ -425,6 +491,11 @@ body, } } + & > div { + display: flex; + gap: 5px; + } + strong { font-weight: 500; text-transform: uppercase; @@ -880,7 +951,7 @@ a.name-tag, border: 0; a { - color: lighten($ui-highlight-color, 8%); + color: $highlight-text-color; } dl:first-child .verified { @@ -903,7 +974,8 @@ a.name-tag, text-align: center; } -.applications-list__item { +.applications-list__item, +.filters-list__item { padding: 15px 0; background: $ui-base-color; border: 1px solid lighten($ui-base-color, 4%); @@ -911,7 +983,12 @@ a.name-tag, margin-top: 15px; } -.announcements-list { +.user-role { + color: var(--user-role-accent); +} + +.announcements-list, +.filters-list { border: 1px solid lighten($ui-base-color, 4%); border-radius: 4px; @@ -946,6 +1023,17 @@ a.name-tag, &__meta { padding: 0 15px; color: $dark-text-color; + + a { + color: inherit; + text-decoration: underline; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + } } &__action-bar { @@ -964,6 +1052,33 @@ a.name-tag, } } +.filters-list__item { + &__title { + display: flex; + justify-content: space-between; + margin-bottom: 0; + } + + &__permissions { + margin-top: 0; + margin-bottom: 10px; + } + + .expiration { + font-size: 13px; + } + + &.expired { + .expiration { + color: lighten($error-red, 12%); + } + + .permissions-list__item__icon { + color: $dark-text-color; + } + } +} + .dashboard__counters.admin-account-counters { margin-top: 10px; } @@ -1087,7 +1202,7 @@ a.name-tag, path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 1 !important; + fill-opacity: 100% !important; } path:last-child { @@ -1646,3 +1761,67 @@ a.sparkline { } } } + +.history { + counter-reset: step 0; + font-size: 15px; + line-height: 22px; + + li { + counter-increment: step 1; + padding-left: 2.5rem; + padding-bottom: 8px; + position: relative; + margin-bottom: 8px; + + &::before { + position: absolute; + content: counter(step); + font-size: 0.625rem; + font-weight: 500; + left: 0; + display: flex; + justify-content: center; + align-items: center; + width: calc(1.375rem + 1px); + height: calc(1.375rem + 1px); + background: $ui-base-color; + border: 1px solid $highlight-text-color; + color: $highlight-text-color; + border-radius: 8px; + } + + &::after { + position: absolute; + content: ""; + width: 1px; + background: $highlight-text-color; + bottom: 0; + top: calc(1.875rem + 1px); + left: 0.6875rem; + } + + &:last-child { + margin-bottom: 0; + + &::after { + display: none; + } + } + } + + &__entry { + h5 { + font-weight: 500; + color: $primary-text-color; + line-height: 25px; + margin-bottom: 16px; + } + + .status { + border: 1px solid lighten($ui-base-color, 4%); + background: $ui-base-color; + border-radius: 4px; + } + } +} diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss index 9e63b1d316fb11..413a1cdd6ada22 100644 --- a/app/javascript/styles/mastodon/basics.scss +++ b/app/javascript/styles/mastodon/basics.scss @@ -16,7 +16,7 @@ body { text-rendering: optimizelegibility; font-feature-settings: "kern"; text-size-adjust: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0%); -webkit-tap-highlight-color: transparent; &.system-font { @@ -31,7 +31,7 @@ body { // Droid Sans => Older Androids (<4.0) // Helvetica Neue => Older macOS <10.11 // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0) - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", $font-sans-serif, sans-serif; + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", $font-sans-serif, sans-serif; } &.app-body { @@ -202,7 +202,7 @@ button { } p { - margin-bottom: .85em; + margin-bottom: 0.85em; &:last-child { margin-bottom: 0; @@ -256,7 +256,17 @@ button { } .logo-resources { - display: none; + // Not using display: none because of https://bugs.chromium.org/p/chromium/issues/detail?id=258029 + visibility: hidden; + user-select: none; + pointer-events: none; + width: 0; + height: 0; + overflow: hidden; + position: absolute; + top: 0; + left: 0; + z-index: -1000; } // NoScript adds a __ns__pop2top class to the full ancestry of blocked elements, diff --git a/app/javascript/styles/mastodon/branding.scss b/app/javascript/styles/mastodon/branding.scss new file mode 100644 index 00000000000000..d1bddc68b0d7f9 --- /dev/null +++ b/app/javascript/styles/mastodon/branding.scss @@ -0,0 +1,3 @@ +.logo { + color: $primary-text-color; +} diff --git a/app/javascript/styles/mastodon/compact_header.scss b/app/javascript/styles/mastodon/compact_header.scss deleted file mode 100644 index 4980ab5f1ac7cd..00000000000000 --- a/app/javascript/styles/mastodon/compact_header.scss +++ /dev/null @@ -1,34 +0,0 @@ -.compact-header { - h1 { - font-size: 24px; - line-height: 28px; - color: $darker-text-color; - font-weight: 500; - margin-bottom: 20px; - padding: 0 10px; - word-wrap: break-word; - - @media screen and (max-width: 740px) { - text-align: center; - padding: 20px 10px 0; - } - - a { - color: inherit; - text-decoration: none; - } - - small { - font-weight: 400; - color: $secondary-text-color; - } - - img { - display: inline-block; - margin-bottom: -5px; - margin-right: 15px; - width: 36px; - height: 36px; - } - } -} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index b066d3abdec7de..119bbe8e6c32e3 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -24,11 +24,16 @@ display: block; font-size: 15px; line-height: 20px; - color: $ui-highlight-color; + color: $highlight-text-color; border: 0; background: transparent; padding: 0; cursor: pointer; + text-decoration: none; + + &--destructive { + color: $error-value-color; + } &:hover, &:active { @@ -42,7 +47,7 @@ } .button { - background-color: $ui-highlight-color; + background-color: darken($ui-highlight-color, 2%); border: 10px none; border-radius: 4px; box-sizing: border-box; @@ -60,20 +65,16 @@ text-align: center; text-decoration: none; text-overflow: ellipsis; - transition: all 100ms ease-in; white-space: nowrap; width: auto; &:active, &:focus, &:hover { - background-color: lighten($ui-highlight-color, 10%); - transition: all 200ms ease-out; + background-color: $ui-highlight-color; } &--destructive { - transition: none; - &:active, &:focus, &:hover { @@ -88,6 +89,15 @@ cursor: default; } + &.copyable { + transition: background 300ms linear; + } + + &.copied { + background: $valid-value-color; + transition: none; + } + &::-moz-focus-inner { border: 0; } @@ -130,6 +140,27 @@ &:hover { border-color: lighten($ui-primary-color, 4%); color: lighten($darker-text-color, 4%); + text-decoration: none; + } + + &:disabled { + opacity: 0.5; + } + } + + &.button-tertiary { + background: transparent; + padding: 6px 17px; + color: $highlight-text-color; + border: 1px solid $highlight-text-color; + + &:active, + &:focus, + &:hover { + background: $ui-highlight-color; + color: $primary-text-color; + border: 0; + padding: 7px 18px; } &:disabled { @@ -248,11 +279,12 @@ display: inline-flex; align-items: center; width: auto !important; + padding: 0 4px 0 2px; } &__counter { display: inline-block; - width: 14px; + width: auto; margin-left: 4px; font-size: 12px; font-weight: 500; @@ -336,12 +368,11 @@ } .compose-form { - padding: 10px; + padding: 15px; &__sensitive-button { padding: 10px; padding-top: 0; - font-size: 14px; font-weight: 500; @@ -349,7 +380,7 @@ color: $highlight-text-color; } - input[type=checkbox] { + input[type="checkbox"] { display: none; } @@ -684,7 +715,7 @@ .compose-form__publish-button-wrapper { overflow: hidden; - padding-top: 10px; + padding-top: 15px; } } } @@ -705,11 +736,38 @@ transition: height 0.4s ease, opacity 0.4s ease; } +.sign-in-banner { + padding: 10px; + + p { + color: $darker-text-color; + margin-bottom: 20px; + + a { + color: $secondary-text-color; + text-decoration: none; + unicode-bidi: isolate; + + &:hover { + text-decoration: underline; + + .fa { + color: lighten($dark-text-color, 7%); + } + } + } + } + + .button { + margin-bottom: 10px; + } +} + .emojione { font-size: inherit; vertical-align: middle; object-fit: contain; - margin: -.2ex .15em .2ex; + margin: -0.2ex 0.15em 0.2ex; width: 16px; height: 16px; @@ -765,7 +823,7 @@ .reply-indicator__content { position: relative; font-size: 15px; - line-height: 20px; + line-height: 22px; word-wrap: break-word; font-weight: 400; overflow: hidden; @@ -830,7 +888,7 @@ } a.unhandled-link { - color: lighten($ui-highlight-color, 8%); + color: $highlight-text-color; } .status__content__spoiler-link { @@ -900,24 +958,24 @@ } &.unhandled-link { - color: lighten($ui-highlight-color, 8%); + color: $highlight-text-color; } } } .status__content.status__content--collapsed { - max-height: 20px * 15; // 15 lines is roughly above 500 characters + max-height: 22px * 15; // 15 lines is roughly above 500 characters } .status__content__read-more-button { display: block; font-size: 15px; - line-height: 20px; - color: lighten($ui-highlight-color, 8%); + line-height: 22px; + color: $highlight-text-color; border: 0; background: transparent; padding: 0; - padding-top: 8px; + padding-top: 16px; text-decoration: none; &:hover, @@ -926,15 +984,13 @@ } } -.status__content__edited-label { - display: block; - cursor: default; +.translate-button { + margin-top: 16px; font-size: 15px; - line-height: 20px; - padding: 0; - padding-top: 8px; + line-height: 22px; + display: flex; + justify-content: space-between; color: $dark-text-color; - font-weight: 500; } .status__content__spoiler-link { @@ -964,11 +1020,21 @@ width: 100%; clear: both; border-bottom: 1px solid lighten($ui-base-color, 8%); -} -.status__prepend-icon-wrapper { - left: -26px; - position: absolute; + &__button { + display: inline; + color: lighten($ui-highlight-color, 8%); + border: 0; + background: transparent; + padding: 0; + font-size: inherit; + line-height: inherit; + + &:hover, + &:active { + text-decoration: underline; + } + } } .focusable { @@ -984,19 +1050,11 @@ } .status { - padding: 8px 10px; - padding-left: 68px; - position: relative; + padding: 16px; min-height: 54px; border-bottom: 1px solid lighten($ui-base-color, 8%); cursor: auto; - @supports (-ms-overflow-style: -ms-autohiding-scrollbar) { - // Add margin to avoid Edge auto-hiding scrollbar appearing over content. - // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px. - padding-right: 26px; // 10px + 16px - } - @keyframes fade { 0% { opacity: 0; } 100% { opacity: 1; } @@ -1005,9 +1063,11 @@ opacity: 1; animation: fade 150ms linear; + .media-gallery, .video-player, - .audio-player { - margin-top: 8px; + .audio-player, + .attachment-list { + margin-top: 16px; } &.light { @@ -1035,7 +1095,7 @@ color: $highlight-text-color; } - a.status__content__spoiler-link { + &__spoiler-link { color: $primary-text-color; background: $ui-primary-color; @@ -1048,7 +1108,16 @@ } } -.status__relative-time, +.status__relative-time { + display: block; + font-size: 15px; + line-height: 22px; + height: 40px; + order: 2; + flex: 0 0 auto; + color: $dark-text-color; +} + .notification__relative_time { color: $dark-text-color; float: right; @@ -1065,13 +1134,36 @@ } .status__info .status__display-name { - display: block; max-width: 100%; - padding-right: 25px; + display: flex; + font-size: 15px; + line-height: 22px; + align-items: center; + gap: 10px; + overflow: hidden; + + .display-name { + bdi { + overflow: hidden; + text-overflow: ellipsis; + } + + &__account { + white-space: nowrap; + display: block; + overflow: hidden; + text-overflow: ellipsis; + } + } } .status__info { font-size: 15px; + margin-bottom: 10px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; } .status-check-box__status { @@ -1110,12 +1202,14 @@ } .status__prepend { - margin-left: 68px; + padding: 16px; + padding-bottom: 0; + display: flex; + gap: 10px; + font-size: 15px; + line-height: 22px; + font-weight: 500; color: $dark-text-color; - padding: 8px 0; - padding-bottom: 2px; - font-size: 14px; - position: relative; .status__display-name strong { color: $dark-text-color; @@ -1129,22 +1223,11 @@ } .status__action-bar { - align-items: center; display: flex; - margin-top: 8px; -} - -.status__action-bar-button { - margin-right: 18px; - - &.icon-button--with-counter { - margin-right: 14px; - } -} - -.status__action-bar-dropdown { - height: 23.15px; - width: 23.15px; + justify-content: space-between; + align-items: center; + gap: 18px; + margin-top: 16px; } .detailed-status__action-bar-dropdown { @@ -1157,7 +1240,7 @@ .detailed-status { background: lighten($ui-base-color, 4%); - padding: 14px 10px; + padding: 16px; &--flex { display: flex; @@ -1187,14 +1270,15 @@ } } + .media-gallery, .video-player, .audio-player { - margin-top: 8px; + margin-top: 16px; } } .detailed-status__meta { - margin-top: 15px; + margin-top: 16px; color: $dark-text-color; font-size: 14px; line-height: 18px; @@ -1219,6 +1303,7 @@ display: inline-block; font-weight: 500; font-size: 12px; + line-height: 17px; margin-left: 6px; } @@ -1256,7 +1341,7 @@ } .account { - padding: 10px; + padding: 16px; border-bottom: 1px solid lighten($ui-base-color, 8%); &.compact { @@ -1270,7 +1355,9 @@ .account__display-name { flex: 1 1 auto; - display: block; + display: flex; + align-items: center; + gap: 10px; color: $darker-text-color; overflow: hidden; text-decoration: none; @@ -1303,22 +1390,22 @@ .account__wrapper { display: flex; -} - -.account__avatar-wrapper { - float: left; - margin-left: 12px; - margin-right: 12px; + gap: 10px; } .account__avatar { @include avatar-radius; + display: block; position: relative; + overflow: hidden; - width: 36px; - height: 36px; - background-size: 36px 36px; + img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; + } &-inline { display: inline-block; @@ -1327,7 +1414,6 @@ } &-composite { - @include avatar-radius; border-radius: 50%; overflow: hidden; position: relative; @@ -1338,6 +1424,11 @@ box-sizing: border-box; } + .account__avatar { + width: 100% !important; + height: 100% !important; + } + &__label { display: block; position: absolute; @@ -1357,33 +1448,13 @@ a .account__avatar { } .account__avatar-overlay { - @include avatar-size(48px); - - &-base { - @include avatar-radius; - @include avatar-size(36px); - - img { - @include avatar-radius; - width: 100%; - height: 100%; - } - } + position: relative; &-overlay { - @include avatar-radius; - @include avatar-size(24px); - position: absolute; bottom: 0; right: 0; z-index: 1; - - img { - @include avatar-radius; - width: 100%; - height: 100%; - } } } @@ -1554,10 +1625,13 @@ a.account__display-name { } .detailed-status__display-name { - color: $secondary-text-color; - display: block; - line-height: 24px; - margin-bottom: 15px; + color: $darker-text-color; + display: flex; + align-items: center; + gap: 10px; + font-size: 15px; + line-height: 22px; + margin-bottom: 16px; overflow: hidden; strong, @@ -1568,31 +1642,13 @@ a.account__display-name { } strong { - font-size: 16px; color: $primary-text-color; } } -.detailed-status__display-avatar { - float: left; - margin-right: 10px; -} - .status__avatar { - height: 48px; - left: 10px; - position: absolute; - top: 10px; - width: 48px; -} - -.status__expand { - width: 68px; - position: absolute; - left: 0; - top: 0; - height: 100%; - cursor: pointer; + width: 46px; + height: 46px; } .muted { @@ -1622,14 +1678,53 @@ a.account__display-name { } } +.notification__report { + padding: 16px; + border-bottom: 1px solid lighten($ui-base-color, 8%); + display: flex; + gap: 10px; + + &__avatar { + flex: 0 0 auto; + } + + &__details { + flex: 1 1 auto; + display: flex; + justify-content: space-between; + align-items: center; + color: $darker-text-color; + gap: 10px; + font-size: 15px; + line-height: 22px; + white-space: nowrap; + overflow: hidden; + + & > div { + overflow: hidden; + text-overflow: ellipsis; + } + + strong { + font-weight: 500; + } + } + + &__actions { + flex: 0 0 auto; + } +} + .notification__message { - margin: 0 10px 0 68px; - padding: 8px 0 0; + padding: 16px; + padding-bottom: 0; cursor: default; color: $darker-text-color; font-size: 15px; line-height: 22px; - position: relative; + font-weight: 500; + display: flex; + gap: 10px; .fa { color: $highlight-text-color; @@ -1643,9 +1738,6 @@ a.account__display-name { } .notification__favourite-icon-wrapper { - left: -26px; - position: absolute; - .star-icon { color: $gold-star; } @@ -1679,15 +1771,10 @@ a.account__display-name { text-decoration: none; &:hover { - color: $primary-text-color; text-decoration: underline; } } -.notification__relative_time { - float: right; -} - .display-name { display: block; max-width: 100%; @@ -1700,10 +1787,6 @@ a.account__display-name { font-weight: 500; } -.display-name__account { - font-size: 14px; -} - .status__relative-time, .detailed-status__datetime { &:hover { @@ -1741,11 +1824,15 @@ a.account__display-name { object-fit: contain; } - .loading-bar { + .loading-bar__container { position: relative; } - &.image-loader--amorphous .image-loader__preview-canvas { + .loading-bar { + position: absolute; + } + + &.image-loader--amorphous .image-loader__preview-canvas { display: none; } } @@ -1768,11 +1855,12 @@ a.account__display-name { } .navigation-bar { - padding: 10px; + padding: 15px; display: flex; align-items: center; flex-shrink: 0; cursor: default; + gap: 10px; color: $darker-text-color; strong { @@ -1781,9 +1869,6 @@ a.account__display-name { a { color: inherit; - } - - .permalink { text-decoration: none; } @@ -1807,9 +1892,7 @@ a.account__display-name { .navigation-bar__profile { flex: 1 1 auto; - margin-left: 8px; line-height: 20px; - margin-top: -1px; overflow: hidden; } @@ -2111,27 +2194,62 @@ a.account__display-name { &__main { box-sizing: border-box; width: 100%; - max-width: 600px; flex: 0 0 auto; display: flex; flex-direction: column; @media screen and (min-width: $no-gap-breakpoint) { padding: 0 10px; + max-width: 600px; } } } } +$ui-header-height: 55px; + +.ui__header { + display: none; + box-sizing: border-box; + height: $ui-header-height; + position: sticky; + top: 0; + z-index: 2; + justify-content: space-between; + align-items: center; + + &__logo { + display: inline-flex; + padding: 15px; + + .logo { + height: $ui-header-height - 30px; + width: auto; + } + } + + &__links { + display: flex; + align-items: center; + gap: 10px; + padding: 0 10px; + + .button { + flex: 0 0 auto; + } + } +} + .tabs-bar__wrapper { background: darken($ui-base-color, 8%); position: sticky; - top: 0; + top: $ui-header-height; z-index: 2; padding-top: 0; @media screen and (min-width: $no-gap-breakpoint) { padding-top: 10px; + top: 0; } .tabs-bar { @@ -2168,6 +2286,8 @@ a.account__display-name { > .scrollable { background: $ui-base-color; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } } @@ -2328,7 +2448,7 @@ a.account__display-name { .scrollable { overflow: visible; - @supports(display: grid) { + @supports (display: grid) { contain: content; } } @@ -2337,164 +2457,120 @@ a.account__display-name { padding: 10px 0; padding-top: 0; } +} - @media screen and (min-width: 630px) { - .detailed-status { - padding: 15px; +@media screen and (min-width: $no-gap-breakpoint) { + .tabs-bar { + width: 100%; + } - .media-gallery, - .video-player, - .audio-player { - margin-top: 15px; - } - } + .react-swipeable-view-container .columns-area--mobile { + height: calc(100% - 10px) !important; + } - .account__header__bar { - padding: 5px 10px; - } + .getting-started__wrapper, + .search { + margin-bottom: 10px; + } - .navigation-bar, - .compose-form { - padding: 15px; - } + .tabs-bar__link.optional { + display: none; + } - .compose-form .compose-form__publish .compose-form__publish-button-wrapper { - padding-top: 15px; - } + .search-page .search { + display: none; + } - .status { - padding: 15px 15px 15px (48px + 15px * 2); - min-height: 48px + 2px; + .navigation-panel__legal { + display: none; + } +} - &__avatar { - left: 15px; - top: 17px; - } +@media screen and (max-width: $no-gap-breakpoint - 1px) { + $sidebar-width: 285px; - &__content { - padding-top: 5px; - } + .columns-area__panels__main { + width: calc(100% - $sidebar-width); + } - &__prepend { - margin-left: 48px + 15px * 2; - padding-top: 15px; - } + .columns-area__panels { + min-height: calc(100vh - $ui-header-height); + } - &__prepend-icon-wrapper { - left: -32px; - } + .columns-area__panels__pane--navigational { + min-width: $sidebar-width; - .media-gallery, - &__action-bar, - .video-player, - .audio-player { - margin-top: 10px; - } + .columns-area__panels__pane__inner { + width: $sidebar-width; } - .account { - padding: 15px 10px; - - &__header__bio { - margin: 0 -10px; - } + .navigation-panel { + margin: 0; + background: $ui-base-color; + border-left: 1px solid lighten($ui-base-color, 8%); + height: 100vh; } - .notification { - &__message { - margin-left: 48px + 15px * 2; - padding-top: 15px; - } - - &__favourite-icon-wrapper { - left: -32px; - } - - .status { - padding-top: 8px; - } - - .account { - padding-top: 8px; - } + .navigation-panel__sign-in-banner, + .navigation-panel__logo, + .getting-started__trends { + display: none; + } - .account__avatar-wrapper { - margin-left: 17px; - margin-right: 15px; - } + .column-link__icon { + font-size: 18px; } } -} -.floating-action-button { - position: fixed; - display: flex; - justify-content: center; - align-items: center; - width: 3.9375rem; - height: 3.9375rem; - bottom: 1.3125rem; - right: 1.3125rem; - background: darken($ui-highlight-color, 3%); - color: $white; - border-radius: 50%; - font-size: 21px; - line-height: 21px; - text-decoration: none; - box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4); + .ui__header { + display: flex; + background: $ui-base-color; + border-bottom: 1px solid lighten($ui-base-color, 8%); + } - &:hover, - &:focus, - &:active { - background: lighten($ui-highlight-color, 7%); + .column-header, + .column-back-button, + .scrollable, + .error-column { + border-radius: 0 !important; } } -@media screen and (min-width: $no-gap-breakpoint) { - .tabs-bar { - width: 100%; - } +@media screen and (max-width: $no-gap-breakpoint - 285px - 1px) { + $sidebar-width: 55px; - .react-swipeable-view-container .columns-area--mobile { - height: calc(100% - 10px) !important; + .columns-area__panels__main { + width: calc(100% - $sidebar-width); } - .getting-started__wrapper, - .search { - margin-bottom: 10px; - } -} + .columns-area__panels__pane--navigational { + min-width: $sidebar-width; -@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) { - .columns-area__panels__pane--compositional { - display: none; - } + .columns-area__panels__pane__inner { + width: $sidebar-width; + } - .with-fab .scrollable .item-list:last-child { - padding-bottom: 5.25rem; - } -} + .column-link span { + display: none; + } -@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) { - .floating-action-button, - .tabs-bar__link.optional { - display: none; + .list-panel { + display: none; + } } +} - .search-page .search { - display: none; - } +.explore__search-header { + display: none; } -@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) { - .columns-area__panels__pane--navigational { +@media screen and (max-width: $no-gap-breakpoint - 1px) { + .columns-area__panels__pane--compositional { display: none; } -} -@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) { - .tabs-bar { - display: none; + .explore__search-header { + display: flex; } } @@ -2536,7 +2612,6 @@ a.account__display-name { padding: 40px; .logo { - fill: $primary-text-color; width: 50px; margin: 0 auto; margin-bottom: 40px; @@ -2564,7 +2639,7 @@ a.account__display-name { .column-actions { display: flex; - align-items: start; + align-items: flex-start; justify-content: center; padding: 40px; padding-top: 40px; @@ -2605,15 +2680,28 @@ a.account__display-name { height: calc(100% - 10px); overflow-y: hidden; - .navigation-bar { - padding-top: 20px; - padding-bottom: 20px; - flex: 0 1 48px; - min-height: 20px; + .hero-widget { + box-shadow: none; + + &__text, + &__img, + &__img img { + border-radius: 0; + } + + &__text { + padding: 15px; + color: $secondary-text-color; + + strong { + font-weight: 700; + color: $primary-text-color; + } + } } - .flex-spacer { - background: transparent; + .navigation-bar { + flex: 0 1 48px; } .compose-form { @@ -2654,6 +2742,14 @@ a.account__display-name { flex: 0 0 auto; } + .logo { + height: 30px; + width: auto; + } +} + +.navigation-panel, +.compose-panel { hr { flex: 0 0 auto; border: 0; @@ -2751,7 +2847,7 @@ a.account__display-name { overflow-y: auto; } - @supports(display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { // hack to fix Chrome <57 contain: strict; } @@ -2772,7 +2868,7 @@ a.account__display-name { } .scrollable.fullscreen { - @supports(display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { // hack to fix Chrome <57 contain: none; } } @@ -2781,6 +2877,7 @@ a.account__display-name { box-sizing: border-box; width: 100%; background: lighten($ui-base-color, 4%); + border-radius: 4px 4px 0 0; color: $highlight-text-color; cursor: pointer; flex: 0 0 auto; @@ -2880,11 +2977,11 @@ a.account__display-name { } .react-toggle--checked .react-toggle-track { - background-color: $ui-highlight-color; + background-color: darken($ui-highlight-color, 2%); } .react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track { - background-color: lighten($ui-highlight-color, 10%); + background-color: $ui-highlight-color; } .react-toggle-track-check { @@ -2950,6 +3047,8 @@ a.account__display-name { font-size: 16px; padding: 15px; text-decoration: none; + overflow: hidden; + white-space: nowrap; &:hover, &:focus, @@ -2973,7 +3072,18 @@ a.account__display-name { } &.active { - color: $ui-highlight-color; + color: $highlight-text-color; + } + } + + &--logo { + background: transparent; + padding: 10px; + + &:hover, + &:focus, + &:active { + background: transparent; } } } @@ -3022,43 +3132,6 @@ a.account__display-name { color: $dark-text-color; overflow: auto; - &__footer { - flex: 0 0 auto; - padding: 10px; - padding-top: 20px; - z-index: 1; - - ul { - margin-bottom: 10px; - } - - ul li { - display: inline; - } - - p { - color: $dark-text-color; - font-size: 13px; - margin-bottom: 20px; - - a { - color: $dark-text-color; - text-decoration: underline; - } - } - - a { - text-decoration: none; - color: $darker-text-color; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } - } - &__trends { flex: 0 1 auto; opacity: 1; @@ -3125,23 +3198,49 @@ a.account__display-name { .setting-text { display: block; box-sizing: border-box; - width: 100%; margin: 0; - color: $darker-text-color; - background: transparent; - padding: 7px 0; + color: $inverted-text-color; + background: $white; + padding: 7px 10px; font-family: inherit; font-size: 14px; - resize: vertical; - border: 0; - border-bottom: 2px solid $ui-primary-color; - outline: 0; + line-height: 22px; + border-radius: 4px; + border: 1px solid $white; - &:focus, - &:active { - color: $primary-text-color; - border-bottom-color: $ui-highlight-color; + &:focus { outline: 0; + border-color: lighten($ui-highlight-color, 12%); + } + + &__wrapper { + background: $white; + border: 1px solid $ui-secondary-color; + margin-bottom: 10px; + border-radius: 4px; + + .setting-text { + border: 0; + margin-bottom: 0; + border-radius: 0; + + &:focus { + border: 0; + } + } + + &__modifiers { + color: $inverted-text-color; + font-family: inherit; + font-size: 14px; + background: $white; + } + } + + &__toolbar { + display: flex; + justify-content: space-between; + margin-bottom: 20px; } @media screen and (max-width: 600px) { @@ -3406,14 +3505,14 @@ a.status-card.compact:hover { } a { - color: lighten($ui-highlight-color, 8%); + color: $highlight-text-color; text-decoration: none; &:hover, &:focus, &:active { text-decoration: underline; - color: lighten($ui-highlight-color, 12%); + color: lighten($highlight-text-color, 4%); } } } @@ -3496,6 +3595,7 @@ a.status-card.compact:hover { display: flex; font-size: 16px; background: lighten($ui-base-color, 4%); + border-radius: 4px 4px 0 0; flex: 0 0 auto; cursor: pointer; position: relative; @@ -3568,11 +3668,16 @@ a.status-card.compact:hover { background: lighten($ui-base-color, 8%); } } -} -.column-header__collapsible { - max-height: 70vh; - overflow: hidden; + &:disabled { + color: $dark-text-color; + cursor: default; + } +} + +.column-header__collapsible { + max-height: 70vh; + overflow: hidden; overflow-y: auto; color: $darker-text-color; transition: max-height 150ms ease-in-out, opacity 300ms linear; @@ -3980,6 +4085,7 @@ a.status-card.compact:hover { &__menu { @include search-popout; + padding: 0; background: $ui-secondary-color; } @@ -4047,7 +4153,6 @@ a.status-card.compact:hover { } .empty-column-indicator, -.error-column, .follow_requests-unlocked_explanation { color: $dark-text-color; background: $ui-base-color; @@ -4061,7 +4166,7 @@ a.status-card.compact:hover { align-items: center; justify-content: center; - @supports(display: grid) { // hack to fix Chrome <57 + @supports (display: grid) { // hack to fix Chrome <57 contain: strict; } @@ -4085,7 +4190,48 @@ a.status-card.compact:hover { } .error-column { + padding: 20px; + background: $ui-base-color; + border-radius: 4px; + display: flex; + flex: 1 1 auto; + align-items: center; + justify-content: center; flex-direction: column; + cursor: default; + + &__image { + width: 70%; + max-width: 350px; + margin-top: -50px; + } + + &__message { + text-align: center; + color: $darker-text-color; + font-size: 15px; + line-height: 22px; + + h1 { + font-size: 28px; + line-height: 33px; + font-weight: 700; + margin-bottom: 15px; + color: $primary-text-color; + } + + p { + max-width: 48ch; + } + + &__actions { + margin-top: 30px; + display: flex; + gap: 10px; + align-items: center; + justify-content: center; + } + } } @keyframes heartbeat { @@ -4544,10 +4690,6 @@ a.status-card.compact:hover { &:focus { background: lighten($ui-base-color, 4%); } - - @media screen and (max-width: 600px) { - font-size: 16px; - } } .search__icon { @@ -4687,6 +4829,7 @@ a.status-card.compact:hover { left: 0; width: 100%; height: 100%; + box-sizing: border-box; display: flex; flex-direction: column; align-items: center; @@ -4878,7 +5021,7 @@ a.status-card.compact:hover { padding: 0; border: 0; font-size: 0; - transition: opacity .2s ease-in-out; + transition: opacity 0.2s ease-in-out; &.active { opacity: 1; @@ -4933,7 +5076,6 @@ a.status-card.compact:hover { height: 100%; box-sizing: border-box; padding: 25px; - display: none; flex-direction: column; align-items: center; justify-content: center; @@ -5043,24 +5185,6 @@ a.status-card.compact:hover { width: 480px; position: relative; flex-direction: column; - - .status__display-name { - display: block; - max-width: 100%; - padding-right: 25px; - } - - .status__avatar { - height: 28px; - left: 10px; - position: absolute; - top: 10px; - width: 48px; - } - - .status__content__spoiler-link { - color: lighten($secondary-text-color, 8%); - } } .actions-modal { @@ -5092,9 +5216,9 @@ a.status-card.compact:hover { .block-modal__action-bar { display: flex; justify-content: space-between; + align-items: center; background: $ui-secondary-color; - padding: 10px; - line-height: 36px; + padding: 15px; & > div { flex: 1 1 auto; @@ -5108,15 +5232,6 @@ a.status-card.compact:hover { } } -.boost-modal__status-header { - font-size: 15px; -} - -.boost-modal__status-time { - float: right; - font-size: 14px; -} - .mute-modal, .block-modal { line-height: 24px; @@ -5178,6 +5293,16 @@ a.status-card.compact:hover { line-height: 22px; color: lighten($inverted-text-color, 16%); margin-bottom: 30px; + + a { + text-decoration: none; + color: $inverted-text-color; + font-weight: 500; + + &:hover { + text-decoration: underline; + } + } } &__actions { @@ -5274,7 +5399,6 @@ a.status-card.compact:hover { display: block; box-sizing: border-box; width: 100%; - margin: 0; color: $inverted-text-color; background: $simple-background-color; padding: 10px; @@ -5325,6 +5449,14 @@ a.status-card.compact:hover { background: transparent; margin: 15px 0; } + + .emoji-mart-search { + padding-right: 10px; + } + + .emoji-mart-search-icon { + right: 10px + 5px; + } } .report-modal__container { @@ -5395,60 +5527,6 @@ a.status-card.compact:hover { margin-bottom: 20px; } - .setting-text { - display: block; - box-sizing: border-box; - width: 100%; - margin: 0; - color: $inverted-text-color; - background: $white; - padding: 10px; - font-family: inherit; - font-size: 14px; - resize: none; - border: 0; - outline: 0; - border-radius: 4px; - border: 1px solid $ui-secondary-color; - min-height: 100px; - max-height: 50vh; - margin-bottom: 10px; - - &:focus { - border: 1px solid darken($ui-secondary-color, 8%); - } - - &__wrapper { - background: $white; - border: 1px solid $ui-secondary-color; - margin-bottom: 10px; - border-radius: 4px; - - .setting-text { - border: 0; - margin-bottom: 0; - border-radius: 0; - - &:focus { - border: 0; - } - } - - &__modifiers { - color: $inverted-text-color; - font-family: inherit; - font-size: 14px; - background: $white; - } - } - - &__toolbar { - display: flex; - justify-content: space-between; - margin-bottom: 20px; - } - } - .setting-text-label { display: block; color: $inverted-text-color; @@ -5457,6 +5535,14 @@ a.status-card.compact:hover { margin-bottom: 10px; } + .setting-text { + width: 100%; + resize: none; + min-height: 100px; + max-height: 50vh; + border: 0; + } + .setting-toggle { margin-top: 20px; margin-bottom: 24px; @@ -5712,7 +5798,7 @@ a.status-card.compact:hover { font-size: 14px; border: 1px solid lighten($ui-base-color, 8%); border-radius: 4px; - margin-top: 14px; + margin-top: 16px; overflow: hidden; &__icon { @@ -5758,7 +5844,6 @@ a.status-card.compact:hover { &.compact { border: 0; - margin-top: 4px; .attachment-list__list { padding: 0; @@ -5857,6 +5942,7 @@ a.status-card.compact:hover { overflow: hidden; position: absolute; } + /* End Media Gallery */ .detailed, @@ -5869,7 +5955,6 @@ a.status-card.compact:hover { .video-player__volume__handle { bottom: 23px; } - } .audio-player { @@ -5886,6 +5971,13 @@ a.status-card.compact:hover { height: 100%; } + &.inactive { + audio, + .video-player__controls { + visibility: hidden; + } + } + .video-player__volume::before, .video-player__seek::before { background: currentColor; @@ -5991,7 +6083,7 @@ a.status-card.compact:hover { background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent); padding: 0 15px; opacity: 0; - transition: opacity .1s ease; + transition: opacity 0.1s ease; &.active { opacity: 1; @@ -6066,7 +6158,6 @@ a.status-card.compact:hover { .player-button { display: inline-block; outline: 0; - flex: 0 0 auto; background: transparent; padding: 5px; @@ -6237,7 +6328,7 @@ a.status-card.compact:hover { box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2); .no-reduce-motion & { - transition: opacity .1s ease; + transition: opacity 0.1s ease; } &.active { @@ -6405,14 +6496,13 @@ a.status-card.compact:hover { display: inline-block; padding: 6px 0; line-height: 18px; - cursor: default; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; - input[type=radio], - input[type=checkbox] { + input[type="radio"], + input[type="checkbox"] { display: none; } @@ -6430,8 +6520,8 @@ a.status-card.compact:hover { vertical-align: middle; &.checked { - border-color: lighten($ui-highlight-color, 8%); - background: lighten($ui-highlight-color, 8%); + border-color: lighten($ui-highlight-color, 4%); + background: lighten($ui-highlight-color, 4%); } } } @@ -6505,14 +6595,16 @@ noscript { .navigation-bar__actions { & > .icon-button.close { will-change: opacity transform; - transition: opacity $duration * 0.5 $delay, - transform $duration $delay; + transition: + opacity $duration * 0.5 $delay, + transform $duration $delay; } & > .compose__action-bar .icon-button { will-change: opacity transform; - transition: opacity $duration * 0.5 $delay + $duration * 0.5, - transform $duration $delay; + transition: + opacity $duration * 0.5 $delay + $duration * 0.5, + transform $duration $delay; } } } @@ -6620,36 +6712,29 @@ noscript { } } -.account__moved-note { - padding: 14px 10px; - padding-bottom: 16px; +.moved-account-banner { + padding: 20px; background: lighten($ui-base-color, 4%); - border-top: 1px solid lighten($ui-base-color, 8%); - border-bottom: 1px solid lighten($ui-base-color, 8%); + display: flex; + align-items: center; + flex-direction: column; &__message { - position: relative; - margin-left: 58px; - color: $dark-text-color; + color: $darker-text-color; padding: 8px 0; padding-top: 0; padding-bottom: 4px; font-size: 14px; - - > span { - display: block; - overflow: hidden; - text-overflow: ellipsis; - } - } - - &__icon-wrapper { - left: -26px; - position: absolute; + font-weight: 500; + text-align: center; + margin-bottom: 16px; } - .detailed-status__display-avatar { - position: relative; + &__action { + display: flex; + justify-content: space-between; + align-items: center; + gap: 15px; } .detailed-status__display-name { @@ -6659,9 +6744,9 @@ noscript { .column-inline-form { padding: 15px; - padding-right: 0; display: flex; justify-content: flex-start; + gap: 15px; align-items: center; background: lighten($ui-base-color, 4%); @@ -6670,17 +6755,8 @@ noscript { input { width: 100%; - - &:focus { - outline: 0; - } } } - - .icon-button { - flex: 0 0 auto; - margin: 0 10px; - } } .drawer__backdrop { @@ -6894,6 +6970,7 @@ noscript { .account__header { overflow: hidden; + background: lighten($ui-base-color, 4%); &.inactive { opacity: 0.5; @@ -6927,8 +7004,7 @@ noscript { &__bar { position: relative; - background: lighten($ui-base-color, 4%); - padding: 5px; + padding: 0 20px; border-bottom: 1px solid lighten($ui-base-color, 12%); .avatar { @@ -6947,33 +7023,39 @@ noscript { &__tabs { display: flex; align-items: flex-start; - padding: 7px 10px; + justify-content: space-between; margin-top: -55px; + padding-top: 10px; + gap: 8px; + overflow: hidden; &__buttons { display: flex; align-items: center; + gap: 8px; padding-top: 55px; overflow: hidden; + .button { + flex-shrink: 1; + white-space: nowrap; + + @media screen and (max-width: $no-gap-breakpoint) { + min-width: 0; + } + } + .icon-button { border: 1px solid lighten($ui-base-color, 12%); border-radius: 4px; box-sizing: content-box; padding: 2px; } - - & > .icon-button { - margin-right: 8px; - } - - .button { - margin: 0 8px; - } } &__name { - padding: 5px 10px; + margin-top: 16px; + margin-bottom: 16px; .account-role { vertical-align: top; @@ -6985,17 +7067,17 @@ noscript { } h1 { - font-size: 16px; - line-height: 24px; + font-size: 17px; + line-height: 22px; color: $primary-text-color; - font-weight: 500; + font-weight: 700; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; small { display: block; - font-size: 14px; + font-size: 15px; color: $darker-text-color; font-weight: 400; overflow: hidden; @@ -7010,56 +7092,80 @@ noscript { } &__bio { - overflow: hidden; - margin: 0 -5px; - .account__header__content { - padding: 20px 15px; - padding-bottom: 5px; color: $primary-text-color; + } + + .account__header__fields { + margin: 0; + margin-top: 16px; + border-radius: 4px; + background: darken($ui-base-color, 4%); + border: 0; - .columns-area--mobile & { - padding-left: 20px; - padding-right: 20px; + dl { + display: block; + padding: 11px 16px; + border-bottom-color: lighten($ui-base-color, 4%); } - } - .account__header__joined { - font-size: 14px; - padding: 5px 15px; - color: $darker-text-color; + dd, + dt { + font-size: 13px; + line-height: 18px; + padding: 0; + text-align: initial; + } - .columns-area--mobile & { - padding-left: 20px; - padding-right: 20px; + dt { + width: auto; + background: transparent; + text-transform: uppercase; + color: $dark-text-color; } - } - .account__header__fields { - margin: 0; - border-top: 1px solid lighten($ui-base-color, 12%); + dd { + color: $darker-text-color; + } a { color: lighten($ui-highlight-color, 8%); } - dl:first-child .verified { - border-radius: 0 4px 0 0; - } + .verified { + border: 1px solid rgba($valid-value-color, 0.5); + + &:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } + + &:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + } + + dt, + dd { + color: $valid-value-color; + } - .verified a { - color: $valid-value-color; + a { + color: $valid-value-color; + } } } } &__extra { - margin-top: 4px; + margin-top: 16px; &__links { font-size: 14px; color: $darker-text-color; - padding: 10px 0; + margin: 0 -10px; + padding-top: 16px; + padding-bottom: 10px; a { display: inline-block; @@ -7077,17 +7183,10 @@ noscript { } &__account-note { - padding: 15px; - padding-bottom: 10px; color: $primary-text-color; font-size: 14px; font-weight: 400; - border-bottom: 1px solid lighten($ui-base-color, 12%); - - .columns-area--mobile & { - padding-left: 20px; - padding-right: 20px; - } + margin-bottom: 10px; label { display: block; @@ -7146,6 +7245,7 @@ noscript { align-items: center; padding: 15px; border-bottom: 1px solid lighten($ui-base-color, 8%); + gap: 15px; &:last-child { border-bottom: 0; @@ -7187,9 +7287,8 @@ noscript { font-size: 24px; font-weight: 500; text-align: right; - padding-right: 15px; - margin-left: 5px; color: $secondary-text-color; + text-decoration: none; } &__sparkline { @@ -7198,7 +7297,7 @@ noscript { path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 1 !important; + fill-opacity: 100% !important; } path:last-child { @@ -7286,7 +7385,7 @@ noscript { border-radius: 50%; width: 0.625rem; height: 0.625rem; - margin: -.1ex .15em .1ex; + margin: -0.1ex 0.15em 0.1ex; } &__content { @@ -7549,7 +7648,6 @@ noscript { position: absolute; top: 0; left: 0; - pointer-events: 0; width: 100%; height: 100%; border-left: 2px solid $highlight-text-color; @@ -7671,10 +7769,9 @@ noscript { } .explore__search-header { - background: $ui-base-color; - display: flex; - align-items: flex-start; + background: darken($ui-base-color, 4%); justify-content: center; + align-items: center; padding: 15px; .search { @@ -7683,14 +7780,8 @@ noscript { } .search__input { - border-radius: 4px; - color: $inverted-text-color; - background: $simple-background-color; + border: 1px solid lighten($ui-base-color, 8%); padding: 10px; - - &::placeholder { - color: $dark-text-color; - } } .search .fa { @@ -7788,3 +7879,732 @@ noscript { } } } + +.server-banner { + padding: 20px 0; + + &__introduction { + color: $darker-text-color; + margin-bottom: 20px; + + strong { + font-weight: 600; + } + + a { + color: inherit; + text-decoration: underline; + + &:hover, + &:active, + &:focus { + text-decoration: none; + } + } + } + + &__hero { + display: block; + border-radius: 4px; + width: 100%; + height: auto; + margin-bottom: 20px; + aspect-ratio: 1.9; + border: 0; + background: $ui-base-color; + object-fit: cover; + } + + &__description { + margin-bottom: 20px; + } + + &__meta { + display: flex; + gap: 10px; + max-width: 100%; + + &__column { + flex: 0 0 auto; + width: calc(50% - 5px); + overflow: hidden; + } + } + + &__number { + font-weight: 600; + color: $primary-text-color; + font-size: 14px; + } + + &__number-label { + color: $darker-text-color; + font-weight: 500; + font-size: 14px; + } + + h4 { + text-transform: uppercase; + color: $darker-text-color; + margin-bottom: 10px; + font-weight: 600; + } + + .account { + padding: 0; + border: 0; + } + + .account__avatar-wrapper { + margin-left: 0; + } + + .spacer { + margin: 10px 0; + } +} + +.interaction-modal { + max-width: 90vw; + width: 600px; + background: $ui-base-color; + border-radius: 8px; + overflow: hidden; + position: relative; + display: block; + padding: 20px; + + h3 { + font-size: 22px; + line-height: 33px; + font-weight: 700; + text-align: center; + } + + &__icon { + color: $highlight-text-color; + margin: 0 5px; + } + + &__lead { + padding: 20px; + text-align: center; + + h3 { + margin-bottom: 15px; + } + + p { + font-size: 17px; + line-height: 22px; + color: $darker-text-color; + } + } + + &__choices { + display: flex; + + &__choice { + flex: 0 0 auto; + width: 50%; + box-sizing: border-box; + padding: 20px; + + h3 { + margin-bottom: 20px; + } + + p { + color: $darker-text-color; + margin-bottom: 20px; + } + + .button { + margin-bottom: 10px; + + &:last-child { + margin-bottom: 0; + } + } + } + } + + @media screen and (max-width: $no-gap-breakpoint - 1px) { + &__choices { + display: block; + + &__choice { + width: auto; + margin-bottom: 20px; + } + } + } +} + +.copypaste { + display: flex; + align-items: center; + gap: 10px; + + input { + display: block; + font-family: inherit; + background: darken($ui-base-color, 8%); + border: 1px solid $highlight-text-color; + color: $darker-text-color; + border-radius: 4px; + padding: 6px 9px; + line-height: 22px; + font-size: 14px; + transition: border-color 300ms linear; + flex: 1 1 auto; + overflow: hidden; + + &:focus { + outline: 0; + background: darken($ui-base-color, 4%); + } + } + + .button { + flex: 0 0 auto; + transition: background 300ms linear; + } + + &.copied { + input { + border: 1px solid $valid-value-color; + transition: none; + } + + .button { + background: $valid-value-color; + transition: none; + } + } +} + +.privacy-policy { + background: $ui-base-color; + padding: 20px; + + @media screen and (min-width: $no-gap-breakpoint) { + border-radius: 4px; + } + + &__body { + margin-top: 20px; + } +} + +.prose { + color: $secondary-text-color; + font-size: 15px; + line-height: 22px; + + p, + ul, + ol { + margin-top: 1.25em; + margin-bottom: 1.25em; + } + + img { + margin-top: 2em; + margin-bottom: 2em; + } + + video { + margin-top: 2em; + margin-bottom: 2em; + } + + figure { + margin-top: 2em; + margin-bottom: 2em; + + figcaption { + font-size: 0.875em; + line-height: 1.4285714; + margin-top: 0.8571429em; + } + } + + figure > * { + margin-top: 0; + margin-bottom: 0; + } + + h1 { + font-size: 1.5em; + margin-top: 0; + margin-bottom: 1em; + line-height: 1.33; + } + + h2 { + font-size: 1.25em; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.6; + } + + h3, + h4, + h5, + h6 { + margin-top: 1.5em; + margin-bottom: 0.5em; + line-height: 1.5; + } + + ol { + counter-reset: list-counter; + } + + li { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + + ol > li { + counter-increment: list-counter; + + &::before { + content: counter(list-counter) "."; + position: absolute; + left: 0; + } + } + + ul > li::before { + content: ""; + position: absolute; + background-color: $darker-text-color; + border-radius: 50%; + width: 0.375em; + height: 0.375em; + top: 0.5em; + left: 0.25em; + } + + ul > li, + ol > li { + position: relative; + padding-left: 1.75em; + } + + & > ul > li p { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + + & > ul > li > *:first-child { + margin-top: 1.25em; + } + + & > ul > li > *:last-child { + margin-bottom: 1.25em; + } + + & > ol > li > *:first-child { + margin-top: 1.25em; + } + + & > ol > li > *:last-child { + margin-bottom: 1.25em; + } + + ul ul, + ul ol, + ol ul, + ol ol { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + + h1, + h2, + h3, + h4, + h5, + h6, + strong, + b { + color: $primary-text-color; + font-weight: 700; + } + + em, + i { + font-style: italic; + } + + a { + color: $highlight-text-color; + text-decoration: underline; + + &:focus, + &:hover, + &:active { + text-decoration: none; + } + } + + code { + font-size: 0.875em; + background: darken($ui-base-color, 8%); + border-radius: 4px; + padding: 0.2em 0.3em; + } + + hr { + border: 0; + border-top: 1px solid lighten($ui-base-color, 4%); + margin-top: 3em; + margin-bottom: 3em; + } + + hr + * { + margin-top: 0; + } + + h2 + * { + margin-top: 0; + } + + h3 + * { + margin-top: 0; + } + + h4 + *, + h5 + *, + h6 + * { + margin-top: 0; + } + + & > :first-child { + margin-top: 0; + } + + & > :last-child { + margin-bottom: 0; + } +} + +.dismissable-banner { + background: $ui-base-color; + border-bottom: 1px solid lighten($ui-base-color, 8%); + display: flex; + align-items: center; + gap: 30px; + + &__message { + flex: 1 1 auto; + padding: 20px 15px; + cursor: default; + font-size: 14px; + line-height: 18px; + color: $primary-text-color; + } + + &__action { + padding: 15px; + flex: 0 0 auto; + display: flex; + align-items: center; + justify-content: center; + } +} + +.image { + position: relative; + overflow: hidden; + + &__preview { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + } + + &.loaded &__preview { + display: none; + } + + img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; + border: 0; + background: transparent; + opacity: 0; + } + + &.loaded img { + opacity: 1; + } +} + +.link-footer { + flex: 0 0 auto; + padding: 10px; + padding-top: 20px; + z-index: 1; + font-size: 13px; + + p { + color: $dark-text-color; + margin-bottom: 20px; + + strong { + font-weight: 500; + } + + a { + color: $dark-text-color; + text-decoration: underline; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + } + } +} + +.about { + padding: 20px; + + @media screen and (min-width: $no-gap-breakpoint) { + border-radius: 4px; + } + + &__footer { + color: $dark-text-color; + text-align: center; + font-size: 15px; + line-height: 22px; + margin-top: 20px; + } + + &__header { + margin-bottom: 30px; + + &__hero { + width: 100%; + height: auto; + aspect-ratio: 1.9; + background: lighten($ui-base-color, 4%); + border-radius: 8px; + margin-bottom: 30px; + } + + h1, + p { + text-align: center; + } + + h1 { + font-size: 24px; + line-height: 1.5; + font-weight: 700; + margin-bottom: 10px; + } + + p { + font-size: 16px; + line-height: 24px; + font-weight: 400; + color: $darker-text-color; + } + } + + &__meta { + background: lighten($ui-base-color, 4%); + border-radius: 4px; + display: flex; + margin-bottom: 30px; + font-size: 15px; + + &__column { + box-sizing: border-box; + width: 50%; + padding: 20px; + } + + &__divider { + width: 0; + border: 0; + border-style: solid; + border-color: lighten($ui-base-color, 8%); + border-left-width: 1px; + min-height: calc(100% - 60px); + flex: 0 0 auto; + } + + h4 { + font-size: 15px; + text-transform: uppercase; + color: $darker-text-color; + font-weight: 500; + margin-bottom: 20px; + } + + @media screen and (max-width: 600px) { + display: block; + + h4 { + text-align: center; + } + + &__column { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + &__divider { + min-height: 0; + width: 100%; + border-left-width: 0; + border-top-width: 1px; + } + } + + .layout-multiple-columns & { + display: block; + + h4 { + text-align: center; + } + + &__column { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + &__divider { + min-height: 0; + width: 100%; + border-left-width: 0; + border-top-width: 1px; + } + } + } + + &__mail { + color: $primary-text-color; + text-decoration: none; + font-weight: 500; + + &:hover, + &:focus, + &:active { + text-decoration: underline; + } + } + + .link-footer { + padding: 0; + margin-top: 60px; + text-align: center; + font-size: 15px; + line-height: 22px; + + @media screen and (min-width: $no-gap-breakpoint) { + display: none; + } + } + + .account { + padding: 0; + border: 0; + } + + .account__avatar-wrapper { + margin-left: 0; + } + + .account__relationship { + display: none; + } + + &__section { + margin-bottom: 10px; + + &__title { + font-size: 17px; + font-weight: 600; + line-height: 22px; + padding: 20px; + border-radius: 4px; + background: lighten($ui-base-color, 4%); + color: $highlight-text-color; + cursor: pointer; + } + + &.active &__title { + border-radius: 4px 4px 0 0; + } + + &__body { + border: 1px solid lighten($ui-base-color, 4%); + border-top: 0; + padding: 20px; + font-size: 15px; + line-height: 22px; + } + } + + &__domain-blocks { + margin-top: 30px; + background: darken($ui-base-color, 4%); + border: 1px solid lighten($ui-base-color, 4%); + border-radius: 4px; + + &__domain { + border-bottom: 1px solid lighten($ui-base-color, 4%); + padding: 10px; + font-size: 15px; + color: $darker-text-color; + + &:nth-child(2n) { + background: darken($ui-base-color, 2%); + } + + &:last-child { + border-bottom: 0; + } + + &__header { + display: flex; + gap: 10px; + justify-content: space-between; + font-weight: 500; + margin-bottom: 4px; + } + + h6 { + color: $secondary-text-color; + font-size: inherit; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + p { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + } +} diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss index 81459f5ba551cb..b49b93984c2c7a 100644 --- a/app/javascript/styles/mastodon/containers.scss +++ b/app/javascript/styles/mastodon/containers.scss @@ -9,19 +9,14 @@ } .logo-container { - margin: 100px auto 50px; - - @media screen and (max-width: 500px) { - margin: 40px auto 0; - } + margin: 50px auto; h1 { display: flex; justify-content: center; align-items: center; - svg { - fill: $primary-text-color; + .logo { height: 42px; margin-right: 10px; } @@ -35,7 +30,6 @@ outline: 0; padding: 12px 16px; line-height: 32px; - font-family: $font-display, sans-serif; font-weight: 500; font-size: 14px; } @@ -110,785 +104,3 @@ margin-left: 10px; } } - -.grid-3 { - display: grid; - grid-gap: 10px; - grid-template-columns: 3fr 1fr; - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-column: 1 / 3; - grid-row: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 2; - } - - .column-2 { - grid-column: 2; - grid-row: 2; - } - - .column-3 { - grid-column: 1 / 3; - grid-row: 3; - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - grid-template-columns: minmax(0, 100%); - - .column-0 { - grid-column: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 3; - } - - .column-2 { - grid-column: 1; - grid-row: 2; - } - - .column-3 { - grid-column: 1; - grid-row: 4; - } - } -} - -.grid-4 { - display: grid; - grid-gap: 10px; - grid-template-columns: repeat(4, minmax(0, 1fr)); - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-column: 1 / 5; - grid-row: 1; - } - - .column-1 { - grid-column: 1 / 4; - grid-row: 2; - } - - .column-2 { - grid-column: 4; - grid-row: 2; - } - - .column-3 { - grid-column: 2 / 5; - grid-row: 3; - } - - .column-4 { - grid-column: 1; - grid-row: 3; - } - - .landing-page__call-to-action { - min-height: 100%; - } - - .flash-message { - margin-bottom: 10px; - } - - @media screen and (max-width: 738px) { - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - - .landing-page__call-to-action { - padding: 20px; - display: flex; - align-items: center; - justify-content: center; - } - - .row__information-board { - width: 100%; - justify-content: center; - align-items: center; - } - - .row__mascot { - display: none; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - grid-template-columns: minmax(0, 100%); - - .column-0 { - grid-column: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 3; - } - - .column-2 { - grid-column: 1; - grid-row: 2; - } - - .column-3 { - grid-column: 1; - grid-row: 5; - } - - .column-4 { - grid-column: 1; - grid-row: 4; - } - } -} - -.public-layout { - @media screen and (max-width: $no-gap-breakpoint) { - padding-top: 48px; - } - - .container { - max-width: 960px; - - @media screen and (max-width: $no-gap-breakpoint) { - padding: 0; - } - } - - .header { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - height: 48px; - margin: 10px 0; - display: flex; - align-items: stretch; - justify-content: center; - flex-wrap: nowrap; - overflow: hidden; - - @media screen and (max-width: $no-gap-breakpoint) { - position: fixed; - width: 100%; - top: 0; - left: 0; - margin: 0; - border-radius: 0; - box-shadow: none; - z-index: 110; - } - - & > div { - flex: 1 1 33.3%; - min-height: 1px; - } - - .nav-left { - display: flex; - align-items: stretch; - justify-content: flex-start; - flex-wrap: nowrap; - } - - .nav-center { - display: flex; - align-items: stretch; - justify-content: center; - flex-wrap: nowrap; - } - - .nav-right { - display: flex; - align-items: stretch; - justify-content: flex-end; - flex-wrap: nowrap; - } - - .brand { - display: block; - padding: 15px; - - svg { - display: block; - height: 18px; - width: auto; - position: relative; - bottom: -2px; - fill: $primary-text-color; - - @media screen and (max-width: $no-gap-breakpoint) { - height: 20px; - } - } - - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 12%); - } - } - - .nav-link { - display: flex; - align-items: center; - padding: 0 1rem; - font-size: 12px; - font-weight: 500; - text-decoration: none; - color: $darker-text-color; - white-space: nowrap; - text-align: center; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - color: $primary-text-color; - } - - @media screen and (max-width: 550px) { - &.optional { - display: none; - } - } - } - - .nav-button { - background: lighten($ui-base-color, 16%); - margin: 8px; - margin-left: 0; - border-radius: 4px; - - &:hover, - &:focus, - &:active { - text-decoration: none; - background: lighten($ui-base-color, 20%); - } - } - } - - $no-columns-breakpoint: 600px; - - .grid { - display: grid; - grid-gap: 10px; - grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr); - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-row: 1; - grid-column: 1; - } - - .column-1 { - grid-row: 1; - grid-column: 2; - } - - @media screen and (max-width: $no-columns-breakpoint) { - grid-template-columns: 100%; - grid-gap: 0; - - .column-1 { - display: none; - } - } - } - - .page-header { - @media screen and (max-width: $no-gap-breakpoint) { - border-bottom: 0; - } - } - - .public-account-header { - overflow: hidden; - margin-bottom: 10px; - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - - &.inactive { - opacity: 0.5; - - .public-account-header__image, - .avatar { - filter: grayscale(100%); - } - - .logo-button { - background-color: $secondary-text-color; - } - } - - .logo-button { - padding: 3px 15px; - } - - &__image { - border-radius: 4px 4px 0 0; - overflow: hidden; - height: 300px; - position: relative; - background: darken($ui-base-color, 12%); - - &::after { - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15); - top: 0; - left: 0; - } - - img { - object-fit: cover; - display: block; - width: 100%; - height: 100%; - margin: 0; - border-radius: 4px 4px 0 0; - } - - @media screen and (max-width: 600px) { - height: 200px; - } - } - - &--no-bar { - margin-bottom: 0; - - .public-account-header__image, - .public-account-header__image img { - border-radius: 4px; - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin-bottom: 0; - box-shadow: none; - - &__image::after { - display: none; - } - - &__image, - &__image img { - border-radius: 0; - } - } - - &__bar { - position: relative; - margin-top: -80px; - display: flex; - justify-content: flex-start; - - &::before { - content: ""; - display: block; - background: lighten($ui-base-color, 4%); - position: absolute; - bottom: 0; - left: 0; - right: 0; - height: 60px; - border-radius: 0 0 4px 4px; - z-index: -1; - } - - .avatar { - display: block; - width: 120px; - height: 120px; - padding-left: 20px - 4px; - flex: 0 0 auto; - - img { - display: block; - width: 100%; - height: 100%; - margin: 0; - border-radius: 50%; - border: 4px solid lighten($ui-base-color, 4%); - background: darken($ui-base-color, 8%); - } - } - - @media screen and (max-width: 600px) { - margin-top: 0; - background: lighten($ui-base-color, 4%); - border-radius: 0 0 4px 4px; - padding: 5px; - - &::before { - display: none; - } - - .avatar { - width: 48px; - height: 48px; - padding: 7px 0; - padding-left: 10px; - - img { - border: 0; - border-radius: 4px; - } - - @media screen and (max-width: 360px) { - display: none; - } - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - - @media screen and (max-width: $no-columns-breakpoint) { - flex-wrap: wrap; - } - } - - &__tabs { - flex: 1 1 auto; - margin-left: 20px; - - &__name { - padding-top: 20px; - padding-bottom: 8px; - - h1 { - font-size: 20px; - line-height: 18px * 1.5; - color: $primary-text-color; - font-weight: 500; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - text-shadow: 1px 1px 1px $base-shadow-color; - - small { - display: block; - font-size: 14px; - color: $primary-text-color; - font-weight: 400; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - - @media screen and (max-width: 600px) { - margin-left: 15px; - display: flex; - justify-content: space-between; - align-items: center; - - &__name { - padding-top: 0; - padding-bottom: 0; - - h1 { - font-size: 16px; - line-height: 24px; - text-shadow: none; - - small { - color: $darker-text-color; - } - } - } - } - - &__tabs { - display: flex; - justify-content: flex-start; - align-items: stretch; - height: 58px; - - .details-counters { - display: flex; - flex-direction: row; - min-width: 300px; - } - - @media screen and (max-width: $no-columns-breakpoint) { - .details-counters { - display: none; - } - } - - .counter { - min-width: 33.3%; - box-sizing: border-box; - flex: 0 0 auto; - color: $darker-text-color; - padding: 10px; - border-right: 1px solid lighten($ui-base-color, 4%); - cursor: default; - text-align: center; - position: relative; - - a { - display: block; - } - - &:last-child { - border-right: 0; - } - - &::after { - display: block; - content: ""; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - border-bottom: 4px solid $ui-primary-color; - opacity: 0.5; - transition: all 400ms ease; - } - - &.active { - &::after { - border-bottom: 4px solid $highlight-text-color; - opacity: 1; - } - - &.inactive::after { - border-bottom-color: $secondary-text-color; - } - } - - &:hover { - &::after { - opacity: 1; - transition-duration: 100ms; - } - } - - a { - text-decoration: none; - color: inherit; - } - - .counter-label { - font-size: 12px; - display: block; - } - - .counter-number { - font-weight: 500; - font-size: 18px; - margin-bottom: 5px; - color: $primary-text-color; - font-family: $font-display, sans-serif; - } - } - - .spacer { - flex: 1 1 auto; - height: 1px; - } - - &__buttons { - padding: 7px 8px; - } - } - } - - &__extra { - display: none; - margin-top: 4px; - - .public-account-bio { - border-radius: 0; - box-shadow: none; - background: transparent; - margin: 0 -5px; - - .account__header__fields { - border-top: 1px solid lighten($ui-base-color, 12%); - } - - .roles { - display: none; - } - } - - &__links { - margin-top: -15px; - font-size: 14px; - color: $darker-text-color; - - a { - display: inline-block; - color: $darker-text-color; - text-decoration: none; - padding: 15px; - font-weight: 500; - - strong { - font-weight: 700; - color: $primary-text-color; - } - } - } - - @media screen and (max-width: $no-columns-breakpoint) { - display: block; - flex: 100%; - } - } - } - - .account__section-headline { - border-radius: 4px 4px 0 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - } - - .detailed-status__meta { - margin-top: 25px; - } - - .public-account-bio { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - overflow: hidden; - margin-bottom: 10px; - - @media screen and (max-width: $no-gap-breakpoint) { - box-shadow: none; - margin-bottom: 0; - border-radius: 0; - } - - .account__header__fields { - margin: 0; - border-top: 0; - - a { - color: lighten($ui-highlight-color, 8%); - } - - dl:first-child .verified { - border-radius: 0 4px 0 0; - } - - .verified a { - color: $valid-value-color; - } - } - - .account__header__content { - padding: 20px; - padding-bottom: 0; - color: $primary-text-color; - } - - &__extra, - .roles { - padding: 20px; - font-size: 14px; - color: $darker-text-color; - } - - .roles { - padding-bottom: 0; - } - } - - .directory__list { - display: grid; - grid-gap: 10px; - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - - .account-card { - display: flex; - flex-direction: column; - } - - @media screen and (max-width: $no-gap-breakpoint) { - display: block; - - .account-card { - margin-bottom: 10px; - display: block; - } - } - } - - .card-grid { - display: flex; - flex-wrap: wrap; - min-width: 100%; - margin: 0 -5px; - - & > div { - box-sizing: border-box; - flex: 1 0 auto; - width: 300px; - padding: 0 5px; - margin-bottom: 10px; - max-width: 33.333%; - - @media screen and (max-width: 900px) { - max-width: 50%; - } - - @media screen and (max-width: 600px) { - max-width: 100%; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin: 0; - border-top: 1px solid lighten($ui-base-color, 8%); - - & > div { - width: 100%; - padding: 0; - margin-bottom: 0; - border-bottom: 1px solid lighten($ui-base-color, 8%); - - &:last-child { - border-bottom: 0; - } - - .card__bar { - background: $ui-base-color; - - &:hover, - &:active, - &:focus { - background: lighten($ui-base-color, 4%); - } - } - } - } - } -} diff --git a/app/javascript/styles/mastodon/dashboard.scss b/app/javascript/styles/mastodon/dashboard.scss index 0a881bc10852fe..f25765d1da90af 100644 --- a/app/javascript/styles/mastodon/dashboard.scss +++ b/app/javascript/styles/mastodon/dashboard.scss @@ -37,9 +37,7 @@ text-align: center; font-weight: 500; font-size: 24px; - line-height: 21px; color: $primary-text-color; - font-family: $font-display, sans-serif; margin-bottom: 20px; line-height: 30px; } @@ -83,7 +81,7 @@ display: flex; align-items: baseline; border-radius: 4px; - background: $ui-highlight-color; + background: darken($ui-highlight-color, 2%); color: $primary-text-color; transition: all 100ms ease-in; font-size: 14px; @@ -96,7 +94,7 @@ &:active, &:focus, &:hover { - background-color: lighten($ui-highlight-color, 10%); + background-color: $ui-highlight-color; transition: all 200ms ease-out; } diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss index e7305746506d62..1042ddda89792b 100644 --- a/app/javascript/styles/mastodon/emoji_picker.scss +++ b/app/javascript/styles/mastodon/emoji_picker.scss @@ -46,7 +46,7 @@ text-align: center; padding: 12px 4px; overflow: hidden; - transition: color .1s ease-out; + transition: color 0.1s ease-out; cursor: pointer; background: transparent; border: 0; @@ -111,7 +111,7 @@ position: relative; input { - font-size: 14px; + font-size: 16px; font-weight: 400; padding: 7px 9px; padding-right: 25px; @@ -132,6 +132,10 @@ &:active { outline: 0 !important; } + + &::-webkit-search-cancel-button { + display: none; + } } } @@ -242,8 +246,8 @@ padding: 5px 6px; padding-top: 70px; - .emoji-mart-no-results-label { - margin-top: .2em; + .emoji-mart-no-results-label { + margin-top: 0.2em; } .emoji-mart-emoji:hover::before { diff --git a/app/javascript/styles/mastodon/footer.scss b/app/javascript/styles/mastodon/footer.scss deleted file mode 100644 index 073ebda7e451e1..00000000000000 --- a/app/javascript/styles/mastodon/footer.scss +++ /dev/null @@ -1,152 +0,0 @@ -.public-layout { - .footer { - text-align: left; - padding-top: 20px; - padding-bottom: 60px; - font-size: 12px; - color: lighten($ui-base-color, 34%); - - @media screen and (max-width: $no-gap-breakpoint) { - padding-left: 20px; - padding-right: 20px; - } - - .grid { - display: grid; - grid-gap: 10px; - grid-template-columns: 1fr 1fr 2fr 1fr 1fr; - - .column-0 { - grid-column: 1; - grid-row: 1; - min-width: 0; - } - - .column-1 { - grid-column: 2; - grid-row: 1; - min-width: 0; - } - - .column-2 { - grid-column: 3; - grid-row: 1; - min-width: 0; - text-align: center; - - h4 a { - color: lighten($ui-base-color, 34%); - } - } - - .column-3 { - grid-column: 4; - grid-row: 1; - min-width: 0; - } - - .column-4 { - grid-column: 5; - grid-row: 1; - min-width: 0; - } - - @media screen and (max-width: 690px) { - grid-template-columns: 1fr 2fr 1fr; - - .column-0, - .column-1 { - grid-column: 1; - } - - .column-1 { - grid-row: 2; - } - - .column-2 { - grid-column: 2; - } - - .column-3, - .column-4 { - grid-column: 3; - } - - .column-4 { - grid-row: 2; - } - } - - @media screen and (max-width: 600px) { - .column-1 { - display: block; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - .column-0, - .column-1, - .column-3, - .column-4 { - display: none; - } - - .column-2 h4 { - display: none; - } - } - } - - .legal-xs { - display: none; - text-align: center; - padding-top: 20px; - - @media screen and (max-width: $no-gap-breakpoint) { - display: block; - } - } - - h4 { - text-transform: uppercase; - font-weight: 700; - margin-bottom: 8px; - color: $darker-text-color; - - a { - color: inherit; - text-decoration: none; - } - } - - ul a, - .legal-xs a { - text-decoration: none; - color: lighten($ui-base-color, 34%); - - &:hover, - &:active, - &:focus { - text-decoration: underline; - } - } - - .brand { - svg { - display: block; - height: 36px; - width: auto; - margin: 0 auto; - fill: lighten($ui-base-color, 34%); - } - - &:hover, - &:focus, - &:active { - svg { - fill: lighten($ui-base-color, 38%); - } - } - } - } -} diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 90d56b0759e289..1841dc8bfde042 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -6,9 +6,10 @@ code { } .form-container { - max-width: 400px; + max-width: 450px; padding: 20px; - margin: 0 auto; + padding-bottom: 50px; + margin: 50px auto; } .indicator-icon { @@ -102,7 +103,8 @@ code { } } - .recommended { + .recommended, + .not_recommended { position: absolute; margin: 0 4px; margin-top: -2px; @@ -123,10 +125,22 @@ code { } .title { - color: #d9e1e8; - font-size: 20px; - line-height: 28px; - font-weight: 400; + font-size: 28px; + line-height: 33px; + font-weight: 700; + margin-bottom: 15px; + } + + .lead { + font-size: 17px; + line-height: 22px; + color: $secondary-text-color; + margin-bottom: 30px; + } + + .rules-list { + font-size: 17px; + line-height: 22px; margin-bottom: 30px; } @@ -240,7 +254,7 @@ code { & > label { font-family: inherit; - font-size: 16px; + font-size: 14px; color: $primary-text-color; display: block; font-weight: 500; @@ -256,6 +270,10 @@ code { } } + .input.with_block_label.user_role_permissions_as_keys ul { + columns: unset; + } + .input.datetime .label_input select { display: inline-block; width: auto; @@ -273,6 +291,20 @@ code { .input:last-child { margin-bottom: 0; } + + &__thumbnail { + display: block; + margin: 0; + margin-bottom: 10px; + max-width: 100%; + height: auto; + border-radius: 4px; + background: url("images/void.png"); + + &:last-child { + margin-bottom: 0; + } + } } .fields-row { @@ -352,7 +384,7 @@ code { flex: 1 1 auto; } - input[type=checkbox] { + input[type="checkbox"] { position: absolute; left: 0; top: 5px; @@ -368,11 +400,12 @@ code { border-radius: 4px; } - input[type=text], - input[type=number], - input[type=email], - input[type=password], - input[type=url], + input[type="text"], + input[type="number"], + input[type="email"], + input[type="password"], + input[type="url"], + input[type="datetime-local"], textarea { box-sizing: border-box; font-size: 16px; @@ -410,10 +443,11 @@ code { } } - input[type=text], - input[type=number], - input[type=email], - input[type=password] { + input[type="text"], + input[type="number"], + input[type="email"], + input[type="password"], + input[type="datetime-local"] { &:focus:invalid:not(:placeholder-shown), &:required:invalid:not(:placeholder-shown) { border-color: lighten($error-red, 12%); @@ -425,10 +459,11 @@ code { color: lighten($error-red, 12%); } - input[type=text], - input[type=number], - input[type=email], - input[type=password], + input[type="text"], + input[type="number"], + input[type="email"], + input[type="password"], + input[type="datetime-local"], textarea, select { border-color: lighten($error-red, 12%); @@ -456,6 +491,11 @@ code { } } + .stacked-actions { + margin-top: 30px; + margin-bottom: 15px; + } + button, .button, .block-button { @@ -463,14 +503,14 @@ code { width: 100%; border: 0; border-radius: 4px; - background: $ui-highlight-color; + background: darken($ui-highlight-color, 2%); color: $primary-text-color; font-size: 18px; line-height: inherit; height: auto; padding: 10px; - text-transform: uppercase; text-decoration: none; + text-transform: uppercase; text-align: center; box-sizing: border-box; cursor: pointer; @@ -483,13 +523,10 @@ code { margin-right: 0; } - &:hover { - background-color: lighten($ui-highlight-color, 5%); - } - &:active, - &:focus { - background-color: darken($ui-highlight-color, 5%); + &:focus, + &:hover { + background-color: $ui-highlight-color; } &:disabled:hover { @@ -510,6 +547,16 @@ code { } } + .button.button-tertiary { + padding: 9px; + + &:hover, + &:focus, + &:active { + padding: 10px; + } + } + select { appearance: none; box-sizing: border-box; @@ -564,41 +611,6 @@ code { } } } - - &__overlay-area { - position: relative; - - &__blurred form { - filter: blur(2px); - } - - &__overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - background: rgba($ui-base-color, 0.65); - border-radius: 4px; - margin-left: -4px; - margin-top: -4px; - padding: 4px; - - &__content { - text-align: center; - - &.rich-formatting { - &, - p { - color: $primary-text-color; - } - } - } - } - } } .block-icon { @@ -869,24 +881,7 @@ code { } } -.table-form { - p { - margin-bottom: 15px; - - strong { - font-weight: 500; - - @each $lang in $cjk-langs { - &:lang(#{$lang}) { - font-weight: 700; - } - } - } - } -} - -.simple_form, -.table-form { +.simple_form { .warning { box-sizing: border-box; background: rgba($error-value-color, 0.5); @@ -1000,7 +995,7 @@ code { flex: 1 1 auto; } - input[type=text] { + input[type="text"] { background: transparent; border: 0; padding: 10px; @@ -1069,7 +1064,45 @@ code { &:last-child { border-bottom: 0; - padding-bottom: 0; } } } + +// Only remove padding when listing applications, to prevent styling issues on +// the Authorization page. +.applications-list { + .permissions-list__item:last-child { + padding-bottom: 0; + } +} + +.keywords-table { + thead { + th { + white-space: nowrap; + } + + th:first-child { + width: 100%; + } + } + + tfoot { + td { + border: 0; + } + } + + .input.string { + margin-bottom: 0; + } + + .label_input__wrapper { + margin-top: 10px; + } + + .table-action-link { + margin-top: 10px; + white-space: nowrap; + } +} diff --git a/app/javascript/styles/mastodon/introduction.scss b/app/javascript/styles/mastodon/introduction.scss deleted file mode 100644 index b44ae730649a84..00000000000000 --- a/app/javascript/styles/mastodon/introduction.scss +++ /dev/null @@ -1,154 +0,0 @@ -.introduction { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - height: 100vh; - background: $ui-base-color; - - @media screen and (max-width: 920px) { - display: block !important; - } - - &__pager { - background: darken($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - overflow: hidden; - } - - &__pager, - &__frame { - border-radius: 10px; - width: 50vw; - min-width: 920px; - - @media screen and (max-width: 920px) { - min-width: 0; - width: 100%; - border-radius: 0; - box-shadow: none; - } - } - - &__frame-wrapper { - opacity: 0; - transition: opacity 500ms linear; - - &.active { - opacity: 1; - transition: opacity 50ms linear; - } - } - - &__frame { - overflow: hidden; - } - - &__illustration { - height: 50vh; - - @media screen and (max-width: 630px) { - height: auto; - } - - img { - object-fit: cover; - display: block; - margin: 0; - width: 100%; - height: 100%; - } - } - - &__text { - border-top: 2px solid $ui-highlight-color; - - &--columnized { - display: flex; - - & > div { - flex: 1 1 33.33%; - text-align: center; - padding: 25px; - padding-bottom: 30px; - } - - @media screen and (max-width: 630px) { - display: block; - padding: 15px 0; - padding-bottom: 20px; - - & > div { - padding: 10px 25px; - } - } - } - - h3 { - font-size: 24px; - line-height: 1.5; - font-weight: 700; - margin-bottom: 10px; - } - - p { - font-size: 16px; - line-height: 24px; - font-weight: 400; - color: $darker-text-color; - - code { - display: inline-block; - background: darken($ui-base-color, 8%); - font-size: 15px; - border: 1px solid lighten($ui-base-color, 8%); - border-radius: 2px; - padding: 1px 3px; - } - } - - &--centered { - padding: 25px; - padding-bottom: 30px; - text-align: center; - } - } - - &__dots { - display: flex; - align-items: center; - justify-content: center; - padding: 25px; - - @media screen and (max-width: 630px) { - display: none; - } - } - - &__dot { - width: 14px; - height: 14px; - border-radius: 14px; - border: 1px solid $ui-highlight-color; - background: transparent; - margin: 0 3px; - cursor: pointer; - - &:hover { - background: lighten($ui-base-color, 8%); - } - - &.active { - cursor: default; - background: $ui-highlight-color; - } - } - - &__action { - padding: 25px; - padding-top: 0; - display: flex; - align-items: center; - justify-content: center; - } -} diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss index a719044ea216df..f553c550171f68 100644 --- a/app/javascript/styles/mastodon/polls.scss +++ b/app/javascript/styles/mastodon/polls.scss @@ -64,8 +64,8 @@ max-width: calc(100% - 45px - 25px); } - input[type=radio], - input[type=checkbox] { + input[type="radio"], + input[type="checkbox"] { display: none; } @@ -73,7 +73,7 @@ flex: 1 1 auto; } - input[type=text] { + input[type="text"] { display: block; box-sizing: border-box; width: 100%; @@ -109,7 +109,6 @@ box-sizing: border-box; width: 18px; height: 18px; - flex: 0 0 auto; margin-right: 10px; top: -1px; border-radius: 50%; @@ -198,7 +197,7 @@ &:active, &:focus { - background-color: rgba($dark-text-color, .1); + background-color: rgba($dark-text-color, 0.1); } } diff --git a/app/javascript/styles/mastodon/rtl.scss b/app/javascript/styles/mastodon/rtl.scss index 98eb1511cc4074..ccec8e95e48b28 100644 --- a/app/javascript/styles/mastodon/rtl.scss +++ b/app/javascript/styles/mastodon/rtl.scss @@ -53,16 +53,6 @@ body.rtl { right: -26px; } - .landing-page__logo { - margin-right: 0; - margin-left: 20px; - } - - .landing-page .features-list .features-list__row .visual { - margin-left: 0; - margin-right: 15px; - } - .column-link__icon, .column-header__icon { margin-right: 0; @@ -350,44 +340,6 @@ body.rtl { margin-left: 45px; } - .landing-page .header-wrapper .mascot { - right: 60px; - left: auto; - } - - .landing-page__call-to-action .row__information-board { - direction: rtl; - } - - .landing-page .header .hero .floats .float-1 { - left: -120px; - right: auto; - } - - .landing-page .header .hero .floats .float-2 { - left: 210px; - right: auto; - } - - .landing-page .header .hero .floats .float-3 { - left: 110px; - right: auto; - } - - .landing-page .header .links .brand img { - left: 0; - } - - .landing-page .fa-external-link { - padding-right: 5px; - padding-left: 0 !important; - } - - .landing-page .features #mastodon-timeline { - margin-right: 0; - margin-left: 30px; - } - @media screen and (min-width: 631px) { .column, .drawer { @@ -415,32 +367,6 @@ body.rtl { padding-right: 0; } - .public-layout { - .header { - .nav-button { - margin-left: 8px; - margin-right: 0; - } - } - - .public-account-header__tabs { - margin-left: 0; - margin-right: 20px; - } - } - - .landing-page__information { - .account__display-name { - margin-right: 0; - margin-left: 5px; - } - - .account__avatar-wrapper { - margin-left: 12px; - margin-right: 0; - } - } - .card__bar .display-name { margin-left: 0; margin-right: 15px; diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss index 078714325eef30..ce71d11e4e7532 100644 --- a/app/javascript/styles/mastodon/statuses.scss +++ b/app/javascript/styles/mastodon/statuses.scss @@ -80,7 +80,7 @@ .button.logo-button { flex: 0 auto; font-size: 14px; - background: $ui-highlight-color; + background: darken($ui-highlight-color, 2%); color: $primary-text-color; text-transform: none; line-height: 1.2; @@ -104,7 +104,7 @@ &:active, &:focus, &:hover { - background: lighten($ui-highlight-color, 10%); + background: $ui-highlight-color; } &:disabled, @@ -137,9 +137,8 @@ a.button.logo-button { justify-content: center; } -.embed, -.public-layout { - .status__content[data-spoiler=folded] { +.embed { + .status__content[data-spoiler="folded"] { .e-content { display: none; } diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss index 431b8a73a47316..b644b38f158c30 100644 --- a/app/javascript/styles/mastodon/tables.scss +++ b/app/javascript/styles/mastodon/tables.scss @@ -178,6 +178,9 @@ a.table-action-link { } &__toolbar { + position: sticky; + top: 0; + z-index: 1; border: 1px solid darken($ui-base-color, 8%); background: $ui-base-color; border-radius: 4px 0 0; @@ -190,6 +193,55 @@ a.table-action-link { } } + &__select-all { + background: $ui-base-color; + height: 47px; + align-items: center; + justify-content: center; + border: 1px solid darken($ui-base-color, 8%); + border-top: 0; + color: $secondary-text-color; + display: none; + + &.active { + display: flex; + } + + .selected, + .not-selected { + display: none; + + &.active { + display: block; + } + } + + strong { + font-weight: 700; + } + + span { + padding: 8px; + display: inline-block; + } + + button { + background: transparent; + border: 0; + font: inherit; + color: $highlight-text-color; + border-radius: 4px; + font-weight: 700; + padding: 8px; + + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 8%); + } + } + } + &__form { padding: 16px; border: 1px solid darken($ui-base-color, 8%); diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss index f463419c8203ca..2f6c41d5f220f7 100644 --- a/app/javascript/styles/mastodon/variables.scss +++ b/app/javascript/styles/mastodon/variables.scss @@ -12,7 +12,7 @@ $red-bookmark: $warning-red; $classic-base-color: #282c37; // Midnight Express $classic-primary-color: #9baec8; // Echo Blue $classic-secondary-color: #d9e1e8; // Pattens Blue -$classic-highlight-color: #2b90d9; // Summer Sky +$classic-highlight-color: #6364ff; // Brand purple // Variables for defaults in UI $base-shadow-color: $black !default; @@ -34,10 +34,11 @@ $primary-text-color: $white !default; $darker-text-color: $ui-primary-color !default; $dark-text-color: $ui-base-lighter-color !default; $secondary-text-color: $ui-secondary-color !default; -$highlight-text-color: $ui-highlight-color !default; +$highlight-text-color: lighten($ui-highlight-color, 8%) !default; $action-button-color: $ui-base-lighter-color !default; $passive-text-color: $gold-star !default; $active-passive-text-color: $success-green !default; + // For texts on inverted backgrounds $inverted-text-color: $ui-base-color !default; $lighter-text-color: $ui-base-lighter-color !default; @@ -48,10 +49,11 @@ $cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW; // Variables for components $media-modal-media-max-width: 100%; + // put margins on top and bottom of image to avoid the screen covered by image. $media-modal-media-max-height: 80%; -$no-gap-breakpoint: 415px; +$no-gap-breakpoint: 1175px; $font-sans-serif: 'mastodon-font-sans-serif' !default; $font-display: 'mastodon-font-display' !default; diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index 43284eb482b1d9..0e39dc87b4b03b 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -112,13 +112,6 @@ } } -.box-widget { - padding: 20px; - border-radius: 4px; - background: $ui-base-color; - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); -} - .placeholder-widget { padding: 16px; border-radius: 4px; @@ -128,47 +121,6 @@ margin-bottom: 10px; } -.contact-widget { - min-height: 100%; - font-size: 15px; - color: $darker-text-color; - line-height: 20px; - word-wrap: break-word; - font-weight: 400; - padding: 0; - - h4 { - padding: 10px; - text-transform: uppercase; - font-weight: 700; - font-size: 13px; - color: $darker-text-color; - } - - .account { - border-bottom: 0; - padding: 10px 0; - padding-top: 5px; - } - - & > a { - display: inline-block; - padding: 10px; - padding-top: 0; - color: $darker-text-color; - text-decoration: none; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } -} - .moved-account-widget { padding: 15px; padding-bottom: 20px; @@ -249,37 +201,6 @@ margin-bottom: 10px; } -.page-header { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - padding: 60px 15px; - text-align: center; - margin: 10px 0; - - h1 { - color: $primary-text-color; - font-size: 36px; - line-height: 1.1; - font-weight: 700; - margin-bottom: 10px; - } - - p { - font-size: 15px; - color: $darker-text-color; - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin-top: 0; - background: lighten($ui-base-color, 4%); - - h1 { - font-size: 24px; - } - } -} - .directory { background: $ui-base-color; border-radius: 4px; @@ -366,34 +287,6 @@ } } -.avatar-stack { - display: flex; - justify-content: flex-end; - - .account__avatar { - flex: 0 0 auto; - width: 36px; - height: 36px; - border-radius: 50%; - position: relative; - margin-left: -10px; - background: darken($ui-base-color, 8%); - border: 2px solid $ui-base-color; - - &:nth-child(1) { - z-index: 1; - } - - &:nth-child(2) { - z-index: 2; - } - - &:nth-child(3) { - z-index: 3; - } - } -} - .accounts-table { width: 100%; @@ -466,8 +359,9 @@ vertical-align: initial !important; } - &__interrelationships { + tbody td.accounts-table__interrelationships { width: 21px; + padding-right: 16px; } .fa { @@ -495,11 +389,7 @@ .moved-account-widget, .memoriam-widget, -.box-widget, -.contact-widget, -.landing-page__information.contact-widget, -.directory, -.page-header { +.directory { @media screen and (max-width: $no-gap-breakpoint) { margin-bottom: 0; box-shadow: none; @@ -507,88 +397,6 @@ } } -$maximum-width: 1235px; -$fluid-breakpoint: $maximum-width + 20px; - -.statuses-grid { - min-height: 600px; - - @media screen and (max-width: 640px) { - width: 100% !important; // Masonry layout is unnecessary at this width - } - - &__item { - width: math.div(960px - 20px, 3); - - @media screen and (max-width: $fluid-breakpoint) { - width: math.div(940px - 20px, 3); - } - - @media screen and (max-width: 640px) { - width: 100%; - } - - @media screen and (max-width: $no-gap-breakpoint) { - width: 100vw; - } - } - - .detailed-status { - border-radius: 4px; - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 1px solid lighten($ui-base-color, 16%); - } - - &.compact { - .detailed-status__meta { - margin-top: 15px; - } - - .status__content { - font-size: 15px; - line-height: 20px; - - .emojione { - width: 20px; - height: 20px; - margin: -3px 0 0; - } - - .status__content__spoiler-link { - line-height: 20px; - margin: 0; - } - } - - .media-gallery, - .status-card, - .video-player { - margin-top: 15px; - } - } - } -} - -.notice-widget { - margin-bottom: 10px; - color: $darker-text-color; - - p { - margin-bottom: 10px; - - &:last-child { - margin-bottom: 0; - } - } - - a { - font-size: 14px; - line-height: 20px; - } -} - -.notice-widget, .placeholder-widget { a { text-decoration: none; @@ -602,37 +410,3 @@ $fluid-breakpoint: $maximum-width + 20px; } } } - -.table-of-contents { - background: darken($ui-base-color, 4%); - min-height: 100%; - font-size: 14px; - border-radius: 4px; - - li a { - display: block; - font-weight: 500; - padding: 15px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - text-decoration: none; - color: $primary-text-color; - border-bottom: 1px solid lighten($ui-base-color, 4%); - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } - - li:last-child a { - border-bottom: 0; - } - - li ul { - padding-left: 20px; - border-bottom: 1px solid lighten($ui-base-color, 4%); - } -} diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 7ff06ea390cf14..f4c67cccd733a7 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -116,12 +116,12 @@ def status_from_object def dereference_object! return unless @object.is_a?(String) - dereferencer = ActivityPub::Dereferencer.new(@object, permitted_origin: @account.uri, signature_account: signed_fetch_account) + dereferencer = ActivityPub::Dereferencer.new(@object, permitted_origin: @account.uri, signature_actor: signed_fetch_actor) @object = dereferencer.object unless dereferencer.object.nil? end - def signed_fetch_account + def signed_fetch_actor return Account.find(@options[:delivered_to_account_id]) if @options[:delivered_to_account_id].present? first_mentioned_local_account || first_local_follower @@ -163,15 +163,15 @@ def fetch? end def followed_by_local_accounts? - @account.passive_relationships.exists? || @options[:relayed_through_account]&.passive_relationships&.exists? + @account.passive_relationships.exists? || (@options[:relayed_through_actor].is_a?(Account) && @options[:relayed_through_actor].passive_relationships&.exists?) end def requested_through_relay? - @options[:relayed_through_account] && Relay.find_by(inbox_url: @options[:relayed_through_account].inbox_url)&.enabled? + @options[:relayed_through_actor] && Relay.find_by(inbox_url: @options[:relayed_through_actor].inbox_url)&.enabled? end def reject_payload! - Rails.logger.info("Rejected #{@json['type']} activity #{@json['id']} from #{@account.uri}#{@options[:relayed_through_account] && "via #{@options[:relayed_through_account].uri}"}") + Rails.logger.info("Rejected #{@json['type']} activity #{@json['id']} from #{@account.uri}#{@options[:relayed_through_actor] && "via #{@options[:relayed_through_actor].uri}"}") nil end end diff --git a/app/lib/activitypub/activity/add.rb b/app/lib/activitypub/activity/add.rb index 845eeaef796816..9e2483983dcdad 100644 --- a/app/lib/activitypub/activity/add.rb +++ b/app/lib/activitypub/activity/add.rb @@ -2,12 +2,32 @@ class ActivityPub::Activity::Add < ActivityPub::Activity def perform - return unless @json['target'].present? && value_or_id(@json['target']) == @account.featured_collection_url + return if @json['target'].blank? + case value_or_id(@json['target']) + when @account.featured_collection_url + case @object['type'] + when 'Hashtag' + add_featured_tags + else + add_featured + end + end + end + + private + + def add_featured status = status_from_object return unless !status.nil? && status.account_id == @account.id && !@account.pinned?(status) StatusPin.create!(account: @account, status: status) end + + def add_featured_tags + name = @object['name']&.delete_prefix('#') + + FeaturedTag.create!(account: @account, name: name) if name.present? + end end diff --git a/app/lib/activitypub/activity/remove.rb b/app/lib/activitypub/activity/remove.rb index f523ead9f65319..f5cbef67571d6f 100644 --- a/app/lib/activitypub/activity/remove.rb +++ b/app/lib/activitypub/activity/remove.rb @@ -2,8 +2,22 @@ class ActivityPub::Activity::Remove < ActivityPub::Activity def perform - return unless @json['target'].present? && value_or_id(@json['target']) == @account.featured_collection_url + return if @json['target'].blank? + case value_or_id(@json['target']) + when @account.featured_collection_url + case @object['type'] + when 'Hashtag' + remove_featured_tags + else + remove_featured + end + end + end + + private + + def remove_featured status = status_from_uri(object_uri) return unless !status.nil? && status.account_id == @account.id @@ -11,4 +25,13 @@ def perform pin = StatusPin.find_by(account: @account, status: status) pin&.destroy! end + + def remove_featured_tags + name = @object['name']&.delete_prefix('#') + + return if name.blank? + + featured_tag = FeaturedTag.by_name(name).find_by(account: @account) + featured_tag&.destroy! + end end diff --git a/app/lib/activitypub/dereferencer.rb b/app/lib/activitypub/dereferencer.rb index bea69608fe228b..4d7756d71d880b 100644 --- a/app/lib/activitypub/dereferencer.rb +++ b/app/lib/activitypub/dereferencer.rb @@ -3,10 +3,10 @@ class ActivityPub::Dereferencer include JsonLdHelper - def initialize(uri, permitted_origin: nil, signature_account: nil) + def initialize(uri, permitted_origin: nil, signature_actor: nil) @uri = uri @permitted_origin = permitted_origin - @signature_account = signature_account + @signature_actor = signature_actor end def object @@ -46,7 +46,7 @@ def perform_request(uri, headers: nil) req.add_headers('Accept' => 'application/activity+json, application/ld+json') req.add_headers(headers) if headers - req.on_behalf_of(@signature_account) if @signature_account + req.on_behalf_of(@signature_actor) if @signature_actor req.perform do |res| if res.code == 200 diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb index e853a970e81d22..f90adaf6c5fd3b 100644 --- a/app/lib/activitypub/linked_data_signature.rb +++ b/app/lib/activitypub/linked_data_signature.rb @@ -9,7 +9,7 @@ def initialize(json) @json = json.with_indifferent_access end - def verify_account! + def verify_actor! return unless @json['signature'].is_a?(Hash) type = @json['signature']['type'] @@ -18,7 +18,7 @@ def verify_account! return unless type == 'RsaSignature2017' - creator = ActivityPub::TagManager.instance.uri_to_resource(creator_uri, Account) + creator = ActivityPub::TagManager.instance.uri_to_actor(creator_uri) creator ||= ActivityPub::FetchRemoteKeyService.new.call(creator_uri, id: false) return if creator.nil? @@ -35,7 +35,7 @@ def verify_account! def sign!(creator, sign_with: nil) options = { 'type' => 'RsaSignature2017', - 'creator' => [ActivityPub::TagManager.instance.uri_for(creator), '#main-key'].join, + 'creator' => ActivityPub::TagManager.instance.key_uri_for(creator), 'created' => Time.now.utc.iso8601, } diff --git a/app/lib/activitypub/parser/media_attachment_parser.rb b/app/lib/activitypub/parser/media_attachment_parser.rb index 30bea1f0e6f887..656be84b73ff0a 100644 --- a/app/lib/activitypub/parser/media_attachment_parser.rb +++ b/app/lib/activitypub/parser/media_attachment_parser.rb @@ -50,7 +50,7 @@ def supported_blurhash? components = begin blurhash = @json['blurhash'] - if blurhash.present? && /^[\w#$%*+-.:;=?@\[\]^{|}~]+$/.match?(blurhash) + if blurhash.present? && /^[\w#$%*+,-.:;=?@\[\]^{|}~]+$/.match?(blurhash) Blurhash.components(blurhash) end end diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb index f6b9741fa1820e..3d6b28ef5814d6 100644 --- a/app/lib/activitypub/tag_manager.rb +++ b/app/lib/activitypub/tag_manager.rb @@ -44,6 +44,10 @@ def uri_for(target) end end + def key_uri_for(target) + [uri_for(target), '#main-key'].join + end + def uri_for_username(username) account_url(username: username) end @@ -155,6 +159,10 @@ def uri_to_local_id(uri, param = :id) path_params[param] end + def uri_to_actor(uri) + uri_to_resource(uri, Account) + end + def uri_to_resource(uri, klass) return if uri.nil? diff --git a/app/lib/admin/system_check.rb b/app/lib/admin/system_check.rb index 877a42ef639100..f512635abb0a8f 100644 --- a/app/lib/admin/system_check.rb +++ b/app/lib/admin/system_check.rb @@ -8,11 +8,11 @@ class Admin::SystemCheck Admin::SystemCheck::ElasticsearchCheck, ].freeze - def self.perform + def self.perform(current_user) ACTIVE_CHECKS.each_with_object([]) do |klass, arr| - check = klass.new + check = klass.new(current_user) - if check.pass? + if check.skip? || check.pass? arr else arr << check.message diff --git a/app/lib/admin/system_check/base_check.rb b/app/lib/admin/system_check/base_check.rb index fcad8daca47ba6..c2974c218e16f5 100644 --- a/app/lib/admin/system_check/base_check.rb +++ b/app/lib/admin/system_check/base_check.rb @@ -1,6 +1,16 @@ # frozen_string_literal: true class Admin::SystemCheck::BaseCheck + attr_reader :current_user + + def initialize(current_user) + @current_user = current_user + end + + def skip? + false + end + def pass? raise NotImplementedError end diff --git a/app/lib/admin/system_check/database_schema_check.rb b/app/lib/admin/system_check/database_schema_check.rb index b93d1954eb0b60..c2f01fd55b528c 100644 --- a/app/lib/admin/system_check/database_schema_check.rb +++ b/app/lib/admin/system_check/database_schema_check.rb @@ -1,6 +1,10 @@ # frozen_string_literal: true class Admin::SystemCheck::DatabaseSchemaCheck < Admin::SystemCheck::BaseCheck + def skip? + !current_user.can?(:view_devops) + end + def pass? !ActiveRecord::Base.connection.migration_context.needs_migration? end diff --git a/app/lib/admin/system_check/elasticsearch_check.rb b/app/lib/admin/system_check/elasticsearch_check.rb index 1b48a5415a3a72..8aee182674b505 100644 --- a/app/lib/admin/system_check/elasticsearch_check.rb +++ b/app/lib/admin/system_check/elasticsearch_check.rb @@ -1,6 +1,10 @@ # frozen_string_literal: true class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck + def skip? + !current_user.can?(:view_devops) + end + def pass? return true unless Chewy.enabled? @@ -32,8 +36,4 @@ def required_version def compatible_version? Gem::Version.new(running_version) >= Gem::Version.new(required_version) end - - def missing_queues - @missing_queues ||= Sidekiq::ProcessSet.new.reduce(SIDEKIQ_QUEUES) { |queues, process| queues - process['queues'] } - end end diff --git a/app/lib/admin/system_check/rules_check.rb b/app/lib/admin/system_check/rules_check.rb index 1fbdf955dc1900..8206a5df391594 100644 --- a/app/lib/admin/system_check/rules_check.rb +++ b/app/lib/admin/system_check/rules_check.rb @@ -3,6 +3,10 @@ class Admin::SystemCheck::RulesCheck < Admin::SystemCheck::BaseCheck include RoutingHelper + def skip? + !current_user.can?(:manage_rules) + end + def pass? Rule.kept.exists? end diff --git a/app/lib/admin/system_check/sidekiq_process_check.rb b/app/lib/admin/system_check/sidekiq_process_check.rb index 22446edaf773d6..d577b3bf3c51c7 100644 --- a/app/lib/admin/system_check/sidekiq_process_check.rb +++ b/app/lib/admin/system_check/sidekiq_process_check.rb @@ -7,8 +7,13 @@ class Admin::SystemCheck::SidekiqProcessCheck < Admin::SystemCheck::BaseCheck mailers pull scheduler + ingress ).freeze + def skip? + !current_user.can?(:view_devops) + end + def pass? missing_queues.empty? end diff --git a/app/lib/ascii_folding.rb b/app/lib/ascii_folding.rb new file mode 100644 index 00000000000000..1798d3d0e62ce9 --- /dev/null +++ b/app/lib/ascii_folding.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +class ASCIIFolding + NON_ASCII_CHARS = 'ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž' + EQUIVALENT_ASCII_CHARS = 'AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz' + + def fold(str) + str.tr(NON_ASCII_CHARS, EQUIVALENT_ASCII_CHARS) + end +end diff --git a/app/lib/emoji_formatter.rb b/app/lib/emoji_formatter.rb index 194849c23daf3f..a9785d5f90c22d 100644 --- a/app/lib/emoji_formatter.rb +++ b/app/lib/emoji_formatter.rb @@ -23,48 +23,40 @@ def initialize(html, custom_emojis, options = {}) def to_s return html if custom_emojis.empty? || html.blank? - i = -1 - tag_open_index = nil - inside_shortname = false - shortname_start_index = -1 - invisible_depth = 0 - last_index = 0 - result = ''.dup - - while i + 1 < html.size - i += 1 - - if invisible_depth.zero? && inside_shortname && html[i] == ':' - inside_shortname = false - shortcode = html[shortname_start_index + 1..i - 1] - char_after = html[i + 1] - - next unless (char_after.nil? || !DISALLOWED_BOUNDING_REGEX.match?(char_after)) && (emoji = emoji_map[shortcode]) - - result << html[last_index..shortname_start_index - 1] if shortname_start_index.positive? - result << image_for_emoji(shortcode, emoji) - last_index = i + 1 - elsif tag_open_index && html[i] == '>' - tag = html[tag_open_index..i] - tag_open_index = nil - - if invisible_depth.positive? - invisible_depth += count_tag_nesting(tag) - elsif tag == '

      سياسة الخصوصية

      -

      ما هي المعلومات التي نجمعها؟

      -
        -
      • معلومات الحساب الأساسية: إذا سجلت على هذا الخادم، فسيُطلب منك أن تُدخل اسم المستخدم، عنوان بريد إلكتروني، وكلمة سر، وتستطيع أن تُدخل معلومات تعريفية إضافية مثل اسم معروض، وسيرة ذاتية، وصورة رمزية، وصورة رأسية. اسم المستخدم، والاسم المعروض، والسيرة الذاتية، والصورة الرمزية، والصورة الرأسية سيكونون ظاهرين بشكل علني للجميع دائماً.
      • -
      • المنشورات، المتابَعون، ومعلومات علنية أخرى: قائمة الأشخاص الذين تُتابِعُهم علنية للجميع، نفس الشيء مع قائمة متابِعيك. عندما تُرسل رسالة، يتم تخزين التاريخ والوقت واسم البرنامج المنَشور منه. يُمكن للرسائل أن تحتوي على وسائط مُرفقة مثل الصور ومقاطع الفيديو. المنشورات العامة والغير مُدرجة متوفرات بشكل علني. عندما تُميّز منشور على ملفك الشخصي، فهذه أيضاً معلومات متوفرة بشكل علني. يتم تسليم منشوراتك إلى متابِعيك، في بعض الأحيان، يتم تسليمهم إلى خوادم مختلفة ويتم نسخهم وحفظهم هناك. عندما تحذف منشور معيّن، يتم تسليم هذه المعلومة على نفس المنوال إلى متابِعيك أيضاً، إعادة النشر والإعجاب بمنشور معيّن هما أضاً تصرفات علنية دائماً.
      • -
      • المنشورات المباشرة ومنشورات المتابِعين فقط: تُخزّن وتُعالج كل المنشورات على الخادم. يتم تسليم "منشورات المتابعين فقط" إلى متابِعيك والأشخاص المذكورين في المنشور، ويتم تسليم المنشورات المباشرة إلى الأشخاص المذكورين في المنشور فقط لا غير. في بعض الأحيان يتم تسليمهم إلى خوادم مختلفة ويتم حفظ نُسخ منهم هناك. نحن نبذل جهداً حسن النية للحد من إمكانية وصول المنشورات إلى الأشخاص المُصرّح لهم فقط، ولكن قد تفشل الخوادم الأخرى في القيام بذلك، لذلك من المهم أن تُراجِع الخوادم التي ينتمي إليها متابِعوك. تستطيع أن تُصحّح في الإعدادات على خيار "الموافقة أو الرفض اليدوي" للمتابِعين الجدد. ضع في الحسبان أنه من الممكن أن يقرأ أيُّ أحد من الخوادم هذه الرسائل أو المنشورات، ومن الممكن أن يلتقط المُستقبِلون لقطات شاشة أو أن ينسخوا أو يعيدوا مشاركتهم بطريقة أخرى، لذلك لا تنشر أي معلومات خطرة على ماستدون.
      • - -
      • عناوين الـIP وبيانات وصفية أخرى: عندما تُسجل دخولك، نقوم بتسجيل عنوان الـIP الذي دخلت منه، وأيضاً اسم المتصفح الذي دخلت منه، كل عناوين الـIP لتسجيلات الدخول متاحة لك للمراجعة وللإبطال في الإعدادات. يبقى آخر عنوان IP مُسجل لما يصل إلى 12 شهراً. ومن الممكن أن نحتفظ بسجلات الخادم التي تحتوي على عنوان الـIP من كل طلب وصول إلى خادمنا.
      • -
      - -
      - -

      بماذا نستعمل معلوماتك؟

      - -

      أي معلومات نجمعها عنك قَد تُستخدم بالطرق التالية:

      - -
        -
      • لتوفير الوظائف الأساسية لماستدون، تستطيع أن تتفاعل مع محتوى الآخرين وأن تنشر محتواك الخاص عندما تُسجل دخولك. كمثال، تستطيع أن تُتابِع حسابات أشخاص آخرين لعرض منشوراتهم المُجمّعة في خطك الزمني الشخصي الرئيسي.
      • -
      • للمساعدة في اعتدال المجتمع. كمثال، مقارنة عنوان الـIP الخاص بك بعناوين IP أخرى معروفة لمعرفة ما إذا ثمة هناك أي تهرب من الحظر أو انتهاكات أخرى.
      • -
      • يمكن أن يُستعمل عنوان بريدك الإلكتروني الذي أدخلته لإرسال معلومات إليك، أو إشعارات عن تفاعل أشخاص آخرين مع محتواك أو إرسالهم راسائل إليك، أو للرد على استفسارات، و/أو طلبات أو أسئلة أخرى.
      • -
      - -
      - -

      كيف نحمي معلوماتك؟

      - -

      نقوم بتنفيذ مجموعة متنوعة من التدابير الأمنية للحفاظ على سلامة معلوماتك الشخصية عندما تدخلها، أو ترسلها، أو تقوم بالوصول إليها. بجاني أشياء أخرى، تؤَمن جلسة المتصفح الخاص بك، وحركة المرور بين تطبيقاتك والـAPI (واجهة برمجة التطبيقات) باستخدام SSL (بروتوكول طبقة المقابس الآمنة)، وتُهَش أو بالأحرى تُجَزأ كلمة السر الخاصة بك باستخدام خوارزمية أحادية الاتجاه، يمكنك تفعيل خاصّية "الاستيثاق بخطوتين" لتؤَمن وتُصعب إمكانية الوصول إلى حسابك أكثر.

      - -
      - -

      ما هي سياسة الاحتفاظ بالبيانات لدينا؟

      - -

      سنبذل جهداً حسن النية لـ:

      - -
        -
      • حفظ سجلّات بيانات الخوادم التي تحتوي على عنوان الـIP من كل طلب وصول إلى خادمنا، بقدر ما يتم الاحتفاظ بهذه السجلات، لا تزيد عن 90 يومًا.
      • -
      • الاحتفاظ بعناوين الـIP المربوطة بالمُستخدمين المُسجلين دخولهم لمدة لا تزيد عن 12 شهراً.
      • -
      - -

      تستطيع أن تطلب وتُنزل أرشيف لمحتواك، الذي يحتوي على منشوراتك، ووسائطك المُرفقة، وصورك الرمزية، وصورك الرأسية.

      - -

      تستطيع أن تحذف حسابك بشكل لا رجعة فيه في أي وقت تريد.

      - -
      - -

      هل نستخدم الـCookies (ملفات تعريف الارتباط)؟

      - -

      نعم، الـcookies هي عبارة عن قطعة نصية صغيرة مخزنة على قرص حاسوبك من قبل متصفحك (إذا سمحت له). تسمح هذه الـcookies للموقع بأن يتعرف على متصفحك، وإذا كنت قد سجلت دخولك إلى حسابك، فسيربطه بحسابك المسجل.

      - -

      نستعمل الـcookies لفهم ولحفظ تفضيلاتك للزيارات المستقبلية

      - -
      - -

      هل نُفصح عن أي معلومات لأطراف خارجية؟

      - -

      نحن لا نبيع، أو نتاجر، أو بأي طريقة أخرى نُحول بياناتك التعريفية الشخصية إلى جهات خارجية. طبعاً هذا الكلام لا ينطبق على الجهات الموثوقة التي تساعدنا في تشغيل موقعنا، أو في إجراء أعمالنا، أو في خدمتك طالما أنهم يوافقون على الحفاظ على سرّيتها. ومن الممكن أن نُطلق أو أن نُصرّح بمعلوماتك عندما نؤمِن بأن هذا هو التصرّف الصحيح للامتثال للقانون، أو لتطبيق سياسة موقعنا، أو لحفظ الحقوق، أو الأملاك، أو الأمان الخاص بنا أو بغيرنا.

      - -

      من الممكن أن يُنزل محتواك من قبل خوادم أخرى في الشبكة، يتم تسليم منشوراتك "العامة" ومنشورات "المتابعين فقط" إلى الخوادم التي يقيم فيها متابِعوك، وتُسلم الرسائل المباشرة إلى خوادم التي يُقيم فيها المُستقبلون، طالما أن هؤلاء المتابِعين أو المُستلمين يقيمون في خوادم مختلفة عن هذا الخادم.

      - -

      عندما تخوّل تطبيق معين لاستخدام حسابك، وطبعاً على حسب نطاق الأذونات التي سمحت له بها، فيستطيع هذا التطبيق الوصول إلى معلومات ملفك التعريفي العامة، قائمة المتابَعون منك، قائمة المتابِعون لك، كل منشوراتك، وكل إعجاباتك. لا يمكن للتطبيقات الوصول إلى عنوان بريدك الإلكتروني أو إلى كلمة مرورك.

      - -
      - -

      استخدام الأطفال للموقع

      - -

      إذا كان هذا الخادم في الـEU (الإتحاد الأوروبي) أو في الـEEA (المنطقة الاقتصادية الأوروبية): فموقعنا، ومنتجاتنا وخدماتنا كلها موجهة للأشخاص الذين لا تقل أعمارهم عن الـ16 سنة، إذا كنت تحت هذا السن، حسب متطلبات الـGDPR (النظام الأوروبي العام لحماية البيانات) فلا تستخدم هذا الموقع.

      - - -

      إذا كان هذا السيرفر في الـUS (الولايات المتحدة الأمريكية): فموقعنا، ومنتجاتنا وخدماتنا كلها موجهة للأشخاص الذين لا تقل أعمارهم عن الـ13 سنة، إذا كنت تحت هذا السن، حسب متطلبات الـCOPPA (قانون حماية خصوصية الأطفال على الإنترنت) فلا تستخدم هذا الموقع.

      - -

      من الممكن أن تكون المتطلبات القانونية مختلفة إذا كان هذا الخادم في ولاية قضائية أخرى.

      - -
      - -

      تغييرات لسياستنا للخصوصية

      - -

      إذا قررنا أن نغير سياستنا للخصوصية، فسنَنشر هذه التغييرات على هذه الصفحة.

      - -

      هذه الوثيقة هي CC-BY-SA (النسبة-الترخيص بالمثل)، تم آخر تحديث لها في 7 مارس، 2018.

      - -

      مقتبسة في الأصل من Discourse privacy policy.

      - title: شروط الخدمة وسياسة الخصوصية على %{instance} themes: contrast: ماستدون (تباين عالٍ) default: ماستدون (داكن) @@ -1625,22 +1471,11 @@ ar: suspend: الحساب مُعلَّق welcome: edit_profile_action: تهيئة الملف التعريفي - edit_profile_step: يُمكنك·كي تخصيص صفحتك التعريفية عن طريق تحميل صورة رمزية ورأسية و بتعديل اسمك·كي العلني وأكثر. و إن أردت·تي معاينة المتابِعين و المتابعات الجُدد قبيل السماح لهم·ن بمتابَعتك فيمكنك·كي تأمين حسابك·كي. explanation: ها هي بعض النصائح قبل بداية الاستخدام final_action: اشرَع في النشر - final_step: |- - يمكنك الشروع في النشر في الحين! حتى و إن لم كنت لا تمتلك متابِعين بعدُ، يمكن للآخرين الإطلاع على منشوراتك الموجهة للجمهور على الخيط العام المحلي أو إن قمت باستخدام وسوم. - ابدأ بتقديم نفسك باستعمال وسم #introductions. full_handle: عنوانك الكامل full_handle_hint: هذا هو ما يجب تقديمه لأصدقائك قصد أن يكون بإمكانهم متابَعتك أو مُراسَلتك حتى و إن كانت حساباتهم على خوادم أخرى. - review_preferences_action: تعديل التفضيلات - review_preferences_step: تأكد من ضبط تفضيلاتك ، مثلًا أية رسائل بريد إلكترونية ترغب في تلقيها أو أي مستوى للخصوصية ترغب في اسناده افتراضيًا لمنشوراتك. إن كانت الحركة لا تُعكّر مزاجك فيمكنك إختيار تفعيل التشغيل التلقائي لوسائط GIF المتحركة. subject: أهلًا بك على ماستدون - tip_federated_timeline: الخيط الزمني الفديرالي هو بمثابة شبه نظرة شاملة على شبكة ماستدون. غير أنه لا يشمل إلا على الأشخاص المتابَعين مِن طرف جيرانك و جاراتك، لذا فهذا الخيط لا يعكس كافة الشبكة برُمّتها. - tip_following: أنت تتبع تلقائيا مديري و مديرات الخادم. للعثور على أشخاص مميزين أو قد تهمك حساباتهم بإمكانك الإطلاع على الخيوط العامة المحلية و كذا الفدرالية. - tip_local_timeline: الخيط العام المحلي هو بمثابة نظرة سريعة على الأشخاص المتواجدين على %{instance} يمكن اعتبارهم كجيرانك وجاراتك الأقرب إليك! - tip_mobile_webapp: إن كان متصفحك على جهازك المحمول يُتيح ميزة إضافة Mastodon على شاشتك الرئيسية ، فيمكنك تلقي الإشعارات المدفوعة. إنه يعمل كتطبيق أصلي بحت! - tips: نصائح title: أهلاً بك، %{name}! users: follow_limit_reached: لا يمكنك متابعة أكثر مِن %{limit} أشخاص diff --git a/config/locales/ast.yml b/config/locales/ast.yml index a9bcbbdf7eb14e..acbdeb65588fc2 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -1,57 +1,19 @@ --- ast: about: - about_hashtag_html: Estos son los barritos públicos etiquetaos con #%{hashtag}. Pues interactuar con ellos si tienes una cuenta en cualesquier parte del fediversu. about_mastodon_html: 'La rede social del futuru: ¡ensin anuncios nin vixilancia, con un diseñu éticu y descentralizáu! Controla los tos datos con Mastodon.' - about_this: Tocante a - administered_by: 'Alministráu por:' - api: API - apps: Aplicaciones pa móviles - apps_platforms: Usa Mastodon dende Android, iOS y otres plataformes - contact: Contautu contact_missing: Nun s'afitó contact_unavailable: N/D - discover_users: Usuarios nuevos - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} vas ser a siguir a persones de cualesquier sirvidor de Mastodon y facer más coses. - get_apps: En preseos móviles hosted_on: Mastodon ta agospiáu en %{domain} - learn_more: Saber más - privacy_policy: Política de privacidá - server_stats: 'Estadístiques del sirvidor:' - source_code: Códigu fonte - status_count_after: - one: artículu - other: artículos - status_count_before: Que crearon - tagline: Sigui a persones y conoz a más xente - terms: Términos del serviciu - unavailable_content_description: - domain: Sirvidor - reason: Motivu - user_count_after: - one: usuariu - other: usuarios - user_count_before: Ye'l llar de - what_is_mastodon: "¿Qué ye Mastodon?" accounts: - featured_tags_hint: Pues destacar etiquetes específiques que van amosase equí. followers: one: Siguidor other: Siguidores - joined: Xunióse en %{date} - moved_html: "%{name} mudóse a %{new_profile_link}:" - network_hidden: Esta información nun ta disponible nothing_here: "¡Equí nun hai nada!" - people_followed_by: Persones a les que sigue %{name} - people_who_follow: Persones que siguen a %{name} posts: one: Artículu other: Artículos posts_tab_heading: Artículos - posts_with_replies: Barritos y rempuestes - roles: - bot: Robó admin: accounts: are_you_sure: "¿De xuru?" @@ -61,9 +23,11 @@ ast: email: Corréu followers: Siguidores ip: IP + joined: Data de xunión location: local: Llocal - title: Allugamientu + remote: Remotu + title: Llugar most_recent_activity: L'actividá más recién most_recent_ip: La IP más recién protocol: Protocolu @@ -71,14 +35,10 @@ ast: resend_confirmation: already_confirmed: Esti usuariu yá ta confirmáu send: Reunviar les instrucciones - role: Permisos - roles: - admin: Alministrador - moderator: Llendador - user: Usuariu - statuses: Estaos + statuses: Artículos title: Cuentes username: Nome d'usuariu + web: Web announcements: destroyed_msg: "¡L'anunciu desanicióse correutamente!" new: @@ -135,15 +95,23 @@ ast: are_you_sure: "¿De xuru?" status: Estáu title: Informes - settings: - registrations: - min_invite_role: - disabled: Naide - site_description: - title: Descripción del sirvidor - site_title: Nome del sirvidor - title: Axustes del sitiu + roles: + everyone: Permisos predeterminaos + permissions_count: + one: "%{count} permisu" + other: "%{count} permisos" + statuses: + metadata: Metadatos + strikes: + appeal_approved: Apellóse + appeal_pending: Apellación pendiente title: Alministración + trends: + tags: + dashboard: + tag_accounts_measure: usos únicos + webhooks: + events: Eventos admin_mailer: new_pending_account: body: Los detalles de la cuenta nueva tán embaxo. Pues aprobar o refugar esta aplicación. @@ -164,20 +132,17 @@ ast: sensitive_content: Conteníu sensible toot_layout: Distribución de los barritos applications: - invalid_url: La URL apurrida nun ye válida warning: Ten munchu curiáu con estos datos, ¡enxamás nun los compartas con naide! auth: change_password: Contraseña - checkbox_agreement_html: Acepto les regles del sirvidor y los términos del serviciu - checkbox_agreement_without_rules_html: Acepto los términos del serviciu delete_account: Desaniciu de la cuenta - delete_account_html: Si deseyes desaniciar la to cuenta, pues siguir equí. Va pidísete la confirmación. + delete_account_html: Si quies desaniciar la cuenta, pues facelo equí. Va pidísete que confirmes l'aición. description: suffix: "¡Con una cuenta, vas ser a siguir a persones, espublizar anovamientos ya intercambiar mensaxes con usuarios de cualesquier sirvidor de Mastodon y más!" didnt_get_confirmation: "¿Nun recibiesti les instrucciones de confirmación?" dont_have_your_security_key: "¿Nun tienes una clave de seguranza?" forgot_password: "¿Escaeciesti la contraseña?" - login: Aniciar sesión + login: Aniciar la sesión migrate_account: Mudase a otra cuenta migrate_account_html: Si deseyes redirixir esta cuenta a otra, pues configuralo equí. providers: @@ -185,7 +150,6 @@ ast: saml: SAML register: Rexistrase security: Seguranza - trouble_logging_in: "¿Tienes problemes col aniciu de sesión?" authorize_follow: already_following: Yá tas siguiendo a esta cuenta already_requested: Yá unviesti una solicitú de siguimientu a esa cuenta @@ -213,10 +177,6 @@ ast: warning: email_contact_html: Si entá nun aportó, pues unviar un corréu a%{email} pa más ayuda more_details_html: Pa más detalles, mira la política de privacidá. - directories: - directory: Direutoriu de perfiles - explanation: y descubri a usuarios según los sos intereses - explore_mastodon: Esplora %{title} disputes: strikes: appeal_rejected: Refugóse l'apellación @@ -248,6 +208,7 @@ ast: storage: Almacenamientu multimedia featured_tags: add_new: Amestar + hint_html: "¿Qué son les etiquetes destacaes? Apaecen de forma bien visible nel perfil públicu y permite que les persones restolen los tos artículos públicos per duana d'eses etiquetes. Son una gran ferramienta pa tener un rexistru de trabayos creativos o de proyeutos a plazu llongu." filters: contexts: notifications: Avisos @@ -258,10 +219,6 @@ ast: title: Peñeres new: title: Amestar una peñera nueva - footer: - developers: Desendolcadores - more: Más… - resources: Recursos generic: all: Too changes_saved_msg: "¡Los cambeos guardáronse correutamente!" @@ -281,7 +238,6 @@ ast: following: Llista de siguidores muting: Llista de xente silenciao upload: Xubir - in_memoriam_html: N'alcordanza. invites: delete: Desactivar expired: Caducó @@ -317,9 +273,6 @@ ast: warning: followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva notification_mailer: - digest: - body: Equí hai un resume de los mensaxes que nun viesti dende la última visita'l %{since} - mention: "%{name} mentóte en:" favourite: title: Favoritu nuevu follow: @@ -336,9 +289,20 @@ ast: body: "%{name} compartió'l to estáu:" subject: "%{name} compartió'l to estáu" title: Compartición nueva de barritu + update: + subject: "%{name} editó un artículu" notifications: email_events_hint: 'Esbilla los eventos de los que quies recibir avisos:' other_settings: Otros axustes + number: + human: + decimal_units: + units: + billion: MM + million: M + quadrillion: mil B + thousand: mil + trillion: B pagination: next: Siguiente polls: @@ -348,34 +312,19 @@ ast: invalid_choice: La opción de votu escoyida nun esiste preferences: public_timelines: Llinies temporales públiques + privacy_policy: + title: Política de privacidá relationships: activity: Actividá followers: Siguidores most_recent: Lo más recién relationship: Rellación - remove_selected_follows: Dexar de siguir a los usuarios esbillaos + remove_selected_follows: Dexar de siguir a los usuarios seleicionaos status: Estáu - remote_follow: - acct: Introduz el nome_usuariu@dominiu dende'l que lo quies facer - no_account_html: "¿Nun tienes una cuenta? Pues rexistrate equí" - proceed: Siguir - prompt: 'Vas siguir a:' - reason_html: "¿Por qué esti pasu ye precisu? %{instance} seique nun seya'l sirvidor onde tas rexistráu, polo que precisamos redirixite primero al de to." - remote_interaction: - favourite: - proceed: Siguir - prompt: 'Quies marcar esti barritu como favoritu:' - reblog: - proceed: Siguir - prompt: 'Quies compartir esti barritu:' - reply: - proceed: Siguir - prompt: 'Quies responder a esti barritu:' sessions: browser: Restolador browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -386,7 +335,6 @@ ast: opera: Opera otter: Otter phantom_js: PhantomJS - uc_browser: UCBrowser weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" @@ -394,8 +342,6 @@ ast: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: GNU/Linux @@ -452,7 +398,6 @@ ast: visibilities: private: Namái siguidores private_long: Namái s'amuesen a los siguidores - public_long: Tol mundu puen velos unlisted: Nun llistar unlisted_long: Tol mundu puen velos pero nun se llisten nes llinies temporales públiques statuses_cleanup: @@ -473,8 +418,8 @@ ast: does_not_match_previous_name: nun concasa col nome anterior themes: contrast: Contraste altu - default: Mastodon - mastodon-light: Claridá + default: Mastodon (escuridá) + mastodon-light: Mastodon (claridá) two_factor_authentication: disable: Desactivar enabled: L'autenticación en dos pasos ta activada @@ -493,13 +438,12 @@ ast: none: Alvertencia suspend: Cuenta suspendida welcome: - full_handle_hint: Esto ye lo que-yos diríes a los collacios pa que puean unviate mensaxes o siguite dende otra instancia. subject: Afáyate en Mastodon - tips: Conseyos users: follow_limit_reached: Nun pues siguir a más de %{limit} persones invalid_otp_token: El códigu nun ye válidu otp_lost_help_html: Si pierdes l'accesu, contauta con %{email} seamless_external_login: Aniciesti sesión pente un serviciu esternu, polo que los axustes de la contraseña y corréu nun tán disponibles. verification: + explanation_html: 'Pues verificate como la persona propietaria de los enllaces nos metadatos del to perfil. Pa ello, el sitiu web enllaciáu ha contener un enllaz al to perfil de Mastodon. Esti enllaz ha tener l''atributu rel="me". El testu del enllaz nun importa. Equí tienes un exemplu:' verification: Verificación diff --git a/config/locales/bg.yml b/config/locales/bg.yml index c9e2647878daa9..c0287923fa72fb 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -2,82 +2,25 @@ bg: about: about_mastodon_html: Mastodon е безплатен сървър с отворен код за социални мрежи. Като децентрализирана алтернатива на комерсиалните платформи, той позволява избягването на риска от монополизация на твоята комуникация от единични компании. Изберете си сървър, на който се доверявате, и ще можете да контактувате с всички останали. Всеки може да пусне Mastodon и лесно да вземе участие в социалната мрежа. - about_this: За тази инстанция - active_count_after: активно - active_footnote: Месечни активни потребители (МАП) - administered_by: 'Администрирано от:' - api: API - apps: Мобилни приложения - apps_platforms: Използвайте Mastodon от iOS, Android и други платформи - browse_directory: Разгледайте профилна директория и филтрирайте по интереси - browse_local_posts: Разгледайте поток от публични публикации на живо от този сървър - browse_public_posts: Разгледайте поток от публични публикации на живо в Mastodon - contact: За контакти contact_missing: Не е зададено contact_unavailable: Не е приложимо - discover_users: Открийте потребители - documentation: Документация - federation_hint_html: С акаунт в %{instance} ще можете да последвате хората от всеки сървър на Mastodon и отвъд. - get_apps: Опитайте мобилно приложение hosted_on: Mastodon е хостван на %{domain} - learn_more: Още информация - privacy_policy: Политика за поверителност - see_whats_happening: Вижте какво се случва - server_stats: 'Сървърна статистика:' - source_code: Програмен код - status_count_after: - one: състояние - other: състояния - status_count_before: Написали - tagline: Следвайте приятели и открийте нови - terms: Условия за ползване - unavailable_content: Модерирани сървъри - unavailable_content_description: - domain: Сървър - reason: Причина - rejecting_media: 'Мултимедийните файлове от тези сървъри няма да бъдат обработени или съхранени и няма да бъдат показани миниатюри, което ще изисква ръчно щракване върху оригиналния файл:' - rejecting_media_title: Филтрирана мултимедия - silenced: 'Публикациите от тези сървъри ще бъдат скрити в обществени емисии и разговори и няма да се генерират известия от взаимодействията на потребителите им, освен ако не ги следвате:' - silenced_title: Заглушени сървъри - suspended: 'Никакви данни от тези сървъри няма да бъдат обработвани, съхранявани или обменяни, което прави невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри:' - suspended_title: Спрени сървъри - user_count_after: - one: потребител - other: потребители - user_count_before: Дом на - what_is_mastodon: Какво е Mastodon? + title: Относно accounts: - choices_html: 'Избори на %{name}:' - endorsements_hint: Можете да подкрепите хората, които следите, от уеб интерфейса и те ще се покажат тук. - featured_tags_hint: Можете да представите конкретни хаштагове, които ще се показват тук. follow: Последвай followers: one: Последовател other: Последователи following: Следва - joined: Присъединил се на %{date} last_active: последна дейност link_verified_on: Собствеността върху тази връзка е проверена на %{date} - media: Мултимедия - moved_html: "%{name} се премести в %{new_profile_link}:" - network_hidden: Тази информация не е налична nothing_here: Тук няма никого! - people_followed_by: Хора, които %{name} следва - people_who_follow: Хора, които следват %{name} pin_errors: following: Трябва вече да следвате човека, когото искате да подкрепите posts: one: Публикация other: Публикации posts_tab_heading: Публикации - posts_with_replies: Публикации и отговори - roles: - admin: Админ - bot: Бот - group: Група - moderator: Мод - unavailable: Профилът не е наличен - unfollow: Не следвай admin: account_actions: action: Изпълняване на действие @@ -91,15 +34,21 @@ bg: avatar: Аватар by_domain: Домейн change_email: - changed_msg: Имейлът на акаунта беше успешно променен! + changed_msg: Успешно променен имейл! current_email: Текущ имейл label: Промяна на имейл new_email: Нов имейл submit: Промяна на имейл title: Промяна на имейл за %{username} + change_role: + changed_msg: Успешно променена роля! + label: Промяна на ролята + no_role: Няма роля + title: Промяна на ролята за %{username} confirm: Потвърждаване confirmed: Потвърдено confirming: Потвърждаване + custom: Потребителско delete: Изтриване на данни deleted: Изтрито demote: Понижаване @@ -114,6 +63,8 @@ bg: email_status: Състояние на имейл enable: Размразяване enabled: Включено + enabled_msg: Успешно размразяване на акаунта на %{username} + followers: Последователи follows: Последвания header: Заглавна част inbox_url: Входящ URL @@ -132,6 +83,7 @@ bg: active: Активно all: Всичко pending: Чакащо + silenced: Ограничено suspended: Спряно title: Модерация moderation_notes: Модераторни бележки @@ -139,6 +91,7 @@ bg: most_recent_ip: Последен IP no_account_selected: Нито един акаунт не е променен, тъй като нито един не е избран no_limits_imposed: Няма наложени ограничения + no_role_assigned: Няма поставена роля not_subscribed: Без абонамент pending: Изчаква преглед perform_full_suspension: Спиране @@ -151,10 +104,36 @@ bg: rejected_msg: Успешно отхвърлена заявка за регистрация на %{username} remove_avatar: Премахване на аватар remove_header: Премахване на заглавна част + resend_confirmation: + already_confirmed: Този потребител вече е потвърден + reset: Нулиране + reset_password: Нулиране на паролата + resubscribe: Абониране пак + role: Роля + search: Търсене + search_same_email_domain: Други потребители със същия домейн за имейл + search_same_ip: Други потребители със същия IP + security_measures: + only_password: Само парола + password_and_2fa: Парола и двуфакторно удостоверяване + sensitized: Отбелязано като деликатно съдържание + shared_inbox_url: URL адрес на споделена входяща кутия + show: + created_reports: Докладвания + targeted_reports: Докладвано от други + silence: Ограничение + silenced: Ограничено + statuses: Публикации + subscribe: Абониране + suspend: Спиране + suspended: Спряно + title: Акаунти + unconfirmed_email: Непотвърден имейл unsubscribe: Отписване username: Потребителско име warn: Предупреждение web: Уеб + whitelisted: Позволено за федерацията action_logs: action_types: confirm_user: Потвърждаване на потребител @@ -162,10 +141,14 @@ bg: create_announcement: Създаване на оповестяване create_custom_emoji: Създаване на персонализирано емоджи create_ip_block: Създаване на IP правило + create_user_role: Създаване на роля demote_user: Понижаване на потребител destroy_announcement: Изтриване на оповестяване destroy_custom_emoji: Изтриване на персонализирано емоджи + destroy_ip_block: Изтриване на правило за IP destroy_status: Изтриване на статус + destroy_unavailable_domain: Изтриване на неналичен домейн + destroy_user_role: Унищожаване на роля disable_2fa_user: Деактивиране на 2FA disable_custom_emoji: Деактивиране на персонализирано емоджи disable_user: Деактивиране на потребител @@ -175,25 +158,250 @@ bg: remove_avatar_user: Премахване на аватар reopen_report: Повторно отваряне на доклад reset_password_user: Нулиране на парола + deleted_account: изтрит акаунт + announcements: + live: На живо + publish: Публикуване + custom_emojis: + by_domain: Домейн + copy: Копиране + create_new_category: Създаване на нова категория + created_msg: Успешно сътворено емоджи! + delete: Изтриване + destroyed_msg: Успешно унищожено емоджи! + disable: Изключване + disabled: Изключено + disabled_msg: Успешно изключване на това емоджи + emoji: Емоджи + enable: Включване + enabled: Включено + enabled_msg: Успешно включване на това емоджи + image_hint: PNG или GIF до %{size} + list: Списък + listed: В списъка + new: + title: Добавяне на ново потребителско емоджи + not_permitted: Нямате право да извършвате това действие + overwrite: Презаписване + shortcode: Кратък код + shortcode_hint: Поне 2 символа, само азбучно-цифрови символи и долни черти + title: Потребителски емоджита + uncategorized: Некатегоризирано + update_failed_msg: Не може да се обнови това емоджи + updated_msg: Успешно осъвременено емоджи! + upload: Качване + dashboard: + active_users: дейни потребители + interactions: взаимодействия + media_storage: Мултимедийно хранилище + new_users: нови потребители + opened_reports: отворени доклади + resolved_reports: разрешени доклади + software: Софтуер + space: Използвано пространство + title: Табло за управление + top_languages: Водещи дейни езици + top_servers: Водещи дейни сървъри + website: Уебсайт + disputes: + appeals: + empty: Няма намерени обжалвания. + title: Жалби + domain_blocks: + domain: Домейн + new: + severity: + silence: Тишина + private_comment: Личен коментар + private_comment_hint: Коментирането за това ограничение на домейна за вътрешна употреба от модераторите. + email_domain_blocks: + title: Блокирани домейни на имейл + follow_recommendations: + language: За език + status: Състояние + instances: + by_domain: Домейн + content_policies: + policies: + silence: Ограничение + policy: Политика + dashboard: + instance_languages_dimension: Водещи езици + delivery: + clear: Изчистване на грешките за доставка + restart: Рестартиране на доставката + stop: Спиране на доставката + unavailable: Неналично + delivery_available: Доставката е налична + delivery_error_days: Грешни дни на доставяне + empty: Няма намерени домейни. + moderation: + all: Всичко + title: Федерация + total_blocked_by_us: Блокирано от нас + total_followed_by_them: Последвани от тях + total_followed_by_us: Последвано от нас + invites: + deactivate_all: Деактивиране на всички + filter: + all: Всичко + available: Налично + expired: Изтекло + title: Филтър + title: Покани + ip_blocks: + add_new: Създаване на правило + delete: Изтриване + expires_in: + '1209600': 2 седмици + '15778476': 6 месеца + '2629746': 1 месец + '31556952': 1 година + '86400': 1 ден + '94670856': 3 години + relationships: + title: Отношения на %{acct} + relays: + delete: Изтриване + disable: Изключване + disabled: Изключено + enable: Включване + enabled: Включено + status: Състояние + report_notes: + today_at: Днес от %{time} + reports: + are_you_sure: Сигурни ли сте? + category: Категория + created_at: Докладвано + forwarded: Препратено + forwarded_to: Препратено до %{domain} + notes: + create: Добавяне на бележка + delete: Изтриване + title: Бележки + reopen: Отваряне пак на доклад + reported_account: Докладван акаунт + reported_by: Докладвано от + resolved: Разрешено + status: Състояние + statuses: Докладвано съдържание + updated_at: Обновено + view_profile: Преглед на профила + roles: + add_new: Добавяне на роля + categories: + administration: Администрация + invites: Покани + moderation: Mодериране + delete: Изтриване + privileges: + administrator: Администратор + manage_invites: Управление на поканите + manage_reports: Управление на докладите + manage_roles: Управление на ролите + title: Роли + rules: + add_new: Добавяне на правило + delete: Изтриване + edit: Промяна на правило + empty: Още няма определени правила на сървъра. + title: Правила на сървъра + settings: + about: + manage_rules: Управление на правилата на сървъра + appearance: + title: Външен вид + registrations: + title: Регистрации + title: Настройки на сървъра + statuses: + account: Автор + application: Приложение + back_to_account: Назад към страницата на акаунта + back_to_report: Назад към страницата на доклада + batch: + remove_from_report: Премахване от доклада + report: Докладване + deleted: Изтрито + favourites: Любими + history: История на версиите + language: Език + media: + title: Мултимедия + metadata: Метаданни + open: Отваряне на публикация + original_status: Първообразна публикация + visibility: Видимост + trends: + tags: + dashboard: + tag_accounts_measure: неповторими употреби + tag_languages_dimension: Водещи езици + tag_servers_dimension: Водещи сървъри + tag_servers_measure: различни сървъри + tag_uses_measure: обща употреба + not_usable: Не може да се използва + usable: Може да се употребява + warning_presets: + delete: Изтриване + webhooks: + delete: Изтриване + events: Събития + status: Състояние + title: Уебкуки + admin_mailer: + new_appeal: + actions: + none: предупреждение + appearance: + localization: + body: Mastodon е преведено от доброволци. + guide_link: https://ru.crowdin.com/project/mastodon + guide_link_text: Всеки може да допринася. + sensitive_content: Деликатно съдържание application_mailer: + notification_preferences: Промяна на предпочитанията за имейл settings: 'Промяна на предпочитанията за e-mail: %{link}' view: 'Преглед:' - applications: - invalid_url: Предоставеният URL е невалиден + view_profile: Преглед на профила + view_status: Преглед на публикацията auth: + apply_for_account: Вземане в спсисъка за чакане + change_password: Парола + delete_account: Изтриване на акаунта didnt_get_confirmation: Не получих инструкции за потвърждение forgot_password: Забравих си паролата login: Влизане logout: Излизане register: Регистрация + registration_closed: "%{instance} не приема нови членуващи" resend_confirmation: Изпрати отново инструкции за потвърждение reset_password: Подновяване на паролата - security: Идентификационни данни - set_new_password: Задай нова парола + security: Сигурност + set_new_password: Задаване на нова парола + setup: + title: Настройка + status: + account_status: Състояние на акаунта authorize_follow: + already_following: Вече следвате този акаунт error: Възникна грешка в откриването на потребителя follow: Последвай + follow_request: 'Изпратихте следната заявка до:' + post_follow: + close: Или просто затворете този прозорец. + return: Показване на профила на потребителя + web: Към мрежата title: Последвай %{acct} + challenge: + confirm: Продължаване + invalid_password: Невалидна парола + prompt: Потвърдете паролата, за да продължите + date: + formats: + default: "%b %d, %Y" + with_month_name: "%B %d, %Y" datetime: distance_in_words: about_x_hours: "%{count} ч." @@ -208,86 +416,334 @@ bg: x_minutes: "%{count} мин" x_months: "%{count} м" x_seconds: "%{count} сек" + deletes: + challenge_not_passed: Въвели сте неправилна информация + confirm_username: Въведете потребителското си име, за да потвърдите процедурата + proceed: Изтриване на акаунта + success_msg: Вашият акаунт е успешно изтрит + warning: + before: 'Прочетете внимателно тези бележки преди да продължите:' + data_removal: Ваши публикации и други данни ще бъдат завинаги премахнати + username_available: Вашето потребителско име ще стане налично отново + username_unavailable: Вашето потребителско име ще остане неналично + disputes: + strikes: + title: "%{action} от %{date}" + title_actions: + none: Предупреждение errors: '400': The request you submitted was invalid or malformed. - '403': You don't have permission to view this page. - '404': The page you are looking for isn't here. + '403': Нямате позволение да разгледате тази страница. + '404': Търсената от вас страница не е тук. '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. - '422': - '429': Too many requests - '500': + '422': + title: Неуспешна проверка за сигурност + '429': Премного заявки + '500': + title: Страницата не е правилна '503': The page could not be served due to a temporary server failure. exports: + archive_takeout: + date: Дата + download: Изтегляне на архива ви + size: Размер blocks: Вашите блокирания + bookmarks: Отметки + lists: Списъци storage: Съхранение на мултимедия + filters: + contexts: + account: Профили + notifications: Известия + thread: Разговори + edit: + add_keyword: Добавяне на ключова дума + keywords: Ключови думи + statuses: Отделни публикации + title: Редактиране на филтър + index: + delete: Изтриване + empty: Нямате филтри. + keywords: + one: "%{count} ключова дума" + other: "%{count} ключови думи" + statuses: + one: "%{count} публикация" + other: "%{count} публикации" + title: Филтри + new: + save: Запазване на нов филтър + title: Добавяне на нов филтър + statuses: + back_to_filter: Обратно към филтъра + batch: + remove: Премахване от филтъра + index: + title: Филтрирани публикации generic: + all: Всичко changes_saved_msg: Успешно запазване на промените! + copy: Копиране + delete: Изтриване + none: Нищо + order_by: Подреждане по save_changes: Запази промените + today: днес imports: + modes: + overwrite: Презаписване + overwrite_long: Заменя текущите записи с новите preface: Можеш да импортираш някои данни, като например всички хора, които следваш или блокираш в акаунта си на тази инстанция, от файлове, създадени чрез експорт в друга инстанция. success: Твоите данни бяха успешно качени и ще бъдат обработени впоследствие types: blocking: Списък на блокираните + bookmarks: Отметки following: Списък на последователите upload: Качване + invites: + delete: Деактивиране + expired: Изтекло + expires_in: + '1800': 30 минути + '21600': 6 часа + '3600': 1 час + '43200': 12 часа + '604800': 1 седмица + '86400': 1 ден + expires_in_prompt: Никога + generate: Поражда връзка за покана + invited_by: 'Бяхте поканени от:' + max_uses: + one: 1 употреба + other: "%{count} употреби" + max_uses_prompt: Без ограничение + title: Поканете хора + login_activities: + authentication_methods: + password: парола + webauthn: ключове за сигурност + empty: Няма налична история на удостоверяване + title: Историята на удостоверяване media_attachments: validations: images_and_video: Не мога да прикача видеоклип към публикация, която вече съдържа изображения too_many: Не мога да прикача повече от 4 файла + migrations: + past_migrations: Минали миграции + redirected_msg: Вашият акаунт сега се пренасочва към %{acct}. + redirecting_to: Вашият акаунт е пренасочен към %{acct}. + set_redirect: Задаване на пренасочване + moderation: + title: Mодериране notification_mailer: - digest: - body: Ето кратко резюме на нещата, които се случиха от последното ти посещение на %{since} - mention: "%{name} те спомена в:" - new_followers_summary: - one: Имаш един нов последовател! Ура! - other: Имаш %{count} нови последователи! Изумително! favourite: body: 'Публикацията ти беше харесана от %{name}:' subject: "%{name} хареса твоята публикация" + title: Ново любимо follow: body: "%{name} те последва!" subject: "%{name} те последва" + title: Нов последовател follow_request: body: "%{name} помоли за разрешение да те последва" subject: 'Чакащ последовател: %{name}' mention: + action: Отговор body: "%{name} те спомена в:" subject: "%{name} те спомена" + title: Ново споменаване reblog: body: 'Твоята публикация беше споделена от %{name}:' subject: "%{name} сподели публикацията ти" + notifications: + email_events_hint: 'Изберете събития, за които искате да получавате известия:' + other_settings: Настройки за други известия + number: + human: + decimal_units: + format: "%n %u" + units: + billion: млрд + million: млн + quadrillion: квдрлн + thousand: хил + trillion: трлн + otp_authentication: + enable: Включване pagination: next: Напред prev: Назад + polls: + errors: + expired: Анкетата вече е приключила + preferences: + other: Друго + privacy_policy: + title: Политика за поверителност + relationships: + activity: Дейност на акаунта + followers: Последователи + invited: С покана + last_active: Последна дейност + most_recent: Най-наскоро + moved: Преместено + remove_selected_domains: Премахване на всички последователи от избраните домейни + remove_selected_followers: Премахване на избраните последователи + remove_selected_follows: Стоп на следването на избраните потребители + status: Състояние на акаунта remote_follow: - acct: Въведи потребителско_име@домейн, от които искаш да следваш missing_resource: Неуспешно търсене на нужния URL за пренасочване за твоя акаунт - proceed: Започни следване - prompt: 'Ще последваш:' + rss: + descriptions: + account: Публични публикации от @%{acct} + sessions: + activity: Последна активност + browser: Браузър + browsers: + alipay: Alipay + chrome: Chrome + edge: Edge на Майкрософт + electron: Electron + firefox: Firefox + generic: Неизвестен браузър + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Браузър Nokia S40 Ovi + opera: Опера + otter: Otter + phantom_js: PhantomJS + qq: Браузър QQ + safari: Сафари + weibo: Weibo + current_session: Текуща сесия + description: "%{browser} на %{platform}" + ip: IP адрес + platforms: + adobe_air: Adobe Air + android: Android + firefox_os: Оп. сист. Firefox + ios: iOS + linux: Линукс + mac: macOS + other: неизвестна платформа + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + title: Сесии + view_authentication_history: Преглед на историята на удостоверяване на акаунта ви settings: + account: Акаунт + account_settings: Настройки на акаунта + appearance: Външен вид authorized_apps: Упълномощени приложения back: Обратно към Mastodon + delete: Изтриване на акаунта + development: Развой edit_profile: Редактирай профила си export: Експортиране на данни import: Импортиране + import_and_export: Внос и износ + migrate: Миграция на акаунта + notifications: Известия preferences: Предпочитания + profile: Профил + relationships: Последвания и последователи two_factor_authentication: Двустепенно удостоверяване + webauthn_authentication: Ключове за сигурност statuses: + attached: + audio: + one: "%{count} звукозапис" + other: "%{count} звукозаписа" + image: + one: "%{count} образ" + other: "%{count} образа" + video: + one: "%{count} видео" + other: "%{count} видеозаписа" + default_language: Същият като езика на интерфейса open_in_web: Отвори в уеб over_character_limit: прехвърлен лимит от %{max} символа + poll: + vote: Гласуване show_more: Покажи повече visibilities: private: Покажи само на последователите си public: Публично unlisted: Публично, но не показвай в публичния канал + statuses_cleanup: + enabled: Автоматично изтриване на стари публикации + exceptions: Изключения + ignore_favs: Пренебрегване на любими + keep_pinned: Държа на закачените публикации + min_age: + '1209600': 2 седмици + '15778476': 6 месеца + '2629746': 1 месец + '31556952': 1 година + '5259492': 2 месеца + '604800': 1 седмица + '63113904': 2 години + '7889238': 3 месеца + min_age_label: Възрастов праг stream_entries: + pinned: Закачена публикация reblogged: споделено sensitive_content: Деликатно съдържание + themes: + contrast: Mastodon (висок контраст) + default: Mastodon (тъмно) + mastodon-light: Mastodon (светло) time: formats: default: "%d %b, %Y, %H:%M" + month: "%b %Y" + time: "%H:%M" two_factor_authentication: + add: Добавяне disable: Деактивирай + edit: Редактиране + enabled: Двуфакторното удостоверяване е включено + enabled_success: Двуфакторното удостоверяване е успешно включено + methods: Двуфакторни начини + webauthn: Ключове за сигурност + user_mailer: + appeal_approved: + action: Към акаунта ви + backup_ready: + subject: Вашият архив е готов за изтегляне + warning: + categories: + spam: Спам + reason: 'Причина:' + statuses: 'Цитирани публ.:' + subject: + delete_statuses: Ваши публикации в %{acct} са били премахнати + title: + delete_statuses: Публикацията е премахната + disable: Акаунтът е замразен + mark_statuses_as_sensitive: Публикацията отбелязана като деликатна + none: Предупреждение + welcome: + edit_profile_action: Настройване на профила + explanation: Ето няколко стъпки за начало + subject: Добре дошли в Mastodon + title: Добре дошли на борда, %{name}! users: + follow_limit_reached: Не може да последвате повече от %{limit} души invalid_otp_token: Невалиден код + verification: + verification: Проверка + webauthn_credentials: + add: Добавяне на нов ключ за сигурност + create: + error: Възникна проблем, добавяйки ключ за сигурност. Опитайте пак. + success: Вашият ключ за сигурност беше добавен успешно. + delete: Изтриване + destroy: + error: Възникна проблем, изтривайки ключа си за сигурност. Опитайте пак. + success: Вашият ключ за сигурност беше изтрит успешно. + invalid_credential: Невалиден ключ за сигурност + not_supported: Този браузър не поддържа ключове за сигурност + otp_required: Първо включете двуфакторното удостоверяване, за да използвате ключовете за сигурност. diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 20a99fd2fc567d..5a40fad8f38ab0 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -1,86 +1,25 @@ --- bn: about: - about_hashtag_html: এগুলো প্রকাশ্য লেখা যার হ্যাশট্যাগ #%{hashtag}। আপনি এগুলোর ব্যবহার বা সাথে যুক্ত হতে পারবেন যদি আপনার যুক্তবিশ্বের কোথাও নিবন্ধন থেকে থাকে। about_mastodon_html: মাস্টাডন উন্মুক্ত ইন্টারনেটজালের নিয়ম এবং স্বাধীন ও মুক্ত উৎসের সফটওয়্যারের ভিত্তিতে তৈরী একটি সামাজিক যোগাযোগ মাধ্যম। এটি ইমেইলের মত বিকেন্দ্রীভূত। - about_this: কি - active_count_after: চালু - active_footnote: মাসিক সক্রিয় ব্যবহারকারী - administered_by: 'পরিচালনা করছেন:' - api: সফটওয়্যার তৈরীর নিয়ম (API) - apps: মোবাইল অ্যাপ - apps_platforms: মাস্টাডন আইওএস, এন্ড্রোইড বা অন্য মাধ্যমে ব্যবহার করুন - browse_directory: একটি ব্যবহারকারীদের তালিকা দেখুন এবং পছন্দ অনুসারে খুজুন - browse_local_posts: এই সার্ভার থেকে সর্বজনীন পোস্টগুলির একটি লাইভ স্ট্রিম ব্রাউজ করুন - browse_public_posts: মাস্টাডনে নতুন প্রকাশ্য লেখাগুলো সরাসরি দেখুন - contact: যোগাযোগ contact_missing: নেই contact_unavailable: প্রযোজ্য নয় - discover_users: ব্যবহারকারীদের দেখুন - documentation: ব্যবহারবিলি - federation_hint_html: "%{instance}তে একটা নিবন্ধন থাকলে আপনি যেকোনো মাস্টাডন বা এধরণের অন্যান্য সার্ভারের মানুষের সাথে যুক্ত হতে পারবেন ।" - get_apps: মোবাইল এপ্প একটা ব্যবহার করতে পারেন hosted_on: এই মাস্টাডনটি আছে %{domain} এ - instance_actor_flash: "এই অ্যাকাউন্টটি ভার্চুয়াল এক্টর যা নিজে কোনও সার্ভারের প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং কোনও পৃথক ব্যবহারকারী নয়। এটি ফেডারেশনের উদ্দেশ্যে ব্যবহৃত হয় এবং আপনি যদি পুরো ইনস্ট্যান্স ব্লক করতে না চান তবে অবরুদ্ধ করা উচিত নয়, সেক্ষেত্রে আপনার ডোমেন ব্লক ব্যবহার করা উচিত। \n" - learn_more: বিস্তারিত জানুন - privacy_policy: গোপনীয়তা নীতি - see_whats_happening: কী কী হচ্ছে দেখুন - server_stats: 'সার্ভারের অবস্থা:' - source_code: আসল তৈরীপত্র - status_count_after: - one: অবস্থা - other: স্থিতিগুলি - status_count_before: কে লিখেছে - tagline: পরিচিতজনদের সাথে যুক্ত হন এবং নতুনদের সাথে পরিচিত হন - terms: ব্যবহারের শর্তাবলী - unavailable_content: অনুপলব্ধ সামগ্রী - unavailable_content_description: - domain: সার্ভার - reason: কারণ - rejecting_media: 'এই সার্ভারগুলি থেকে মিডিয়া ফাইলগুলি প্রক্রিয়া করা বা সংরক্ষণ করা হবে না এবং কোনও থাম্বনেইল প্রদর্শিত হবে না, মূল ফাইলটিতে ম্যানুয়াল ক্লিক-মাধ্যমে প্রয়োজন:' - rejecting_media_title: ফিল্টার করা মিডিয়া - silenced: 'এই সার্ভারগুলির পোস্টগুলি জনসাধারণের টাইমলাইন এবং কথোপকথনে লুকানো থাকবে এবং আপনি যদি তাদের অনুসরণ না করেন তবে তাদের ব্যবহারকারীর ইন্টারঅ্যাকশন থেকে কোনও বিজ্ঞপ্তি উত্পন্ন হবে না:' - silenced_title: নীরব করা সার্ভার - suspended: 'এই সার্ভারগুলি থেকে কোনও ডেটা প্রক্রিয়াজাতকরণ, সংরক্ষণ বা আদান-প্রদান করা হবে না, এই সার্ভারগুলির ব্যবহারকারীদের সাথে কোনও মিথস্ক্রিয়া বা যোগাযোগকে অসম্ভব করে তুলেছে:' - suspended_title: স্থগিত করা সার্ভার - unavailable_content_html: ম্যাস্টোডন সাধারণত আপনাকে ফেদিভার্স এ অন্য কোনও সার্ভারের ব্যবহারকারীদের থেকে সামগ্রী দেখতে এবং তাদের সাথে আলাপচারিতা করার অনুমতি দেয়। এই ব্যতিক্রম যে এই বিশেষ সার্ভারে তৈরি করা হয়েছে। - user_count_after: - one: ব্যবহারকারী - other: জনের - user_count_before: বাসা - what_is_mastodon: মাস্টাডনটি কি ? accounts: - choices_html: "%{name} বাছাই:" - endorsements_hint: আপনি ওয়েব ইন্টারফেস থেকে অনুসরণ করা লোকেদের প্রচার করতে পারেন এবং তারা এখানে প্রদর্শিত হবে। - featured_tags_hint: আপনি এখানে নির্দিষ্ট হ্যাশট্যাগগুলি বৈশিষ্ট্যযুক্ত করতে পারেন যেটা এখানে প্রদর্শিত হবে। follow: যুক্ত followers: one: যুক্ত আছে other: যারা যুক্ত হয়েছে following: যুক্ত করা - joined: যোগদান হয় %{date} last_active: শেষ সক্রিয় ছিল link_verified_on: এই লিংকের মালিকানা শেষ চেক করা হয় %{date} তারিখে - media: ছবি বা ভিডিও - moved_html: "%{name} চলে গেছে %{new_profile_link} তে:" - network_hidden: এই তথ্যটি নেই nothing_here: এখানে কিছুই নেই! - people_followed_by: "%{name} যাদেরকে অনুসরণ করে" - people_who_follow: যারা %{name} কে অনুসরণ করে pin_errors: following: সমর্থন করতে অনুসরণ থাকা লাগবে posts: one: লেখা other: লেখাগুলো posts_tab_heading: লেখাগুলো - posts_with_replies: লেখা এবং মতামত - roles: - admin: পরিচালক - bot: রোবট - group: গোষ্ঠী - moderator: পরিচালক - unavailable: প্রোফাইল অনুপলব্ধ - unfollow: অনুসরণ বাদ admin: account_actions: action: করা @@ -96,7 +35,6 @@ bn: avatar: অবতার by_domain: ওয়েবসাইট/কার্যক্ষেত্র change_email: - changed_msg: নিবন্ধনের ইমেইল সঠিকভাবে পরিবর্তন হয়েছে! current_email: এখনকার ইমেইল label: ইমেইল পরিবর্তন new_email: নতুন ইমেইল @@ -161,12 +99,6 @@ bn: reset: পুনরায় সেট করুন reset_password: পাসওয়ার্ড পুনঃস্থাপন করুন resubscribe: পুনরায় সদস্যতা নিন - role: অনুমতিসমূহ - roles: - admin: পরিচালক - moderator: নিয়ামক - staff: কর্মী - user: ব্যবহারকারী search: অনুসন্ধান search_same_email_domain: একই ইমেল ডোমেন সহ অন্যান্য ব্যবহারকারীরা search_same_ip: একই IP সহ অন্যান্য ব্যবহারকারীরা diff --git a/config/locales/br.yml b/config/locales/br.yml index 07e12a5312729b..e7bc88eab1467d 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -1,32 +1,7 @@ --- br: about: - about_this: Diàr-benn - active_count_after: oberiant - api: API - apps: Arloadoù pellgomz - apps_platforms: Ober get Mastodoñ àr iOS, Android ha savennoù arall - contact: Darempred - discover_users: Dizoleiñ implijer·ien·ezed - learn_more: Gouzout hiroc'h - privacy_policy: Reolennoù prevezded - source_code: Boneg tarzh - status_count_after: - few: toud - many: toud - one: toud - other: toud - two: toud - terms: Divizoù gwerzhañ hollek - unavailable_content_description: - domain: Dafariad - user_count_after: - few: implijer·ez - many: implijer·ez - one: implijer·ez - other: implijer·ez - two: implijer·ez - what_is_mastodon: Petra eo Mastodon? + title: Diwar-benn accounts: follow: Heuliañ followers: @@ -35,31 +10,32 @@ br: one: Heulier·ez other: Heulier·ez two: Heulier·ez - following: O heuliañ + following: Koumanantoù + last_active: oberiantiz ziwezhañ + nothing_here: N'eus netra amañ ! posts: - few: Toud - many: Toud - one: Toud - other: Toud - two: Toud - posts_tab_heading: Toudoù - posts_with_replies: Toudoù ha respontoù - roles: - admin: Merour - bot: Robot - group: Strollad - unavailable: Profil dihegerz - unfollow: Diheuliañ + few: Kannadoù + many: Kannadoù + one: Kannad + other: Kannadoù + two: Kannadoù + posts_tab_heading: Kannadoù admin: accounts: + add_email_domain_block: Stankañ an domani postel + approve: Aprouiñ + are_you_sure: Ha sur oc'h? + avatar: Avatar by_domain: Domani change_email: - current_email: Postel bremanel - label: Kemm ar postel + changed_msg: Chomlec'h postel kemmet ! + current_email: Postel a vremañ + label: Kemmañ ar postel new_email: Postel nevez - submit: Kemm ar postel + submit: Kemmañ ar postel deleted: Dilamet domain: Domani + edit: Aozañ email: Postel enable: Gweredekaat enabled: Gweredekaet @@ -78,18 +54,18 @@ br: remove_header: Dilemel an talbenn reset: Adderaouekaat reset_password: Adderaouekaat ar ger-tremen - roles: - admin: Merour - moderator: Habaskaer·ez - user: Implijer·ez search: Klask + statuses: Kannadoù suspended: Astalet title: Kontoù username: Anv action_logs: action_types: - destroy_status: Dilemel ar statud - deleted_status: "(statud dilemet)" + destroy_status: Dilemel ar c'hannad + update_status: Hizivaat ar c'hannad + actions: + destroy_status_html: Dilamet eo bet kannad %{target} gant %{name} + update_status_html: Hizivaet eo bet kannad %{target} gant %{name} announcements: new: create: Sevel ur gemenn @@ -124,6 +100,8 @@ br: create: Ouzhpenniñ un domani instances: by_domain: Domani + dashboard: + instance_statuses_measure: kannadoù stoket moderation: all: Pep tra invites: @@ -146,6 +124,7 @@ br: other: "%{count} a notennoù" two: "%{count} a notennoù" are_you_sure: Ha sur oc'h? + delete_and_resolve: Dilemel ar c'hannadoù notes: delete: Dilemel status: Statud @@ -153,10 +132,15 @@ br: settings: domain_blocks: all: D'an holl dud - site_title: Anv ar servijer - title: Arventennoù al lec'hienn statuses: deleted: Dilamet + open: Digeriñ ar c'hannad + original_status: Kannad orin + status_changed: Kannad kemmet + title: Kannadoù ar gont + strikes: + actions: + delete_statuses: Dilamet eo bet kannadoù %{target} gant %{name} warning_presets: add_new: Ouzhpenniñ unan nevez delete: Dilemel @@ -179,7 +163,7 @@ br: invalid_password: Ger-tremen diwiriek date: formats: - default: "%d %b %Y" + default: "%d a viz %b %Y" with_month_name: "%d a viz %B %Y" datetime: distance_in_words: @@ -194,8 +178,6 @@ br: x_seconds: "%{count}eil" deletes: proceed: Dilemel ar gont - directories: - directory: Roll ar profiloù errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -219,10 +201,16 @@ br: notifications: Kemennoù index: delete: Dilemel + statuses: + few: "%{count} a gannadoù" + many: "%{count} a gannadoù" + one: "%{count} c'hannad" + other: "%{count} a gannadoù" + two: "%{count} gannad" title: Siloù - footer: - developers: Diorroerien - more: Muioc'h… + statuses: + index: + title: Kannadoù silet generic: all: Pep tra copy: Eilañ @@ -243,9 +231,17 @@ br: title: Heulier nevez mention: action: Respont + reblog: + subject: Skignet ho kannad gant %{name} + status: + subject: Embannet ez eus bet traoù gant %{name} + update: + subject: Kemmet eo bet ur c'hannad gant %{name} otp_authentication: enable: Gweredekaat setup: Kefluniañ + preferences: + posting_defaults: Arventennoù embann dre ziouer relationships: followers: Heulier·ezed·ien following: O heuliañ @@ -253,7 +249,6 @@ br: browser: Merdeer browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -267,7 +262,6 @@ br: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo description: "%{browser} war %{platform}" platforms: @@ -293,19 +287,22 @@ br: visibilities: public: Publik stream_entries: - pinned: Toud spilhennet + pinned: Kannad spilhennet themes: default: Mastodoñ (Teñval) mastodon-light: Mastodoñ (Sklaer) time: formats: - default: "%He%M, %d %b %Y" + default: "%d a viz %b %Y, %H:%M" + month: Miz %b %Y + time: "%H:%M" two_factor_authentication: add: Ouzhpennañ disable: Diweredekaat edit: Aozañ user_mailer: warning: + statuses: 'Kannadoù meneget :' title: none: Diwall welcome: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 0017ee42e5e2b1..1652ab8ee93d9b 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1,94 +1,27 @@ --- ca: about: - about_hashtag_html: Aquestes són publicacions públiques etiquetades amb #%{hashtag}. Hi pots interactuar si tens un compte a qualsevol lloc del fedivers. about_mastodon_html: 'La xarxa social del futur: sense anuncis, sense vigilància corporativa, disseny ètic i descentralització. Tingues el control de les teves dades amb Mastodon!' - about_this: Quant a - active_count_after: actiu - active_footnote: Usuaris actius mensuals (UAM) - administered_by: 'Administrat per:' - api: API - apps: Aplicacions mòbils - apps_platforms: Utilitza Mastodon des d'iOS, Android i altres plataformes - browse_directory: Navega pel directori de perfils i filtra segons interessos - browse_local_posts: Navega per una transmissió en directe de les publicacions públiques d’aquest servidor - browse_public_posts: Navega per una transmissió en directe de les publicacions públiques a Mastodon - contact: Contacte contact_missing: No configurat contact_unavailable: N/D - continue_to_web: Continua a l'aplicació web - discover_users: Descobrir usuaris - documentation: Documentació - federation_hint_html: Amb un compte de %{instance}, podràs seguir persones de qualsevol servidor Mastodon i de molts més. - get_apps: Provar una aplicació mòbil hosted_on: Mastodon allotjat a %{domain} - instance_actor_flash: | - Aquest compte és un actor virtual usat per representar el servidor i no qualsevol usuari individual. - Es fa servir per a propòsits de federació i no s'ha de ser bloquejar si no voleu bloquejar tota la instància. En aquest cas, hauríeu d'utilitzar un bloqueig de domini. - learn_more: Aprèn més - logged_in_as_html: Actualment has iniciat sessió com a %{username}. - logout_before_registering: Ja has iniciat sessió. - privacy_policy: Política de privadesa - rules: Normes del servidor - rules_html: 'A continuació, es mostra un resum de les normes que has de seguir si vols tenir un compte en aquest servidor de Mastodon:' - see_whats_happening: Mira què està passant - server_stats: 'Estadístiques del servidor:' - source_code: Codi font - status_count_after: - one: publicació - other: publicacions - status_count_before: Qui ha publicat - tagline: Segueix els teus amics i descobreix-ne de nous - terms: Condicions de servei - unavailable_content: Servidors moderats - unavailable_content_description: - domain: Servidor - reason: Motiu - rejecting_media: 'Els arxius multimèdia d''aquests servidors no seran processats ni emmagatzemats. No es mostrarà cap miniatura i caldrà fer clic en l''arxiu original:' - rejecting_media_title: Arxius multimèdia filtrats - silenced: 'Les publicacions d''aquests servidors s''ocultaran en les línies de temps públiques i en les converses. No es generarà cap notificació de les interaccions dels seus usuaris, tret que els segueixis:' - silenced_title: Servidors limitats - suspended: 'No es processaran, emmagatzemaran ni s''intercanviaran dades d''aquests servidors i serà impossible interactuar o comunicar-se amb els usuaris d''aquests servidors:' - suspended_title: Servidors suspesos - unavailable_content_html: En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular. - user_count_after: - one: usuari - other: usuaris - user_count_before: Tenim - what_is_mastodon: Què és Mastodon? + title: Quant a accounts: - choices_html: 'Eleccions de %{name}:' - endorsements_hint: Pots recomanar persones que segueixes des de la interfície de web i apareixeran aquí. - featured_tags_hint: Pots presentar etiquetes específiques que seràn mostrades aquí. follow: Segueix followers: one: Seguidor other: Seguidors following: Seguint instance_actor_flash: Aquest compte és un actor virtual usat per a representar el mateix servidor i no cap usuari individual. Es fa servir per a federar i no s'hauria d'esborrar. - joined: Unit des de %{date} last_active: última activitat link_verified_on: La propietat d'aquest enllaç s'ha verificat el %{date} - media: Mèdia - moved_html: "%{name} s'ha mogut a %{new_profile_link}:" - network_hidden: Aquesta informació no està disponible nothing_here: No hi ha res aquí! - people_followed_by: Persones seguides per %{name} - people_who_follow: Usuaris que segueixen %{name} pin_errors: following: Has d'estar seguint la persona que vulguis avalar posts: one: Publicació other: Publicacions posts_tab_heading: Publicacions - posts_with_replies: Publicacions i respostes - roles: - admin: Administrador - bot: Bot - group: Grup - moderator: Moderador - unavailable: Perfil inaccessible - unfollow: Deixa de seguir admin: account_actions: action: Realitzar acció @@ -111,6 +44,11 @@ ca: new_email: Adreça electrònica nova submit: Canvia l'adreça electrònica title: Canvia l'adreça electrònica de %{username} + change_role: + changed_msg: Els privilegis del compte s'han canviat correctament! + label: Canvia rol + no_role: Sense rol + title: Canvia el rol per a %{username} confirm: Confirma confirmed: Confirmat confirming: Confirmant @@ -154,6 +92,7 @@ ca: active: Actiu all: Tot pending: Pendent + silenced: Limitat suspended: Suspès title: Moderació moderation_notes: Notes de moderació @@ -161,6 +100,7 @@ ca: most_recent_ip: IP més recent no_account_selected: No s'han canviat els comptes perquè no s'han seleccionat no_limits_imposed: Sense límits imposats + no_role_assigned: Cap rol assignat not_subscribed: No subscrit pending: Revisió pendent perform_full_suspension: Suspèn @@ -187,12 +127,7 @@ ca: reset: Reinicialitza reset_password: Restableix la contrasenya resubscribe: Torna a subscriure - role: Permisos - roles: - admin: Administrador - moderator: Moderador - staff: Personal - user: Usuari + role: Rol search: Cerca search_same_email_domain: Altres usuaris amb el mateix domini de correu search_same_ip: Altres usuaris amb la mateixa IP @@ -235,17 +170,21 @@ ca: approve_user: Aprova l'usuari assigned_to_self_report: Assigna l'informe change_email_user: Canvia l'adreça electrònica per l'usuari + change_role_user: Canvia el Rol del Usuari confirm_user: Confirma l'usuari create_account_warning: Crea un avís create_announcement: Crea un anunci + create_canonical_email_block: Crea un bloqueig de correu electrònic create_custom_emoji: Crea un emoji personalitzat create_domain_allow: Crea un domini permès create_domain_block: Crea un bloqueig de domini create_email_domain_block: Crea un bloqueig de domini d'adreça de correu create_ip_block: Crear regla IP create_unavailable_domain: Crea un domini no disponible + create_user_role: Crea Rol demote_user: Degrada l'usuari destroy_announcement: Esborra l'anunci + destroy_canonical_email_block: Esborra el bloqueig de correu electrònic destroy_custom_emoji: Esborra l'emoji personalitzat destroy_domain_allow: Esborra el domini permès destroy_domain_block: Esborra el bloqueig de domini @@ -254,6 +193,7 @@ ca: destroy_ip_block: Eliminar regla IP destroy_status: Esborrar la publicació destroy_unavailable_domain: Esborra domini no disponible + destroy_user_role: Destrueix Rol disable_2fa_user: Desactiva 2FA disable_custom_emoji: Desactiva l'emoji personalitzat disable_sign_in_token_auth_user: Desactivar l'autenticació de token per correu per l'usuari @@ -267,6 +207,7 @@ ca: reject_user: Rebutja l'usuari remove_avatar_user: Eliminar avatar reopen_report: Reobre l'informe + resend_user: Torna a enviar el correu de confirmació reset_password_user: Restableix la contrasenya resolve_report: Resolt l'informe sensitive_account: Marcar els mèdia en el teu compte com a sensibles @@ -280,24 +221,30 @@ ca: update_announcement: Actualitza l'anunci update_custom_emoji: Actualitza l'emoji personalitzat update_domain_block: Actualitza el Bloqueig de Domini + update_ip_block: Actualitza norma IP update_status: Actualitza l'estat + update_user_role: Actualitza Rol actions: approve_appeal_html: "%{name} ha aprovat l'apel·lació a la decisió de moderació de %{target}" approve_user_html: "%{name} ha aprovat el registre de %{target}" assigned_to_self_report_html: "%{name} han assignat l'informe %{target} a ells mateixos" change_email_user_html: "%{name} ha canviat l'adreça de correu electrònic del usuari %{target}" + change_role_user_html: "%{name} ha canviat el rol de %{target}" confirm_user_html: "%{name} ha confirmat l'adreça de correu electrònic de l'usuari %{target}" create_account_warning_html: "%{name} ha enviat un avís a %{target}" create_announcement_html: "%{name} ha creat un nou anunci %{target}" + create_canonical_email_block_html: "%{name} ha bloquejat l'adreça de correu electrònic amb el hash %{target}" create_custom_emoji_html: "%{name} ha pujat un emoji nou %{target}" create_domain_allow_html: "%{name} ha permès la federació amb el domini %{target}" create_domain_block_html: "%{name} ha bloquejat el domini %{target}" create_email_domain_block_html: "%{name} ha bloquejat el domini de correu electrònic %{target}" create_ip_block_html: "%{name} ha creat una regla per a l'IP %{target}" create_unavailable_domain_html: "%{name} ha aturat el lliurament al domini %{target}" + create_user_role_html: "%{name} ha creat el rol %{target}" demote_user_html: "%{name} ha degradat l'usuari %{target}" destroy_announcement_html: "%{name} ha eliminat l'anunci %{target}" - destroy_custom_emoji_html: "%{name} ha destruït l'emoji %{target}" + destroy_canonical_email_block_html: "%{name} ha desbloquejat el correu electrònic amb el hash %{target}" + destroy_custom_emoji_html: "%{name} ha esborrat l'emoji %{target}" destroy_domain_allow_html: "%{name} no permet la federació amb el domini %{target}" destroy_domain_block_html: "%{name} ha desbloquejat el domini %{target}" destroy_email_domain_block_html: "%{name} ha desbloquejat el domini de correu electrònic %{target}" @@ -305,6 +252,7 @@ ca: destroy_ip_block_html: "%{name} ha esborrat la regla per a l'IP %{target}" destroy_status_html: "%{name} ha eliminat la publicació de %{target}" destroy_unavailable_domain_html: "%{name} ha représ el lliurament delivery al domini %{target}" + destroy_user_role_html: "%{name} ha esborrat el rol %{target}" disable_2fa_user_html: "%{name} ha desactivat el requisit de dos factors per a l'usuari %{target}" disable_custom_emoji_html: "%{name} ha desactivat l'emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} ha desactivat l'autenticació de token per correu per a %{target}" @@ -318,6 +266,7 @@ ca: reject_user_html: "%{name} ha rebutjat el registre de %{target}" remove_avatar_user_html: "%{name} ha eliminat l'avatar de %{target}" reopen_report_html: "%{name} ha reobert l'informe %{target}" + resend_user_html: "%{name} ha renviat el correu de confirmació per %{target}" reset_password_user_html: "%{name} ha restablert la contrasenya de l'usuari %{target}" resolve_report_html: "%{name} ha resolt l'informe %{target}" sensitive_account_html: "%{name} ha marcat els mèdia de %{target} com a sensibles" @@ -331,8 +280,10 @@ ca: update_announcement_html: "%{name} ha actualitzat l'anunci %{target}" update_custom_emoji_html: "%{name} ha actualitzat l'emoji %{target}" update_domain_block_html: "%{name} ha actualitzat el bloqueig de domini per a %{target}" + update_ip_block_html: "%{name} ha canviat la norma per la IP %{target}" update_status_html: "%{name} ha actualitzat l'estat de %{target}" - deleted_status: "(publicació esborrada)" + update_user_role_html: "%{name} ha canviat el rol %{target}" + deleted_account: compte eliminat empty: No s’han trobat registres. filter_by_action: Filtra per acció filter_by_user: Filtra per usuari @@ -376,6 +327,7 @@ ca: listed: Enumerat new: title: Afegeix emoji personalitzat nou + no_emoji_selected: No s'ha canviat cap emoji perquè cap ha estat seleccionat not_permitted: No tens permís per a realitzar aquesta acció overwrite: Sobreescriure shortcode: Codi curt @@ -428,6 +380,7 @@ ca: destroyed_msg: El bloqueig de domini s'ha desfet domain: Domini edit: Editar el bloqueig del domini + existing_domain_block: Ja s'han imposat mesures més estrictes a %{name}. existing_domain_block_html: Ja has imposat uns límits més estrictes a %{name}, l'hauries de desbloquejar-lo primer. new: create: Crea un bloqueig @@ -648,6 +601,67 @@ ca: unresolved: No resolt updated_at: Actualitzat view_profile: Veure perfil + roles: + add_new: Afegir rol + assigned_users: + one: "%{count} usuari" + other: "%{count} usuaris" + categories: + administration: Administració + devops: Operadors de desenvolupament + invites: Invitacions + moderation: Moderació + special: Especial + delete: Esborra + description_html: Amb rols d'usuari, pots personalitzar quines funcions i àrees de Mastodon els teus usuaris poden accedir. + edit: Editar el rol %{name} + everyone: Permisos per defecte + everyone_full_description_html: Aquest és el rol base que afecta tots els usuaris, fins i tot els que no en tenen cap d'assignat. Tots els altres rols n'hereten els permisos. + permissions_count: + one: "%{count} permís" + other: "%{count} permisos" + privileges: + administrator: Administrador + administrator_description: Els usuaris amb aquest permís passaran per alt tots els permisos + delete_user_data: Esborra dades d'usuari + delete_user_data_description: Permet als usuaris suprimir les dades d'altres usuaris sense demora + invite_users: Convida usuaris + invite_users_description: Permet als usuaris convidar persones noves al servidor + manage_announcements: Gestiona els anuncis + manage_announcements_description: Permet als usuaris gestionar els anuncis al servidor + manage_appeals: Gestiona apel·lacions + manage_appeals_description: Permet als usuaris revisar les apel·lacions contra les accions de moderació + manage_blocks: Gestiona blocs + manage_blocks_description: Permet als usuaris bloquejar proveïdors de correu electrònic i adreces IP + manage_custom_emojis: Gestiona emojis personalitzats + manage_custom_emojis_description: Permet als usuaris gestionar emojis personalitzats al servidor + manage_federation: Gestiona federació + manage_federation_description: Permet als usuaris bloquejar o permetre la federació amb altres dominis i controlar la capacitat de lliurament + manage_invites: Gestiona invitacions + manage_invites_description: Permet als usuaris veure i desactivar els enllaços d'invitació + manage_reports: Gestiona informes + manage_reports_description: Permet als usuaris revisar informes i realitzar accions de moderació contra ells + manage_roles: Gestionar rols + manage_roles_description: Permet als usuaris gestionar i assignar rols per sota dels seus + manage_rules: Gestiona normes + manage_rules_description: Permet als usuaris canviar les normes del servidor + manage_settings: Gestiona configuració + manage_settings_description: Permet als usuaris canviar la configuració del lloc + manage_taxonomies: Gestionar taxonomies + manage_taxonomies_description: Permet als usuaris revisar el contingut actual i actualitzar la configuració de l'etiqueta + manage_user_access: Gestionar l'accés dels usuaris + manage_user_access_description: Permet als usuaris desactivar l'autenticació de dos factors d'altres usuaris, canviar la seva adreça de correu electrònic i restablir la seva contrasenya + manage_users: Gestionar usuaris + manage_users_description: Permet als usuaris veure els detalls d'altres usuaris i realitzar accions de moderació contra ells + manage_webhooks: Gestionar Webhooks + manage_webhooks_description: Permet als usuaris configurar webhooks per a esdeveniments administratius + view_audit_log: Veure el registre d'auditoria + view_audit_log_description: Permet als usuaris veure un historial d'accions administratives al servidor + view_dashboard: Veure panell + view_dashboard_description: Permet als usuaris accedir al tauler i a diverses mètriques + view_devops: Operadors de desenvolupament + view_devops_description: Permet als usuaris accedir als taulers de control de Sidekiq i pgHero + title: Rols rules: add_new: Afegir norma delete: Suprimeix @@ -656,108 +670,67 @@ ca: empty: Encara no s'han definit les normes del servidor. title: Normes del servidor settings: - activity_api_enabled: - desc_html: Nombre de publicacions publicades localment, usuaris actius i registres nous en períodes setmanals - title: Publica estadístiques agregades sobre l'activitat de l'usuari - bootstrap_timeline_accounts: - desc_html: Separa diversos noms d'usuari amb comes. Només funcionaran els comptes locals i desblocats. El valor predeterminat quan està buit és tots els administradors locals. - title: El seguiment per defecte per als usuaris nous - contact_information: - email: Adreça electrònica d'empresa - username: Nom d'usuari del contacte - custom_css: - desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina - title: CSS personalitzat - default_noindex: - desc_html: Afecta a tots els usuaris que no han canviat aquest ajustament ells mateixos - title: Configura per defecte als usuaris fora de la indexació del motor de cerca + about: + manage_rules: Gestiona les normes del servidor + preamble: Proporciona informació detallada sobre com funciona, com es modera i com es financia el servidor. + rules_hint: Hi ha un àrea dedicada a les normes a les que s'espera que els teus usuaris s'hi adhereixin. + title: Quant a + appearance: + preamble: Personalitza l'interfície web de Mastodon. + title: Aparença + branding: + preamble: La marca del teu servidor el diferència dels demés servidors de la xarxa. Aquesta informació es pot mostrar en diversos entorns com ara en l'interfície web, en les aplicacions natives, en les previsualitzacions dels enllaços en altres webs, dins les aplicacions de missatgeria i d'altres. Per aquesta raó, és millor mantenir aquesta informació clara, breu i precisa. + title: Marca + content_retention: + preamble: Controla com es desa a Mastodon el contingut generat per l'usuari. + title: Retenció de contingut + discovery: + follow_recommendations: Seguir les recomanacions + preamble: L'aparició de contingut interessant és fonamental per atraure els nous usuaris que podrien no saber res de Mastodon. Controla com funcionen diverses opcions de descobriment en el teu servidor. + profile_directory: Directori de perfils + public_timelines: Línies de temps públiques + title: Descobriment + trends: Tendències domain_blocks: all: Per a tothom disabled: Per a ningú - title: Mostra els bloquejos de domini users: Per als usuaris locals en línia - domain_blocks_rationale: - title: Mostra el raonament - hero: - desc_html: Es mostra en pàgina frontal. Recomanat al menys 600x100px. Si no es configura es mostrarà el del servidor - title: Imatge d’heroi - mascot: - desc_html: Es mostra a diverses pàgines. Es recomana com a mínim 293 × 205px. Si no està configurat, torna a la mascota predeterminada - title: Imatge de la mascota - peers_api_enabled: - desc_html: Els noms de domini que aquest servidor ha trobat al fedivers - title: Publica la llista de servidors descoberts - preview_sensitive_media: - desc_html: Les visualitzacions prèvies d'enllaços d'altres llocs web mostraran una miniatura encara que els mitjans de comunicació estiguin marcats com a sensibles - title: Mostra els mitjans sensibles a les previsualitzacions d'OpenGraph - profile_directory: - desc_html: Permet als usuaris ser descoberts - title: Habilita el directori de perfils registrations: - closed_message: - desc_html: Apareix en la primera pàgina quan es tanquen els registres. Pots utilitzar etiquetes HTML - title: Missatge de registre tancat - deletion: - desc_html: Permet a qualsevol usuari d'esborrar el seu compte - title: Obre la supressió del compte - min_invite_role: - disabled: Ningú - title: Permet les invitacions de - require_invite_text: - desc_html: Quan el registre requereix aprovació manual, fer que sigui obligatori enlloc d'opcions l escriure el text de la solicitud d'invitació "Perquè vols unirte?" - title: Requerir als nous usuaris omplir el text de la solicitud d'invitació + preamble: Controla qui pot crear un compte en el teu servidor. + title: Registres registrations_mode: modes: approved: Es requereix l’aprovació per registrar-se none: Ningú no pot registrar-se open: Qualsevol pot registrar-se - title: Mode de registres - show_known_fediverse_at_about_page: - desc_html: Quan està desactivat, restringeix la línia de temps pública enllaçada des de la pàgina inicial a mostrar només contingut local - title: Inclou el contingut federat a la pàgina no autenticada de la línia de temps pública - show_staff_badge: - desc_html: Mostra una insígnia de personal en la pàgina d'usuari - title: Mostra insígnia de personal - site_description: - desc_html: Paràgraf introductori a la pàgina principal i en etiquetes meta. Pots utilitzar etiquetes HTML, en particular <a> i <em>. - title: Descripció del servidor - site_description_extended: - desc_html: Un bon lloc per al codi de conducta, regles, directrius i altres coses que distingeixen el teu servidor. Pots utilitzar etiquetes HTML - title: Descripció ampliada del lloc - site_short_description: - desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodon i què fa que aquest servidor sigui especial. - title: Descripció curta del servidor - site_terms: - desc_html: Pots escriure la teva pròpia política de privadesa, els termes del servei o d'altres normes legals. Pots utilitzar etiquetes HTML - title: Termes del servei personalitzats - site_title: Nom del servidor - thumbnail: - desc_html: S'utilitza per obtenir visualitzacions prèvies a través d'OpenGraph i API. Es recomana 1200x630px - title: Miniatura del servidor - timeline_preview: - desc_html: Mostra l'enllaç a la línia de temps pública a la pàgina inicial i permet l'accés a l'API a la línia de temps pública sense autenticació - title: Permet l'accés no autenticat a la línia de temps pública - title: Configuració del lloc - trendable_by_default: - desc_html: Afecta a les etiquetes que no s'havien rebutjat prèviament - title: Permet que les etiquetes passin a la tendència sense revisió prèvia - trends: - desc_html: Mostra públicament les etiquetes revisades anteriorment que actualment estan en tendència - title: Etiquetes tendència + title: Paràmetres del servidor site_uploads: delete: Esborra el fitxer pujat destroyed_msg: La càrrega al lloc s'ha suprimit correctament! statuses: + account: Autor + application: Aplicació back_to_account: Torna a la pàgina del compte back_to_report: Torna a la pàgina del informe batch: remove_from_report: Treu del informe report: Informe deleted: Eliminada + favourites: Favorits + history: Històric de versions + in_reply_to: Responent a + language: Llengua media: title: Contingut multimèdia + metadata: Metadada no_status_selected: No s’han canviat els estatus perquè cap no ha estat seleccionat + open: Obrir publicació + original_status: Publicació original + reblogs: Impulsos + status_changed: Publicació canviada title: Estats del compte + trending: Tendència + visibility: Visibilitat with_media: Amb contingut multimèdia strikes: actions: @@ -797,6 +770,9 @@ ca: description_html: Aquests son enllaços que ara mateix s'estan compartint molt per els comptes que el teu servidor en veu les publicacions. Poden ajudar als teus usuaris a trobar què està passant en el món. Cap dels enllaços es mostra publicament fins que no aprovis el mitjà. També pots aceptar o rebutjar enllaços individuals. disallow: No permetre l'enllaç disallow_provider: No permetre el mitjà + no_link_selected: No s'ha canviat cap enllaç perquè cap ha estat seleccionat + publishers: + no_publisher_selected: No s'ha canviat cap editor perquè cap ha estat seleccionat shared_by_over_week: one: Compartit per una persona en la darrera setmana other: Compartit per %{count} persones en la darrera setmana @@ -816,6 +792,7 @@ ca: description_html: Aquestes son publicacions que el teu servidor veu i que ara mateix s'estan compartint i afavorint molt. Poden ajudar als teus nous usuaris i als que retornen a trobar més gent a qui seguir. Cap publicació es mostra publicament fins que no aprovis l'autor i l'autor permeti que el seu compte sigui sugerit a altres. També pots aceptar o rebutjar publicacions individuals. disallow: Rebutja publicació disallow_account: Rebutja autor + no_status_selected: No s'han canviat les publicacions en tendència perquè cap ha estat seleccionada not_discoverable: L'autor no ha activat poder ser detectable shared_by: one: Compartit o afavorit una vegada @@ -831,6 +808,7 @@ ca: tag_uses_measure: total usos description_html: Aquestes son etiquetes que ara mateix estan apareixen en moltes publicacions que el teu servidor veu. Poden ajudar als teus usuaris a trobar de què està parlant majoritariament la gent en aquest moment. Cap etiqueta es mostra publicament fins que no l'aprovis. listable: Es pot suggerir + no_tag_selected: No s'ha canviat cap etiqueta perquè cap ha estat seleccionada not_listable: No es pot suggerir not_trendable: No apareixeran en les tendències not_usable: No pot ser emprat @@ -851,6 +829,26 @@ ca: edit_preset: Edita l'avís predeterminat empty: Encara no has definit cap preavís. title: Gestiona les configuracions predefinides dels avisos + webhooks: + add_new: Afegir extrem + delete: Elimina + description_html: Un webhook habilita Mastodon per a empènyer notificacions en temps real sobre els esdeveniments escollits de la teva pròpia aplicació, per tant la teva aplicació pot activar reaccions automaticament. + disable: Desactiva + disabled: Desactivat + edit: Editar extrem + empty: Encara no tens cap extrem de webhook configurat. + enable: Activa + enabled: Actiu + enabled_events: + one: 1 esdeveniment activat + other: "%{count} esdeveniments activats" + events: Esdeveniments + new: Nou webhook + rotate_secret: Rota el secret + secret: Signant el secret + status: Estat + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +872,8 @@ ca: new_trends: body: 'Els següents elements necessiten una revisió abans de que puguin ser mostrats públicament:' new_trending_links: - no_approved_links: Actualment no hi ha enllaços en tendència aprovats. - requirements: 'Qualsevol d''aquests candidats podria superar el #%{rank} del enllaç en tendència aprovat, que actualment és "%{lowest_link_title}" amb una puntuació de %{lowest_link_score}.' title: Enllaços en tendència new_trending_statuses: - no_approved_statuses: Actualment no hi ha etiquetes en tendència aprovades. - requirements: 'Qualsevol d''aquests candidats podria superar el #%{rank} de la publicació en tendència aprovada, que actualment és "%{lowest_status_url}" amb una puntuació de %{lowest_status_score}.' title: Publicacions en tendència new_trending_tags: no_approved_tags: Actualment no hi ha etiquetes en tendència aprovades. @@ -915,16 +909,13 @@ ca: applications: created: L'aplicació s'ha creat correctament destroyed: L'aplicació s'ha suprimit correctament - invalid_url: L'URL proporcionat no és correcte regenerate_token: Torna a generar l'identificador d'accés token_regenerated: L'identificador d'accés s'ha generat correctament warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú! your_token: El teu identificador d'accés auth: - apply_for_account: Demana una invitació + apply_for_account: Apunta't a la llista d'espera change_password: Contrasenya - checkbox_agreement_html: Accepto les normes del servidor i els termes del servei - checkbox_agreement_without_rules_html: Acepto els termes del servei delete_account: Suprimeix el compte delete_account_html: Si vols suprimir el compte pots fer-ho aquí. Se't demanarà confirmació. description: @@ -943,6 +934,7 @@ ca: migrate_account: Mou a un compte diferent migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots configurar aquí. or_log_in_with: O inicia sessió amb + privacy_policy_agreement_html: He llegit i estic d'acord amb la política de privacitat providers: cas: CAS saml: SAML @@ -950,12 +942,18 @@ ca: registration_closed: "%{instance} no accepta nous membres" resend_confirmation: Torna a enviar el correu de confirmació reset_password: Restableix la contrasenya + rules: + preamble: Aquestes regles estan establertes i aplicades per els moderadors de %{domain}. + title: Algunes regles bàsiques. security: Seguretat set_new_password: Estableix una contrasenya nova setup: email_below_hint_html: Si l’adreça de correu electrònic següent és incorrecta, podeu canviar-la aquí i rebre un nou correu electrònic de confirmació. email_settings_hint_html: El correu electrònic de confirmació es va enviar a %{email}. Si aquesta adreça de correu electrònic no és correcta, la podeu canviar a la configuració del compte. title: Configuració + sign_up: + preamble: Amb un compte en aquest servidor Mastodon, podràs seguir qualsevol altre persona de la xarxa, independentment d'on tingui el seu compte. + title: Anem a configurar-te a %{domain}. status: account_status: Estat del compte confirming: Esperant que es completi la confirmació del correu electrònic. @@ -964,7 +962,6 @@ ca: redirecting_to: El teu compte és inactiu perquè actualment està redirigint a %{acct}. view_strikes: Veure accions del passat contra el teu compte too_fast: Formulari enviat massa ràpid, torna a provar-ho. - trouble_logging_in: Problemes per iniciar la sessió? use_security_key: Usa clau de seguretat authorize_follow: already_following: Ja estàs seguint aquest compte @@ -1022,10 +1019,6 @@ ca: more_details_html: Per a més detalls, llegeix la política de privadesa. username_available: El teu nom d'usuari esdevindrà altre cop disponible username_unavailable: El teu nom d'usuari quedarà inutilitzable - directories: - directory: Directori de perfils - explanation: Descobreix usuaris segons els teus interessos - explore_mastodon: Explora %{title} disputes: strikes: action_taken: Acció presa @@ -1104,29 +1097,60 @@ ca: public: Línies de temps públiques thread: Converses edit: + add_keyword: Afegeix una paraula clau + keywords: Paraules clau + statuses: Publicacions individuals + statuses_hint_html: Aquest filtre s'aplica a la selecció de publicacions individuals, independentment de si coincideixen amb les paraules clau següents. Revisa o elimina publicacions del filtre. title: Editar filtre errors: + deprecated_api_multiple_keywords: Aquests paràmetres no poden ser canviats des d'aquesta aplicació perquè apliquen a més d'un filtre per paraula clau. Utilitza una aplicació més recent o la interfície web. invalid_context: Cap o el context proporcionat no és vàlid - invalid_irreversible: El filtratge irreversible només funciona amb el contextos inici o notificacions index: + contexts: Filtres en %{contexts} delete: Esborra empty: No hi tens cap filtre. + expires_in: Expira en %{distance} + expires_on: Expira el %{date} + keywords: + one: "%{count} paraula clau" + other: "%{count} paraules clau" + statuses: + one: "%{count} publicació" + other: "%{count} publicacions" + statuses_long: + one: "%{count} publicació individual ocultada" + other: "%{count} publicacions individuals ocultades" title: Filtres new: + save: Desa el filtre nou title: Afegir un nou filtre + statuses: + back_to_filter: Tornar al filtre + batch: + remove: Eliminar del filtre + index: + hint: Aquest filtre aplica als apunts seleccionats independentment d'altres criteris. Pots afegir més publicacions a aquest filtre des de la interfície Web. + title: Publicacions filtrades footer: - developers: Desenvolupadors - more: Més… - resources: Recursos trending_now: En tendència generic: all: Tot + all_items_on_page_selected_html: + one: "%{count} article d'aquesta s'ha seleccionat." + other: Tots %{count} articles d'aquesta pàgina estan seleccionats. + all_matching_items_selected_html: + one: "%{count} article coincident amb la teva cerca està seleccionat." + other: Tots %{count} articles coincidents amb la teva cerca estan seleccionats. changes_saved_msg: Els canvis s'han desat correctament! copy: Copiar delete: Esborra + deselect: Desfer selecció none: Cap order_by: Ordena per save_changes: Desa els canvis + select_all_matching_items: + one: Selecciona %{count} article coincident amb la teva cerca. + other: Selecciona tots %{count} articles coincidents amb la teva cerca. today: avui validation_errors: one: Alguna cosa no va bé! Si us plau, revisa l'error @@ -1150,7 +1174,6 @@ ca: following: Llista de seguits muting: Llista de silenciats upload: Carrega - in_memoriam_html: En Memòria. invites: delete: Desactiva expired: Caducat @@ -1229,21 +1252,14 @@ ca: carry_blocks_over_text: Aquest usuari s’ha mogut des de %{acct}, que havies bloquejat. carry_mutes_over_text: Aquest usuari s’ha mogut des de %{acct}, que havies silenciat. copy_account_note_text: 'Aquest usuari s’ha mogut des de %{acct}, aquí estaven les teves notes prèvies sobre ell:' + navigation: + toggle_menu: Alternar menú notification_mailer: admin: + report: + subject: "%{name} ha presentat un informe" sign_up: subject: "%{name} s'ha registrat" - digest: - action: Mostra totes les notificacions - body: Un resum del que et vas perdre des de la darrera visita el %{since} - mention: "%{name} t'ha mencionat en:" - new_followers_summary: - one: A més, has adquirit un nou seguidor durant la teva absència! Visca! - other: A més, has adquirit %{count} nous seguidors mentre estaves fora! Increïble! - subject: - one: "1 notificació nova des de la teva darrera visita 🐘" - other: "%{count} notificacions noves des de la teva darrera visita 🐘" - title: Durant la teva absència… favourite: body: "%{name} ha marcat com a favorit el teu estat:" subject: "%{name} ha marcat com a favorit el teu estat" @@ -1315,6 +1331,8 @@ ca: other: Altre posting_defaults: Valors predeterminats de publicació public_timelines: Línies de temps públiques + privacy_policy: + title: Política de Privacitat reactions: errors: limit_reached: Límit de diferents reaccions assolit @@ -1337,22 +1355,7 @@ ca: remove_selected_follows: Deixa de seguir als usuaris seleccionats status: Estat del compte remote_follow: - acct: Escriu el teu usuari@domini des del qual vols seguir missing_resource: No s'ha pogut trobar la URL de redirecció necessària per al compte - no_account_html: No tens cap compte? Pots registrar-te aquí - proceed: Comença a seguir - prompt: 'Seguiràs a:' - reason_html: "Per què és necessari aquest pas? %{instance} pot ser que no sigui el servidor on estàs registrat per tant primer hem de redirigir-te al teu servidor." - remote_interaction: - favourite: - proceed: Procedir a afavorir - prompt: 'Vols marcar com a favorit aquesta publicació:' - reblog: - proceed: Procedir a impulsar - prompt: 'Vols impulsar aquesta publicació:' - reply: - proceed: Procedir a respondre - prompt: 'Vols respondre a aquesta publicació:' reports: errors: invalid_rules: no fa referència a normes vàlides @@ -1384,7 +1387,7 @@ ca: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: Navegador UC weibo: Weibo current_session: Sessió actual description: "%{browser} de %{platform}" @@ -1524,89 +1527,6 @@ ca: too_late: És massa tard per a apel·lar aquesta acció tags: does_not_match_previous_name: no coincideix amb el nom anterior - terms: - body_html: | -

      Política de Privacitat

      -

      Quina informació recollim?

      - -
        -
      • Informació bàsica del compte: Si et registres en aquest servidor, se´t pot demanar que introdueixis un nom d'usuari, una adreça de correu electrònic i una contrasenya. També pots introduir informació de perfil addicional, com ara un nom de visualització i una biografia, i carregar una imatge de perfil i de capçalera. El nom d'usuari, el nom de visualització, la biografia, la imatge de perfil i la imatge de capçalera sempre apareixen públicament.
      • -
      • Publicacions, seguiment i altra informació pública: La llista de persones que segueixes s'enumeren públicament i el mateix passa amb els teus seguidors. Quan envies un missatge, la data i l'hora s'emmagatzemen, així com l'aplicació que va enviar el missatge. Els missatges poden contenir multimèdia, com ara imatges i vídeos. Els toots públics i no llistats estan disponibles públicament. En quan tinguis un toot en el teu perfil, aquest també és informació pública. Les teves entrades es lliuren als teus seguidors que en alguns casos significa que es lliuren a diferents servidors en els quals s'hi emmagatzemen còpies. Quan suprimeixes publicacions, també es lliuraran als teus seguidors. L'acció d'impulsar o marcar com a favorit una publicació sempre és pública.
      • -
      • Toots directes i per a només seguidors: Totes les publicacions s'emmagatzemen i processen al servidor. Els toots per a només seguidors només es lliuren als teus seguidors i als usuaris que s'esmenten en ells i els toots directes només es lliuren als usuaris esmentats. En alguns casos, significa que es lliuren a diferents servidors i s'hi emmagatzemen còpies. Fem un esforç de bona fe per limitar l'accés a aquestes publicacions només a les persones autoritzades, però és possible que altres servidors no ho facin. Per tant, és important revisar els servidors als quals pertanyen els teus seguidors. Pots canviar la opció de aprovar o rebutjar els nous seguidors manualment a la configuració. Tingues en compte que els operadors del servidor i qualsevol servidor receptor poden visualitzar aquests missatges i els destinataris poden fer una captura de pantalla, copiar-los o tornar-los a compartir. No comparteixis cap informació perillosa a Mastodon.
      • -
      • IPs i altres metadades: Quan inicies sessió registrem l'adreça IP en que l'has iniciat, així com el nom de l'aplicació o navegador. Totes les sessions registrades estan disponibles per a la teva revisió i revocació a la configuració. L'última adreça IP utilitzada s'emmagatzema durant un màxim de 12 mesos. També podrem conservar els registres que inclouen l'adreça IP de cada sol·licitud al nostre servidor.
      • -
      - -
      - -

      Per a què utilitzem la teva informació?

      - -

      Qualsevol de la informació que recopilem de tu es pot utilitzar de la manera següent:

      - -
        -
      • Per proporcionar la funcionalitat bàsica de Mastodon. Només pots interactuar amb el contingut d'altres persones i publicar el teu propi contingut quan hàgis iniciat la sessió. Per exemple, pots seguir altres persones per veure les publicacions combinades a la teva pròpia línia de temps personalitzada.
      • -
      • Per ajudar a la moderació de la comunitat, per exemple comparar la teva adreça IP amb altres conegudes per determinar l'evasió de prohibicions o altres infraccions.
      • -
      • L'adreça electrònica que ens proporciones pot utilitzar-se per enviar-te informació, notificacions sobre altres persones que interactuen amb el teu contingut o t'envien missatges, i per respondre a les consultes i / o altres sol·licituds o preguntes.
      • -
      - -
      - -

      Com protegim la teva informació

      - -

      Implementem diverses mesures per mantenir la seguretat quan introdueixes, envies o accedeixes a la teva informació personal. Entre altres mesures, la sessió del teu navegador així com el trànsit entre les teves aplicacions i l'API estan protegides amb SSL i la teva contrasenya es codifica utilitzant un algoritme de direcció única. Pots habilitar l'autenticació de dos factors per a garantir l'accés segur al teu compte.

      - -
      - -

      Quina és la nostra política de retenció de dades?

      - -

      Farem un esforç de bona fe per:

      - -
        -
      • Conservar els registres del servidor que continguin l'adreça IP de totes les sol·licituds que rebi, tenint em compte que aquests registres es mantenen no més de 90 dies.
      • -
      • Conservar les adreces IP associades als usuaris registrats no més de 12 mesos.
      • -
      - -

      Pots sol·licitar i descarregar un arxiu del teu contingut incloses les publicacions, els fitxers adjunts multimèdia, la imatge de perfil i la imatge de capçalera.

      - -

      Pots eliminar el teu compte de forma irreversible en qualsevol moment.

      - -
      - -

      Utilitzem cookies?

      - -

      Sí. Les cookies són petits fitxers que un lloc o el proveïdor de serveis transfereix al disc dur del teu ordinador a través del navegador web (si ho permet). Aquestes galetes permeten al lloc reconèixer el teu navegador i, si tens un compte registrat, associar-lo al teu compte registrat.

      - -

      Utilitzem cookies per entendre i guardar les teves preferències per a futures visites.

      - -
      - -

      Revelem informació a terceres parts?

      - -

      No venem, comercialitzem ni transmetem a tercers la teva informació d'identificació personal. Això no inclou tercers de confiança que ens ajuden a operar el nostre lloc, a dur a terme el nostre servei o a servir-te, sempre que aquestes parts acceptin mantenir confidencial aquesta informació. També podem publicar la teva informació quan creiem que l'alliberament és apropiat per complir amb la llei, fer complir les polítiques del nostre lloc o protegir els nostres drets o altres drets, propietat o seguretat.

      - -

      Els altres servidors de la teva xarxa poden descarregar contingut públic. Els teus toots públics i per a només seguidors es lliuren als servidors on resideixen els teus seguidors i els missatges directes s'envien als servidors dels destinataris, sempre que aquests seguidors o destinataris resideixin en un servidor diferent d'aquest.

      - -

      Quan autoritzes una aplicació a utilitzar el teu compte, segons l'abast dels permisos que aprovis, pot accedir a la teva informació de perfil pública, a la teva llista de seguits, als teus seguidors, a les teves llistes, a totes les teves publicacions i als teus favorits. Les aplicacions mai no poden accedir a la teva adreça de correu electrònic o contrasenya.

      - -
      - -

      Ús del lloc dels nens

      - -

      Si el servidor és a EU o EEA: el nostre lloc, productes i serveis estan dirigits a persones que tenen almenys 16 anys. Si tens menys de 16 anys, seguint els requisits del GDPR (Reglament General de Protecció de Dades) no utilitzis aquest lloc.

      - -

      Si aquest servidor es troba als EUA: el nostre lloc, productes i serveis estan dirigits a persones que tenen almenys 13 anys. Si tens menys de 13 anys, segons els requisits de COPPA (Children's Online Privacy Protection Act) no utilitzis aquest lloc.

      - -

      Els requisits legals poden ser diferents si aquest servidor està en una altra jurisdicció.

      - -
      - -

      Canvis a la nostra política de privacitat

      - -

      Si decidim canviar la nostra política de privadesa, publicarem aquests canvis en aquesta pàgina.

      - -

      Aquest document és CC-BY-SA. Actualitzat per darrera vegada el 7 de Març del 2018.

      - -

      Originalment adaptat des del Discourse privacy policy.

      - title: "%{instance} Condicions del servei i política de privadesa" themes: contrast: Mastodon (alt contrast) default: Mastodon (fosc) @@ -1649,8 +1569,8 @@ ca: change_password: canvia la teva contrasenya details: 'Aquí estan els detalls del inici de sessió:' explanation: Hem detectat un inici de sessió del teu compte des d'una nova adreça IP. - further_actions_html: Si no has estat tu, recomanem que tu %{action} immediatament i activis l'autenticació de dos-factors per a mantenir el teu compte segur. - subject: El teu compte ha estat accedit des d'una nova adreça IP + further_actions_html: Si no has estat tu, et recomanem %{action} immediatament i activis l'autenticació de dos-factors per a mantenir el teu compte segur. + subject: S'ha accedit al teu compte des d'una adreça IP nova title: Un nou inici de sessió warning: appeal: Envia una apel·lació @@ -1685,20 +1605,13 @@ ca: suspend: Compte suspès welcome: edit_profile_action: Configura el perfil - edit_profile_step: Pots personalitzar el teu perfil penjant un avatar, un encapçalament, canviant el teu nom de visualització i molt més. Si prefereixes revisar els seguidors nous abans de que et puguin seguir, pots blocar el teu compte. + edit_profile_step: Pots personalitzar el teu perfil pujant-hi un avatar, canviant el teu nom de visualització i molt més. Si ho prefereixes, pots revisar els seguidors nous abans de que et puguin seguir. explanation: Aquests són alguns consells per a començar final_action: Comença a publicar - final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes ("hashtags"). És possible que vulguis presentar-te amb l''etiqueta #introductions.' + final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes. És possible que vulguis presentar-te amb l''etiqueta #introductions.' full_handle: El teu nom d'usuari sencer full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'un altre servidor. - review_preferences_action: Canviar preferències - review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF. subject: Et donem la benvinguda a Mastodon - tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està completa. - tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada. - tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers! - tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodon a la teva pantalla d'inici, podràs rebre notificacions "push". Es comporta com una aplicació nativa en molts aspectes! - tips: Consells title: Benvingut a bord, %{name}! users: follow_limit_reached: No pots seguir més de %{limit} persones diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index ee0f3134475989..483734feada3c8 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -1,93 +1,27 @@ --- ckb: about: - about_hashtag_html: ئەمانە توتی گشتین بە هەشتەگی گشتی #%{hashtag}}. گەر ئێوە لە هەر ڕاژەیەک هەژمارەتان بێت دەتوانیت لێرە بەم نووسراوانە هاوئاهەنگ بن. - about_mastodon_html: 'تۆڕی کۆمەڵایەتی داهاتوو: هیچ ڕیکلامێک ، هیچ چاودێرییەکی کۆمپانیا ، دیزاینی ئەخلاقی و لامەرکەزی! خاوەنی داتاکانت نابێ لە ماستۆدۆن!' - about_this: دەربارە - active_count_after: چالاک - active_footnote: بەکارهێنەرانی چالاکی مانگانە (MAU) - administered_by: 'بەڕێوەبراو لەلایەن:' - api: API - apps: ئەپەکانی مۆبایل - apps_platforms: بەکارهێنانی ماستۆدۆن لە iOS، ئەندرۆید و سەکۆکانی تر - browse_directory: گەڕان لە ڕێبەرێکی پرۆفایل و پاڵاوتن بەپێی بەرژەوەندیەکان - browse_local_posts: گەڕانی ڕاستەوخۆ لە نووسراوە گشتیەکان لەم ڕاژەوە - browse_public_posts: گەڕان لە جۆگەیەکی زیندووی نووسراوە گشتیەکان لەسەر ماستۆدۆن - contact: بەردەنگ + about_mastodon_html: 'تۆڕی کۆمەڵایەتی داهاتوو: هیچ ڕیکلامێک، هیچ چاودێرییەکی کۆمپانیا، دیزاینی ئەخلاقی و لامەرکەزی! خاوەنی داتاکانت بە لە ماستۆدۆن!' contact_missing: سازنەکراوە contact_unavailable: بوونی نییە - discover_users: پەیداکردنی بەکارهێنەران - documentation: بەڵگەکان - federation_hint_html: بە هەژمارەیەک لەسەر %{instance} دەتوانیت شوێن خەڵک بکەویت لەسەر هەرڕاژەیەکی ماستۆدۆن. - get_apps: ئەپێکی تەلەفۆن تاقی بکەرەوە hosted_on: مەستودۆن میوانداری کراوە لە %{domain} - instance_actor_flash: | - ئەم هەژمارەیە ئەکتەرێکی خەیاڵی بەکارهاتووە بۆ نوێنەرایەتی کردنی خودی ڕاژەکە و نەک هیچ بەکارهێنەرێکی تاک. - بۆ مەبەستی فیدراسیۆن بەکاردێت و نابێت بلۆک بکرێت مەگەر دەتەوێت هەموو نمونەکە بلۆک بکەیت، کە لە حاڵەتەش دا پێویستە بلۆکی دۆمەین بەکاربهێنیت. - learn_more: زیاتر فێربه - logged_in_as_html: لە ئێستادا تۆ وەک %{username} چوویتە ژوورەوە. - logout_before_registering: تۆ پێشتر چوویتە ژوورەوە. - privacy_policy: ڕامیاری تایبەتێتی - rules: یاساکانی سێرڤەر - rules_html: 'لە خوارەوە کورتەیەک لەو یاسایانە دەخەینەڕوو کە پێویستە پەیڕەوی لێبکەیت ئەگەر بتەوێت ئەکاونتێکت هەبێت لەسەر ئەم سێرڤەرەی ماستۆدۆن:' - see_whats_happening: بزانە چی ڕوودەدات - server_stats: 'زانیاری ڕاژەکار:' - source_code: کۆدی سەرچاوە - status_count_after: - one: دۆخ - other: پۆست - status_count_before: لە لایەن یەکەوە - tagline: دوای هاوڕێکان بکەوە و ئەوانەی نوێ بدۆزیەوە - terms: مەرجەکانی خزمەتگوزاری - unavailable_content: ڕاژەی چاودێریکراو - unavailable_content_description: - domain: ڕاژەکار - reason: هۆکار - rejecting_media: 'پەڕگەکانی میدیا لەم ڕاژانەوە پرۆسە ناکرێت یان هەڵناگیرێن، و هیچ وێنۆچکەیەک پیشان نادرێت، پێویستی بە کرتە کردنی دەستی هەیە بۆ فایلە سەرەکیەکە:' - rejecting_media_title: پاڵێوەری میدیا - silenced: 'بابەتەکانی ئەم ڕاژانە لە هێڵی کاتی گشتی و گفتوگۆکاندا دەشاردرێنەوە، و هیچ ئاگانامێک دروست ناکرێت لە چالاکی بەکارهێنەرانیان، مەگەر تۆ بەدوایان دەچیت:' - silenced_title: ڕاژە ناچالاکەکان - suspended: 'هیچ داتایەک لەم ڕاژانەوە پرۆسە ناکرێت، خەزن دەکرێت یان دەگۆڕدرێتەوە، وا دەکات هیچ کارلێک یان پەیوەندییەک لەگەڵ بەکارهێنەران لەم ڕاژانە مەحاڵ بێت:' - suspended_title: ڕاژە ڕاگیراوەکان - unavailable_content_html: ماستۆدۆن بە گشتی ڕێگەت پێدەدات بۆ پیشاندانی ناوەڕۆک لە و کارلێ کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە. - user_count_after: - one: بەکارهێنەر - other: بەکارهێنەران - user_count_before: "`خاوەن" - what_is_mastodon: ماستۆدۆن چییە? + title: دەربارە accounts: - choices_html: 'هەڵبژاردنەکانی %{name}:' - endorsements_hint: دەتوانیت ئەو کەسانە پەسەند بکەیت کە پەیڕەویان دەکەیت لە ڕووکاری وێب، و ئەوان لێرە دەردەکەون. - featured_tags_hint: دەتوانیت هاشتاگی تایبەت پێشکەش بکەیت کە لێرە پیشان دەدرێت. follow: شوێن کەوە followers: one: شوێنکەوتوو other: شوێن‌کەوتووان following: شوێن‌کەوتووی instance_actor_flash: ئەم ئەکاونتە ئەکتەرێکی مەجازییە کە بەکاردێت بۆ نوێنەرایەتیکردنی خودی سێرڤەرەکە نەک هیچ بەکارهێنەرێکی تاکەکەسی. بۆ مەبەستی فیدراسیۆن بەکاردێت و نابێت ڕابگیرێت. - joined: بەشداری %{date} last_active: دوا چالاکی link_verified_on: خاوەنداریەتی ئەم لینکە لە %{date} چێک کراوە - media: میدیا - moved_html: "%{name} گواستراوەتەوە بۆ %{new_profile_link}:" - network_hidden: ئەم زانیاریە بەردەست نیە nothing_here: لێرە هیچ نییە! - people_followed_by: ئەو کەسانەی کە %{name} بەدوایدا دەکەون - people_who_follow: ئەو کەسانەی کە بەدوای %{name} دا دەکەون pin_errors: following: تۆ دەبێت هەر ئێستا بە دوای ئەو کەسەدا بیت کە دەتەوێت پەسەندی بکەیت posts: one: توت other: تووتەکان posts_tab_heading: تووتەکان - posts_with_replies: تووتەکان و وڵامەکان - roles: - admin: بەڕێوەبەر - bot: بۆت - group: گرووپ - moderator: مۆد - unavailable: پرۆفایل بەردەست نیە - unfollow: بەدوادانەچو admin: account_actions: action: ئەنجامدانی کردار @@ -104,12 +38,17 @@ ckb: avatar: وێنۆچکە by_domain: دۆمەین change_email: - changed_msg: ئیمەیڵی ئەژمێر بە سەرکەوتوویی گۆڕا! + changed_msg: ئیمەیڵ بەسەرکەوتوویی گۆڕدرا! current_email: ئیمەیلی ئێستا label: گۆڕینی ئیمێڵ new_email: ئیمەیڵی نوێ submit: گۆڕینی ئیمێڵ title: گۆڕینی ئیمەیڵ بۆ %{username} + change_role: + changed_msg: ڕۆڵ بەسەرکەوتوویی گۆڕدرا! + label: گۆڕینی ڕۆڵ + no_role: ڕۆڵ نیە + title: ڕۆڵی %{username} بگۆڕە confirm: پشتڕاستی بکەوە confirmed: پشتڕاست کرا confirming: پشتڕاستکردنەوە @@ -136,7 +75,7 @@ ckb: header: سەرپەڕە inbox_url: نیشانی هاتنەژوور invite_request_text: هۆکارەکانی بەشداریکردن - invited_by: هاتۆتە ژورەوە لە لایەن + invited_by: بانگهێشتکراو لە لایەن ip: ئای‌پی joined: ئەندام بوو لە location: @@ -153,6 +92,7 @@ ckb: active: چالاک all: هەموو pending: چاوەڕوان + silenced: سنووردار suspended: ڕاگرتن title: بەڕێوەبردن moderation_notes: بەڕێوەبردنی تێبینیەکان @@ -160,6 +100,7 @@ ckb: most_recent_ip: نوێترین ئای پی no_account_selected: هیچ هەژمارەیەک نەگۆڕاوە وەک ئەوەی هیچ یەکێک دیاری نەکراوە no_limits_imposed: هیچ سنوورێک نەسەپێنرا + no_role_assigned: ڕۆڵ دیاری نەکراوە not_subscribed: بەشدار نەبوو pending: پێداچوونەوەی چاوەڕوان perform_full_suspension: ڕاگرتن @@ -183,12 +124,7 @@ ckb: reset: ڕێکخستنەوە reset_password: گەڕانەوەی تێپەڕوشە resubscribe: دووبارە ئابونەبوون - role: مۆڵەتەکان - roles: - admin: بەڕێوەبەر - moderator: بەڕێوەبەر - staff: ستاف - user: بەکارهێنەر + role: ڕۆڵ search: گەڕان search_same_email_domain: بەکارهێنەرانی دیکە بە ئیمەیلی یەکسان search_same_ip: بەکارهێنەرانی تر بەهەمان ئای پی @@ -205,10 +141,13 @@ ckb: silenced: سنوورکرا statuses: دۆخەکان subscribe: ئابوونە + suspend: ڕاگرتن suspended: ڕاگرتن suspension_irreversible: داتای ئەم هەژمارەیە بە شێوەیەکی نائاسایی سڕاوەتەوە. دەتوانیت هەژمارەکەت ڕابخەیت بۆ ئەوەی بەکاربێت بەڵام هیچ داتایەک ناگەڕگەڕێتەوە کە پێشتر بوونی بوو. suspension_reversible_hint_html: هەژمارە ڕاگیرا ، و داتاکە بەتەواوی لە %{date} لادەبرێت. تا ئەو کاتە هەژمارەکە دەتوانرێت بە بێ هیچ کاریگەریەکی خراپ بژمێردرێتەوە. ئەگەر دەتەوێت هەموو داتاکانی هەژمارەکە بسڕەوە، دەتوانیت لە خوارەوە ئەمە بکەیت. title: هەژمارەکان + unblock_email: کردنەوەی ئیمەیڵ + unblocked_email_msg: بەسەرکەوتوویی ئیمەیڵی %{username} کرایەوە unconfirmed_email: ئیمەیڵی پشتڕاستنەکراو undo_sensitized: " هەستیار نەکردن" undo_silenced: بێدەنگ ببە @@ -227,17 +166,21 @@ ckb: approve_user: پەسەندکردنی بەکارهێنەر assigned_to_self_report: تەرخانکردنی گوزارشت change_email_user: گۆڕینی ئیمەیڵ بۆ بەکارهێنەر + change_role_user: گۆڕینی ڕۆڵی بەکارهێنەر confirm_user: دڵنیابوون لە بەکارهێنەر create_account_warning: دروستکردنی ئاگاداری create_announcement: دروستکردنی راگەیەندراو + create_canonical_email_block: دروستکردنی بلۆککردنی ئیمەیڵ create_custom_emoji: دروستکردنی ئێمۆمۆجی دڵخواز create_domain_allow: دروستکردنی ڕێپێدان بە دۆمەین create_domain_block: دروستکردنی بلۆکی دۆمەین create_email_domain_block: دروستکردنی بلۆکی دۆمەینی ئیمەیڵ create_ip_block: دروستکردنی یاسای IP create_unavailable_domain: دروستکردنی دۆمەینی بەردەست نییە + create_user_role: دروستکردنی پلە demote_user: دابەزاندنی ئاستی بەکارهێنەر destroy_announcement: سڕینەوەی راگەیەندراو + destroy_canonical_email_block: سڕینەوەی بلۆکی ئیمەیڵ destroy_custom_emoji: سڕینەوەی ئێمۆمۆجی تایبەتمەند destroy_domain_allow: سڕینەوەی ڕێپێدان بە دۆمەین destroy_domain_block: سڕینەوەی بلۆکی دۆمەین @@ -246,6 +189,7 @@ ckb: destroy_ip_block: سڕینەوەی یاسای IP destroy_status: دۆخ بسڕەوە destroy_unavailable_domain: دۆمەینی بەردەست نییە بسڕەوە + destroy_user_role: لەناوبردنی پلە disable_2fa_user: لەکارخستنی 2FA disable_custom_emoji: سڕینەوەی ئێمۆمۆجی تایبەتمەند disable_sign_in_token_auth_user: ڕەسەنایەتی نیشانەی ئیمەیڵ بۆ بەکارهێنەر لەکاربخە @@ -259,6 +203,7 @@ ckb: reject_user: بەکارهێنەر ڕەت بکەرەوە remove_avatar_user: لابردنی وێنۆجکە reopen_report: دووبارە کردنەوەی گوزارشت + resend_user: دووبارە ناردنی ئیمەیڵی پشتڕاستکردنەوە reset_password_user: گەڕانەوەی تێپەڕوشە resolve_report: گوزارشت چارەسەربکە sensitive_account: میدیاکە لە هەژمارەکەت وەک هەستیار نیشانە بکە @@ -272,10 +217,11 @@ ckb: update_announcement: بەڕۆژکردنەوەی راگەیەندراو update_custom_emoji: بەڕۆژکردنی ئێمۆمۆجی دڵخواز update_domain_block: نوێکردنەوەی بلۆکی دۆمەین + update_ip_block: نوێکردنەوەی یاسای IP update_status: بەڕۆژکردنی دۆخ + update_user_role: نوێکردنەوەی پلە actions: update_status_html: "%{name} پۆستی نوێکراوە لەلایەن %{target}" - deleted_status: "(نووسراوە سڕاوە)" empty: هیچ لاگی کارنەدۆزرایەوە. filter_by_action: فلتەر کردن بە کردار filter_by_user: فلتەر کردن بە کردار @@ -578,93 +524,15 @@ ckb: empty: هێشتا هیچ یاسایەکی سێرڤەر پێناسە نەکراوە. title: یاساکانی سێرڤەر settings: - activity_api_enabled: - desc_html: ژماردنی دۆخی بڵاوکراوە ی ناوخۆیی و بەکارهێنەرە چالاکەکان و تۆماری نوێ لە سەتڵی هەفتانە - title: بڵاوکردنەوەی ئاماری کۆ دەربارەی چالاکی بەکارهێنەر - bootstrap_timeline_accounts: - desc_html: چەند ناوی بەکارهێنەرێک جیابکە بە بۆر، تەنها هەژمارەی بلۆککراوەکان و ناوخۆیی کاردەکەن. بنەڕەت کاتێک بەتاڵ بوو هەموو بەڕێوەبەرە خۆجێیەکانن. - title: بەدواداچوەکانی گریمانەیی بۆ بەکارهێنەرە نوێکان - contact_information: - email: ئیمەیلی بازرگانی - username: ناوی بەکارهێنەر - custom_css: - desc_html: دەستکاری کردنی شێوەی CSS بارکراو لەسەر هەموو لاپەڕەکان - title: CSSی تایبەتمەند - default_noindex: - desc_html: کاردەکاتە سەر هەموو بەکارهێنەرەکان کە ئەم ڕێکخستنە خۆیان نەگۆڕاون - title: بەکارهێنەران لە پێڕستکردنی بزوێنەری گەڕان بە گریمانەیی هەڵبژێن domain_blocks: all: بۆ هەموو کەسێک disabled: بۆ هیچ کەسێک - title: بلۆکەکانی دۆمەین پیشان بدە users: بۆ چوونە ژوورەوەی بەکارهێنەرانی ناوخۆ - domain_blocks_rationale: - title: پیشاندانی ڕێژەیی - hero: - desc_html: نیشان درا لە پەڕەی سەرەتا. بەلایەنی کەمەوە 600x100px پێشنیارکراوە. کاتێک ڕێک نەکەویت، دەگەڕێتەوە بۆ وێنۆجکەی ڕاژە - title: وێنەی پاڵەوان - mascot: - desc_html: نیشان دراوە لە چەند لاپەڕەیەک. بەلایەنی کەمەوە 293× 205px پێشنیارکراوە. کاتێک دیاری ناکرێت، دەگەڕێتەوە بۆ بەختبەختێکی ئاسایی - title: وێنەی ماسکۆت - peers_api_enabled: - desc_html: ناوی دۆمەینەکانێک کە ئەم ڕاژە پەیوەندی پێوەگرتووە - title: بڵاوکردنەوەی لیستی راژەکانی دۆزراوە - preview_sensitive_media: - desc_html: بینینی لینک لە وێب سایتەکانی تر وێنۆچکەیەک پیشان دەدات تەنانەت ئەگەر میدیاکە بە هەستیاری نیشان کرابێت - title: پیشاندانی میدیای هەستیار لە پێشبینیەکانی OpenGraph - profile_directory: - desc_html: ڕێگەدان بە بەکارهێنەران بۆ دۆزینەوەیان - title: چالاککردنی ڕێنیشاندەرێکی پرۆفایل - registrations: - closed_message: - desc_html: لە پەڕەی پێشەوە پیشان دەدرێت کاتێک تۆمارەکان داخراون. دەتوانیت تاگەکانی HTML بەکاربێنیت - title: نامەی تۆمارکردن داخراو - deletion: - desc_html: ڕێ بدە بە هەر کەسێک هەژمارەکەی بسڕیتەوە - title: سڕینەوەی هەژمارە بکەوە - min_invite_role: - disabled: هیچکەس - title: ڕێپێدانی بانگهێشتەکان لەلایەن - require_invite_text: - desc_html: کاتێک تۆمارکردنەکان پێویستیان بە ڕەزامەندی دەستی هەیە، "بۆچی دەتەوێت بەشداری بکەیت؟" نووسینی دەق ئیجبارییە نەک ئیختیاری registrations_mode: modes: approved: پەسەندکردنی داواکراو بۆ ناوتۆمارکردن none: کەس ناتوانێت خۆی تۆمار بکات open: هەر کەسێک دەتوانێت خۆی تۆمار بکات - title: مەرجی تۆمارکردن - show_known_fediverse_at_about_page: - desc_html: کاتێک ناچالاک کرا، هێڵی کاتی گشتی کە بەستراوەتەوە بە لاپەڕەی ئێستا سنووردار دەبن، تەنها ناوەڕۆکی ناوخۆیی پیشاندەدرێن - title: نیشاندانی ڕاژەکانی دیکە لە پێشنەمایەشی ئەم ڕاژە - show_staff_badge: - desc_html: پیشاندانی هێمایەک هاوکار لە سەر پەڕەی بەکارهێنەر - title: نیشاندانی هێمای هاوکار - site_description: - desc_html: کورتە باسیک دەربارەی API، دەربارەی ئەوە چ شتێک دەربارەی ئەم ڕاژەی ماستۆدۆن تایبەتە یان هەر شتێکی گرینگی دیکە. دەتوانن HTML بنووسن، بەتایبەت <a> وە <em>. - title: دەربارەی ئەم ڕاژە - site_description_extended: - desc_html: شوێنیکی باشە بۆ نووسینی سیاسەتی ئیس، یاسا و ڕێسا ، ڕێنمایی و هەر شتیک کە تایبەت بەم ڕاژیە، تاگەکانی HTMLــلیش ڕێگەی پێدراوە - title: زانیاری تەواوکەری تایبەتمەندی - site_short_description: - desc_html: نیشان لە شریتی لاتەنیشت و مێتا تاگەکان. لە پەرەگرافێک دا وەسفی بکە کە ماستۆدۆن چیە و چی وا لە ڕاژە کە دەکات تایبەت بێت. - title: دەربارەی ئەم ڕاژە - site_terms: - desc_html: دەتوانیت سیاسەتی تایبەتیێتی خۆت بنووسیت، مەرجەکانی خزمەتگوزاری یان یاسایی تر. دەتوانیت تاگەکانی HTML بەکاربێنیت - title: مەرجەکانی خزمەتگوزاری ئاسایی - site_title: ناوی ڕاژە - thumbnail: - desc_html: بۆ پێشبینین بەکارهاتووە لە ڕێگەی OpenGraph وە API. ڕووناکی بینین ١٢٠٠x٦٣٠پیکسێڵ پێشنیارکراوە - title: وێنەی بچکۆلەی ڕاژە - timeline_preview: - desc_html: لینکەکە نیشان بدە بۆ هێڵی کاتی گشتی لەسەر پەڕەی نیشتنەوە و ڕێگە بە API بدە دەستگەیشتنی هەبێت بۆ هێڵی کاتی گشتی بەبێ سەلماندنی ڕەسەنایەتی - title: ڕێگەبدە بە چوونە ژورەوەی نەسەلمێنراو بۆ هێڵی کاتی گشتی - title: ڕێکخستنەکانی ماڵپەڕ - trendable_by_default: - desc_html: کاریگەری لەسەر هاشتاگی پێشوو کە پێشتر ڕێگە پێنەدراوە - title: ڕێگە بدە بە هاشتاگی بەرچاوکراوە بەبێ پێداچوونەوەی پێشوو - trends: - desc_html: بە ئاشکرا هاشتاگی پێداچوونەوەی پێشوو پیشان بدە کە ئێستا بەرچاوکراوەن - title: هاشتاگی بەرچاوکراوە site_uploads: delete: سڕینەوەی فایلی بارکراو destroyed_msg: بارکردنی ماڵپەڕ بە سەرکەوتوویی سڕدراوەتەوە! @@ -721,16 +589,12 @@ ckb: applications: created: بەرنامە بە سەرکەوتوویی دروست کرا destroyed: بەرنامە بە سەرکەوتوویی سڕدراوەتەوە - invalid_url: بەستەری دابینکراو نادروستە regenerate_token: دووبارە دروستکردنەوەی نیشانەی چوونە ژوورەوە token_regenerated: کۆدی دەستپێگەیشتن بە سەرکەوتوویی دروستکرا warning: زۆر ئاگاداربە لەم داتایە. هەرگیز لەگەڵ کەس دا هاوبەشی مەکە! your_token: کۆدی دەستپێگەیشتنی ئێوە auth: - apply_for_account: داواکردنی بانگهێشتێک change_password: تێپەڕوشە - checkbox_agreement_html: من ڕازیم بە یاساکانی ڕاژە وە مەرجەکانی خزمەتگوزاری - checkbox_agreement_without_rules_html: من ڕازیم بە مەرجەکانی خزمەتگوزاری delete_account: سڕینەوەی هەژمارە delete_account_html: گەر هەرەکتە هەژمارەکەت بسڕیتەوە، لە لەم قوناغانە بڕۆیتە پێشەوە. داوای پەسەند کردنتان لێدەگیرێت. description: @@ -770,7 +634,6 @@ ckb: redirecting_to: هەژمارەکەت ناچالاکە لەبەرئەوەی ئێستا دووبارە ئاڕاستەدەکرێتەوە بۆ %{acct}. view_strikes: بینینی لێدانەکانی ڕابردوو لە دژی ئەکاونتەکەت too_fast: فۆڕم زۆر خێرا پێشکەش کراوە، دووبارە هەوڵبدەرەوە. - trouble_logging_in: کێشە ت هەیە بۆ چوونە ژوورەوە? use_security_key: کلیلی ئاسایش بەکاربهێنە authorize_follow: already_following: ئێوە ئێستا شوێن کەوتووی ئەم هەژمارەیەی @@ -828,10 +691,6 @@ ckb: more_details_html: بۆ زانیاری زیاتر، پاراستنی نهێنیەکان ببینە. username_available: ناوی تێپەڕبوونت دووبارە بەردەست دەبێت username_unavailable: ناوی تێپەڕبوونت بەردەست نییە - directories: - directory: ڕێنیشاندەرێکی پرۆفایل - explanation: دۆزینەوەی بەکارهێنەران لەسەر بنەمای بەرژەوەندییەکانیان - explore_mastodon: گەڕان لە %{title} disputes: strikes: title_actions: @@ -886,7 +745,6 @@ ckb: title: دەستکاری فلتەر errors: invalid_context: هیچ دەقێکی نادروست نییە یان بێ بڕوایە - invalid_irreversible: فلتەرکردنی بێ گەڕانەوە تەنها کار دەکات لەگەڵ چوارچێوەی ماڵ یان ئاگانامەکان index: delete: سڕینەوە empty: هیچ پالێوەرێکت نیە. @@ -894,9 +752,6 @@ ckb: new: title: زیادکردنی فلتەری نوێ footer: - developers: پەرەپێدەران - more: زیاتر… - resources: سەرچاوەکان trending_now: هەوادارانی ئێستا generic: all: هەموو @@ -925,7 +780,6 @@ ckb: following: لیستی خوارەوە muting: لیستی کپکردنەوە upload: بارکردن - in_memoriam_html: لەیادبوون. invites: delete: لەکارخستن expired: بەسەرچووە @@ -938,7 +792,7 @@ ckb: '86400': ١ ڕۆژ expires_in_prompt: هەرگیز generate: دروستکردنی لینکی بانگهێشت - invited_by: 'بانگهێشتکرایت لەلایەن:' + invited_by: 'بانگهێشت کراویت لەلایەن:' max_uses: one: ١ بار other: "%{count} بار" @@ -994,14 +848,6 @@ ckb: carry_mutes_over_text: ئەم بەکارهێنەرە گواسترایەوە بۆ %{acct}، تۆ بێدەنگت کردووە. copy_account_note_text: 'ئەم بەکارهێنەرە لە %{acct} ەوە گواستیەوە، تێبینیەکانی پێشووت دەربارەیان بوون:' notification_mailer: - digest: - action: پیشاندانی هەموو ئاگانامەکان - body: ئەمە کورتەی ئەو نامانەی لە دەستت دا لە دوا سەردانیت لە %{since} - mention: "%{name} ئاماژەی بە تۆ کرد لە:" - new_followers_summary: - one: لەکاتێک کە نەبوو ،شوێنکەوتوویێکی نوێت پەیداکرد،ئافەرم! - other: کاتیک کە نەبووی %{count} شوێنکەوتوویێکی نوێت پەیدا کرد! چ باشە! - title: لە غیابی تۆدا... favourite: body: 'دۆخت پەسەندکراوە لەلایەن %{name}:' subject: "%{name} دۆخی تۆی پەسەند کرد" @@ -1078,22 +924,7 @@ ckb: remove_selected_follows: کۆتایی بە بەدوادانەچوی بەکارهێنەرە دیاریکراوەکان بدە status: دۆخی هەژمارە remote_follow: - acct: ناونیشانی هەژمارەی username@domainخۆت لێرە بنووسە missing_resource: نەیتوانی URLی ئاراستەکردنەوەی پێویست بدۆزێتەوە بۆ ئەژمێرەکەت - no_account_html: هێشتا نەبووی بە ئەندام؟ لێرە دەتوانی هەژمارەیەک دروست بکەی - proceed: بەردەوام بە بۆ بەدواداچوون - prompt: 'تۆ بەدوای دا دەچیت:' - reason_html: " بۆچی ئەم هەنگاوە پێویستە؟ %{instance} لەوانەیە ئەو ڕاژەیە نەبێت کە تۆ تۆمارت کردووە، بۆیە پێویستە سەرەتا دووبارە ئاڕاستەت بکەین بۆ ڕاژەکاری ماڵەوەت." - remote_interaction: - favourite: - proceed: بۆ دڵخوازکردنی ئەم توتە - prompt: 'دەتەوێت ئەم تووتە تپەسەند بکەیت؛:' - reblog: - proceed: بەردەوام بە بۆ دووبارە توتاندن - prompt: 'دەتەوێت ئەم تووتە دووبارە بکەیتەوە:' - reply: - proceed: بۆ وەڵامدانەوە - prompt: 'دەتەوێت ئەم تووتە وڵام بدەیتەوە:' scheduled_statuses: over_daily_limit: ئێوە لە سنووری ڕیپێدراوی %{limit} توتی ئەو رۆژە،خۆرتر ڕۆیشتوویت over_total_limit: تۆ سنووری خشتەکراوی %{limit} ت بەزاندووە @@ -1102,7 +933,6 @@ ckb: activity: دوایین چالاکی browser: وێبگەڕ browsers: - blackberry: بلاکبێری chrome: کرۆم edge: مایکرۆسۆفت ئیچ electron: ئەلکترۆن @@ -1116,15 +946,12 @@ ckb: phantom_js: فانتۆم جەی ئێس qq: وێبگەڕی QQ safari: سافری - uc_browser: وێبگەڕی UC current_session: دانیشتنی ئێستا description: "%{browser} لەسەر %{platform}" explanation: ئەمانە وێبگەڕەکەن کە ئێستا چووەتە ژوورەوە بۆ ئەژمێری ماستۆدۆنی خۆت. ip: ئای‌پی platforms: android: ئەندرۆید - blackberry: بلاکبێری - chrome_os: سیستەمی کارگێڕی کرۆم firefox_os: سیستەمی کارگێڕی فایەرفۆکس linux: لینۆکس mac: ماک @@ -1207,85 +1034,6 @@ ckb: sensitive_content: ناوەڕۆکی هەستیار tags: does_not_match_previous_name: لەگەڵ ناوی پێشوو یەک ناگرێتەوە - terms: - body_html: | -

      سیاسەتی تایبەت

      -

      چ زانیاریێک کۆ دەکەینەوە؟

      -
        -
      • زانیاری ئەژمێری بنەڕەتی: ئەگەر تۆ لەسەر ئەم ڕاژەی تۆماربکەیت، لەوانەیە داوات لێبکرێت ناوی بەکارهێنەر، ناونیشانی ئیمەیڵ و نهێنوشە تێبنووسیت. هەروەها دەتوانیت زانیاری پرۆفایلی زیاتر تێبنووسی ت وەک ناوی پیشاندان و ژیاننامە، و بارکردنی وێنەی پرۆفایل و وێنەی سەرپەڕە. ناوی بەکارهێنەر، ناوی پیشاندان، ژیاننامە، وێنەی پرۆفایل و وێنەی سەرپەڕە هەمیشە بە ئاشکرا لیست کراوە.
      • -
      • پۆستەکان، بەدواکەوتن و زانیاری گشتی : لیستی ئەو کەسانەی کە پەیڕەوی دەکەیت بە ئاشکرا لیست کراوە، هەمان شت بۆ شوێنکەوتەکانت ڕاستە. کاتێک ئیمەیڵێکت پێشکەش کرد، بەروار و کات خەزن کراوە و هەروەها ئەو بەرنامەیەی کە نامەکەت لەوە پێشکەش کردووە. نامەکان لەوانەیە هاوپێچی میدیای تێدابێت، وەک وێنە و ڤیدیۆ. گشتی و لیستە نەکراوەکان بابەتەکان بە ئاشکرا بەردەستن. کاتێک بابەتێک پێشکەش دەکەیت لەسەر پرۆفایلەکەت، کە هەروەها زانیاری بەردەستی گشتیە. بابەتەکانت دەگەیەنینە شوێنکەوتەکانت، لە هەندێک حاڵەتدا مانای وایە دەگەیەنینە ڕاژەکاری جیاواز و کۆپیەکان لەوێ هەڵگیراون. کاتێک بابەتەکان دەسڕیتەوە، ئەمە بە هەمان شێوەیە دەگەیەنیتە شوێنکەوتوانی خۆت. کاری سەرلێبڕین یان بە دڵنییاکردنی پۆستی تر هەمیشە گشتیە.
      • -
      • ڕاستەوخۆ و تەنها شوێنکەوتوانی بابەتەکان: هەموو بابەتەکان خەزن کراون و لە ڕاژەکارەکە دا پرۆسەکراون. پۆست تەنها شوێنکەوتوانی خۆت دەگەیەنینە شوێنکەوتوانی خۆت و بەکارهێنەران کە تێیدا باس دەکرێت، و پۆستی ڕاستەوخۆش تەنها دەگەیەنینە ئەو بەکارهێنەرانەی کە ئاماژەیان پێکراوە لە هەندێک حاڵەتدا واتە دەگەیەنینە ڕاژەی جیاوازەکان و کۆپیەکان لەوێ هەڵگیراون ئێمە هەوڵی باوەڕێکی باش دەکەین بۆ سنووردارکردنی گەیشتن بەو پۆستانە تەنها بۆ کەسانی ڕێگەپێدراو، بەڵام لەوانەیە ڕاژەکارەکانی تر سەرکەوتوو نەبوون. بۆیە گرنگە پێداچوونەوە بە سێرڤەرەکان بکەیت کە شوێنکەوتوانی تۆ هی ئەوەن. لەوانەیە بژاردەیەک بگۆڕیت بۆ پەسەندکردن و ڕەتکردنەوەی شوێنکەوتوانی نوێ بە دەستی لە ڕێکبەندەکان. تکایە لە بیرت بێت کە کارپێکەرەکانی سێرڤەرەکە و هەر خزمەتکاری وەرگرێک لەوانەیە ئەم جۆرە نامانە ، و وەرگرەکان لەوانەیە گرتەی شاشە یان کۆپی بکەن یان بە پێچەوانەوە دووبارە بەشداری پێبکەن. هیچ زانیاریەکی مەترسیدار لەسەر ماستۆدۆن بڵاو
      • -
      • ئای پی و مێتاداتای تر: کاتێک دەچیتە ژوورەوە، ئێمە ئەو ئای پی ە تۆمار دەکەین کە تۆ لە ناوی ەوە داخڵ تدەکەیت، هەروەها ناوی بەرنامەی وێبگەڕەکەت. هەموو ئەو کۆکراوانەی لە کۆبوونەوەکاندا هەن بۆ پێداچوونەوە و بەتاڵکردنەوەت لە ڕێکبەندەکان. نوێترین ناونیشانی IP بەکارهێنراوە خەزن کراوە بۆ ١٢ مانگ. هەروەها لەوانەیە ئێمە مادە ڕاژەکارەکان بهێڵین کە ئای پی ئەدرێسی هەموو داواکارییەک بۆ ڕاژەکارەکانمان
      • -
      - < hr="spacer" /> - -

      ئێمە زانیاری ئێوەمان بۆ چییە؟

      - -

      ئەو زانیاریانەی لە ئێوە کۆی دەکەین لەوانەیە بەم ڕێگایانە بەکار بهێنرێت:

      - -
        -
      • بۆ دابینکردنی ئەرکە سەرەکیەکانی ماستۆدۆن. دەتوانیت تەنها کارلێک بکەیت لەگەڵ ناوەڕۆکی کەسانی تر و ناوەڕۆکی خۆت پۆست بکەیت کاتێک دەچیتە ژوورەوە. بۆ نموونە، لەوانەیە شوێن کەسانی تر بکەویت بۆ بینینی پۆستە تێکەڵەکانیان لە تایم لاینی ماڵەوەی تایبەتی خۆت.
      • -
      • بۆ چاودێری کردنی کۆمەڵگا، بۆ نموونە بەراوردکردنی ناونیشانی IPەکەت لەگەڵ کەسانی ناسراو بۆ دیاریکردنی خۆدزینەوە یان پێشێلکاریتر.
      • -
      • ئەو ئیمەیڵەی کە تۆ دەستەبەرت کردووە لەوانەیە بەکاربێت بۆ ناردنی زانیاری، ئاگاداری دەربارەی کەسانی تر کە کارلێک دەکەن لەگەڵ ناوەڕۆکەکەت یان ناردنی نامەکانت، و وەڵامدانەوەی پرسیارکردنەکان، و/یان داواکارییان یان پرسیارەکانی تر.
      • -
      - < hr="spacer" /> - -

      چۆن زانیاریەکەت دەپارێزین؟

      - -

      ئێمە چەندین پێوانەی ئەمنی جۆراوجۆر جێبەجێ دەکەین بۆ پاراستنی سەلامەتی زانیاری ە تایبەتیەکانت کاتێک تۆ داخڵت کردووە یان پێشکەشکردن یان چوونە ژوورەوە بۆ زانیاری تایبەتی. لە نێوان شتەکانی تردا، دانیشتنی وێبگەڕەکەت، هەروەها ترافیکی نێوان کاربەرنامەکانت و API، بە SSL پارێزراوە، و نهێنوشەکەت بە بەکارهێنانی ئەلگاریتمی یەک-ڕێگەی بەهێز بە هاوسێکراوە. دەتوانیت سەلماندنی دوو-فاکتەر بەتوانا بکەیت بۆ زیاتر پاراستنی چوونە ژوورەوە بۆ ئەژمێرەکەت.

      - - < hr="spacer" /> - < hr="spacer" /> - -

      بیمەنامەی هێشتنەوە داتامان چییە؟

      - -

      ئێمە بە باشی هەوڵ بۆ باوەڕەکان

      - -
        -
      • سێرڤەری پاراستنی ناونووسەکان کە ناونیشانی ئای پی تێدایە بۆ هەموو داواکاریەکان بۆ ئەم سێرڤەرە، تا ئێستا وەک ئەو جۆرە لۆگانە پارێزراون، زیاتر لە 90 ڕۆژ.
      • -
      • ئای پیەکە بپارێزە کە پەیوەندی بە بەکارهێنەرە تۆمارکراوەکان هەیە زیاتر لە 12 مانگ.
      • -
      -

      دەتوانیت داواکاری و داگرتنی ئەرشیفی ناوەڕۆکەکەت بکەیت، لەوانە بابەتەکانت، هاوپێچەکانی میدیا، وێنەی پرۆفایل، و وێنەی سەرپەڕە.

      - -

      تۆ دەتوانیت بە شێوەیەکی نائاسایی ئەژمێرەکەت بسڕیتەوە لە هەر کاتێکدا.

      - - < hr="spacer"/> - -

      ئایا ئێمە کۆکیز بەکار بێنە؟

      - -

      بەڵێ کۆکیزەکان فایلی بچووکن کە سایتێک یان دابینکەری خزمەتگوزاریەکەی دەیگوێزێتەوە بۆ هارد درایڤی کۆمپیوتەرەکەت لە ڕێگەی وێبگەڕەکەت (ئەگەر ڕێگەت پێ بدەیت). ئەم کۆکیزانە وێبسایتە بەتوانا دەکەن بۆ ناسینەوەی وێبگەڕەکەت و، ئەگەر ئەژمێرێکی تۆمارکراوت هەیە، بیبەستە بە ئەژمێری تۆمارکراو.

      - -

      کۆکیز بەکاربێنە بۆ تێگەیشتن و هەڵگرتنی پەسەندیەکانی تۆ بۆ سەردانەکانی داهاتوو.

      - - < hr="spacer" /> - -

      > ئایا هیچ زانیارییەک بۆ حزبەکانی دەرەوە ئاشکرا دەکەین؟ - -

      ئێمە زانیاریە تایبەتەکانت نافرۆشین، بازرگانی دەکەین، یان ناگوازرێتەوە بۆ حزبەکانی دەرەوە. ئەمە لایەنی سێیەمی باوەڕپێکراو ی تێدا نییە کە یارمەتیمان دەدات لە کارپێکردنی سایتەکەمان، ئەنجامدانی کارەکانمان، یان خزمەتکردنی ئێوە، هەتا ئەو حزبانە ڕازی بن بە نهێنی هێشتنەوەی ئەم زانیاریانە. هەروەها لەوانەیە زانیاریەکەت بڵاوکەینەوه کاتێک پێمان وایە ئازادکردن گونجاوە بۆ پابەندبوون بە یاسا، سەپاندنی سیاسەتی ماڵپەڕەکەمان، یان پاراستنی مافەکانمان یان مافی تر، موڵک، یان سەلامەتی.

      - -

      لەوانەیە ناوەڕۆکی گشتیت دابەزێنرابێت لەلایەن خزمەتگوزاریەکانی ترەوە لە تۆڕەکەدا. پۆستە گشتی و تەنها شوێنکەوتوانی تۆ دەگەیەنینە ئەو سێرڤەرانەی کە شوێنکەوتوانی تێیدا نواندووە، و پەیامی ڕاستەوخۆ دەگەیەنینە خزمەتکارەکانی وەرگرەکان، لە دووری ئەوەی کە شوێنکەوتوانی یان وەرگرەکان لە سێرڤەرێکی جیاواز لەم.

      - -

      کاتێک تۆ مۆڵەت بە کاربەرنامەیەک بدەیت بۆ بەکارهێنانی ئەژمێرەکەت، بەگوێرەی مەودای مۆڵەتەکانت کە پەسەندت کردووە، لەوانەیە بچێتە ناو زانیاری پرۆفایلی گشتی، لیستی خوارەوەت، شوێنکەوتوانی تۆ، لیستەکانت، هەموو بابەتەکانت، و دڵراوەکانی تۆ. کاربەرنامەکان هەرگیز ناتوانن دەستگەیشتنیان هەبێت بە ناونیشانی ئیمەیڵ یان نهێنوشە.

      - < hr="spacer" /> - -

      بەکارهێنانی سایت لەلایەن منداڵانەوە

      - -

      ئەگەر ئەم سێرڤەرە لە یەکێتی ئەورووپا یان ئی ئی ئی ئەی بێت: ماڵپەڕ، بەرهەم و خزمەتگوزارییەکانی ئێمە هەموویان ئاراستەی ئەو کەسانە دەکرێت کە بە لایەنی کەمەوە 16 ساڵ ن. ئەگەر تەمەنت لە خوار 16 ساڵەوە بێت، لە سەر پێداویستی GDPR (General Data Protection Regulation) ئەم سایتە بەکارمەهێنیت.

      - -

      ئەگەر ئەم سێرڤەرە لە ئەمریکا بێت: ماڵپەڕ و بەرهەم و خزمەتگوزاریەکانمان هەمووی ئاراستەی ئەو کەسانە دەکرێت کە بە لایەنی کەمەوە 13 ساڵ ن. ئەگەر تۆ لە خوار تەمەنی 13 ساڵیەوەبیت، لە سەر داواکاریەکانی COPPA (Children's Online Privacy Protection act) ئەم سایتە بەکارمەهێنیت.

      - -

      یاسا دەتوانێت جیاواز بێت ئەگەر ئەم سێرڤەرە لە دەسەڵاتی دادوەری تر بێت.

      - - < hr="spacer" /> - -

      گۆڕانکاریەکان لە سیاسەتی تایبەتمەندیمان

      - -

      ئەگەر بڕیارمان دا سیاسەتی تایبەتمەندیمان بگۆڕین، ئەو گۆڕانکاریانە لەم پەڕەیە بڵاودەکەینەوە.

      - -

      ئەم دۆکیومێنتە CC-BY-SA ە. دوایین جار نوێکرایەوە لە 7ی ئازاری 2018.

      - -

      لە بنەڕەتدا لە < href="https://github.com/discourse/discourse">Discourse privacy policy.

      - title: "%{instance} مەرجەکانی خزمەتگوزاری و سیاسەتی تایبەتیێتی" themes: contrast: ماستۆدۆن (کۆنتراستی بەرز) default: ماستۆدۆن (ڕەش) @@ -1324,20 +1072,11 @@ ckb: suspend: هەژمار ڕاگیرا welcome: edit_profile_action: پرۆفایلی جێگیرکردن - edit_profile_step: 'ئێوە دەتوانن پرۆفایلەکەتان بە دڵخوازی خۆتان بگۆڕن: دەتوانن وێنەی پرۆفایل،وێنەی پاشبنەما،ناو و... هتد دابین بکەن. ئەگەر هەرەکت بێت دەتوانی هەژمارەکەت تایبەت بکەیتەوە تا تەنها کەسانێک کە ئێوە ڕێگەتان داوە دەتوانن شوێنکەوتوو هەژمارەکەتان بن.' explanation: ئەمە چەند ئامۆژگارییەکن بۆ دەست پێکردنت final_action: دەست بکە بە بڵاوکردنەوە - final_step: 'چیزی بنووسید! تەنانەت گەر ئێستا کەسێک شوێن کەوتووی ئێوە نەبوو، هەژمارەکانی دیکە و سەردانکەرەکانی پرۆفایلەکەتان نووسراوەکانی گشتی ئێوە دەبینن. بۆ نموونە لە پێرستی نووسراوە خۆماڵییەکان و لە لکاوەی(هاشتاگ) ەکان، شایەد هەرەکتان بێت بە چەسپکراوەی # خۆتان بناسێنن.' full_handle: ناوی بەکارهێنەری تەواوی ئێوە full_handle_hint: ئەمە ئەو شتەیە کە بە هاوڕێکانت دەلێی بۆ ئەوەی پەیام یان لە ڕاژەیەکی دیکەی ترەوە بەدوات بکەون. - review_preferences_action: گۆڕینی پەسەندەکان - review_preferences_step: دڵنیابە لە دانانی پەسەندکراوەکانت، وەک کام ئیمەیل کە دەتەوێت وەریبگرێ، یان دەتەوێت چ ئاستێکی تایبەتیت بۆ بابەتەکانت پێش گریمانە بێت. ئەگەر نەخۆشی جوڵەت(دڵ تێکەڵدان لە وێنە جووڵەییەکان) نیە، دەتوانیت هەڵبژێریت بۆ بەتواناکردنی پەخشکردنی خۆکاری GIF. subject: بەخێربیت بۆ ماستۆدۆن - tip_federated_timeline: پێرستی نووسراوەکانی هەمووشوێنێک وێنەیەکی گشتی لە تۆڕی ماستۆدۆنە، بەڵام تەنها بریتییە لە هاوسێکان کە شوێنیان کەوتن؛بس تەواو نییە. - tip_following: بە شیوەی بنەڕەتی بەڕێوەبەران ڕاژەکەتان چاودێری دەکەن، بۆ پەداکردنی کەسانی سەرنجڕاکێشە چاودێری نووسراوە ناخۆیی و نووسراوەکانی شوێنەکانی دیکە بکەن. - tip_local_timeline: پێرستی نووسراوە ناوخۆییەکان شێوەیەکی تەواو لە بەکارهێنەران لە سەر %{instance} پیسان دەدەن، ئەمانە جەیرانی ئێوەن! - tip_mobile_webapp: ئەگەر وێبگەڕی مۆبایلەکەت پێشنیاری زیادکردنی ماستۆدۆن بۆ شاشەی ڕوومێزیەکەتی کرد، دەتوانیت ئاگانامەکانی هاندان وەربگری. لە زۆر ڕوەوە وەک بەرنامەیەیەکی ئەسڵی ئیس دەکا! - tips: ئامۆژگاریەکان title: بەخێربێیت، بەکارهێنەر %{name}! users: follow_limit_reached: ناتوانیت زیاتر لە %{limit} خەڵک پەیڕەو کەیت diff --git a/config/locales/co.yml b/config/locales/co.yml index 156ec696e5bd61..c9d22cd124165e 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -1,91 +1,26 @@ --- co: about: - about_hashtag_html: Quessi sò statuti pubblichi taggati cù #%{hashtag}. Pudete interagisce cù elli sì voi avete un contu in qualche parte di u fediversu. about_mastodon_html: 'A rete suciale di u futuru: micca pubblicità, micca surveglianza, cuncezzione etica, è dicentralizazione! Firmate in cuntrollu di i vostri dati cù Mastodon!' - about_this: À prupositu - active_count_after: attivi - active_footnote: Utilizatori Attivi Mensili (UAM) - administered_by: 'Amministratu da:' - api: API - apps: Applicazione per u telefuninu - apps_platforms: Utilizà Mastodon dapoi à iOS, Android è altre piattaforme - browse_directory: Navigà un'annuariu di i prufili è filtra per interessi - browse_local_posts: Navigà un flussu di statuti pubblichi da stu servore - browse_public_posts: Navigà un flussu di i statuti pubblichi nant'à Mastodon - contact: Cuntattu contact_missing: Mancante contact_unavailable: Micca dispunibule - discover_users: Scopre utilizatori - documentation: Ducumentazione - federation_hint_html: Cù un contu nant'à %{instance} puderete siguità ghjente da tutti i servori Mastodon è ancu più d'altri. - get_apps: Pruvà un'applicazione di telefuninu hosted_on: Mastodon allughjatu nant’à %{domain} - instance_actor_flash: | - Stu contu ghjè un'attore virtuale chì ghjove à riprisentà u servore sanu è micca un veru utilizatore. - Hè utilizatu da a federazione è ùn deve micca esse bluccatu eccettu s'e voi vulete bluccà tuttu u servore, in quellu casu duvereste utilizà un blucchime di duminiu. - learn_more: Amparà di più - privacy_policy: Pulitica di vita privata - rules: Regule di u servore - rules_html: 'Eccu un riassuntu di e regule da siguità s''e voi vulete creà un contu nant''à quessu servore di Mastodon:' - see_whats_happening: Vede cio chì si passa - server_stats: 'Statistiche di u servore:' - source_code: Codice di fonte - status_count_after: - one: statutu - other: statuti - 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: - domain: Servore - 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:' - rejecting_media_title: Media filtrati - silenced: 'I statuti da stu servore ùn saranu mai visti tranne nant''a vostra pagina d''accolta s''e voi siguitate l''autore:' - silenced_title: Servori silenzati - suspended: 'Ùn puderete micca siguità qualsiasi nant''à stu servore, i dati versu o da quallà ùn saranu mai accessi, scambiati o arregistrati:' - suspended_title: Servori suspesi - 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 - user_count_before: Ci sò - what_is_mastodon: Quale hè Mastodon? accounts: - choices_html: "%{name} ricumanda:" - endorsements_hint: Pudete appughjà i conti chì siguitate dapoi l'interfaccia web, è saranu mustrati quì. - featured_tags_hint: Pudete mette in mostra qualchì hashtag chì saranu affissati quì. follow: Siguità followers: one: Abbunatu·a other: Abbunati following: Abbunamenti instance_actor_flash: Stu contu virtuale riprisenta u servore stessu, micca un'utilizatore individuale. Hè utilizatu per scopi di federazione è ùn duveria mai esse suspesu. - joined: Quì dapoi %{date} last_active: ultima attività link_verified_on: A pruprietà d'issu ligame hè stata verificata u %{date} - media: Media - moved_html: "%{name} hà cambiatu di contu, avà hè nant’à %{new_profile_link}:" - network_hidden: St'infurmazione ùn hè micca dispunibule nothing_here: Ùn c’hè nunda quì! - people_followed_by: Seguitati da %{name} - people_who_follow: Seguitanu %{name} pin_errors: following: Duvete digià siguità a persona che vulete ricumandà posts: one: Statutu other: Statuti posts_tab_heading: Statuti - posts_with_replies: Statuti è risposte - roles: - admin: Amministratore - bot: Bot - group: Gruppu - moderator: Muderatore - unavailable: Prufile micca dispunibule - unfollow: Ùn siguità più admin: account_actions: action: Realizà un'azzione @@ -102,7 +37,6 @@ co: avatar: Ritrattu di prufile by_domain: Duminiu change_email: - changed_msg: Email di u contu cambiatu! current_email: E-mail attuale label: Mudificà l’e-mail new_email: Novu e-mail @@ -179,12 +113,6 @@ co: reset: Riinizializà reset_password: Riinizializà a chjave d’accessu resubscribe: Riabbunassi - role: Auturizazione - roles: - admin: Amministratore - moderator: Muderatore - staff: Squadra - user: Utilizatore search: Cercà search_same_email_domain: Altri utilizatori cù listessu duminiu d'e-mail search_same_ip: Altri utilizatori cù listessa IP @@ -279,7 +207,6 @@ co: create_unavailable_domain_html: "%{name} hà firmatu a distribuzione à u duminiu %{target}" demote_user_html: "%{name} hà ritrugradatu l’utilizatore %{target}" destroy_announcement_html: "%{name} hà sguassatu u novu annunziu %{target}" - destroy_custom_emoji_html: "%{name} hà sguassatu l'emoji %{target}" destroy_domain_allow_html: "%{name} hà sguassatu u duminiu %{target} da a lista bianca" destroy_domain_block_html: "%{name} hà sbluccatu u duminiu %{target}" destroy_email_domain_block_html: "%{name} hà messu u duminiu e-mail %{target} nant’a lista bianca" @@ -308,7 +235,6 @@ co: update_custom_emoji_html: "%{name} hà messu à ghjornu l’emoji %{target}" update_domain_block_html: "%{name} hà messu à ghjornu u blucchime di duminiu per %{target}" update_status_html: "%{name} hà cambiatu u statutu di %{target}" - deleted_status: "(statutu sguassatu)" empty: Nunda trovu. filter_by_action: Filtrà da azzione filter_by_user: Filtrà da utilizatore @@ -536,94 +462,15 @@ co: edit: Mudificà regula title: Regule di u servore settings: - activity_api_enabled: - desc_html: Numeri di statuti creati quì, utilizatori attivi, è arregistramenti novi tutte e settimane - title: Pubblicà statistiche nant’à l’attività di l’utilizatori - bootstrap_timeline_accounts: - desc_html: Cugnomi separati cù virgule. Solu pussibule cù conti lucali è pubblichi. Quandu a lista hè viota, tutti l’amministratori lucali saranu selezziunati. - title: Abbunamenti predefiniti per l’utilizatori novi - contact_information: - email: E-mail prufissiunale - username: Identificatore di cuntattu - custom_css: - desc_html: Mudificà l'apparenza cù CSS caricatu nant'à ogni pagina - title: CSS persunalizatu - default_noindex: - desc_html: Tocca tutti quelli ch'ùn anu micca cambiatu stu parametru - title: Ritirà l'utilizatori di l'indicazione nant'à i mutori di ricerca domain_blocks: all: À tutti disabled: À nimu - title: Mustrà blucchime di duminiu users: À l'utilizatori lucali cunnettati - domain_blocks_rationale: - title: Vede ragiò - hero: - desc_html: Affissatu nant’a pagina d’accolta. Ricumandemu almenu 600x100px. S’ellu ùn hè micca definiti, a vignetta di u servore sarà usata - title: Ritrattu di cuprendula - mascot: - desc_html: Affissata nant'à parechje pagine. Almenu 293x205px ricumandatu. S'ella hè lasciata viota, a mascotta predefinita sarà utilizata - title: Ritrattu di a mascotta - peers_api_enabled: - desc_html: Indirizzi web stu servore hà vistu indè u fediversu - title: Pubblicà a lista di servori cunnisciuti - preview_sensitive_media: - desc_html: E priviste di i ligami nant'à l'altri siti mustreranu una vignetta ancu s'ellu hè marcatu cum'è sensibile u media - title: Vede media sensibili in e viste OpenGraph - profile_directory: - desc_html: Auturizà a scuperta di l'utilizatori - title: Attivà l'annuariu di i prufili - registrations: - closed_message: - desc_html: Affissatu nant’a pagina d’accolta quandu l’arregistramenti sò chjosi. Pudete fà usu di u furmattu HTML - title: Missaghju per l’arregistramenti chjosi - deletion: - desc_html: Auturizà tuttu u mondu à sguassà u so propiu contu - title: Auturizà à sguassà i conti - min_invite_role: - disabled: Nimu - title: Auturizà l’invitazione da - require_invite_text: - desc_html: Quandu l'arregistramenti necessitanu un'apprubazione manuale, fà chì u testu "Perchè vulete ghjunghje?" sia ubligatoriu invece d'esse facultativu - title: Richiede chì i novi utilizatori empiinu una dumanda d'invitazione registrations_mode: modes: approved: Apprubazione necessaria per arregistrassi none: Nimu ùn pò arregistrassi open: Tutt'ognunu pò arregistrassi - title: Modu d'arregistramenti - show_known_fediverse_at_about_page: - desc_html: Quandu ghjè selezziunatu, statuti di tuttu l’istanze cunnisciute saranu affissati indè a vista di e linee. Altrimente soli i statuti lucali saranu mustrati - title: Vedde tuttu u fediverse cunnisciutu nant’a vista di e linee - show_staff_badge: - desc_html: Mustrerà un badge Squadra nant’à un prufile d’utilizatore - title: Mustrà un badge staff - site_description: - desc_html: Paragrafu di prisentazione nant’a pagina d’accolta. Parlate di cio chì rende stu servore speziale, o d'altre cose impurtante. Pudete fà usu di marchi HTML, in particulare <a> è <em>. - title: Discrizzione di u servore - site_description_extended: - desc_html: Una bona piazza per e regule, infurmazione è altre cose chì l’utilizatori duverìanu sapè. Pudete fà usu di marchi HTML - title: Discrizzione stesa di u situ - site_short_description: - desc_html: Mustratu indè a barra laterala è i tag meta. Spiegate quale hè Mastodon è ciò chì rende u vostru servore speciale in un paragrafu. S'ella hè lasciata viota, a discrizzione di u servore sarà utilizata. - title: Descrizzione corta di u servore - site_terms: - desc_html: Quì pudete scrive e vostre regule di cunfidenzialità, cundizione d’usu o altre menzione legale. Pudete fà usu di marchi HTML - title: Termini persunalizati - site_title: Nome di u servore - thumbnail: - desc_html: Utilizatu per viste cù OpenGraph è l’API. Ricumandemu 1200x630px - title: Vignetta di u servore - timeline_preview: - desc_html: Vede a linea pubblica nant’a pagina d’accolta - title: Vista di e linee - title: Parametri di u situ - trendable_by_default: - desc_html: Ùn affetta micca quelli chì sò digià stati ricusati - title: Auturizà l'hashtag à esse in tindenze senza verificazione - trends: - desc_html: Mustrà à u pubblicu i hashtag chì sò stati digià verificati è chì sò in e tendenze avà - title: Tendenze di hashtag site_uploads: delete: Sguassà u fugliale caricatu destroyed_msg: Fugliale sguassatu da u situ! @@ -705,16 +552,12 @@ co: applications: created: Applicazione creata destroyed: Applicazione sguassata - invalid_url: L’URL ch’è stata pruvista ùn hè valida regenerate_token: Creà un’altra fiscia d’accessu token_regenerated: A fiscia d’accessu hè stata rigenerata warning: Abbadate à quessi dati. Ùn i date à nisunu! your_token: Rigenerà a fiscia d’accessu auth: - apply_for_account: Dumandà un'invitazione change_password: Chjave d’accessu - checkbox_agreement_html: Sò d'accunsentu cù e regule di u servore è i termini di u serviziu - checkbox_agreement_without_rules_html: Accettu i termini di u serviziu delete_account: Sguassà u contu delete_account_html: S’è voi vulete toglie u vostru contu ghjè quì. Duverete cunfirmà a vostra scelta. description: @@ -751,7 +594,6 @@ co: 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}. too_fast: Furmulariu mandatu troppu prestu, ripruvate. - trouble_logging_in: Difficultà per cunnettavi? use_security_key: Utilizà a chjave di sicurità authorize_follow: already_following: Site digià abbunatu·a à stu contu @@ -809,10 +651,6 @@ co: more_details_html: Per più di ditagli, videte a pulitica di vita privata. username_available: U vostru cugnome riduvinterà dispunibule username_unavailable: U vostru cugnome ùn sarà sempre micca dispunibule - directories: - directory: Annuariu di i prufili - explanation: Scopre utilizatori à partesi di i so centri d'interessu - explore_mastodon: Scopre à %{title} domain_validator: invalid_domain: ùn hè micca un nome di duminiu currettu errors: @@ -864,7 +702,6 @@ co: title: Mudificà u filtru errors: invalid_context: Micca abbastanza cuntestu - invalid_irreversible: A filtrazione irreversibile marchja solu per l'accolta è e nutificazione index: delete: Toglie empty: Ùn avete manc'un filtru. @@ -872,9 +709,6 @@ co: new: title: Aghjunghje un novu filtru footer: - developers: Sviluppatori - more: Di più… - resources: Risorse trending_now: Tindenze d'avà generic: all: Tuttu @@ -905,7 +739,6 @@ co: following: Persone chì seguitate muting: Persone chì piattate upload: Impurtà - in_memoriam_html: In mimoria. invites: delete: Disattivà expired: Spirata @@ -980,14 +813,6 @@ co: carry_mutes_over_text: St'utilizatore hà traslucatu dapoi %{acct}, ch'aviate piattatu. copy_account_note_text: 'St''utilizatore hà traslucatu dapoi %{acct}, eccu e vostr''anziane note nant''à ellu:' notification_mailer: - digest: - action: Vede tutte e nutificazione - body: Eccu cio ch’avete mancatu dapoi à a vostr’ultima visita u %{since} - mention: "%{name} v’hà mintuvatu·a in:" - new_followers_summary: - one: Avete ancu un’abbunatu novu! - other: Avete ancu %{count} abbunati novi! - title: Dapoi l’ultima volta… favourite: body: "%{name} hà aghjuntu u vostru statutu à i so favuriti :" subject: "%{name} hà messu u vostru post in i so favuriti" @@ -1079,22 +904,7 @@ co: remove_selected_follows: Ùn siguità più l'utilizatori selezziunati status: Statutu di u contu remote_follow: - acct: Entrate u vostru cugnome@istanza da induve vulete siguità stu contu missing_resource: Ùn avemu pussutu à truvà l’indirizzu di ridirezzione - no_account_html: Ùn avete micca un contu? Pudete arregistravi quì - proceed: Cuntinuà per siguità - prompt: 'Avete da siguità:' - reason_html: "Perchè hè necessaria sta tappa? %{instance} ùn hè forse micca u servore induve site arregistratu·a, allora primu duvemu riindirizzavi à u vostru servore." - remote_interaction: - favourite: - proceed: Cuntinuà per favurisce - prompt: 'Vulete aghjunghje stu statutu à i vostri favuriti:' - reblog: - proceed: Cuntinuà per sparte - prompt: 'Vulete sparte stu statutu:' - reply: - proceed: Cuntinuà per risponde - prompt: 'Vulete risponde à stu statutu:' scheduled_statuses: over_daily_limit: Avete trapassatu a limita di %{limit} statuti pianificati per stu ghjornu over_total_limit: Avete trapassatu a limita di %{limit} statuti pianificati @@ -1104,7 +914,6 @@ co: browser: Navigatore browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1118,7 +927,6 @@ co: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Sessione attuale description: "%{browser} nant’à %{platform}" @@ -1127,8 +935,6 @@ co: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1242,89 +1048,6 @@ co: sensitive_content: Cuntenutu sensibile tags: does_not_match_previous_name: ùn currisponde micca à l'anzianu nome - terms: - body_html: | -

      Politique de confidentialité

      -

      Quelles informations collectons-nous ?

      - -
        -
      • Informations de base sur votre compte : Si vous vous inscrivez sur ce serveur, il vous sera demandé de rentrer un identifiant, une adresse électronique et un mot de passe. Vous pourrez également ajouter des informations additionnelles sur votre profil, telles qu’un nom public et une biographie, ainsi que téléverser une image de profil et une image d’en-tête. Vos identifiant, nom public, biographie, image de profil et image d’en-tête seront toujours affichés publiquement.
      • -
      • Posts, liste d’abonnements et autres informations publiques : La liste de vos abonnements ainsi que la liste de vos abonné·e·s sont publiques. Quand vous postez un message, la date et l’heure d’envoi ainsi que le nom de l’application utilisée pour sa transmission sont enregistré·e·s. Des médias, tels que des images ou des vidéos, peuvent être joints aux messages. Les posts publics et non listés sont affichés publiquement. Quand vous mettez en avant un post sur votre profil, ce post est également affiché publiquement. Vos messages sont délivrés à vos abonné·e·s, ce qui, dans certains cas, signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Quand vous supprimer un post, il est probable que vos abonné·e·s en soient informé·e·s. Partager un message ou le marquer comme favori est toujours une action publique.
      • -
      • Posts directs et abonné·e·s uniquement : Tous les posts sont stockés et traités par le serveur. Les messages abonné·e·s uniquement ne sont transmis qu’à vos abonné·e·s et aux personnes mentionnées dans le corps du message, tandis que les messages directs ne sont transmis qu’aux personnes mentionnées. Dans certains cas, cela signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Nous faisons un effort de bonne fois pour en limiter l’accès uniquement aux personnes autorisées, mais ce n’est pas nécessairement le cas des autres serveurs. Il est donc très important que vous vérifiiez les serveurs auxquels appartiennent vos abonné·e·s. Il vous est possible d’activer une option dans les paramètres afin d’approuver et de rejeter manuellement les nouveaux·lles abonné·e·s. Gardez s’il-vous-plaît en mémoire que les opérateur·rice·s du serveur ainsi que celles et ceux de n’importe quel serveur récepteur peuvent voir ces messages et qu’il est possible pour les destinataires de faire des captures d’écran, de copier et plus généralement de repartager ces messages. Ne partager aucune information sensible à l’aide de Mastodon.
      • -
      • IP et autres métadonnées : Quand vous vous connectez, nous enregistrons votre adresse IP ainsi que le nom de votre navigateur web. Toutes les sessions enregistrées peuvent être consultées dans les paramètres, afin que vous puissiez les surveiller et éventuellement les révoquer. La dernière adresse IP utilisée est conservée pour une durée de 12 mois. Nous sommes également susceptibles de conserver les journaux du serveur, ce qui inclut l’adresse IP de chaque requête reçue.
      • -
      - -
      - -

      Que faisons-nous des informations que nous collectons ?

      - -

      Toutes les informations que nous collectons sur vous peuvent être utilisées d’une des manières suivantes :

      - -
        -
      • Pour vous fournir les fonctionnalités de base de Mastodon. Vous ne pouvez interagir avec le contenu des autres et poster votre propre contenu que lorsque vous êtes connecté·e. Par exemple, vous pouvez vous abonner à plusieurs autres comptes pour voir l’ensemble de leurs posts dans votre fil d’accueil personnalisé.
      • -
      • Pour aider à la modération de la communauté, par exemple, comparer votre adresse IP à d’autres afin de déterminer si un bannissement a été contourné ou si une autre violation aux règles a été commise.
      • -
      • L’adresse électronique que vous nous avez fournie peut être utilisée pour vous envoyez des informations, des notifications lorsque d’autres personnes interagissent avec votre contenu ou vous envoient des messages, pour répondre à des demandes de votre part ainsi que pour tout autres requêtes ou questions.
      • -
      - -
      - -

      Comment protégeons-nous vos informations ?

      - -

      Nous mettons en œuvre une variété de mesures de sécurité afin de garantir la sécurité de vos informations personnelles quand vous les saisissez, les soumettez et les consultez. Entre autres choses, votre session de navigation ainsi que le trafic entre votre application et l’API sont sécurisés à l’aide de TLS tandis que votre mot de passe est haché en utilisant un puissant algorithme à sens unique. Vous pouvez également activer l’authentification à deux facteurs pour sécuriser encore plus l’accès à votre compte.

      - -
      - -

      Quelle est notre politique de conservation des données ?

      - -

      Nous ferons un effort de bonne foi :

      - -
        -
      • Pour ne pas conserver plus de 90 jours les journaux systèmes contenant les adresses IP de toutes les requêtes reçues par ce serveur.
      • -
      • Pour ne pas conserver plus de 12 mois les adresses IP associées aux utilisateur·ice·s enregistré·e·s.
      • -
      - -

      Vous pouvez demander une archive de votre contenu, incluant vos posts, vos médias joints, votre image de profil et votre image d’en-tête.

      - -

      Vous pouvez, à n’importe quel moment, supprimer votre compte de manière définitive.

      - -
      - -

      Utilisons-nous des témoins de connexion ?

      - -

      Oui. Les témoins de connexion sont de petits fichiers qu’un site ou un service transféres sur le disque dur de votre ordinateur via votre navigateur web (si vous l’avez autorisé). Ces témoins permettent au site de reconnaître votre navigateur et de, dans le cas où vous possédez un compte, de vous associer avec ce dernier.

      - -

      Nous utilisons les témoins de connexion comme un moyen de comprendre et de nous souvenir de vos préférences pour vos prochaines visites.

      - -
      - -

      Divulguons-nous des informations à des tierces parties ?

      - -

      Nous ne vendons, n’échangeons ou ne transférons d’une quelque manière que soit des informations permettant de vous identifier personnellement. Cela n’inclut pas les tierces parties de confiance qui nous aident à opérer ce site, à conduire nos activités commerciales ou à vous servir, tant qu’elles acceptent de garder ces informations confidentielles. Nous sommes également susceptibles de partager vos informations quand nous pensons que c’est nécessaire pour nous conformer à la loi, pour appliquer les politiques de notre site ainsi que pour défendre nos droits, notre propriété, notre sécurité et celles et ceux d’autres personnes.

      - -

      Votre contenu public peut être téléchargé par d’autres serveurs du réseau. Dans le cas où vos abonné·e·s et vos destinataires résideraient sur des serveurs différents du vôtre, vos posts publics et abonné·e·s uniquement peuvent être délivrés vers les serveurs de vos abonné·e·s tandis que vos messages directs sont délivrés aux serveurs de vos destinataires.

      - -

      Quand vous autorisez une application à utiliser votre compte, en fonction de l’étendue des permissions que vous approuvez, il est possible qu’elle puisse accéder aux informations publiques de votre profil, votre liste d’abonnements, votre liste d’abonné·e·s, vos listes, tout vos posts et vos favoris. Les applications ne peuvent en aucun cas accéder à votre adresse électronique et à votre mot de passe.

      - -
      - -

      Utilisation de ce site par les enfants

      - -

      Si ce serveur est situé dans dans l’UE ou l’EEE : Notre site, produits et services sont tous destinés à des personnes âgées de 16 ans ou plus. Si vous avez moins de 16 ans, en application du RGPD (Règlement Général sur la Protection des Données), merci de ne pas utiliser ce site.

      - -

      Si ce serveur est situé dans aux États-Unis d’Amérique : Notre site, produits et services sont tous destinés à des personnes âgées de 13 ans ou plus. Si vous avez moins de 13 ans, en application du COPPA (Children's Online Privacy Protection Act), merci de ne pas utiliser ce site.

      - -

      Les exigences légales peuvent être différentes si ce serveur se trouve dans une autre juridiction.

      - -
      - -

      Modifications de notre politique de confidentialité

      - -

      Dans le cas où nous déciderions de changer notre politique de confidentialité, nous posterons les modifications sur cette page.

      - -

      Ce document est publié sous lincence CC-BY-SA. Il a été mis à jours pour la dernière fois le 7 mars 2018.

      - -

      Originellement adapté de la politique de confidentialité de Discourse.

      - title: Termini d’usu è di cunfidenzialità per %{instance} themes: contrast: Mastodon (Cuntrastu altu) default: Mastodon (Scuru) @@ -1366,20 +1089,11 @@ co: suspend: Contu suspesu welcome: edit_profile_action: Cunfigurazione di u prufile - edit_profile_step: Pudete persunalizà u vostru prufile cù un ritrattu di prufile o di cuprendula, un nome pubblicu persunalizatu, etc. Pudete ancu rende u contu privatu per duvè cunfirmà ogni dumanda d’abbunamentu. explanation: Eccu alcune idee per principià final_action: Principià à pustà - final_step: 'Andemu! Ancu senza abbunati i vostri missaghji pubblichi puderanu esse visti da altre persone, per esempiu nant’a linea lucale è l’hashtag. Pudete ancu prisintavi nant’à u hashtag #introductions.' full_handle: U vostru identificatore cumplettu full_handle_hint: Quessu ghjè cio chì direte à i vostri amichi per circavi, abbunassi à u vostru contu da altrò, o mandà missaghji. - review_preferences_action: Mudificà e priferenze - review_preferences_step: Quì pudete adattà u cumpurtamentu di Mastodon à e vostre priferenze, cum’è l’email che vulete riceve, u nivellu di cunfidenzialità predefinitu di i vostri statuti, o u cumpurtamentu di i GIF animati. subject: Benvenutu·a nant’à Mastodon - tip_federated_timeline: A linea pubblica glubale mostra i statuti da altre istanze nant’a rete Mastodon, mà ùn hè micca cumpleta perchè ci sò soli i conti à quelli sò abbunati membri di a vostr’istanza. - tip_following: Site digià abbunatu·a à l’amministratori di u vostru servore. Per truvà d’altre parsone da siguità, pudete pruvà e linee pubbliche. - tip_local_timeline: A linea pubblica lucale ghjè una vista crunulogica di i statuti di a ghjente nant’à %{instance}. Quessi sò i vostri cunvicini! - tip_mobile_webapp: Pudete aghjunghje Mastodon à a pagina d’accolta di u vostru navigatore di telefuninu per riceve nutificazione, cum’un applicazione! - tips: Cunsiglii title: Benvenutu·a, %{name}! users: follow_limit_reached: Ùn pidete seguità più di %{limit} conti diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 61997886a5e798..4a1674893bd088 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1,69 +1,12 @@ --- cs: about: - about_hashtag_html: Tohle jsou veřejné příspěvky označené hashtagem #%{hashtag}. Pokud máte účet kdekoliv ve fedivesmíru, můžete s nimi interagovat. about_mastodon_html: 'Sociální síť budoucnosti: žádné reklamy, žádné korporátní sledování, etický design a decentralizace! S Mastodonem vlastníte svoje data!' - about_this: O tomto serveru - active_count_after: aktivních - active_footnote: Měsíční aktivní uživatelé (MAU) - administered_by: 'Server spravuje:' - api: API - apps: Mobilní aplikace - apps_platforms: Používejte Mastodon na iOS, Androidu a dalších platformách - browse_directory: Prozkoumejte adresář profilů a filtrujte dle zájmů - browse_local_posts: Prozkoumejte živý proud veřejných příspěvků z tohoto serveru - browse_public_posts: Prozkoumejte živý proud veřejných příspěvků na Mastodonu - contact: Kontakt contact_missing: Nenastaveno contact_unavailable: Neuvedeno - continue_to_web: Pokračovat do webové aplikace - discover_users: Objevujte uživatele - documentation: Dokumentace - federation_hint_html: S účtem na serveru %{instance} můžete sledovat lidi na jakémkoliv ze serverů Mastodon a dalších službách. - get_apps: Vyzkoušejte mobilní aplikaci hosted_on: Mastodon na doméně %{domain} - instance_actor_flash: | - Tento účet je virtuální aktér, který představuje server samotný, nikoliv účet jednotlivého uživatele. - Používá se pro účely federace a nesmí být blokován, pokud nechcete blokovat celý server. V takovém případě použijte blokaci domény. - learn_more: Zjistit více - logged_in_as_html: Aktuálně jste přihlášeni jako %{username}. - logout_before_registering: Již jste přihlášeni. - privacy_policy: Zásady ochrany osobních údajů - rules: Pravidla serveru - rules_html: 'Níže je shrnutí pravidel, která musíte dodržovat, pokud chcete mít účet na tomto Mastodon serveru:' - see_whats_happening: Podívejte se, co se děje - server_stats: 'Statistika serveru:' - source_code: Zdrojový kód - status_count_after: - few: příspěvky - many: příspěvků - one: příspěvek - other: příspěvků - status_count_before: Kteří napsali - tagline: Sledujte své přátele a objevujte nové - terms: Podmínky používání - unavailable_content: Moderované servery - unavailable_content_description: - domain: Server - reason: Důvod - rejecting_media: 'Mediální soubory z tohoto serveru nebudou zpracovány a nebudou zobrazeny žádné náhledy. Pro prohlédnutí médií bude třeba manuálně přejít na druhý server:' - rejecting_media_title: Filtrovaná média - silenced: 'Příspěvky z těchto serverů nebudou zobrazeny ve veřejných časových osách a konverzacích a nebudou generována oznámení o interakcích uživatelů z toho serveru, pokud je nesledujete:' - silenced_title: Omezené servery - suspended: 'Žádná data z těchto serverů nebudou zpracována, ukládána ani vyměňována, čímž bude znemožněna jakákoliv interakce či komunikace s uživateli z těchto serverů:' - suspended_title: Pozastavené servery - unavailable_content_html: Mastodon vám obvykle dovoluje prohlížet si obsah a komunikovat s uživateli z jakéhokoliv dalšího serveru ve fedivesmíru. Tohle jsou výjimky, které byly zavedeny na tomto konkrétním serveru. - user_count_after: - few: uživatelé - many: uživatelů - one: uživatel - other: uživatelů - user_count_before: Domov - what_is_mastodon: Co je Mastodon? + title: O aplikaci accounts: - choices_html: 'Volby %{name}:' - endorsements_hint: Z webového rozhraní můžete podpořit lidi, které sledujete. Ti se poté zobrazí zde. - featured_tags_hint: Můžete vybrat konkrétní hashtagy, které se zobrazí zde. follow: Sledovat followers: few: Sledující @@ -72,15 +15,9 @@ cs: other: Sledujících following: Sledovaných instance_actor_flash: Tento účet je virtuální aktér, který představuje server samotný, nikoliv jednotlivého uživatele. Používá se pro účely federace a neměl by být pozastaven. - joined: Uživatelem od %{date} last_active: naposledy aktivní link_verified_on: Vlastnictví tohoto odkazu bylo zkontrolováno %{date} - media: Média - moved_html: "%{name} se přesunul a na %{new_profile_link}:" - network_hidden: Tato informace není k dispozici nothing_here: Nic tu není! - people_followed_by: Lidé, které sleduje %{name} - people_who_follow: Lidé, kteří sledují %{name} pin_errors: following: Osobu, kterou chcete podpořit, už musíte sledovat posts: @@ -89,14 +26,6 @@ cs: one: Příspěvek other: Příspěvků posts_tab_heading: Příspěvky - posts_with_replies: Příspěvky a odpovědi - roles: - admin: Administrátor - bot: Robot - group: Skupina - moderator: Moderátor - unavailable: Profil není dostupný - unfollow: Přestat sledovat admin: account_actions: action: Vykonat akci @@ -113,12 +42,17 @@ cs: avatar: Avatar by_domain: Doména change_email: - changed_msg: E-mail k tomuto účtu byl úspěšně změněn! + changed_msg: E-mail úspěšně změněn! current_email: Současný e-mail label: Změnit e-mail new_email: Nový e-mail submit: Změnit e-mail title: Změnit e-mail uživateli %{username} + change_role: + changed_msg: Role úspěšně změněna! + label: Změnit roli + no_role: Žádná role + title: Změnit roli pro %{username} confirm: Potvrdit confirmed: Potvrzeno confirming: Potvrzuji @@ -162,6 +96,7 @@ cs: active: Aktivní all: Vše pending: Čekající + silenced: Omezeno suspended: Pozastavené title: Moderování moderation_notes: Moderátorské poznámky @@ -169,6 +104,7 @@ cs: most_recent_ip: Nejnovější IP adresa no_account_selected: Nebyl změněn žádný účet, neboť žádný nebyl zvolen no_limits_imposed: Nejsou nastavena žádná omezení + no_role_assigned: Nebyla přiřazena žádná role not_subscribed: Neodebírá pending: Čeká na posouzení perform_full_suspension: Pozastavit @@ -197,20 +133,15 @@ cs: reset: Obnovit reset_password: Obnovit heslo resubscribe: Znovu odebírat - role: Oprávnění - roles: - admin: Administrátor - moderator: Moderátor - staff: Personál - user: Uživatel + role: Role search: Hledat search_same_email_domain: Ostatní uživatelé se stejnou e-mailovou doménou search_same_ip: Další uživatelé se stejnou IP adresou security_measures: only_password: Pouze heslo password_and_2fa: Heslo a 2FA - sensitive: Citlivý - sensitized: označen jako citlivý + sensitive: Vynutit citlivost + sensitized: Označen jako citlivý shared_inbox_url: URL sdílené příchozí schránky show: created_reports: Vytvořená hlášení @@ -228,10 +159,10 @@ cs: unblock_email: Odblokovat e-mailovou adresu unblocked_email_msg: E-mailová adresa %{username} byla úspěšně odblokována unconfirmed_email: Nepotvrzený e-mail - undo_sensitized: Vrátit zpět citlivost + undo_sensitized: Zrušit vynucení citlivosti undo_silenced: Zrušit omezení undo_suspension: Zrušit pozastavení - unsilenced_msg: Omezení účtu %{username} úspěšně odstraněno + unsilenced_msg: Omezení účtu %{username} úspěšně zrušeno unsubscribe: Přestat odebírat unsuspended_msg: Úspěšně obnoven účet %{username} username: Uživatelské jméno @@ -245,17 +176,21 @@ cs: approve_user: Schválit uživatele assigned_to_self_report: Přiřadit hlášení change_email_user: Změnit uživateli e-mailovou adresu + change_role_user: Změnit roli uživatele confirm_user: Potvrdit uživatele create_account_warning: Vytvořit varování create_announcement: Nové oznámení + create_canonical_email_block: Zablokovat email create_custom_emoji: Vytvořit vlastní emoji create_domain_allow: Vytvořit povolení domény create_domain_block: Vytvořit blokaci domény create_email_domain_block: Zablokovat e-mailovou doménu create_ip_block: Vytvořit IP pravidlo create_unavailable_domain: Vytvořit nedostupnou doménu + create_user_role: Vytvořit roli demote_user: Snížit roli uživatele destroy_announcement: Odstranit oznámení + destroy_canonical_email_block: Odblokovat email destroy_custom_emoji: Odstranit vlastní emoji destroy_domain_allow: Odstranit povolení domény destroy_domain_block: Odstranit blokaci domény @@ -264,6 +199,7 @@ cs: destroy_ip_block: Smazat IP pravidlo destroy_status: Odstranit Příspěvek destroy_unavailable_domain: Smazat nedostupnou doménu + destroy_user_role: Zničit roli disable_2fa_user: Vypnout 2FA disable_custom_emoji: Zakázat vlastní emoji disable_sign_in_token_auth_user: Zrušit uživatelovo ověřování e-mailovým tokenem @@ -277,37 +213,44 @@ cs: reject_user: Odmítnout uživatele remove_avatar_user: Odstranit avatar reopen_report: Znovu otevřít hlášení + resend_user: Znovu odeslat potvrzovací e-mail reset_password_user: Obnovit heslo resolve_report: Označit hlášení jako vyřešené - sensitive_account: Označit média ve vašem účtu jako citlivá + sensitive_account: Vynucení citlivosti účtu silence_account: Omezit účet suspend_account: Pozastavit účet unassigned_report: Zrušit přiřazení hlášení unblock_email_account: Odblokovat e-mailovou adresu - unsensitive_account: Zrušit označení médií ve vašem účtu jako citlivých + unsensitive_account: Zrušit vynucení citlivosti účtu unsilence_account: Zrušit omezení účtu unsuspend_account: Zrušit pozastavení účtu update_announcement: Aktualizovat oznámení update_custom_emoji: Aktualizovat vlastní emoji update_domain_block: Změnit blokaci domény + update_ip_block: Aktualizovat pravidlo IP update_status: Aktualizovat Příspěvek + update_user_role: Aktualizovat roli actions: approve_appeal_html: Uživatel %{name} schválil odvolání proti rozhodnutí moderátora %{target} approve_user_html: "%{name} schválil registraci od %{target}" assigned_to_self_report_html: Uživatel %{name} si přidělil hlášení %{target} change_email_user_html: Uživatel %{name} změnil e-mailovou adresu uživatele %{target} + change_role_user_html: "%{name} změnil roli %{target}" confirm_user_html: Uživatel %{name} potvrdil e-mailovou adresu uživatele %{target} create_account_warning_html: Uživatel %{name} poslal %{target} varování create_announcement_html: Uživatel %{name} vytvořil nové oznámení %{target} + create_canonical_email_block_html: "%{name} zablokoval e-mail s hash %{target}" create_custom_emoji_html: Uživatel %{name} nahrál nové emoji %{target} create_domain_allow_html: Uživatel %{name} povolil federaci s doménou %{target} create_domain_block_html: Uživatel %{name} zablokoval doménu %{target} create_email_domain_block_html: Uživatel %{name} zablokoval e-mailovou doménu %{target} create_ip_block_html: Uživatel %{name} vytvořil pravidlo pro IP %{target} create_unavailable_domain_html: "%{name} zastavil doručování na doménu %{target}" + create_user_role_html: "%{name} vytvořil %{target} roli" demote_user_html: Uživatel %{name} degradoval uživatele %{target} destroy_announcement_html: Uživatel %{name} odstranil oznámení %{target} - destroy_custom_emoji_html: Uživatel %{name} zničil emoji %{target} + destroy_canonical_email_block_html: "%{name} odblokoval e-mail s hashem %{target}" + destroy_custom_emoji_html: "%{name} odstranil emoji %{target}" destroy_domain_allow_html: Uživatel %{name} zakázal federaci s doménou %{target} destroy_domain_block_html: Uživatel %{name} odblokoval doménu %{target} destroy_email_domain_block_html: Uživatel %{name} odblokoval e-mailovou doménu %{target} @@ -315,6 +258,7 @@ cs: destroy_ip_block_html: Uživatel %{name} odstranil pravidlo pro IP %{target} destroy_status_html: Uživatel %{name} odstranil příspěvek uživatele %{target} destroy_unavailable_domain_html: "%{name} obnovil doručování na doménu %{target}" + destroy_user_role_html: "%{name} odstranil %{target} roli" disable_2fa_user_html: Uživatel %{name} vypnul dvoufázové ověřování pro uživatele %{target} disable_custom_emoji_html: Uživatel %{name} zakázal emoji %{target} disable_sign_in_token_auth_user_html: Uživatel %{name} zrušil ověřování e-mailovým tokenem pro %{target} @@ -328,21 +272,24 @@ cs: reject_user_html: "%{name} odmítl registraci od %{target}" remove_avatar_user_html: Uživatel %{name} odstranil avatar uživatele %{target} reopen_report_html: Uživatel %{name} znovu otevřel hlášení %{target} + resend_user_html: "%{name} znovu odeslal potvrzovací e-mail pro %{target}" reset_password_user_html: Uživatel %{name} obnovil heslo uživatele %{target} resolve_report_html: Uživatel %{name} vyřešil hlášení %{target} sensitive_account_html: "%{name} označil média účtu %{target} jako citlivá" - silence_account_html: Uživatel %{name} ztišil uživatele %{target} + silence_account_html: Uživatel %{name} omezil účet %{target} suspend_account_html: Uživatel %{name} pozastavil účet uživatele %{target} unassigned_report_html: Uživatel %{name} odebral hlášení %{target} unblock_email_account_html: Uživatel %{name} odblokoval e-mailovou adresu %{target} unsensitive_account_html: "%{name} zrušil označení médií účtu %{target} jako citlivých" - unsilence_account_html: Uživatel %{name} zrušil ztišení uživatele %{target} + unsilence_account_html: Uživatel %{name} zrušil omezení účtu %{target} unsuspend_account_html: Uživatel %{name} zrušil pozastavení účtu uživatele %{target} update_announcement_html: Uživatel %{name} aktualizoval oznámení %{target} update_custom_emoji_html: Uživatel %{name} aktualizoval emoji %{target} update_domain_block_html: "%{name} aktualizoval blokaci domény %{target}" + update_ip_block_html: "%{name} změnil pravidlo pro IP %{target}" update_status_html: Uživatel %{name} aktualizoval příspěvek uživatele %{target} - deleted_status: "(smazaný příspěvek)" + update_user_role_html: "%{name} změnil %{target} roli" + deleted_account: smazaný účet empty: Nebyly nalezeny žádné záznamy. filter_by_action: Filtrovat podle akce filter_by_user: Filtrovat podle uživatele @@ -386,6 +333,7 @@ cs: listed: Uvedeno new: title: Přidat nové vlastní emoji + no_emoji_selected: Žádné emoji nebyly změněny, protože nikdo nebyl vybrán not_permitted: K provedené této akce nemáte dostatečná oprávnění overwrite: Přepsat shortcode: Zkratka @@ -443,10 +391,11 @@ cs: domain_blocks: add_new: Přidat novou blokaci domény created_msg: Blokace domény se právě vyřizuje - destroyed_msg: Blokace domény byla vrácena + destroyed_msg: Blokace domény byla odvolána domain: Doména edit: Upravit blokaci domény - existing_domain_block_html: Pro účet %{name} jste už nastavili přísnější omezení, nejprve jej odblokujte. + existing_domain_block: Pro %{name} už jste nastavili přísnější omezení. + existing_domain_block_html: Pro %{name} už jste nastavili přísnější omezení, nejprve ji odblokujte. new: create: Vytvořit blokaci hint: Blokace domény nezakáže vytváření záznamů účtů v databázi, ale bude na tyto účty zpětně a automaticky aplikovat specifické metody moderování. @@ -466,7 +415,7 @@ cs: reject_media_hint: Odstraní lokálně uložené mediální soubory a odmítne jejich stahování v budoucnosti. Nepodstatné pro pozastavení reject_reports: Odmítat hlášení reject_reports_hint: Ignorovat všechna hlášení pocházející z této domény. Nepodstatné pro pozastavení - undo: Vrátit blokaci domény + undo: Odvolat blokaci domény view: Zobrazit blokaci domény email_domain_blocks: add_new: Přidat @@ -676,6 +625,71 @@ cs: unresolved: Nevyřešeno updated_at: Aktualizováno view_profile: Zobrazit profil + roles: + add_new: Přidat roli + assigned_users: + few: "%{count} uživatelé" + many: "%{count} uživatelů" + one: "%{count} uživatel" + other: "%{count} uživatelů" + categories: + administration: Administrace + devops: DevOps + invites: Pozvánky + moderation: Moderování + special: Speciální + delete: Smazat + description_html: Pomocí uživatelských rolímůžete upravit, ke kterým funkcím a oblastem mají přístup uživatelé Mastodon. + edit: Upravit roli „%{name}“ + everyone: Výchozí oprávnění + everyone_full_description_html: Toto je základní role ovlivňující všechny uživatele, a to i bez přiřazené role. Všechny ostatní role od ní dědí oprávnění. + permissions_count: + few: "%{count} oprávnění" + many: "%{count} oprávnění" + one: "%{count} oprávnění" + other: "%{count} oprávnění" + privileges: + administrator: Správce + administrator_description: Uživatelé s tímto oprávněním obejdou všechna oprávnění + delete_user_data: Mazat uživatelská data + delete_user_data_description: Umožňuje uživatelům bezodkladně mazat data jiných uživatelů + invite_users: Zvát uživatele + invite_users_description: Umožňuje uživatelům zvát na server nové lidi + manage_announcements: Spravovat oznámení + manage_announcements_description: Umožňuje uživatelům spravovat oznámení na serveru + manage_appeals: Spravovat odvolání + manage_appeals_description: Umožňuje uživatelům posuzovat odvolání proti moderátorským zásahům + manage_blocks: Spravovat blokace + manage_blocks_description: Umožňuje uživatelům blokovat poskytovatele e-mailů a IP adresy + manage_custom_emojis: Spravovat vlastní emoji + manage_custom_emojis_description: Umožňuje uživatelům spravovat vlastní emoji na serveru + manage_federation: Spravovat federaci + manage_federation_description: Umožňuje uživatelům blokovat nebo povolit federaci s jinými doménami a ovládat doručování + manage_invites: Spravovat pozvánky + manage_invites_description: Umožňuje uživatelům procházet a deaktivovat pozvánky + manage_reports: Spravovat hlášení + manage_reports_description: Umožňuje uživatelům kontrolovat přehledy a provádět moderovací akce proti nim + manage_roles: Spravovat role + manage_roles_description: Umožňuje uživatelům spravovat a přiřazovat role pod nimi + manage_rules: Spravovat pravidla + manage_rules_description: Umožňuje uživatelům změnit pravidla serveru + manage_settings: Spravovat nastavení + manage_settings_description: Umožňuje uživatelům změnit nastavení webu + manage_taxonomies: Správa taxonomií + manage_taxonomies_description: Umožňuje uživatelům zkontrolovat populární obsah a aktualizovat nastavení hashtag + manage_user_access: Spravovat uživatelské přístupy + manage_user_access_description: Umožňuje uživatelům rušit jiným uživatelům dvoufázové ověřování, měnit jejich e-mailovou adresu a obnovovat jim hesla + manage_users: Spravovat uživatele + manage_users_description: Umožňuje uživatelům zobrazit podrobnosti ostatních uživatelů a provádět moderování proti nim + manage_webhooks: Spravovat webhooky + manage_webhooks_description: Umožňuje uživatelům nastavit webhooky pro administrativní události + view_audit_log: Zobrazovat protokol auditu + view_audit_log_description: Umožňuje uživatelům vidět historii administrativních akcí na serveru + view_dashboard: Zobrazit ovládací panel + view_dashboard_description: Umožňuje uživatelům přístup k ovládacímu panelu a různým metrikám + view_devops: DevOps + view_devops_description: Umožňuje uživatelům přístup k ovládacím panelům Sidekiq a pgHero + title: Role rules: add_new: Přidat pravidlo delete: Smazat @@ -684,108 +698,67 @@ cs: empty: Zatím nebyla definována žádná pravidla serveru. title: Pravidla serveru settings: - activity_api_enabled: - desc_html: Počty lokálně publikovaných příspěvků, aktivních uživatelů a nových registrací, v týdenních intervalech - title: Publikovat hromadné statistiky o uživatelské aktivitě v API - bootstrap_timeline_accounts: - desc_html: Více uživatelských jmen oddělte čárkou. U těchto účtů bude zaručeno, že budou vždy zobrazeny mezi doporučenými sledováními - title: Doporučit tyto účty novým uživatelům - contact_information: - email: Pracovní e-mail - username: Uživatelské jméno pro kontaktování - custom_css: - desc_html: Pozměnit vzhled pomocí CSS šablony načítané na každé stránce - title: Vlastní CSS - default_noindex: - desc_html: Ovlivňuje všechny uživatele, kteří toto nastavení sami nezměnili - title: Ve výchozím stavu odhlásit uživatele z indexování vyhledávači + about: + manage_rules: Spravovat pravidla serveru + preamble: Uveďte podrobné informace o tom, jak je server provozován, moderován, financován. + rules_hint: Existuje vyhrazená oblast pro pravidla, u nichž se očekává, že je budou uživatelé dodržovat. + title: O aplikaci + appearance: + preamble: Přizpůsobte si webové rozhraní Mastodon. + title: Vzhled + branding: + preamble: Značka vašeho serveru jej odlišuje od ostatních serverů v síti. Tyto informace se mohou zobrazovat v různých prostředích, například ve webovém rozhraní Mastodonu, v nativních aplikacích, v náhledech odkazů na jiných webových stránkách a v aplikacích pro zasílání zpráv atd. Z tohoto důvodu je nejlepší, aby tyto informace byly jasné, krátké a stručné. + title: Značka + content_retention: + preamble: Určuje, jak je obsah generovaný uživatelem uložen v Mastodonu. + title: Uchovávání obsahu + discovery: + follow_recommendations: Doporučená sledování + preamble: Povrchový zajímavý obsah je užitečný pro zapojení nových uživatelů, kteří možná neznají žádného Mastodona. Mějte pod kontrolou, jak různé objevovací funkce fungují na vašem serveru. + profile_directory: Adresář profilů + public_timelines: Veřejné časové osy + title: Objevujte + trends: Trendy domain_blocks: all: Všem disabled: Nikomu - title: Zobrazit blokace domén users: Přihlášeným místním uživatelům - domain_blocks_rationale: - title: Zobrazit odůvodnění - hero: - desc_html: Zobrazuje se na hlavní stránce. Doporučujeme rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura serveru - title: Hlavní obrázek - mascot: - desc_html: Zobrazuje se na několika stránkách. Doporučujeme rozlišení alespoň 293x205 px. Pokud toto není nastaveno, bude zobrazen výchozí maskot - title: Obrázek maskota - peers_api_enabled: - desc_html: Domény, na které tento server narazil ve fedivesmíru - title: Zveřejnit seznam objevených serverů v API - preview_sensitive_media: - desc_html: Náhledy odkazů na jiných stránkách budou zobrazeny i pokud jsou media označena jako citlivá - title: Zobrazovat v náhledech OpenGraph i citlivá média - profile_directory: - desc_html: Dovolit uživatelům být objevitelní - title: Povolit adresář profilů registrations: - closed_message: - desc_html: Zobrazí se na hlavní stránce, jsou-li registrace uzavřeny. Můžete použít i HTML značky - title: Zpráva o uzavřených registracích - deletion: - desc_html: Povolit komukoliv smazat svůj účet - title: Zpřístupnit smazání účtu - min_invite_role: - disabled: Nikdo - title: Povolit pozvánky od - require_invite_text: - desc_html: Když jsou registrace schvalovány ručně, udělat odpověď na otázku "Proč se chcete připojit?" povinnou - title: Požadovat od nových uživatelů zdůvodnění založení + preamble: Mějte pod kontrolou, kdo může vytvořit účet na vašem serveru. + title: Registrace registrations_mode: modes: approved: Pro registraci je vyžadováno schválení none: Nikdo se nemůže registrovat open: Kdokoliv se může registrovat - title: Režim registrací - show_known_fediverse_at_about_page: - desc_html: Je-li vypnuto, bude veřejná časová osa, na kterou odkazuje hlavní stránka serveru, omezena pouze na místní obsah - title: Zahrnout federovaný obsah na neautentizované stránce veřejné časové osy - show_staff_badge: - desc_html: Zobrazit na stránce uživatele odznak personálu - title: Zobrazit odznak personálu - site_description: - desc_html: Úvodní odstavec v API. Popište, čím se tento server Mastodon odlišuje od ostatních, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně <a> a <em>. - title: Popis serveru - site_description_extended: - desc_html: Dobré místo pro vaše pravidla, pokyny a jiné věci, které váš server odlišují od ostatních. Lze použít HTML značky - title: Vlastní rozšířené informace - site_short_description: - desc_html: Zobrazeno v postranním panelu a meta značkách. V jednom odstavci popište, co je Mastodon a čím se tento server odlišuje od ostatních. - title: Krátký popis serveru - site_terms: - desc_html: Můžete si napsat vlastní zásady ochrany osobních údajů, podmínky používání či jiné právní dokumenty. Můžete použít HTML značky - title: Vlastní podmínky používání - site_title: Název serveru - thumbnail: - desc_html: Používáno pro náhledy přes OpenGraph a API. Doporučujeme rozlišení 1200x630px - title: Miniatura serveru - timeline_preview: - desc_html: Zobrazit na hlavní stránce odkaz na veřejnou časovou osu a povolit přístup na veřejnou časovou osu pomocí API bez autentizace - title: Povolit neautentizovaný přístup k časové ose - title: Nastavení stránky - trendable_by_default: - desc_html: Ovlivňuje hashtagy, které nebyly dříve zakázány - title: Povolit zobrazení hashtagů mezi populárními i bez předchozího posouzení - trends: - desc_html: Veřejně zobrazit dříve schválený obsah, který je zrovna populární - title: Trendy + title: Nastavení serveru site_uploads: delete: Odstranit nahraný soubor destroyed_msg: Upload stránky byl úspěšně smazán! statuses: + account: Autor + application: Aplikace back_to_account: Zpět na stránku účtu back_to_report: Zpět na stránku hlášení batch: remove_from_report: Odebrat z hlášení report: Nahlásit deleted: Smazáno + favourites: Oblíbené + history: Historie verzí + in_reply_to: Odpověď na + language: Jazyk media: title: Média + metadata: Metadata no_status_selected: Nebyly změněny žádné příspěvky, neboť žádné nebyly vybrány + open: Otevřít příspěvek + original_status: Původní příspěvek + reblogs: Boosty + status_changed: Příspěvek změněn title: Příspěvky účtu + trending: Populární + visibility: Viditelnost with_media: S médii strikes: actions: @@ -825,6 +798,9 @@ cs: description_html: Toto jsou odkazy, které jsou momentálně hojně sdíleny účty, jejichž příspěvky váš server vidí. To může pomoct vašim uživatelům zjistit, co se děje ve světě. Žádné odkazy se nezobrazují veřejně, dokud neschválíte vydavatele. Můžete také povolit nebo zamítnout jednotlivé odkazy. disallow: Zakázat odkaz disallow_provider: Zakázat vydavatele + no_link_selected: Nebyly změněny žádné odkazy, protože nebyl vybrán žádný + publishers: + no_publisher_selected: Nebyly změněny žádní publikující, protože nikdo nebyl vybrán shared_by_over_week: few: Sdílený %{count} lidmi za poslední týden many: Sdílený %{count} lidmi za poslední týden @@ -846,6 +822,7 @@ cs: description_html: Toto jsou příspěvky, o kterých váš server ví, že jsou momentálně hodně sdíleny a oblibovány. To může pomoci vašim novým i vracejícím se uživatelům najít další lidi ke sledování. Žádné příspěvky se nezobrazují veřejně, dokud neschválíte autora a tento autor nepovolí navrhování svého účtu ostatním. Můžete také povolit či zamítnout jednotlivé příspěvky. disallow: Zakázat příspěvek disallow_account: Zakázat autora + no_status_selected: Nebyly změněny žádné populární příspěvky, protože nikdo nebyl vybrán not_discoverable: Autor nepovolil navrhování svého účtu ostatním shared_by: few: "%{friendly_count} sdílení nebo oblíbení" @@ -863,6 +840,7 @@ cs: tag_uses_measure: použití celkem description_html: Toto jsou hashtagy, které se momentálně objevují v mnoha příspěvcích, které váš server vidí. To může pomoci vašim uživatelům zjistit, o čem lidé zrovna nejvíce mluví. Žádné hashtagy se nezobrazují veřejně, dokud je neschválíte. listable: Může být navrhován + no_tag_selected: Nebyly změněny žádné štítky, protože nikdo nebyl vybrán not_listable: Nebude navrhován not_trendable: Neobjeví se mezi populárními not_usable: Nemůže být používán @@ -885,6 +863,28 @@ cs: edit_preset: Upravit předlohu pro varování empty: Zatím jste nedefinovali žádné předlohy varování. title: Spravovat předlohy pro varování + webhooks: + add_new: Přidat koncový bod + delete: Smazat + description_html: "Webhook umožňuje Mastodonu o vybraných událostech notifikovat v reálném čase vaši vlastní aplikaci, aby mohla automaticky spouštět reakce." + disable: Vypnout + disabled: Vypnuto + edit: Upravit koncový bod + empty: Nemáte ještě nastavené žádné koncové body webhooků. + enable: Zapnout + enabled: Aktivní + enabled_events: + few: "%{count} zapnuté události" + many: "%{count} zapnutých událostí" + one: 1 zapnutá událost + other: "%{count} zapnutých událostí" + events: Události + new: Nový webhook + rotate_secret: Obnovit klíč + secret: Podpisový klíč + status: Stav + title: Webhooky + webhook: Webhook admin_mailer: new_appeal: actions: @@ -908,12 +908,8 @@ cs: new_trends: body: 'Následující položky vyžadují posouzení, než mohou být zobrazeny veřejně:' new_trending_links: - no_approved_links: Momentálně nejsou žádné schválené populární odkazy. - requirements: 'Kterýkoliv z těchto kandidátů by mohl předehnat schválený populární odkaz #%{rank}, kterým je momentálně "%{lowest_link_title}" se skóre %{lowest_link_score}.' title: Populární odkazy new_trending_statuses: - no_approved_statuses: Momentálně nejsou žádné schválené populární příspěvky. - requirements: 'Kterýkoliv z těchto kandidátů by mohl předehnat schválený populární příspěvek #%{rank}, kterým je momentálně %{lowest_status_url} se skóre %{lowest_status_score}.' title: Populární příspěvky new_trending_tags: no_approved_tags: Momentálně nejsou žádné schválené populární hashtagy. @@ -949,16 +945,13 @@ cs: applications: created: Aplikace úspěšně vytvořena destroyed: Aplikace úspěšně smazána - invalid_url: Zadaná URL adresa je neplatná regenerate_token: Znovu vygenerovat přístupový token token_regenerated: Přístupový token byl úspěšně vygenerován warning: Zacházejte s těmito daty opatrně. Nikdy je s nikým nesdílejte! your_token: Váš přístupový token auth: - apply_for_account: Požádat o pozvánku + apply_for_account: Přejít na čekací frontu change_password: Heslo - checkbox_agreement_html: Souhlasím s pravidly serveru a podmínkami používání - checkbox_agreement_without_rules_html: Souhlasím s podmínkami používání delete_account: Odstranit účet delete_account_html: Chcete-li odstranit svůj účet, pokračujte zde. Budete požádáni o potvrzení. description: @@ -977,6 +970,7 @@ cs: migrate_account: Přesunout se na jiný účet migrate_account_html: Zde můžete nastavit přesměrování tohoto účtu na jiný. or_log_in_with: Nebo se přihlaste pomocí + privacy_policy_agreement_html: Četl jsem a souhlasím se zásadami ochrany osobních údajů providers: cas: CAS saml: SAML @@ -984,12 +978,18 @@ cs: registration_closed: "%{instance} nepřijímá nové členy" resend_confirmation: Znovu odeslat pokyny pro potvrzení reset_password: Obnovit heslo + rules: + preamble: Tohle nastavují a prosazují moderátoři %{domain}. + title: Některá základní pravidla. security: Zabezpečení set_new_password: Nastavit nové heslo setup: email_below_hint_html: Pokud je níže uvedená e-mailová adresa nesprávná, můžete ji změnit zde a nechat si poslat nový potvrzovací e-mail. email_settings_hint_html: Potvrzovací e-mail byl odeslán na %{email}. Pokud je tato adresa nesprávná, můžete ji změnit v nastavení účtu. title: Nastavení + sign_up: + preamble: S účtem na tomto serveru Mastodon budete moci sledovat jakoukoliv jinou osobu v síti bez ohledu na to, kde je jejich účet hostován. + title: Pojďme vás nastavit na %{domain}. status: account_status: Stav účtu confirming: Čeká na dokončení potvrzení e-mailu. @@ -998,7 +998,6 @@ cs: redirecting_to: Váš účet je neaktivní, protože je právě přesměrován na účet %{acct}. view_strikes: Zobrazit minulé prohřešky vašeho účtu too_fast: Formulář byl odeslán příliš rychle, zkuste to znovu. - trouble_logging_in: Problémy s přihlášením? use_security_key: Použít bezpečnostní klíč authorize_follow: already_following: Tento účet již sledujete @@ -1056,10 +1055,6 @@ cs: more_details_html: Podrobnosti najdete v zásadách ochrany osobních údajů. username_available: Vaše uživatelské jméno bude opět dostupné username_unavailable: Vaše uživatelské jméno zůstane nedostupné - directories: - directory: Adresář profilů - explanation: Objevujte uživatele podle jejich zájmů - explore_mastodon: Prozkoumejte %{title} disputes: strikes: action_taken: Přijaté opatření @@ -1094,7 +1089,7 @@ cs: invalid_domain: není platné doménové jméno errors: '400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená. - '403': Nemáte povolení zobrazit tuto stránku. + '403': Nejste oprávněni tuto stránku zobrazit. '404': Stránka, kterou hledáte, tu není. '406': Tato stránka není v požadovaném formátu dostupná. '410': Stránka, kterou hledáte, tu již není. @@ -1138,29 +1133,72 @@ cs: public: Veřejné časové osy thread: Konverzace edit: + add_keyword: Přidat klíčové slovo + keywords: Klíčová slova + statuses: Individuální příspěvky + statuses_hint_html: Tento filtr platí pro výběr jednotlivých příspěvků bez ohledu na to, zda odpovídají klíčovým slovům níže. Zkontrolujte nebo odeberte příspěvky z filtru. title: Upravit filtr errors: + deprecated_api_multiple_keywords: Tyto parametry nelze změnit z této aplikace, protože se vztahují na více než jedno klíčové slovo filtru. Použijte novější aplikaci nebo webové rozhraní. invalid_context: Nebyl poskytnut žádný nebo jen neplatný kontext - invalid_irreversible: Nezvratné filtrování funguje pouze v souvislosti s domovskou osou či oznámeními index: + contexts: Filtruje %{contexts} delete: Smazat empty: Nemáte žádný filtr. + expires_in: Vyprší za %{distance} + expires_on: Vyprší %{date} + keywords: + few: "%{count} klíčová slova" + many: "%{count} klíčových slov" + one: "%{count} klíčové slovo" + other: "%{count} klíčových slov" + statuses: + few: "%{count} příspěvků" + many: "%{count} příspěvků" + one: "%{count} příspěvek" + other: "%{count} příspěvků" + statuses_long: + few: "%{count} skryté příspěvky" + many: "%{count} skrytých příspěvků" + one: "%{count} skrytý příspěvek" + other: "%{count} skrytých příspěvků" title: Filtry new: + save: Uložit nový filtr title: Přidat nový filtr + statuses: + back_to_filter: Zpět na filtr + batch: + remove: Odstranit z filtru + index: + hint: Tento filtr se vztahuje na výběr jednotlivých příspěvků bez ohledu na jiná kritéria. Do tohoto filtru můžete přidat více příspěvků z webového rozhraní. + title: Filtrované příspěvky footer: - developers: Vývojáři - more: Více… - resources: Zdroje trending_now: Právě populární generic: all: Všechny + all_items_on_page_selected_html: + few: "%{count} položky na této stránce jsou vybrány." + many: "%{count} položek na této stránce je vybráno." + one: "%{count} položka na této stránce vybrána." + other: Všech %{count} položek na této stránce vybráno. + all_matching_items_selected_html: + few: "%{count} položky odpovídající vašemu hledání jsou vybrány." + many: "%{count} položek odpovídající vašemu hledání je vybráno." + one: "%{count} položka odpovídající vašemu hledání je vybrána." + other: Všech %{count} položek odpovídající vašemu hledání je vybráno. changes_saved_msg: Změny byly úspěšně uloženy! copy: Kopírovat delete: Smazat + deselect: Zrušit výběr všeho none: Žádné order_by: Seřadit podle save_changes: Uložit změny + select_all_matching_items: + few: Vybrat %{count} položky odpovídající vašemu hledání. + many: Vybrat všech %{count} položek odpovídajících vašemu hledání. + one: Vybrat %{count} položku odpovídající vašemu hledání. + other: Vybrat všech %{count} položek odpovídajících vašemu hledání. today: dnes validation_errors: few: Něco ještě není úplně v pořádku! Zkontrolujte prosím %{count} chyby uvedené níže @@ -1186,7 +1224,6 @@ cs: following: Seznam sledovaných muting: Seznam ignorovaných upload: Nahrát - in_memoriam_html: In Memoriam. invites: delete: Deaktivovat expired: Expirováno @@ -1267,25 +1304,14 @@ cs: carry_blocks_over_text: Tento účet se přesunul z %{acct}, který jste blokovali. carry_mutes_over_text: Tento účet se přesunul z %{acct}, který jste skryli. copy_account_note_text: 'Tento účet se přesunul z %{acct}, zde byly Vaše předchozí poznámky o něm:' + navigation: + toggle_menu: Přepnout menu notification_mailer: admin: + report: + subject: Uživatel %{name} podal hlášení sign_up: subject: Uživatel %{name} se zaregistroval - digest: - action: Zobrazit všechna oznámení - body: Zde najdete stručný souhrn zpráv, které jste zmeškali od vaší poslední návštěvy %{since} - mention: 'Uživatel %{name} vás zmínil v:' - new_followers_summary: - few: Zatímco jste byli pryč jste navíc získali %{count} nové sledující! Skvělé! - many: Zatímco jste byli pryč jste navíc získali %{count} nových sledujících! Úžasné! - one: Zatímco jste byli pryč jste navíc získali jednoho nového sledujícího! Hurá! - other: Zatímco jste byli pryč jste navíc získali %{count} nových sledujících! Úžasné! - subject: - few: "%{count} nová oznámení od vaší poslední návštěvy 🐘" - many: "%{count} nových oznámení od vaší poslední návštěvy 🐘" - one: "1 nové oznámení od vaší poslední návštěvy 🐘" - other: "%{count} nových oznámení od vaší poslední návštěvy 🐘" - title: Ve vaší nepřítomnosti… favourite: body: 'Váš příspěvek si oblíbil uživatel %{name}:' subject: Uživatel %{name} si oblíbil váš příspěvek @@ -1332,8 +1358,8 @@ cs: code_hint: Pro potvrzení zadejte kód vygenerovaný Vaší ověřovací aplikací description_html: Zapnete-li dvoufázové ověřování pomocí ověřovací aplikace, k přihlášení budete u sebe muset mít svůj mobil, který pro Vás bude generovat kódy k opsání. enable: Zapnout - instructions_html: "Naskenujte tento QR kód do Google Authenticator nebo podobné TOTP aplikace na Vašem telefonu. Následně bude tato aplikace generovat kódy, které budete zadávat při přihlašování." - manual_instructions: 'Nemůžete-li načíst QR kód a potřebujete ho zadat ručně, zde je tajemství v textové podobě:' + instructions_html: "Naskenujte tento QR kód do Google Authenticator nebo podobné TOTP aplikace na svém telefonu. Následně bude tato aplikace generovat kódy, které budete zadávat při přihlašování." + manual_instructions: 'Nemůžete-li načíst QR kód a potřebujete ho zadat ručně, zde je klíč v textové podobě:' setup: Nastavit wrong_code: Zadaný kód je neplatný! Je čas na serveru i zařízení generujícím kód správný? pagination: @@ -1357,6 +1383,8 @@ cs: other: Ostatní posting_defaults: Výchozí možnosti psaní public_timelines: Veřejné časové osy + privacy_policy: + title: Zásady ochrany osobních údajů reactions: errors: limit_reached: Dosažen limit různých reakcí @@ -1379,22 +1407,7 @@ cs: remove_selected_follows: Přestat sledovat vybrané uživatele status: Stav účtu remote_follow: - acct: Napište svou přezdívku@doménu, ze které chcete jednat missing_resource: Nemůžeme najít požadovanou přesměrovávací URL adresu pro váš účet - no_account_html: Ještě nemáte účet? Tady se můžete zaregistrovat - proceed: Pokračovat ke sledování - prompt: 'Budete sledovat:' - reason_html: "Proč je tento krok nutný? %{instance} nemusí být serverem, na kterém jste registrováni, a proto vás musíme nejdříve přesměrovat na váš domovský server." - remote_interaction: - favourite: - proceed: Pokračovat k oblíbení - prompt: 'Chcete si oblíbit tento příspěvek:' - reblog: - proceed: Pokračovat k boostnutí - prompt: 'Chcete boostnout tento příspěvek:' - reply: - proceed: Pokračovat k odpovědi - prompt: 'Chcete odpovědět na tento příspěvek:' reports: errors: invalid_rules: neodkazuje na platná pravidla @@ -1404,7 +1417,7 @@ cs: account: Veřejné příspěvky od @%{acct} tag: 'Veřejné příspěvky s hashtagem #%{hashtag}' scheduled_statuses: - over_daily_limit: Překročili jste limit %{limit} příspěvků naplánovaných na tento den + over_daily_limit: Pro dnešek jste překročili limit %{limit} naplánovaných příspěvků over_total_limit: Překročili jste limit %{limit} naplánovaných příspěvků too_soon: Plánované datum musí být v budoucnosti sessions: @@ -1426,7 +1439,7 @@ cs: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Aktuální relace description: "%{browser} na systému %{platform}" @@ -1435,8 +1448,8 @@ cs: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS + blackberry: BlackBerry + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1578,89 +1591,6 @@ cs: too_late: Na odvolání proti tomuto prohřešku už je pozdě tags: does_not_match_previous_name: se neshoduje s předchozím názvem - terms: - body_html: | -

      Zásady ochrany osobních údajů

      -

      Jaké informace sbíráme?

      - -
        -
      • Základní informace o účtu: Pokud se na tomto serveru zaregistrujete, můžeme vás požádat o zadání uživatelského jména, e-mailové adresy a hesla. Můžete také zadat dodatečné profilové informace, jako například zobrazované jméno, krátký životopis, nebo si nahrát profilovou fotografii a obrázek záhlaví. Uživatelské i zobrazované jméno, životopis, profilová fotografie a obrázek záhlaví jsou vždy veřejně dostupné.
      • -
      • Příspěvky, sledující a další veřejné informace: Seznam lidí, které sledujete, je uveden veřejně, totéž platí i pro uživatele sledující vás. Pro každou vámi napsanou zprávu, bude uloženo datum a čas a informace o aplikaci, ze které jste zprávu odeslali. Zprávy mohou obsahovat mediální přílohy, jako jsou obrázky a videa. Veřejné a neuvedené příspěvky jsou dostupné veřejně. Pokud na vašem profilu uvedete příspěvek, bude také dostupný veřejně. Vaše příspěvky jsou doručeny uživatelům, kteří vás sledují, což v některých případech znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Pokud příspěvky smažete, bude tato akce taktéž doručeno vašim sledujícím. Akce opětovného sdílení nebo oblíbení jiného příspěvku je vždy veřejná.
      • -
      • Příspěvky přímé a pouze pro sledující: Všechny příspěvky jsou na serveru uloženy a zpracovány. Příspěvky pouze pro sledující jsou doručeny uživatelům, kteří vás sledují, a uživatelům v příspěvcích zmíněným. Přímé příspěvky jsou doručeny pouze uživatelům v nich zmíněným. V některých případech to znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Upřímně se snažíme omezit přístup k těmto příspěvkům pouze na autorizované uživatele, ovšem ostatní servery tak činit nemusí. Proto je důležité posoudit servery, ke kterým uživatelé, kteří vás sledují patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledujících. Mějte prosím na paměti, že správci tohoto serveru a kteréhokoliv přijímacího serveru mohou tyto zprávy vidět a příjemci mohou vytvořit jejich snímek, zkopírovat je, nebo je jinak sdílet. Nesdílejte přes Mastodon žádné nebezpečné informace.
      • -
      • IP adresy a další metadata: Při vašem přihlášení zaznamenáváme IP adresu, ze které se přihlašujete, a název vašeho webového prohlížeče. Všechny vaše webové relace jsou v nastavení přístupné k vašemu posouzení a odvolání. Poslední použitá IP adresa je uložena maximálně po dobu 12 měsíců. Můžeme také uchovávat serverové záznamy, které obsahují IP adresy každého požadavku odeslaného na náš server.
      • -
      - -
      - -

      Na co vaše údaje používáme?

      - -

      Všechna data, která sbíráme, mohou být použita následujícími způsoby:

      - -
        -
      • K poskytnutí základních funkcí Mastodonu. K interakci s obsahem od jiných lidí a přispívat svým vlastním obsahem můžete pouze, pokud jste přihlášeni. Můžete například sledovat jiné lidi a zobrazit si jejich kombinované příspěvky ve vaší vlastní personalizované časové ose.
      • -
      • Pro pomoc moderování komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro detekci obcházení zákazů či jiných přestupků.
      • -
      • E-mailová adresa, kterou nám poskytnete, může být použita pro zasílání informací, oznámení o interakcích jiných uživatelů s vaším obsahem nebo přijatých zprávách, a k odpovědím na dotazy a/nebo další požadavky či otázky.
      • -
      - -
      - -

      Jak vaše data chráníme?

      - -

      Když zadáváte, odesíláte, či přistupujete k vašim osobním datům, implementujeme různá bezpečnostní opatření pro udržování bezpečnosti vašich osobních dat. Mimo jiné je vaše relace v prohlížeči, jakož i provoz mezi vašimi aplikacemi a API, zabezpečena pomocí SSL, a vaše heslo je hashováno pomocí silného jednosměrného algoritmu. Pro větší zabezpečení vašeho účtu můžete povolit dvoufázové ověřování.

      - -
      - -

      Jaké jsou naše zásady o uchovávání údajů?

      - -

      Budeme se upřímně snažit:

      - -
        -
      • Uchovávat serverové záznamy obsahující IP adresy všech požadavků na tento server, pokud se takové záznamy uchovávají, maximálně 90 dní.
      • -
      • Uchovávat IP adresy související s registrovanými uživateli maximálně 12 měsíců.
      • -
      - -

      Kdykoliv si můžete vyžádat a stáhnout archiv svého obsahu, včetně příspěvků, mediálních příloh, profilové fotografie a obrázku záhlaví.

      - -

      Kdykoliv můžete nenávratně smazat svůj účet.

      - -
      - -

      Používáme cookies?

      - -

      Ano. Cookies jsou malé soubory, které stránka nebo její poskytovatel uloží do vašeho počítače (pokud to dovolíte). Tyto cookies umožňují stránce rozpoznat váš prohlížeč, a pokud máte registrovaný účet, přidružit ho s vaším registrovaným účtem.

      - -

      Používáme cookies pro pochopení a ukládání vašich předvoleb pro budoucí návštěvy.

      - -
      - -

      Zveřejňujeme jakékoliv informace třetím stranám?

      - -

      Vaše osobně identifikovatelné informace neprodáváme, neobchodujeme s nimi, ani je nijak nepřenášíme vnějším stranám. Nepočítáme do toho důvěryhodné třetí strany, které nám pomáhají provozovat naši stránku, podnikat, nebo vás obsluhovat, pokud tyto strany souhlasí se zachováním důvěrnosti těchto informací. Vaše informace můžete uvolnit, pokud věříme, že je to nutné pro soulad se zákonem, prosazování našich zásad, nebo ochranu práv, majetku, či bezpečnost nás či ostatních.

      - -

      Váš veřejný obsah může být stažen jinými servery na síti. Vaše příspěvky veřejné a pouze pro sledující budou doručeny na servery uživatelů, kteří vás sledují, a přímé zprávy budou doručeny na servery příjemců, pokud jsou tito sledující nebo příjemci zaregistrováni na jiném serveru, než je tento.

      - -

      Při autorizaci aplikace k používání vašeho účtu může, v závislosti na rozsahu udělených oprávnění, přistupovat k vašim veřejným profilovým informacím, seznamu lidí, které sledujete, vašim sledujícím, vašim seznamům, všem vašim příspěvkům a příspěvkům, které jste si oblíbili. Aplikace nikdy nemohou získat vaši e-mailovou adresu ani heslo.

      - -
      - -

      Používání stránky dětmi

      - -

      Pokud se tento server nachází v EU nebo EHP: Naše stránka, produkty a služby jsou určeny lidem, kterým je alespoň 16 let. Pokud je vám méně než 16 let, dle požadavků nařízení GDPR (Obecné nařízení o ochraně osobních údajů) tuto stránku nepoužívejte.

      - -

      Pokud se tento server nachází v USA: Naše stránka, produkty a služby jsou učeny lidem, kterým je alespoň 13 let. Pokud je vám méně než 13 let, dle požadavků zákona COPPA (Children's Online Privacy Protection Act) tuto stránku nepoužívejte.

      - -

      Právní požadavky mohou být jiné, pokud se tento server nachází v jiné jurisdikci.

      - -
      - -

      Změny v našich zásadách ochrany osobních údajů

      - -

      Rozhodneme-li se naše zásady ochrany osobních údajů změnit, zveřejníme tyto změny na této stránce.

      - -

      Tento dokument je dostupný pod licencí CC-BY-SA. Byl naposledy aktualizován 7. března 2018.

      - -

      Původně adaptováno ze zásad ochrna osobních údajů projektem Discourse.

      - title: Podmínky používání a zásady ochrany osobních údajů na serveru %{instance} themes: contrast: Mastodon (vysoký kontrast) default: Mastodon (tmavý) @@ -1739,20 +1669,13 @@ cs: suspend: Účet pozastaven welcome: edit_profile_action: Nastavit profil - edit_profile_step: Svůj profil si můžete přizpůsobit nahráním avataru a obrázku záhlaví, změnou zobrazovaného jména a další. Chcete-li posoudit nové sledující předtím, než vás mohou sledovat, můžete svůj účet uzamknout. + edit_profile_step: Váš profil si můžete přizpůsobit nahráním profilového obrázku, změnou zobrazovaného jména a dalším. Můžete se přihlásit k přezkoumání nových následovatelů, než vás budou moci následovat. explanation: Zde je pár tipů do začátku final_action: Začít psát - final_step: 'Začněte psát! I když nemáte sledující, mohou vaše veřejné příspěvky vidět jiní lidé, například na místní časové ose a v hashtazích. Můžete se ostatním představit pomocí hashtagu #introductions.' + final_step: 'Začněte psát příspěvky! I bez sledujících mohou vaše veřejné příspěvky vidět ostatní, například na místní časové ose nebo v hashtagu. Možná se budete chtít představit na hashtagu #představení.' full_handle: Vaše celá adresa profilu full_handle_hint: Tohle je, co byste řekli svým přátelům, aby vám mohli posílat zprávy nebo vás sledovat z jiného serveru. - review_preferences_action: Změnit předvolby - review_preferences_step: Nezapomeňte si nastavit například jaké e-maily chcete přijímat či jak soukromé mají ve výchozím stavu být vaše příspěvky. Nemáte-li epilepsii, můžete si nastavit automatické přehrávání obrázků GIF. subject: Vítejte na Mastodonu - tip_federated_timeline: Federovaná časová osa je náhled celé sítě Mastodon. Zahrnuje ovšem pouze lidi, které sledují vaši sousedé, takže není úplná. - tip_following: Administrátory serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se do místní a federované časové osy. - tip_local_timeline: Místní časová osa je náhled lidí na serveru %{instance}. Jsou to vaši nejbližší sousedé! - tip_mobile_webapp: Pokud vám váš mobilní prohlížeč nabídne přidat si Mastodon na vaši domovskou obrazovku, můžete dostávat oznámení. V mnoha ohledech to funguje jako nativní aplikace! - tips: Tipy title: Vítejte na palubě, %{name}! users: follow_limit_reached: Nemůžete sledovat více než %{limit} lidí diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 306df59791d0bc..91ef6a1724ace5 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1,73 +1,11 @@ --- cy: about: - about_hashtag_html: Dyma dŵtiau cyhoeddus wedi eu tagio gyda #%{hashtag}. Gallwch ryngweithio gyda nhw os oes gennych gyfrif yn unrhyw le yn y ffeddysawd. about_mastodon_html: Mae Mastodon yn rwydwaith cymdeithasol sy'n seiliedig ar brotocolau gwe a meddalwedd cod agored rhad ac am ddim. Yn debyg i e-bost mae'n ddatganoledig. - about_this: Ynghylch - active_count_after: yn weithredol - active_footnote: Defnyddwyr Gweithredol Misol (DGM) - administered_by: 'Gweinyddir gan:' - api: API - apps: Apiau symudol - apps_platforms: Defnyddio Mastodon o iOS, Android a phlatfformau eraill - browse_directory: Pori cyfeiriadur proffil a hidlo wrth diddordebau - browse_local_posts: Pori ffrwd byw o byst cyhoeddus o'r gweinydd hyn - browse_public_posts: Pori ffrwd byw o byst cyhoeddus ar Fastodon - contact: Cyswllt contact_missing: Heb ei osod contact_unavailable: Ddim yn berthnasol - continue_to_web: Parhau i app gwe - discover_users: Darganfod defnyddwyr - documentation: Dogfennaeth - federation_hint_html: Gyda cyfrif ar %{instance}, gallwch dilyn pobl ar unrhyw gweinydd Mastodon, a thu hwnt. - 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: Dysgu mwy - logged_in_as_html: Rydych chi wedi mewngofnodi fel %{username}. - logout_before_registering: Rydych chi eisoes wedi mewngofnodi. - privacy_policy: Polisi preifatrwydd - rules: Rheolau gweinydd - rules_html: 'Isod mae crynodeb o''r rheolau y mae angen i chi eu dilyn os ydych chi am gael cyfrif ar y gweinydd hwn o Mastodon:' - see_whats_happening: Gweld beth sy'n digwydd - server_stats: 'Ystadegau gweinydd:' - source_code: Cod ffynhonnell - status_count_after: - few: statwsau - many: statwsau - one: statws - other: statwsau - two: statwsau - zero: statwsau - status_count_before: Ysgrifennwyd gan - tagline: Dilyn ffrindiau a darganfod rhai newydd - terms: Telerau gwasanaeth - unavailable_content: Cynnwys nad yw ar gael - unavailable_content_description: - domain: Gweinydd - 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. - rejecting_media_title: Cyfrwng hidliedig - silenced: Ni fydd swyddi o'r gweinydd hwn yn ymddangos yn unman heblaw eich porthiant cartref os dilynwch yr awdur. - silenced_title: Gweinyddion wedi'i tawelu - 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. - suspended_title: Gweinyddion wedi'i gwahardd - 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 - many: defnyddwyr - one: defnyddiwr - other: defnyddwyr - two: defnyddwyr - zero: defnyddwyr - user_count_before: Cartref i - 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 @@ -78,15 +16,9 @@ cy: zero: Dilynwyr following: Yn dilyn 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 atal. - joined: Ymunodd %{date} last_active: diweddaraf link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date} - media: Cyfryngau - moved_html: 'Mae %{name} wedi symud i %{new_profile_link}:' - network_hidden: Nid yw'r wybodaeth hyn ar gael nothing_here: Does dim byd yma! - people_followed_by: Pobl y mae %{name} yn ei ddilyn - people_who_follow: Pobl sy'n dilyn %{name} pin_errors: following: Rhaid i ti fod yn dilyn y person yr ydych am ei gymeradwyo yn barod posts: @@ -97,14 +29,6 @@ cy: two: Tŵtiau zero: Tŵtiau posts_tab_heading: Postiadau - posts_with_replies: Postiadau ac atebion - roles: - admin: Gweinyddwr - bot: Bot - group: Grŵp - moderator: Safonwr - unavailable: Proffil ddim ar gael - unfollow: Dad-ddilyn admin: account_actions: action: Cyflawni gweithred @@ -121,7 +45,6 @@ cy: avatar: Afatar by_domain: Parth change_email: - changed_msg: E-bost cyfrif wedi ei newid yn llwyddiannus! current_email: E-bost Cyfredol label: Newid E-bost new_email: E-bost Newydd @@ -198,11 +121,7 @@ cy: reset: Ailosod reset_password: Ailosod cyfrinair resubscribe: Aildanysgrifio - role: Caniatâd - roles: - admin: Gweinyddwr - moderator: Aroglygydd - user: Defnyddiwr + role: Rôl search: Chwilio search_same_email_domain: Defnyddwyr eraill gyda'r un parth ebost search_same_ip: Defnyddwyr eraill gyda'r un IP @@ -265,7 +184,6 @@ cy: update_status: Diweddaru Statws actions: memorialize_account_html: Newidodd %{name} gyfrif %{target} i dudalen goffa - deleted_status: "(statws wedi ei ddileu)" empty: Dim logiau ar gael. filter_by_action: Hidlo wrth weithred filter_by_user: Hidlo wrth ddefnyddiwr @@ -445,91 +363,15 @@ cy: unresolved: Heb ei ddatrys updated_at: Diweddarwyd settings: - activity_api_enabled: - desc_html: Niferoedd o statysau wedi eu postio'n lleol, defnyddwyr gweithredol, a cofrestradau newydd mewn bwcedi wythnosol - title: Cyhoeddi ystatedgau cyfangronedig am weithgaredd defnyddwyr - bootstrap_timeline_accounts: - desc_html: Gwahanu sawl enw defnyddiwr a coma. Dim ond cyfrifoedd lleol a cyfrifoedd heb eu cloi fydd yn gweithio. Tra bod yn aros yn wag yr hyn sy'n rhagosodedig yw'r holl weinyddwyr lleol. - title: Dilyn diofyn i ddefnyddwyr newydd - contact_information: - email: E-bost busnes - username: Enw defnyddiwr cyswllt - custom_css: - desc_html: Addasu gwedd gyda CSS wedi lwytho ar bob tudalen - title: CSS wedi'i addasu - default_noindex: - desc_html: Yn effeithio pob defnyddwr sydd heb newid y gosodiad ei hun - title: Eithrio defnyddwyr o fynegai peiriannau chwilio yn rhagosodiedig domain_blocks: all: I bawb disabled: I neb - title: Dangos rhwystriadau parth users: I ddefnyddwyr lleol mewngofnodadwy - domain_blocks_rationale: - title: Dangos rhesymwaith - hero: - desc_html: Yn cael ei arddangos ar y dudadlen flaen. Awgrymir 600x100px oleia. Pan nad yw wedi ei osod, mae'n ymddangos fel mân-lun yr achos - title: Delwedd arwr - mascot: - desc_html: I'w arddangos ar nifer o dudalennau. Awgrymir 293x205px o leiaf. Pan nad yw wedi ei osod, cwympo nôl i'r mascot rhagosodedig - title: Llun mascot - peers_api_enabled: - desc_html: Enwau parth y mae'r achos hwn wedi dod ar ei draws yn y ffedysawd - title: Cyhoeddi rhestr o achosion dargynfyddiedig - preview_sensitive_media: - desc_html: Bydd rhagolygon ar wefannau eraill yn dangos ciplun hyd yn oed os oes na gyfryngau wedi eu marcio'n sensitif - title: Dangos cyfryngau sensitif mewn rhagolygon OpenGraph - profile_directory: - desc_html: Caniatáu i ddefnyddwyr gael eu gweld - title: Galluogi cyfeiriadur proffil - registrations: - closed_message: - desc_html: I'w arddangos ar y dudalen flaen wedi i gofrestru cau. Mae modd defnyddio tagiau HTML - title: Neges gofrestru caeëdig - deletion: - desc_html: Caniatau i unrhywun i ddileu eu cyfrif - title: Agor dileu cyfrif - min_invite_role: - disabled: Neb - title: Caniatau gwahoddiadau gan registrations_mode: modes: approved: Mae angen cymeradwyaeth ar gyfer cofrestru none: Ni all unrhyw un cofrestru open: Gall unrhyw un cofrestru - title: Modd cofrestriadau - show_known_fediverse_at_about_page: - desc_html: Wedi'i ddewis, bydd yn dangos rhagolwg o dŵtiau o'r holl ffedysawd. Fel arall bydd ond yn dangos tŵtiau lleol. - title: Dangos ffedysawd hysbys ar ragolwg y ffrwd - show_staff_badge: - desc_html: Dangos bathodyn staff ar dudalen defnyddiwr - title: Dangos bathodyn staff - site_description: - desc_html: Paragraff agoriadol ar y dudalen flaen. Disgrifiwch yr hyn sy'n arbennig am y gweinydd Mastodon hwn ac unrhywbeth arall o bwys. Mae modd defnyddio tagiau HTML <a> a <em>. - title: Disgrifiad achos - site_description_extended: - desc_html: Lle da ar gyfer eich cod ymddygiad, rheolau, canllawiau a phethau eraill sy'n gwneud eich achos yn whanol. Mae modd i chi ddefnyddio tagiau HTML - title: Gwybodaeth bellach wedi ei addasu - site_short_description: - desc_html: Yn cael ei ddangos yn bar ar yr ochr a tagiau meto. Digrifiwch beth yw Mastodon a beth sy'n gwneud y gweinydd hwn mewn un paragraff. Os yn wag, wedi ei ragosod i ddangos i disgrifiad yr achos. - title: Disgrifiad byr o'r achos - site_terms: - desc_html: Mae modd i chi ysgrifennu polisi preifatrwydd, termau gwasanaeth a cyfreitheg arall eich hun. Mae modd defnyddio tagiau HTML - title: Termau gwasanaeth wedi eu haddasu - site_title: Enw'r achos - thumbnail: - desc_html: Ceith ei ddefnyddio ar gyfer rhagolygon drwy OpenGraph a'r API. Argymhellir 1200x630px - title: Mân-lun yr achos - timeline_preview: - desc_html: Dangos ffrwd gyhoeddus ar y dudalen lanio - title: Rhagolwg o'r ffrwd - title: Gosodiadau'r wefan - trendable_by_default: - desc_html: Yn ddylanwadu ar hashnodau sydd heb ei rhwystro yn y gorffenol - title: Gadael hashnodau i dueddu heb adolygiad cynt - trends: - desc_html: Arddangos hashnodau a adolygwyd yn gynt yn gyhoeddus sydd yn tueddu yn bresennol - title: Hashnodau tueddig site_uploads: delete: Dileu ffeil sydd wedi'i uwchlwytho destroyed_msg: Uwchlwythiad wefan wedi'i ddileu yn lwyddianus! @@ -587,16 +429,12 @@ cy: applications: created: Cais wedi ei greu'n llwyddiannus destroyed: Cais wedi ei ddileu'n llwyddiannus - invalid_url: Mae'r URL a ddarparwyd yn annilys regenerate_token: Adfywio tocyn mynediad token_regenerated: Adfywiwyd y tocyn mynediad yn llwyddiannus warning: Byddwch yn ofalus a'r data hyn. Peidiwch a'i rannu byth! your_token: Eich tocyn mynediad auth: - apply_for_account: Gofyn am wahoddiad change_password: Cyfrinair - checkbox_agreement_html: Rydw i'n cytuno i'r rheolau'r gweinydd a'r telerau gwasanaeth - checkbox_agreement_without_rules_html: Rydw i'n cytuno i Delerau y Gwasanaeth delete_account: Dileu cyfrif delete_account_html: Os hoffech chi ddileu eich cyfrif, mae modd parhau yma. Bydd gofyn i chi gadarnhau. description: @@ -626,7 +464,6 @@ cy: confirming: Aros i gadarnhad e-bost gael ei gwblhau. 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 already_requested: Rydych barod wedi anfon ceisiad dilyn i'r cyfrif hynny @@ -679,10 +516,6 @@ cy: more_details_html: Am fwy o fanylion, gwelwch y polisi preifatrwydd. 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 ôl eu diddordebau - explore_mastodon: Archwilio %{title} disputes: strikes: approve_appeal: Cymeradwyo'r apêl @@ -736,7 +569,6 @@ cy: title: Golygu hidlydd errors: invalid_context: Dim cyd-destun neu cyd-destun annilys wedi ei ddarparu - invalid_irreversible: Mae hidlo anadferadwy ond yn gweithio yng nghyd-destun cartref neu hysbysiadau index: delete: Dileu empty: Nid oes gennych chi hidlyddion. @@ -744,9 +576,6 @@ cy: new: title: Ychwanegu hidlydd newydd footer: - developers: Datblygwyr - more: Mwy… - resources: Adnoddau trending_now: Yn tueddu nawr generic: all: Popeth @@ -778,7 +607,6 @@ cy: following: Rhestr dilyn muting: Rhestr tawelu upload: Uwchlwytho - in_memoriam_html: Er cof. invites: delete: Dadactifadu expired: Wedi darfod @@ -851,18 +679,6 @@ cy: carry_mutes_over_text: Wnaeth y defnyddiwr symud o %{acct}, a oeddech chi wedi'i dawelu. copy_account_note_text: 'Wnaeth y defnyddiwr symud o %{acct}, dyma oedd eich hen nodiadau amdanynt:' notification_mailer: - digest: - action: Gweld holl hysbysiadau - body: Dyma grynodeb byr o'r holl negeseuon golloch chi ers eich ymweliad diwethaf ar %{since} - mention: 'Soniodd %{name} amdanoch chi:' - new_followers_summary: - few: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê! - many: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê! - one: Yr ydych wedi ennill dilynwr newydd tra eich bod i ffwrdd! Hwrê! - other: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê! - two: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê! - zero: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê! - title: Yn eich absenoldeb... favourite: body: 'Cafodd eich statws ei hoffi gan %{name}:' subject: Hoffodd %{name} eich statws @@ -941,24 +757,7 @@ cy: remove_selected_follows: Dad-ddilyn y defnyddwyr dewisiedig status: Statws cyfrif remote_follow: - acct: Mewnbynnwch eich enwdefnyddiwr@parth yr ydych eisiau gweithredu ohonno missing_resource: Ni ellir canfod yr URL ailgyferio angenrheidiol i'ch cyfrif - no_account_html: Heb gyfrif? Mae modd i chi gofrestru yma - proceed: Ymlaen i ddilyn - prompt: 'Yr ydych am ddilyn:' - reason_html: |- - Pam yw'r cam hyn yn angenrheidiol? - Efallai nid yw %{instance} yn gweinydd ble wnaethoch gofrestru, felly mae'n rhaid i ni ailarweinio chi at eich gweinydd catref yn gyntaf. - remote_interaction: - favourite: - proceed: Ymlaen i hoffi - prompt: 'Hoffech hoffi''r tŵt hon:' - reblog: - proceed: Ymlaen i fŵstio - prompt: 'Hoffech fŵstio''r tŵt hon:' - reply: - proceed: Ymlaen i ateb - prompt: 'Hoffech ateb y tŵt hon:' scheduled_statuses: over_daily_limit: Rydych wedi rhagori'r cyfwng o %{limit} o dŵtiau rhestredig ar y dydd hynny over_total_limit: Rydych wedi rhagori'r cyfwng o %{limit} o dŵtiau rhestredig @@ -974,7 +773,6 @@ cy: description: "%{browser} ar %{platform}" explanation: Dyma'r porwyr gwê sydd wedi mewngofnodi i'ch cyfrif Mastododon ar hyn o bryd. platforms: - chrome_os: OS Chrome firefox_os: OS Firefox mac: Mac other: platfform anhysbys @@ -1079,89 +877,6 @@ cy: too_late: Mae'n rhy hwyr i apelio yn erbyn y rhybudd hwn tags: does_not_match_previous_name: ddim yn cyfateb i'r enw blaenorol - terms: - body_html: | -

      Polisi Preifatrwydd

      -

      Pa wybodaeth ydyn ni'n ei gasglu?

      - -
        -
      • Gwybodaeth cyfrif sylfaenol: Os ydych yn cofrestru ar y gweinydd hwn, mae'n bosib y byddwch yn cael eich gofyn i fewnbynnu enw defnyddiwr, cyfeiriad e-bost a chyfrinair. Mae modd i chi hefyd fewnbynnu gwybodaeth ychwanegol megis enw arddangos a bywgraffiad ac uwchlwytho llun proffil a llun pennawd. Mae'r enw defnyddiwr, enw arddangos, bywgraffiad, llun proffil a'r llun pennawd wedi eu rhestru'n gyhoeddus bob tro.
      • -
      • Postio, dilyn a gwybodaeth gyhoeddus arall: Mae'r rhestr o bobl yr ydych yn dilyn wedi ei restru'n gyhoeddus, mae'r un peth yn wir am eich dilynwyr. Pan yr ydych yn mewnosod neges, mae'r dyddiad a'r amser yn cael ei gofnodi ynghyd a'r rhaglen y wnaethoch anfon y neges ohonni. Gall negeseuon gynnwys atodiadau cyfryngau, megis lluniau neu fideo. Mae negeseuon cyhoeddus a negeseuon heb eu rhestru ar gael yn gyhoeddus. Pan yr ydych yn nodweddu neges ar eich proffil, mae hynny hefyd yn wybodaeth sydd ar gael yn gyhoeddus. Mae eich negeseuon yn cael eu hanfon i'ch dilynwyr, mewn rhai achosion mae hyn yn golygu eu bod yn cael eu hanfon i amryw o weinyddwyr ac fe fydd copiau yn cael eu cadw yno. Pan yr ydych yn dileu negeseuon, mae hyn hefyd yn cael ei hanfon i'ch dilynwyr. Mae'r weithred o rannu neu hoffi neges arall yn gyhoeddus bob tro.
      • -
      • Negeseuon uniongyrchol a dilynwyr yn unig: Mae pob neges yn cael eu cadw a'u prosesu ar y gweinydd. Mae negeseuon dilynwyr yn unig yn cael eu hanfon i'ch dilynwyr a'r defnyddwyr sy'n cael eu crybwyll ynddynt tra bod negeseuon uniongyrchol yn cael eu hanfon at rheini sy'n cael crybwyll ynddynt yn unig. Mewn rhai achostion golyga hyn eu bod yn cael eu hanfon i weinyddwyr gwahanol a'u cadw yno. yr ydym yn gnweud ymgais ewyllys da i gyfyngu'r mynediad at y negeseuon yna i bobl ac awdurdod yn unig, ond mae'n bosib y bydd gweinyddwyr eraill yn methu a gwneud hyn. Mae'n bwysig felly i chi fod yn wyliadwrus o ba weinyddwyr y mae eich dilynwyr yn perthyn iddynt. Mae modd i chi osod y dewis i ganiatau a gwrthod dilynwyr newydd a llaw yn y gosodiadau. Cofiwch gall gweithredwyr y gweinydd ac unrhyw weinydd derbyn weld unrhyw negeseuon o'r fath, ac fe all y derbynwyr gymryd sgrinlin, copïo neu drwy ddulliau eraill rannu rhain. Peidiwch a rhannu unrhyw wybodaeth beryglus dros Mastodon.
      • -
      • IPs a mathau eraill o metadata: Pan yr ydych yn mewngofnodi, yr ydym yn cofnodi y cyfeiriad IP yr ydych yn mewngofnodi ohonno, ynghyd a enw eich rhaglen pori. Mae pob un sesiwn mewngofnodi ar gael i chi adolygu a gwrthod yn y gosodiadau. Mae'r cyfeiriad IP diweddaraf yn cael ei storio hyd at 12 mis. Mae'n bosib y byddwn hefyd yn cadw cofnodion gweinydd sy'n cynnwys y cyfeiriad IP am bob cais sy'n cael ei wneud i'n gweinydd.
      • -
      - -
      - -

      Beth ydym yn defnyddio eich gywbodaeth ar ei gyfer?

      - -

      Gall unrhyw wybodaeth yr ydym yn ei gasglu oddi wrthych gael ei ddefnyddio yn y ffyrdd canlynol:

      - -
        -
      • I ddarparu prif weithgaredd Mastodon. Gallwch ond rhyngweithio a chynnwys pobl eraill pan yr ydych wedi'ch mewngofnodi. Er enghraifft, gallwch ddilyn pobl eraill i weld eu negeseuon wedi cyfuno ar ffrwd gartref bersonol.
      • -
      • I helpu gyda goruwchwylio'r gymuned, er enghraifft drwy gymharu eich cyfeiriad IP gyda rhai eraill hysbys er mwyn sefydlu ymgais i geisio hepgor gwaharddiad neu droseddau eraill.
      • -
      • Gall y cyfeiriad e-bost yr ydych yn ei ddarparu gael ei ddefnyddio i anfon gwybodaeth atoch, hsybysiadau am bobl eraill yn rhyngweithio a'ch cynnwys neu'n anfon negeseuon atoch a/neu geisiadau neu gwestiynnau eraill.
      • -
      - -
      - -

      Sut ydym yn amddiffyn eich gwybodaeth?

      - -

      Mae gennym amryw o fesurau diogelwch er mwyn cynnal diogelwch eich gwybodaeth bersonol pan yr ydych yn mewnosod, cyflwyno neu'n cael mynediad at eich gwybodaeth bersonol. Ymysg pethau eraill, mae sesiwn eich porwr, ynghyd a'r traffig rhwng eich rhaglenni a'r API wedi eu diogelu gan SSL, ac mae'ch cyfrinair yn cael ei stwnshio drwy ddefnyddio algorithm cryf un-ffordd. Gallwch alluogi dilysu dau-gam er mwyn cryfhau diogelwch mynediad i'ch cyfrif ymhellach.

      - -
      - -

      Beth yw ein polisi cadw data?

      - -

      Gwnawn ymdrech ewyllys da i:

      - -
        -
      • Gadw cofnod gweinydd yn cynnwys y cyfeiriad IP o bob cais i'r gweinydd hwn, i'r graddau y mae cofnodion o'r fath yn cael eu cadw, am ddim mwy na 90 diwrnod.
      • -
      • Gadw cyfeiriadau IP a chysylltiad i ddefnyddwyr cofrestredig am ddim mwy na 12 mis.
      • -
      - -

      Mae modd i chi wneud cais am, a lawrlwytho archif o'ch cynnwys, gan gynnwys eich tŵtiau, atodiadau cyfryngau, llun proffil a llun pennawd.

      - -

      Mae modd i chi ddileu eich cyfrif heb ei adfer ar unrhyw bryd

      - -
      - -

      Ydyn ni'n defnyddio cwcis?

      - -

      Ydyn. Dogfennau bach sy'n cael eu trosglwyddo i ddisg galed eich cyfrifiadur drwy eich porwr gan wefan neu wasanaeth yw cwcis (os ydych yn eu caniatau). Galluoga'r cwcis hyn i'r wefan i adnabod eich porwr ac, os oes gennych gyfrif wedi ei gofrestru, ei gysylltu gyda'r cyfrif yr ydych wedi ei gofrestru.

      - -

      Rydym yn defnyddio cwcis i ddeall a chadw eich dewisiadau ar gyfer ymweliadau yn y dyfodol.

      - -
      - -

      Ydyn ni'n datgelu unrhyw wybodaeth i bartïoedd allanol?

      - -

      Nid ydym yn gwerthu, cyfnewid neu mewn unrhyw ddull yn trosglwyddo i bartïoedd allanol eich gwybodaeth bersonol. Nid yw hyn yn cynnwys trydydd partïon yr ydym yn ymddiried ynddynt sy'n ein cynorthwyo i weithredu ein gwefan, cynnal ein busnes neu'ch gwasanaethu chi, cyhyd a bod y partïoedd hynny yn cytuno i gadw'r wybodaeth yma'n gyfrinachol. Mae'n bosib i ni ryddhau eich gwybodaeth pan yr ydym yn credu fod ei ryddhau yn briodol er mwyn cydymffurfio a'r gyfraith, gorfodi ein polisiau, neu i amddiffyn hawliau, eiddo neu diogelwch eraill.

      - -

      Gall eich cynnwys cyhoeddus gael ei lawrlwytho gan weinyddwyr eraill yn y rhwydwaith. Mae eich tŵtiau cyhoeddus a'r rhai dilynwyr yn unig yn cael eu hanfon i'r gweinyddwyr sy'n lletya eich dilynwyr, tra bod negeseuon uniongrychol yn cael eu hanfon at weinyddwyr y derbynwyr, cyn belled a fod y dilynwyr neu'r derbynwyr hynny yn bodoli ar weinydd gwahanol i'r un hwn.

      - -

      Pan yr ydych yn caniatau y rhaglen hwn i ddefnyddio'ch cyfrif, yn dibynnu ar sgôp yr hyn yr ydych yn caniatau, gallai gael mynediad at eich gwybodaeth proffil cyhoeddus, eich rhestr dilynwyr, eich dilynwyr, eich rhestrau, eich holl dŵtiau a'ch ffefrynnau. Ni all rhaglenni byth gael mynediad at eich cyfeiriad e-bost na chwaith eich cyfrinair.

      - -
      - -

      Defnydd o'r wefan gan blant

      - -

      Os yw'r gweinydd hwn yn yr UE neu'r EEA: Mae ein gwefan, ein nwyddau a'n gwasanaethau oll wedi eu cyfeirio at bobl sydd dros 16 mlwydd oed. Os ydych o dan 16, yn ôl gofyniad y GDPR (General Data Protection Regulation) peidiwch a defnyddio'r wefan hon.

      - -

      Os yw'r gweinydd hwn yn UDA: Mae ein gwefan, ein nwyddau a'n gwasanaethau oll wedi eu cyfeirio at bobl sydd dros 13 mlwydd oed oleiaf. Os ydych o dan 13 mlwydd oed, yn ôl gofyniad COPPA (Children's Online Privacy Protection Act) peidiwch a defnyddio'r wefan hon.

      - -

      Mae gofynion y gyfraith yn gallu bod yn wahanol os yw'r gweinydd hwn mewn awdurdodaeth wahanol.

      - -
      - -

      Newidiadau i'n Polisi Preifatrwydd

      - -

      Os ydyn yn penderfynnu i newid ein polisi preifatrwydd, fe wnawn ni roi'r newidiadau hynny ar y dudalen hon.

      - -

      Mae'r ddogfen hon yn CC-BY-SA. Cafodd ei ddiweddaru diwethaf ar y 7fed o Fawrth, 2018.

      - -

      Cafodd ei addasu yn wreiddiol o'rPolisi preifatrwydd disgwrs.

      - title: "%{instance} Termau Gwasanaeth a Polisi Preifatrwydd" themes: contrast: Mastodon (Cyferbyniad uchel) default: Mastodon (Tywyll) @@ -1193,20 +908,11 @@ cy: suspend: Cyfrif wedi'i rewi welcome: edit_profile_action: Sefydlu proffil - edit_profile_step: Mae modd i chi addasu eich proffil drwy uwchlwytho afatar, pennawd, drwy newid eich enw arddangos a mwy. Os hoffech chi adolygu dilynwyr newydd cyn iddynt gael caniatad i'ch dilyn, mae modd i chi gloi eich cyfrif. explanation: Dyma ambell nodyn i'ch helpu i ddechrau final_action: Dechrau postio - final_step: 'Dechrau postio! Hyd yn oed heb ddilynwyr mae''n bosib i eraill weld eich negeseuon cyhoeddus, er enghraifft at y ffrwd leol ac mewn hashnodau. Mae''n bosib yr hoffech hi gyflwyno''ch hun ar yr hashnod #introductions.' full_handle: Eich enw llawn full_handle_hint: Dyma'r hyn y bysech yn dweud wrth eich ffrindiau er mwyn iddyn nhw gael anfon neges atoch o achos arall. - review_preferences_action: Newid dewisiadau - review_preferences_step: Gwnewch yn siŵr i chi osod eich dewisiadau, megis pa e-byst hoffech eu derbyn, neu ba lefel preifatrwydd hoffech eich tŵtiau ragosod i. Os nad oes gennych salwch symud, gallwch ddewis i ganiatau chwarae GIFs yn awtomatig. subject: Croeso i Mastodon - tip_federated_timeline: Mae'r ffrwd ffederasiwn yn olwg firehose o'r rhwydwaith Mastodon. Ond mae ond yn cynnwys y bobl mae eich cymdogion wedi ymrestru iddynt, felly nid yw'n gyflawn. - tip_following: Rydych yn dilyn goruwchwyliwr eich gweinydd yn ddiofyn. I ganfod pobl mwy diddorol, edrychwch ar y ffrydiau lleol a'r rhai wedi ei ffedereiddio. - tip_local_timeline: Mae'r ffrwd leol yn olwg firehose o bobl ar %{instance}. Dyma eich cymdogion agosaf! - tip_mobile_webapp: Os yw eich porwr gwe yn cynnig i chi ychwanegu Mastodon i'ch sgrîn gartref, mae modd i chi dderbyn hysbysiadau gwthiadwy. Mewn sawl modd mae'n gweithio fel ap cynhenid! - tips: Awgrymiadau title: Croeso, %{name}! users: follow_limit_reached: Nid oes modd i chi ddilyn mwy na %{limit} o bobl diff --git a/config/locales/da.yml b/config/locales/da.yml index 698e772f428825..f9fd0038796d81 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1,94 +1,27 @@ --- da: about: - about_hashtag_html: Disse er offentlige indlæg tagget med #%{hashtag}, som man kan interagere med, hvis man har en konto hvor som helst i fediverset. about_mastodon_html: 'Fremtidens sociale netværk: Ingen annoncer, ingen virksomhedsovervågning, etisk design og decentralisering! Vær ejer af egne data med Mastodon!' - about_this: Om - active_count_after: aktive - active_footnote: Månedlige aktive brugere (MAU) - administered_by: 'Håndteres af:' - api: API - apps: Mobil-apps - apps_platforms: Benyt Mastodon på Android, iOS og andre platforme - browse_directory: Gennemse en profilmappe og filtrér efter interesser - browse_local_posts: Gennemse en live stream af offentlige indlæg fra denne server - browse_public_posts: Gennemse en live stream af offentlige indlæg på Mastodon - contact: Kontakt contact_missing: Ikke angivet contact_unavailable: Utilgængelig - continue_to_web: Fortsæt til web-app - discover_users: Find brugere - documentation: Dokumentation - federation_hint_html: Vha. en konto på %{instance} vil man kunne følge andre på en hvilken som helst Mastodon-server. - get_apps: Prøv en mobil-app hosted_on: Mostodon hostet på %{domain} - instance_actor_flash: | - Denne konto er en virtuel aktør brugt som repræsentation af selve serveren og ikke en individuel bruger. - Den bruges til fællesformål og bør ikke blokeres, medmindre hele instansen ønskes blokeret, i hvilket tilfælde man bør bruge domæneblokering. - learn_more: Læs mere - logged_in_as_html: Du er pt. logget ind som %{username}. - logout_before_registering: Allerede logget ind. - privacy_policy: Fortrolighedspolitik - rules: Serverregler - rules_html: 'Nedenfor ses en oversigt over regler, som skal følges, hvis man ønsker at have en konto på denne Mastodon-server:' - see_whats_happening: Se, hvad der sker - server_stats: 'Serverstatstik:' - source_code: Kildekode - status_count_after: - one: indlæg - other: indlæg - status_count_before: Som har postet - tagline: Følg venner og opdag nye - terms: Tjenestevilkår - unavailable_content: Modererede servere - unavailable_content_description: - domain: Server - reason: Årsag - rejecting_media: 'Mediefiler fra disse servere hverken behandles eller gemmes, og ingen miniaturebilleder vises, hvilket kræver manuelt klik-igennem til originalfilen:' - rejecting_media_title: Filtrerede medier - silenced: 'Indlæg fra disse servere er skjult i offentlige tidslinjer og konversationer, og der genereres ingen notifikationer fra deres brugerinteraktioner, medmindre man følger dem:' - silenced_title: Begrænsede servere - suspended: 'Data fra disse servere hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra disse servere:' - suspended_title: Suspenderede servere - unavailable_content_html: Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server. - user_count_after: - one: bruger - other: brugere - user_count_before: Hjem til - what_is_mastodon: Hvad er Mastodon? + title: Om accounts: - choices_html: "%{name}s valg:" - endorsements_hint: Man kan støtte personer, man følger, fra webgrænsefladen, som så vil fremgå hér. - featured_tags_hint: Man kan fremhæve bestemte hashtags, som så vil fremgå hér. follow: Følg followers: one: Følger other: Følgere following: Følger instance_actor_flash: Denne konto er en virtuel aktør repræsenterende selve serveren og ikke en individuel bruger. Den anvendes til fællesformål og bør ikke suspenderes. - joined: Tilmeldt %{date} last_active: senest aktiv link_verified_on: Ejerskab af dette link blev tjekket %{date} - media: Medier - moved_html: "%{name} er flyttet til %{new_profile_link}:" - network_hidden: Denne information er utilgængelig nothing_here: Der er intet hér! - people_followed_by: Personer, som %{name} følger - people_who_follow: Personer, som følger %{name} pin_errors: following: Man skal allerede følge den person, man ønsker at støtte posts: one: Indlæg other: Indlæg posts_tab_heading: Indlæg - posts_with_replies: Indlæg og svar - roles: - admin: Admin - bot: Bot - group: Gruppe - moderator: Moderator - unavailable: Profil utilgængelig - unfollow: Følg ikke længere admin: account_actions: action: Udfør handling @@ -105,12 +38,17 @@ da: avatar: Profilbillede by_domain: Domæne change_email: - changed_msg: Kontoens e-mail er skiftet! + changed_msg: E-mail skiftet! current_email: Nuværende e-mail label: Skift e-mail new_email: Ny e-mail submit: Skift e-mail title: Skift e-mail for %{username} + change_role: + changed_msg: Rolle ændret! + label: Ændr rolle + no_role: Ingen rolle + title: Ændr rolle for %{username} confirm: Bekræft confirmed: Bekræftet confirming: Bekræfter @@ -148,12 +86,13 @@ da: login_status: Indlogningsstatus media_attachments: Medievedhæftninger memorialize: Omdan til mindekonto - memorialized: Memorialiseret + memorialized: Gjort til mindekonto memorialized_msg: "%{username} gjort til mindekonto" moderation: active: Aktiv all: Alle pending: Afventer + silenced: Begrænset suspended: Suspenderet title: Moderation moderation_notes: Moderationsnotater @@ -161,6 +100,7 @@ da: most_recent_ip: Seneste IP no_account_selected: Ingen kontiændringer, da ingen var valgt no_limits_imposed: Ingen begrænsninger pålagt + no_role_assigned: Ingen rolle tildelt not_subscribed: Abonnerer ikke pending: Afventende vurdering perform_full_suspension: Suspendér @@ -187,12 +127,7 @@ da: reset: Nulstil reset_password: Nulstil adgangskode resubscribe: Genabonnér - role: Tilladelser - roles: - admin: Administrator - moderator: Moderator - staff: Personale - user: Bruger + role: Rolle search: Søg search_same_email_domain: Øvrige brugere med samme e-maildomæne search_same_ip: Øvrige brugere med identisk IP @@ -235,17 +170,21 @@ da: approve_user: Godkend bruger assigned_to_self_report: Tildel rapport change_email_user: Skift e-mail for bruger + change_role_user: Skift brugerrolle confirm_user: Bekræft bruger create_account_warning: Opret advarsel create_announcement: Opret bekendtgørelse + create_canonical_email_block: Opret e-mailblokering create_custom_emoji: Opret tilpasset emoji create_domain_allow: Opret domænetilladelse create_domain_block: Opret domæneblokering create_email_domain_block: Opret e-maildomæneblokering create_ip_block: Opret IP-regel create_unavailable_domain: Opret Utilgængeligt Domæne + create_user_role: Opret rolle demote_user: Degradér bruger destroy_announcement: Slet bekendtgørelse + destroy_canonical_email_block: Slet e-mailblokering destroy_custom_emoji: Slet tilpasset emoji destroy_domain_allow: Slet domænetilladelse destroy_domain_block: Slet domæneblokering @@ -254,6 +193,7 @@ da: destroy_ip_block: Slet IP-regel destroy_status: Slet indlæg destroy_unavailable_domain: Slet Utilgængeligt Domæne + destroy_user_role: Ødelæg rolle disable_2fa_user: Deaktivér 2FA disable_custom_emoji: Deaktivér tilpasset emoji disable_sign_in_token_auth_user: Deaktivér e-mailtoken godkendelse for bruger @@ -267,6 +207,7 @@ da: reject_user: Afvis bruger remove_avatar_user: Fjern profilbillede reopen_report: Genåbn anmeldelse + resend_user: Gensend bekræftelsese-mail reset_password_user: Nulstil adgangskode resolve_report: Løs anmeldelse sensitive_account: Gennemtving sensitiv konto @@ -280,24 +221,30 @@ da: update_announcement: Opdatér bekendtgørelse update_custom_emoji: Opdatér tilpasset emoji update_domain_block: Opdatér domæneblokering + update_ip_block: Opdatér IP-regel update_status: Opdatér indlæg + update_user_role: Opdatér rolle actions: approve_appeal_html: "%{name} godkendte moderationsafgørelsesappellen fra %{target}" approve_user_html: "%{name} godkendte tilmeldingen fra %{target}" assigned_to_self_report_html: "%{name} tildelte sig selv anmeldelsen %{target}" change_email_user_html: "%{name} ændrede e-mailadressen for bruger %{target}" + change_role_user_html: "%{name} ændrede rollen for %{target}" confirm_user_html: "%{name} bekræftede e-mailadressen for bruger %{target}" create_account_warning_html: "%{name} sendte en advarsel til %{target}" create_announcement_html: "%{name} oprettede den nye bekendtgørelse %{target}" + create_canonical_email_block_html: "%{name} blokerede e-mailen med hash'et %{target}" create_custom_emoji_html: "%{name} uploadede den nye emoji %{target}" create_domain_allow_html: "%{name} tillod federering med domænet %{target}" create_domain_block_html: "%{name} blokerede domænet %{target}" create_email_domain_block_html: "%{name} blokerede e-maildomænet %{target}" create_ip_block_html: "%{name} oprettede en regel for IP %{target}" create_unavailable_domain_html: "%{name} stoppede levering til domænet %{target}" + create_user_role_html: "%{name} oprettede %{target}-rolle" demote_user_html: "%{name} degraderede brugeren %{target}" destroy_announcement_html: "%{name} slettede bekendtgørelsen %{target}" - destroy_custom_emoji_html: "%{name} fjernede emojien %{target}" + destroy_canonical_email_block_html: "%{name} afblokerede e-mailen med hash'et %{target}" + destroy_custom_emoji_html: "%{name} slettede emojien %{target}" destroy_domain_allow_html: "%{name} fjernede federeringstilladelsen med domænet %{target}" destroy_domain_block_html: "%{name} afblokerede domænet %{target}" destroy_email_domain_block_html: "%{name} afblokerede e-maildomænet %{target}" @@ -305,6 +252,7 @@ da: destroy_ip_block_html: "%{name} slettede en regel for IP %{target}" destroy_status_html: "%{name} fjernede indlægget fra %{target}" destroy_unavailable_domain_html: "%{name} genoptog levering til domænet %{target}" + destroy_user_role_html: "%{name} slettede %{target}-rolle" disable_2fa_user_html: "%{name} deaktiverede tofaktorkravet for brugeren %{target}" disable_custom_emoji_html: "%{name} deaktiverede emojien %{target}" disable_sign_in_token_auth_user_html: "%{name} deaktiverede e-mailtoken godkendelsen for %{target}" @@ -318,6 +266,7 @@ da: reject_user_html: "%{name} afviste tilmelding fra %{target}" remove_avatar_user_html: "%{name} fjernede %{target}s profilbillede" reopen_report_html: "%{name} genåbnede anmeldelsen %{target}" + resend_user_html: "%{name} gensendte bekræftelses-e-mail for %{target}" reset_password_user_html: "%{name} nulstillede adgangskoden for brugeren %{target}" resolve_report_html: "%{name} løste anmeldelsen %{target}" sensitive_account_html: "%{name} markerede %{target}s medier som sensitive" @@ -331,8 +280,10 @@ da: update_announcement_html: "%{name} opdaterede bekendtgørelsen %{target}" update_custom_emoji_html: "%{name} opdaterede emoji %{target}" update_domain_block_html: "%{name} opdaterede domæneblokeringen for %{target}" + update_ip_block_html: "%{name} ændrede reglen for IP'en %{target}" update_status_html: "%{name} opdaterede indlægget fra %{target}" - deleted_status: "(slettet indlæg)" + update_user_role_html: "%{name} ændrede %{target}-rolle" + deleted_account: slettet konto empty: Ingen logger fundet. filter_by_action: Filtrér efter handling filter_by_user: Filtrér efter bruger @@ -376,6 +327,7 @@ da: listed: Oplistet new: title: Tilføj ny tilpasset emoji + no_emoji_selected: Ingen emoji ændret (da ingen var valgt) not_permitted: Ingen tilladelse til at udføre denne handling overwrite: Overskriv shortcode: Kortkode @@ -428,6 +380,7 @@ da: destroyed_msg: Domæneblokering er blevet fjernet domain: Domæne edit: Redigér domæneblokering + existing_domain_block: "%{name} er allerede pålagt strengere restriktioner." existing_domain_block_html: Der har allerede pålagt %{name} strengere begrænsninger, så dette kræver først en afblokering. new: create: Opret blokering @@ -648,6 +601,65 @@ da: unresolved: Uløst updated_at: Opdateret view_profile: Vis profil + roles: + add_new: Tilføj rolle + assigned_users: + one: "%{count} bruger" + other: "%{count} brugere" + categories: + administration: Håndtering + invites: Invitationer + moderation: Moderering + special: Speciel + delete: Slet + description_html: Med brugerrollerkan man tilpasse sine brugeres adgang til Mastodon-funktioner og -områder. + edit: Redigér rolle for '%{name} + everyone: Standardtilladelser + everyone_full_description_html: Dette er basisrollen med indvirkning på alle brugere, selv dem uden rolletildeling. Alle øvrige rolletilladelser nedarves herfra. + permissions_count: + one: "%{count} tilladelse" + other: "%{count} tilladelser" + privileges: + administrator: Administrator + administrator_description: Brugere med denne rolle kan omgå alle tilladelser + delete_user_data: Slet brugerdata + delete_user_data_description: Tillader brugere at slette andre brugeres data straks + invite_users: Invitér brugere + invite_users_description: Tillader brugere at invitere nye personer til serveren + manage_announcements: Håndtere bekendtgørelser + manage_announcements_description: Tillader brugere at håndtere bekendtgørelser på serveren + manage_appeals: Håndtere appeller + manage_appeals_description: Tillader brugere at vurdere appeller af modereringshandlinger + manage_blocks: Håndtere blokeringer + manage_blocks_description: Tillader brugere at blokere e-mailudbydere og IP-adresser + manage_custom_emojis: Håndtere tilpassede emojier + manage_custom_emojis_description: Tillader brugere at håndtere tilpassede emojier på serveren + manage_federation: Håndtere federation + manage_federation_description: Tillader brugere at blokere eller tillade federation med andre domæner og styre leverbarhed + manage_invites: Administrér invitationer + manage_invites_description: Tillader brugere at gennemse og deaktivere invitationslinks + manage_reports: Håndtere rapporter + manage_reports_description: Tillader brugere at vurdere rapporter og, i overensstemmelse hermed, at udføre moderationshandlinger + manage_roles: Håndtere roller + manage_roles_description: Tillader brugere at håndtere og tildele roller under deres privilegiestatus + manage_rules: Håndtere regler + manage_rules_description: Tillad brugere at ændre serverregler + manage_settings: Håndtere indstillinger + manage_settings_description: Tillader brugere at ændre webstedsindstillinger + manage_taxonomies: Håndtere taksonomier + manage_taxonomies_description: Tillader brugere at gennemse tenderende indhold og opdatere hashtag-indstillinger + manage_user_access: Håndtere brugeradgang + manage_user_access_description: Tillader brugere at deaktivere andre brugeres tofaktorgodkendelse, skifte deres e-mailadresse og nulstille deres adgangskode + manage_users: Håndtere brugere + manage_users_description: Tillader brugere at se andre brugeres oplysninger og underkaste dem moderationshandlinger + manage_webhooks: Håndtere Webhooks + manage_webhooks_description: Tillader brugere at opsætte webhooks til administrative begivenheder + view_audit_log: Vis revisionslog + view_audit_log_description: Tillader brugere at se en historik over administrative handlinger på serveren + view_dashboard: Vis Dashboard + view_dashboard_description: Tillader brugere at tilgå Dashboard'et og forskellige målinger + view_devops_description: Tillader brugere at tilgå Sidekiq- og pgHero-dashboards + title: Roller rules: add_new: Tilføj regel delete: Slet @@ -656,108 +668,67 @@ da: empty: Ingen serverregler defineret endnu. title: Serverregler settings: - activity_api_enabled: - desc_html: Antal lokalt opslåede indlæg, aktive brugere samt nye tilmeldinger i ugentlige opdelinger - title: Offentliggør samlede statistikker vedr. brugeraktivitet i API'en - bootstrap_timeline_accounts: - desc_html: Adskil flere brugernavne med kommaer. Disse konti vil være garanteret visning i følg-anbefalinger - title: Anbefal disse konti til nye brugere - contact_information: - email: Forretningse-mail - username: Kontaktbrugernavn - custom_css: - desc_html: Ændre udseendet med CSS indlæst på hver side - title: Tilpasset CSS - default_noindex: - desc_html: Påvirker alle brugere, som ikke selv har ændret denne indstilling - title: Fravælg som standard søgemaskineindekseringer for brugere + about: + manage_rules: Håndtér serverregler + preamble: Giv dybdegående oplysninger om, hvordan serveren opereres, modereres, finansieres. + rules_hint: Der er et dedikeret område for regler, som forventes overholdt af brugerne. + title: Om + appearance: + preamble: Tilpas Mastodon-webgrænsefladen. + title: Udseende + branding: + preamble: Serverens branding adskiller den fra andres i netværket. Oplysningerne kan vises på tværs af div. miljøer, såsom Mastodon-webgrænsefladen, dedikerede applikationer, i-link forhåndsvisninger på andre websteder og i besked-apps mv. Oplysningerne bør derfor være klare og detaljerede, men samtidig kortfattede. + title: Branding + content_retention: + preamble: Styr, hvordan Mastodon gemmer brugergenereret indhold. + title: Indholdsopbevaring + discovery: + follow_recommendations: Følg-anbefalinger + preamble: At vise interessant indhold er vitalt ifm. at få nye brugere om bord, som måske ikke kender nogen på Mastodon. Styr, hvordan forskellige opdagelsesfunktioner fungerer på serveren. + profile_directory: Profiloversigt + public_timelines: Offentlige tidslinjer + title: Opdagelse + trends: Trends domain_blocks: all: Til alle disabled: Til ingen - title: Vis domæneblokeringer users: Til indloggede lokale brugere - domain_blocks_rationale: - title: Vis begrundelse - hero: - desc_html: Vises på forsiden. Mindst 600x100px anbefales. Hvis ikke opsat, benyttes serverminiaturebillede - title: Heltebillede - mascot: - desc_html: Vises på flere sider. Mindst 293x205px anbefales. Hvis ikke opsat, benyttes standardmaskot - title: Maskotbillede - peers_api_enabled: - desc_html: Domænenavne, denne server er stødt på i fediverset - title: Udgiv liste over fundne server i API'en - preview_sensitive_media: - desc_html: Linkforhåndsvisninger på andre websteder vil vise et miniaturebillede, selv hvis mediet er markeret som sensitivt - title: Vis sensitive medier i OpenGraph-forhåndsvisninger - profile_directory: - desc_html: Tillad brugere at blive fundet - title: Aktivér profilmappe registrations: - closed_message: - desc_html: Vises på forside, når tilmeldingsmuligheder er lukket. HTML-tags kan bruges - title: Lukket tilmelding-besked - deletion: - desc_html: Tillad enhver at slette sin konto - title: Åbn kontosletning - min_invite_role: - disabled: Ingen - title: Tillad invitationer fra - require_invite_text: - desc_html: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit - title: Nye brugere afkræves tilmeldingsbegrundelse + preamble: Styr, hvem der kan oprette en konto på serveren. + title: Registreringer registrations_mode: modes: approved: Tilmeldingsgodkendelse kræves none: Ingen kan tilmelde sig open: Alle kan tilmelde sig - title: Tilmeldingstilstand - show_known_fediverse_at_about_page: - desc_html: Når deaktiveret, begrænses den fra indgangssiden linkede offentlige tidslinje til kun at vise lokalt indhold - title: Medtag federeret indhold på ikke-godkendt, offentlig tidslinjeside - show_staff_badge: - desc_html: Vis et personale-badge på en brugerside - title: Vis personale-badge - site_description: - desc_html: Introduktionsafsnit på API'en. Beskriv, hvad der gør denne Mastodonserver speciel samt alt andet vigtigt. HTML-tags kan bruges, især <a> og <em>. - title: Serverbeskrivelse - site_description_extended: - desc_html: Et god placering til adfærdskodes, regler, retningslinjer mv., som gør denne server unik. HTML-tags kan bruges - title: Tilpasset udvidet information - site_short_description: - desc_html: Vises på sidebjælke og metatags. Beskriv i et enkelt afsnit, hvad Mastodon er, og hvad der gør denne server speciel. - title: Kort serverbeskrivelse - site_terms: - desc_html: Der kan angives egen fortrolighedspolitik, tjenestevilkår el.lign. HTML-tags kan bruges - title: Tilpassede tjenestevilkår - site_title: Servernavn - thumbnail: - desc_html: Bruges til forhåndsvisninger via OpenGraph og API. 1200x630px anbefales - title: Serverminiaturebillede - timeline_preview: - desc_html: Vis link til offentlig tidslinje på indgangssiden og lad API'en tilgå den offentlige tidslinje uden godkendelse - title: Tillad ikke-godkendt tilgang til offentlig tidslinje - title: Webstedsindstillinger - trendable_by_default: - desc_html: Påvirker hashtags, som ikke tidligere er blevet nægtet - title: Tillad hashtags at forme tendens uden forudgående revision - trends: - desc_html: Vis offentligt tidligere reviderede hashtags, som pt. trender - title: Populært + title: Serverindstillinger site_uploads: delete: Slet uploadet fil destroyed_msg: Websteds-upload blev slettet! statuses: + account: Forfatter + application: Applikation back_to_account: Retur til kontoside back_to_report: Retur til anmeldelsesside batch: remove_from_report: Fjern fra anmeldelse report: Anmeldelse deleted: Slettet + favourites: Favoritter + history: Versionshistorik + in_reply_to: Svarer på + language: Sprog media: title: Medier + metadata: Metadata no_status_selected: Ingen indlæg ændret (ingen valgt) + open: Åbn indlæg + original_status: Oprindeligt indlæg + reblogs: Genblogninger + status_changed: Indlæg ændret title: Kontoindlæg + trending: Populære + visibility: Synlighed with_media: Med medier strikes: actions: @@ -797,6 +768,9 @@ da: description_html: Disse er links, som pt. deles meget af konti, som serveren ser indlæg fra. Det kan hjælpe ens brugere med at finde ud af, hvad der sker i verden. Ingen links vises offentligt, før man godkender udgiveren. Man kan også tillade/afvise individuelle links. disallow: Tillad ikke link disallow_provider: Tillad ikke udgiver + no_link_selected: Intet link ændret (da intet var valgt) + publishers: + no_publisher_selected: Ingen udgiver ændret (da ingen var valgt) shared_by_over_week: one: Delt af én person den seneste uge other: Delt af %{count} personer den seneste uge @@ -816,6 +790,7 @@ da: description_html: Disse er indlæg, serveren kender til, som pt. deles og favoritmarkeres meget. Det kan hjælpe nye og tilbagevendende brugere til at finde flere personer at følge. Ingen indlæg vises offentligt, før man godkender forfatteren, samt denne tillader sin konto at blive foreslået andre. Man kan også tillade/afvise individuelle indlæg. disallow: Tillad ikke indlæg disallow_account: Tillad ikke forfatter + no_status_selected: Intet tendensindlæg ændret (da intet var valgt) not_discoverable: Forfatteren har ikke valgt at kunne findes shared_by: one: Delt eller favoritmarkeret én gang @@ -831,6 +806,7 @@ da: tag_uses_measure: anvendelser i alt description_html: Disse er hashtags, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før man godkender dem. listable: Kan foreslås + no_tag_selected: Intet tag ændret (da intet var valgt) not_listable: Foreslås ikke not_trendable: Vises ikke under tendenser not_usable: Kan ikke anvendes @@ -851,6 +827,26 @@ da: edit_preset: Redigér advarselsforvalg empty: Ingen advarselsforvalg defineret endnu. title: Håndtérr advarselsforvalg + webhooks: + add_new: Tilføj endepunkt + delete: Slet + description_html: En webhook lader Mastodon pushe notifikationer i realtid om valgte begivenheder til ens egen applikation, så denne automatisk kan udløse reaktioner. + disable: Deaktivér + disabled: Deaktiveret + edit: Redigér endepunkt + empty: Der er endnu ikke opsat nogen webhook-endepunkter. + enable: Aktivér + enabled: Aktiv + enabled_events: + one: 1 aktiv begivenhed + other: "%{count} aktive begivenheder" + events: Begivenheder + new: Ny webhook + rotate_secret: Rotér hemmelighed + secret: Signeringshemmelighed + status: Status + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +870,8 @@ da: new_trends: body: 'Flg. emner kræver revision, inden de kan vises offentligt:' new_trending_links: - no_approved_links: Der er i pt. ingen godkendte populære links. - requirements: 'Enhver af disse kandidater vil kunne overgå #%{rank} godkendte populære link, der med en score på %{lowest_link_score} pt. er "%{lowest_link_title}".' title: Populære links new_trending_statuses: - no_approved_statuses: Der er i pt. ingen godkendte populære opslag. - requirements: 'Enhver af disse kandidater vil kunne overgå #%{rank} godkendte populære opslag, der med en score på %{lowest_status_score} pt. er %{lowest_status_url}.' title: Populære opslag new_trending_tags: no_approved_tags: Der er pt. ingen godkendte populære hashtags. @@ -915,20 +907,17 @@ da: applications: created: Applikation oprettet destroyed: Applikation slettet - invalid_url: Den angivne URL er ugyldig regenerate_token: Regenerér adgangstoken token_regenerated: Adgangstoken regenereret warning: Vær meget påpasselig med disse data. Del dem aldrig med nogen! your_token: Dit adgangstoken auth: - apply_for_account: Anmod om en invitation + apply_for_account: Kom på ventelisten change_password: Adgangskode - checkbox_agreement_html: Jeg accepterer serverreglerne og tjenestevilkårene - checkbox_agreement_without_rules_html: Jeg accepterer tjenestevilkårene delete_account: Slet konto delete_account_html: Ønsker du at slette din konto, kan du gøre dette hér. Du vil blive bedt om bekræftelse. description: - prefix_invited_by_user: "@%{name} inviterer dig til at deltage på denne Mastodon-server!" + prefix_invited_by_user: "@%{name} inviterer dig ind på denne Mastodon-server!" prefix_sign_up: Tilmeld dig Mastodon i dag! suffix: Du vil med en konto kunne følge personer, indsende opdateringer og udveksle beskeder med brugere fra enhver Mastodon-server, og meget mere! didnt_get_confirmation: Ikke modtaget nogle bekræftelsesinstruktioner? @@ -943,6 +932,7 @@ da: migrate_account: Flyt til en anden konto migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du opsætte dette hér. or_log_in_with: Eller log ind med + privacy_policy_agreement_html: Jeg accepterer Fortrolighedspolitikken providers: cas: CAS saml: SAML @@ -950,12 +940,18 @@ da: registration_closed: "%{instance} accepterer ikke nye medlemmer" resend_confirmation: Gensend bekræftelsesinstruktioner reset_password: Nulstil adgangskode + rules: + preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne. + title: Nogle grundregler. security: Sikkerhed set_new_password: Opsæt ny adgangskode setup: email_below_hint_html: Er nedenstående e-mailadresse forkert, kan du rette den hér og modtage en ny bekræftelses-e-mail. email_settings_hint_html: Bekræftelsese-mailen er sendt til %{email}. Er denne e-mailadresse forkert, kan du rette den via kontoindstillingerne. title: Opsætning + sign_up: + preamble: Med en konto på denne Mastodon-server vil man kunne følge enhver anden person på netværket, uanset hvor vedkommendes konto hostes. + title: Lad os få dig sat op på %{domain}. status: account_status: Kontostatus confirming: Afventer færdiggørelse af e-mailbekræftelse. @@ -964,7 +960,6 @@ da: redirecting_to: Din konto er inaktiv, da den pt. er omdirigerer til %{acct}. view_strikes: Se tidligere anmeldelser af din konto too_fast: Formularen indsendt for hurtigt, forsøg igen. - trouble_logging_in: Indlogningsproblemer? use_security_key: Brug sikkerhedsnøgle authorize_follow: already_following: Du følger allerede denne konto @@ -1022,10 +1017,6 @@ da: more_details_html: For yderligere oplysningerer, tjek fortrolighedspolitikken. username_available: Dit brugernavn vil blive tilgængeligt igen username_unavailable: Dit brugernavn vil forblive utilgængeligt - directories: - directory: Profilliste - explanation: Find brugere baseret på deres interesser - explore_mastodon: Uforsk %{title} disputes: strikes: action_taken: Handling foretaget @@ -1104,29 +1095,60 @@ da: public: Offentlig tidslinje thread: Konversationer edit: + add_keyword: Tilføj nøgleord + keywords: Nøgleord + statuses: Individuelle indlæg + statuses_hint_html: Dette filter gælder for udvalgte, individuelle indlæg, uanset om de matcher nøgleordene nedenfor. Gennemgå eller fjern indlæg fra filteret. title: Redigere filter errors: + deprecated_api_multiple_keywords: Disse parametre kan ikke ændres fra denne applikation, da de gælder for flere end ét filternøgleord. Brug en nyere applikation eller webgrænsefladen. invalid_context: Ingen eller ugyldig kontekst angivet - invalid_irreversible: Uigenkaldelig filtrering virker kun med hjemme- eller notifikationskontekster index: + contexts: Filtre i %{contexts} delete: Slet empty: Du har ingen filtre. + expires_in: Udløber om %{distance} + expires_on: Udløber om %{date} + keywords: + one: "%{count} nøgleord" + other: "%{count} nøgleord" + statuses: + one: "%{count} indlæg" + other: "%{count} indlæg" + statuses_long: + one: "%{count} individuelt indlæg skjult" + other: "%{count} individuelle indlæg skjult" title: Filtre new: + save: Gem nye filter title: Tilføj nyt filter + statuses: + back_to_filter: Returnér til filter + batch: + remove: Fjern fra filter + index: + hint: Dette filter gælder for udvalgte, individuelle indlæg uanset andre kriterier. Flere indlæg kan føjes til filteret via webfladen. + title: Filtrerede indlæg footer: - developers: Udviklere - more: Mere… - resources: Ressourcer trending_now: Trender lige nu generic: all: Alle + all_items_on_page_selected_html: + one: "%{count} emne på denne side er valgt." + other: Alle %{count} emner på denne side er valgt. + all_matching_items_selected_html: + one: "%{count} emne, der matchede søgningen, er valgt." + other: Alle %{count} emner, som matchede søgningen, er valgt. changes_saved_msg: Ændringerne er gemt! copy: Kopier delete: Slet + deselect: Afmarkér alle none: Intet order_by: Sortér efter save_changes: Gem ændringer + select_all_matching_items: + one: Vælg %{count} emne, der matchede søgningen. + other: Vælg alle %{count} emner, som matchede søgningen. today: i dag validation_errors: one: Noget er ikke er helt i vinkel! Tjek fejlen nedenfor @@ -1150,7 +1172,6 @@ da: following: Følgningsliste muting: Tavsgørelsesliste upload: Upload - in_memoriam_html: Til minde om. invites: delete: Deaktivér expired: Udløbet @@ -1229,21 +1250,14 @@ da: carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret. carry_mutes_over_text: Denne bruger er flyttet fra %{acct}, som du har haft tavsgjort. copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:' + navigation: + toggle_menu: Åbn/luk menu notification_mailer: admin: + report: + subject: "%{name} indsendte en anmeldelse" sign_up: subject: "%{name} tilmeldte sig" - digest: - action: Se alle notifikationer - body: Her er en kort oversigt over de beskeder, som er misset siden dit seneste besøg %{since} - mention: "%{name} nævnte dig i:" - new_followers_summary: - one: Under dit fravær har du har også fået en ny følger! Sådan! - other: Under dit fravær har du har også fået %{count} nye følgere! Sådan! - subject: - one: "1 ny notifikation siden senest besøg 🐘" - other: "%{count} nye notifikationer siden senest besøg 🐘" - title: I dit fravær... favourite: body: "%{name} favoritmarkerede dit indlæg:" subject: "%{name} favoritmarkerede dit indlæg" @@ -1315,6 +1329,8 @@ da: other: Andet posting_defaults: Standarder for indlæg public_timelines: Offentlige tidslinjer + privacy_policy: + title: Fortrolighedspolitik reactions: errors: limit_reached: Grænse for forskellige reaktioner nået @@ -1337,22 +1353,7 @@ da: remove_selected_follows: Følg ikke længere valgte brugere status: Kontostatus remote_follow: - acct: Angiv det brugernavn@domæne, hvorfra du vil ageres missing_resource: Nødvendige omdirigerings-URL til kontoen ikke fundet - no_account_html: Har ingen konto? Der kan oprettes én hér - proceed: Fortsæt for at følge - prompt: 'Du er ved at følge:' - reason_html: "Hvorfor er dette trin nødvendigt? %{instance} er måske ikke den server, hvorpå man er registreret, så man skal først omdirigeres til sin hjemmeserver." - remote_interaction: - favourite: - proceed: Fortsæt for at favoritmarkere - prompt: 'Favoritmarkere dette indlæg:' - reblog: - proceed: Fortsæt for at booste - prompt: 'Booste dette indlæg:' - reply: - proceed: Fortsæt for at besvare - prompt: 'Besvare dette indlæg:' reports: errors: invalid_rules: refererer ikke til gyldige regler @@ -1370,7 +1371,6 @@ da: browser: Browser browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1384,7 +1384,6 @@ da: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCbrowser weibo: Weibo current_session: Aktuelle session description: "%{browser} på %{platform}" @@ -1393,8 +1392,6 @@ da: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1524,9 +1521,6 @@ da: too_late: Det er for sent at appellere denne advarsel tags: does_not_match_previous_name: matcher ikke det foregående navn - terms: - body_html: "

      Fortrolighedspolitik

      \n

      Hvilke oplysninger indsamler vi?

      \n\n
        \n  
      • Grundlæggende kontooplysninger: Opretter du dig på denne server, kan du blive bedt om at angive brugernavn, e-mailadresse og adgangskode. Du kan også angive yderligere profiloplysninger, såsom visningsnavn og biografi, samt uploade et profil- og overskriftsbillede. Brugernavn, visningsnavn, biografi, profil- og overskriftsbilleder vises altid offentligt.
      • \n  
      • Indlæg, følgning og andre offentlige oplysninger: Listen over personer, du følger, er offentligt tilgængelig, det samme gælder dine følgere. Når du sender en besked, gemmes dato og klokkeslæt såvel som det program, du sendte beskeden fra. Beskeder kan indeholde medievedhæftninger, såsom billeder og videoer. Offentlige og ulistede indlæg er offentligt tilgængelige. Når du fremhæver et indlæg på din profil, er det også offentligt tilgængelig information. Dine indlæg leveres til dine følgere, i visse tilfælde betyder det, at de leveres til forskellige servere, hvor kopier gemmes. Når du sletter indlæg, leveres det også til dine følgere. Genbloggingshandlinger eller favoritmarkeringer af andre indlæg sker altid i offentligt regi.
      • \n  
      • Direkte og kun-følgere indlæg: Alle indlæg gemmes og behandles på serveren. Kun-følgere indlæg leveres til dine følgere og brugere, nævnt heri, og direkte indlæg leveres kun til brugere nævnt heri. I visse tilfælde betyder dette, at de leveres til forskellige servere, hvor kopier gemmes. Vi gør en bedste-evne indsats for at begrænse adgangen til disse indlæg til kun godkendte personer, men andre servere kan undlade dette tiltag. Det er derfor vigtigt at gennemgå de servere, dine følgere tilhører. Man kan via indstillingerne manuelt slå muligheden Godkend/Afvis nye følgere til/fra.Husk dog på, at operatørerne af serveren og enhver modtagende server vil kunne se sådanne meddelelser, og at modtagere vil kunne tage skærmfotos, kopiere eller på anden vis deler disse igen. Del ingen sensitive mv. oplysninger over Mastodon.
      • \n  
      • IP'er og andre metadata: Når der logges ind, registreres den IP-adresse, der logges ind fra, samt navnet på browser-applikationen. Du vil have alle indloggede sessioner tilgængelige mhp. gennemgang og tilbagekaldelse via indstillingerne. Den senest anvendte IP-adresse gemmes i op til 12 måneder. Vi kan også beholde serverlogfiler indeholdende IP-adressen for hver forespørgsel til vores server.
      • \n
      \n\n
      \n\n

      Hvad bruger vi dine oplysninger til?

      \n\n

      Enhver oplysning indsamlet fra/om dig, kan blive brugt på flg. måder:

      \n\n
        \n  
      • Til at levere Mastodon-kernfunktionalitet. Man kan kun interagere med andres indhold og indsende eget ditto, når man indlogget ind. Man kan f.eks. følge andre personer for at se deres kombinerede indlæg på sin egen personlige tidslinje.
      • \n  
      • Som hjælp til moderering af fællesskabet, f.eks. sammenligning af din IP-adresse med andre kendte mhp. at fastslå udelukkelsesomgåelse eller andre overtrædelser.
      • \n  
      • Den af dig angivne e-mailadresse kan bruges til at sende dig oplysninger, notifikationer om andre personer, som interagerer med dit indhold eller sender dig beskeder samt til at svare på henvendelser og/eller andre forespørgsler eller spørgsmål.
      • \n
      \n\n
      \n\n

      Hvordan beskytter vi dine oplysninger?

      \n\n

      Vi implementerer en vifte af sikkerhedsforanstaltninger for at sikre dine personlige oplysninger, når du angiver, indsender eller tilgår personlige oplysninger. Bl.a. sikres din browsersession samt trafikken mellem dine applikationer og API'en med SSL, og din adgangskode hashes vha. en stærk envejsalgoritme. Tofaktorgodkendelse kan endvidere aktiveres til yderligere adgangssikring af kontoen.

      \n\n
      \n\n

      Hvad er vores datalagringspolitik?

      \n\n

      Vi vil efter bedste evne bestræbe os på at:

      \n\n
        \n  
      • Ikke at beholde/lagre serverlogfiler indeholdende IP-adressen på alle forespørgsler til denne server, for så vidt at sådanne logfiler gemmes, længere end 90 dage.
      • \n  
      • Ikke at beholde/lagre IP-adresser tilknyttet registrerede brugere længere end 12 måneder.
      • \n
      \n\n

      Du kan anmode om, og downloade, et arkiv af dit indhold, herunder indlæg, medievedhæftninger samt profil- og overskriftsbilleder

      \n\n

      Du kan til enhver tid slette din konto permanent.

      \n\n
      \n\n

      Bruger vi cookies?

      \n\n

      Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder gemmer til din computers harddisk via din webbrowser (hvis du tillader det). Disse cookies gør det muligt for webstedet at genkende din browser og, hvis du har en registreret konto, associerer den med din registrerede konto.

      \n\n

      Vi bruger cookies til at forstå og gemme dine præferencer for fremtidige besøg.

      \n\n
      \n\n

      Videregiver vi oplysninger til eksterne parter?

      \n\n

      Vi hverken sælger, handler/bytter eller overfører på anden vis dine personlige identificerbare oplysninger til eksterne parter. Herfra undtaget er dog betroede tredjeparter, som hjælper os med at drive vores websted, drive vores forretning eller servicere dig, så længe parterne accepterer at holde disse oplysninger fortrolige. Vi kan også vælge at frigive dine oplysninger, såfremt vi mener, at frigivelsen er hensigtsmæssig ift. at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores/andres rettigheder, ejendom eller sikkerhed.

      \n\n

      Dit offentlige indhold kan blive downloadet af andre servere i netværket. Dine offentlige og kun-følgere indlæg leveres til de servere, hvor dine tilhængere er hjemhørende, og direkte beskeder leveres til modtagerens servere, for så vidt som disse følgere/modtagere ikke er hjemhørende på denne server.

      \n\n

      Når du godkender en applikation til at bruge din konto, godkender du, afhængt af tilladelsesomfanget, at denne kan tilgå dine offentlige profiloplysninger, listen over dem, du følger, følgere, lister, alle indlæg og favoritter. Applikationer kan aldrig tilgå din e-mailadresse eller adgangskode.

      \n\n
      \n\n

      Børns brug af webstedet

      \n\n

      Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle er alle beregnet på personer, som er fyldt 16 år. Er man ikke fyldt 16 år, så benyt ikke, jf. kravene i GDPR, (Generel Databeskyttelsesforordning), dette websted.

      \n\n

      Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod personer, som er fyldt 13 år. Er man ikke fyldt 13 år, så benyt ikke, jf. kravene i COPPA, (Børns online fortrolighedsbeskyttelsesslov), dette websted.

      \n\n

      Lovkrav kan afvige, hvis denne server befinder sig i et andet retsområde.

      \n\n
      \n\n

      Ændringer i vores Fortrolighedspolitik

      \n\n

      Beslutter vi os for at ændre vores Fortrolighedspolitik, vil disse ændringer fremgå på denne side.

      \n\n

      Dette dokument er CC-BY-SA, og det blev senest opdateret 7. marts 2018.

      \n\n

      Oprindelig tilpasset fra Discourse privacy policy.

      \n" - title: Tjenestevilkår og Fortrolighedspolitik for %{instance} themes: contrast: Mastodon (høj kontrast) default: Mastodont (mørkt) @@ -1605,20 +1599,13 @@ da: suspend: Konto suspenderet welcome: edit_profile_action: Opsæt profil - edit_profile_step: Du kan tilpasse din profil ved at uploade profilbillede, overskrift, ændre visningsnavn mm. Ønsker du at vurdere nye følgere, før de må følge dig, kan du låse din konto. + edit_profile_step: Man kan tilpasse sin profil ved at uploade profilfoto, overskrift, ændre visningsnavn mv. Ønskes nye følgere vurderet, før de må følge dig, kan kontoen låses. explanation: Her er nogle råd for at få dig i gang final_action: Begynd at poste - final_step: 'Begynd at poste! Selv uden følgere vil dine offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Du kan introducere dig selv via hastagget #introductions.' + final_step: 'Begynd at poste! Selv uden følgere vil offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Man kan introducere sig selv via hastagget #introductions.' full_handle: Dit fulde brugernavn full_handle_hint: Dette er, hvad du oplyser til dine venner, så de kan sende dig beskeder eller følge dig fra andre server. - review_preferences_action: Ændre præferencer - review_preferences_step: Husk at opsætte dine præferencer, såsom hvilke e-mails, du ønsker at modtage, eller hvilket fortrolighedsniveau, der skal være standard for dine opslag. Har du ikke let til køresyge, kan du vælge at aktivere auto-afspilning af GIF'er. subject: Velkommen til Mastodon - tip_federated_timeline: Den fælles tidslinje giver det store overblik over Mastodon-netværket, men den inkluderer kun folk, dine naboer abonnerer på, så den er ikke komplet. - tip_following: Du følger som standard din servers admin(s). For at finde flere interessante folk, så tjek de lokale og fælles tidslinjer. - tip_local_timeline: Den lokale tidslinje er det store overblik over folk på %{instance}, dvs. dine umiddelbare naboer! - tip_mobile_webapp: Tilbyder din mobilbrowser at føje Mastodon til din hjemmeskærm, kan du modtage push-notifikationer. Dette fungerer på mange måder ligesom en almindelig app! - tips: Tips title: Velkommen ombord, %{name}! users: follow_limit_reached: Du kan maks. følge %{limit} personer diff --git a/config/locales/de.yml b/config/locales/de.yml index 58be571a82b39e..7bc73dcb4d2599 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1,142 +1,80 @@ --- de: about: - about_hashtag_html: Das sind öffentliche Beiträge, die mit #%{hashtag} getaggt wurden. Wenn du irgendwo im Fediversum ein Konto besitzt, kannst du mit ihnen interagieren. - about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!). - about_this: Über diesen Server - active_count_after: aktiv - active_footnote: Monatlich Aktive User (MAU) - administered_by: 'Betrieben von:' - api: API - apps: Mobile Apps - apps_platforms: Benutze Mastodon auf iOS, Android und anderen Plattformen - browse_directory: Durchsuche das Profilverzeichnis und filtere nach Interessen - browse_local_posts: Durchsuche einen Live-Stream von öffentlichen Beiträgen von diesem Server - browse_public_posts: Stöbere durch öffentliche Beiträge auf Mastodon - contact: Kontakt - contact_missing: Nicht angegeben + about_mastodon_html: 'Das soziale Netzwerk der Zukunft: Keine Werbung, keine Überwachung, dafür dezentral und mit Anstand! Starte jetzt mit Mastodon!' + contact_missing: Nicht festgelegt contact_unavailable: Nicht verfügbar - continue_to_web: Weiter zur Web App - discover_users: Benutzer entdecken - documentation: Dokumentation - federation_hint_html: Mit einem Account auf %{instance} wirst du in der Lage sein Nutzern auf irgendeinem Mastodon-Server und darüber hinaus zu folgen. - get_apps: Versuche eine mobile App hosted_on: Mastodon, gehostet auf %{domain} - instance_actor_flash: | - Dieses Konto ist ein virtueller Akteur, der den Server selbst und nicht einen einzelnen Benutzer repräsentiert. - Dieser wird für Föderationszwecke verwendet und sollte nicht blockiert werden, es sei denn du möchtest die gesamte Instanz blockieren. - learn_more: Mehr erfahren - logged_in_as_html: Du bist derzeit als %{username} eingeloggt. - logout_before_registering: Du bist bereits angemeldet. - privacy_policy: Datenschutzerklärung - rules: Server-Regeln - rules_html: 'Unten ist eine Zusammenfassung der Regeln, denen du folgen musst, wenn du ein Konto auf diesem Mastodon-Server haben möchtest:' - see_whats_happening: Finde heraus, was gerade in der Welt los ist - server_stats: 'Serverstatistiken:' - source_code: Quellcode - status_count_after: - one: Beitrag - other: Beiträge - status_count_before: mit - tagline: Finde deine Freunde und entdecke neue - terms: Nutzungsbedingungen - unavailable_content: Nicht verfügbarer Inhalt - unavailable_content_description: - domain: Server - reason: 'Grund:' - rejecting_media: Mediendateien dieses Servers werden nicht verarbeitet und keine Thumbnails werden angezeigt, was manuelles anklicken auf den anderen Server erfordert. - rejecting_media_title: Gefilterte Medien - silenced: Beiträge von diesem Server werden nirgends angezeigt, außer in deiner Startseite, wenn du der Person folgst, die den Beitrag verfasst hat. - silenced_title: Stummgeschaltete Server - suspended: Du kannst niemanden von diesem Server folgen, und keine Daten werden verarbeitet oder gespeichert und keine Daten ausgetauscht. - suspended_title: Gesperrte Server - unavailable_content_html: Mastodon erlaubt es dir generell, mit Inhalten zu interagieren, diese anzuzeigen und mit anderen Nutzern im Fediversum über Server hinweg zu interagieren. Dies sind die Ausnahmen, die auf diesem bestimmten Server gemacht wurden. - user_count_after: - one: Profil - other: Profile - user_count_before: Hostet - what_is_mastodon: Was ist Mastodon? + title: Über accounts: - choices_html: "%{name} empfiehlt:" - endorsements_hint: Du kannst Personen, denen du über die Weboberfläche folgst, auswählen, und sie werden hier angezeigt. - featured_tags_hint: Du kannst spezifische Hashtags, die hier angezeigt werden, angeben. follow: Folgen followers: - one: Folgender + one: Follower other: Folgende - following: Folgt + following: Folge ich instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert und nicht ein einzelner Benutzer. Es wird für Föderationszwecke verwendet und sollte nicht gesperrt werden. - joined: Beigetreten am %{date} last_active: zuletzt aktiv - link_verified_on: Besitz des Links wurde überprüft am %{date} - media: Medien - moved_html: "%{name} ist auf %{new_profile_link} umgezogen:" - network_hidden: Diese Informationen sind nicht verfügbar - nothing_here: Hier gibt es nichts! - people_followed_by: Profile, denen %{name} folgt - people_who_follow: Profile, die %{name} folgen + link_verified_on: Das Profil mit dieser E-Mail-Adresse wurde bereits am %{date} bestätigt + nothing_here: Keine Accounts mit dieser Auswahl vorhanden. pin_errors: following: Du musst dieser Person bereits folgen, um sie empfehlen zu können posts: one: Beitrag other: Beiträge posts_tab_heading: Beiträge - posts_with_replies: Beiträge mit Antworten - roles: - admin: Administrator - bot: Bot - group: Gruppe - moderator: Moderator - unavailable: Profil nicht verfügbar - unfollow: Entfolgen admin: account_actions: action: Aktion ausführen title: Moderationsaktion auf %{acct} ausführen account_moderation_notes: - create: Notiz erstellen - created_msg: Moderationsnotiz erfolgreich erstellt! + create: Notiz abspeichern + created_msg: Moderationshinweis erfolgreich abgespeichert! destroyed_msg: Moderationsnotiz erfolgreich gelöscht! accounts: - add_email_domain_block: E-Mail-Domain blacklisten - approve: Akzeptieren - approved_msg: "%{username}'s Anmeldeantrag erfolgreich genehmigt" - are_you_sure: Bist du sicher? + add_email_domain_block: E-Mail-Domain auf Blacklist setzen + approve: Genehmigen + approved_msg: Anmeldeantrag von %{username} erfolgreich genehmigt + are_you_sure: Bist du dir sicher? avatar: Profilbild by_domain: Domain change_email: - changed_msg: E-Mail-Adresse des Kontos erfolgreich geändert! + changed_msg: E-Mail-Adresse erfolgreich geändert! current_email: Aktuelle E-Mail-Adresse label: E-Mail-Adresse ändern new_email: Neue E-Mail-Adresse submit: E-Mail-Adresse ändern title: E-Mail-Adresse für %{username} ändern + change_role: + changed_msg: Benutzer*innen-Rechte erfolgreich aktualisiert! + label: Benutzer*innen-Rechte verändern + no_role: Keine Benutzer*innen-Rechte + title: Benutzer*innen-Rechte für %{username} bearbeiten confirm: Bestätigen confirmed: Bestätigt - confirming: Bestätigung + confirming: Verifiziert custom: Benutzerdefiniert delete: Daten löschen deleted: Gelöscht - demote: Degradieren - destroyed_msg: "%{username}'s Daten wurden zum Löschen in die Warteschlange eingereiht" - disable: Ausschalten - disable_sign_in_token_auth: Deaktiviere die Zwei-Faktor-Authentifizierung per E-Mail - disable_two_factor_authentication: 2FA abschalten - disabled: Ausgeschaltet - display_name: Anzeigename + demote: Zurückstufen + destroyed_msg: Daten von %{username} wurden zum Löschen in die Warteschlange eingereiht + disable: Sperren + disable_sign_in_token_auth: Deaktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail + disable_two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) deaktivieren + disabled: Gesperrte + display_name: Angezeigter Name domain: Domain edit: Bearbeiten email: E-Mail email_status: E-Mail-Status enable: Freischalten - enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentifizierung per E-Mail + enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail enabled: Freigegeben - enabled_msg: "%{username}'s Konto erfolgreich freigegeben" + enabled_msg: Konto von %{username} erfolgreich freigegeben followers: Follower - follows: Folgt + follows: Folge ich header: Titelbild inbox_url: Posteingangs-URL - invite_request_text: Begründung für das beitreten + invite_request_text: Begründung für das Beitreten invited_by: Eingeladen von ip: IP-Adresse joined: Beigetreten @@ -149,11 +87,12 @@ de: media_attachments: Dateien memorialize: In Gedenkmal verwandeln memorialized: Memorialisiert - memorialized_msg: "%{username} wurde erfolgreich in ein memorialisiertes Konto umgewandelt" + memorialized_msg: "%{username} wurde erfolgreich in ein In-Memoriam-Konto umgewandelt" moderation: active: Aktiv all: Alle pending: In Warteschlange + silenced: Limitiert suspended: Gesperrt title: Moderation moderation_notes: Moderationsnotizen @@ -161,6 +100,7 @@ de: most_recent_ip: Letzte IP-Adresse no_account_selected: Keine Konten wurden geändert, da keine ausgewählt wurden no_limits_imposed: Keine Beschränkungen + no_role_assigned: Keine Rolle zugewiesen not_subscribed: Nicht abonniert pending: In Warteschlange perform_full_suspension: Verbannen @@ -173,34 +113,29 @@ de: public: Öffentlich push_subscription_expires: PuSH-Abonnement läuft aus redownload: Profil neu laden - redownloaded_msg: Profil von %{username} erfolgreich von Ursprung aktualisiert + redownloaded_msg: Das Profil von %{username} wurde von der Quelle erfolgreich aktualisiert reject: Ablehnen - rejected_msg: "%{username}'s Anmeldeantrag erfolgreich abgelehnt" + rejected_msg: Anmeldeantrag von %{username} erfolgreich abgelehnt remove_avatar: Profilbild entfernen remove_header: Titelbild entfernen removed_avatar_msg: Profilbild von %{username} erfolgreich entfernt - removed_header_msg: "%{username}'s Titelbild wurde erfolgreich entfernt" + removed_header_msg: Titelbild von %{username} wurde erfolgreich entfernt resend_confirmation: - already_confirmed: Diese_r Benutzer_in wurde bereits bestätigt + already_confirmed: Dieses Profil wurde bereits bestätigt send: Bestätigungs-E-Mail erneut senden success: Bestätigungs-E-Mail erfolgreich gesendet! reset: Zurücksetzen reset_password: Passwort zurücksetzen resubscribe: Wieder abonnieren - role: Berechtigungen - roles: - admin: Administrator - moderator: Moderator_in - staff: Mitarbeiter - user: Nutzer + role: Rolle search: Suche - search_same_email_domain: Andere Benutzer mit der gleichen E-Mail-Domain - search_same_ip: Andere Benutzer mit derselben IP + search_same_email_domain: Andere Benutzer*innen mit der gleichen E-Mail-Domain + search_same_ip: Andere Benutzer*innen mit derselben IP-Adresse security_measures: only_password: Nur Passwort password_and_2fa: Passwort und 2FA - sensitive: NSFW - sensitized: Als NSFW markieren + sensitive: Inhaltswarnung + sensitized: Mit Inhaltswarnung versehen shared_inbox_url: Geteilte Posteingang-URL show: created_reports: Erstellte Meldungen @@ -212,16 +147,16 @@ de: subscribe: Abonnieren suspend: Suspendieren suspended: Verbannt - suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto aufheben, um es brauchbar zu machen, aber es wird keine Daten wiederherstellen, die es davor schon hatte. + suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto aufheben, um es wieder brauchbar zu machen, aber es wird keine Daten wiederherstellen, die es davor hatte. suspension_reversible_hint_html: Das Konto wurde gesperrt und die Daten werden am %{date} vollständig gelöscht. Bis dahin kann das Konto ohne irgendwelche negativen Auswirkungen wiederhergestellt werden. Wenn du alle Daten des Kontos sofort entfernen möchtest, kannst du dies nachfolgend tun. title: Konten unblock_email: E-Mail Adresse entsperren unblocked_email_msg: Die E-Mail-Adresse von %{username} wurde erfolgreich entsperrt unconfirmed_email: Unbestätigte E-Mail-Adresse - undo_sensitized: Nicht mehr als NSFW markieren + undo_sensitized: Inhaltswarnung aufheben undo_silenced: Stummschaltung aufheben undo_suspension: Verbannung aufheben - unsilenced_msg: "%{username}'s Konto erfolgreich freigegeben" + unsilenced_msg: Konto von %{username} erfolgreich freigegeben unsubscribe: Abbestellen unsuspended_msg: Konto von %{username} erfolgreich freigegeben username: Profilname @@ -232,21 +167,25 @@ de: action_logs: action_types: approve_appeal: Einspruch annehmen - approve_user: Benutzer genehmigen + approve_user: Benutzer*in genehmigen assigned_to_self_report: Bericht zuweisen - change_email_user: E-Mail des Benutzers ändern - confirm_user: Benutzer bestätigen + change_email_user: E-Mail des Accounts ändern + change_role_user: Rolle des Profils ändern + confirm_user: Benutzer*in bestätigen create_account_warning: Warnung erstellen create_announcement: Ankündigung erstellen - create_custom_emoji: Eigene Emoji erstellen + create_canonical_email_block: E-Mail-Block erstellen + create_custom_emoji: Eigene Emojis erstellen create_domain_allow: Domain erlauben create_domain_block: Domain blockieren create_email_domain_block: E-Mail-Domain-Block erstellen create_ip_block: IP-Regel erstellen create_unavailable_domain: Nicht verfügbare Domain erstellen - demote_user: Benutzer degradieren + create_user_role: Rolle erstellen + demote_user: Benutzer*in herabstufen destroy_announcement: Ankündigung löschen - destroy_custom_emoji: Eigene Emoji löschen + destroy_canonical_email_block: E-Mail-Blockade löschen + destroy_custom_emoji: Eigene Emojis löschen destroy_domain_allow: Erlaube das Löschen von Domains destroy_domain_block: Domain-Blockade löschen destroy_email_domain_block: E-Mail-Domain-Blockade löschen @@ -254,50 +193,58 @@ de: destroy_ip_block: IP-Regel löschen destroy_status: Beitrag löschen destroy_unavailable_domain: Nicht verfügbare Domain löschen + destroy_user_role: Rolle löschen disable_2fa_user: 2FA deaktivieren disable_custom_emoji: Benutzerdefiniertes Emoji deaktivieren - disable_sign_in_token_auth_user: Zwei-Faktor-Authentifizierung per E-Mail für den Nutzer deaktiviert - disable_user: Benutzer deaktivieren + disable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für diesen Account deaktivieren + disable_user: Benutzer*in deaktivieren enable_custom_emoji: Benutzerdefiniertes Emoji aktivieren - enable_sign_in_token_auth_user: Zwei-Faktor-Authentifizierung per E-Mail für den Nutzer aktiviert - enable_user: Benutzer aktivieren - memorialize_account: Account deaktivieren - promote_user: Benutzer befördern + enable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für diesen Account aktivieren + enable_user: Benutzer*in aktivieren + memorialize_account: Gedenkkonto + promote_user: Benutzer*in hochstufen reject_appeal: Einspruch ablehnen - reject_user: Benutzer ablehnen + reject_user: Benutzer*in ablehnen remove_avatar_user: Profilbild entfernen reopen_report: Meldung wieder eröffnen + resend_user: Bestätigungs-E-Mail erneut senden reset_password_user: Passwort zurücksetzen resolve_report: Bericht lösen - sensitive_account: Markiere die Medien in deinem Konto als NSFW + sensitive_account: Zwangssensibles Konto silence_account: Konto stummschalten suspend_account: Konto sperren unassigned_report: Meldung widerrufen unblock_email_account: E-Mail Adresse entsperren - unsensitive_account: Markiere die Medien in deinem Konto nicht mehr als NSFW + unsensitive_account: Zwangssensibles Konto rückgängig machen unsilence_account: Konto nicht mehr stummschalten unsuspend_account: Konto nicht mehr sperren update_announcement: Ankündigung aktualisieren update_custom_emoji: Benutzerdefiniertes Emoji aktualisieren - update_domain_block: Domain Block aktualisieren + update_domain_block: Domain-Blockade aktualisieren + update_ip_block: IP-Regel aktualisieren update_status: Beitrag aktualisieren + update_user_role: Rolle aktualisieren actions: approve_appeal_html: "%{name} genehmigte die Moderationsbeschlüsse von %{target}" approve_user_html: "%{name} genehmigte die Anmeldung von %{target}" assigned_to_self_report_html: "%{name} hat sich die Meldung %{target} selbst zugewiesen" change_email_user_html: "%{name} hat die E-Mail-Adresse des Nutzers %{target} geändert" + change_role_user_html: "%{name} hat die Rolle von %{target} geändert" confirm_user_html: "%{name} hat die E-Mail-Adresse von %{target} bestätigt" create_account_warning_html: "%{name} hat eine Warnung an %{target} gesendet" create_announcement_html: "%{name} hat die neue Ankündigung %{target} erstellt" + create_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} blockiert" create_custom_emoji_html: "%{name} hat neues Emoji %{target} hochgeladen" create_domain_allow_html: "%{name} hat die Domain %{target} gewhitelistet" create_domain_block_html: "%{name} hat die Domain %{target} blockiert" create_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} geblacklistet" create_ip_block_html: "%{name} hat eine Regel für IP %{target} erstellt" create_unavailable_domain_html: "%{name} hat die Lieferung an die Domain %{target} eingestellt" - demote_user_html: "%{name} stufte Benutzer_in %{target} herunter" + create_user_role_html: "%{name} hat die Rolle %{target} erstellt" + demote_user_html: "%{name} hat die Nutzungsrechte von %{target} heruntergestuft" destroy_announcement_html: "%{name} hat die neue Ankündigung %{target} gelöscht" - destroy_custom_emoji_html: "%{name} zerstörte Emoji %{target}" + destroy_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} freigegeben" + destroy_custom_emoji_html: "%{name} hat das %{target} Emoji gelöscht" destroy_domain_allow_html: "%{name} hat die Domain %{target} von der Whitelist entfernt" destroy_domain_block_html: "%{name} hat die Domain %{target} entblockt" destroy_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} gewhitelistet" @@ -305,37 +252,41 @@ de: destroy_ip_block_html: "%{name} hat eine Regel für IP %{target} gelöscht" destroy_status_html: "%{name} hat einen Beitrag von %{target} entfernt" destroy_unavailable_domain_html: "%{name} setzte die Lieferung an die Domain %{target} fort" - disable_2fa_user_html: "%{name} hat Zwei-Faktor-Anforderung für Benutzer_in %{target} deaktiviert" + destroy_user_role_html: "%{name} hat die Rolle %{target} gelöscht" + disable_2fa_user_html: "%{name} hat die Zwei-Faktor-Authentisierung für %{target} deaktiviert" disable_custom_emoji_html: "%{name} hat das %{target} Emoji deaktiviert" disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token Authentifizierung für %{target} deaktiviert" - disable_user_html: "%{name} hat Zugang von Benutzer_in %{target} deaktiviert" + disable_user_html: "%{name} hat den Zugang für %{target} deaktiviert" enable_custom_emoji_html: "%{name} hat das %{target} Emoji aktiviert" - enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token Authentifizierung für %{target} aktiviert" - enable_user_html: "%{name} hat Zugang von Benutzer_in %{target} aktiviert" + enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert" + enable_user_html: "%{name} hat den Zugang für %{target} aktiviert" memorialize_account_html: "%{name} hat das Konto von %{target} in eine Gedenkseite umgewandelt" promote_user_html: "%{name} hat %{target} befördert" reject_appeal_html: "%{name} hat die Moderationsbeschlüsse von %{target} abgelehnt" reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt" remove_avatar_user_html: "%{name} hat das Profilbild von %{target} entfernt" reopen_report_html: "%{name} hat die Meldung %{target} wieder geöffnet" + resend_user_html: "%{name} hat erneut eine Bestätigungs-E-Mail für %{target} gesendet" reset_password_user_html: "%{name} hat das Passwort von %{target} zurückgesetzt" resolve_report_html: "%{name} hat die Meldung %{target} bearbeitet" - sensitive_account_html: "%{name} markierte %{target}'s Medien als NSFW" + sensitive_account_html: "%{name} hat die Medien von %{target} mit einer Inhaltswarnung versehen" silence_account_html: "%{name} hat das Konto von %{target} stummgeschaltet" suspend_account_html: "%{name} hat das Konto von %{target} verbannt" unassigned_report_html: "%{name} hat die Zuweisung der Meldung %{target} entfernt" - unblock_email_account_html: "%{name} entsperrte %{target}'s E-Mail-Adresse" - unsensitive_account_html: "%{name} markierte %{target}'s Medien nicht als NSFW" + unblock_email_account_html: "%{name} entsperrte die E-Mail-Adresse von %{target}" + unsensitive_account_html: "%{name} hat die Inhaltswarnung für Medien von %{target} aufgehoben" unsilence_account_html: "%{name} hat die Stummschaltung von %{target} aufgehoben" unsuspend_account_html: "%{name} hat die Verbannung von %{target} aufgehoben" update_announcement_html: "%{name} aktualisierte Ankündigung %{target}" update_custom_emoji_html: "%{name} hat das %{target} Emoji geändert" update_domain_block_html: "%{name} hat den Domain-Block für %{target} aktualisiert" + update_ip_block_html: "%{name} hat die Regel für IP %{target} geändert" update_status_html: "%{name} hat einen Beitrag von %{target} aktualisiert" - deleted_status: "(gelöschter Beitrag)" + update_user_role_html: "%{name} hat die Rolle %{target} geändert" + deleted_account: gelöschtes Konto empty: Keine Protokolle gefunden. filter_by_action: Nach Aktion filtern - filter_by_user: Nach Benutzer filtern + filter_by_user: Nach Benutzer*in filtern title: Überprüfungsprotokoll announcements: destroyed_msg: Ankündigung erfolgreich gelöscht! @@ -376,6 +327,7 @@ de: listed: Gelistet new: title: Eigenes Emoji hinzufügen + no_emoji_selected: Keine Emojis wurden geändert, da keine ausgewählt wurden not_permitted: Du bist für die Durchführung dieses Vorgangs nicht berechtigt overwrite: Überschreiben shortcode: Kürzel @@ -388,10 +340,10 @@ de: updated_msg: Emoji erfolgreich aktualisiert! upload: Hochladen dashboard: - active_users: Aktive Benutzer + active_users: aktive Benutzer*innen interactions: Interaktionen - media_storage: Medienspeicher - new_users: Neue Benutzer + media_storage: Medien + new_users: neue Benutzer*innen opened_reports: Erstellte Meldungen pending_appeals_html: one: "%{count} ausstehender Einspruch" @@ -403,8 +355,8 @@ de: one: "%{count} ausstehender Hashtag" other: "%{count} ausstehende Hashtags" pending_users_html: - one: "%{count} ausstehender Benutzer" - other: "%{count} ausstehende Benutzer" + one: "%{count} unerledigte*r Benutzer*in" + other: "%{count} unerledigte Benutzer*innen" resolved_reports: Gelöste Meldungen software: Software sources: Registrierungsquellen @@ -428,7 +380,8 @@ de: destroyed_msg: Die Domain-Blockade wurde rückgängig gemacht domain: Domain edit: Domainblockade bearbeiten - existing_domain_block_html: Es gibt schon eine Blockade für %{name}, diese muss erst aufgehoben werden. + existing_domain_block: Du hast %{name} bereits stärker eingeschränkt. + existing_domain_block_html: Du hast bereits strengere Beschränkungen für die Domain %{name} verhängt. Du musst diese erst aufheben. new: create: Blockade einrichten hint: Die Domain-Blockade wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden. Aber es werden rückwirkend und automatisch alle Moderationsmethoden auf diese Konten angewendet. @@ -466,11 +419,11 @@ de: resolve: Domain auflösen title: Neue E-Mail-Domain-Blockade no_email_domain_block_selected: Es wurden keine E-Mail-Domain-Blockierungen geändert, da keine ausgewählt wurden - resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails verantwortlich sind. Das Blockieren einer MX-Domain blockiert Anmeldungen von jeder E-Mail-Adresse, die dieselbe MX-Domain verwendet, auch wenn der sichtbare Domainname anders ist. Achte darauf große E-Mail-Anbieter nicht zu blockieren. + resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails verantwortlich sind. Das Blockieren einer MX-Domain blockiert Anmeldungen von jeder E-Mail-Adresse, welche dieselbe MX-Domain verwendet, auch wenn der sichtbare Domainname anders ist. Achte darauf, große E-Mail-Anbieter nicht zu blockieren. resolved_through_html: Durch %{domain} aufgelöst title: E-Mail-Domain-Blockade follow_recommendations: - description_html: "Folgeempfehlungen helfen neuen Nutzern dabei, schnell interessante Inhalte zu finden. Wenn ein Nutzer noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erstellen, werden stattdessen diese Benutzerkonten verwendet. Sie werden täglich basiert auf einer Mischung aus am meisten interagierenden Benutzerkonten und solchen mit den meisten Folgenden für eine bestimmte Sprache neuberechnet." + description_html: "Folgeempfehlungen helfen neuen Nutzern dabei, schnell interessante Inhalte zu finden. Wenn ein Nutzer noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erstellen, werden stattdessen diese Benutzerkonten verwendet. Sie werden täglich basierend auf einer Mischung aus am meisten interagierenden Benutzerkonten und jenen mit den meisten Folgenden für eine bestimmte Sprache neuberechnet." language: Für Sprache status: Status suppress: Folgeempfehlungen unterdrücken @@ -576,7 +529,7 @@ de: disable: Ausschalten disabled: Ausgeschaltet enable: Einschalten - enable_hint: Sobald aktiviert wird dein Server alle öffentlichen Beiträge dieses Relays abonnieren und wird alle öffentlichen Beiträge dieses Servers an es senden. + enable_hint: Sobald aktiviert, wird dein Server alle öffentlichen Beiträge dieses Relays abonnieren und alle öffentlichen Beiträge dieses Servers an dieses senden. enabled: Eingeschaltet inbox_url: Relay-URL pending: Warte auf Zustimmung des Relays @@ -598,28 +551,28 @@ de: action_taken_by: Maßnahme ergriffen durch actions: delete_description_html: Der gemeldete Beitrag wird gelöscht und ein Strike wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Accounts zu helfen. - mark_as_sensitive_description_html: The media in the reported posts will be marked as sensitive and a strike will be recorded to help you escalate on future infractions by the same account. - other_description_html: Weitere Optionen zur Kontrolle des Kontoverhaltens und zur Anpassung der Kommunikation an das gemeldete Konto. - resolve_description_html: Es wird keine Maßnahme gegen den gemeldeten Account ergriffen, es wird kein Strike verzeichnet und die Meldung wird geschlossen. - silence_description_html: Das Profil wird nur für diejenigen sichtbar sein, die es bereits verfolgen oder manuell nachschlagen und die Reichweite wird stark begrenzt. Kann immer rückgängig gemacht werden. + mark_as_sensitive_description_html: Die Medien in den gemeldeten Beiträgen werden mit einer Inhaltswarnung (NSFW) versehen und der Vorfall wird gesichert, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können. + other_description_html: Weitere Optionen zur Kontrolle des Kontoverhaltens und zur Anpassung der Kommunikation mit dem gemeldeten Konto. + resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen, es wird kein Strike verzeichnet und die Meldung wird geschlossen. + silence_description_html: Das Profil wird nur für diejenigen sichtbar sein, die ihm bereits folgen oder es manuell nachschlagen, und die Reichweite wird stark begrenzt. Kann immer rückgängig gemacht werden. suspend_description_html: Das Profil und alle seine Inhalte werden unzugänglich werden, bis es schließlich gelöscht wird. Interaktion mit dem Konto wird unmöglich sein. Reversibel innerhalb von 30 Tagen. - actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet außer wenn die Spam Kategorie ausgewählt ist. + actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet, außer wenn die Spam-Kategorie ausgewählt ist. add_to_report: Mehr zur Meldung hinzufügen are_you_sure: Bist du dir sicher? assign_to_self: Mir zuweisen - assigned: Zugewiesene_r Moderator_in + assigned: Zugewiesene*r Moderator*in by_target_domain: Domain des gemeldeten Kontos category: Kategorie category_description_html: Der Grund, warum dieses Konto und/oder der Inhalt gemeldet wurden, wird in der Kommunikation mit dem gemeldeten Konto zitiert comment: none: Kein - comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} folgendes:' + comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:' created_at: Gemeldet delete_and_resolve: Beiträge löschen forwarded: Weitergeleitet forwarded_to: Weitergeleitet an %{domain} mark_as_resolved: Als gelöst markieren - mark_as_sensitive: Als NSFW markieren + mark_as_sensitive: Mit einer Inhaltswarnung versehen mark_as_unresolved: Als ungelöst markieren no_one_assigned: Niemand notes: @@ -627,11 +580,11 @@ de: create_and_resolve: Mit Kommentar lösen create_and_unresolve: Mit Kommentar wieder öffnen delete: Löschen - placeholder: Beschreibe, welche Maßnahmen ergriffen wurden oder irgendwelche andere Neuigkeiten… + placeholder: Bitte beschreibe, welche Maßnahmen ergriffen wurden oder andere damit verbundene Aktualisierungen … title: Notizen notes_description_html: Zeige und hinterlasse Notizen an andere Moderator_innen und dein zukünftiges Ich quick_actions_description_html: 'Führe eine schnelle Aktion aus oder scrolle nach unten, um gemeldete Inhalte zu sehen:' - remote_user_placeholder: der entfernte Benutzer von %{instance} + remote_user_placeholder: das externe Profil von %{instance} reopen: Meldung wieder eröffnen report: 'Meldung #%{id}' reported_account: Gemeldetes Konto @@ -647,142 +600,162 @@ de: unassign: Zuweisung entfernen unresolved: Ungelöst updated_at: Aktualisiert - view_profile: Zeige Profil + view_profile: Profil anzeigen + roles: + add_new: Rolle hinzufügen + assigned_users: + one: "%{count} Account" + other: "%{count} Accounts" + categories: + administration: Administration + devops: DevOps + invites: Einladungen + moderation: Moderation + special: Spezial + delete: Löschen + description_html: Mit Benutzer*inn-Rollen kannst du die Funktionen und Bereiche von Mastodon anpassen, auf die deine Benutzer*innen zugreifen können. + edit: "'%{name}' Rolle bearbeiten" + everyone: Standardberechtigungen + everyone_full_description_html: Das ist die -Basis-Rolle, die alle Benutzer*innen betrifft, auch diejenigen ohne zugewiesene Rolle. Alle anderen Rollen erben Berechtigungen davon. + permissions_count: + one: "%{count} Berechtigung" + other: "%{count} Berechtigungen" + privileges: + administrator: Administrator + administrator_description: Benutzer*innen mit dieser Berechtigung werden alle Beschränkungen umgehen + delete_user_data: Löschen der Account-Daten + delete_user_data_description: Erlaubt Benutzer*innen, die Daten anderer Benutzer*innen sofort zu löschen + invite_users: Benutzer*innen einladen + invite_users_description: Erlaubt Benutzer*innen, neue Leute zum Server einzuladen + manage_announcements: Ankündigungen verwalten + manage_announcements_description: Erlaubt Benutzer*innen, Ankündigungen auf dem Server zu verwalten + manage_appeals: Anträge verwalten + manage_appeals_description: Erlaubt es Benutzer*innen, Entscheidungen der Moderator*innen zu widersprechen + manage_blocks: Geblocktes verwalten + manage_blocks_description: Erlaubt Benutzer*innen, E-Mail-Provider und IP-Adressen zu blockieren + manage_custom_emojis: Benutzerdefinierte Emojis verwalten + manage_custom_emojis_description: Erlaubt es Benutzer*innen, eigene Emojis auf dem Server zu verwalten + manage_federation: Föderation verwalten + manage_federation_description: Erlaubt es Benutzer*innen, den Zusammenschluss mit anderen Domains zu blockieren oder zuzulassen und die Zustellbarkeit zu kontrollieren + manage_invites: Einladungen verwalten + manage_invites_description: Erlaubt es Benutzer*innen, Einladungslinks zu durchsuchen und zu deaktivieren + manage_reports: Meldungen verwalten + manage_reports_description: Erlaubt es Benutzer*innen, Meldungen zu überprüfen und Vorfälle zu moderieren + manage_roles: Rollen verwalten + manage_roles_description: Erlaubt es Benutzer*innen, Rollen, die sich unterhalb der eigenen Rolle befinden, zu verwalten und zuzuweisen + manage_rules: Regeln verwalten + manage_rules_description: Erlaubt es Benutzer*innen, Serverregeln zu ändern + manage_settings: Einstellungen verwalten + manage_settings_description: Erlaubt es Benutzer*innen, Einstellungen dieser Instanz zu ändern + manage_taxonomies: Taxonomien verwalten + manage_taxonomies_description: Ermöglicht Benutzer*innen, die Trends zu überprüfen und die Hashtag-Einstellungen zu aktualisieren + manage_user_access: Benutzer*in-Zugriff verwalten + manage_user_access_description: Erlaubt es Benutzer*innen, die Zwei-Faktor-Authentisierung (2FA) anderer Benutzer zu deaktivieren, ihre E-Mail-Adresse zu ändern und ihr Passwort zurückzusetzen + manage_users: Benutzer*innen verwalten + manage_users_description: Erlaubt es Benutzer*innen, die Details anderer Profile einzusehen und diese Accounts zu moderieren + manage_webhooks: Webhooks verwalten + manage_webhooks_description: Erlaubt es Benutzer*innen, Webhooks für administrative Vorkommnisse einzurichten + view_audit_log: Audit-Log anzeigen + view_audit_log_description: Erlaubt es Benutzer*innen, den Verlauf der administrativen Handlungen auf diesem Server einzusehen + view_dashboard: Dashboard anzeigen + view_dashboard_description: Gewährt Benutzer*innen den Zugriff auf das Dashboard und verschiedene Metriken + view_devops: DevOps + view_devops_description: Erlaubt es Benutzer*innen, auf die Sidekiq- und pgHero-Dashboards zuzugreifen + title: Rollen rules: add_new: Regel hinzufügen delete: Löschen - description_html: Während die meisten behaupten, die Nutzungsbedingungen gelesen und akzeptiert zu haben, lesen die Menschen sie in der Regel erst nach einem Problem. Vereinfache es, die Regeln deines Servers auf einen Blick zu sehen, indem du sie in einer einfachen Auflistung zur Verfügung stellst. Versuche die einzelnen Regeln kurz und einfach zu halten, aber versuche nicht, sie in viele verschiedene Elemente aufzuteilen. + description_html: Während die meisten behaupten, die Nutzungsbedingungen gelesen und akzeptiert zu haben, lesen die Menschen sie in der Regel erst nach einem Problem. Vereinfache es, die Regeln deines Servers auf einen Blick zu sehen, indem du sie in einer einfachen Auflistung zur Verfügung stellst. Versuche, die einzelnen Regeln kurz und einfach zu halten, aber versuche nicht, sie in viele verschiedene Elemente aufzuteilen. edit: Regel bearbeiten empty: Es wurden bis jetzt keine Server-Regeln definiert. title: Server-Regeln settings: - activity_api_enabled: - desc_html: Anzahl der lokal geposteten Beiträge, aktiven Nutzern und neuen Registrierungen in wöchentlichen Zusammenfassungen - title: Veröffentliche gesamte Statistiken über Benutzeraktivitäten - bootstrap_timeline_accounts: - desc_html: Mehrere Profilnamen durch Kommata trennen. Diese Accounts werden immer in den Folgemempfehlungen angezeigt - title: Konten, die Neu-Angemeldete empfohlen bekommen sollen - contact_information: - email: Öffentliche E-Mail-Adresse - username: Profilname für die Kontaktaufnahme - custom_css: - desc_html: Verändere das Aussehen mit CSS, dass auf jeder Seite geladen wird - title: Benutzerdefiniertes CSS - default_noindex: - desc_html: Beeinflusst alle Benutzer, die diese Einstellung nicht selbst geändert haben - title: Benutzer aus Suchmaschinen-Indizierung standardmäßig herausnehmen + about: + manage_rules: Serverregeln verwalten + preamble: Schildere ausführlich, wie Dein Server betrieben, moderiert und finanziert wird. + rules_hint: Es gibt einen eigenen Bereich für Regeln, die deine Benutzer*innen einhalten müssen. + title: Über + appearance: + preamble: Passe die Weboberfläche von Mastodon an. + title: Erscheinungsbild + branding: + preamble: Das Branding deines Servers unterscheidet ihn von anderen Servern im Netzwerk. Diese Informationen können in einer Vielzahl von Umgebungen angezeigt werden, z. B. in der Weboberfläche von Mastodon, in nativen Anwendungen, in Linkvorschauen auf anderen Websites und in Messaging-Apps und so weiter. Aus diesem Grund ist es am besten, diese Informationen klar, kurz und prägnant zu halten. + title: Branding + content_retention: + preamble: Steuern Sie, wie nutzergenerierte Inhalte in Mastodon gespeichert werden. + title: Aufbewahrung von Inhalten + discovery: + follow_recommendations: Folgeempfehlungen + preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren. + profile_directory: Profilverzeichnis + public_timelines: Öffentliche Timelines + title: Entdecken + trends: Trends domain_blocks: all: An alle disabled: An niemanden - title: Zeige Domain-Blockaden - users: Für angemeldete lokale Benutzer - domain_blocks_rationale: - title: Rationale anzeigen - hero: - desc_html: Wird auf der Startseite angezeigt. Mindestens 600x100px sind empfohlen. Wenn es nicht gesetzt wurde, wird das Server-Thumbnail dafür verwendet - title: Bild für Einstiegsseite - mascot: - desc_html: Angezeigt auf mehreren Seiten. Mehr als 293x205px empfohlen. Wenn es nicht gesetzt wurde wird es auf das Standard-Maskottchen zurückfallen - title: Maskottchen-Bild - peers_api_enabled: - desc_html: Domain-Namen, die der Server im Fediversum gefunden hat - title: Veröffentliche entdeckte Server durch die API - preview_sensitive_media: - desc_html: Linkvorschauen auf anderen Webseiten werden ein Vorschaubild anzeigen, obwohl die Medien als NSFW markiert sind - title: NSFW-Medien in OpenGraph-Vorschau anzeigen - profile_directory: - desc_html: Erlaube Benutzer auffindbar zu sein - title: Aktiviere Profilverzeichnis + users: Für angemeldete lokale Benutzer*innen registrations: - closed_message: - desc_html: Wird auf der Einstiegsseite gezeigt, wenn die Anmeldung geschlossen ist. Du kannst HTML-Tags nutzen - title: Nachricht über geschlossene Registrierung - deletion: - desc_html: Allen erlauben, ihr Konto eigenmächtig zu löschen - title: Kontolöschung erlauben - min_invite_role: - disabled: Niemand - title: Einladungen erlauben von - require_invite_text: - desc_html: Wenn eine Registrierung manuell genehmigt werden muss, mache den "Warum möchtest du beitreten?" Text eher obligatorisch als optional - title: Neue Benutzer müssen einen Einladungstext ausfüllen + preamble: Lege fest, wer auf Deinem Server ein Konto erstellen darf. + title: Registrierungen registrations_mode: modes: approved: Zustimmung benötigt zur Registrierung none: Niemand kann sich registrieren open: Jeder kann sich registrieren - title: Registrierungsmodus - show_known_fediverse_at_about_page: - desc_html: Wenn aktiviert, wird es alle Beiträge aus dem bereits bekannten Teil des Fediversums auf der Startseite anzeigen. Andernfalls werden lokale Beitrage des Servers angezeigt. - title: Zeige eine öffentliche Zeitleiste auf der Einstiegsseite - show_staff_badge: - desc_html: Zeige Mitarbeiter-Badge auf Benutzerseite - title: Zeige Mitarbeiter-Badge - site_description: - desc_html: Einleitungsabschnitt auf der Frontseite. Beschreibe, was diesen Mastodon-Server ausmacht. Du kannst HTML-Tags benutzen, insbesondere <a> und <em>. - title: Beschreibung des Servers - site_description_extended: - desc_html: Bietet sich für Verhaltenskodizes, Regeln, Richtlinien und weiteres an, was deinen Server auszeichnet. Du kannst HTML-Tags benutzen - title: Erweiterte Beschreibung des Servers - site_short_description: - desc_html: Wird angezeigt in der Seitenleiste und in Meta-Tags. Beschreibe in einem einzigen Abschnitt, was Mastodon ist und was diesen Server von anderen unterscheidet. Falls leer, wird die Server-Beschreibung verwendet. - title: Kurze Beschreibung des Servers - site_terms: - desc_html: Hier kannst du deine eigenen Geschäftsbedingungen, Datenschutzerklärung und anderes rechtlich Relevante eintragen. Du kannst HTML-Tags nutzen - title: Benutzerdefinierte Geschäftsbedingungen - site_title: Name des Servers - thumbnail: - desc_html: Wird für die Vorschau via OpenGraph und API verwendet. 1200×630 px wird empfohlen - title: Vorschaubild des Servers - timeline_preview: - desc_html: Auf der Einstiegsseite die öffentliche Zeitleiste anzeigen - title: Zeitleisten-Vorschau - title: Server-Einstellungen - trendable_by_default: - desc_html: Betroffene Hashtags, die bisher nicht gesperrt wurden - title: Hashtags ohne vorherige Überprüfung erlauben zu trenden - trends: - desc_html: Zuvor überprüfte Hashtags öffentlich anzeigen, die derzeit angesagt sind - title: Trendende Hashtags + title: Servereinstellungen site_uploads: delete: Hochgeladene Datei löschen destroyed_msg: Upload erfolgreich gelöscht! statuses: + account: Autor + application: Anwendung back_to_account: Zurück zum Konto back_to_report: Zurück zur Seite mit den Meldungen batch: remove_from_report: Von der Meldung entfernen report: Meldung deleted: Gelöscht + favourites: Favoriten + history: Versionsverlauf + in_reply_to: Antwortet auf + language: Sprache media: title: Medien + metadata: Metadaten no_status_selected: Keine Beiträge wurden geändert, weil keine ausgewählt wurden + open: Beitrag öffnen + original_status: Ursprünglicher Beitrag + reblogs: Geteilte Beiträge + status_changed: Beitrag bearbeitet title: Beiträge des Kontos + trending: Trends + visibility: Sichtbarkeit with_media: Mit Medien strikes: actions: delete_statuses: "%{name} hat die Beiträge von %{target} entfernt" disable: "%{name} hat das Konto von %{target} eingefroren" - mark_statuses_as_sensitive: "%{name} markierte %{target}'s Beiträge als NSFW" + mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen" none: "%{name} hat eine Warnung an %{target} gesendet" - sensitive: "%{name} markierte %{target}'s Konto als NSFW" + sensitive: "%{name} hat das Profil von %{target} mit einer Inhaltswarnung versehen" silence: "%{name} hat das Konto von %{target} eingeschränkt" suspend: "%{name} hat das Konto von %{target} verbannt" appeal_approved: Einspruch angenommen appeal_pending: Einspruch ausstehend system_checks: database_schema_check: - message_html: Es gibt ausstehende Datenbankmigrationen. Bitte führen Sie sie aus, um sicherzustellen, dass sich die Anwendung wie erwartet verhält + message_html: Es gibt ausstehende Datenbankmigrationen. Bitte führe sie aus, um sicherzustellen, dass sich die Anwendung wie erwartet verhält elasticsearch_running_check: - message_html: Verbindung mit Elasticsearch konnte nicht hergestellt werden. Bitte prüfe ob Elasticsearch läuft oder deaktiviere die Volltextsuche + message_html: Verbindung mit Elasticsearch konnte nicht hergestellt werden. Bitte prüfe, ob Elasticsearch läuft, oder deaktiviere die Volltextsuche elasticsearch_version_check: message_html: 'Inkompatible Elasticsearch-Version: %{value}' version_comparison: Elasticsearch %{running_version} läuft, aber %{required_version} wird benötigt rules_check: action: Serverregeln verwalten - message_html: Sie haben keine Serverregeln definiert. + message_html: Du hast keine Serverregeln definiert. sidekiq_process_check: - message_html: Kein Sidekiq-Prozess läuft für die %{value} Warteschlange(n). Bitte überprüfen Sie Ihre Sidekiq-Konfiguration + message_html: Kein Sidekiq-Prozess läuft für die %{value} Warteschlange(n). Bitte überprüfe deine Sidekiq-Konfiguration tags: review: Prüfstatus updated_msg: Hashtageinstellungen wurden erfolgreich aktualisiert @@ -794,32 +767,36 @@ de: links: allow: Erlaube Link allow_provider: Erlaube Herausgeber - description_html: Dies sind Links, die derzeit von Konten geteilt werden, von denen dein Server Beiträge sieht. Es kann deinen Benutzern helfen, herauszufinden, was in der Welt vor sich geht. Es werden keine Links öffentlich angezeigt, bis du den Publisher genehmigst. Du kannst auch einzelne Links zulassen oder ablehnen. + description_html: Dies sind Links, die derzeit von zahlreichen Accounts geteilt werden und die deinem Server aufgefallen sind. Die Benutzer*innen können darüber herausfinden, was in der Welt vor sich geht. Die Links werden allerdings erst dann öffentlich vorgeschlagen, wenn du die Herausgeber*innen genehmigt hast. Du kannst alternativ aber auch nur einzelne URLs zulassen oder ablehnen. disallow: Verbiete Link disallow_provider: Verbiete Herausgeber + no_link_selected: Keine Links wurden geändert, da keine ausgewählt wurden + publishers: + no_publisher_selected: Es wurden keine Herausgeber geändert, da keine ausgewählt wurden shared_by_over_week: one: In der letzten Woche von einer Person geteilt other: In der letzten Woche von %{count} Personen geteilt title: Angesagte Links - usage_comparison: Heute %{today} mal geteilt, gestern %{yesterday} mal + usage_comparison: Heute %{today} Mal geteilt, gestern %{yesterday} Mal only_allowed: Nur Erlaubte pending_review: Überprüfung ausstehend preview_card_providers: allowed: Links von diesem Herausgeber können angesagt sein - description_html: Dies sind Domains, von denen Links oft auf deinem Server geteilt werden. Links werden sich nicht öffentlich trenden, es sei denn, die Domain des Links wird genehmigt. Deine Zustimmung (oder Ablehnung) erstreckt sich auf Subdomains. + description_html: Dies sind Domains, von denen Links oft auf deinem Server geteilt werden. Links werden nicht öffentlich trenden, es sei denn, die Domain des Links wird genehmigt. Deine Zustimmung (oder Ablehnung) erstreckt sich auf Subdomains. rejected: Links von diesem Herausgeber können nicht angesagt sein title: Herausgeber rejected: Abgelehnt statuses: allow: Beitrag erlauben allow_account: Autor erlauben - description_html: Dies sind Beiträge, von denen dein Server weiß, dass sie derzeit viel geteilt und favorisiert werden. Es kann deinen neuen und wiederkehrenden Benutzern helfen, weitere Personen zu finden. Es werden keine Beiträge öffentlich angezeigt, bis du den Autor genehmigst und der Autor es zulässt deren Konto anderen Benutzern zu zeigen. Du kannst auch einzelne Beiträge zulassen oder ablehnen. + description_html: Dies sind Beiträge, von denen dein Server weiß, dass sie derzeit viel geteilt und favorisiert werden. Es kann deinen neuen und wiederkehrenden Benutzern helfen, weitere Personen zu finden. Es werden keine Beiträge öffentlich angezeigt, bis du den Autor genehmigst und der Autor es zulässt, sein Konto anderen Benutzern zeigen zu lassen. Du kannst auch einzelne Beiträge zulassen oder ablehnen. disallow: Beitrag verbieten disallow_account: Autor verbieten + no_status_selected: Keine angesagten Beiträge wurden geändert, da keine ausgewählt wurden not_discoverable: Der Autor hat sich nicht dafür entschieden, entdeckt zu werden shared_by: one: Einmal geteilt oder favorisiert - other: "%{friendly_count} mal geteilt oder favorisiert" + other: "%{friendly_count}-mal geteilt oder favorisiert" title: Angesagte Beiträge tags: current_score: Aktuelle Punktzahl %{score} @@ -831,6 +808,7 @@ de: tag_uses_measure: Gesamtnutzungen description_html: Dies sind Hashtags, die derzeit in vielen Beiträgen erscheinen, die dein Server sieht. Es kann deinen Benutzern helfen, herauszufinden, worüber die Menschen im Moment am meisten reden. Es werden keine Hashtags öffentlich angezeigt, bis du sie genehmigst. listable: Kann vorgeschlagen werden + no_tag_selected: Keine Tags wurden geändert, da keine ausgewählt wurden not_listable: Wird nicht vorgeschlagen not_trendable: Wird nicht unter Trends angezeigt not_usable: Kann nicht verwendet werden @@ -839,7 +817,7 @@ de: trendable: Darf unter Trends erscheinen trending_rank: 'Trend #%{rank}' usable: Kann verwendet werden - usage_comparison: Heute %{today} mal genutzt, gestern %{yesterday} mal + usage_comparison: Heute %{today} Mal genutzt, gestern %{yesterday} Mal used_by_over_week: one: In der letzten Woche von einer Person genutzt other: In der letzten Woche von %{count} Personen genutzt @@ -851,19 +829,39 @@ de: edit_preset: Warnungsvorlage bearbeiten empty: Du hast noch keine Warnungsvorlagen hinzugefügt. title: Warnungsvorlagen verwalten + webhooks: + add_new: Endpunkt hinzufügen + delete: Löschen + description_html: Ein Webhook ermöglicht Mastodon Echtzeitbenachrichtigungen über ausgewählte Ereignisse an deine eigene Anwendung zu senden damit deine Anwendung automatisch Reaktionen auslösen kann. + disable: Deaktivieren + disabled: Deaktiviert + edit: Endpunkt bearbeiten + empty: Du hast noch keine Webhook Endpunkte konfiguriert. + enable: Aktivieren + enabled: Aktiv + enabled_events: + one: 1 aktiviertes Ereignis + other: "%{count} aktivierte Ereignisse" + events: Ereignisse + new: Neuer Webhook + rotate_secret: Geheimen Schlüssel rotieren + secret: Signaturgeheimnis + status: Status + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: delete_statuses: deren Beiträge zu löschen disable: deren Konto einzufrieren - mark_statuses_as_sensitive: um ihre Beiträge als NSFW zu markieren + mark_statuses_as_sensitive: um die Beiträge des Profils mit einer Inhaltswarnung zu versehen none: eine Warnung - sensitive: deren Konto als NSFW zu markieren + sensitive: um das Profil mit einer Inhaltswarnung zu versehen silence: deren Konto zu beschränken suspend: deren Konto zu sperren - body: "%{target} hat was gegen eine Moderationsentscheidung von %{action_taken_by} von %{date}, die %{type} war. Die Person schrieb:" + body: "%{target} hat etwas gegen eine Moderationsentscheidung von %{action_taken_by} von %{date}, die %{type} war. Die Person schrieb:" next_steps: Du kannst dem Einspruch zustimmen und die Moderationsentscheidung rückgängig machen oder ignorieren. - subject: "%{username} hat Einspruch an einer Moderationsentscheidung von %{instance}" + subject: "%{username} hat Einspruch gegen eine Moderationsentscheidung von %{instance} eingelegt" new_pending_account: body: Die Details von diesem neuem Konto sind unten. Du kannst die Anfrage akzeptieren oder ablehnen. subject: Neues Konto zur Überprüfung auf %{instance} verfügbar (%{username}) @@ -874,12 +872,8 @@ de: new_trends: body: 'Die folgenden Einträge müssen überprüft werden, bevor sie öffentlich angezeigt werden können:' new_trending_links: - no_approved_links: Derzeit sind keine trendenen Links hinterlegt, die genehmigt wurden. - requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten trendenen Link übertreffen, der derzeit "%{lowest_link_title}" mit einer Punktzahl von %{lowest_link_score} ist.' title: Angesagte Links new_trending_statuses: - no_approved_statuses: Derzeit sind keine trendenen Beiträge hinterlegt, die genehmigt wurden. - requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten trendenen Beitrag übertreffen, der derzeit "%{lowest_status_url}" mit einer Punktzahl von %{lowest_status_score} ist.' title: Angesagte Beiträge new_trending_tags: no_approved_tags: Derzeit gibt es keine genehmigten trendenen Hashtags. @@ -889,13 +883,13 @@ de: aliases: add_new: Alias erstellen created_msg: Ein neuer Alias wurde erfolgreich erstellt. Du kannst nun den Wechsel vom alten Konto starten. - deleted_msg: Der Alias wurde erfolgreich entfernt. Aus diesem Konto zu diesem zu verschieben ist nicht mehr möglich. + deleted_msg: Der Alias wurde erfolgreich entfernt. Aus jenem Konto zu diesem zu verschieben, ist nicht mehr möglich. empty: Du hast keine Aliase. - hint_html: Wenn du von einem Konto zu einem anderem Konto wechseln möchtest, dann kannst du einen Alias erstellen, welcher benötigt wird bevor du deine Folgenden vom altem Account zu diesen migrierst. Die Aktion alleine ist harmlos und wi­der­ruf­lich. Die Kontenmigration wird vom altem Konto aus eingeleitet. + hint_html: Wenn du von einem Konto zu einem anderem Konto wechseln möchtest, dann kannst du einen Alias erstellen, welcher benötigt wird, bevor du deine Folgenden vom altem Account zu diesen migrierst. Die Aktion alleine ist harmlos und wi­der­ruf­lich. Die Kontenmigration wird vom altem Konto aus eingeleitet. remove: Alle Aliase aufheben appearance: advanced_web_interface: Fortgeschrittene Benutzeroberfläche - advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, erlaubt dir die fortgeschrittene Benutzeroberfläche viele unterschiedliche Spalten auf einmal zu sehen, wie z.B. deine Startseite, Benachrichtigungen, das gesamte bekannte Netz, deine Listen und beliebige Hashtags. + advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, kannst du mit der fortgeschrittenen Benutzeroberfläche weitere Spalten hinzufügen und dadurch mehr Informationen auf einmal sehen, z. B. deine Startseite, die Mitteilungen, die föderierte Timeline sowie beliebig viele deiner Listen und Hashtags. animations_and_accessibility: Animationen und Barrierefreiheit confirmation_dialogs: Bestätigungsfenster discovery: Entdecken @@ -903,28 +897,25 @@ de: body: Mastodon wurde von Freiwilligen übersetzt. guide_link: https://de.crowdin.com/project/mastodon guide_link_text: Jeder kann etwas dazu beitragen. - sensitive_content: NSFW - toot_layout: Beitragslayout + sensitive_content: Inhaltswarnung + toot_layout: Timeline-Layout application_mailer: notification_preferences: Ändere E-Mail-Einstellungen salutation: "%{name}," settings: 'E-Mail-Einstellungen ändern: %{link}' view: 'Ansehen:' - view_profile: Zeige Profil + view_profile: Profil anzeigen view_status: Beitrag öffnen applications: created: Anwendung erfolgreich erstellt destroyed: Anwendung erfolgreich gelöscht - invalid_url: Die angegebene URL ist ungültig regenerate_token: Zugangs-Token neu erstellen token_regenerated: Zugangs-Token neu erstellt warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem! your_token: Dein Zugangs-Token auth: - apply_for_account: Eine Einladung anfragen + apply_for_account: Auf Warteliste kommen change_password: Passwort - checkbox_agreement_html: Ich akzeptiere die Server-Regeln und die Nutzungsbedingungen - checkbox_agreement_without_rules_html: Ich stimme den Nutzungsbedingungen zu delete_account: Konto löschen delete_account_html: Falls du dein Konto löschen willst, kannst du hier damit fortfahren. Du wirst um Bestätigung gebeten werden. description: @@ -943,6 +934,7 @@ de: migrate_account: Ziehe zu einem anderen Konto um migrate_account_html: Wenn du wünschst, dieses Konto zu einem anderen umzuziehen, kannst du dies hier einstellen. or_log_in_with: Oder anmelden mit + privacy_policy_agreement_html: Ich habe die Datenschutzbestimmungen gelesen und stimme ihnen zu providers: cas: CAS saml: SAML @@ -950,12 +942,18 @@ de: registration_closed: "%{instance} akzeptiert keine neuen Mitglieder" resend_confirmation: Bestätigungs-Mail erneut versenden reset_password: Passwort zurücksetzen + rules: + preamble: Diese werden von den Moderatoren von %{domain} erzwungen. + title: Einige Grundregeln. security: Sicherheit set_new_password: Neues Passwort setzen setup: email_below_hint_html: Wenn die unten stehende E-Mail-Adresse falsch ist, kannst du sie hier ändern und eine neue Bestätigungs-E-Mail erhalten. email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern. title: Konfiguration + sign_up: + preamble: Mit einem Account auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet wird. + title: Okay, lass uns mit %{domain} anfangen. status: account_status: Kontostatus confirming: Warte auf die Bestätigung der E-Mail. @@ -963,8 +961,7 @@ de: pending: Deine Bewerbung wird von unseren Mitarbeitern noch überprüft. Dies kann einige Zeit dauern. Du erhältst eine E-Mail, wenn deine Bewerbung genehmigt wurde. redirecting_to: Dein Konto ist inaktiv, da es derzeit zu %{acct} umgeleitet wird. view_strikes: Zeige frühere Streiks gegen dein Konto - too_fast: Formular zu schnell gesendet, versuchen Sie es erneut. - trouble_logging_in: Schwierigkeiten beim Anmelden? + too_fast: Formular zu schnell gesendet, versuche es erneut. use_security_key: Sicherheitsschlüssel verwenden authorize_follow: already_following: Du folgst diesem Konto bereits @@ -975,14 +972,14 @@ de: following: 'Erfolg! Du folgst nun:' post_follow: close: Oder du schließt einfach dieses Fenster. - return: Zeige das Profil + return: Das Benutzerprofil anzeigen web: In der Benutzeroberfläche öffnen title: "%{acct} folgen" challenge: confirm: Fortfahren hint_html: "Hinweis: Wir werden dich für die nächste Stunde nicht erneut nach deinem Passwort fragen." invalid_password: Ungültiges Passwort - prompt: Gib dein Passwort ein um fortzufahren + prompt: Gib dein Passwort ein, um fortzufahren crypto: errors: invalid_key: ist kein gültiger Ed25519- oder Curve25519-Schlüssel @@ -1012,7 +1009,7 @@ de: proceed: Konto löschen success_msg: Dein Konto wurde erfolgreich gelöscht warning: - before: 'Bevor du fortfährst, lese bitte diese Punkte sorgfältig durch:' + before: 'Bevor du fortfährst, lies bitte diese Punkte sorgfältig durch:' caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können weiterhin bestehen data_removal: Deine Beiträge und andere Daten werden dauerhaft entfernt email_change_html: Du kannst deine E-Mail-Adresse ändern, ohne dein Konto zu löschen @@ -1022,10 +1019,6 @@ de: more_details_html: Weitere Details findest du in der Datenschutzrichtlinie. username_available: Dein Benutzername wird wieder verfügbar username_unavailable: Dein Benutzername bleibt nicht verfügbar - directories: - directory: Profilverzeichnis - explanation: Entdecke Benutzer basierend auf deren Interessen - explore_mastodon: Entdecke %{title} disputes: strikes: action_taken: Maßnahme ergriffen @@ -1048,9 +1041,9 @@ de: title_actions: delete_statuses: Post-Entfernung disable: Einfrieren des Kontos - mark_statuses_as_sensitive: Das Markieren der Beiträge als NSFW + mark_statuses_as_sensitive: Beiträge mit einer Inhaltswarnung versehen none: Warnung - sensitive: Das Markieren des Kontos als NSFW + sensitive: Profil mit einer Inhaltswarnung versehen silence: Kontobeschränkung suspend: Kontosperre your_appeal_approved: Dein Einspruch wurde angenommen @@ -1061,15 +1054,15 @@ de: errors: '400': Die Anfrage, die du gesendet hast, war ungültig oder fehlerhaft. '403': Dir fehlt die Befugnis, diese Seite sehen zu können. - '404': Die Seite nach der du gesucht hast wurde nicht gefunden. + '404': Die Seite, nach der du gesucht hast, wurde nicht gefunden. '406': Diese Seite ist im gewünschten Format nicht verfügbar. - '410': Die Seite nach der du gesucht hast existiert hier nicht mehr. + '410': Die Seite, nach der du gesucht hast, existiert hier nicht mehr. '422': content: Sicherheitsüberprüfung fehlgeschlagen. Blockierst du Cookies? title: Sicherheitsüberprüfung fehlgeschlagen '429': Du wurdest gedrosselt '500': - content: Bitte verzeih, etwas ist bei uns schief gegangen. + content: Bitte verzeih', etwas ist bei uns schiefgegangen. title: Diese Seite ist kaputt '503': Die Seite konnte wegen eines temporären Serverfehlers nicht angezeigt werden. noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der nativen Mastodon-Anwendungen für deine Plattform probieren. @@ -1080,53 +1073,84 @@ de: archive_takeout: date: Datum download: Dein Archiv herunterladen - hint_html: Du kannst ein Archiv deiner Beiträge und hochgeladenen Medien anfragen. Die exportierten Daten werden in dem ActivityPub-Format gespeichert, welches mit jeder Software lesbar ist die das Format unterstützt. Du kannst alle 7 Tage ein Archiv anfordern. - in_progress: Stelle dein Archiv zusammen... - request: Dein Archiv anfragen + hint_html: Du kannst ein Archiv deiner Beiträge, Listen, hochgeladenen Medien, usw. anfordern. Die exportierten Daten werden in dem ActivityPub-Format gespeichert und können mit jeder passenden Software gelesen werden. Du kannst alle 7 Tage ein Archiv anfordern. + in_progress: Persönliches Archiv wird erstellt … + request: Dein Archiv anfordern size: Größe - blocks: Du hast blockiert + blocks: Blockierte Accounts bookmarks: Lesezeichen csv: CSV - domain_blocks: Domainblockaden + domain_blocks: Blockierte Domains lists: Listen - mutes: Du hast stummgeschaltet + mutes: Stummgeschaltete Accounts storage: Medienspeicher featured_tags: add_new: Neu hinzufügen errors: limit: Du hast bereits die maximale Anzahl an empfohlenen Hashtags erreicht - hint_html: "Was sind empfohlene Hashtags? Sie werden in deinem öffentlichen Profil deutlich angezeigt und ermöglichen es den Menschen, deine öffentlichen Beiträge speziell unter diesen Hashtags zu durchsuchen. Sie sind ein großartiges Werkzeug, um kreative Werke oder langfristige Projekte zu verfolgen." + hint_html: "Was sind empfohlene Hashtags? Sie werden in deinem öffentlichen Profil hervorgehoben und ermöglichen es den Menschen, deine öffentlichen Beiträge speziell unter diesen Hashtags zu durchsuchen. Sie sind ein großartiges Werkzeug, um kreative Werke oder langfristige Projekte zu verfolgen." filters: contexts: account: Profile home: Startseite - notifications: Benachrichtigungen - public: Öffentliche Zeitleisten - thread: Gespräche + notifications: Mitteilungen + public: Öffentliche Timelines + thread: Unterhaltungen edit: + add_keyword: Stichwort hinzufügen + keywords: Stichwörter + statuses: Individuelle Beiträge + statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten stehenden Schlüsselwörtern übereinstimmen. Beiträge im Filter ansehen oder entfernen.. title: Filter bearbeiten errors: + deprecated_api_multiple_keywords: Diese Parameter können von dieser Anwendung nicht geändert werden, da sie auf mehr als ein Filterschlüsselwort angewendet werden. Verwende eine neuere Anwendung oder die Web-Schnittstelle. invalid_context: Ungültiger oder fehlender Kontext übergeben - invalid_irreversible: Unwiderrufliche Filterung funktioniert nur mit Heim- oder Benachrichtigungskontext index: + contexts: Filter in %{contexts} delete: Löschen - empty: Du hast keine Filter. + empty: Du hast noch keine Filter gesetzt. + expires_in: Läuft ab in %{distance} + expires_on: Läuft am %{date} ab + keywords: + one: "%{count} Stichwort" + other: "%{count} Stichwörter" + statuses: + one: "%{count} Beitrag" + other: "%{count} Beiträge" + statuses_long: + one: "%{count} individueller Beitrag ausgeblendet" + other: "%{count} individuelle Beiträge ausgeblendet" title: Filter new: + save: Neuen Filter speichern title: Neuen Filter hinzufügen + statuses: + back_to_filter: Zurück zum Filter + batch: + remove: Vom Filter entfernen + index: + hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über die Webschnittstelle hinzufügen. + title: Gefilterte Beiträge footer: - developers: Entwickler - more: Mehr… - resources: Ressourcen trending_now: In den Trends generic: all: Alle + all_items_on_page_selected_html: + one: "%{count} Element auf dieser Seite ausgewählt." + other: Alle %{count} Elemente auf dieser Seite ausgewählt. + all_matching_items_selected_html: + one: "%{count} Element trifft auf ihre Suche zu." + other: Alle %{count} Elemente, die Ihrer Suche entsprechen, werden ausgewählt. changes_saved_msg: Änderungen gespeichert! copy: Kopieren delete: Löschen + deselect: Auswahl für alle aufheben none: Keine order_by: Sortieren nach save_changes: Änderungen speichern + select_all_matching_items: + one: Wähle %{count} Element, das deiner Suche entspricht. + other: Wählen Sie alle %{count} Elemente, die Ihrer Suche entsprechen. today: heute validation_errors: one: Etwas ist noch nicht ganz richtig! Bitte korrigiere den Fehler @@ -1149,8 +1173,7 @@ de: domain_blocking: Domain-Blockliste following: Folgeliste muting: Stummschaltungsliste - upload: Hochladen - in_memoriam_html: In Gedenken. + upload: Liste importieren invites: delete: Deaktivieren expired: Abgelaufen @@ -1162,16 +1185,16 @@ de: '604800': 1 Woche '86400': 1 Tag expires_in_prompt: Nie - generate: Generieren + generate: Einladungslink erstellen invited_by: 'Du wurdest eingeladen von:' max_uses: one: 1 mal verwendet other: "%{count} mal verwendet" max_uses_prompt: Kein Limit - prompt: Generiere und teile Links um Zugang zu diesem Server zu geben + prompt: Generiere und teile Links, um Zugang zu diesem Server zu erteilen table: expires_at: Läuft ab - uses: Verwendungen + uses: Verwendet title: Leute einladen lists: errors: @@ -1182,7 +1205,7 @@ de: password: Passwort sign_in_token: E-Mail Sicherheitscode webauthn: Sicherheitsschlüssel - description_html: Wenn du Aktivitäten siehst, die du nicht erkennst, solltest du dein Passwort ändern und die Zwei-Faktor-Authentifizierung aktivieren. + description_html: Wenn du verdächtige Aktivitäten bemerkst, die du nicht verstehst oder zuordnen kannst, solltest du dringend dein Passwort ändern und ungeachtet dessen die Zwei-Faktor-Authentisierung (2FA) aktivieren. empty: Kein Authentifizierungsverlauf verfügbar failed_sign_in_html: Fehler beim Anmeldeversuch mit %{method} von %{ip} (%{browser}) successful_sign_in_html: Erfolgreiche Anmeldung mit %{method} von %{ip} (%{browser}) @@ -1190,7 +1213,7 @@ de: media_attachments: validations: images_and_video: Es kann kein Video an einen Beitrag, der bereits Bilder enthält, angehängt werden - not_ready: Dateien die noch nicht bearbeitet wurden, können nicht angehängt werden. Versuche es gleich noch einmal! + not_ready: Dateien, die noch nicht bearbeitet wurden, können nicht angehängt werden. Versuche es gleich noch einmal! too_many: Es können nicht mehr als 4 Dateien angehängt werden migrations: acct: benutzername@domain des neuen Kontos @@ -1203,23 +1226,23 @@ de: move_to_self: darf nicht das aktuelles Konto sein not_found: kann nicht gefunden werden on_cooldown: Die Abklingzeit läuft gerade - followers_count: Folgende zur Zeit des Verschiebens + followers_count: Anzahl der Follower zum Zeitpunkt der Migration des Accounts incoming_migrations: Ziehe von einem anderen Konto um incoming_migrations_html: Um von einem anderen Konto zu diesem zu wechseln, musst du zuerst einen Kontoalias erstellen. - moved_msg: Dein Konto wird jetzt zu %{acct} weitergeleitet und deine Folgende werden verschoben. + moved_msg: Dein altes Profil wird jetzt zum neuen Account %{acct} weitergeleitet und deine Follower werden übertragen. not_redirecting: Dein Konto wird derzeit nicht auf ein anderes Konto weitergeleitet. on_cooldown: Du hast dein Konto vor kurzem migriert. Diese Funktion wird in %{count} Tagen wieder verfügbar sein. past_migrations: Vorherige Migrationen - proceed_with_move: Folgende verschieben + proceed_with_move: Follower übertragen redirected_msg: Dein Konto wird nun zu %{acct} weitergeleitet. redirecting_to: Dein Konto wird zu %{acct} weitergeleitet. set_redirect: Umleitung einrichten warning: backreference_required: Das neue Konto muss zuerst so konfiguriert werden, dass es auf das alte Konto referenziert - before: 'Bevor du fortfährst, lese bitte diese Hinweise sorgfältig durch:' + before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:' cooldown: Nach dem Migrieren wird es eine Abklingzeit geben, in der du das Konto nicht noch einmal migrieren kannst disabled_account: Dein aktuelles Konto wird nachher nicht vollständig nutzbar sein. Du hast jedoch Zugriff auf den Datenexport sowie die Reaktivierung. - followers: Diese Aktion wird alle Folgende vom aktuellen Konto auf das neue Konto verschieben + followers: Alle Follower werden vom aktuellen zum neuen Konto übertragen only_redirect_html: Alternativ kannst du nur eine Weiterleitung auf dein Profil erstellen. other_data: Keine anderen Daten werden automatisch verschoben redirect: Das Profil deines aktuellen Kontos wird mit einer Weiterleitungsnachricht versehen und von Suchanfragen ausgeschlossen @@ -1227,23 +1250,16 @@ de: title: Moderation move_handler: carry_blocks_over_text: Dieses Benutzerkonto ist von %{acct} umgezogen, welches du blockiert hast. - carry_mutes_over_text: Dieses Benutzerkonto ist von %{acct} umgezogen, welches du stummgeschaltet hast. - copy_account_note_text: 'Dieser Benutzer ist von %{acct} umgezogen, hier waren deine letzten Notizen zu diesem Benutzer:' + carry_mutes_over_text: Das Profil wurde von %{acct} übertragen – und dieses hattest du stummgeschaltet. + copy_account_note_text: 'Dieser Benutzer ist von %{acct} umgezogen, hier sind deine letzten Notizen zu diesem Benutzer:' + navigation: + toggle_menu: Menü ein-/ausblenden notification_mailer: admin: + report: + subject: "%{name} hat eine Meldung eingereicht" sign_up: subject: "%{name} registrierte sich" - digest: - action: Zeige alle Benachrichtigungen - body: Hier ist eine kurze Zusammenfassung der Nachrichten, die du seit deinem letzten Besuch am %{since} verpasst hast - mention: "%{name} hat dich erwähnt:" - new_followers_summary: - one: Außerdem ist dir seit du weg warst ein weiteres Konto gefolgt! Juhu! - other: Außerdem sind dir seit du weg warst %{count} weitere Konten gefolgt! Großartig! - subject: - one: "1 neue Mitteilung seit deinem letzten Besuch 🐘" - other: "%{count} neue Mitteilungen seit deinem letzten Besuch 🐘" - title: In deiner Abwesenheit... favourite: body: 'Dein Beitrag wurde von %{name} favorisiert:' subject: "%{name} hat deinen Beitrag favorisiert" @@ -1265,7 +1281,7 @@ de: poll: subject: Eine Umfrage von %{name} ist beendet reblog: - body: "%{name} hat deinen Beitrag geteilt:" + body: 'Deinen Beitrag hat %{name} geteilt:' subject: "%{name} hat deinen Beitrag geteilt" title: Dein Beitrag wurde geteilt status: @@ -1273,9 +1289,9 @@ de: update: subject: "%{name} bearbeitete einen Beitrag" notifications: - email_events: Ereignisse für E-Mail-Benachrichtigungen - email_events_hint: 'Wähle Ereignisse, für die du Benachrichtigungen erhalten möchtest:' - other_settings: Weitere Benachrichtigungseinstellungen + email_events: Benachrichtigungen per E-Mail + email_events_hint: 'Bitte die Ereignisse auswählen, für die du Benachrichtigungen erhalten möchtest:' + other_settings: Weitere Einstellungen number: human: decimal_units: @@ -1288,10 +1304,10 @@ de: trillion: T otp_authentication: code_hint: Gib den von deiner Authentifizierungs-App generierten Code ein, um deine Anmeldung zu bestätigen - description_html: Wenn du Zwei-Faktor-Authentifizierung mit einer Authentifizierungs-App aktivierst, musst du, um dich anzumelden, im Besitz deines Handys sein, dass Tokens für dein Konto generiert. + description_html: Wenn du die Zwei-Faktor-Authentisierung (2FA) mit einer Authentifizierungs-App deines Smartphones aktivierst, benötigst du neben dem regulären Passwort zusätzlich auch den zeitbasierten Code der 2FA-App, um dich einloggen zu können. enable: Aktivieren - instructions_html: "Scanne diesen QR-Code in Google Authenticator oder einer ähnlichen TOTP-App auf deinem Handy. Von nun an generiert diese App Tokens, die du beim Anmelden eingeben musst." - manual_instructions: 'Wenn du den QR-Code nicht scannen kannst und ihn manuell eingeben musst, ist hier das Klartext-Geheimnis:' + instructions_html: "Scanne diesen QR-Code mit einer TOTP-App (wie dem Google Authenticator). Die 2FA-App generiert dann zeitbasierte Codes, die du beim Login zusätzlich zum regulären Passwort eingeben musst." + manual_instructions: Wenn du den QR-Code nicht einscannen kannst, sondern die Zahlenfolge manuell eingeben musst, ist hier der geheime Token für deine 2FA-App. setup: Einrichten wrong_code: Der eingegebene Code war ungültig! Sind die Serverzeit und die Gerätezeit korrekt? pagination: @@ -1307,14 +1323,16 @@ de: duration_too_long: ist zu weit in der Zukunft duration_too_short: ist zu früh expired: Die Umfrage ist bereits vorbei - invalid_choice: Die gewählte Stimmenoption existiert nicht + invalid_choice: Die gewählte Abstimmoption existiert nicht over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein too_few_options: muss mindestens einen Eintrag haben too_many_options: kann nicht mehr als %{max} Einträge beinhalten preferences: - other: Weiteres + other: Erweitert posting_defaults: Standardeinstellungen für Beiträge - public_timelines: Öffentliche Zeitleisten + public_timelines: Öffentliche Timelines + privacy_policy: + title: Datenschutzerklärung reactions: errors: limit_reached: Limit für verschiedene Reaktionen erreicht @@ -1323,8 +1341,8 @@ de: activity: Kontoaktivität dormant: Inaktiv follow_selected_followers: Ausgewählte Follower folgen - followers: Folgende - following: Folgt + followers: Follower + following: Folge ich invited: Eingeladen last_active: Zuletzt aktiv most_recent: Neuste @@ -1334,25 +1352,10 @@ de: relationship: Beziehung remove_selected_domains: Entferne alle Follower von den ausgewählten Domains remove_selected_followers: Entferne ausgewählte Follower - remove_selected_follows: Entfolge ausgewählte Benutzer + remove_selected_follows: Entfolge ausgewählten Benutzer*innen status: Kontostatus remote_follow: - acct: Profilname@Domain, von wo aus du dieser Person folgen möchtest missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden - no_account_html: Noch kein Konto? Du kannst dich hier anmelden - proceed: Weiter - prompt: 'Du wirst dieser Person folgen:' - reason_html: "Warum ist dieser Schritt erforderlich?%{instance} ist möglicherweise nicht der Server auf dem du registriert bist, also müssen wir dich erst auf deinen Heimserver weiterleiten." - remote_interaction: - favourite: - proceed: Fortfahren zum Favorisieren - prompt: 'Du möchtest diesen Beitrag favorisieren:' - reblog: - proceed: Fortfahren zum Teilen - prompt: 'Du möchtest diesen Beitrag teilen:' - reply: - proceed: Fortfahren zum Antworten - prompt: 'Du möchtest auf diesen Beitrag antworten:' reports: errors: invalid_rules: verweist nicht auf gültige Regeln @@ -1362,15 +1365,15 @@ de: account: Öffentliche Beiträge von @%{acct} tag: 'Öffentliche Beiträge mit dem Tag #%{hashtag}' scheduled_statuses: - over_daily_limit: Du hast das Limit für geplante Beiträge, dass %{limit} beträgt, für heute erreicht - over_total_limit: Du hast das Limit für geplante Beiträge, dass %{limit} beträgt, erreicht + over_daily_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, für heute erreicht + over_total_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, erreicht too_soon: Das geplante Datum muss in der Zukunft liegen sessions: activity: Letzte Aktivität browser: Browser browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1384,7 +1387,7 @@ de: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Aktuelle Sitzung description: "%{browser} auf %{platform}" @@ -1393,42 +1396,42 @@ de: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry + blackberry: BlackBerry chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux mac: Mac - other: unbekannte Plattform + other: unbekanntes Betriebssystem windows: Windows windows_mobile: Windows Mobile - windows_phone: Windows Handy + windows_phone: Windows Phone revoke: Schließen revoke_success: Sitzung erfolgreich geschlossen title: Sitzungen view_authentication_history: Authentifizierungsverlauf deines Kontos anzeigen settings: account: Konto - account_settings: Konto & Sicherheit + account_settings: Kontoeinstellungen aliases: Kontoaliase - appearance: Aussehen + appearance: Erscheinungsbild authorized_apps: Autorisierte Anwendungen back: Zurück zu Mastodon delete: Konto löschen development: Entwicklung edit_profile: Profil bearbeiten - export: Datenexport + export: Export featured_tags: Empfohlene Hashtags - import: Datenimport - import_and_export: Importieren und Exportieren + import: Import + import_and_export: Import und Export migrate: Konto-Umzug notifications: Benachrichtigungen preferences: Einstellungen profile: Profil - relationships: Folgende und Gefolgte + relationships: Folge ich und Follower statuses_cleanup: Automatische Löschung strikes: Strikes - two_factor_authentication: Zwei-Faktor-Auth + two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) webauthn_authentication: Sicherheitsschlüssel statuses: attached: @@ -1460,8 +1463,8 @@ de: reblog: Du kannst keine geteilten Beiträge anheften poll: total_people: - one: "%{count} Person" - other: "%{count} Personen" + one: "%{count} Stimme" + other: "%{count} Stimmen" total_votes: one: "%{count} Stimme" other: "%{count} Stimmen" @@ -1469,38 +1472,38 @@ de: show_more: Mehr anzeigen show_newer: Neuere anzeigen show_older: Ältere anzeigen - show_thread: Zeige Konversation + show_thread: Thread anzeigen sign_in_to_participate: Melde dich an, um an der Konversation teilzuhaben title: '%{name}: "%{quote}"' visibilities: direct: Direktnachricht - private: Nur Folgende - private_long: Nur für Folgende sichtbar + private: Nur eigene Follower + private_long: Nur für deine eigenen Follower sichtbar public: Öffentlich public_long: Für alle sichtbar unlisted: Nicht gelistet - unlisted_long: Für alle sichtbar, aber nicht in öffentlichen Zeitleisten aufgelistet + unlisted_long: Für alle sichtbar, aber in öffentlichen Timelines nicht aufgelistet statuses_cleanup: enabled: Automatisch alte Beiträge löschen enabled_hint: Löscht automatisch deine Beiträge, sobald sie einen bestimmten Altersgrenzwert erreicht haben, es sei denn, sie entsprechen einer der folgenden Ausnahmen exceptions: Ausnahmen - explanation: Damit Mastodon nicht durch das Löschen von Beiträgen ausgebremst wird, wartet der Server damit bis wenig los ist. Aus diesem Grund werden deine Beiträge ggf. erst einige Zeit nach Erreichen der Altersgrenze gelöscht. + explanation: Damit Mastodon nicht durch das Löschen von Beiträgen ausgebremst wird, wartet der Server damit, bis wenig los ist. Aus diesem Grund werden deine Beiträge ggf. erst einige Zeit nach Erreichen der Altersgrenze gelöscht. ignore_favs: Favoriten ignorieren - ignore_reblogs: Boosts ignorieren + ignore_reblogs: Geteilte Beiträge ignorieren interaction_exceptions: Ausnahmen basierend auf Interaktionen interaction_exceptions_explanation: Beachte, dass es keine Garantie für das Löschen von Beiträgen gibt, wenn sie nach einem Übertritt des Favoriten- oder Boost-Schwellenwert wieder unter diesen fallen. keep_direct: Direktnachrichten behalten keep_direct_hint: Löscht keine deiner Direktnachrichten keep_media: Beiträge mit Medienanhängen behalten - keep_media_hint: Löscht keine Ihrer Beiträge mit Medienanhängen + keep_media_hint: Löscht keinen deiner Beiträge mit Medienanhängen keep_pinned: Angeheftete Beiträge behalten - keep_pinned_hint: Löscht keine deiner angehefteten Beiträge + keep_pinned_hint: Löscht keinen deiner angehefteten Beiträge keep_polls: Umfragen behalten keep_polls_hint: Löscht keine deiner Umfragen keep_self_bookmark: Als Lesezeichen markierte Beiträge behalten - keep_self_bookmark_hint: Löscht nicht deine eigenen Beiträge, wenn du sie als Lesezeichen markiert hast + keep_self_bookmark_hint: Löscht deine eigenen Beiträge nicht, wenn du sie als Lesezeichen markiert hast keep_self_fav: Behalte die von dir favorisierten Beiträge - keep_self_fav_hint: Löscht nicht deine eigenen Beiträge, wenn du sie favorisiert hast + keep_self_fav_hint: Löscht deine eigenen Beiträge nicht, wenn du sie favorisiert hast min_age: '1209600': 2 Wochen '15778476': 6 Monate @@ -1511,104 +1514,19 @@ de: '63113904': 2 Jahre '7889238': 3 Monate min_age_label: Altersgrenze - min_favs: Behalte Beiträge, die öfter favorisiert wurden als - min_favs_hint: Löscht keine deiner Beiträge, die mehr als diese Anzahl an Favoriten erhalten haben. Leer lassen, um Beiträge zu löschen, unabhängig von ihrer Anzahl an Favoriten - min_reblogs: Behalte Beiträge, die öfter geteilt wurden als - min_reblogs_hint: Löscht keine deiner Beiträge, die mehr als diese Anzahl geteilt wurden. Lasse leer, um Beiträge zu löschen, unabhängig von ihrer Anzahl an Boosts + min_favs: Behalte Beiträge, die häufiger favorisiert wurden als ... + min_favs_hint: Lösche keine deiner Beiträge, die häufiger als diese Anzahl favorisiert worden sind. Lass das Feld leer, um alle Beiträge unabhängig der Anzahl der Favoriten zu löschen + min_reblogs: Behalte Beiträge, die häufiger geteilt wurden als ... + min_reblogs_hint: Lösche keine deiner Beiträge, die mehr als diese Anzahl geteilt wurden. Lasse das Feld leer, um alle Beiträge unabhängig der Anzahl der geteilten Beiträge zu löschen stream_entries: pinned: Angehefteter Beitrag reblogged: teilte - sensitive_content: NSFW + sensitive_content: Inhaltswarnung strikes: errors: too_late: Es ist zu spät, um gegen diese Verwarnung Einspruch zu erheben tags: does_not_match_previous_name: entspricht nicht dem vorherigen Namen - terms: - body_html: | -

      Datenschutzerklärung

      -

      Welche Informationen sammeln wir?

      - -
        -
      • Grundlegende Kontoinformationen: Wenn du dich auf diesem Server registrierst, wirst du darum gebeten, einen Benutzernamen, eine E-Mail-Adresse und ein Passwort einzugeben. Du kannst auch zusätzliche Profilinformationen wie etwa einen Anzeigenamen oder eine Biografie eingeben und ein Profilbild oder ein Headerbild hochladen. Der Benutzername, der Anzeigename, die Biografie, das Profilbild und das Headerbild werden immer öffentlich angezeigt.
      • -
      • Beiträge, Folge- und andere öffentliche Informationen: Die Liste der Leute, denen du folgst, wird öffentlich gezeigt, das gleiche gilt für deine Folgenden (Follower). Sobald du eine Nachricht übermittelst, wird das Datum und die Uhrzeit gemeinsam mit der Information, welche Anwendung du dafür verwendet hast, gespeichert. Nachricht können Medienanhänge enthalten, etwa Bilder und Videos. Öffentliche und ungelistete Beiträge sind öffentlich verfügbar. Sobald du einen Beitrag auf deinem Profil anpinnst, sind dies auch öffentlich verfügbare Informationen. Deine Beiträge werden an deine Folgenden ausgeliefert, was in manchen Fällen bedeutet, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Sobald du Beiträge löschst, wird dies ebenso an deine Follower ausgeliefert. Die Handlungen des Teilens und Favorisieren eines anderen Beitrages ist immer öffentlich.
      • -
      • Direkte und "Nur Folgende"-Beiträge: Alle Beiträge werden auf dem Server gespeichert und verarbeitet. "Nur Folgende"-Beiträge werden an deine Folgenden und an Benutzer, die du in ihnen erwähnst, ausgeliefert, direkte Beiträge nur an in ihnen erwähnte Benutzer. In manchen Fällen bedeutet dass, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Wir bemühen uns nach bestem Wissen und Gewissen, den Zugriff auf diese Beiträge auf nur autorisierte Personen einzuschränken, jedoch könnten andere Server dabei scheitern. Deswegen ist es wichtig, die Server, zu denen deine Folgenden gehören, zu überprüfen. Du kannst eine Option in den Einstellungen umschalten, um neue Folgenden manuell anzunehmen oder abzuweisen. Bitte beachte, dass die Betreiber des Server und jedes empfangenden Servers solche Nachrichten anschauen könnten und dass Empfänger von diesen eine Bildschirmkopie erstellen könnten, sie kopieren oder anderweitig weiterverteilen könnten. Teile nicht irgendwelche gefährlichen Informationen über Mastodon.
      • -
      • Internet Protocol-Adressen (IP-Adressen) und andere Metadaten: Sobald du dich anmeldest, erfassen wir sowohl die IP-Adresse, von der aus du dich anmeldest, als auch den Namen deine Browseranwendung. Alle angemeldeten Sitzungen (Sessions) sind für deine Überprüfung und Widerruf in den Einstellungen verfügbar. Die letzte verwendete IP-Adresse wird bis zu 12 Monate lang gespeichert. Wir könnten auch Serverprotokoll behalten, welche die IP-Adresse von jeder Anfrage an unseren Server enthalten.
      • -
      - -
      - -

      Für was verwenden wir deine Informationen?

      - -

      Jede der von dir gesammelten Information kann in den folgenden Weisen verwendet werden:

      - -
        -
      • Um die Kernfunktionalität von Mastodon bereitzustellen. Du kannst du mit dem Inhalt anderer Leute interagieren und deine eigenen Inhalte beitragen, wenn du angemeldet bist. Zum Beispiel kannst du anderen folgen, um deren kombinierten Beiträge in deine personalisierten Start-Timeline zu sehen.
      • -
      • Um Moderation der Community zu ermöglichen, zum Beispiel beim Vergleichen deiner IP-Adresse mit anderen bekannten, um Verbotsumgehung oder andere Vergehen festzustellen.
      • -
      • Die E-Mail-Adresse, die du bereitstellst, kann dazu verwendet werden, dir Informationen, Benachrichtigungen über andere Leute, die mit deinen Inhalten interagieren oder dir Nachrichten senden, und auf Anfragen, Wünsche und/oder Fragen zu antworten.
      • -
      - -
      - -

      Wie beschützen wir deine Informationen?

      - -

      Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Information sicherzustellen, wenn du persönliche Informationen eingibst, übermittelst oder auf sie zugreifst. Neben anderen Dingen, wird sowohl deine Browsersitzung, als auch der Datenverkehr zwischen deinen Anwendungen und der Programmierschnittstelle (API) mit SSL gesichert, dein Passwort wird mit einem starken Einwegalgorithmus gehasht. Du kannst Zwei-Faktor-Authentifizierung aktivieren, um den Zugriff auf dein Konto zusätzlich abzusichern.

      - -
      - -

      Was ist unsere Datenspeicherungsrichtlinie?

      - -

      Wir werden mit bestem Wissen und Gewissen:

      - -
        -
      • Serverprotokolle, die IP-Adressen von allen deinen Anfragen an diesen Server, falls solche Protokolle behalten werden, für nicht mehr als 90 Tage behalten.
      • -
      • registrierten Benutzer zugeordnete IP-Adressen nicht länger als 12 Monate behalten.
      • -
      - -

      Du kannst ein Archiv deines Inhalts anfordern und herunterladen, inkludierend deiner Beiträge, Medienanhänge, Profilbilder und Headerbilder.

      - -

      Es ist in den meisten Fällen möglich dein Konto jederzeit eigenmächtig unwiderruflich zu löschen.

      - -
      - -

      Verwenden wir Cookies?

      - -

      Ja. Cookies sind kleine Dateien, die eine Webseite oder ihr Serviceanbieter über deinen Webbrowser (sofern er es erlaubt) auf die Festplatte deines Computers überträgt. Diese Cookies ermöglichen es der Seite deinen Browser wiederzuerkennen und, sofern du ein registriertes Konto hast, diesen mit deinem registrierten Konto zu verknüpfen.

      - -

      Wir verwenden Cookies, um deine Einstellungen zu verstehen und für zukünftige Besuche zu speichern.

      - -
      - -

      Offenbaren wir Informationen an Dritte?

      - -

      Wir verkaufen nicht, handeln nicht mit oder übertragen deine persönlich identifizierbaren Informationen nicht an Dritte. Dies beinhaltet nicht Dritte, die vertrauenswürdig sind und uns beim Betreiben unserer Seite, Leiten unseres Geschäftes oder dabei, die Dienste für dich bereitzustellen, unterstützen, sofern diese Dritte zustimmen, diese Informationen vertraulich zu halten. Wir können auch Informationen freigeben, wenn wir glauben, dass Freigabe angemessen ist, um dem Gesetz zu entsprechen, unsere Seitenrichtlinien durchzusetzen oder unsere Rechte, Eigentum und/oder Sicherheit oder die anderer zu beschützen.

      - -

      Dein öffentlicher Inhalt kann durch andere Server im Netzwerk heruntergeladen werden. Deine öffentlichen und "Nur Folgende"-Beiträge werden an die Server ausgeliefert, bei denen sich deine Folgenden befinden und direkte Nachrichten werden an die Server des Empfängers ausgeliefert, falls diese Folgenden oder Empfänger sich auf einem anderen Server als diesen befinden.

      - -

      Wenn du eine Anwendung autorisierst, dein Konto zu benutzen, kann diese – abhängig von den von dir genehmigten Befugnissen – auf deine öffentlichen Profilinformationen, deine Folgt- und Folgende-Liste, deine Listen, alle deine Beiträge und deine Favoriten zugreifen. Anwendungen können nie auf deine E-Mail-Adresse oder dein Passwort zugreifen

      - -
      - -

      Webseitenbenutzung durch Kinder

      - -

      Wenn sich dieser Server in der EU oder im Europäischen Wirtschaftsraum befindet: Unsere Website, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 16 Jahre als sind. Wenn du unter 16 bist, darfst du nach den Bestimmungen der DSGVO (Datenschutz-Grundverordnung) diese Webseite nicht benutzen.

      - -

      Wenn sich dieser Server in den USA befindet: Unsere Webseite, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, darfst du nach den Bestimmungen des COPPA (Children's Online Privacy Protection Act, dt. "Gesetz zum Schutz der Privatsphäre von Kindern im Internet") diese Webseite nicht benutzen.

      - -

      Gesetzesvorschriften können unterschiedlich sein, wenn sich dieser Server in anderer Gerichtsbarkeit befindet.

      - -
      - -

      Änderung an unserer Datenschutzerklärung

      - -

      Wenn wir uns entscheiden, Änderungen an unserer Datenschutzerklärung vorzunehmen, werden wir diese Änderungen auf dieser Seite bekannt gegeben.

      - -

      Dies ist eine Übersetzung, Irrtümer und Übersetzungsfehler vorbehalten. Im Zweifelsfall gilt die englische Originalversion.

      - -

      Dieses Dokument ist CC-BY-SA. Es wurde zuletzt aktualisiert am 7. März 2018.

      - -

      Ursprünglich übernommen von der Discourse-Datenschutzerklärung.

      - title: "%{instance} Nutzungsbedingungen und Datenschutzerklärung" themes: contrast: Mastodon (Hoher Kontrast) default: Mastodon (Dunkel) @@ -1621,15 +1539,15 @@ de: two_factor_authentication: add: Hinzufügen disable: Deaktivieren - disabled_success: Zwei-Faktor-Authentifizierung erfolgreich deaktiviert + disabled_success: Zwei-Faktor-Authentisierung (2FA) erfolgreich deaktiviert edit: Bearbeiten - enabled: Zwei-Faktor-Authentisierung ist aktiviert - enabled_success: Zwei-Faktor-Authentisierung erfolgreich aktiviert - generate_recovery_codes: Wiederherstellungscodes generieren - lost_recovery_codes: Wiederherstellungscodes erlauben dir, wieder den Zugang zu deinem Konto zu erlangen, falls du dein Telefon verlieren solltest. Wenn du deine Wiederherstellungscodes verloren hast, kannst du sie hier neu generieren. Deine alten Wiederherstellungscodes werden damit ungültig gemacht. - methods: Zwei-Faktor-Methoden + enabled: Zwei-Faktor-Authentisierung (2FA) ist aktiviert + enabled_success: Zwei-Faktor-Authentisierung (2FA) erfolgreich aktiviert + generate_recovery_codes: Wiederherstellungscodes erstellen + lost_recovery_codes: Wiederherstellungscodes erlauben es dir, wieder Zugang zu deinem Konto zu erlangen, falls du keinen Zugriff mehr auf die Zwei-Faktor-Authentisierung (2FA) oder den Sicherheitsschlüssel hast. Solltest Du diese Wiederherstellungscodes verloren haben, kannst du sie hier neu generieren. Deine alten, bereits erstellten Wiederherstellungscodes werden dadurch ungültig. + methods: Methoden der Zwei-Faktor-Authentisierung (2FA) otp: Authentifizierungs-App - recovery_codes: Wiederherstellungs-Codes sichern + recovery_codes: Wiederherstellungscodes sichern recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu generiert recovery_instructions_html: Wenn du den Zugang zu deinem Telefon verlieren solltest, kannst du einen untenstehenden Wiederherstellungscode benutzen, um wieder auf dein Konto zugreifen zu können. Bewahre die Wiederherstellungscodes gut auf. Du könntest sie beispielsweise ausdrucken und bei deinen restlichen wichtigen Dokumenten aufbewahren. webauthn: Sicherheitsschlüssel @@ -1645,13 +1563,13 @@ de: title: Einspruch abgelehnt backup_ready: explanation: Du hast ein vollständiges Backup von deinem Mastodon-Konto angefragt. Es kann jetzt heruntergeladen werden! - subject: Dein Archiv ist bereit zum Download + subject: Dein persönliches Archiv ist bereit zum Download title: Archiv-Download suspicious_sign_in: change_password: dein Passwort zu ändern details: 'Hier sind die Details des Versuchs:' explanation: Wir haben eine Anmeldung zu deinem Konto von einer neuen IP-Adresse festgestellt. - further_actions_html: Wenn du das nicht warst, empfehlen wir dir, %{action} und die Zwei-Faktor-Authentifizierung zu aktivieren, um dein Konto sicher zu halten. + further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung (2FA) für deinen Account zu aktivieren, um dein Konto abzusichern. subject: Es wurde auf dein Konto von einer neuen IP-Adresse zugegriffen title: Eine neue Anmeldung warning: @@ -1659,52 +1577,45 @@ de: appeal_description: Wenn du glaubst, dass es sich um einen Fehler handelt, kannst du einen Einspruch an die Administration von %{instance} senden. categories: spam: Spam - violation: Inhalt verletzt die folgenden Community-Richtlinien + violation: Inhalt verstößt gegen die folgenden Community-Richtlinien explanation: delete_statuses: Einige deiner Beiträge wurden als Verstoß gegen eine oder mehrere Communityrichtlinien erkannt und von den Moderator_innen von %{instance} entfernt. disable: Du kannst dein Konto nicht mehr verwenden, aber dein Profil und andere Daten bleiben unversehrt. Du kannst ein Backup deiner Daten anfordern, die Kontoeinstellungen ändern oder dein Konto löschen. - mark_statuses_as_sensitive: Einige deiner Beiträge wurden von den Moderator_innen von %{instance} als NSFW markiert. Das bedeutet, dass die Nutzer die Medien in den Beiträgen antippen müssen, bevor eine Vorschau angezeigt wird. Du kannst Medien in Zukunft als NSFW markieren, wenn du Beiträge verfasst. + mark_statuses_as_sensitive: Ein oder mehrere Deiner Beiträge wurden von den Moderator*innen der Instanz %{instance} mit einer Inhaltswarnung (NSFW) versehen. Das bedeutet, dass Besucher*innen diese Medien in den Beiträgen zunächst antippen müssen, um die Vorschau anzuzeigen. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen. sensitive: Von nun an werden alle deine hochgeladenen Mediendateien als sensibel markiert und hinter einer Warnung versteckt. - silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen. - suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um ein Backup deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst. + silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen, und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen. + suspend: Du kannst dein Konto nicht mehr verwenden, und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um ein Backup deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst. reason: 'Grund:' statuses: 'Zitierte Beiträge:' subject: delete_statuses: Deine Beiträge auf %{acct} wurden entfernt disable: Dein Konto %{acct} wurde eingefroren - mark_statuses_as_sensitive: Deine Beiträge auf %{acct} wurden als NSFW markiert + mark_statuses_as_sensitive: Die Beiträge deines Profils %{acct} wurden mit einer Inhaltswarnung (NSFW) versehen none: Warnung für %{acct} - sensitive: Deine Beiträge auf %{acct} werden von nun an als NSFW markiert + sensitive: Die Beiträge deines Profils %{acct} werden künftig mit einer Inhaltswarnung (NSFW) versehen silence: Dein Konto %{acct} wurde limitiert suspend: Dein Konto %{acct} wurde gesperrt title: delete_statuses: Beiträge entfernt disable: Konto eingefroren - mark_statuses_as_sensitive: Als NSFW markierte Beiträge + mark_statuses_as_sensitive: Mit einer Inhaltswarnung (NSFW) versehene Beiträge none: Warnung - sensitive: Als NSFW markiertes Konto + sensitive: Profil mit einer Inhaltswarnung (NSFW) versehen silence: Konto limitiert suspend: Konto gesperrt welcome: - edit_profile_action: Profil einstellen - edit_profile_step: Du kannst dein Profil anpassen, indem du einen Avatar oder ein Titelbild hochlädst oder deinen Anzeigenamen änderst und mehr. Wenn du deine Folgenden vorher überprüfen möchtest, bevor sie dir folgen können, dann kannst du dein Profil sperren. + edit_profile_action: Profil einrichten + edit_profile_step: Du kannst dein Profil anpassen, indem du einen Avatar oder ein Titelbild hochlädst, deinen Anzeigenamen änderst und viel mehr. Du kannst optional einstellen, ob du Accounts, die dir folgen wollen, akzeptieren musst, bevor sie dies können. explanation: Hier sind ein paar Tipps, um loszulegen final_action: Fang an zu posten - final_step: 'Fang an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel auf der lokalen Zeitleiste oder in Hashtags. Vielleicht möchtest du dich vorstellen mit dem #introductions-Hashtag.' + final_step: 'Fang jetzt an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel in der lokalen Timeline oder über die Hashtags. Möglicherweise möchtest du dich allen mit dem Hashtag #neuhier vorstellen.' full_handle: Dein vollständiger Benutzername - full_handle_hint: Dies ist was du deinen Freunden sagen kannst, damit sie dich anschreiben oder von einem anderen Server folgen können. - review_preferences_action: Einstellungen ändern - review_preferences_step: Stelle sicher, dass du deine Einstellungen einstellst, wie zum Beispiel welche E-Mails du gerne erhalten möchtest oder was für Privatsphäreneinstellungen voreingestellt werden sollten. Wenn dir beim Ansehen von GIFs nicht schwindelig wird, dann kannst du auch das automatische Abspielen dieser aktivieren. + full_handle_hint: Dies ist, was du deinen Freunden sagen kannst, damit sie dich anschreiben oder dir von einem anderen Server folgen können. subject: Willkommen bei Mastodon - tip_federated_timeline: Die föderierte Zeitleiste ist die sehr große Ansicht vom Mastodon-Netzwerk. Sie enthält aber auch nur Leute, denen du und deine Nachbarn folgen, sie ist also nicht komplett. - tip_following: Du folgst standardmäßig deinen Server-Admin(s). Um mehr interessante Leute zu finden, kannst du die lokale oder öffentliche Zeitleiste durchsuchen. - tip_local_timeline: Die lokale Zeitleiste ist eine Ansicht aller Leute auf %{instance}. Diese sind deine Nachbarn! - tip_mobile_webapp: Wenn dein mobiler Browser dir anbietet Mastodon zu deinem Startbildschirm hinzuzufügen, dann kannst du Benachrichtigungen erhalten. Es verhält sich wie eine native App in vielen Wegen! - tips: Tipps title: Willkommen an Bord, %{name}! users: follow_limit_reached: Du kannst nicht mehr als %{limit} Leuten folgen - invalid_otp_token: Ungültiger Zwei-Faktor-Authentisierungs-Code + invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung (2FA) otp_lost_help_html: Wenn Du beides nicht mehr weißt, melde Dich bei uns unter der E-Mailadresse %{email} seamless_external_login: Du bist angemeldet über einen Drittanbieter-Dienst, weswegen Passwort- und E-Maileinstellungen nicht verfügbar sind. signed_in_as: 'Angemeldet als:' @@ -1726,5 +1637,5 @@ de: nickname_hint: Gib den Spitznamen deines neuen Sicherheitsschlüssels ein not_enabled: Du hast WebAuthn noch nicht aktiviert not_supported: Dieser Browser unterstützt keine Sicherheitsschlüssel - otp_required: Um Sicherheitsschlüssel zu verwenden, aktiviere zuerst die Zwei-Faktor-Authentifizierung. + otp_required: Um Sicherheitsschlüssel zu verwenden, aktiviere zunächst die Zwei-Faktor-Authentisierung (2FA). registered_on: Registriert am %{date} diff --git a/config/locales/devise.ast.yml b/config/locales/devise.ast.yml index 687c8e7b2d78eb..a0bebf98d521bb 100644 --- a/config/locales/devise.ast.yml +++ b/config/locales/devise.ast.yml @@ -6,17 +6,18 @@ ast: send_instructions: Nunos minutos, vas recibir un corréu coles instrucciones pa cómo confirmar la direición de corréu. Comprueba la carpeta Puxarra si nun lu recibiesti. send_paranoid_instructions: Si la direición de corréu esiste na nuesa base de datos, nunos minutos vas recibir un corréu coles instrucciones pa cómo confirmala. Comprueba la carpeta Puxarra si nun lu recibiesti. failure: - already_authenticated: Yá aniciesti sesión. + already_authenticated: Xá aniciesti la sesión. inactive: Entá nun s'activó la cuenta. last_attempt: Tienes un intentu más enantes de bloquiar la cuenta. locked: La cuenta ta bloquiada. - pending: La cuenta ta entá en revisión. - timeout: La sesión caducó. Volvi aniciar sesión pa siguir. - unauthenticated: Precises aniciar sesión o rexistrate enantes de siguir. + pending: La cuenta sigue en revisión. + timeout: La sesión caducó. Volvi aniciala pa siguir. + unauthenticated: Tienes d'aniciar la sesión o rexistrate enantes de siguir. unconfirmed: Tienes de confirmar la direición de corréu electrónicu enantes de siguir. mailer: confirmation_instructions: explanation: Creesti una cuenta en %{host} con esta direición de corréu. Tas a un calcu d'activala. Si nun fuisti tu, inora esti corréu. + extra_html: Revisa tamién les regles del sirvidor y los nuesos términos del serviciu. email_changed: explanation: 'La direición de corréu de la cuenta camudó a:' subject: 'Mastodón: Camudó la direición de corréu' @@ -30,9 +31,9 @@ ast: extra: Si nun solicitesti esto, inora esti corréu. La contraseña nun va camudar hasta que nun accedas al enllaz d'enriba y crees una nueva. subject: 'Mastodon: Instrucciones pa reafitar la contraseña' two_factor_disabled: - subject: 'Mastodon: Desactivóse l''autenticación en dos pasos' + subject: 'Mastodon: desactivóse l''autenticación en dos pasos' two_factor_enabled: - subject: 'Mastodon: Activóse l''autenticación en dos pasos' + subject: 'Mastodon: activóse l''autenticación en dos pasos' two_factor_recovery_codes_changed: subject: 'Mastodon: Rexeneráronse los códigos de l''autenticación en dos pasos' unlock_instructions: @@ -43,16 +44,18 @@ ast: updated_not_active: La contraseña camudó con correutamente. registrations: signed_up: "¡Afáyate! Rexistréstite correutamente." - signed_up_but_inactive: Rexistréstite correutamente. Por embargu, nun se pudo aniciar la sesión porque la to cuenta entá nun s'activó. - signed_up_but_locked: Rexistréstite correutamente. Por embargu, nun se pudo aniciar la sesión porque la to cuenta ta bloquiada. + signed_up_but_inactive: Rexistréstite correutamente. Por embargu, nun se pudo aniciar la sesión porque la cuenta entá nun s'activó. + signed_up_but_locked: Rexistréstite correutamente. Por embargu, nun se pudo aniciar la sesión porque la cuenta ta bloquiada. signed_up_but_unconfirmed: Unvióse un mensaxe de confirmación a la direición de corréu. Sigui l'enllaz p'activar la cuenta. Comprueba la carpeta Puxarra si nun recibiesti esti corréu. updated: La cuenta anovóse correutamente. sessions: - signed_in: Aniciesti sesión correutamente. + already_signed_out: Zarresti la sesión correutamente. + signed_in: Aniciesti la sesión correutamente. + signed_out: Zarresti la sesión correutamente. unlocks: send_instructions: Nunos minutos vas recibir un corréu coles instrucciones pa cómo desbloquiar la cuenta. Comprueba la carpeta Puxarra si nun lu recibiesti. send_paranoid_instructions: Si esiste la cuenta, nun momentu vas recibir un corréu coles instrucciones pa cómo desbloquiala. Comprueba la carpeta Puxarra si nun recibiesti esti corréu. - unlocked: La cuenta desbloquióse correutamente. Anicia sesión pa siguir. + unlocked: La cuenta desbloquióse correutamente. Anicia la sesión pa siguir. errors: messages: already_confirmed: yá se confirmó, volvi aniciar sesión diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml index c3773bcae7c02e..515afa037aeb64 100644 --- a/config/locales/devise.bg.yml +++ b/config/locales/devise.bg.yml @@ -2,20 +2,20 @@ bg: devise: confirmations: - confirmed: Твоят профил беше успешно потвърден. Влизането в профила е успешно. - send_instructions: Ще получиш писмо с инструкции как да потвърдиш своя профил до няколко минути. - send_paranoid_instructions: Ако твоят имейл адрес съществува в базата ни, ще получиш там инструкции как да потвърдиш своя профил. + confirmed: Вашият адрес на имейл беше успешно потвърден. + send_instructions: Ще получите е-писмо с указания как да потвърдите адреса на имейла си за няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. + send_paranoid_instructions: Ако адресът на имейл ви съществува в базата ни данни, ще получите е-писмо с указания как да потвърдите адреса на имейла си за няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. failure: already_authenticated: Вече си вътре в профила си. - inactive: Профилът ти все още не е активиран. - invalid: Невалиден %{authentication_keys}. - last_attempt: Разполагаш с още един опит преди профилът ти да бъде заключен. - locked: Профилът ти е заключен. - not_found_in_database: Невалиден %{authentication_keys}. + inactive: Акаунтът ви още не е задействан. + invalid: Невалиден %{authentication_keys} или парола. + last_attempt: Разполагате с още един опит преди акаунтът ви да се заключи. + locked: Вашият акаунт е заключен. + not_found_in_database: Невалиден %{authentication_keys} или парола. pending: Вашият акаунт все още е в процес на проверка. - timeout: Сесията ти изтече, моля влез отново, за да продължиш. - unauthenticated: Преди да продължиш, трябва да влезеш в профила си или да се регистрираш. - unconfirmed: Преди да продължиш, трябва да потвърдиш регистрацията си. + timeout: Сесията ви изтече. Влезте пак, за да продължите. + unauthenticated: Преди да продължите, трябва да влезете или да се регистрирате. + unconfirmed: Преди да продължите, трябва да потвърдиш адреса на имейла си. mailer: confirmation_instructions: action: Потвърдете имейл адреса @@ -23,8 +23,8 @@ bg: explanation: Създали сте акаунт на %{host} с този имейл адрес. Само на едно щракване разстояние сте от активирането му. Ако това не сте били вие, моля, игнорирайте този имейл. explanation_when_pending: Кандидатствахте за покана до %{host} с този имейл адрес. След като потвърдите своя имейл адрес, ние ще разгледаме вашето заявление. Можете да влезете, за да промените данните си или да изтриете акаунта си, но нямате достъп до повечето функции, докато акаунтът ви не бъде одобрен. Ако вашето заявление бъде отхвърлено, вашите данни ще бъдат премахнати, така че няма да се изискват допълнителни действия от вас. Ако това не сте били вие, моля, игнорирайте този имейл. extra_html: Моля, проверете правилата на сървъра и нашите условия за обслужване. - subject: 'Mastodon: Инструкции за потвърждаване %{instance}' - title: Потвърдете имейл адреса + subject: 'Mastodon: Указания за потвърждаване за %{instance}' + title: Потвърдете адреса на имейла email_changed: explanation: 'Имейл адресът на вашия акаунт се променя на:' extra: Ако не сте сменили имейла си, вероятно някой е получил достъп до вашия акаунт. Моля, сменете паролата си незабавно или се свържете с администратора на сървъра, ако сте блокирани от акаунта си. @@ -39,27 +39,27 @@ bg: explanation: Потвърдете новия адрес, за да промените имейла си. extra: Ако тази промяна не е инициирана от вас, моля, игнорирайте този имейл. Имейл адресът за акаунта на Mastodon няма да се промени, докато не влезете във връзката по-горе. subject: 'Mastodon: Потвърдете имейла за %{instance}' - title: Потвърдете имейл адреса + title: Потвърдете адреса на имейла reset_password_instructions: action: Промяна на парола - explanation: Поискахте нова парола за вашия акаунт. + explanation: Поискахте нова парола за акаунта си. extra: Ако не сте поискали това, моля, игнорирайте този имейл. Паролата ви няма да се промени, докато не влезете във връзката по-горе и не създадете нова. - subject: Инструкции за смяна на паролата + subject: 'Mastodon: Указания за задаване на нова парола' title: Нулиране на парола two_factor_disabled: explanation: Двуфакторното удостоверяване за вашия акаунт е деактивирано. Влизането вече е възможно, като се използват само имейл адрес и парола. subject: 'Mastodon: Двуфакторното удостоверяване е деактивирано' - title: 2FA деактивирано + title: Двуфакторното изключено two_factor_enabled: explanation: За вашия акаунт е активирано двуфакторно удостоверяване. За влизане ще е необходим ключ, генериран от сдвоеното приложение TOTP. subject: 'Mastodon: Двуфакторното удостоверяване е активирано' - title: 2FA активирано + title: Двуфакторно удостоверяване включено two_factor_recovery_codes_changed: explanation: Предишните кодове за възстановяване са обезсилени и се генерират нови. subject: 'Mastodon: Възстановени са двуфакторни кодове за възстановяване' title: 2FA кодове за възстановяване са променени unlock_instructions: - subject: Инструкции за отключване + subject: 'Mastodon: указания за отключване' webauthn_credential: added: explanation: Следният ключ за сигурност е добавен към вашия акаунт @@ -87,8 +87,8 @@ bg: updated: Паролата ти беше променена успешно. Влизането в профила е успешно. updated_not_active: Паролата ти беше променена успешно. registrations: - destroyed: Довиждане! Твоят профил беше успешно изтрит. Надяваме се скоро да те видим отново. - signed_up: Привет! Регистрирацията ти е успешна. + destroyed: Довиждане! Вашият акаунт беше успешно изтрит. Надяваме се скоро да ви видим пак. + signed_up: Добре дошли! Успешно се регистрирахте. signed_up_but_inactive: Регистрирацията ти е успешна. Въпреки това, не можеш да влезеш в профила си, защото той все още не е потвърден. signed_up_but_locked: Регистрирацията ти е успешна. Въпреки това, не можеш да влезеш в профила си, защото той е заключен. signed_up_but_pending: На вашия имейл адрес е изпратено съобщение с връзка за потвърждение. След като щракнете върху връзката, ние ще прегледаме вашето заявление. Ще бъдете уведомени, ако то е одобрено. diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index 0512ca12956dbc..680b5833096a73 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -20,30 +20,30 @@ de: confirmation_instructions: action: E-Mail-Adresse verifizieren action_with_app: Bestätigen und zu %{app} zurückkehren - explanation: Du hast einen Account auf %{host} mit dieser E-Mail-Adresse erstellt. Du bist nur noch einen Klick weit von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. - explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst kannst du diese E-Mail ignorieren. + explanation: Du hast auf %{host} mit dieser E-Mail-Adresse ein Konto erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. + explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen. subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}' - title: Verifiziere E-Mail-Adresse + title: E-Mail-Adresse verifizieren email_changed: explanation: 'Die E-Mail-Adresse deines Accounts wird geändert zu:' - extra: Wenn du deine E-Mail-Adresse nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast. + extra: Wenn du deine E-Mail-Adresse nicht geändert hast, dann wird es vermutlich so sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast. subject: 'Mastodon: E-Mail-Adresse geändert' title: Neue E-Mail-Adresse password_change: explanation: Das Passwort für deinen Account wurde geändert. - extra: Wenn du dein Passwort nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast. + extra: Wenn du dein Passwort nicht geändert hast, dann wird es vermutlich so sein, dass jemand Zugriff auf deinem Account erlangt hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast. subject: 'Mastodon: Passwort geändert' title: Passwort geändert reconfirmation_instructions: explanation: Bestätige deine neue E-Mail-Adresse, um sie zu ändern. extra: Wenn diese Änderung nicht von dir ausgeführt wurde, dann solltest du diese E-Mail ignorieren. Die E-Mail-Adresse für deinen Mastodon-Account wird sich nicht ändern, bis du den obigen Link anklickst. subject: 'Mastodon: Bestätige E-Mail-Adresse für %{instance}' - title: Verifiziere E-Mail-Adresse + title: E-Mail-Adresse verifizieren reset_password_instructions: action: Ändere Passwort explanation: Du hast ein neues Passwort für deinen Account angefragt. - extra: Wenn du diese Anfrage nicht gestellt hast, solltest du diese E-Mail ignorieren. Dein Passwort wird sich nicht ändern solange du den obigen Link anklickst und ein neues erstellst. + extra: Wenn du diese Anfrage nicht gestellt hast, solltest du diese E-Mail ignorieren. Dein Passwort wird sich nicht ändern, solange du den obigen Link anklickst und ein neues erstellst. subject: 'Mastodon: Passwort zurücksetzen' title: Passwort zurücksetzen two_factor_disabled: @@ -51,7 +51,7 @@ de: subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung deaktiviert' title: 2FA deaktiviert two_factor_enabled: - explanation: Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Ein Token, der von der gepaarten TOTP-App generiert wird, wird für den Login benötigt. + explanation: Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Ein Token, das von der verbundenen TOTP-App generiert wird, wird für den Login benötigt. subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung aktiviert' title: 2FA aktiviert two_factor_recovery_codes_changed: @@ -78,7 +78,7 @@ de: subject: 'Mastodon: Authentifizierung mit Sicherheitsschlüssel aktiviert' title: Sicherheitsschlüssel aktiviert omniauth_callbacks: - failure: Du konntest nicht mit deinem %{kind}-Konto angemeldet werden, weil »%{reason}«. + failure: Du konntest nicht mit deinem %{kind}-Konto angemeldet werden, weil „%{reason}“. success: Du hast dich erfolgreich mit deinem %{kind}-Konto angemeldet. passwords: no_token: Du kannst diese Seite nur über den Link aus der E-Mail zum Passwort-Zurücksetzen aufrufen. Wenn du einen solchen Link aufgerufen hast, stelle bitte sicher, dass du die vollständige Adresse aufrufst. @@ -91,8 +91,8 @@ de: signed_up: Willkommen! Du hast dich erfolgreich registriert. signed_up_but_inactive: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto inaktiv ist. signed_up_but_locked: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto gesperrt ist. - signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast werden wir deine Anfrage überprüfen. Du wirst benachrichtigt falls die Anfrage angenommen wurde. - signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin ist erklärt, wie du dein Konto freischalten kannst. + signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast, werden wir deine Anfrage überprüfen. Du wirst benachrichtigt werden, falls die Anfrage angenommen wurde. + signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin wird erklärt, wie du dein Konto freischalten kannst. update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhältst in wenigen Minuten eine E-Mail. Darin ist erklärt, wie du die Änderung deiner E-Mail-Adresse abschließen kannst. updated: Deine Daten wurden aktualisiert. sessions: @@ -112,4 +112,4 @@ de: not_locked: ist nicht gesperrt not_saved: one: '1 Fehler hat verhindert, dass %{resource} gespeichert wurde:' - other: "%{count} Fehler verhinderten, dass %{resource} gespeichert wurde:" + other: "%{count} Fehler haben verhindert, dass %{resource} gespeichert wurde:" diff --git a/config/locales/devise.en-GB.yml b/config/locales/devise.en-GB.yml new file mode 100644 index 00000000000000..9a51d075763541 --- /dev/null +++ b/config/locales/devise.en-GB.yml @@ -0,0 +1,115 @@ +--- +en-GB: + devise: + confirmations: + confirmed: Your email address has been successfully confirmed. + send_instructions: You will receive an email with instructions for how to confirm your email address in a few minutes. Please check your spam folder if you didn't receive this email. + send_paranoid_instructions: If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes. Please check your spam folder if you didn't receive this email. + failure: + already_authenticated: You are already signed in. + inactive: Your account is not activated yet. + invalid: Invalid %{authentication_keys} or password. + last_attempt: You have one more attempt before your account is locked. + locked: Your account is locked. + not_found_in_database: Invalid %{authentication_keys} or password. + pending: Your account is still under review. + timeout: Your session expired. Please sign in again to continue. + unauthenticated: You need to sign in or sign up before continuing. + unconfirmed: You have to confirm your email address before continuing. + mailer: + confirmation_instructions: + action: Verify email address + action_with_app: Confirm and return to %{app} + explanation: You have created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email. + explanation_when_pending: You applied for an invite to %{host} with this email address. Once you confirm your e-mail address, we will review your application. You can login to change your details or delete your account, but you cannot access most of the functions until your account is approved. If your application is rejected, your data will be removed, so no further action will be required from you. If this wasn't you, please ignore this email. + extra_html: Please also check out the rules of the server and our terms of service. + subject: 'Mastodon: Confirmation instructions for %{instance}' + title: Verify email address + email_changed: + explanation: 'The email address for your account is being changed to:' + extra: If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account. + subject: 'Mastodon: Email changed' + title: New email address + password_change: + explanation: The password for your account has been changed. + extra: If you did not change your password, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account. + subject: 'Mastodon: Password changed' + title: Password changed + reconfirmation_instructions: + explanation: Confirm the new address to change your email. + extra: If this change wasn't initiated by you, please ignore this email. The email address for the Mastodon account won't change until you access the link above. + subject: 'Mastodon: Confirm email for %{instance}' + title: Verify email address + reset_password_instructions: + action: Change password + explanation: You requested a new password for your account. + extra: If you didn't request this, please ignore this email. Your password won't change until you access the link above and create a new one. + subject: 'Mastodon: Reset password instructions' + title: Password reset + two_factor_disabled: + explanation: Two-factor authentication for your account has been disabled. Login is now possible using only e-mail address and password. + subject: 'Mastodon: Two-factor authentication disabled' + title: 2FA disabled + two_factor_enabled: + explanation: Two-factor authentication has been enabled for your account. A token generated by the paired TOTP app will be required for login. + subject: 'Mastodon: Two-factor authentication enabled' + title: 2FA enabled + two_factor_recovery_codes_changed: + explanation: The previous recovery codes have been invalidated and new ones generated. + subject: 'Mastodon: Two-factor recovery codes re-generated' + title: 2FA recovery codes changed + unlock_instructions: + subject: 'Mastodon: Unlock instructions' + webauthn_credential: + added: + explanation: The following security key has been added to your account + subject: 'Mastodon: New security key' + title: A new security key has been added + deleted: + explanation: The following security key has been deleted from your account + subject: 'Mastodon: Security key deleted' + title: One of your security keys has been deleted + webauthn_disabled: + explanation: Authentication with security keys has been disabled for your account. Login is now possible using only the token generated by the paired TOTP app. + subject: 'Mastodon: Authentication with security keys disabled' + title: Security keys disabled + webauthn_enabled: + explanation: Security key authentication has been enabled for your account. Your security key can now be used for login. + subject: 'Mastodon: Security key authentication enabled' + title: Security keys enabled + omniauth_callbacks: + failure: Could not authenticate you from %{kind} because “%{reason}”. + success: Successfully authenticated from %{kind} account. + passwords: + no_token: You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided. + send_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. Please check your spam folder if you didn't receive this email. + send_paranoid_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. Please check your spam folder if you didn't receive this email. + updated: Your password has been changed successfully. You are now signed in. + updated_not_active: Your password has been changed successfully. + registrations: + destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon. + signed_up: Welcome! You have signed up successfully. + signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated. + signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked. + signed_up_but_pending: A message with a confirmation link has been sent to your email address. After you click the link, we will review your application. You will be notified if it is approved. + signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. Please check your spam folder if you didn't receive this email. + update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. Please check your spam folder if you didn't receive this email. + updated: Your account has been updated successfully. + sessions: + already_signed_out: Signed out successfully. + signed_in: Signed in successfully. + signed_out: Signed out successfully. + unlocks: + send_instructions: You will receive an email with instructions for how to unlock your account in a few minutes. Please check your spam folder if you didn't receive this email. + send_paranoid_instructions: If your account exists, you will receive an email with instructions for how to unlock it in a few minutes. Please check your spam folder if you didn't receive this email. + unlocked: Your account has been unlocked successfully. Please sign in to continue. + errors: + messages: + already_confirmed: was already confirmed, please try signing in + confirmation_period_expired: needs to be confirmed within %{period}, please request a new one + expired: has expired, please request a new one + not_found: not found + not_locked: was not locked + not_saved: + one: '1 error prohibited this %{resource} from being saved:' + other: "%{count} errors prohibited this %{resource} from being saved:" diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml index 1b7fbd198bad42..07a115cc7d33a0 100644 --- a/config/locales/devise.eo.yml +++ b/config/locales/devise.eo.yml @@ -6,7 +6,7 @@ eo: send_instructions: Vi ricevos retmesaĝon kun instrukcioj por konfirmi vian retadreson ene de kelkaj minutoj. Bonvolu kontroli vian spamujon se vi ne ricevis ĉi tiun retmesaĝon. send_paranoid_instructions: Se via retadreso ekzistas en nia datumbazo, vi ricevos retmesaĝon kun instrukcioj por konfirmi vian retadreson ene de kelkaj minutoj. Bonvolu kontroli vian spamujon se vi ne ricevis ĉi tiun retmesaĝon. failure: - already_authenticated: Vi jam salutis. + already_authenticated: Vi jam ensalutis. inactive: Via konto ankoraŭ ne estas konfirmita. invalid: Nevalida %{authentication_keys} aŭ pasvorto. last_attempt: Vi ankoraŭ povas provi unufoje antaŭ ol via konto estos ŝlosita. @@ -24,11 +24,11 @@ eo: explanation_when_pending: Vi petis inviton al %{host} per ĉi tiu retpoŝta adreso. Kiam vi konfirmas vian retpoŝtan adreson, ni revizios vian kandidatiĝon. Vi ne povas ensaluti ĝis tiam. Se via kandidatiĝo estas rifuzita, viaj datumoj estos forigitaj, do neniu alia ago estos postulita de vi. Se tio ne estis vi, bonvolu ignori ĉi tiun retpoŝton. extra_html: Bonvolu rigardi la regulojn de la servilo kaj niajn uzkondiĉojn. subject: 'Mastodon: Konfirmaj instrukcioj por %{instance}' - title: Konfirmi retadreson + title: Konfirmi retpoŝton email_changed: - explanation: 'La retadreso de via konto ŝanĝiĝas al:' + explanation: 'La retpoŝtadreso de via konto ŝanĝiĝas al:' extra: Se vi ne volis ŝanĝi vian retadreson, iu verŝajne aliris al via konto. Bonvolu tuj ŝanĝi vian pasvorton aŭ kontakti la administranton de la servilo, se vi estas blokita ekster via konto. - subject: 'Mastodon: Retadreso ŝanĝita' + subject: 'Mastodon: Retpoŝton ŝanĝiĝis' title: Nova retadreso password_change: explanation: La pasvorto de via konto estis ŝanĝita. @@ -36,10 +36,10 @@ eo: subject: 'Mastodon: Pasvorto ŝanĝita' title: Pasvorto ŝanĝita reconfirmation_instructions: - explanation: Retajpu la novan adreson por ŝanĝi vian retadreson. + explanation: Retajpu la novan adreson por ŝanĝi vian retpoŝtadreson. extra: Se ĉi tiu ŝanĝo ne estis komencita de vi, bonvolu ignori ĉi tiun retmesaĝon. La retadreso por la Mastodon-konto ne ŝanĝiĝos se vi ne aliras la supran ligilon. - subject: 'Mastodon: Konfirmi retadreson por %{instance}' - title: Kontrolu retadreson + subject: 'Mastodon: Konfirmi retpoŝton por %{instance}' + title: Kontrolu retpoŝtadreson reset_password_instructions: action: Ŝanĝi pasvorton explanation: Vi petis novan pasvorton por via konto. @@ -52,8 +52,8 @@ eo: title: la du-etapa aŭtentigo estas malŝaltita two_factor_enabled: explanation: Dufaktora aŭtentigo sukcese ebligita por via akonto. Vi bezonos ĵetonon kreitan per parigitan aplikaĵon por ensaluti. - subject: 'Mastodon: dufaktora aŭtentigo ebligita' - title: la du-etapa aŭtentigo estas ŝaltita + subject: 'Mastodon: Dufaktora aŭtentigo ebligita' + title: 2FA aktivigita two_factor_recovery_codes_changed: explanation: La antaŭaj reakiraj kodoj estis nuligitaj kaj novaj estis generitaj. subject: 'Mastodon: Reakiraj kodoj de dufaktora aŭtentigo rekreitaj' @@ -96,9 +96,9 @@ eo: update_needs_confirmation: Vi sukcese ĝisdatigis vian konton, sed ni bezonas kontroli vian novan retadreson. Bonvolu kontroli viajn retmesaĝojn kaj sekvi la konfirman ligilon por konfirmi vian novan retadreson. Bonvolu kontroli vian spamujon, se vi ne ricevis ĉi tiun retmesaĝon. updated: Via konto estis sukcese ĝisdatigita. sessions: - already_signed_out: Sukcese adiaŭis. - signed_in: Sukcese salutis. - signed_out: Sukcese adiaŭis. + already_signed_out: Sukcese elsalutis. + signed_in: Sukcese ensalutis. + signed_out: Sukcese elsalutis. unlocks: send_instructions: Vi ricevos retmesaĝon kun instrukcioj por malŝlosi vian konton ene de kelkaj minutoj. Bonvolu kontroli vian spamujon, se vi ne ricevis ĉi tiun retmesaĝon. send_paranoid_instructions: Se via konto ekzistas, vi ricevos retmesaĝon kun instrukcioj por malŝlosi ĝin ene de kelkaj minutoj. Bonvolu kontroli vian spamujon se vi ne ricevis ĉi tiun retmesaĝon. diff --git a/config/locales/devise.fa.yml b/config/locales/devise.fa.yml index c13df99892f16a..bb71347315e1b0 100644 --- a/config/locales/devise.fa.yml +++ b/config/locales/devise.fa.yml @@ -38,7 +38,7 @@ fa: reconfirmation_instructions: explanation: نشانی تازه را تأیید کنید تا ایمیل‌تان عوض شود. extra: اگر شما باعث این تغییر نبودید، لطفاً این ایمیل را نادیده بگیرید. تا زمانی که شما پیوند بالا را باز نکنید، نشانی ایمیل مربوط به حساب شما عوض نخواهد شد. - subject: 'ماستدون: تأیید ایمیل برای %{instance}' + subject: 'ماستودون: تأیید رایانامه برای %{instance}' title: تأیید نشانی ایمیل reset_password_instructions: action: تغییر رمز diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml index 7637ae3e16707c..03dce9bcd8a349 100644 --- a/config/locales/devise.fi.yml +++ b/config/locales/devise.fi.yml @@ -111,5 +111,5 @@ fi: not_found: ei löydy not_locked: ei ollut lukittu not_saved: - one: '1 virhe esti kohteen %{resource} tallennuksen:' - other: "%{count} virhettä esti kohteen %{resource} tallennuksen:" + one: 'Yksi virhe esti kohteen %{resource} tallentamisen:' + other: "%{count} virhettä esti kohteen %{resource} tallentamisen:" diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index c4365366288bc5..b5cee9d2a57792 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -2,7 +2,7 @@ fr: devise: confirmations: - confirmed: Votre adresse courriel a été validée. + confirmed: Votre adresse de courriel a été validée. send_instructions: Vous allez recevoir par courriel les instructions nécessaires à la confirmation de votre compte dans quelques minutes. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez bientôt recevoir un courriel contenant les instructions de confirmation de votre compte. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. failure: @@ -96,7 +96,7 @@ fr: update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier de spams. updated: Votre compte a été modifié avec succès. sessions: - already_signed_out: Déconnecté·e. + already_signed_out: Déconnecté·e avec succès. signed_in: Connecté·e. signed_out: Déconnecté·e. unlocks: diff --git a/config/locales/devise.fy.yml b/config/locales/devise.fy.yml new file mode 100644 index 00000000000000..240493636d2feb --- /dev/null +++ b/config/locales/devise.fy.yml @@ -0,0 +1,26 @@ +--- +fy: + devise: + confirmations: + confirmed: Dyn account is befêstige. + send_instructions: Do ûntfangst fia in e-mailberjocht ynstruksjes hoe’tsto dyn account befêstigje kinst. Sjoch yn de map net-winske wannear’t neat ûntfongen waard. + send_paranoid_instructions: As dyn e-mailadres yn de database stiet, ûntfangsto fia in e-mailberjocht ynstruksjes hoe’tsto dyn account befêstigje kinst. Sjoch yn de map net-winske wannear’t neat ûntfongen waard. + failure: + already_authenticated: Do bist al oanmeld. + inactive: Jo account is not net aktivearre. + invalid: "%{authentication_keys} of wachtwurd ûnjildich." + last_attempt: Do hast noch ien besykjen oer eardat dyn account blokkearre wurdt. + locked: Dyn account is blokkearre. + not_found_in_database: "%{authentication_keys} of wachtwurd ûnjildich." + pending: Dyn account moat noch hieltyd beoardiele wurde. + timeout: Dyn sesje is ferrûn, meld dy opnij oan. + unauthenticated: Do moatst oanmelde of registrearje. + unconfirmed: Do moatst earst dyn account befêstigje. + mailer: + confirmation_instructions: + action: E-mailadres ferifiearje + action_with_app: Befêstigje en nei %{app} tebekgean + explanation: Do hast in account op %{host} oanmakke en mei ien klik kinsto dizze aktivearje. Wannear’tsto dit account net oanmakke hast, meisto dit e-mailberjocht negearje. + explanation_when_pending: Do fregest mei dit e-mailadres in útnûging oan foar %{host}. Neidatsto dyn e-mailadres befêstige hast, beoardielje wy dyn oanfraach. Do kinst oant dan noch net oanmelde. Wannear’t dyn oanfraach ôfwêzen wurdt, wurde dyn gegevens fuortsmiten en hoechsto dêrnei fierder neat mear te dwaan. Wannear’tsto dit net wiest, kinsto dit e-mailberjocht negearje. + passwords: + updated_not_active: Jo wachtwurd is mei sukses feroare. diff --git a/config/locales/devise.ga.yml b/config/locales/devise.ga.yml index 20a9da24e96f15..6a8e0ec7524e2c 100644 --- a/config/locales/devise.ga.yml +++ b/config/locales/devise.ga.yml @@ -1 +1,9 @@ +--- ga: + devise: + mailer: + reset_password_instructions: + action: Athraigh pasfhocal + errors: + messages: + not_found: níor aimsíodh é diff --git a/config/locales/devise.gd.yml b/config/locales/devise.gd.yml index 7b0f0a7bcfb6d2..c8a34054cf18e0 100644 --- a/config/locales/devise.gd.yml +++ b/config/locales/devise.gd.yml @@ -92,8 +92,8 @@ gd: signed_up_but_inactive: Tha thu air clàradh leinn. Gidheadh, chan urrainn dhuinn do clàradh a-steach air sgàth ’s nach deach an cunntas agad a ghnìomhachadh fhathast. signed_up_but_locked: Tha thu air clàradh leinn. Gidheadh, chan urrainn dhuinn do clàradh a-steach air sgàth ’s gu bheil an cunntas agad glaiste. signed_up_but_pending: Chaidh teachdaireachd le ceangal dearbhaidh a chur dhan t-seòladh puist-d agad. Nuair a bhios tu air briogadh air a’ cheangal, nì sinn lèirmheas air d’ iarrtas. Leigidh sinn fios dhut ma thèid aontachadh ris. - signed_up_but_unconfirmed: Chaidh teachdaireachd le ceangal dearbhaidh a chur dhan t-seòladh puist-d agad. Lean ris a’ cheangal ud a ghnìomhachadh a’ chunntais agad. Thoir sùil air pasgan an spama agad mura faigh thu am post-d seo. - update_needs_confirmation: Chaidh an cunntas agad ùrachadh ach feumaidh sinn an seòladh puist-d ùr agad a dhearbhadh. Thoir sùil air a’ phost-d agad agus lean ris a’ cheangal dearbhaidh a dhearbhadh an t-seòlaidh puist-d ùir agad. Thoir sùil air pasgan an spama agad mura faigh thu am post-d seo. + signed_up_but_unconfirmed: Chaidh teachdaireachd le ceangal dearbhaidh a chur dhan t-seòladh puist-d agad. Lean air a’ cheangal ud a ghnìomhachadh a’ chunntais agad. Thoir sùil air pasgan an spama agad mura faigh thu am post-d seo. + update_needs_confirmation: Chaidh an cunntas agad ùrachadh ach feumaidh sinn an seòladh puist-d ùr agad a dhearbhadh. Thoir sùil air a’ phost-d agad agus lean air a’ cheangal dearbhaidh a dhearbhadh an t-seòlaidh puist-d ùir agad. Thoir sùil air pasgan an spama agad mura faigh thu am post-d seo. updated: Chaidh an cunntas agad ùrachadh. sessions: already_signed_out: Chaidh do chlàradh a-mach. diff --git a/config/locales/devise.gl.yml b/config/locales/devise.gl.yml index 7ea0229927dbc6..96ebb68c3c5d90 100644 --- a/config/locales/devise.gl.yml +++ b/config/locales/devise.gl.yml @@ -91,7 +91,7 @@ gl: signed_up: Benvido! Rexistrácheste de xeito correcto. signed_up_but_inactive: A túa conta foi rexistada. Porén aínda non está activada. signed_up_but_locked: A túa conta foi rexistada. Porén está bloqueada. - signed_up_but_pending: Unha mensaxe cunha ligazón de confirmación foi enviada ó teu enderezo de email. Após premer na ligazón, revisaremos a túa aplicación. Serás notificado se a túa conta é aprobada. + signed_up_but_pending: Acabamos de enviar unha mensaxe ao teu email cunha ligazón de confirmación. Após premer na ligazón, revisaremos a túa solicitude. Recibirás unha notificación se a túa conta é aprobada. signed_up_but_unconfirmed: Enviouse unha mensaxe cunha ligazón de confirmación ao teu email. Por favor, preme nesa ligazón para activar a túa conta. Comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo. update_needs_confirmation: Actualizaches a túa conta de xeito correcto, pero precisamos verificar o teu novo enderezo de email. Por favor, revisa o teu email e segue a ligazón para confirmar o teu novo enderezo de email. Comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo. updated: A túa conta foi actualizada de xeito correcto. diff --git a/config/locales/devise.he.yml b/config/locales/devise.he.yml index 63bb3aeddb4163..0f389bd383671c 100644 --- a/config/locales/devise.he.yml +++ b/config/locales/devise.he.yml @@ -110,3 +110,8 @@ he: expired: פג תוקפו. נא לבקש חדש not_found: לא נמצא not_locked: לא היה נעול + not_saved: + many: "%{count} שגיאות מנעו מ%{resource} זה מלהשמר:" + one: 'שגיאה אחת מנעה מ%{resource} זה מלהשמר:' + other: "%{count} שגיאות מנעו מ%{resource} זה מלהשמר:" + two: " %{count} שגיאות מנעו מ%{resource} זה מלהשמר:" diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml index 24aa076ee8294d..ddadd17894021b 100644 --- a/config/locales/devise.hu.yml +++ b/config/locales/devise.hu.yml @@ -12,7 +12,7 @@ hu: last_attempt: Már csak egy próbálkozásod maradt, mielőtt a fiókodat zároljuk. locked: A fiókodat zároltuk. not_found_in_database: Helytelen %{authentication_keys} vagy jelszó. - pending: A fiókod felülvizsgálat alatt áll, még mielőtt használhatnád. + pending: A fiókod még engedélyezésre vár. timeout: A munkameneted lejárt. Kérjük, a folytatáshoz jelentkezz be újra. unauthenticated: A folytatás előtt be kell jelentkezned vagy regisztrálnod kell. unconfirmed: A folytatás előtt meg kell erősítened az e-mail címed. @@ -22,7 +22,7 @@ hu: action_with_app: Megerősítés majd vissza ide %{app} explanation: Ezzel az e-mail címmel kezdeményeztek regisztrációt a(z) %{host} oldalon. Csak egy kattintás, és a felhasználói fiókodat aktiváljuk. Ha a regisztrációt nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak. explanation_when_pending: Ezzel az e-mail címmel meghívást kértél a(z) %{host} oldalon. Ahogy megerősíted az e-mail címed, átnézzük a jelentkezésedet. Ennek ideje alatt nem tudsz belépni. Ha a jelentkezésed elutasítjuk, az adataidat töröljük, más teendőd nincs. Ha a kérelmet nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak. - extra_html: Kérjük tekintsd át a a szerver szabályzatát és a felhasználási feltételeket. + extra_html: Tekintsd át a a kiszolgáló szabályait és a felhasználási feltételeket. subject: 'Mastodon: Megerősítési lépések ehhez az instancehez: %{instance}' title: E-mail cím megerősítése email_changed: @@ -32,7 +32,7 @@ hu: title: Új e-mail cím password_change: explanation: A fiókodhoz tartozó jelszót megváltoztattuk. - extra: Ha nem te kezdeményezted a fiókodhoz tartozó jelszó módosítását, valaki hozzáférhetett a fiókodhoz. Legjobb, ha azonnal megváltoztatod a jelszavadat; ha nem férsz hozzá a fiókodhoz, vedd fel a kapcsolatot a szervered adminisztrátorával. + extra: Ha nem te kérted a fiókod jelszavának módosítását, akkor valaki hozzáférhetett a fiókodhoz. Legjobb, ha azonnal megváltoztatod a jelszavadat; ha nem férsz hozzá a fiókodhoz, vedd fel a kapcsolatot a kiszolgálód adminisztrátorával. subject: 'Mastodon: Jelszavad megváltoztattuk' title: Sikeres jelszómódosítás reconfirmation_instructions: diff --git a/config/locales/devise.ig.yml b/config/locales/devise.ig.yml new file mode 100644 index 00000000000000..7c264f0d7317b0 --- /dev/null +++ b/config/locales/devise.ig.yml @@ -0,0 +1 @@ +ig: diff --git a/config/locales/devise.ko.yml b/config/locales/devise.ko.yml index 570377f8a496a0..45e5e47f8574b5 100644 --- a/config/locales/devise.ko.yml +++ b/config/locales/devise.ko.yml @@ -7,7 +7,7 @@ ko: send_paranoid_instructions: 당신의 이메일이 우리의 DB에 있을 경우 몇 분 이내로 확인 메일이 발송 됩니다. 이메일을 받지 못 한 경우, 스팸 폴더를 확인하세요. failure: already_authenticated: 이미 로그인 된 상태입니다. - inactive: 계정이 활성화 되지 않았습니다. + inactive: 계정이 아직 활성화 되지 않았습니다. invalid: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다. last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다. locked: 계정이 잠겼습니다. @@ -79,7 +79,7 @@ ko: title: 보안 키 활성화 됨 omniauth_callbacks: failure: '"%{reason}" 때문에 당신을 %{kind}에서 인증할 수 없습니다.' - success: 성공적으로 %{kind} 계정을 인증 했습니다. + success: "%{kind} 계정을 성공적으로 인증했습니다." passwords: no_token: 패스워드 재설정 이메일을 거치지 않고는 여기에 올 수 없습니다. 만약 패스워드 재설정 메일에서 온 것이라면 URL이 맞는지 확인해 주세요. send_instructions: 당신의 이메일 주소가 우리의 DB에 있다면 패스워드 복구 링크가 몇 분 이내에 메일로 발송 됩니다. 만약 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요. @@ -89,11 +89,11 @@ ko: registrations: destroyed: 안녕히 가세요! 계정이 성공적으로 제거되었습니다. 다시 만나기를 희망합니다. signed_up: 안녕하세요! 성공적으로 가입했습니다. - signed_up_but_inactive: 성공적으로 가입 했습니다. 그러나, 계정이 활성화 되지 않았기 때문에 아직 로그인 할 수 없습니다. - signed_up_but_locked: 성공적으로 가입 했습니다. 그러나, 계정이 잠겨있기 때문에 아직 로그인 할 수 없습니다. + signed_up_but_inactive: 성공적으로 가입했습니다. 하지만 계정이 활성화되지 않았기 때문에 아직 로그인할 수 없습니다. + signed_up_but_locked: 성공적으로 가입했습니다. 하지만 계정이 잠겨있기 때문에 아직 로그인할 수 없습니다. signed_up_but_pending: 확인 링크를 포함한 메일이 발송 되었습니다. 링크를 클릭한 이후, 우리가 당신의 신청양식을 검토합니다. 승인이 되면 알림을 발송합니다. signed_up_but_unconfirmed: 확인 링크를 포함한 메일이 발송 되었습니다. 링크를 클릭해 계정을 활성화 하세요. 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요. - update_needs_confirmation: 계정 정보를 업데이트 했습니다. 하지만 새 이메일 주소에 대한 확인이 필요합니다. 이메일을 확인 한 후 링크를 통해 새 이메일을 확인 하세요. 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요. + update_needs_confirmation: 계정 정보를 성공적으로 업데이트했으며, 새 이메일 주소에 대한 확인이 필요합니다. 이메일로 전달된 링크를 따라 새 이메일을 확인하세요. 메일을 받지 못하셨다면 스팸 폴더를 확인해 주세요. updated: 계정 정보가 성공적으로 업데이트 되었습니다. sessions: already_signed_out: 성공적으로 로그아웃 되었습니다. diff --git a/config/locales/devise.ku.yml b/config/locales/devise.ku.yml index 18187a156f5144..d5d0105efc8426 100644 --- a/config/locales/devise.ku.yml +++ b/config/locales/devise.ku.yml @@ -29,13 +29,13 @@ ku: title: Navnîşana e-nameyê piştrast bike email_changed: explanation: 'Navnîşana e-nameyê ajimêra te hate guhertin bo:' - extra: Heke te ajimêra xwe ne guhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî. + extra: Ku te ajimêra xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî. subject: 'Mastodon: E-name hate guhertin' title: Navnîşana e-nameya nû password_change: explanation: Borînpeyva ajimêra te hate guhertin. - extra: Heke te ajimêra xwe ne guhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî. - subject: 'Mastodon: pêborîn hate guhertin' + extra: Ku te ajimêra xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî. + subject: 'Mastodon: Borînpeyv hate guhertin' title: Borînpeyv hate guhertin reconfirmation_instructions: explanation: Navnîşana nû piştrast bike da ku tu e-nameya xwe biguherînî. diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml new file mode 100644 index 00000000000000..5e1fc6bee92ec3 --- /dev/null +++ b/config/locales/devise.my.yml @@ -0,0 +1 @@ +my: diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml index bf3b02e3f980b8..477c7d41f16bef 100644 --- a/config/locales/devise.nl.yml +++ b/config/locales/devise.nl.yml @@ -21,7 +21,7 @@ nl: action: E-mailadres verifiëren action_with_app: Bevestigen en naar %{app} teruggaan explanation: Je hebt een account op %{host} aangemaakt en met één klik kun je deze activeren. Wanneer jij dit account niet hebt aangemaakt, mag je deze e-mail negeren. - explanation_when_pending: Je vroeg met dit e-mailadres een uitnodiging aan voor %{host}. Nadat je jouw e-mailadres hebt bevestigd, beoordelen we jouw aanvraag. Je kunt tot dan nog niet inloggen. Wanneer jouw aanvraag wordt afgekeurd, worden jouw gegevens verwijderd en hoef je daarna verder niets meer te doen. Wanneer jij dit niet was, kun je deze e-mail negeren. + explanation_when_pending: Je vroeg met dit e-mailadres een uitnodiging aan voor %{host}. Nadat je jouw e-mailadres hebt bevestigd, beoordelen we jouw aanvraag. Je kunt tot dan nog niet inloggen. Wanneer jouw aanvraag wordt afgewezen, worden jouw gegevens verwijderd en hoef je daarna verder niets meer te doen. Wanneer jij dit niet was, kun je deze e-mail negeren. extra_html: Bekijk ook de regels van de Mastodonserver en onze gebruiksvoorwaarden. subject: 'Mastodon: E-mail bevestigen voor %{instance}' title: E-mailadres verifiëren @@ -51,7 +51,7 @@ nl: subject: 'Mastodon: Tweestapsverificatie uitgeschakeld' title: Tweestapsverificatie uitgeschakeld two_factor_enabled: - explanation: Tweestapsverificatie voor jouw account is ingeschakeld. Om te kunnen aanmelden is een door een tweestapsverificatie-app genereerde toegangscode nodig. + explanation: Tweestapsverificatie voor jouw account is ingeschakeld. Om te kunnen inloggen is een door een tweestapsverificatie-app genereerde toegangscode nodig. subject: 'Mastodon: Tweestapsverificatie ingeschakeld' title: Tweestapsverificatie ingeschakeld two_factor_recovery_codes_changed: diff --git a/config/locales/devise.nn.yml b/config/locales/devise.nn.yml index 88d8458f7bd5a2..eee99284750fc2 100644 --- a/config/locales/devise.nn.yml +++ b/config/locales/devise.nn.yml @@ -41,7 +41,7 @@ nn: subject: 'Mastodon: Stadfest e-post for %{instance}' title: Stadfest e-postadresse reset_password_instructions: - action: Endr passord + action: Endre passord explanation: Du har bedt om eit nytt passord til kontoen din. extra: Om du ikkje bad om dette, ignorer denne e-posten. Passordet ditt vert ikkje endra før du går inn på lenkja ovanfor og lagar eit nytt. subject: 'Mastodon: Instuksjonar for å endra passord' @@ -63,51 +63,53 @@ nn: webauthn_credential: added: explanation: Følgende sikkerhetsnøkkel har blitt lagt til i kontoen din - subject: 'Mastodon: Ny sikkerhetsnøkkel' - title: En ny sikkerhetsnøkkel har blitt lagt til + subject: 'Mastodon: Ny sikkerheitsnøkkel' + title: Ein ny sikkerheitsnøkkel har blitt lagt til deleted: - explanation: Følgende sikkerhetsnøkkel har blitt slettet fra kontoen din - subject: 'Mastodon: Sikkerhetsnøkkel slettet' - title: En av sikkerhetsnøklene dine har blitt slettet + explanation: Den følgande sikkerheitsnøkkelen har blitt sletta frå kontoen din + subject: 'Mastodon: Sikkerheitsnøkkel sletta' + title: Ein av sikkerheitsnøklane dine har blitt sletta webauthn_disabled: - subject: 'Mastodon: Autentisering med sikkerhetsnøkler ble skrudd av' - title: Sikkerhetsnøkler deaktivert + explanation: Du kan ikkje bruke tryggleiksnyklar til å logga inn på kontoen din. Du kan berre logga inn med koden frå tofaktor-appen som er kopla saman med brukarkontoen din. + subject: 'Mastodon: Autentisering med sikkerheitsnøklar vart skrudd av' + title: Sikkerheitsnøklar deaktivert webauthn_enabled: - subject: 'Mastodon: Sikkerhetsnøkkelsautentisering ble skrudd på' - title: Sikkerhetsnøkler aktivert + explanation: Pålogging med tryggleiksnyklar er skrudd på. No kan du bruka nykelen din for å logga på. + subject: 'Mastodon: Sikkerheitsnøkkelsautentisering vart skrudd på' + title: Sikkerheitsnøklar aktivert omniauth_callbacks: - failure: Du kunne ikkje verte autentisert frå %{kind} av di "%{reason}". + failure: Kunne ikkje autentisere deg frå %{kind} fordi "%{reason}". success: Autentisert frå %{kind}-konto. passwords: - no_token: Du har ikkje tilgang til denne sida utan ha gått via ein e-post som gjeld å nullstille passordet. Dersom det er kva du har gjort, dobbelsjekk at du har kopiert heile URLen. - send_instructions: Om vi har e-postadressa di i databasen vår, får du ein e-post med lenke til gjenopprette passordet om nokre få minutt. Sjekk søppelpostmappa di om du ikkje fekk denne e-posten. - send_paranoid_instructions: Om vi har e-postadressa di i databasen vår, får du ei lenkje til å endra passordet om nokre få minutt. Ver venleg og sjekk søppelpostmappa om du ikkje fekk denne e-posten. + no_token: Du har ikkje tilgang til denne sida utan ha gått via ein e-post som gjeld å nullstille passordet. Dersom det var det du gjorde, dobbelsjekk at du har kopiert heile URLen. + send_instructions: Om me har epostadressa di i databasen vår, får du ein epost med ei lenke til å gjenopprette passordet om nokre få minutt. Sjekk søppelpostmappa di om du ikkje fekk denne eposten. + send_paranoid_instructions: Om me har epostadressa di i databasen vår, får du ei lenke til å endra passordet om nokre få minutt. Ver venleg å sjekke søppelpostmappa om du ikkje fekk denne eposten. updated: Passordet ditt er endra. No er du logga inn. updated_not_active: Passordet ditt er endra. registrations: - destroyed: Ha det! Kontoen din er sletta. Vi vonar å sjå deg igjen snart. + destroyed: Ha det! Kontoen din er sletta. Me vonar å sjå deg igjen snart. signed_up: Velkomen! No er du registrert. - signed_up_but_inactive: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er ikkje aktivert enno. - signed_up_but_locked: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er låst. - signed_up_but_pending: Ei melding med ei stadfestingslenkje er vorten send til e-postadressa di. Når du klikkar på lenkja skal vi sjå gjennom søknaden din. Du får ei melding om han vert godkjend. - signed_up_but_unconfirmed: Ei melding med ei lenke for å stadfeste kontoen har vorte sendt e-postadressa di. Klikk på lenka for å aktivere kontoen. Sjekk søppelpostmappa dersom du ikkje har fått e-posten. - update_needs_confirmation: Du har oppdatert kontoen din, men vi må stadfeste den nye e-postadressa. Sjekk innboksen og følg lenka for å stadfeste adressa di. Sjekk søppelpostmappa dersom du ikkje har fått den e-posten. + signed_up_but_inactive: Du har registrert deg, men me kunne ikkje logga deg inn fordi kontoen din er ikkje aktivert enno. + signed_up_but_locked: Du har registrert deg, men me kunne ikkje logga deg inn fordi kontoen din er låst. + signed_up_but_pending: Ei melding med ei stadfestingslenke har vorte sendt til epostadressa di. Når du klikkar på lenka skal me sjå gjennom søknaden din. Du får ei melding om den vert godkjend. + signed_up_but_unconfirmed: Ei melding med ei lenke for å stadfeste kontoen har vorte sendt til epostadressa di. Klikk på lenka for å aktivere kontoen. Sjekk søppelpostmappa dersom du ikkje har fått eposten. + update_needs_confirmation: Du har oppdatert kontoen din, men me må stadfesta den nye epostadressa. Sjekk innboksen og fylg lenka for å stadfeste adressa di. Sjekk søppelpostmappa dersom du ikkje har fått denne eposten. updated: Kontoen har vorte oppdatert. sessions: already_signed_out: Logga ut. signed_in: Logga inn. signed_out: Logga ut. unlocks: - send_instructions: Om nokre minutt får du ein e-post med instruksjonar for korleis du kan låse opp kontoen din. Sjekk søppelpostmappa om du ikkje finn den mailen. - send_paranoid_instructions: Dersom du har konto her, får du ein e-post med instruksjonar for korleis du kan låse opp kontoen din om nokre minutt. Sjekk søppelpostmappa om du ikkje finn den mailen. + send_instructions: Om nokre minutt får du ein epost med instruksjonar for korleis du kan låse opp kontoen din. Sjekk søppelpostmappa om du ikkje finn den eposten. + send_paranoid_instructions: Dersom du har konto her, får du ein epost med instruksjonar for korleis du kan låse opp kontoen din om nokre minutt. Sjekk søppelpostmappa om du ikkje finn den eposten. unlocked: Kontoen din har vorte låst opp. Logg inn for å halde fram. errors: messages: - already_confirmed: er allereie stadfesta, prøv logge inn + already_confirmed: er allereie stadfesta, prøv å logge inn confirmation_period_expired: må verte stadfesta innan %{period}, spør etter ein ny - expired: er utgått, ver venleg å beda om ein ny ein + expired: er utgått, ver venleg å be om ein ny ein not_found: ikkje funne not_locked: var ikkje låst not_saved: one: '1 feil hindra %{resource} frå verte lagra:' - other: "%{count} feil hindra %{resource} frå verte lagra:" + other: "%{count} feil hindra %{resource} frå å verte lagra:" diff --git a/config/locales/devise.no.yml b/config/locales/devise.no.yml index 4fdc1276b55cb3..a5d6cad7a10611 100644 --- a/config/locales/devise.no.yml +++ b/config/locales/devise.no.yml @@ -3,17 +3,17 @@ devise: confirmations: confirmed: E-postaddressen din er blitt bekreftet. - send_instructions: Du vil motta en e-post med instruksjoner for bekreftelse om noen få minutter. - send_paranoid_instructions: Hvis din e-postaddresse finnes i vår database vil du motta en e-post med instruksjoner for bekreftelse om noen få minutter. + send_instructions: Du vil motta en e-post med instruksjoner for bekreftelse om noen få minutter. Sjekk spam-mappen hvis du ikke mottok e-posten. + send_paranoid_instructions: Hvis e-postadressen din finnes i databasen vår vil du om noen få minutter motta en e-post med instruksjoner for bekreftelse. Sjekk spam-mappen din hvis du ikke mottok e-posten. failure: already_authenticated: Du er allerede innlogget. - inactive: Din konto er ikke blitt aktivert ennå. + inactive: Kontoen din er ikke blitt aktivert ennå. invalid: Ugyldig %{authentication_keys} eller passord. last_attempt: Du har ett forsøk igjen før kontoen din låses. - locked: Din konto er låst. + locked: Kontoen din er låst. not_found_in_database: Ugyldig %{authentication_keys} eller passord. pending: Kontoen din er fortsatt under gjennomgang. - timeout: Økten din løp ut på tid. Logg inn på nytt for å fortsette. + timeout: Økten din har utløpt. Logg inn igjen for å fortsette. unauthenticated: Du må logge inn eller registrere deg før du kan fortsette. unconfirmed: Du må bekrefte e-postadressen din før du kan fortsette. mailer: @@ -22,41 +22,41 @@ action_with_app: Bekreft og gå tilbake til %{app} explanation: Du har laget en konto på %{host} med denne e-postadressen. Du er ett klikk unna å aktivere den. Hvis dette ikke var deg, vennligst se bort fra denne e-posten. explanation_when_pending: Du søkte om en invitasjon til %{host} med denne E-postadressen. Når du har bekreftet E-postadressen din, vil vi gå gjennom søknaden din. Du kan logge på for å endre dine detaljer eller slette kontoen din, men du har ikke tilgang til de fleste funksjoner før kontoen din er akseptert. Dersom søknaden din blir avslått, vil dataene dine bli fjernet, så ingen ytterligere handlinger fra deg vil være nødvendige. Dersom dette ikke var deg, vennligst ignorer denne E-posten. - extra_html: Vennligst også sjekk ut instansens regler og våre bruksvilkår. - subject: 'Mastodon: Instruksjoner for å bekrefte e-postadresse %{instance}' + extra_html: Sjekk også ut instansens regler og våre bruksvilkår. + subject: 'Mastodon: Instruksjoner for bekreftelse for %{instance}' title: Bekreft e-postadresse email_changed: explanation: 'E-postadressen til din konto endres til:' - extra: Hvis du ikke endret din e-postadresse, er det sannsynlig at noen har fått tilgang til din konto. Vennligst endre ditt passord umiddelbart eller kontakt instansens administrator dersom du er utestengt fra kontoen din. - subject: 'Mastadon: E-postadresse endret' + extra: Hvis du ikke endret e-postadressen din, er det sannsynlig at noen har fått tilgang til kontoen din. Vennligst endre passordet ditt umiddelbart eller kontakt instansens administrator dersom du er låst ute fra kontoen din. + subject: 'Mastodon: E-postadresse endret' title: Ny e-postadresse password_change: - explanation: Passordet til din konto har blitt endret. - extra: Hvis du ikke endret ditt passord, er det sannsynlig at noen har fått tilgang til din konto. Vennligst endre ditt passord umiddelbart eller kontakt instansens administrator dersom du er utestengt fra kontoen din. + explanation: Passordet til kontoen din har blitt endret. + extra: Hvis du ikke endret passordet ditt, er det sannsynlig at noen har fått tilgang til kontoen din. Vennligst endre passordet ditt umiddelbart eller kontakt instansens administrator dersom du er utestengt fra kontoen din. subject: 'Mastodon: Passord endret' title: Passord endret reconfirmation_instructions: - explanation: Din nye e-postadresse må bekreftes for å bli endret. - extra: Se bort fra denne e-posten dersom du ikke gjorde denne endringen. E-postadressen for Mastadon-kontoen blir ikke endret før du trykker på lenken over. + explanation: Bekreft den nye e-postadressen for å endre e-post. + extra: Se bort fra denne e-posten dersom du ikke gjorde denne endringen. E-postadressen for Mastodon-kontoen blir ikke endret før du trykker på lenken over. subject: 'Mastodon: Bekreft e-postadresse for %{instance}' title: Bekreft e-postadresse reset_password_instructions: action: Endre passord - explanation: Du ba om et nytt passord for din konto. - extra: Se bort fra denne e-posten dersom du ikke ba om dette. Ditt passord blir ikke endret før du trykker på lenken over og lager et nytt. + explanation: Du ba om et nytt passord til kontoen din. + extra: Se bort fra denne e-posten dersom du ikke ba om dette. Passordet ditt blir ikke endret før du trykker på lenken over og lager et nytt. subject: 'Mastodon: Hvordan nullstille passord' title: Nullstill passord two_factor_disabled: - explanation: 2-trinnsinnlogging for kontoen din har blitt skrudd av. Pålogging er mulig gjennom kun E-postadresse og passord. - subject: 'Mastodon: To-faktor autentisering deaktivert' + explanation: Tofaktorautentisering for kontoen din har blitt skrudd av. Pålogging er nå mulig ved å bruke kun e-postadresse og passord. + subject: 'Mastodon: Tofaktorautentisering deaktivert' title: 2FA deaktivert two_factor_enabled: - explanation: To-faktor autentisering er aktivert for kontoen din. Et symbol som er generert av den sammenkoblede TOTP-appen vil være påkrevd for innlogging. - subject: 'Mastodon: To-faktor autentisering aktivert' + explanation: Tofaktorautentisering er aktivert for kontoen din. Et token som er generert av appen for tidsbasert engangspassord (TOTP) som er koblet til kontoen kreves for innlogging. + subject: 'Mastodon: Tofaktorautentisering aktivert' title: 2FA aktivert two_factor_recovery_codes_changed: - explanation: De forrige gjenopprettingskodene er ugyldig og nye generert. - subject: 'Mastodon: 2-trinnsgjenopprettingskoder har blitt generert på nytt' + explanation: De forrige gjenopprettingskodene er gjort ugyldige og nye er generert. + subject: 'Mastodon: Tofaktor-gjenopprettingskoder har blitt generert på nytt' title: 2FA-gjenopprettingskodene ble endret unlock_instructions: subject: 'Mastodon: Instruksjoner for å gjenåpne konto' @@ -70,37 +70,39 @@ subject: 'Mastodon: Sikkerhetsnøkkel slettet' title: En av sikkerhetsnøklene dine har blitt slettet webauthn_disabled: + explanation: Autentisering med sikkerhetsnøkler er deaktivert for kontoen din. Innlogging er nå mulig ved hjelp av kun et token som er generert av engangspassord-appen som er koblet til kontoen. subject: 'Mastodon: Autentisering med sikkerhetsnøkler ble skrudd av' title: Sikkerhetsnøkler deaktivert webauthn_enabled: + explanation: Sikkerhetsnøkkel-autentisering er aktivert for din konto. Din sikkerhetsnøkkel kan nå brukes til innlogging. subject: 'Mastodon: Sikkerhetsnøkkelsautentisering ble skrudd på' title: Sikkerhetsnøkler aktivert omniauth_callbacks: failure: Kunne ikke autentisere deg fra %{kind} fordi "%{reason}". - success: Vellykket autentisering fra %{kind}. + success: Vellykket autentisering fra %{kind}-konto. passwords: - no_token: Du har ingen tilgang til denne siden hvis ikke klikket på en e-post om nullstilling av passord. Hvis du kommer fra en sådan bør du dobbelsjekke at du limte inn hele URLen. - send_instructions: Du vil motta en e-post med instruksjoner om nullstilling av passord om noen få minutter. - send_paranoid_instructions: Hvis e-postadressen din finnes i databasen vår vil du motta en e-post med instruksjoner om nullstilling av passord om noen få minutter. + no_token: Du har ikke tilgang til denne siden hvis du ikke kom hit etter å ha klikket på en e-post om nullstilling av passord. Hvis du kommer fra en sådan bør du dobbelsjekke at du limte inn hele URLen. + send_instructions: Hvis e-postadressen din finnes i databasen vår, vil du motta en e-post med instruksjoner om nullstilling av passord om noen få minutter. Sjekk spam-mappen din hvis du ikke mottok e-posten. + send_paranoid_instructions: Hvis e-postadressen din finnes i databasen vår vil du motta en e-post med instruksjoner om nullstilling av passord om noen få minutter. Sjekk spam-mappen din hvis du ikke mottok e-posten. updated: Passordet ditt er endret. Du er nå logget inn. updated_not_active: Passordet ditt er endret. registrations: - destroyed: Adjø! Kontoen din er slettet. På gjensyn. + destroyed: Ha det! Kontoen din er avsluttet. Vi håper å se deg igjen snart. signed_up: Velkommen! Registreringen var vellykket. signed_up_but_inactive: Registreringen var vellykket. Vi kunne dessverre ikke logge deg inn fordi kontoen din ennå ikke har blitt aktivert. signed_up_but_locked: Registreringen var vellykket. Vi kunne dessverre ikke logge deg inn fordi kontoen din har blitt låst. - signed_up_but_pending: En melding med en bekreftelseslink er sendt til din e-postadresse. Etter at du har klikket på koblingen, vil vi gjennomgå søknaden din. Du vil bli varslet hvis den er godkjent. - signed_up_but_unconfirmed: En e-post med en bekreftelseslenke har blitt sendt til din innboks. Klikk på lenken i e-posten for å aktivere kontoen din. - update_needs_confirmation: Du har oppdatert kontoen din, men vi må bekrefte din nye e-postadresse. Sjekk e-posten din og følg bekreftelseslenken for å bekrefte din nye e-postadresse. + signed_up_but_pending: En melding med en bekreftelseslenke er sendt til din e-postadresse. Etter at du har klikket på lenken, vil vi gjennomgå søknaden din. Du vil bli varslet hvis den blir godkjent. + signed_up_but_unconfirmed: En melding med en bekreftelseslenke har blitt sendt til din e-postadresse. Klikk på lenken i e-posten for å aktivere kontoen din. Sjekk spam-mappen din hvis du ikke mottok e-posten. + update_needs_confirmation: Du har oppdatert kontoen din, men vi må bekrefte din nye e-postadresse. Sjekk e-posten din og følg bekreftelseslenken for å bekrefte din nye e-postadresse. Sjekk spam-mappen din hvis du ikke mottok e-posten. updated: Kontoen din ble oppdatert. sessions: already_signed_out: Logget ut. signed_in: Logget inn. signed_out: Logget ut. unlocks: - send_instructions: Du vil motta en e-post med instruksjoner for å åpne kontoen din om noen få minutter. - send_paranoid_instructions: Hvis kontoen din eksisterer vil du motta en e-post med instruksjoner for å åpne kontoen din om noen få minutter. - unlocked: Kontoen din ble åpnet uten problemer. Logg på for å fortsette. + send_instructions: Du vil motta en e-post med instruksjoner for å låse opp kontoen din om noen få minutter. Sjekk spam-mappen din hvis du ikke mottok e-posten. + send_paranoid_instructions: Hvis kontoen din eksisterer vil du motta en e-post med instruksjoner for å låse opp kontoen din om noen få minutter. Sjekk spam-katalogen din hvis du ikke mottok denne e-posten. + unlocked: Kontoen din er nå låst opp. Logg på for å fortsette. errors: messages: already_confirmed: har allerede blitt bekreftet, prøv å logge på istedet diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml index cc1b670bb88c21..ff086888f3c137 100644 --- a/config/locales/devise.pl.yml +++ b/config/locales/devise.pl.yml @@ -3,7 +3,7 @@ pl: devise: confirmations: confirmed: Twój adres e-mail został poprawnie zweryfikowany. - send_instructions: W ciągu kilku minut otrzymasz wiadomosć e-mail z instrukcją jak potwierdzić Twój adres e-mail. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem. + send_instructions: W ciągu kilku minut otrzymasz wiadomość e-mail z instrukcją jak potwierdzić Twój adres e-mail. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem. send_paranoid_instructions: Jeśli Twój adres e-mail już istnieje w naszej bazie danych, w ciągu kilku minut otrzymasz wiadomość e-mail z instrukcją jak potwierdzić Twój adres e-mail. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem. failure: already_authenticated: Jesteś już zalogowany(-a). diff --git a/config/locales/devise.si.yml b/config/locales/devise.si.yml index b9aa1527cecfd9..a20057cef94282 100644 --- a/config/locales/devise.si.yml +++ b/config/locales/devise.si.yml @@ -1,42 +1,115 @@ --- si: devise: + confirmations: + confirmed: ඔබගේ විද්‍යුත් තැපැල් ලිපිනය සාර්ථකව තහවුරු කර ඇත. + send_instructions: මිනිත්තු කිහිපයකින් ඔබගේ විද්‍යුත් තැපැල් ලිපිනය තහවුරු කරන ආකාරය පිළිබඳ උපදෙස් සහිත විද්‍යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. + send_paranoid_instructions: ඔබගේ විද්‍යුත් තැපැල් ලිපිනය අපගේ දත්ත ගබඩාවේ තිබේ නම්, මිනිත්තු කිහිපයකින් ඔබගේ විද්‍යුත් තැපැල් ලිපිනය තහවුරු කරන ආකාරය පිළිබඳ උපදෙස් සහිත විද්‍යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. failure: already_authenticated: ඔබ දැනටමත් පිවිස ඇත. + inactive: ඔබගේ ගිණුම තවම සක්‍රිය කර නොමැත. + invalid: වලංගු නොවන %{authentication_keys} හෝ මුරපදය. + last_attempt: ඔබගේ ගිණුම අගුලු දැමීමට පෙර ඔබට තවත් එක් උත්සාහයක් ඇත. locked: ඔබගේ ගිණුම අගුළු දමා ඇත. + not_found_in_database: වලංගු නොවන %{authentication_keys} හෝ මුරපදය. + pending: ඔබගේ ගිණුම තවමත් සමාලෝචනය වෙමින් පවතී. + timeout: ඔබේ සැසිය කල් ඉකුත් විය. ඉදිරියට යාමට කරුණාකර නැවත පුරන්න. + unauthenticated: ඉදිරියට යාමට පෙර ඔබ පුරනය වීමට හෝ ලියාපදිංචි වීමට අවශ්‍ය වේ. + unconfirmed: දිගටම කරගෙන යාමට පෙර ඔබ ඔබේ ඊමේල් ලිපිනය තහවුරු කළ යුතුය. mailer: confirmation_instructions: - title: වි. තැපැල් ලිපිනය තහවුරු කරන්න + action: ඊමේල් ලිපිනය තහවුරු කරන්න + action_with_app: තහවුරු කර %{app}වෙත ආපසු යන්න + explanation: ඔබ මෙම ඊමේල් ලිපිනය සමඟ %{host} හි ගිණුමක් සාදා ඇත. ඔබ එය සක්‍රිය කිරීමට එක ක්ලික් කිරීමක් ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. + explanation_when_pending: ඔබ මෙම විද්‍යුත් තැපැල් ලිපිනය සමඟ %{host} වෙත ආරාධනාවක් සඳහා ඉල්ලුම් කළා. ඔබ ඔබගේ විද්‍යුත් තැපැල් ලිපිනය තහවුරු කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. ඔබගේ විස්තර වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට ඔබට පුරනය විය හැක, නමුත් ඔබගේ ගිණුම අනුමත වන තුරු ඔබට බොහෝ කාර්යයන් වෙත ප්‍රවේශ විය නොහැක. ඔබගේ අයදුම්පත ප්‍රතික්ෂේප කළහොත්, ඔබගේ දත්ත ඉවත් කරනු ඇත, එබැවින් ඔබෙන් වැඩිදුර ක්‍රියාමාර්ග අවශ්‍ය නොවනු ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. + extra_html: කරුණාකර සේවාදායකයේ නීති සහ අපගේ සේවා කොන්දේසිද පරීක්ෂා කරන්න. + subject: 'Mastodon: %{instance}සඳහා තහවුරු කිරීමේ උපදෙස්' + title: වි. තැපෑල තහවුරු කරන්න email_changed: + explanation: 'ඔබගේ ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් වෙමින් පවතී:' + extra: ඔබ ඔබගේ විද්‍යුත් තැපෑල වෙනස් නොකළේ නම්, යම් අයෙකු ඔබගේ ගිණුමට ප්‍රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න. subject: 'මාස්ටඩන්: වි-තැපෑල වෙනස් විය' - title: නව විද්‍යුත් තැපැල් ලිපිනය + title: නව වි-තැපැල් ලිපිනය password_change: - title: මුරපදය වෙනස් කරන ලදි + explanation: ඔබගේ ගිණුම සඳහා මුරපදය වෙනස් කර ඇත. + extra: ඔබ ඔබගේ මුරපදය වෙනස් නොකළේ නම්, යමෙකු ඔබගේ ගිණුමට ප්‍රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න. + subject: 'Mastodon: මුරපදය වෙනස් විය' + title: මුරපදය වෙනස් විය reconfirmation_instructions: - title: වි. තැපැල් ලිපිනය තහවුරු කරන්න + explanation: ඔබගේ ඊමේල් වෙනස් කිරීමට නව ලිපිනය තහවුරු කරන්න. + extra: මෙම වෙනස ඔබ විසින් ආරම්භ කරන ලද්දක් නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වන තෙක් Mastodon ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් නොවේ. + subject: 'Mastodon: %{instance}සඳහා විද්‍යුත් තැපෑල තහවුරු කරන්න' + title: වි-තැපෑල තහවුරු කරන්න reset_password_instructions: action: මුරපදය වෙනස් කරන්න - title: මුරපදය නැවත සැකසීම + explanation: ඔබ ඔබගේ ගිණුම සඳහා නව මුරපදයක් ඉල්ලා ඇත. + extra: ඔබ මෙය ඉල්ලා නොසිටියේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වී අලුත් එකක් සාදන තෙක් ඔබේ මුරපදය වෙනස් නොවනු ඇත. + subject: 'Mastodon: මුරපද උපදෙස් යළි පිහිටුවන්න' + title: මුරපදය යළි සැකසීම two_factor_disabled: + explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්‍යාපනය අබල කර ඇත. විද්‍යුත් තැපැල් ලිපිනය සහ මුරපදය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක. + subject: 'Mastodon: ද්වි සාධක සත්‍යාපනය අක්‍රීය කර ඇත' title: ද්විපියවර අබලයි two_factor_enabled: + explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්‍යාපනය සක්‍රීය කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනයක් පුරනය වීමට අවශ්‍ය වනු ඇත. + subject: 'Mastodon: ද්වි සාධක සත්‍යාපනය සක්‍රීය කර ඇත' title: ද්විපියවර සබලයි two_factor_recovery_codes_changed: - title: ද්විපියවර ප්‍රතිසාධන කේත වෙනස්විණි + explanation: පෙර ප්‍රතිසාධන කේත අවලංගු කර නව ඒවා උත්පාදනය කර ඇත. + subject: 'Mastodon: ද්වි-සාධක ප්‍රතිසාධන කේත නැවත උත්පාදනය කරන ලදී' + title: ද්විපියවර ප්‍රතිසාධන කේත වෙනස් විය unlock_instructions: - subject: 'මාස්ටඩන්: අගුලුහැරීමේ උපදේශ' + subject: 'මාස්ටඩන්: අගුළු හැරීමේ උපදේශ' webauthn_credential: added: + explanation: පහත ආරක්ෂක යතුර ඔබගේ ගිණුමට එක් කර ඇත subject: 'මාස්ටඩන්: නව ආරක්‍ෂණ යතුර' title: ආරක්‍ෂණ යතුරක් එකතු කර ඇත + deleted: + explanation: පහත ආරක්ෂක යතුර ඔබගේ ගිණුමෙන් මකා ඇත + subject: 'Mastodon: ආරක්ෂක යතුර මකා ඇත' + title: ඔබගේ ආරක්ෂක යතුරු වලින් එකක් මකා ඇත webauthn_disabled: + explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සමඟ සත්‍යාපනය අබල කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක. + subject: 'Mastodon: ආරක්ෂක යතුරු සමඟ සත්‍යාපනය අක්‍රිය කර ඇත' title: ආරක්‍ෂණ යතුරු අබල කර ඇත webauthn_enabled: + explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සත්‍යාපනය සක්‍රීය කර ඇත. ඔබගේ ආරක්ෂක යතුර දැන් පුරනය වීම සඳහා භාවිතා කළ හැක. + subject: 'Mastodon: ආරක්ෂක යතුරු සත්‍යාපනය සක්‍රීය කර ඇත' title: ආරක්‍ෂණ යතුරු සබල කර ඇත + omniauth_callbacks: + failure: '"%{reason}" නිසා %{kind} සිට ඔබව සත්‍යාපනය කළ නොහැක.' + success: "%{kind} ගිණුමෙන් සාර්ථකව සත්‍යාපනය කරන ලදී." + passwords: + no_token: මුරපද යළි පිහිටුවීමේ විද්‍යුත් තැපෑලකින් නොපැමිණ ඔබට මෙම පිටුවට ප්‍රවේශ විය නොහැක. ඔබ පැමිණෙන්නේ මුරපද යළි පිහිටුවීමේ විද්‍යුත් තැපෑලකින් නම්, කරුණාකර ඔබ සපයා ඇති සම්පූර්ණ URL භාවිතා කර ඇති බවට වග බලා ගන්න. + send_instructions: ඔබගේ විද්‍යුත් තැපැල් ලිපිනය අපගේ දත්ත ගබඩාවේ තිබේ නම්, මිනිත්තු කිහිපයකින් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට මුරපද ප්‍රතිසාධන සබැඳියක් ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. + send_paranoid_instructions: ඔබගේ විද්‍යුත් තැපැල් ලිපිනය අපගේ දත්ත ගබඩාවේ තිබේ නම්, මිනිත්තු කිහිපයකින් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට මුරපද ප්‍රතිසාධන සබැඳියක් ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. + updated: ඔබගේ මුරපදය සාර්ථකව වෙනස් කර ඇත. ඔබ දැන් පුරනය වී ඇත. + updated_not_active: ඔබගේ මුරපදය සාර්ථකව වෙනස් කර ඇත. registrations: - update_needs_confirmation: ඔබ ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කළ නමුත් අපට ඔබගේ නව විද්‍යුත් තැපැල් ලිපිනය තහවුරු කළ යුතුය. කරුණාකර ඔබගේ විද්‍යුත් තැපෑල පරීක්ෂා කර තහවුරු කිරීමේ සබැඳිය අනුගමනය කර ඔබගේ නව විද්‍යුත් තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් බහාලුම පරීක්ෂා කරන්න. + destroyed: ආයුබෝවන්! ඔබගේ ගිණුම සාර්ථකව අවලංගු කර ඇත. ඉක්මනින්ම ඔබව නැවත හමුවීමට අපි බලාපොරොත්තු වෙමු. + signed_up: සාදරයෙන් පිළිගනිමු! ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. + signed_up_but_inactive: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම තවමත් සක්‍රිය කර නොමැති නිසා අපට ඔබව පුරනය වීමට නොහැකි විය. + signed_up_but_locked: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම අගුලු දමා ඇති නිසා අපට ඔබව පුරනය කිරීමට නොහැකි විය. + signed_up_but_pending: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබ සබැඳිය ක්ලික් කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. එය අනුමත වුවහොත් ඔබට දැනුම් දෙනු ලැබේ. + signed_up_but_unconfirmed: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබගේ ගිණුම සක්‍රිය කිරීමට කරුණාකර සබැඳිය අනුගමනය කරන්න. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. + update_needs_confirmation: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන වුවද අපට නව වි-තැපැල් ලිපිනය තහවුරු කර ගැනීමට වුවමනා කෙරේ. කරුණාකර ඔබගේ වි-තැපෑල පරීක්‍ෂා කර ඊට අදාළ සබැඳිය අනුගමනය කර ඔබගේ නව වි-තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම වි-තැපෑල නොලැබුණේ නම් කරුණාකර අයාචිත තැපැල් බහාලුම බලන්න. updated: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කර ඇත. sessions: - already_signed_out: සාර්ථකව නික්මුනි. - signed_in: සාර්ථකව පිවිසුනි. - signed_out: සාර්ථකව නික්මුනි. + already_signed_out: සාර්ථකව නික්මිණි. + signed_in: සාර්ථකව පිවිසුණි. + signed_out: සාර්ථකව නික්මිණි. + unlocks: + send_instructions: මිනිත්තු කිහිපයකින් ඔබගේ ගිණුම අගුළු හරින ආකාරය පිළිබඳ උපදෙස් සහිත විද්‍යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. + send_paranoid_instructions: ඔබගේ ගිණුම තිබේ නම්, මිනිත්තු කිහිපයකින් එය අගුළු හරින ආකාරය පිළිබඳ උපදෙස් සහිත විද්‍යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. + unlocked: ඔබගේ ගිණුම සාර්ථකව අගුලු හැර ඇත. ඉදිරියට යාමට කරුණාකර පුරනය වන්න. + errors: + messages: + already_confirmed: දැනටමත් තහවුරු කර ඇත, කරුණාකර පුරනය වීමට උත්සාහ කරන්න + confirmation_period_expired: "%{period}තුළ තහවුරු කළ යුතුය, කරුණාකර අලුත් එකක් ඉල්ලන්න" + expired: කල් ඉකුත් වී ඇත, කරුණාකර අලුත් එකක් ඉල්ලන්න + not_found: හමු වුණේ නැහැ + not_locked: අගුලු දමා නොතිබුණි + not_saved: + one: '1 දෝෂයක් මෙම %{resource} සුරැකීම තහනම් කර ඇත:' + other: 'දෝෂ %{count} කින් මෙම %{resource} සුරැකීම තහනම් කර ඇත:' diff --git a/config/locales/devise.sl.yml b/config/locales/devise.sl.yml index 6553e3cd616f94..be0f98ae1126a6 100644 --- a/config/locales/devise.sl.yml +++ b/config/locales/devise.sl.yml @@ -4,7 +4,7 @@ sl: confirmations: confirmed: Vaš e-poštni naslov je bil uspešno potrjen. send_instructions: V nekaj minutah boste prejeli e-poštno sporočilo z navodili za potrditev vašega e-poštnega naslova. Če niste prejeli e-poštnega sporočila, preverite mapo neželena pošta. - send_paranoid_instructions: Če vaš e-poštni naslov obstaja v naši podatkovni bazi, boste v nekaj minutah prejeli e-poštno sporočilo z navodili za potrditev vašega e-poštnega naslova. Če niste prejeli e-poštnega sporočila, preverite mapo neželena pošta. + send_paranoid_instructions: Če vaš e-poštni naslov obstaja v naši zbirki podatkov, boste v nekaj minutah prejeli e-poštno sporočilo z navodili za potrditev vašega e-poštnega naslova. Če niste prejeli e-poštnega sporočila, preverite mapo neželena pošta. failure: already_authenticated: Ste že prijavljeni. inactive: Vaš račun še ni aktiviran. @@ -21,37 +21,37 @@ sl: action: Potrdi e-poštni naslov action_with_app: Potrdi in se vrni v %{app} explanation: S tem e-poštnim naslovom ste ustvarili račun na %{host}. Z enim samim klikom ga aktivirate. Če to niste bili vi, prosimo, prezrite to e-poštno sporočilo. - explanation_when_pending: S tem e-poštnim naslovom ste zaprosili za povabilo na %{host}. Ko potrdite svoj e-poštni naslov, bomo pregledali vašo prijavo. Do takrat se ne morete prijaviti. Če bo vaša prijava zavrnjena, bodo vaši podatki odstranjeni, zato ne bo potrebno nadaljnje ukrepanje. Če to niste bili vi, prezrite to e-poštno sporočilo. - extra_html: Preverite tudi pravila vozlišča in naše pogoje storitve. + explanation_when_pending: S tem e-poštnim naslovom ste zaprosili za povabilo na %{host}. Ko potrdite svoj e-poštni naslov, bomo pregledali vašo prijavo. Do takrat se ne morete prijaviti. Če bo vaša prijava zavrnjena, bodo vaši podatki odstranjeni, zato nadaljnje ukrepanje ne bo potrebno. Če to niste bili vi, prezrite to e-poštno sporočilo. + extra_html: Preverite tudi pravila strežnika in naše pogoje storitve. subject: 'Mastodon: Navodila za potrditev za %{instance}' title: Potrdi e-poštni naslov email_changed: - explanation: 'E-poštni naslov za vaš račun je spremenjen na:' - extra: Če niste spremenili e-pošte, je verjetno, da je nekdo pridobil dostop do vašega računa. Prosim, zamenjajte geslo takoj. Če ste blokirani iz svojega računa se obrnite na skrbnika vozlišča. - subject: 'Mastodon: E-pošta je spremenjena' + explanation: 'E-poštni naslov za vaš račun je spremenjen v:' + extra: Če niste spremenili e-pošte, je verjetno, da je nekdo pridobil dostop do vašega računa. Prosimo, zamenjajte geslo takoj ali se obrnite na skbrnika, če ste izklopljeni iz svojega računa. + subject: 'Mastodon: e-poštni naslov je spremenjen' title: Novi e-poštni naslov password_change: explanation: Geslo za vaš račun je bilo spremenjeno. - extra: Če niste spremenili gesla, je verjetno, da je nekdo pridobil dostop do vašega računa. Prosim, zamenjajte geslo takoj. Če ste blokirani iz svojega računa se obrnite na skrbnika vozlišča. - subject: 'Mastodon: Geslo je spremenjeno' + extra: Če niste spremenili gesla, je verjetno, da je nekdo pridobil dostop do vašega računa. Prosimo, zamenjajte geslo takoj. Če ste blokirani iz svojega računa, se obrnite na skrbnika strežnika. + subject: 'Mastodon: geslo je spremenjeno' title: Geslo je spremenjeno reconfirmation_instructions: explanation: Potrdite novi naslov, da spremenite svoj e-poštni naslov. - extra: Če te spremembe niste sprožili, prezrite to e-poštno sporočilo. E-poštni naslov za račun Mastodon se ne bo spremenil, dokler ne kliknete na zgornjo povezavo. - subject: 'Mastodon: Potrdite e-pošto za %{instance}' + extra: Če te spremembe niste sprožili, prezrite to e-poštno sporočilo. E-poštni naslov za račun Mastodon se ne bo spremenil, dokler ne kliknete zgornje povezave. + subject: 'Mastodon: potrdite e-pošto za %{instance}' title: Potrdi e-poštni naslov reset_password_instructions: action: Spremeni geslo explanation: Zahtevali ste novo geslo za svoj račun. - extra: Če tega niste zahtevali, prezrite to e-poštno sporočilo. Vaše geslo se ne bo spremenilo, dokler ne kliknete na zgornjo povezavo in ustvarite novega. - subject: 'Mastodon: Navodila za ponastavitev gesla' - title: Ponastavi geslo + extra: Če tega niste zahtevali, prezrite to e-poštno sporočilo. Vaše geslo se ne bo spremenilo, dokler ne kliknete zgornje povezave in ustvarite novega. + subject: 'Mastodon: navodila za ponastavitev gesla' + title: Ponastavitev gesla two_factor_disabled: explanation: Dvojno oz. dvofazno preverjanje pristnosti je za vaš račun onemogočeno. Prijava je zdaj možna le z e-poštnim naslovom in geslom. subject: 'Mastodon: dvojno preverjanje pristnosti je onemogočeno' title: 2FA onemogočeno two_factor_enabled: - explanation: Dvojno oz. dvofazno preverjanje pristnosti je za vaš račun omogočena. Žeton, izdelan z aplikacijo TOTP, bo zahtevan zs prijavo. + explanation: Dvojno oz. dvofazno preverjanje pristnosti je za vaš račun omogočeno. Žeton, izdelan z aplikacijo TOTP, bo zahtevan zs prijavo. subject: 'Mastodon: dvojno preverjanje pristnosti je omogočeno' title: 2FA omogočeno two_factor_recovery_codes_changed: @@ -59,7 +59,7 @@ sl: subject: 'Mastodon: varnostne obnovitvene kode za dvojno preverjanje pristnosti so ponovno izdelane' title: obnovitvene kode 2FA spremenjene unlock_instructions: - subject: 'Mastodon: Odkleni navodila' + subject: 'Mastodon: navodila za odklepanje' webauthn_credential: added: explanation: Naslednja varnostna koda je dodana vašemu računu @@ -70,30 +70,30 @@ sl: subject: 'Mastodon: varnostna koda izbrisana' title: Ena od vaših varnostnih kod je bila izbrisana webauthn_disabled: - explanation: Overjanje pristnosti z varnostnimi ključi je za vaš račun onemogočeno. Prijava je zdaj možna le z uporabo žetona, ki ga izdela aplikacijo TOTP. + explanation: Overjanje pristnosti z varnostnimi kodami je za vaš račun onemogočeno. Prijava je zdaj možna le z uporabo žetona, ki ga izdela oparjena aplikacija TOTP. subject: 'Mastodon: overjanje pristnosti z varnosnimi kodami je onemogočeno' title: Varnostne kode onemogočene webauthn_enabled: - explanation: Overjanje z varnostnim ključem je omogočeno za vaš račun. Svoj varnostni ključ lahko zdaj uporabite za prijavo. + explanation: Overjanje z varnostno kodo je za vaš račun omogočeno. Svojo varnostno kodo lahko zdaj uporabite za prijavo. subject: 'Mastodon: preverjanje pristnosti z varnostno kodo je omogočeno' title: Varnostne kode omogočene omniauth_callbacks: failure: Overitev iz %{kind} ni možna zaradi "%{reason}". success: Overitev iz računa %{kind} je bila uspešna. passwords: - no_token: Do te strani ne morete dostopati, ne da bi prišli iz e-poštne za ponastavitev gesla. Če prihajate iz e-poštne za ponastavitev gesla, se prepričajte, da ste uporabili celoten navedeni URL. - send_instructions: Če vaš e-poštni naslov obstaja v naši bazi podatkov, boste v nekaj minutah na vaš e-poštni naslov prejeli povezavo za obnovitev gesla. Če niste prejeli e-pošte, preverite mapo z neželeno pošto. - send_paranoid_instructions: Če vaš e-poštni naslov obstaja v naši bazi podatkov, boste v nekaj minutah na vaš e-poštni naslov prejeli povezavo za obnovitev gesla. Če niste prejeli e-pošte, preverite mapo z neželeno pošto. + no_token: Do te strani ne morete dostopati, ne da bi prišli iz e-pošte za ponastavitev gesla. Če prihajate iz e-pošte za ponastavitev gesla, se prepričajte, da ste uporabili celoten navedeni URL. + send_instructions: Če vaš e-poštni naslov obstaja v naši zbirki podatkov, boste v nekaj minutah na svoj e-poštni naslov prejeli povezavo za obnovitev gesla. Če niste prejeli e-pošte, preverite mapo z neželeno pošto. + send_paranoid_instructions: Če vaš e-poštni naslov obstaja v naši zbirki podatkov, boste v nekaj minutah na svoj e-poštni naslov prejeli povezavo za obnovitev gesla. Če niste prejeli e-pošte, preverite mapo z neželeno pošto. updated: Vaše geslo je bilo uspešno spremenjeno. Zdaj ste prijavljeni. updated_not_active: Vaše geslo je bilo uspešno spremenjeno. registrations: - destroyed: Adijo! Vaš račun je bil uspešno preklican. Upamo, da vas bomo kmalu spet videli. + destroyed: Srečno! Vaš račun je bil uspešno preklican. Upamo, da vas bomo kmalu spet videli. signed_up: Dobrodošli! Uspešno ste se vpisali. signed_up_but_inactive: Uspešno ste se vpisali. Vendar vas nismo mogli prijaviti, ker vaš račun še ni aktiviran. signed_up_but_locked: Uspešno ste se vpisali. Vendar vas nismo mogli prijaviti, ker je vaš račun zaklenjen. - signed_up_but_pending: Na vaš e-poštni naslov je bilo poslano sporočilo s povezavo za potrditev. Ko kliknete na povezavo, bomo pregledali vašo prijavo. Obveščeni boste, če bo odobren. + signed_up_but_pending: Na vaš e-poštni naslov je bilo poslano sporočilo s povezavo za potrditev. Ko kliknete povezavo, bomo pregledali vašo prijavo. Obveščeni boste, če bo odobrena. signed_up_but_unconfirmed: Na vaš e-poštni naslov je bilo poslano sporočilo s povezavo za potrditev. Sledite povezavi, da aktivirate svoj račun. Če niste prejeli te e-pošte, preverite mapo z neželeno pošto. - update_needs_confirmation: Uspešno ste posodobili račun, vendar moramo potrditi vaš novi e-poštni naslov. Preverite svojo e-pošto in sledite povezavi za potrditev, da potrdite nov e-poštni naslov. Če niste prejeli te e-poše, preverite mapo z neželeno pošto. + update_needs_confirmation: Uspešno ste posodobili račun, vendar moramo potrditi vaš novi e-poštni naslov. Preverite svojo e-pošto in sledite povezavi za potrditev, da potrdite nov e-poštni naslov. Če niste prejeli te e-pošte, preverite mapo z neželeno pošto. updated: Vaš račun je bil uspešno posodobljen. sessions: already_signed_out: Uspešno ste se odjavili. @@ -111,7 +111,7 @@ sl: not_found: ni najdeno not_locked: ni bil zaklenjen not_saved: - few: "%{count} napake so preprečile shranjevanje %{resource}:" + few: "%{count} napake so preprečile shranjevanje vira %{resource}:" one: '1 napaka je preprečila shranjevanje %{resource}:' - other: "%{count} napak je preprečilo shranjevanje %{resource}:" - two: "%{count} napaki sta preprečili shranjevanje %{resource}:" + other: "%{count} napak je preprečilo shranjevanje vira %{resource}:" + two: "%{count} napaki sta preprečili shranjevanje vira %{resource}:" diff --git a/config/locales/devise.sv.yml b/config/locales/devise.sv.yml index b165326060f385..c1696d3b43d477 100644 --- a/config/locales/devise.sv.yml +++ b/config/locales/devise.sv.yml @@ -18,26 +18,26 @@ sv: unconfirmed: Du måste bekräfta din e-postadress innan du fortsätter. mailer: confirmation_instructions: - action: Verifiera e-post adressen + action: Verifiera e-postadress action_with_app: Bekräfta och återgå till %{app} - explanation: Du har skapat ett konto på %{host} med den här e-post adressen. Du är ett klick från att aktivera det. Om det inte var du, ignorera det här e-post meddelandet. - explanation_when_pending: Du ansökte om en inbjudan till %{host} med denna e-post adress. När du har bekräftat din e-post adress kommer vi att granska din ansökan. Du kan logga in för att ändra dina uppgifter eller ta bort ditt konto, men du kan inte komma åt de flesta funktionerna förrän ditt konto har godkänts. Om din ansökan avvisas kommer dina uppgifter att tas bort, så ingen ytterligare åtgärd kommer att krävas av dig. Om detta inte var du, vänligen ignorera detta mail. + explanation: Du har skapat ett konto på %{host} med den här e-postadressen. Du är ett klick bort från att aktivera det. Om det inte var du ignorerar det här e-postmeddelandet. + explanation_when_pending: Du ansökte om en inbjudan till %{host} med denna e-postadress. När du har bekräftat din e-postadress kommer vi att granska din ansökan. Du kan logga in för att ändra dina uppgifter eller ta bort ditt konto, men du kan inte komma åt de flesta funktionerna förrän ditt konto har godkänts. Om din ansökan avvisas kommer dina uppgifter att tas bort, så ingen ytterligare åtgärd kommer att krävas av dig. Om detta inte var du, vänligen ignorera detta mail. extra_html: Vänligen observera systemets regler och våra användarvillkor. subject: 'Mastodon: Bekräftelse instruktioner för %{instance}' - title: Verifiera e-post adress + title: Verifiera e-postadress email_changed: - explanation: 'E-post adressen för ditt konto ändras till:' - extra: Om du inte ändrade din e-post är det troligt att någon har fått tillgång till ditt konto. Vänligen ändra ditt lösenord omedelbart eller kontakta dataserver administratören om du är utelåst från ditt konto. + explanation: 'E-postadressen för ditt konto ändras till:' + extra: Om du inte ändrade din e-post är det troligt att någon har fått tillgång till ditt konto. Vänligen ändra ditt lösenord omedelbart eller kontakta serveradministratören om du är utelåst från ditt konto. subject: 'Mastodon: e-post ändrad' title: Ny e-post adress password_change: explanation: Lösenordet för ditt konto har ändrats. - extra: Om du inte ändrade ditt lösenord är det troligt att någon har fått tillgång till ditt konto. Vänligen ändra ditt lösenord omedelbart eller kontakta server administratören om du är utelåst från ditt konto. + extra: Om du inte ändrade ditt lösenord är det troligt att någon har fått tillgång till ditt konto. Vänligen ändra ditt lösenord omedelbart eller kontakta serveradministratören om du är utelåst från ditt konto. subject: 'Mastodon: Lösenordet har ändrats' title: Lösenordet har ändrats reconfirmation_instructions: explanation: Bekräfta den nya adressen för att ändra din e-post adress. - extra: Om den här ändringen inte initierades av dig kan du ignorerar det här e-postmeddelandet. E-postadressen för Mastodon-kontot ändras inte förrän du kommer åt länken ovan. + extra: Om den här ändringen inte initierades av dig kan du ignorera det här e-postmeddelandet. E-postadressen för Mastodon-kontot ändras inte förrän du klickar på länken ovan. subject: 'Mastodon: Bekräfta e-post för %{instance}' title: Verifiera e-postadress reset_password_instructions: diff --git a/config/locales/devise.tr.yml b/config/locales/devise.tr.yml index 98baf291612f0a..86b1c951f7b8be 100644 --- a/config/locales/devise.tr.yml +++ b/config/locales/devise.tr.yml @@ -8,7 +8,7 @@ tr: failure: already_authenticated: Zaten oturum açtınız. inactive: Hesabınız henüz etkinleştirilmedi. - invalid: Geçersiz %{authentication_keys} ya da şifre. + invalid: Geçersiz %{authentication_keys} ya da parola. last_attempt: Hesabınız kilitlenmeden önce bir kez daha denemeniz gerekir. locked: Hesabınız kilitlendi. not_found_in_database: Geçersiz %{authentication_keys} ya da parola. @@ -31,7 +31,7 @@ tr: subject: 'Mastodon: E-posta adresi değişti' title: Yeni e-posta adresi password_change: - explanation: Hesabınızın şifresi değiştirildi. + explanation: Hesabınızın parolası değiştirildi. extra: Parolanızı değiştirmediyseniz, büyük olasılıkla birileri hesabınıza erişmiş olabilir. Lütfen derhal parolanızı değiştirin veya hesabınız kilitlendiyse sunucu yöneticisine başvurun. subject: 'Mastodon: Parola değiştirildi' title: Parola değiştirildi @@ -81,11 +81,11 @@ tr: failure: '%{kind}''den kimliğiniz doğrulanamadı çünkü "%{reason}".' success: "%{kind} hesabından başarıyla kimlik doğrulaması yapıldı." passwords: - no_token: Bu sayfaya şifre sıfırlama e-postasından gelmeden erişemezsiniz. Şifre sıfırlama e-postasından geliyorsanız lütfen sağlanan tam URL'yi kullandığınızdan emin olun. + no_token: Bu sayfaya parola sıfırlama e-postasından gelmeden erişemezsiniz. Parola sıfırlama e-postasından geliyorsanız lütfen sağlanan tam URL'yi kullandığınızdan emin olun. send_instructions: E-posta adresiniz veritabanımızda varsa, e-posta adresinize birkaç dakika içinde bir parola kurtarma bağlantısı gönderilir. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. send_paranoid_instructions: E-posta adresiniz veritabanımızda varsa, e-posta adresinize birkaç dakika içinde bir parola kurtarma bağlantısı gönderilir. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. - updated: Şifreniz başarılı bir şekilde değiştirildi. Şu an oturum açtınız. - updated_not_active: Şifreniz başarıyla değiştirildi. + updated: Parolanız başarılı bir şekilde değiştirildi. Şu an oturum açtınız. + updated_not_active: Parolanız başarıyla değiştirildi. registrations: destroyed: Görüşürüz! hesabın başarıyla iptal edildi. Umarız seni sonra tekrar görürüz. signed_up: Hoş geldiniz! Başarılı bir şekilde oturum açtınız. diff --git a/config/locales/devise.uk.yml b/config/locales/devise.uk.yml index afd83861cddeca..4450a4e26af13e 100644 --- a/config/locales/devise.uk.yml +++ b/config/locales/devise.uk.yml @@ -22,17 +22,17 @@ uk: action_with_app: Підтвердити та повернутися до %{app} explanation: Ви створили обліковий запис на %{host} з цією адресою електронної пошти, і зараз на відстані одного кліку від його активації. Якщо це були не ви, проігноруйте цього листа, будь ласка. explanation_when_pending: Ви подали заявку на запрошення до %{host} з цією адресою електронної пошти. Після підтвердження адреси ми розглянемо вашу заявку. Ви можете увійти, щоб змінити ваші дані або видалити свій обліковий запис, але Ви не зможете отримати доступ до більшості функцій, поки Ваш обліковий запис не буде схвалено. Якщо вашу заявку буде відхилено, ваші дані будуть видалені, тож вам не потрібно буде нічого робити. Якщо це були не ви, просто проігноруйте цей лист. - extra_html: Також перегляньте правила серверу та умови використання. + extra_html: Також перегляньте правила сервера та умови користування. subject: 'Mastodon: Інструкції для підтвердження %{instance}' title: Підтвердити адресу електронної пошти email_changed: explanation: 'Адреса електронної пошти для вашого облікового запису змінюється на:' - extra: Якщо ви не змінювали свою адресу електронної пошти, то хтось вірогідно отримав доступ до вашого облікового запису. Будь ласка, негайно змініть свій пароль або зв'яжіться з адміністратором серверу, якщо ви не маєте доступу до свого облікового запису. + extra: Якщо ви не змінювали свою адресу електронної пошти, то хтось вірогідно отримав доступ до вашого облікового запису. Будь ласка, негайно змініть свій пароль або зв'яжіться з адміністратором сервера, якщо ви не маєте доступу до свого облікового запису. subject: 'Mastodon: адресу електронної пошти змінено' title: Нова адреса електронної пошти password_change: explanation: Пароль до вашого облікового запису був змінений. - extra: Якщо ви не змінювали свій пароль, то хтось вірогідно отримав доступ до вашого облікового запису. Будь ласка, негайно змініть свій пароль або зв'яжіться з адміністратором серверу, якщо ви не маєте доступу до свого облікового запису. + extra: Якщо ви не змінювали свій пароль, то хтось вірогідно отримав доступ до вашого облікового запису. Будь ласка, негайно змініть свій пароль або зв'яжіться з адміністратором сервера, якщо ви не маєте доступу до свого облікового запису. subject: 'Mastodon: Ваш пароль змінений' title: Пароль змінено reconfirmation_instructions: diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml index dc87d8ddb464ec..e2f7bafd1d1078 100644 --- a/config/locales/devise.zh-CN.yml +++ b/config/locales/devise.zh-CN.yml @@ -9,7 +9,7 @@ zh-CN: already_authenticated: 你已登录。 inactive: 你还没有激活帐户。 invalid: "%{authentication_keys} 无效或密码错误。" - last_attempt: 你只有最后一次尝试机会,若未通过,账号将被锁定。 + last_attempt: 你只有最后一次尝试机会,若未通过,帐号将被锁定。 locked: 你的帐户已被锁定。 not_found_in_database: "%{authentication_keys}或密码错误。" pending: 你的账号仍在审核中。 @@ -20,7 +20,7 @@ zh-CN: confirmation_instructions: action: 验证电子邮件地址 action_with_app: 确认并返回%{app} - explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个账号。点击下面的链接即可激活账号。如果你没有创建账号,请忽略此邮件。 + explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个帐号。点击下面的链接即可激活帐号。如果你没有创建帐号,请忽略此邮件。 explanation_when_pending: 你用这个电子邮件申请了在 %{host} 注册。在确认电子邮件地址之后,我们会审核你的申请。在此之前,你不能登录。如果你的申请被驳回,你的数据会被移除,因此你无需再采取任何行动。如果申请人不是你,请忽略这封邮件。 extra_html: 请记得阅读本实例的相关规定我们的使用条款。 subject: Mastodon:来自 %{instance} 的确认指引 diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml index 0d9e6a56ad792a..e500e1d9e8de96 100644 --- a/config/locales/devise.zh-TW.yml +++ b/config/locales/devise.zh-TW.yml @@ -2,9 +2,9 @@ zh-TW: devise: confirmations: - confirmed: 您的電子信箱地址已確認成功。 + confirmed: 您的電子郵件地址已確認成功。 send_instructions: 幾分鐘後您將收到確認信件。若未收到此信件,請檢查垃圾郵件資料夾。 - send_paranoid_instructions: 如果您的電子信箱存在於我們的資料庫,您將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。 + send_paranoid_instructions: 如果您的電子郵件存在於我們的資料庫,您將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。 failure: already_authenticated: 您已登入。 inactive: 您的帳號尚未啟用。 @@ -15,31 +15,31 @@ zh-TW: pending: 您的帳號仍在審核中。 timeout: 登入階段逾時。請重新登入以繼續。 unauthenticated: 您必須先登入或註冊才能繼續使用。 - unconfirmed: 您必須先確認電子信箱才能繼續使用。 + unconfirmed: 您必須先確認電子郵件才能繼續使用。 mailer: confirmation_instructions: - action: 驗證電子信箱地址 + action: 驗證電子郵件地址 action_with_app: 確認並返回 %{app} - explanation: 您已經在 %{host} 上以此電子信箱地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。 - explanation_when_pending: 您使用此電子信箱地址申請了 %{host} 的邀請。當您確認電子信箱後我們將審核您的申請。您可以登入以改變您的細節或刪除您的帳號,但直到您的帳戶被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。 + explanation: 您已經在 %{host} 上以此電子郵件地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。 + explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件信箱後我們將審核您的申請。您可以登入以改變您的細節或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。 extra_html: 同時也請看看伺服器規則服務條款。 subject: Mastodon:%{instance} 確認說明 - title: 驗證電子信箱地址 + title: 驗證電子郵件地址 email_changed: - explanation: 您帳號的電子信箱地址將變更為: - extra: 若您未變更電子信箱,那麼很有可能是某人取得了您帳號的存取權限。請立刻變更密碼,或當帳號被鎖定時,請聯絡伺服器的管理員。 - subject: Mastodon:已變更電子信箱 - title: 新電子信箱地址 + explanation: 您帳號的電子郵件地址將變更為: + extra: 若您未變更電子郵件,那麼很有可能是某人取得了您帳號的存取權限。請立刻變更密碼,或當帳號被鎖定時,請聯絡伺服器的管理員。 + subject: Mastodon:已變更電子郵件 + title: 新電子郵件地址 password_change: explanation: 您帳號的密碼已變更。 extra: 若您未變更密碼,那麼很有可能是某人取得了您帳號的存取權限。請立刻變更密碼,或若帳號被鎖定時,請聯絡伺服器的管理員。 subject: Mastodon:已變更密碼 title: 密碼已變更 reconfirmation_instructions: - explanation: 請確認新的電子信箱地址以變更。 - extra: 若此次變更不是由您開啟的,請忽略此信件。Mastodon 帳號的電子信箱地址在您存取上面的連結前不會變更。 - subject: Mastodon:確認 %{instance} 的電子信箱地址 - title: 驗證電子信箱地址 + explanation: 請確認新的電子郵件地址以變更。 + extra: 若此次變更不是由您起始的,請忽略此信件。Mastodon 帳號的電子郵件地址在您存取上面的連結前不會變更。 + subject: Mastodon:確認 %{instance} 的電子郵件地址 + title: 驗證電子郵件地址 reset_password_instructions: action: 變更密碼 explanation: 您已請求帳號的新密碼。 @@ -47,17 +47,17 @@ zh-TW: subject: Mastodon:重設密碼指引 title: 重設密碼 two_factor_disabled: - explanation: 您帳號的兩步驟驗證已停用。現在只使用電子信箱及密碼登入。 - subject: Mastodon:已停用兩步驟驗證 + explanation: 您帳號的兩階段驗證已停用。現在只使用電子郵件及密碼登入。 + subject: Mastodon:已停用兩階段驗證 title: 已停用 2FA two_factor_enabled: - explanation: 已對您的帳號啟用兩步驟驗證。登入時將需要配對之 TOTP 應用程式所產生的 Token。 - subject: Mastodon:已啟用兩步驟驗證 + explanation: 已對您的帳號啟用兩階段驗證。登入時將需要已配對的 TOTP 應用程式所產生之 Token。 + subject: Mastodon:已啟用兩階段驗證 title: 已啟用 2FA two_factor_recovery_codes_changed: - explanation: 上一次的復原碼已經失效,且已產生新的。 - subject: Mastodon:兩步驟驗證復原碼已經重新產生 - title: 2FA 復原碼已變更 + explanation: 之前的備用驗證碼已經失效,且已產生新的。 + subject: Mastodon:兩階段驗證備用驗證碼已經重新產生 + title: 2FA 備用驗證碼已變更 unlock_instructions: subject: Mastodon:解鎖指引 webauthn_credential: @@ -70,37 +70,37 @@ zh-TW: subject: Mastodon:安全密鑰已移除 title: 您的一支安全密鑰已經被移除 webauthn_disabled: - explanation: 您的帳戶並沒有啟用安全密鑰認證方式。只能以 TOTP app 產生地成對 token 登入。 - subject: Mastodon:安全密鑰認證方式已關閉 - title: 已關閉安全密鑰 + explanation: 您的帳號已停用安全密鑰認證。只能透過已配對的 TOTP 應用程式所產生之 Token 登入。 + subject: Mastodon:安全密鑰認證方式已停用 + title: 已停用安全密鑰 webauthn_enabled: - explanation: 您的帳戶已啟用安全密鑰認證。您可以使用安全密鑰登入了。 + explanation: 您的帳號已啟用安全密鑰認證。您可以使用安全密鑰登入了。 subject: Mastodon:已啟用安全密鑰認證 title: 已啟用安全密鑰 omniauth_callbacks: failure: 無法透過 %{kind} 認證是否為您,因為「%{reason}」。 - success: 成功透過 %{kind} 帳戶登入。 + success: 成功透過 %{kind} 帳號登入。 passwords: no_token: 您必須透過密碼重設信件才能存取此頁面。若確實如此,請確定輸入的網址是完整的。 - send_instructions: 若電子信箱地址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 - send_paranoid_instructions: 若電子信箱地址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 + send_instructions: 若電子郵件地址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 + send_paranoid_instructions: 若電子郵件地址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 updated: 您的密碼已成功變更,現在已經登入。 updated_not_active: 您的密碼已成功變更。 registrations: - destroyed: 再見!您的帳戶已成功取消,期待再相逢。 + destroyed: 再見!您的帳號已成功取消,期待再相逢。 signed_up: 歡迎!您已成功註冊。 - signed_up_but_inactive: 您已註冊成功,但由於您的帳戶尚未啟用,我們暫時無法讓您登入。 - signed_up_but_locked: 您已註冊成功,但由於您的帳戶已被鎖定,我們無法讓您登入。 - signed_up_but_pending: 包含確認連結的訊息已寄到您的電子信箱。按下此連結後我們將審核您的申請。核准後將通知您。 - signed_up_but_unconfirmed: 包含確認連結的訊息已寄到您的電子信箱。請前往連結以啟用帳戶。若未收到請檢查垃圾郵件資料夾。 - update_needs_confirmation: 已成功更新您的帳戶,但仍需驗證您的新信箱。請檢查電子信箱並前往確認連結來確認新信箱地址。若未收到請檢查垃圾郵件資料夾。 - updated: 您的帳戶已成功更新。 + signed_up_but_inactive: 您已註冊成功,但由於您的帳號尚未啟用,我們暫時無法讓您登入。 + signed_up_but_locked: 您已註冊成功,但由於您的帳號已被鎖定,我們無法讓您登入。 + signed_up_but_pending: 包含確認連結的訊息已寄到您的電子郵件信箱。按下此連結後我們將審核您的申請。核准後將通知您。 + signed_up_but_unconfirmed: 包含確認連結的訊息已寄到您的電子信箱。請前往連結以啟用帳號。若未收到請檢查垃圾郵件資料夾。 + update_needs_confirmation: 已成功更新您的帳號,但仍需驗證您的新信箱。請檢查電子信箱並前往確認連結來確認新信箱位址。若未收到請檢查垃圾郵件資料夾。 + updated: 您的帳號已成功更新。 sessions: already_signed_out: 已成功登出。 signed_in: 已成功登入。 signed_out: 已成功登出。 unlocks: - send_instructions: 幾分鐘後您將收到解鎖帳戶的指引信件。若未收到請檢查垃圾郵件資料夾。 + send_instructions: 幾分鐘後您將收到解鎖帳號的指引信件。若未收到請檢查垃圾郵件資料夾。 send_paranoid_instructions: 若此帳號存在,您將在幾分鐘後收到解鎖指引信件。若未收到請檢查垃圾郵件資料夾。 unlocked: 已解鎖您的帳號,請登入繼續。 errors: diff --git a/config/locales/doorkeeper.af.yml b/config/locales/doorkeeper.af.yml index 252f9fd5a25d35..ec1eda8bd137f0 100644 --- a/config/locales/doorkeeper.af.yml +++ b/config/locales/doorkeeper.af.yml @@ -1 +1,164 @@ +--- af: + activerecord: + attributes: + doorkeeper/application: + name: Toepassing naam + redirect_uri: Herlei URI + scopes: Bestekke + website: Toepassing webtuiste + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: kan nie 'n vragment bevat nie. + invalid_uri: moet 'n geldige URI wees. + relative_uri: moet 'n absolute URI wees. + secured_uri: moet 'n HTTPS/SSL URI wees. + doorkeeper: + applications: + buttons: + authorize: Magtig + cancel: Kanselleer + destroy: Vernietig + edit: Redigeer + submit: Dien in + confirmations: + destroy: Is jy seker? + edit: + title: Redigeer toepassing + form: + error: Oeps! Hersien jou vorm vir moontlike foute + help: + native_redirect_uri: Gebruik %{native_redirect_uri} vir plaaslike toetse + redirect_uri: Gebruik een lyn per URI + scopes: Verdeel omvang-grense met spasies. Los dit leeg om verstek omvange te gebruik. + index: + application: Toepassing + callback_url: Terugroep URL + delete: Wis uit + empty: Jy het geen toepassings nie. + name: Naam + new: Nuwe toepassing + scopes: Omvange + show: Vertoon + title: Jou toepassings + new: + title: Nuwe toepassing + show: + actions: Aksies + application_id: Kliënt sleutel + callback_urls: Terugroep URL'e + scopes: Omvange + secret: Kliënt geheim + title: 'Toepassing: %{name}' + authorizations: + buttons: + authorize: Magtig + deny: Weier + error: + title: "'n Fout het plaasgevind" + new: + prompt_html: "%{client_name} wil toegang hê tot jou rekening. Dit is a derde party toepassing. Indien jy dit nie vertrou nie, moet dit nie bemagtig word nie." + review_permissions: Hersien toestemming + title: Benodig magtiging + show: + title: Kopieër hierdie magtigings kode en plaas dit in die toepassing. + authorized_applications: + buttons: + revoke: Herroep + confirmations: + revoke: Is jy seker? + index: + authorized_at: Bemagtig op %{date} + description_html: Hierdie is toepassings wat deur middel van die API toegang tot jou rekening kan verkry. As daar enige toepassings is wat jy nie herken nie, of 'n toepassing is wat wangedra, kan die bemagtiging herroep word. + last_used_at: Laas gebruik op %{date} + never_used: Noot gebruik nie + scopes: Magtiging + superapp: Intern + title: Jou gemagtigde toepassings + errors: + messages: + access_denied: Die hulpbron eienaar of magtigingsbediener het die aansoek afgekeur. + credential_flow_not_configured: Hulpbron Eienaar Wagwoord Geloofsbrewe vloei het gefaal omdat Doorkeeper.configure.resource_owner_from_credentials nie opgestel is nie. + flash: + applications: + create: + notice: Toepassing geskep. + destroy: + notice: Toepassing uitgewis. + update: + notice: Toepassing opdateer. + authorized_applications: + destroy: + notice: Toepassing herroep. + grouped_scopes: + access: + read: Slegs-lees toegang + read/write: Lees en skryf toegang + write: Slegs-skryf toegang + title: + accounts: Rekeninge + admin/accounts: Administrasie van rekeninge + admin/all: Alle administratiewe funksies + admin/reports: Administrasie van rapporteringe + all: Alles + blocks: Blokkeringe + bookmarks: Boekmerke + conversations: Gesprekke + crypto: End-tot-end enkripsie + favourites: Gunstelinge + filters: Filters + follow: Verhoudinge + lists: Lyste + media: Media aanhegsels + mutes: Dempinge + notifications: Kennisgewings + push: Stoot kennisgewings + reports: Rapporteringe + search: Soek + statuses: Plasings + layouts: + admin: + nav: + applications: Toepassings + oauth2_provider: OAuth2 Verskaffer + application: + title: Benodig OAuth bemagtiging + scopes: + admin:read: lees alle data op die bediener + admin:read:accounts: lees sensitiewe inligting vanaf alle rekeninge + admin:read:reports: lees sensitiewe inligting van alle verslae end aangeklaagde rekeninge + admin:write: verander alle data op die bediener + admin:write:accounts: voer modereer aksies uit op rekeninge + admin:write:reports: voer modereer aksies uit op verslae + crypto: gebruik end-tot-end enkripsie + follow: verander rekening verhoudinge + push: ontvang jou stootkennisgewings + read: lees die data van al jou rekeninge + read:accounts: sien rekening inligting + read:blocks: sien blokeringe + read:bookmarks: sien jou boekmerke + read:favourites: sien jou gunstelinge + read:filters: sien jou filters + read:lists: sien jou lyste + read:mutes: sien jou stilmake + read:notifications: sien jou kennisgewinge + read:reports: sien jou rapporteringe + read:search: soek namens jou + read:statuses: sien alle plasings + write: verander alle data van jou rekening + write:accounts: verander jou profiel + write:blocks: blokeer rekeninge en domeine + write:bookmarks: boekmerk plasings + write:conversations: demp en wis gesprekke uit + write:favourites: merk gunsteling plasings + write:filters: skep filters + write:follows: volg mense + write:lists: skep lyste + write:media: laai meda lêers op + write:mutes: demp mense en gesprekke + write:notifications: maak jou kennisgewings skoon + write:reports: rapporteer ander mense + write:statuses: publiseer plasings diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index 45eb623ec4e151..c65a26bd502382 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -30,7 +30,7 @@ ast: native_redirect_uri: Usa %{native_redirect_uri} pa pruebes llocales redirect_uri: Usa una llinia per URI index: - empty: Nun tienes aplicaciones. + empty: Nun tienes nenguna aplicación. name: Nome new: Aplicación nueva scopes: Ámbitos @@ -66,7 +66,7 @@ ast: server_error: El sirvidor d'autorizaciones alcontró una condición inesperada qu'evitó que cumpliera la solicitú. temporarily_unavailable: Anguaño'l sirvidor d'autorizaciones nun ye a remanar la solicitú pola mor d'una sobrecarga temporal o caltenimientu del sirvidor. unauthorized_client: El veceru nun ta autorizáu pa facer esta solicitú usando esti métodu. - unsupported_response_type: El sirvidor d'autorización nun sofita esta triba de rempuesta. + unsupported_response_type: El sirvidor d'autorización nun ye compatible con esti tipu de respuesta. grouped_scopes: title: notifications: Avisos diff --git a/config/locales/doorkeeper.bg.yml b/config/locales/doorkeeper.bg.yml index 7bfcec48a422a2..ba52a2ac3738fc 100644 --- a/config/locales/doorkeeper.bg.yml +++ b/config/locales/doorkeeper.bg.yml @@ -3,8 +3,8 @@ bg: activerecord: attributes: doorkeeper/application: - name: Име - redirect_uri: URI за пренасочване + name: Име на приложението + redirect_uri: Пренасочващ URI scopes: Обхват website: Уебсайт на приложение errors: @@ -22,10 +22,10 @@ bg: authorize: Упълномощаване cancel: Отказ destroy: Унищожаване - edit: Редакция + edit: Редактиране submit: Изпращане confirmations: - destroy: Потвърждаваш ли изтриването? + destroy: Сигурни ли сте? edit: title: Редактиране на приложението form: @@ -60,6 +60,8 @@ bg: error: title: Възникна грешка new: + prompt_html: "%{client_name} иска разрешение да има достъп до акаунта ви. Приложение от трета страна е.Ако не му се доверявате, то може да не го упълномощявате." + review_permissions: Преглед на разрешенията title: Изисква се упълномощаване show: title: Копирайте този код за удостоверяване и го поставете в приложението. @@ -67,16 +69,22 @@ bg: buttons: revoke: Отмяна confirmations: - revoke: Потвърждаваш ли отмяната? + revoke: Сигурни ли сте? index: - title: Твоите упълномощени приложения + authorized_at: Упълномощено на %{date} + description_html: Има приложения, можещи да имат достъп до акаунта ви, използвайки API. Ако тук има приложения, които не знаете, или работещи неправилно, то може да им откажете достъпа. + last_used_at: Последно обновено на %{date} + never_used: Никога използвано + scopes: Разрешения + superapp: Вътрешно + title: Упълномощените ви приложения errors: messages: access_denied: Заявката беше отказана от собственика на ресурса или от сървъра за упълномощаване. credential_flow_not_configured: Resource Owner Password Credentials предизвика грешка, заради това, че настройките за Doorkeeper.configure.resource_owner_from_credentials липсват. invalid_client: Удостоверяването на клиента предизвика грешка, поради непознат клиент, липсващо клиентско удостоверяване, или заради това, че методът на удостоверяване не се поддържа. invalid_grant: Предоставеното удостоверение за достъп е невалидно, изтекло, отхвърлено, не съвпада с пренасочващото URI, използвано в заявката за удостоверение, или е бил издадено от друг клиент. - invalid_redirect_uri: Наличното пренасочващо URI е невалидно. + invalid_redirect_uri: Включеният пренасочващ URI адрес е невалиден. invalid_request: missing_param: 'Липсва задължителен параметър: %{value}.' request_not_authorized: Заявката трябва да бъде упълномощена. Необходимият параметър за разрешаване на заявка липсва или е невалиден. @@ -104,6 +112,33 @@ bg: authorized_applications: destroy: notice: Приложението е отказано. + grouped_scopes: + access: + read: Достъп само за четене + read/write: Достъп за четене и запис + write: Достъп само за запис + title: + accounts: Акаунти + admin/accounts: Администриране на акаунтите + admin/all: Всички административни функции + admin/reports: Администриране на докладите + all: Всичко + blocks: Блокирания + bookmarks: Отметки + conversations: Разговори + crypto: Криптиране от край до край + favourites: Любими + filters: Филтри + follow: Отношения + follows: Последвания + lists: Списъци + media: Прикачена мултимедия + mutes: Заглушения + notifications: Известия + push: Push-известия + reports: Доклади + search: Търсене + statuses: Публикации layouts: admin: nav: @@ -118,6 +153,7 @@ bg: admin:write: промяна на всички данни на сървъра admin:write:accounts: извършване на действия за модериране на акаунти admin:write:reports: извършване на действия за модериране на докладвания + crypto: употреба на криптиране от край до край follow: следването, блокирането, деблокирането и отмяната на следването на акаунтите push: получаване на вашите изскачащи известия read: четенето на данните от твоя акаунт @@ -132,12 +168,13 @@ bg: read:notifications: преглед на вашите известия read:reports: преглед на вашите докладвания read:search: търсене от ваше име - read:statuses: преглед на всички състояния - write: публикуването от твое име + read:statuses: преглед на всички публикации + write: промяна на всичките ви данни на акаунта write:accounts: промяна на вашия профил write:blocks: блокиране на акаунти и домейни write:bookmarks: отмятане на състояния - write:favourites: любими състояния + write:conversations: заглушаване и изтриване на разговорите + write:favourites: любими публикации write:filters: създаване на филтри write:follows: последване на хора write:lists: създаване на списъци diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index e98eb09157111a..203388823da337 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -145,7 +145,7 @@ ca: applications: Aplicacions oauth2_provider: Proveïdor OAuth2 application: - title: OAuth autorització requerida + title: Autorització OAuth requerida scopes: admin:read: llegir totes les dades en el servidor admin:read:accounts: llegir l'informació sensible de tots els comptes @@ -172,9 +172,9 @@ ca: write: modificar totes les dades del teu compte write:accounts: modifica el teu perfil write:blocks: bloqueja comptes i dominis - write:bookmarks: publicacions a marcadors + write:bookmarks: marcar publicacions write:conversations: silencia i esborra converses - write:favourites: afavorir publicacions + write:favourites: marcar publicacions write:filters: crear filtres write:follows: seguir usuaris write:lists: crear llistes diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml index 4dc4b5e0ae8f8b..85aaccea60731b 100644 --- a/config/locales/doorkeeper.cy.yml +++ b/config/locales/doorkeeper.cy.yml @@ -69,6 +69,7 @@ cy: confirmations: revoke: Ydych chi'n sicr? index: + scopes: Caniatâd title: Eich rhaglenni awdurdodedig errors: messages: @@ -100,6 +101,12 @@ cy: authorized_applications: destroy: notice: Diddymwyd y cais. + grouped_scopes: + title: + accounts: Cyfrifon + bookmarks: Tudalnodau + filters: Hidlyddion + search: Chwilio layouts: admin: nav: diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 3f7e1b2d75827a..ac12cff2179b57 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -72,7 +72,7 @@ de: revoke: Bist du sicher? index: authorized_at: Autorisiert am %{date} - description_html: Dies sind Anwendungen, die über die Programmierschnittstelle auf dein Konto zugreifen können. Wenn es Anwendungen gibt, die du hier nicht erkennst oder eine Anwendung sich falsch verhält, kannst du den Zugriff widerrufen. + description_html: Dies sind Anwendungen, die über die Programmierschnittstelle (API) dieser Mastodon-Instanz auf dein Konto zugreifen können. Sollten hier Apps aufgeführt sein, die du nicht erkennst oder die sich verdächtig verhalten, solltest du den Zugriff schnellstmöglich widerrufen. last_used_at: Zuletzt verwendet am %{date} never_used: Nie verwendet scopes: Berechtigungen @@ -83,13 +83,13 @@ de: access_denied: Die Anfrage wurde durch Benutzer_in oder Autorisierungs-Server verweigert. credential_flow_not_configured: Das Konto konnte nicht gefunden werden, da Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist. invalid_client: 'Client-Authentifizierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.' - invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen, einem anderen Client ausgestellt oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein. + invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen oder einem anderen Client ausgestellt, oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein. invalid_redirect_uri: Der beigefügte Weiterleitungs-URI ist ungültig. invalid_request: missing_param: 'Erforderlicher Parameter fehlt: %{value}.' request_not_authorized: Anfrage muss autorisiert werden. Benötigter Parameter für die Autorisierung der Anfrage fehlt oder ungültig. unknown: Der Anfrage fehlt ein benötigter Parameter, enthält einen nicht unterstützten Parameterwert oder ist anderweitig fehlerhaft. - invalid_resource_owner: Die angegebenen Zugangsdaten für das Konto sind ungültig oder das Konto kann nicht gefunden werden + invalid_resource_owner: Die angegebenen Zugangsdaten für das Konto sind ungültig, oder das Konto kann nicht gefunden werden invalid_scope: Die angeforderte Befugnis ist ungültig, unbekannt oder fehlerhaft. invalid_token: expired: Der Zugriffs-Token ist abgelaufen @@ -130,7 +130,7 @@ de: favourites: Favoriten filters: Filter follow: Beziehungen - follows: Folgt + follows: Folge ich lists: Listen media: Medienanhänge mutes: Stummschaltungen diff --git a/config/locales/doorkeeper.en-GB.yml b/config/locales/doorkeeper.en-GB.yml index ef03d18104983e..1f13709bee9133 100644 --- a/config/locales/doorkeeper.en-GB.yml +++ b/config/locales/doorkeeper.en-GB.yml @@ -1 +1,185 @@ +--- en-GB: + activerecord: + attributes: + doorkeeper/application: + name: Application name + redirect_uri: Redirect URI + scopes: Scopes + website: Application website + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: cannot contain a fragment. + invalid_uri: must be a valid URI. + relative_uri: must be an absolute URI. + secured_uri: must be an HTTPS/SSL URI. + doorkeeper: + applications: + buttons: + authorize: Authorise + cancel: Cancel + destroy: Destroy + edit: Edit + submit: Submit + confirmations: + destroy: Are you sure? + edit: + title: Edit application + form: + error: Whoops! Check your form for possible errors + help: + native_redirect_uri: Use %{native_redirect_uri} for local tests + redirect_uri: Use one line per URI + scopes: Separate scopes with spaces. Leave blank to use the default scopes. + index: + application: Application + callback_url: Callback URL + delete: Delete + empty: You have no applications. + name: Name + new: New application + scopes: Scopes + show: Show + title: Your applications + new: + title: New application + show: + actions: Actions + application_id: Client key + callback_urls: Callback URLs + scopes: Scopes + secret: Client secret + title: 'Application: %{name}' + authorizations: + buttons: + authorize: Authorise + deny: Deny + error: + title: An error has occurred + new: + prompt_html: "%{client_name} would like permission to access your account. It is a third-party application. If you do not trust it, then you should not authorise it." + review_permissions: Review permissions + title: Authorisation required + show: + title: Copy this authorisation code and paste it to the application. + authorized_applications: + buttons: + revoke: Revoke + confirmations: + revoke: Are you sure? + index: + authorized_at: Authorised on %{date} + description_html: These are applications that can access your account using the API. If there are applications you do not recognise here, or an application is misbehaving, you can revoke its access. + last_used_at: Last used on %{date} + never_used: Never used + scopes: Permissions + superapp: Internal + title: Your authorised applications + errors: + messages: + access_denied: The resource owner or authorisation server denied the request. + credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured. + invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method. + invalid_grant: The provided authorisation grant is invalid, expired, revoked, does not match the redirection URI used in the authorisation request, or was issued to another client. + invalid_redirect_uri: The redirect URI included is not valid. + invalid_request: + missing_param: 'Missing required parameter: %{value}.' + request_not_authorized: Request need to be authorised. Required parameter for authorising request is missing or invalid. + unknown: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed. + invalid_resource_owner: The provided resource owner credentials are not valid, or resource owner cannot be found + invalid_scope: The requested scope is invalid, unknown, or malformed. + invalid_token: + expired: The access token expired + revoked: The access token was revoked + unknown: The access token is invalid + resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged. + server_error: The authorisation server encountered an unexpected condition which prevented it from fulfilling the request. + temporarily_unavailable: The authorisation server is currently unable to handle the request due to a temporary overloading or maintenance of the server. + unauthorized_client: The client is not authorised to perform this request using this method. + unsupported_grant_type: The authorisation grant type is not supported by the authorisation server. + unsupported_response_type: The authorisation server does not support this response type. + flash: + applications: + create: + notice: Application created. + destroy: + notice: Application deleted. + update: + notice: Application updated. + authorized_applications: + destroy: + notice: Application revoked. + grouped_scopes: + access: + read: Read-only access + read/write: Read and write access + write: Write-only access + title: + accounts: Accounts + admin/accounts: Administration of accounts + admin/all: All administrative functions + admin/reports: Administration of reports + all: Everything + blocks: Blocks + bookmarks: Bookmarks + conversations: Conversations + crypto: End-to-end encryption + favourites: Favourites + filters: Filters + follow: Relationships + follows: Follows + lists: Lists + media: Media attachments + mutes: Mutes + notifications: Notifications + push: Push notifications + reports: Reports + search: Search + statuses: Posts + layouts: + admin: + nav: + applications: Applications + oauth2_provider: OAuth2 Provider + application: + title: OAuth authorisation required + scopes: + admin:read: read all data on the server + admin:read:accounts: read sensitive information of all accounts + admin:read:reports: read sensitive information of all reports and reported accounts + admin:write: modify all data on the server + admin:write:accounts: perform moderation actions on accounts + admin:write:reports: perform moderation actions on reports + crypto: use end-to-end encryption + follow: modify account relationships + push: receive your push notifications + read: read all your account's data + read:accounts: see accounts information + read:blocks: see your blocks + read:bookmarks: see your bookmarks + read:favourites: see your favourites + read:filters: see your filters + read:follows: see your follows + read:lists: see your lists + read:mutes: see your mutes + read:notifications: see your notifications + read:reports: see your reports + read:search: search on your behalf + read:statuses: see all posts + write: modify all your account's data + write:accounts: modify your profile + write:blocks: block accounts and domains + write:bookmarks: bookmark posts + write:conversations: mute and delete conversations + write:favourites: favourite posts + write:filters: create filters + write:follows: follow people + write:lists: create lists + write:media: upload media files + write:mutes: mute people and conversations + write:notifications: clear your notifications + write:reports: report other people + write:statuses: publish posts diff --git a/config/locales/doorkeeper.eo.yml b/config/locales/doorkeeper.eo.yml index 1584fddf007620..e239da785c2d85 100644 --- a/config/locales/doorkeeper.eo.yml +++ b/config/locales/doorkeeper.eo.yml @@ -60,6 +60,7 @@ eo: error: title: Eraro okazis new: + review_permissions: Revizu permesojn title: Rajtigo bezonata show: title: Kopiu ĉi tiun rajtigan kodon kaj gluu ĝin al la aplikaĵo. @@ -69,6 +70,9 @@ eo: confirmations: revoke: Ĉu vi certas? index: + never_used: Neniam uzata + scopes: Permesoj + superapp: Interna title: Viaj rajtigitaj aplikaĵoj errors: messages: @@ -92,7 +96,7 @@ eo: temporarily_unavailable: La rajtiga servilo ne povas nun plenumi la peton pro dumtempa troŝarĝo aŭ servila prizorgado. unauthorized_client: Kliento ne rajtas fari ĉi tian peton per ĉi tiu metodo. unsupported_grant_type: La tipo de la rajtiga konsento ne estas subtenata de la rajtiga servilo. - unsupported_response_type: La rajtiga servilo ne subtenas ĉi tian respondon. + unsupported_response_type: La aŭtentiga servilo ne subtenas ĉi tian respondon. flash: applications: create: @@ -106,10 +110,18 @@ eo: notice: Aplikaĵo malrajtigita. grouped_scopes: title: + accounts: Kontoj + all: Ĉio blocks: Blokita bookmarks: Legosignoj + conversations: Konversacioj + favourites: Preferaĵoj + filters: Filtriloj + follows: Sekvas lists: Listoj mutes: Silentigitaj + notifications: Sciigoj + reports: Raportoj search: Serĉi statuses: Afiŝoj layouts: diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml index db7c4d01a3f711..5efa63bc9ca34b 100644 --- a/config/locales/doorkeeper.fi.yml +++ b/config/locales/doorkeeper.fi.yml @@ -60,6 +60,7 @@ fi: error: title: Tapahtui virhe new: + prompt_html: "%{client_name} pyytää lupaa käyttää tiliäsi. Se on kolmannen osapuolen sovellus. Jos et luota siihen, sinun ei pitäisi sallia sitä." review_permissions: Tarkista käyttöoikeudet title: Valtuutus vaaditaan show: @@ -70,6 +71,8 @@ fi: confirmations: revoke: Oletko varma? index: + authorized_at: Valtuutettu %{date} + description_html: Nämä ovat sovelluksia, jotka voivat käyttää tiliäsi käyttäen API. Jos et tunnista sitä tai sovellus toimii väärin, voit peruuttaa sen käyttöoikeuden. last_used_at: Viimeksi käytetty %{date} never_used: Ei käytetty scopes: Oikeudet @@ -116,6 +119,9 @@ fi: write: Vain kirjoitus title: accounts: Tilit + admin/accounts: Tilien hallinta + admin/all: Kaikki hallinnolliset toiminnot + admin/reports: Raporttien hallinta all: Kaikki blocks: Torjutut bookmarks: Kirjanmerkit @@ -147,6 +153,7 @@ fi: admin:write: muokata kaikkia tietoja palvelimella admin:write:accounts: suorita moderointitoiminnot tileillä admin:write:reports: suorita moderointitoiminnot raporteissa + crypto: käytä päästä päähän salausta follow: seurata, estää, perua eston ja lopettaa tilien seuraaminen push: vastaanottaa push-ilmoituksesi read: lukea tilin tietoja @@ -166,6 +173,7 @@ fi: write:accounts: muokata profiiliasi write:blocks: estää tilit ja palvelimet write:bookmarks: kirjanmerkki viestit + write:conversations: mykistä ja poistaa keskustelut write:favourites: suosikki viestit write:filters: luoda suodattimia write:follows: seurata ihmisiä diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index 7e890f3d6d60dd..bc4bd20bb7ba4b 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -86,7 +86,7 @@ fr: invalid_grant: L’autorisation accordée est invalide, expirée, annulée, ne concorde pas avec l’URL de redirection utilisée dans la requête d’autorisation, ou a été délivrée à un autre client. invalid_redirect_uri: L’URL de redirection n’est pas valide. invalid_request: - missing_param: 'Parramètre requis manquant: %{value}.' + missing_param: 'Paramètre requis manquant: %{value}.' request_not_authorized: La requête doit être autorisée. Le paramètre requis pour l'autorisation de la requête est manquant ou non valide. unknown: La requête omet un paramètre requis, inclut une valeur de paramètre non prise en charge ou est autrement mal formée. invalid_resource_owner: Les identifiants fournis par le propriétaire de la ressource ne sont pas valides ou le propriétaire de la ressource ne peut être trouvé diff --git a/config/locales/doorkeeper.fy.yml b/config/locales/doorkeeper.fy.yml new file mode 100644 index 00000000000000..5e3f3c6c073b4c --- /dev/null +++ b/config/locales/doorkeeper.fy.yml @@ -0,0 +1,185 @@ +--- +fy: + activerecord: + attributes: + doorkeeper/application: + name: Namme fan applikaasje + redirect_uri: Redirect-URI + scopes: Tastimmingen + website: Webstee fan applikaasje + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: mei gjin fragmint befetsje. + invalid_uri: moat in jildige URI wêze. + relative_uri: moat in absolute URI wêze. + secured_uri: moat in HTTPS/SSL URI wêze. + doorkeeper: + applications: + buttons: + authorize: Autorisearje + cancel: Annulearje + destroy: Ferneatigje + edit: Bewurkje + submit: Yntsjinje + confirmations: + destroy: Bisto wis? + edit: + title: Tapassing bewurkje + form: + error: Oeps! Kontrolearje it formulier op flaters + help: + native_redirect_uri: Brûk %{native_redirect_uri} foar lokale tests + redirect_uri: Brûk ien rigel per URI + scopes: Tastimmingen mei spaasjes fan inoar skiede. Lit leech om de standerttastimmingen te brûken. + index: + application: Tapassing + callback_url: Callback-URL + delete: Fuortsmite + empty: Do hast gjin tapassingen konfigurearre. + name: Namme + new: Nije tapassing + scopes: Tastimmingen + show: Toane + title: Dyn tapassingen + new: + title: Nije tapassing + show: + actions: Aksjes + application_id: Client-kaai + callback_urls: Callback-URL’s + scopes: Tastimmingen + secret: Client-geheim + title: 'Tapassing: %{name}' + authorizations: + buttons: + authorize: Autorisearje + deny: Wegerje + error: + title: Der is in flater bard + new: + prompt_html: "%{client_name} hat tastimming nedich om tagong te krijen ta dyn account. It giet om in tapassing fan in tredde partij.Asto dit net fertroust, moatsto gjin tastimming jaan." + review_permissions: Tastimmingen beoardiele + title: Autorisaasje fereaske + show: + title: Kopiearje dizze autorisaasjekoade en plak it yn de tapassing. + authorized_applications: + buttons: + revoke: Ynlûke + confirmations: + revoke: Bisto wis? + index: + authorized_at: Autorisearre op %{date} + description_html: Dit binne tapassingen dy’t tagong hawwe ta dyn account fia de API. As der tapassingen tusken steane dy’tsto net werkenst of in tapassing harren misdraacht, kinsto de tagongsrjochten fan de tapassing ynlûke. + last_used_at: Lêst brûkt op %{date} + never_used: Nea brûkt + scopes: Tastimmingen + superapp: Yntern + title: Dyn autorisearre tapassingen + errors: + messages: + access_denied: De boarne-eigener of autorisaasjeserver hat it fersyk wegere. + credential_flow_not_configured: De wachtwurdgegevens-flow fan de boarne-eigener is mislearre, omdat Doorkeeper.configure.resource_owner_from_credentials net ynsteld is. + invalid_client: Clientferifikaasje is mislearre troch in ûnbekende client, ûntbrekkende client-autentikaasje of in net stipe autentikaasjemetoade. + invalid_grant: De opjûne autorisaasje is ûnjildich, ferrûn, ynlutsen, komt net oerien mei de redirect-URI dy’t opjûn is of útjûn waard oan in oere client. + invalid_redirect_uri: De opjûne redirect-URI is ûnjildich. + invalid_request: + missing_param: 'Untbrekkende fereaske parameter: %{value}.' + request_not_authorized: It fersyk moat autorisearre wurde. De fereaske parameter foar it autorisaasjefersyk ûntbrekt of is ûnjildich. + unknown: It fersyk mist in fereaske parameter, befettet in net-stipe parameterwearde of is op in oare manier net krekt. + invalid_resource_owner: De opjûne boarne-eigenersgegevens binne ûnjildich of de boarne-eigener kin net fûn wurde + invalid_scope: De opfrege tastimming is ûnjildich, ûnbekend of net krekt. + invalid_token: + expired: Tagongskoade ferrûn + revoked: Tagongskoade ynlutsen + unknown: Tagongskoade ûnjildich + resource_owner_authenticator_not_configured: It opsykjen fan de boarne-eigener is mislearre, omdat Doorkeeper.configure.resource_owner_authenticator net ynsteld is. + server_error: De autorisaasjeserver is in ûnferwachte situaasje tsjinkaam dy’t it fersyk behindere. + temporarily_unavailable: De autorisaasjeserver is op dit stuit net yn steat it fersyk te behanneljen as gefolch fan in tydlike oerbelêsting of ûnderhâld oan de server. + unauthorized_client: De client is net autorisearre om dit fersyk op dizze manier út te fieren. + unsupported_grant_type: It type autorisaasje wurdt net troch de autorisaasjeserver stipe. + unsupported_response_type: De autorisaasjeserver stipet dit antwurdtype net. + flash: + applications: + create: + notice: Tapassing oanmakke. + destroy: + notice: Tapassing fuortsmiten. + update: + notice: Tapassing bewurke. + authorized_applications: + destroy: + notice: Tapassing ynlutsen. + grouped_scopes: + access: + read: Allinnich-lêze-tagong + read/write: Lês- en skriuwtagong + write: Allinnich skriuwtagong + title: + accounts: Accounts + admin/accounts: Accountbehear + admin/all: Alle behearfunksjes + admin/reports: Rapportaazjebehear + all: Alles + blocks: Blokkearje + bookmarks: Blêdwizers + conversations: Petearen + crypto: End-to-end-fersifering + favourites: Favoriten + filters: Filters + follow: Relaasjes + follows: Folgjend + lists: Listen + media: Mediabylagen + mutes: Negearre + notifications: Meldingen + push: Pushmeldingen + reports: Rapportaazjes + search: Sykje + statuses: Berjochten + layouts: + admin: + nav: + applications: Tapassingen + oauth2_provider: OAuth2-provider + application: + title: OAuth-autorisaasje fereaske + scopes: + admin:read: alle gegevens op de server lêze + admin:read:accounts: gefoelige ynformaasje fan alle accounts lêze + admin:read:reports: gefoelige ynformaasje fan alle rapportaazjes en rapportearre accounts lêze + admin:write: wizigje alle gegevens op de server + admin:write:accounts: moderaasjemaatregelen tsjin accounts nimme + admin:write:reports: moderaasjemaatregelen nimme yn rapportaazjes + crypto: end-to-end-encryptie brûke + follow: relaasjes tusken accounts bewurkje + push: dyn pushmeldingen ûntfange + read: alle gegevens fan dyn account lêze + read:accounts: accountynformaasje besjen + read:blocks: dyn blokkearre brûkers besjen + read:bookmarks: dyn blêdwizers besjen + read:favourites: dyn favoriten besjen + read:filters: dyn filters besjen + read:follows: de accounts dy’tsto folgest besjen + read:lists: dyn listen besjen + read:mutes: dyn negearre brûkers besjen + read:notifications: dyn meldingen besjen + read:reports: dyn rapportearre berjochten besjen + read:search: út dyn namme sykje + read:statuses: alle berjochten besjen + write: alle gegevens fan dyn account bewurkje + write:accounts: dyn profyl bewurkje + write:blocks: accounts en domeinen blokkearje + write:bookmarks: berjochten oan blêdwizers tafoegje + write:conversations: petearen negearre en fuortsmite + write:favourites: berjochten as favoryt markearje + write:filters: filters oanmeitsje + write:follows: minsken folgje + write:lists: listen oanmeitsje + write:media: mediabestannen oplade + write:mutes: minsken en petearen negearre + write:notifications: meldingen fuortsmite + write:reports: oare minsken rapportearje + write:statuses: berjochten pleatse diff --git a/config/locales/doorkeeper.ga.yml b/config/locales/doorkeeper.ga.yml index 20a9da24e96f15..73ff9d0fcb1590 100644 --- a/config/locales/doorkeeper.ga.yml +++ b/config/locales/doorkeeper.ga.yml @@ -1 +1,42 @@ +--- ga: + activerecord: + attributes: + doorkeeper/application: + name: Ainm feidhmchláir + redirect_uri: Atreoraigh URI + website: Suíomh gréasáin feidhmchláir + doorkeeper: + applications: + buttons: + authorize: Ceadaigh + cancel: Cealaigh + destroy: Scrios + edit: Cuir in eagar + submit: Cuir isteach + confirmations: + destroy: An bhfuil tú cinnte? + index: + delete: Scrios + name: Ainm + show: Taispeáin + show: + application_id: Eochair chliaint + secret: Rún cliaint + title: 'Ainm feidhmchláir: %{name}' + authorizations: + buttons: + deny: Diúltaigh + authorized_applications: + confirmations: + revoke: An bhfuil tú cinnte? + grouped_scopes: + title: + accounts: Cuntais + all: Gach Rud + bookmarks: Leabharmharcanna + conversations: Comhráite + favourites: Roghanna + lists: Liostaí + notifications: Fógraí + statuses: Postálacha diff --git a/config/locales/doorkeeper.gd.yml b/config/locales/doorkeeper.gd.yml index c5a830fc7836c8..6d4cbecfe34cdd 100644 --- a/config/locales/doorkeeper.gd.yml +++ b/config/locales/doorkeeper.gd.yml @@ -162,7 +162,7 @@ gd: read:bookmarks: na comharran-lìn agad fhaicinn read:favourites: na h-annsachdan agad fhaicinn read:filters: na criathragan agad fhaicinn - read:follows: faicinn cò air a tha thu a’ leantainn + read:follows: faicinn cò a tha thu a’ leantainn read:lists: na liostaichean agad fhaicinn read:mutes: na mùchaidhean agad fhaicinn read:notifications: na brathan agad faicinn @@ -176,7 +176,7 @@ gd: write:conversations: còmhraidhean a mhùchadh is a sguabadh às write:favourites: postaichean a chur ris na h-annsachdan write:filters: criathragan a chruthachadh - write:follows: leantainn air daoine + write:follows: leantainn dhaoine write:lists: liostaichean a chruthachadh write:media: faidhlichean meadhain a luchdadh suas write:mutes: daoine is còmhraidhean a mhùchadh diff --git a/config/locales/doorkeeper.he.yml b/config/locales/doorkeeper.he.yml index e2f0c340136446..eda38153c65622 100644 --- a/config/locales/doorkeeper.he.yml +++ b/config/locales/doorkeeper.he.yml @@ -138,7 +138,7 @@ he: push: התראות בדחיפה reports: דיווחים search: חיפוש - statuses: חצרוצים + statuses: הודעות layouts: admin: nav: @@ -168,13 +168,13 @@ he: read:notifications: צפיה בהתראותיך read:reports: צפיה בדוחותיך read:search: חיפוש מטעם עצמך - read:statuses: צפיה בכל החצרוצים + read:statuses: צפיה בכל ההודעות write: להפיץ הודעות בשמך write:accounts: שינוי הפרופיל שלך write:blocks: חסימת חשבונות ודומיינים - write:bookmarks: סימון חצרוצים + write:bookmarks: סימון הודעות write:conversations: השתקת ומחיקת שיחות - write:favourites: חצרוצים מחובבים + write:favourites: הודעות מחובבות write:filters: יצירת מסננים write:follows: עקיבה אחר אנשים write:lists: יצירת רשימות @@ -182,4 +182,4 @@ he: write:mutes: השתקת אנשים ושיחות write:notifications: ניקוי התראותיך write:reports: דיווח על אנשים אחרים - write:statuses: פרסום חצרוצים + write:statuses: פרסום הודעות diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml index d8959bfa26fd84..b394098a486a0e 100644 --- a/config/locales/doorkeeper.hu.yml +++ b/config/locales/doorkeeper.hu.yml @@ -80,7 +80,7 @@ hu: title: Engedélyezett alkalmazásaid errors: messages: - access_denied: Az erőforrás tulajdonosa vagy hitelesítő kiszolgálója megtagadta a kérést. + access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést. credential_flow_not_configured: Az erőforrás tulajdonos jelszóadatainak átadása megszakadt, mert a Doorkeeper.configure.resource_owner_from_credentials beállítatlan. invalid_client: A kliens hitelesítése megszakadt, mert ismeretlen a kliens, a kliens nem küldött hitelesítést, vagy a hitelesítés módja nem támogatott. invalid_grant: A biztosított hitelesítés érvénytelen, lejárt, visszavont, vagy nem egyezik a hitelesítési kérésben használt URI-val, vagy más kliensnek címezték. @@ -96,11 +96,11 @@ hu: revoked: Hozzáférési kulcsot visszavonták unknown: Hozzáférési kulcs érvénytelen resource_owner_authenticator_not_configured: Erőforrás tulajdonos keresés megszakadt, ugyanis a Doorkeeper.configure.resource_owner_authenticator beállítatlan. - server_error: Hitelesítő szervert váratlan esemény érte, mely meggátolta a kérés teljesítését. - temporarily_unavailable: A hitelesítő szerver jelenleg nem tudja teljesíteni a kérést átmeneti túlterheltség vagy a kiszolgáló karbantartása miatt. + server_error: Az engedélyező kiszolgáló váratlan körülménybe ütközött, ami megakadályozta, hogy teljesítse a kérést. + temporarily_unavailable: Az engedélyezési kiszolgáló jelenleg nem tudja kezelni a kérelmet a kiszolgáló ideiglenes túlterhelése vagy karbantartása miatt. unauthorized_client: A kliens nincs feljogosítva erre a kérésre. - unsupported_grant_type: A hitelesítés módja nem támogatott a hitelesítő kiszolgálón. - unsupported_response_type: A hitelesítő kiszolgáló nem támogatja ezt a választ. + unsupported_grant_type: Az engedélyezés megadási típusát nem támogatja az engedélyezési kiszolgáló. + unsupported_response_type: Az engedélyezési kiszolgáló nem támogatja ezt a választípust. flash: applications: create: @@ -147,10 +147,10 @@ hu: application: title: OAuth engedély szükséges scopes: - admin:read: szerver minden adatának olvasása + admin:read: a kiszolgáló összes adatának olvasása admin:read:accounts: minden kényes fiókadat olvasása admin:read:reports: minden bejelentés és bejelentett fiók kényes adatainak olvasása - admin:write: szerver minden adatának változtatása + admin:write: a kiszolgáló összes adatának módosítása admin:write:accounts: moderációs műveletek végzése fiókokon admin:write:reports: moderációs műveletek végzése bejelentéseken crypto: végpontok közti titkosítás használata diff --git a/config/locales/doorkeeper.ig.yml b/config/locales/doorkeeper.ig.yml new file mode 100644 index 00000000000000..7c264f0d7317b0 --- /dev/null +++ b/config/locales/doorkeeper.ig.yml @@ -0,0 +1 @@ +ig: diff --git a/config/locales/doorkeeper.kab.yml b/config/locales/doorkeeper.kab.yml index d17979302632bd..ba1d7057a146cd 100644 --- a/config/locales/doorkeeper.kab.yml +++ b/config/locales/doorkeeper.kab.yml @@ -79,6 +79,19 @@ kab: authorized_applications: destroy: notice: Yettwaḥwi wesnas. + grouped_scopes: + title: + accounts: Imiḍanen + admin/accounts: Tadbelt n imiḍan + crypto: Awgelhen seg yixef ɣer yixef + favourites: Ismenyifen + filters: Imzizdigen + lists: Tibdarin + notifications: Tilɣa + push: Tilɣa yettudemmren + reports: Ineqqisen + search: Nadi + statuses: Tisuffaɣ layouts: admin: nav: diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index e645f20b2bb70b..3526bab0e16a84 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -43,7 +43,7 @@ ko: new: 새 애플리케이션 scopes: 범위 show: 표시 - title: 당신의 애플리케이션들 + title: 내 응용프로그램 new: title: 새 애플리케이션 show: @@ -77,10 +77,10 @@ ko: never_used: 사용되지 않음 scopes: 권한 superapp: 내부 - title: 당신의 승인된 애플리케이션들 + title: 승인된 응용프로그램 errors: messages: - access_denied: 리소스 소유자 또는 권한 부여 서버가 요청을 거부했습니다. + access_denied: 리소스 소유자 또는 인증 서버가 요청을 거부했습니다. credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials의 설정이 되어있지 않아 리소스 소유자 패스워드 자격증명이 실패하였습니다. invalid_client: 알 수 없는 클라이언트이기 때문에 클라이언트 인증이 실패하였습니다, 클라이언트 자격증명이 포함되지 않았거나, 지원 되지 않는 메소드입니다. invalid_grant: 제공된 권한 부여가 잘못되거나, 만료되었거나, 취소되었거나, 권한 부여 요청에 사용된 리디렉션 URI가 일치하지 않거나, 다른 클라이언트에 지정되었습니다. diff --git a/config/locales/doorkeeper.ku.yml b/config/locales/doorkeeper.ku.yml index f92a228d104cfe..fdc1c0da414544 100644 --- a/config/locales/doorkeeper.ku.yml +++ b/config/locales/doorkeeper.ku.yml @@ -67,7 +67,7 @@ ku: title: Destûr hildana vê kodê jê bigire û ji sepanê re pêve bike. authorized_applications: buttons: - revoke: Betal bike + revoke: Rake confirmations: revoke: Ma tu bawerî? index: @@ -131,7 +131,7 @@ ku: filters: Parzûn follow: Pêwendî follows: Dişopîne - lists: Rêzok + lists: Lîste media: Pêvekên medya mutes: Bêdengkirin notifications: Agahdarî @@ -149,7 +149,7 @@ ku: scopes: admin:read: hemû daneyên li ser rajekar bixwîne admin:read:accounts: zanyariyên hestiyar yên hemû ajimêran li ser rajekar bixwîne - admin:read:reports: zanyariyên hestiyar yên hemû gilîyan û ajimêrên gilêkirî li ser rajekar bixwîne + admin:read:reports: zanyariyên hestiyar yên hemû ragihandinan û ajimêrên ragihandî li ser rajekar bixwîne admin:write: hemû daneyên li ser rajekar biguherîne admin:write:accounts: di ajimêrê de çalakiyên li hev kirî pêk bîne admin:write:reports: di ragihandinê de çalakiyên li hev kirî pêk bîne @@ -163,7 +163,7 @@ ku: read:favourites: bijarteyên xwe bibîne read:filters: parzûnûn xwe bibîne read:follows: ên tu dişopînî bibîne - read:lists: rêzoka xwe bibîne + read:lists: lîsteyên xwe bibîne read:mutes: ajimêrên bêdeng kirî bibîne read:notifications: agahdariyên xwe bibîne read:reports: ragihandinên xwe bibîne @@ -177,9 +177,9 @@ ku: write:favourites: şandiyên bijarte write:filters: parzûnan çê bike write:follows: kesan bişopîne - write:lists: rêzokan çê bike + write:lists: lîsteyan biafirîne write:media: pelên medya bar bike write:mutes: mirovan û axaftinan bêdeng bike write:notifications: agahdariyên xwe pak bike - write:reports: mirovên din gilî bike + write:reports: mirovên din ragihîne write:statuses: şandiyekê biweşîne diff --git a/config/locales/doorkeeper.my.yml b/config/locales/doorkeeper.my.yml new file mode 100644 index 00000000000000..5e1fc6bee92ec3 --- /dev/null +++ b/config/locales/doorkeeper.my.yml @@ -0,0 +1 @@ +my: diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml index 76f3b88c367433..38ae2f4f417c64 100644 --- a/config/locales/doorkeeper.nl.yml +++ b/config/locales/doorkeeper.nl.yml @@ -72,6 +72,7 @@ nl: revoke: Weet je het zeker? index: authorized_at: Toestemming verleent op %{date} + description_html: Dit zijn toepassingen die toegang hebben tot jouw account via de API. Als er toepassingen tussen staan die je niet herkent of een toepassing zich misdraagt, kun je de toegangsrechten van de toepassing intrekken. last_used_at: Voor het laatst gebruikt op %{date} never_used: Nooit gebruikt scopes: Toestemmingen @@ -150,8 +151,8 @@ nl: admin:read:accounts: gevoelige informatie van alle accounts lezen admin:read:reports: gevoelige informatie van alle rapportages en gerapporteerde accounts lezen admin:write: wijzig alle gegevens op de server - admin:write:accounts: moderatieacties op accounts uitvoeren - admin:write:reports: moderatieacties op rapportages uitvoeren + admin:write:accounts: moderatiemaatregelen tegen accounts nemen + admin:write:reports: moderatiemaatregelen nemen in rapportages crypto: end-to-end-encryptie gebruiken follow: relaties tussen accounts bewerken push: jouw pushmeldingen ontvangen diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml index 789b50f619f24c..4cc4ebace2e25a 100644 --- a/config/locales/doorkeeper.nn.yml +++ b/config/locales/doorkeeper.nn.yml @@ -5,7 +5,7 @@ nn: doorkeeper/application: name: Applikasjonsnamn redirect_uri: Omdirigerings-URI - scopes: Skop + scopes: Omfang website: Applikasjonsnettside errors: models: @@ -33,15 +33,15 @@ nn: help: native_redirect_uri: Bruk %{native_redirect_uri} for lokale testar redirect_uri: Bruk ei linjer per URI - scopes: Skil skop med mellomrom. Ikkje fyll inn noko som helst for å bruke standardskop. + scopes: Skil omfang med mellomrom. La stå tomt for å bruka standardomfang. index: application: Applikasjon callback_url: Callback-URL delete: Slett - empty: Du har ikkje nokon applikasjonar. + empty: Du har ingen applikasjonar. name: Namn new: Ny applikasjon - scopes: Skop + scopes: Omfang show: Vis title: Dine applikasjonar new: @@ -50,7 +50,7 @@ nn: actions: Handlingar application_id: Klientnøkkel callback_urls: Callback-URLar - scopes: Skop + scopes: Omfang secret: Klienthemmelegheit title: 'Applikasjon: %{name}' authorizations: @@ -60,6 +60,8 @@ nn: error: title: Ein feil har oppstått new: + prompt_html: "%{client_name} ønsker tilgang til kontoen din. Det er ein tredjepartsapplikasjon. Dersom du ikkje stolar på den, bør du ikkje autorisere det." + review_permissions: Sjå gjennom løyve title: Autorisasjon nødvendig show: title: Kopier denne autorisasjonskoden og lim den inn i applikasjonen. @@ -69,30 +71,36 @@ nn: confirmations: revoke: Er du sikker? index: + authorized_at: Autorisert den %{date} + description_html: Desse programma har tilgang til kontoen diin frå programgrensesnittet. Dersom du ser program her som du ikkje kjenner att, eller eit program oppfører seg feil, kan du trekkja tilbake tillgangen her. + last_used_at: Sist brukt den %{date} + never_used: Aldri brukt + scopes: Løyve + superapp: Intern title: Dine autoriserte applikasjonar errors: messages: access_denied: Ressurseigaren eller autorisasjonstenaren avviste førespurnaden. - credential_flow_not_configured: Flyten «Resource Owner Password Credentials» kunne ikkje verte fullført av di «Doorkeeper.configure.resource_owner_from_credentials» er ikkje konfigurert. - invalid_client: Klientautentisering feilet på grunn av ukjent klient, ingen autentisering inkludert, eller autentiseringsmetode er ikke støttet. - invalid_grant: Autoriseringen er ugyldig, utløpt, opphevet, stemmer ikke overens med omdirigerings-URIen eller var utstedt til en annen klient. + credential_flow_not_configured: Flyten «Resource Owner Password Credentials» kunne ikkje fullførast sidan «Doorkeeper.configure.resource_owner_from_credentials» ikkje er konfigurert. + invalid_client: Klientautentisering feila på grunn av ukjent klient, ingen inkludert autentisering, eller ikkje støtta autentiseringsmetode. + invalid_grant: Autoriseringa er ugyldig, utløpt, oppheva, stemmer ikkje med omdirigerings-URIen eller var tildelt ein annan klient. invalid_redirect_uri: Omdirigerings-URLen er ikkje gyldig. invalid_request: - missing_param: 'Mangler påkrevd parameter: %{value}.' - request_not_authorized: Forespørselen må godkjennes. Påkrevd parameter for godkjenningsforespørselen mangler eller er ugyldig. - unknown: Forespørselen mangler en påkrevd parameter, inkluderer en ukjent parameterverdi, eller er utformet for noe annet. - invalid_resource_owner: Ressurseierens detaljer er ikke gyldige, eller så er det ikke mulig å finne eieren + missing_param: 'Manglar naudsynt parameter: %{value}.' + request_not_authorized: Førespurnaden må godkjennast. Naudsynt parameter for godkjenning manglar eller er ugyldig. + unknown: Førespurnaden manglar ein naudsynt parameter, inneheld ein parameter som ikkje er støtta, eller er misdanna. + invalid_resource_owner: Ressurseigardetaljane er ikkje gyldige, eller så er det ikkje mogleg å finna eigaren invalid_scope: Det etterspurte omfanget er ugyldig, ukjent eller har feil struktur. invalid_token: - expired: Tilgangsbeviset har utløpt - revoked: Tilgangsbeviset har blitt opphevet + expired: Tilgangsbeviset har gått ut på dato + revoked: Tilgangsbeviset har blitt oppheva unknown: Tilgangsbeviset er ugyldig - resource_owner_authenticator_not_configured: Ressurseier kunne ikke finnes fordi Doorkeeper.configure.resource_owner_authenticator ikke er konfigurert. - server_error: Autoriseringstjeneren støtte på en uventet hendelse som hindret den i å svare på forespørslen. - temporarily_unavailable: Autoriseringstjeneren kan ikke håndtere forespørslen grunnet en midlertidig overbelastning eller tjenervedlikehold. - unauthorized_client: Klienten har ikke autorisasjon for å utføre denne forespørslen med denne metoden. - unsupported_grant_type: Autorisasjonstildelingstypen er ikke støttet av denne autoriseringstjeneren. - unsupported_response_type: Autorisasjonsserveren støtter ikke denne typen av forespørsler. + resource_owner_authenticator_not_configured: Ressurseigar kunne ikkje finnast fordi Doorkeeper.configure.resource_owner_authenticator ikkje er konfigurert. + server_error: Autoriseringstenaren støtte på ei uventa hending som hindra han i å svara på førespurnaden. + temporarily_unavailable: Autoriseringstenaren kan ikkje hansama førespurnaden grunna kortvarig overbelastning eller tenarvedlikehald. + unauthorized_client: Klienten har ikkje autorisasjon for å utføra førespurnaden med denne metoden. + unsupported_grant_type: Autorisasjonstildelingstypen er ikkje støtta av denne autoriseringstenaren. + unsupported_response_type: Autorisasjonstenaren støttar ikkje denne typen førespurnader. flash: applications: create: @@ -104,25 +112,53 @@ nn: authorized_applications: destroy: notice: App avvist. + grouped_scopes: + access: + read: Berre lesetligang + read/write: Lese- og skrivetilgang + write: Berre skrivetilgang + title: + accounts: Kontoar + admin/accounts: Kontoadministrasjon + admin/all: Alle administrative funksjonar + admin/reports: Rapportadministrasjon + all: Alt + blocks: Blokkeringar + bookmarks: Bokmerke + conversations: Samtalar + crypto: Ende-til-ende-kryptering + favourites: Favorittar + filters: Filter + follow: Forhold + follows: Fylgjer + lists: Lister + media: Mediavedlegg + mutes: Målbindingar + notifications: Varsel + push: Pushvarsel + reports: Rapportar + search: Søk + statuses: Innlegg layouts: admin: nav: applications: Appar - oauth2_provider: OAuth2-tilbyder + oauth2_provider: OAuth2-tilbydar application: - title: OAuth-autorisering påkrevet + title: Krav om OAuth-autorisering scopes: admin:read: lese alle data på tjeneren - admin:read:accounts: lese sensitiv informasjon om alle kontoer - admin:read:reports: lese sensitiv informasjon om alle rapporter og rapporterte kontoer - admin:write: modifisere alle data på tjeneren - admin:write:accounts: utføre moderatorhandlinger på kontoer - admin:write:reports: utføre moderatorhandlinger på rapporter - follow: følg, blokkér, avblokkér, avfølg brukere - push: motta dine varsler - read: lese dine data - read:accounts: se informasjon om kontoer - read:blocks: se dine blokkeringer + admin:read:accounts: lese sensitiv informasjon om alle kontoar + admin:read:reports: lese sensitiv informasjon om alle rapportar og rapporterte kontoar + admin:write: endre alle data på tenaren + admin:write:accounts: utføre moderatorhandlingar på kontoar + admin:write:reports: utføre moderatorhandlingar på rapportar + crypto: bruk ende-til-ende-kryptering + follow: fylg, blokkér, avblokkér, avfylg brukarar + push: motta pushvarsla dine + read: lese alle dine kontodata + read:accounts: sjå informasjon om kontoar + read:blocks: sjå dine blokkeringar read:bookmarks: sjå bokmerka dine read:favourites: sjå favorittane dine read:filters: sjå filtera dine @@ -131,13 +167,14 @@ nn: read:mutes: sjå kven du har målbunde read:notifications: sjå varsla dine read:reports: sjå rapportane dine - read:search: søke på dine vegne - read:statuses: sjå alle statusar - write: poste på dine vegne - write:accounts: rediger profilen din + read:search: søke på dine vegner + read:statuses: sjå alle innlegg + write: endre alle dine kontodata + write:accounts: redigera profilen din write:blocks: blokker kontoar og domene - write:bookmarks: bokmerk statusar - write:favourites: merk statusar som favoritt + write:bookmarks: bokmerk innlegg + write:conversations: målbind og slett samtalar + write:favourites: merk innlegg som favoritt write:filters: lag filter write:follows: fylg folk write:lists: lag lister @@ -145,4 +182,4 @@ nn: write:mutes: målbind folk og samtalar write:notifications: tøm varsla dine write:reports: rapporter andre folk - write:statuses: legg ut statusar + write:statuses: publiser innlegg diff --git a/config/locales/doorkeeper.no.yml b/config/locales/doorkeeper.no.yml index 40eff8bb195e07..7ba1baf7a8179a 100644 --- a/config/locales/doorkeeper.no.yml +++ b/config/locales/doorkeeper.no.yml @@ -3,7 +3,7 @@ activerecord: attributes: doorkeeper/application: - name: Navn + name: Applikasjonsnavn redirect_uri: Omdirigerings-URI scopes: Omfang website: Applikasjonsnettside @@ -12,24 +12,24 @@ doorkeeper/application: attributes: redirect_uri: - fragment_present: kan ikke inneholde ett fragment. + fragment_present: kan ikke inneholde et fragment. invalid_uri: må være en gyldig URI. relative_uri: må være en absolutt URI. secured_uri: må være en HTTPS/SSL URI. doorkeeper: applications: buttons: - authorize: Autoriser + authorize: Autorisér cancel: Avbryt destroy: Ødelegg - edit: Rediger + edit: Redigér submit: Send inn confirmations: destroy: Er du sikker? edit: title: Endre applikasjon form: - error: Oops! Sjekk skjemaet ditt for mulige feil + error: Oops! Sjekk om du har feil i skjemaet ditt help: native_redirect_uri: Bruk %{native_redirect_uri} for lokale tester redirect_uri: Bruk én linje per URI @@ -60,6 +60,8 @@ error: title: En feil oppstod new: + prompt_html: "%{client_name} ønsker tilgang til kontoen din. Det er en tredjeparts applikasjon. Hvis du ikke stoler på den, bør du ikke autorisere den." + review_permissions: Gå gjennom tillatelser title: Autorisasjon påkrevd show: title: Kopier denne koden og lim den inn i programmet. @@ -69,18 +71,24 @@ confirmations: revoke: Opphev? index: + authorized_at: Autorisert %{date} + description_html: Dette er applikasjoner som kan få tilgang til kontoen din ved hjelp av API-et. Hvis det finnes applikasjoner du ikke gjenkjenner her, eller en applikasjon skaper problemer, kan du tilbakekalle tilgangen den har. + last_used_at: Sist brukt %{date} + never_used: Aldri brukt + scopes: Tillatelser + superapp: Internt title: Dine autoriserte applikasjoner errors: messages: - access_denied: Ressurseieren eller autoriseringstjeneren avviste forespørslen. + access_denied: Ressurseieren eller autoriseringsserveren avviste forespørselen. credential_flow_not_configured: Ressurseiers passordflyt feilet fordi Doorkeeper.configure.resource_owner_from_credentials ikke var konfigurert. invalid_client: Klientautentisering feilet på grunn av ukjent klient, ingen autentisering inkludert, eller autentiseringsmetode er ikke støttet. - invalid_grant: Autoriseringen er ugyldig, utløpt, opphevet, stemmer ikke overens med omdirigerings-URIen eller var utstedt til en annen klient. + invalid_grant: Autoriseringen er ugyldig, utløpt, opphevet, stemmer ikke overens med omdirigerings-URIen i autoriseringsforespørselen eller var utstedt til en annen klient. invalid_redirect_uri: Den inkluderte omdirigerings-URLen er ikke gyldig. invalid_request: missing_param: 'Mangler påkrevd parameter: %{value}.' - request_not_authorized: Forespørselen må godkjennes. Påkrevd parameter for godkjenningsforespørselen mangler eller er ugyldig. - unknown: Forespørselen mangler en påkrevd parameter, inkluderer en ukjent parameterverdi, eller er utformet for noe annet. + request_not_authorized: Forespørselen må autoriseres. Påkrevd parameter for autorisasjonsforespørselen mangler eller er ugyldig. + unknown: Forespørselen mangler en påkrevd parameter, inkluderer en parameterverdi som ikke støttes, eller har på annet vis feil struktur. invalid_resource_owner: Ressurseierens detaljer er ikke gyldige, eller så er det ikke mulig å finne eieren invalid_scope: Det etterspurte omfanget er ugyldig, ukjent eller har feil struktur. invalid_token: @@ -89,10 +97,10 @@ unknown: Tilgangsbeviset er ugyldig resource_owner_authenticator_not_configured: Ressurseier kunne ikke finnes fordi Doorkeeper.configure.resource_owner_authenticator ikke er konfigurert. server_error: Autoriseringstjeneren støtte på en uventet hendelse som hindret den i å svare på forespørslen. - temporarily_unavailable: Autoriseringstjeneren kan ikke håndtere forespørslen grunnet en midlertidig overbelastning eller tjenervedlikehold. + temporarily_unavailable: Autoriseringsserveren kan ikke håndtere forespørselen grunnet en midlertidig overbelastning eller vedlikehold av serveren. unauthorized_client: Klienten har ikke autorisasjon for å utføre denne forespørslen med denne metoden. unsupported_grant_type: Autorisasjonstildelingstypen er ikke støttet av denne autoriseringstjeneren. - unsupported_response_type: Autorisasjonsserveren støtter ikke denne typen av forespørsler. + unsupported_response_type: Autorisasjonsserveren støtter ikke denne respons-typen. flash: applications: create: @@ -104,45 +112,74 @@ authorized_applications: destroy: notice: Applikasjon opphevet. + grouped_scopes: + access: + read: Kun lesetilgang + read/write: Lese- og skrivetilgang + write: Kun skrivetilgang + title: + accounts: Kontoer + admin/accounts: Administrasjon av kontoer + admin/all: All administrativ funksjonalitet + admin/reports: Administrasjon av rapporteringer + all: Alt + blocks: Blokkeringer + bookmarks: Bokmerker + conversations: Samtaler + crypto: Ende-til-ende-kryptering + favourites: Favoritter + filters: Filtre + follow: Relasjoner + follows: Følger + lists: Lister + media: Mediavedlegg + mutes: Dempinger + notifications: Varslinger + push: Push-varslinger + reports: Rapporteringer + search: Søk + statuses: Innlegg layouts: admin: nav: applications: Applikasjoner - oauth2_provider: OAuth2-tilbyder + oauth2_provider: OAuth2-leverandør application: title: OAuth-autorisering påkrevet scopes: admin:read: lese alle data på tjeneren - admin:read:accounts: lese sensitiv informasjon om alle kontoer - admin:read:reports: lese sensitiv informasjon om alle rapporter og rapporterte kontoer + admin:read:accounts: lese sensitiv informasjon for alle kontoer + admin:read:reports: lese sensitiv informasjon for alle rapporter og rapporterte kontoer admin:write: modifisere alle data på tjeneren admin:write:accounts: utføre moderatorhandlinger på kontoer admin:write:reports: utføre moderatorhandlinger på rapporter - follow: følg, blokkér, avblokkér, avfølg brukere - push: motta dine varsler + crypto: bruk ende-til-ende-kryptering + follow: endre konto-relasjoner + push: motta push-varslingene dine read: lese dine data read:accounts: se informasjon om kontoer - read:blocks: se dine blokkeringer - read:bookmarks: se dine bokmerker + read:blocks: se blokkeringene dine + read:bookmarks: se bokmerkene dine read:favourites: se dine likinger - read:filters: se dine filtre - read:follows: se dine følginger + read:filters: se filtrene dine + read:follows: se hvem du følger read:lists: se listene dine read:mutes: se dine dempinger - read:notifications: se dine varslinger - read:reports: se dine rapporter + read:notifications: se varslingene dine + read:reports: se rapportene dine read:search: søke på dine vegne - read:statuses: se alle statuser + read:statuses: se alle innlegg write: poste på dine vegne write:accounts: endre på profilen din write:blocks: blokkere kontoer og domener - write:bookmarks: bokmerke statuser - write:favourites: like statuser - write:filters: opprett filtre - write:follows: følg personer - write:lists: opprett lister - write:media: last opp mediafiler + write:bookmarks: bokmerke innlegg + write:conversations: dempe og slette samtaler + write:favourites: like innlegg + write:filters: opprette filtre + write:follows: følge personer + write:lists: opprette lister + write:media: laste opp mediafiler write:mutes: dempe folk og samtaler - write:notifications: tømme dine varsler + write:notifications: tømme varslingene dine write:reports: rapportere andre folk - write:statuses: legg ut statuser + write:statuses: legge ut innlegg diff --git a/config/locales/doorkeeper.oc.yml b/config/locales/doorkeeper.oc.yml index 692ecc3b7e602b..d86fbe793dd938 100644 --- a/config/locales/doorkeeper.oc.yml +++ b/config/locales/doorkeeper.oc.yml @@ -60,6 +60,8 @@ oc: error: title: I a agut un error new: + prompt_html: "%{client_name} volria l’autorizacion d’accedir a vòstre compte. Es una aplicacion tèrça.Se vos fisatz pas a ela, alara deuriatz pas l’autorizacion." + review_permissions: Repassar las autorizacions title: Cal l’autorizacion show: title: Copiatz lo còdi d’autorizacion e pegatz-lo dins l’aplicacion. @@ -69,6 +71,12 @@ oc: confirmations: revoke: Ne sètz segur ? index: + authorized_at: Autorizada lo %{date} + description_html: Aquestas aplicacions pòdon accedir a vòstre compte via l’API. S’i a d’aplicacions que coneissètz pas aicí o qu’una aplicacion se compòrta pas coma cal, podètz revocar son accès. + last_used_at: Darrièra utilizacion lo %{date} + never_used: Pas jamai utilizada + scopes: Autorizacions + superapp: Intèrna title: Las vòstras aplicacions autorizadas errors: messages: @@ -105,14 +113,32 @@ oc: destroy: notice: Aplicacion revocada. grouped_scopes: + access: + read: Accès lectura sola + read/write: Accès lectura e escritura + write: Accès escritura sola title: accounts: Comptes + admin/accounts: Administracion de comptes + admin/all: Totas las foncions administrativas + admin/reports: Administracion de senhalaments + all: Tot + blocks: Blocatges bookmarks: Marcadors + conversations: Conversacions + crypto: Chiframent del cap a la fin + favourites: Favorits filters: Filtres + follow: Relacions + follows: Abonaments lists: Listas media: Fichièrs junts + mutes: Resconduts notifications: Notificacions + push: Notificacions Push + reports: Senhalament search: Recercar + statuses: Publicacions layouts: admin: nav: @@ -127,6 +153,7 @@ oc: admin:write: modificacion de las donadas del servidor admin:write:accounts: realizacion d’accions de moderacion suls comptes admin:write:reports: realizacion d’accions suls senhalaments + crypto: utilizar lo chiframent del cap a la fin follow: modificar las relacions del compte push: recebre vòstras notificacions push read: legir totas las donadas de vòstre compte @@ -146,6 +173,7 @@ oc: write:accounts: modificar vòstre perfil write:blocks: blocar de comptes e de domenis write:bookmarks: ajustar als marcadors + write:conversations: amudir e suprimir las conversacions write:favourites: metre en favorit write:filters: crear de filtres write:follows: sègre de mond diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml index c508aab94db3c0..75af425de3e548 100644 --- a/config/locales/doorkeeper.pl.yml +++ b/config/locales/doorkeeper.pl.yml @@ -130,7 +130,7 @@ pl: favourites: Ulubione filters: Filtry follow: Relacje - follows: Śledzenia + follows: Obserwowani lists: Listy media: Załączniki multimedialne mutes: Wyciszenia @@ -154,7 +154,7 @@ pl: admin:write:accounts: wykonaj działania moderacyjne na kontach admin:write:reports: wykonaj działania moderacyjne na zgłoszeniach crypto: użyj szyfrowania end-to-end - follow: możliwość śledzenia kont + follow: możliwość zarządzania relacjami kont push: otrzymywanie powiadomień push dla Twojego konta read: możliwość odczytu wszystkich danych konta read:accounts: dostęp do informacji o koncie @@ -162,7 +162,7 @@ pl: read:bookmarks: dostęp do zakładek read:favourites: dostęp do listy ulubionych read:filters: dostęp do filtrów - read:follows: dostęp do listy śledzonych + read:follows: dostęp do listy obserwowanych read:lists: dostęp do Twoich list read:mutes: dostęp do listy wyciszonych read:notifications: możliwość odczytu powiadomień @@ -176,7 +176,7 @@ pl: write:conversations: wycisz i usuń konwersacje write:favourites: możliwość dodawnia wpisów do ulubionych write:filters: możliwość tworzenia filtrów - write:follows: możliwość śledzenia ludzi + write:follows: możliwość obserwowania ludzi write:lists: możliwość tworzenia list write:media: możliwość wysyłania zawartości multimedialnej write:mutes: możliwość wyciszania ludzi i konwersacji diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml index 684b993abc0db8..905dff0e690211 100644 --- a/config/locales/doorkeeper.pt-BR.yml +++ b/config/locales/doorkeeper.pt-BR.yml @@ -60,7 +60,8 @@ pt-BR: error: title: Ocorreu um erro new: - review_permissions: Analisar permissões + prompt_html: O %{client_name} gostaria de ter permissão para acessar sua conta. É uma aplicação de terceiros. Se você não confia, então você não deve autorizá-lo. + review_permissions: Revisar permissões title: Autorização necessária show: title: Copie este código de autorização e cole no aplicativo. @@ -71,6 +72,8 @@ pt-BR: revoke: Você tem certeza? index: authorized_at: Autorizado em %{date} + description_html: Estas são as aplicações que podem acessar sua conta usando a API. Se houver aplicativos que você não reconhece ou com mau funcionamento, você pode revogar seu acesso. + last_used_at: Última vez usado em %{date} never_used: Nunca usado scopes: Permissões superapp: Interno @@ -110,23 +113,32 @@ pt-BR: destroy: notice: Aplicativo revogado. grouped_scopes: + access: + read: Acesso somente para leitura + read/write: Acesso de leitura e escrita + write: Acesso somente para escrita title: accounts: Contas + admin/accounts: Administração de contas + admin/all: Todas as funções administrativas + admin/reports: Administração de relatórios all: Tudo - blocks: Blocos + blocks: Bloqueios bookmarks: Salvos conversations: Conversas crypto: Criptografia de ponta a ponta favourites: Favoritos filters: Filtros - follow: Relações + follow: Relacionamentos + follows: Seguidores lists: Listas media: Mídias anexadas + mutes: Silenciados notifications: Notificações push: Notificações push reports: Denúncias search: Buscar - statuses: Posts + statuses: Publicações layouts: admin: nav: @@ -161,6 +173,7 @@ pt-BR: write:accounts: alterar seu perfil write:blocks: bloquear contas e domínios write:bookmarks: salvar toots + write:conversations: silenciar e excluir conversas write:favourites: favoritar toots write:filters: criar filtros write:follows: seguir pessoas diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml index ff0e4872043eee..86883bf149b9a4 100644 --- a/config/locales/doorkeeper.ru.yml +++ b/config/locales/doorkeeper.ru.yml @@ -76,6 +76,7 @@ ru: last_used_at: Последнее использование %{date} never_used: Не использовалось scopes: Разрешения + superapp: Внутреннее title: Ваши авторизованные приложения errors: messages: @@ -132,7 +133,7 @@ ru: follows: Подписки lists: Списки media: Медиафайлы - mutes: Без звука + mutes: Игнорирует notifications: Уведомления push: Push-уведомления reports: Обращения @@ -163,7 +164,7 @@ ru: read:filters: видеть ваши фильтры read:follows: видеть ваши подписки read:lists: видеть ваши списки - read:mutes: видеть список игнорируемых + read:mutes: смотреть список игнорируемых read:notifications: получать уведомления read:reports: видеть ваши жалобы read:search: использовать поиск @@ -172,12 +173,13 @@ ru: write:accounts: редактировать ваш профиль write:blocks: блокировать учётные записи и домены write:bookmarks: добавлять посты в закладки + write:conversations: игнорировать и удалить разговоры write:favourites: отмечать посты как избранные write:filters: создавать фильтры write:follows: подписываться на людей write:lists: создавать списки write:media: загружать медиафайлы - write:mutes: добавлять в игнорируемое людей и обсуждения + write:mutes: игнорировать людей и обсуждения write:notifications: очищать список уведомлений write:reports: отправлять жалобы на других write:statuses: публиковать посты diff --git a/config/locales/doorkeeper.si.yml b/config/locales/doorkeeper.si.yml index 6416fd082050d6..ebb7f474fcb5e5 100644 --- a/config/locales/doorkeeper.si.yml +++ b/config/locales/doorkeeper.si.yml @@ -4,10 +4,22 @@ si: attributes: doorkeeper/application: name: යෙදුමේ නම + redirect_uri: URI යළි-යොමු කරන්න + scopes: විෂය පථයන් website: යෙදුමේ වියමන අඩවිය + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: කොටසක් අඩංගු විය නොහැක. + invalid_uri: වලංගු URI එකක් විය යුතුය. + relative_uri: නිරපේක්ෂ URI විය යුතුය. + secured_uri: HTTPS/SSL URI එකක් විය යුතුය. doorkeeper: applications: buttons: + authorize: අවසරලත් cancel: අවලංගු destroy: විනාශ කරන්න edit: සංස්කරණය @@ -16,11 +28,20 @@ si: destroy: ඔබට විශ්වාසද? edit: title: යෙදුම සංස්කරණය + form: + error: අපොයි! විය හැකි දෝෂ සඳහා ඔබේ පෝරමය පරීක්ෂා කරන්න + help: + native_redirect_uri: දේශීය පරීක්ෂණ සඳහා %{native_redirect_uri} භාවිතා කරන්න + redirect_uri: URI එකකට එක පේළියක් භාවිතා කරන්න + scopes: අවකාශයන් සහිත විෂය පථයන් වෙන් කරන්න. පෙරනිමි විෂය පථ භාවිතා කිරීමට හිස්ව තබන්න. index: application: යෙදුම + callback_url: ආපසු ඇමතුම් URL + delete: මකන්න empty: ඔබට කිසිම යෙදුමක් නැත. name: නම new: නව යෙදුම + scopes: විෂය පථයන් show: පෙන්වන්න title: ඔබගේ යෙදුම් new: @@ -28,33 +49,137 @@ si: show: actions: ක්‍රියාමාර්ග application_id: අනුග්‍රාහක යතුර + callback_urls: ආපසු ඇමතුම් URL + scopes: විෂය පථයන් secret: අනුග්‍රාහකයේ රහස title: 'යෙදුම: %{name}' authorizations: buttons: authorize: සත්‍යාපනය + deny: ප්‍රතික්ෂේප කරන්න + error: + title: දෝෂයක් සිදුවී ඇත + new: + prompt_html: "%{client_name} ඔබගේ ගිණුමට ප්‍රවේශ වීමට අවසර ලබා ගැනීමට කැමති වේ. එය තෙවන පාර්ශවීය යෙදුමකි. ඔබ එය විශ්වාස නොකරන්නේ නම්, ඔබ එයට අවසර නොදිය යුතුය." + review_permissions: අවසර සමාලෝචනය කරන්න + title: බලය පැවරීමේ අවශ්ය + show: + title: මෙම අවසර කේතය පිටපත් කර එය යෙදුමට අලවන්න. authorized_applications: + buttons: + revoke: අවලංගු කරන්න confirmations: revoke: ඔබට විශ්වාසද? + index: + authorized_at: "%{date}මත අවසර දී ඇත" + description_html: මේවා API භාවිතයෙන් ඔබගේ ගිණුමට ප්‍රවේශ විය හැකි යෙදුම් වේ. ඔබ මෙහි හඳුනා නොගත් යෙදුම් තිබේ නම්, හෝ යෙදුමක් වැරදි ලෙස හැසිරෙන්නේ නම්, ඔබට එහි ප්‍රවේශය අවලංගු කළ හැක. + last_used_at: අවසන් වරට භාවිතා කළේ %{date} + never_used: කවදාවත් පාවිච්චි කළේ නැහැ + scopes: අවසර + superapp: අභ්යන්තර + title: ඔබගේ බලයලත් අයදුම්පත් + errors: + messages: + access_denied: සම්පත් හිමිකරු හෝ අවසර සේවාදායකය ඉල්ලීම ප්‍රතික්ෂේප කළේය. + credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials වින්‍යාස නොකිරීම හේතුවෙන් සම්පත් හිමිකරුගේ මුරපද අක්තපත්‍ර ප්‍රවාහය අසාර්ථක විය. + invalid_client: නොදන්නා සේවාලාභියා නිසා සේවාලාභී සත්‍යාපනය අසාර්ථක විය, සේවාලාභී සත්‍යාපනය ඇතුළත් කර නැත, හෝ සහය නොදක්වන සත්‍යාපන ක්‍රමයක්. + invalid_grant: සපයා ඇති අවසර දීමනාව වලංගු නැත, කල් ඉකුත් වී ඇත, අවලංගු කර ඇත, අවසර ඉල්ලීමේ භාවිතා කරන ලද යළි-යොමුවීම් URI සමඟ නොගැලපේ, නැතහොත් වෙනත් සේවාදායකයෙකුට නිකුත් කර ඇත. + invalid_redirect_uri: ඇතුළත් කර ඇති යළි-යොමුවීම් uri වලංගු නොවේ. + invalid_request: + missing_param: 'අවශ්‍ය පරාමිතිය අස්ථානගත වී ඇත: %{value}.' + request_not_authorized: ඉල්ලීම අනුමත කළ යුතුය. අවසර ඉල්ලීම සඳහා අවශ්‍ය පරාමිතිය අස්ථානගත වී හෝ වලංගු නොවේ. + unknown: ඉල්ලීමට අවශ්‍ය පරාමිතියක් අස්ථානගත වී ඇත, සහය නොදක්වන පරාමිති අගයක් ඇතුළත් වේ, නැතහොත් වෙනත් ආකාරයකින් විකෘති වී ඇත. + invalid_resource_owner: සපයන ලද සම්පත් හිමිකරු අක්තපත්‍ර වලංගු නැත, නැතහොත් සම්පත් හිමිකරු සොයාගත නොහැක + invalid_scope: ඉල්ලා සිටින විෂය පථය වලංගු නැත, නොදන්නා, හෝ විකෘති වී ඇත. + invalid_token: + expired: ප්‍රවේශ ටෝකනය කල් ඉකුත් විය + revoked: ප්‍රවේශ ටෝකනය අවලංගු කරන ලදී + unknown: ප්‍රවේශ ටෝකනය වලංගු නොවේ + resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator වින්‍යාසගත නොවීම හේතුවෙන් සම්පත් හිමිකරු සොයා ගැනීම අසාර්ථක විය. + server_error: අවසර සේවාදායකයට අනපේක්ෂිත කොන්දේසියක් ඇති වූ අතර එය ඉල්ලීම ඉටු කිරීම වළක්වයි. + temporarily_unavailable: තාවකාලික අධි බර පැටවීමක් හෝ සේවාදායකයේ නඩත්තුවක් හේතුවෙන් අවසර සේවාදායකයට ඉල්ලීම හැසිරවීමට දැනට නොහැක. + unauthorized_client: මෙම ක්‍රමය භාවිතයෙන් මෙම ඉල්ලීම ඉටු කිරීමට සේවාදායකයාට අවසර නැත. + unsupported_grant_type: අවසර ප්‍රදාන වර්ගයට බලය පැවරීමේ සේවාදායකය විසින් සහය නොදක්වයි. + unsupported_response_type: අවසර සේවාදායකය මෙම ප්‍රතිචාර වර්ගයට සහය නොදක්වයි. + flash: + applications: + create: + notice: යෙදුම නිර්මාණය කරන ලදී. + destroy: + notice: යෙදුම මකා ඇත. + update: + notice: යෙදුම යාවත්කාලීන කරන ලදී. + authorized_applications: + destroy: + notice: අයදුම්පත අවලංගු කරන ලදී. + grouped_scopes: + access: + read: කියවීමට පමණක් ප්‍රවේශය + read/write: කියවීමට සහ ලිවීමට ප්‍රවේශය + write: ලිවීමට පමණක් ප්‍රවේශය + title: + accounts: ගිණුම් + admin/accounts: ගිණුම් පරිපාලනය + admin/all: සියලුම පරිපාලන කාර්යයන් + admin/reports: වාර්තා පරිපාලනය + all: සියල්ල + blocks: කුට්ටි + bookmarks: පිටු සලකුණු + conversations: සංවාද + crypto: අන්ත සංකේතනය + favourites: ප්රියතම + filters: පෙරහන් + follow: සබඳතා + follows: පහත සඳහන් + lists: ලැයිස්තු + media: මාධ්ය ඇමුණුම් + mutes: නිහඬ කරයි + notifications: දැනුම්දීම් + push: තල්ලු දැනුම්දීම් + reports: වාර්තා + search: සොයන්න + statuses: ලිපි layouts: admin: nav: applications: යෙදුම් oauth2_provider: වි.සත්‍යා.2 (OAuth) සැපයුම්කරු application: - title: වි.සත්‍යා. (OAuth) අනුමැතිය අවශ්‍යයයි + title: වි.සත්යා. (OAuth) තොරතුරු අවශ්‍යයි scopes: admin:read: සේවාදායකයේ ඇති සියලුම දත්ත කියවන්න admin:read:accounts: සියලුම ගිණුම් වල සංවේදී තොරතුරු කියවන්න admin:read:reports: සියලුම වාර්තා සහ වාර්තා කළ ගිණුම් වල සංවේදී තොරතුරු කියවන්න + admin:write: සේවාදායකයේ සියලුම දත්ත වෙනස් කරන්න + admin:write:accounts: ගිණුම් මත මධ්‍යස්ථ ක්‍රියා සිදු කරන්න + admin:write:reports: වාර්තා මත මධ්‍යස්ථ ක්‍රියා සිදු කරන්න + crypto: end-to-end encryption භාවිතා කරන්න + follow: ගිණුම් සබඳතා වෙනස් කරන්න + push: ඔබගේ තල්ලු දැනුම්දීම් ලබා ගන්න read: ඔබගේ ගිණුමේ සියලුම දත්ත කියවන්න + read:accounts: ගිණුම් තොරතුරු බලන්න + read:blocks: ඔබගේ වාරණ බලන්න + read:bookmarks: ඔබගේ පිටු සලකුණු බලන්න + read:favourites: ඔබේ ප්රියතම බලන්න read:filters: ඔබගේ පෙරහන් බලන්න + read:follows: ඔබගේ පහත සඳහන් බලන්න read:lists: ඔබගේ ලැයිස්තු බලන්න + read:mutes: ඔබේ ගොළු බලන්න read:notifications: ඔබගේ දැනුම්දීම් බලන්න - read:search: ඔබ වෙනුවට සොයන්න + read:reports: ඔබගේ වාර්තා බලන්න + read:search: ඔබ වෙනුවෙන් සොයන්න + read:statuses: සියලුම පෝස්ට් බලන්න + write: ඔබගේ ගිණුමේ සියලුම දත්ත වෙනස් කරන්න + write:accounts: ඔබගේ පැතිකඩ වෙනස් කරන්න write:blocks: ගිණුම් සහ වසම් අවහිර කරන්න - write:filters: පෙරහන් සාදන්න + write:bookmarks: පිටු සලකුණු සටහන් + write:conversations: සංවාද නිහඬ කිරීම සහ මකා දැමීම + write:favourites: ප්‍රියතම ලිපි + write:filters: පෙරහන් කරන්න + write:follows: මිනිසුන් අනුගමනය කරන්න + write:lists: ලැයිස්තු සාදන්න write:media: මාධ්‍ය ගොනු උඩුගත කරන්න - write:mutes: මිනිසුන් සහ සංවාද නිහඬකරන්න + write:mutes: මිනිසුන් සහ සංවාද කරන්න write:notifications: ඔබගේ දැනුම්දීම් හිස්කරන්න - write:reports: වෙනත් මිනිසුන් වාර්තා කරන්න + write:reports: වෙනත් පුද්ගලයින් වාර්තා කරන්න + write:statuses: පළ කිරීම් පළ කරන්න diff --git a/config/locales/doorkeeper.sl.yml b/config/locales/doorkeeper.sl.yml index 5267b7fa257114..1a27f62329ab74 100644 --- a/config/locales/doorkeeper.sl.yml +++ b/config/locales/doorkeeper.sl.yml @@ -15,7 +15,7 @@ sl: fragment_present: ne more vsebovati fragmenta. invalid_uri: mora biti veljaven URI. relative_uri: mora biti absolutni URI. - secured_uri: mora biti HTTPS/SSL URI. + secured_uri: mora biti URI HTTPS/SSL. doorkeeper: applications: buttons: @@ -27,7 +27,7 @@ sl: confirmations: destroy: Ali ste prepričani? edit: - title: Uredi aplikacijo + title: Uredi program form: error: Ups! Preverite obrazec za morebitne napake help: @@ -82,7 +82,7 @@ sl: messages: access_denied: Lastnik virov ali strežnik pooblastil je zavrnil zahtevo. credential_flow_not_configured: Pretok geselskih pooblastil lastnika virov ni uspel, ker Doorkeeper.configure.resource_owner_from_credentials ni nastavljen. - invalid_client: Overitev odjemalca ni uspelo zaradi neznanega odjemalca, zaradi nevključitve overitve odjemalca ali zaradi nepodprte metode overitve. + invalid_client: Overitev odjemalca ni uspela zaradi neznanega odjemalca, zaradi nevključitve overitve odjemalca ali zaradi nepodprte metode overitve. invalid_grant: Predložena odobritev za pooblastilo je neveljavna, potekla, preklicana, se ne ujema z URI preusmeritvijo, ki je uporabljena v zahtevi za pooblastilo ali je bila izdana drugemu odjemalcu. invalid_redirect_uri: URI za preusmeritev ni veljaven. invalid_request: @@ -121,7 +121,7 @@ sl: accounts: Računi admin/accounts: Upravljanje računov admin/all: Vse skrbniške funkcije - admin/reports: Upravljanje poročil + admin/reports: Upravljanje prijav all: Vse blocks: Blokira bookmarks: Zaznamki @@ -136,7 +136,7 @@ sl: mutes: Utišani notifications: Obvestila push: Potisna obvestila - reports: Poročila + reports: Prijave search: Iskanje statuses: Objave layouts: @@ -145,7 +145,7 @@ sl: applications: Programi oauth2_provider: Ponudnik OAuth2 application: - title: Potrebna je OAuth pooblastitev + title: Potrebna je pooblastitev OAuth scopes: admin:read: preberi vse podatke na strežniku admin:read:accounts: preberi občutljive informacije vseh računov @@ -159,7 +159,7 @@ sl: read: preberi vse podatke svojega računa read:accounts: oglejte si podrobnosti računov read:blocks: oglejte si svoje blokirane - read:bookmarks: glejte svoje zaznamke + read:bookmarks: oglejte si svoje zaznamke read:favourites: oglejte si svoje priljubljene read:filters: oglejte si svoje filtre read:follows: oglejte si svoje sledilce diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index 6e0efd6d179068..0c934155ed3472 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -5,7 +5,7 @@ sv: doorkeeper/application: name: Applikationsnamn redirect_uri: Omdirigera URI - scopes: Omfattning + scopes: Omfattningar website: Applikationswebbplats errors: models: @@ -15,13 +15,13 @@ sv: fragment_present: kan inte innehålla ett fragment. invalid_uri: måste vara en giltig URI. relative_uri: måste vara en absolut URI. - secured_uri: måste vara en HTTPS/SSL URI. + secured_uri: måste vara en HTTPS/SSL-URI. doorkeeper: applications: buttons: - authorize: Godkänna + authorize: Godkänn cancel: Ångra - destroy: Förstöra + destroy: Förstör edit: Redigera submit: Skicka confirmations: @@ -29,52 +29,54 @@ sv: edit: title: Redigera applikation form: - error: Hoppsan! Kontrollera i formuläret efter eventuella fel + error: Hoppsan! Kolla ditt formulär efter eventuella fel help: - native_redirect_uri: Använd %{native_redirect_uri} för lokalt test - redirect_uri: Använd en per rad URI - scopes: Separera omfattningen med mellanslag. Lämna tomt för att använda standardomfattning. + native_redirect_uri: Använd %{native_redirect_uri} för lokala tester + redirect_uri: Använd en rad per URI + scopes: Separera omfattningar med mellanslag. Lämna tomt för att använda standardomfattningar. index: application: Applikation - callback_url: Återkalls URL + callback_url: URL för återanrop delete: Radera - empty: Du har inga program. + empty: Du har inga applikationer. name: Namn new: Ny applikation - scopes: Omfattning + scopes: Omfattningar show: Visa title: Dina applikationer new: title: Ny applikation show: - actions: Handlingar + actions: Åtgärder application_id: Klientnyckel - callback_urls: Återkalls URLs - scopes: Omfattning - secret: Kundhemlighet - title: 'Program: %{name}' + callback_urls: URL:er för återanrop + scopes: Omfattningar + secret: Klienthemlighet + title: 'Applikation: %{name}' authorizations: buttons: - authorize: Godkänna + authorize: Godkänn deny: Neka error: title: Ett fel har uppstått new: - review_permissions: Förhandsgranska behörigheter + prompt_html: "%{client_name} vill ha behörighet att komma åt ditt konto. Det är en applikation från tredje part. Du bör endast godkänna den om du litar på den." + review_permissions: Granska behörigheter title: Godkännande krävs show: - title: Kopiera denna behörighetskod och klistra in den i programmet. + title: Kopiera denna behörighetskod och klistra in den i applikationen. authorized_applications: buttons: revoke: Återkalla confirmations: revoke: Är du säker? index: - authorized_at: Auktoriserades %{date} + authorized_at: Godkändes den %{date} + description_html: Dessa applikationer har åtkomst till ditt konto genom API:et. Om det finns applikationer du inte känner igen här, eller om en applikation inte fungerar, kan du återkalla dess åtkomst. last_used_at: Användes senast %{date} never_used: Aldrig använd scopes: Behörigheter - superapp: Internt + superapp: Intern title: Dina behöriga ansökningar errors: messages: @@ -111,6 +113,10 @@ sv: destroy: notice: Applikation återkallas. grouped_scopes: + access: + read: Enbart rätt att läsa + read/write: Läs- och skrivbehörighet + write: Enbart rätt att skriva title: accounts: Konton admin/accounts: Administrering av konton @@ -122,9 +128,12 @@ sv: conversations: Konversationer crypto: Ände-till-ände-kryptering favourites: Favoriter + filters: Filter follow: Relationer follows: Följer lists: Listor + media: Mediabilagor + mutes: Tystade användare notifications: Aviseringar push: Push-aviseringar reports: Rapporter @@ -134,18 +143,19 @@ sv: admin: nav: applications: Applikationer - oauth2_provider: OAuth2 leverantör + oauth2_provider: OAuth2-leverantör application: - title: OAuth-behörighet krävs + title: OAuth-godkännande krävs scopes: - admin:read: läs all data på servern - admin:read:accounts: läs känslig information från alla konton - admin:read:reports: läs känslig information från alla rapporter och rapporterade konton + admin:read: läsa all data på servern + admin:read:accounts: läsa känslig information om alla konton + admin:read:reports: läsa känslig information om alla rapporter och rapporterade konton admin:write: ändra all data på servern - admin:write:accounts: utför alla aktiviteter för moderering på konton - admin:write:reports: utför alla aktiviteter för moderering i rapporter - follow: följa, blockera, ta bort blockerade och sluta följa konton - push: ta emot push-aviseringar för ditt konto + admin:write:accounts: utföra modereringsåtgärder på konton + admin:write:reports: utföra modereringsåtgärder på rapporter + crypto: använd obruten kryptering + follow: modifiera kontorelationer + push: ta emot dina push-notiser read: läsa dina kontodata read:accounts: se kontoinformation read:blocks: se dina blockeringar @@ -155,20 +165,21 @@ sv: read:follows: se vem du följer read:lists: se dina listor read:mutes: se dina tystningar - read:notifications: se dina aviseringar + read:notifications: se dina notiser read:reports: se dina rapporter read:search: sök å dina vägnar - read:statuses: se alla statusar - write: posta åt dig + read:statuses: se alla inlägg + write: ändra all din kontodata write:accounts: ändra din profil write:blocks: blockera konton och domäner - write:bookmarks: bokmärkesstatusar - write:favourites: favoritmarkera statusar + write:bookmarks: bokmärka inlägg + write:conversations: tysta och radera konversationer + write:favourites: favoritmarkera inlägg write:filters: skapa filter - write:follows: följ människor + write:follows: följa folk write:lists: skapa listor - write:media: ladda upp mediafiler - write:mutes: tysta människor och konversationer - write:notifications: rensa dina aviseringar - write:reports: rapportera andra människor - write:statuses: publicera statusar + write:media: ladda upp mediefiler + write:mutes: tysta folk och konversationer + write:notifications: rensa dina notiser + write:reports: rapportera andra personer + write:statuses: publicera inlägg diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index 5c1e1582f6c133..a0913dc92cd868 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -81,16 +81,25 @@ th: errors: messages: access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ + credential_flow_not_configured: โฟลว์ข้อมูลประจำตัวรหัสผ่านเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_from_credentials + invalid_client: การรับรองความถูกต้องไคลเอ็นต์ล้มเหลวเนื่องจากไคลเอ็นต์ที่ไม่รู้จัก ไม่มีการรับรองความถูกต้องไคลเอ็นต์ที่รวมอยู่ หรือวิธีการรับรองความถูกต้องที่ไม่รองรับ + invalid_grant: การให้การรับรองความถูกต้องที่ให้มาไม่ถูกต้อง หมดอายุแล้ว เพิกถอนแล้ว ไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการรับรองความถูกต้อง หรือออกให้ไคลเอ็นต์อื่น invalid_redirect_uri: URI การเปลี่ยนเส้นทางที่รวมอยู่ไม่ถูกต้อง invalid_request: missing_param: 'พารามิเตอร์ที่จำเป็นขาดหายไป: %{value}' + request_not_authorized: คำขอจำเป็นต้องได้รับอนุญาต พารามิเตอร์ที่จำเป็นสำหรับการอนุญาตคำขอขาดหายไปหรือไม่ถูกต้อง + unknown: คำขอไม่มีพารามิเตอร์ที่จำเป็น รวมค่าพารามิเตอร์ที่ไม่รองรับ หรือมิฉะนั้นผิดรูปแบบ + invalid_resource_owner: ข้อมูลประจำตัวเจ้าของทรัพยากรที่ให้มาไม่ถูกต้อง หรือไม่พบเจ้าของทรัพยากร invalid_scope: ขอบเขตที่ขอไม่ถูกต้อง ไม่รู้จัก หรือผิดรูปแบบ invalid_token: expired: โทเคนการเข้าถึงหมดอายุแล้ว revoked: เพิกถอนโทเคนการเข้าถึงแล้ว unknown: โทเคนการเข้าถึงไม่ถูกต้อง resource_owner_authenticator_not_configured: การค้นหาเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_authenticator + server_error: เซิร์ฟเวอร์การรับรองความถูกต้องพบเงื่อนไขที่ไม่คาดคิดซึ่งป้องกันไม่ให้เซิร์ฟเวอร์ดำเนินการตามคำขอ + temporarily_unavailable: เซิร์ฟเวอร์การรับรองความถูกต้องไม่สามารถจัดการคำขอได้ในปัจจุบันเนื่องจากการทำงานเกินพิกัดชั่วคราวหรือการบำรุงรักษาเซิร์ฟเวอร์ unauthorized_client: ไคลเอ็นต์ไม่ได้รับอนุญาตให้ทำคำขอนี้โดยใช้วิธีการนี้ + unsupported_grant_type: ชนิดการให้การรับรองความถูกต้องไม่รองรับโดยเซิร์ฟเวอร์การรับรองความถูกต้อง unsupported_response_type: เซิร์ฟเวอร์การอนุญาตไม่รองรับชนิดการตอบสนองนี้ flash: applications: diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index 351d271d06c7e8..51d0dff08586c7 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -81,7 +81,7 @@ tr: errors: messages: access_denied: Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti. - credential_flow_not_configured: Kaynak Sahibi Şifresi Kimlik Bilgileri akışı Doorkeeper.configure.resource_owner_from_credentials 'ın yapılandırılmamış olması nedeniyle başarısız oldu. + credential_flow_not_configured: Kaynak Sahibi Parolası Kimlik Bilgileri akışı Doorkeeper.configure.resource_owner_from_credentials 'ın yapılandırılmamış olması nedeniyle başarısız oldu. invalid_client: İstemcinin kimlik doğrulaması bilinmeyen istemci, istemci kimlik doğrulamasının dahil olmaması veya desteklenmeyen kimlik doğrulama yöntemi nedeniyle başarısız oldu. invalid_grant: Sağlanan yetkilendirme izni geçersiz, süresi dolmuş, iptal edilmiş, yetkilendirme isteğinde kullanılan yönlendirme URL'siyle eşleşmiyor veya başka bir istemciye verilmiş. invalid_redirect_uri: Dahil edilmiş yönlendirme URL'si geçersiz. diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml index 79b09cdb206405..504361081e06e7 100644 --- a/config/locales/doorkeeper.uk.yml +++ b/config/locales/doorkeeper.uk.yml @@ -27,7 +27,7 @@ uk: confirmations: destroy: Ви впевнені? edit: - title: Редагувати додаток + title: Редагувати застосунок form: error: Отакої! Перевірте свою форму на помилки help: @@ -35,24 +35,24 @@ uk: redirect_uri: Використовуйте одну стрічку на URI scopes: Відділяйте області видимості пробілами. Залишайте порожніми, щоб використовувати області видимості за промовчуванням. index: - application: Додаток + application: Застосунок callback_url: URL зворотнього виклику delete: Видалити empty: У вас немає створених додатків. name: Назва - new: Новий додаток + new: Новий застосунок scopes: Області видимості show: Показати title: Ваші додатки new: - title: Новий додаток + title: Новий застосунок show: actions: Дії - application_id: ID додатку + application_id: Ключ застосунку callback_urls: URL зворотніх викликів scopes: Дозволи secret: Таємниця - title: 'Додаток: %{name}' + title: 'Застосунок: %{name}' authorizations: buttons: authorize: Авторизувати @@ -64,7 +64,7 @@ uk: review_permissions: Переглянути дозволи title: Необхідна авторизація show: - title: Скопіюйте цей код авторизації та вставте його у додаток. + title: Скопіюйте цей код авторизації та вставте його у застосунок. authorized_applications: buttons: revoke: Відкликати авторизацію @@ -84,7 +84,7 @@ uk: credential_flow_not_configured: Не вдалося перевірити парольні дані клієнту через неналаштований параметр Doorkeeper.configure.resource_owner_from_credentials. invalid_client: Не вдалося аутентифікувати клієнта (клієнт невідомий, аутентифікацію клієнта не увімкнено, або непідтримуваний метод аутентифікації). invalid_grant: Наданий санкціонований дозвіл недійсний, прострочений, анульований, не відповідає URI перенаправлення, що використовується в запиті авторизації, або був виданий іншому клієнту. - invalid_redirect_uri: Включений URI перенаправлення не є дійсним. + invalid_redirect_uri: Включений uri перенаправлення не є дійсним. invalid_request: missing_param: 'Відсутній обов''язковий параметр: %{value}.' request_not_authorized: Запит повинен бути авторизований. Необхідний параметр запиту авторизації відсутній або хибний. @@ -104,11 +104,11 @@ uk: flash: applications: create: - notice: Додаток створено. + notice: Застосунок створено. destroy: - notice: Додаток видалено. + notice: Застосунок видалено. update: - notice: Додаток оновлено. + notice: Застосунок оновлено. authorized_applications: destroy: notice: Авторизацію додатка відкликано. @@ -160,7 +160,7 @@ uk: read:accounts: бачити інформацію про облікові записи read:blocks: бачити Ваші блокування read:bookmarks: бачити ваші закладки - read:favourites: бачити Ваші вподобані пости + read:favourites: бачити вподобані дописи read:filters: бачити Ваші фільтри read:follows: бачити Ваші підписки read:lists: бачити Ваші списки @@ -168,13 +168,13 @@ uk: read:notifications: бачити Ваші сповіщення read:reports: бачити Ваші скарги read:search: шукати від вашого імені - read:statuses: бачити всі статуси + read:statuses: бачити всі дописи write: змінювати усі дані вашого облікового запису write:accounts: змінювати ваш профіль write:blocks: блокувати облікові записи і домени - write:bookmarks: додавати пости в закладки + write:bookmarks: додавати дописи до закладок write:conversations: нехтувати й видалити бесіди - write:favourites: вподобані статуси + write:favourites: вподобані дописи write:filters: створювати фільтри write:follows: підписуйтесь на людей write:lists: створювайте списки @@ -182,4 +182,4 @@ uk: write:mutes: нехтувати людей або бесіди write:notifications: очищувати Ваші сповіщення write:reports: надіслати скаргу про людей - write:statuses: публікувати статуси + write:statuses: публікувати дописи diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml index 946760d323bc79..ce902a01c88a47 100644 --- a/config/locales/doorkeeper.vi.yml +++ b/config/locales/doorkeeper.vi.yml @@ -77,7 +77,7 @@ vi: never_used: Chưa dùng scopes: Quyền cho phép superapp: Đang dùng - title: Các ứng dụng đang dùng + title: Các ứng dụng đã dùng errors: messages: access_denied: Chủ sở hữu tài nguyên hoặc máy chủ đã từ chối yêu cầu. @@ -171,7 +171,7 @@ vi: read:statuses: xem toàn bộ tút write: sửa đổi mọi dữ liệu tài khoản của bạn write:accounts: sửa đổi trang hồ sơ của bạn - write:blocks: chặn người dùng và máy chủ + write:blocks: chặn người và máy chủ write:bookmarks: sửa đổi những thứ bạn lưu write:conversations: ẩn và xóa thảo luận write:favourites: lượt thích @@ -179,7 +179,7 @@ vi: write:follows: theo dõi ai đó write:lists: tạo danh sách write:media: tải lên tập tin - write:mutes: ẩn người dùng và cuộc đối thoại + write:mutes: ẩn người và thảo luận write:notifications: xóa thông báo của bạn write:reports: báo cáo người khác write:statuses: đăng tút diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml index e8a699d85f0cf7..07b617192bdb94 100644 --- a/config/locales/doorkeeper.zh-TW.yml +++ b/config/locales/doorkeeper.zh-TW.yml @@ -31,14 +31,14 @@ zh-TW: form: error: 唉呦!請看看表單以排查錯誤 help: - native_redirect_uri: 請使用 %{native_redirect_uri} 作本機測試 + native_redirect_uri: 請使用 %{native_redirect_uri} 作本站測試 redirect_uri: 每行輸入一個 URI scopes: 請用半形空格分開範圍。空白表示使用預設的範圍。 index: application: 應用程式 callback_url: 回傳網址 delete: 刪除 - empty: 您沒有安裝 App。 + empty: 您沒有安裝應用程式。 name: 名稱 new: 新增應用程式 scopes: 範圍 @@ -48,10 +48,10 @@ zh-TW: title: 新增應用程式 show: actions: 動作 - application_id: 客戶端金鑰 + application_id: 用戶端金鑰 (client key) callback_urls: 回傳網址 scopes: 範圍 - secret: 客戶端密碼 + secret: 用戶端密碼 (client secret) title: 應用程式︰%{name} authorizations: buttons: @@ -67,9 +67,9 @@ zh-TW: title: 複製此授權碼並貼上到應用程式中。 authorized_applications: buttons: - revoke: 撤銷 + revoke: 註銷 confirmations: - revoke: 確定撤銷? + revoke: 您確定嗎? index: authorized_at: 於 %{date} 授權 description_html: 這些應用程式能透過 API 存取您的帳號。若有您不認得之應用程式,或應用程式行為異常,您可以於此註銷其存取權限。 @@ -82,8 +82,8 @@ zh-TW: messages: access_denied: 資源持有者或授權伺服器拒絕請求。 credential_flow_not_configured: 因為 Doorkeeper.configure.resource_owner_from_credentials 未設定,所以資源持有者密碼認證程序失敗。 - invalid_client: 客戶端驗證失敗,可能是因為未知的客戶端程式、未包含客戶端驗證、或使用了不支援的認證方法。 - invalid_grant: 授權申請不正確、逾期、已被取消、與授權請求內的重新導向 URI 不符、或屬於別的客戶端程式。 + invalid_client: 用戶端驗證失敗,可能是因為未知的用戶端程式、未包含用戶端驗證、或使用了不支援的認證方法。 + invalid_grant: 授權申請不正確、逾期、已被註銷、與授權請求內的重新導向 URI 不符、或屬於別的用戶端程式。 invalid_redirect_uri: 包含的重新導向 URI 是不正確的。 invalid_request: missing_param: 缺少必要的參數:%{value}. @@ -98,7 +98,7 @@ zh-TW: resource_owner_authenticator_not_configured: 因為未設定 Doorkeeper.configure.resource_owner_authenticator,所以資源持有者尋找失敗。 server_error: 認證伺服器發生未知錯誤。 temporarily_unavailable: 認證伺服器暫時無法使用。 - unauthorized_client: 客戶端程式沒有權限使用此方法請求。 + unauthorized_client: 用戶端程式沒有權限使用此方法請求。 unsupported_grant_type: 認證伺服器不支援這個授權類型。 unsupported_response_type: 認證伺服器不支援這個回應類型。 flash: @@ -111,7 +111,7 @@ zh-TW: notice: 已更新應用程式。 authorized_applications: destroy: - notice: 已撤銷應用程式。 + notice: 已註銷應用程式。 grouped_scopes: access: read: 唯讀權限 @@ -148,8 +148,8 @@ zh-TW: title: 需要 OAuth 授權 scopes: admin:read: 讀取伺服器的所有資料 - admin:read:accounts: 讀取所有帳號的敏感資訊 - admin:read:reports: 讀取所有回報 / 被回報之帳號的敏感資訊 + admin:read:accounts: 讀取所有帳號的敏感內容 + admin:read:reports: 讀取所有回報 / 被回報之帳號的敏感內容 admin:write: 修改伺服器的所有資料 admin:write:accounts: 對帳號進行仲裁管理動作 admin:write:reports: 對報告進行仲裁管理動作 @@ -177,7 +177,7 @@ zh-TW: write:favourites: 加到最愛 write:filters: 建立過濾條件 write:follows: 跟隨其他人 - write:lists: 建立名單 + write:lists: 建立列表 write:media: 上傳媒體檔案 write:mutes: 靜音使用者及對話 write:notifications: 清除您的通知 diff --git a/config/locales/el.yml b/config/locales/el.yml index c8cdf2d20eb213..20d74a6a4d9eaa 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1,91 +1,26 @@ --- el: about: - about_hashtag_html: Αυτά είναι κάποια από τα δημόσια τουτ σημειωμένα με #%{hashtag}. Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse. about_mastodon_html: 'Το κοινωνικό δίκτυο του μέλλοντος: Χωρίς διαφημίσεις, χωρίς εταιρίες να σε κατασκοπεύουν, ηθικά σχεδιασμένο και αποκεντρωμένο! Με το Mastodon τα δεδομένα σου είναι πραγματικά δικά σου!' - about_this: Σχετικά - active_count_after: ενεργοί - active_footnote: Μηνιαίοι Ενεργοί Χρήστες (ΜΕΧ) - administered_by: 'Διαχειριστής:' - api: API - apps: Εφαρμογές κινητών - apps_platforms: Χρησιμοποίησε το Mastodon από το iOS, το Android και αλλού - browse_directory: Ξεφύλλισε τον κατάλογο χρηστών και ψάξε ανά ενδιαφέροντα - browse_local_posts: Ξεφύλλισε τη ζωντανή ροή αυτού του διακομιστή - browse_public_posts: Ξεφύλλισε τη ζωντανή ροή του Mastodon - contact: Επικοινωνία contact_missing: Δεν έχει οριστεί contact_unavailable: Μη διαθέσιμο - discover_users: Ανακάλυψε χρήστες - documentation: Τεκμηρίωση - federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο Mastodon αλλά και παραπέρα. - get_apps: Δοκίμασε μια εφαρμογή κινητού hosted_on: Το Mastodon φιλοξενείται στο %{domain} - instance_actor_flash: | - Αυτός ο λογαριασμός είναι εικονικός και απεικονίζει ολόκληρο τον κόμβο, όχι κάποιο συγκεκριμένο χρήστη. - Χρησιμεύει στη λειτουργία της ομοσπονδίας και δε θα πρέπει να αποκλειστεί, εκτός κι αν είναι επιθυμητός ο αποκλεισμός ολόκληρου του κόμβου. Σε αυτή την περίπτωση θα πρέπει να χρησιμοποιηθεί η λειτουργία αποκλεισμού τομέα. - learn_more: Μάθε περισσότερα - logout_before_registering: Είστε ήδη συνδεδεμένοι. - privacy_policy: Πολιτική απορρήτου - rules: Κανόνες διακομιστή - rules_html: 'Παρακάτω είναι μια σύνοψη των κανόνων που πρέπει να ακολουθήσετε αν θέλετε να έχετε ένα λογαριασμό σε αυτόν τον διακομιστή Mastodon:' - see_whats_happening: Μάθε τι συμβαίνει - server_stats: 'Στατιστικά κόμβου:' - source_code: Πηγαίος κώδικας - status_count_after: - one: δημοσίευση - other: δημοσιεύσεις - status_count_before: Που έγραψαν - tagline: Ακολούθησε τους γνωστούς σου και ανακάλυψε νέους ανθρώπους - terms: Όροι χρήσης - unavailable_content: Μη διαθέσιμο - unavailable_content_description: - domain: Διακομιστής - reason: 'Αιτία:' - rejecting_media: 'Τα αρχεία πολυμέσων αυτών των διακομιστών δεν θα επεξεργάζονται, δεν θα αποθηκεύονται και δεν θα εμφανίζεται η προεπισκόπησή τους, απαιτώντας χειροκίνητη επιλογή μέχρι το αρχικό αρχείο:' - rejecting_media_title: Φιλτραρισμένα πολυμέσα - silenced: 'Οι δημοσιεύσεις αυτών των διακομιστών θα είναι κρυμμένες από τις δημόσιες ροές και συζητήσεις, ενώ δεν θα δημιουργούνται ειδοποιήσεις για τις ενέργειες των χρηστών τους, εκτός κι αν τους ακολουθείς:' - silenced_title: Αποσιωπημένοι διακομιστές - suspended: 'Κανένα δεδομένο δε θα επεξεργάζεται, δε θα αποθηκεύεται και δε θα ανταλλάσσεται για αυτούς τους διακομιστές, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτούς τους διακομιστές αδύνατη:' - suspended_title: Διακομιστές σε αναστολή - unavailable_content_html: Το Mastodon γενικά επιτρέπει να δεις περιεχόμενο και να αλληλεπιδράσεις με χρήστες από οποιονδήποτε διακομιστή στο fediverse. Εδώ είναι οι εξαιρέσεις που ισχύουν σε αυτόν τον συγκεκριμένο διακομιστή. - user_count_after: - one: χρήστης - other: χρήστες - user_count_before: Σπίτι για - what_is_mastodon: Τι είναι το Mastodon; + title: Σχετικά με accounts: - choices_html: 'Επιλογές από %{name}:' - endorsements_hint: Μπορεις να εγκρίνεις ανθρώπους που ακολουθείς μέσω της δικτυακής εφαρμογής και αυτοί θα εμφανίζονται εδώ. - featured_tags_hint: Μπορείς να επιλέξεις συγκεκριμένες ετικέτες που θα εμφανίζονται εδώ. follow: Ακολούθησε followers: one: Ακόλουθος other: Ακόλουθοι following: Ακολουθεί - joined: Εγγράφηκε στις %{date} last_active: τελευταία ενεργός/ή link_verified_on: Η κυριότητα αυτού του συνδέσμου ελέγχθηκε στις %{date} - media: Πολυμέσα - moved_html: 'Ο/Η %{name} μετακόμισε στο %{new_profile_link}:' - network_hidden: Αυτή η πληροφορία δεν είναι διαθέσιμη nothing_here: Δεν υπάρχει τίποτα εδώ! - people_followed_by: Χρήστες που ακολουθεί ο/η %{name} - people_who_follow: Χρήστες που ακολουθούν τον/την %{name} pin_errors: following: Πρέπει ήδη να ακολουθείς το άτομο που θέλεις να επιδοκιμάσεις posts: one: Τουτ other: Τουτ posts_tab_heading: Τουτ - posts_with_replies: Τουτ και απαντήσεις - roles: - admin: Διαχειριστής - bot: Μποτ (αυτόματος λογαριασμός) - group: Ομάδα - moderator: Μεσολαβητής - unavailable: Το προφίλ δεν είναι διαθέσιμο - unfollow: Διακοπή παρακολούθησης admin: account_actions: action: Εκτέλεση ενέργειας @@ -102,12 +37,15 @@ el: avatar: Αβατάρ by_domain: Τομέας change_email: - changed_msg: Επιτυχής αλλαγή email λογαριασμού! current_email: Τρέχον email label: Αλλαγή email new_email: Νέο email submit: Αλλαγή email title: Αλλαγή email για %{username} + change_role: + label: Αλλαγή ρόλου + no_role: Κανένας ρόλος + title: Αλλαγή ρόλου για %{username} confirm: Επιβεβαίωση confirmed: Επιβεβαιώθηκε confirming: Προς επιβεβαίωση @@ -148,6 +86,7 @@ el: active: Ενεργός/ή all: Όλα pending: Εκκρεμούν + silenced: Περιορισμένοι suspended: Σε αναστολή title: Μεσολάβηση moderation_notes: Σημειώσεις μεσολάβησης @@ -155,6 +94,7 @@ el: most_recent_ip: Πιο πρόσφατη IP no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος no_limits_imposed: Χωρίς όρια + no_role_assigned: Δεν έχει ανατεθεί ρόλος not_subscribed: Άνευ συνδρομής pending: Εκκρεμεί έγκριση perform_full_suspension: Αναστολή @@ -177,12 +117,7 @@ el: reset: Επαναφορά reset_password: Επαναφορά συνθηματικού resubscribe: Επανεγγραφή - role: Δικαιώματα - roles: - admin: Διαχειριστής - moderator: Συντονιστής - staff: Προσωπικό - user: Χρήστης + role: Ρόλος search: Αναζήτηση search_same_email_domain: Άλλοι χρήστες με τον ίδιο τομέα e-mail search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP @@ -249,6 +184,7 @@ el: reject_user: Απόρριψη Χρήστη remove_avatar_user: Αφαίρεση Avatar reopen_report: Ξανάνοιγμα Καταγγελίας + resend_user: Επαναποστολή του email επιβεβαίωσης reset_password_user: Επαναφορά Συνθηματικού resolve_report: Επίλυση Καταγγελίας sensitive_account: Σήμανση των πολυμέσων στον λογαριασμό σας ως ευαίσθητων @@ -267,7 +203,7 @@ el: destroy_instance_html: Ο/Η %{name} εκκαθάρισε τον τομέα %{target} reject_user_html: "%{name} απορρίφθηκε εγγραφή από %{target}" unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}" - deleted_status: "(διαγραμμένη δημοσίευση)" + deleted_account: διαγραμμένος λογαριασμός empty: Δεν βρέθηκαν αρχεία καταγραφής. filter_by_action: Φιλτράρισμα ανά ενέργεια filter_by_user: Φιλτράρισμα ανά χρήστη @@ -340,6 +276,7 @@ el: destroyed_msg: Ο αποκλεισμός τομέα άρθηκε domain: Τομέας edit: Διαχείρηση αποκλεισμένου τομέα + existing_domain_block: Έχετε ήδη επιβάλει αυστηρότερα όρια στο %{name}. existing_domain_block_html: Έχεις ήδη επιβάλλει αυστηρότερους περιορισμούς στο %{name}, πρώτα θα πρέπει να τους αναιρέσεις. new: create: Δημιουργία αποκλεισμού @@ -491,6 +428,18 @@ el: unresolved: Άλυτη updated_at: Ενημερωμένη view_profile: Προβολή προφίλ + roles: + add_new: Προσθήκη ρόλου + assigned_users: + one: "%{count} χρήστης" + other: "%{count} χρήστες" + categories: + administration: Διαχείριση + devops: Devops + invites: Προσκλήσεις + delete: Διαγραφή + privileges: + view_devops: DevOps rules: add_new: Προσθήκη κανόνα delete: Διαγραφή @@ -499,104 +448,54 @@ el: empty: Δεν έχουν οριστεί ακόμα κανόνες διακομιστή. title: Κανόνες διακομιστή settings: - activity_api_enabled: - desc_html: Καταμέτρηση τοπικών δημοσιεύσεων, ενεργών χρηστών και νέων εγγραφών σε εβδομαδιαίες ομαδοποιήσεις - title: Δημοσίευση συγκεντρωτικών στατιστικών για τη δραστηριότητα χρηστών - bootstrap_timeline_accounts: - desc_html: Διαχωρίστε πολλαπλά ονόματα χρηστών με κόμματα. Λειτουργεί μόνο με τοπικούς και ανοιχτούς λογαριασμούς. Αν είναι κενό, περιλαμβάνει όλους τους τοπικούς διαχειριστές. - title: Προεπιλεγμένοι λογαριασμοί για παρακολούθηση από τους νέους χρήστες - contact_information: - email: Επαγγελματικό email - username: Όνομα χρήστη επικοινωνίας - custom_css: - desc_html: Τροποποίηση της εμφάνισης μέσω CSS που φορτώνεται σε κάθε σελίδα - title: Προσαρμοσμένο CSS - default_noindex: - desc_html: Επηρεάζει όσους χρήστες δεν έχουν αλλάξει αυτή τη ρύθμιση - title: Εξαίρεση χρηστών από τις μηχανές αναζήτησης + about: + manage_rules: Διαχείριση κανόνων διακομιστή + title: Σχετικά με + appearance: + title: Εμφάνιση + content_retention: + title: Διατήρηση περιεχομένου + discovery: + profile_directory: Κατάλογος προφίλ + public_timelines: Δημόσιες ροές + trends: Τάσεις domain_blocks: all: Για όλους disabled: Για κανέναν - title: Εμφάνιση αποκλεισμένων τομέων users: Προς συνδεδεμένους τοπικούς χρήστες - domain_blocks_rationale: - title: Εμφάνιση σκεπτικού - hero: - desc_html: Εμφανίζεται στην μπροστινή σελίδα. Συνίσταται τουλάχιστον 600x100px. Όταν λείπει, χρησιμοποιείται η μικρογραφία του κόμβου - title: Εικόνα ήρωα - mascot: - desc_html: Εμφάνιση σε πολλαπλές σελίδες. Προτεινόμενο 293x205px τουλάχιστον. Αν δεν έχει οριστεί, χρησιμοποιεί την προεπιλεγμένη μασκότ - title: Εικόνα μασκότ - peers_api_enabled: - desc_html: Ονόματα τομέων που αυτός ο κόμβος έχει ήδη συναντήσει στο fediverse - title: Δημοσίευση λίστας κόμβων που έχουν ανακαλυφθεί - preview_sensitive_media: - desc_html: Οι προεπισκοπήσεις συνδέσμων σε τρίτους ιστότοπους θα είναι ορατές ακόμα κι όταν το πολυμέσο έχει σημειωθεί ως ευαίσθητο - title: Εμφάνιση ευαίσθητων πολυμέσων στις προεπισκοπήσεις OpenGraph - profile_directory: - desc_html: Να επιτρέπεται η ανακάλυψη χρηστών - title: Ενεργοποίηση του καταλόγου χρηστών registrations: - closed_message: - desc_html: Εμφανίζεται στην εισαγωγική σελίδα όταν οι εγγραφές είναι κλειστές. Μπορείς να χρησιμοποιήσεις HTML tags - title: Μήνυμα κλεισμένων εγγραφών - deletion: - desc_html: Επέτρεψε σε οποιονδήποτε να διαγράψει το λογαριασμό του/της - title: Άνοιξε τη διαγραφή λογαριασμού - min_invite_role: - disabled: Κανείς - title: Επέτρεψε προσκλήσεις από + title: Εγγραφές registrations_mode: modes: approved: Απαιτείται έγκριση για εγγραφή none: Δεν μπορεί να εγγραφεί κανείς open: Μπορεί να εγγραφεί ο οποιοσδήποτε - title: Μέθοδος εγγραφής - show_known_fediverse_at_about_page: - desc_html: Όταν αντιστραφεί, θα δείχνει τα τουτ από όλο το γνωστό fediverse στην προεπισκόπηση. Διαφορετικά θα δείχνει μόνο τοπικά τουτ. - title: Εμφάνιση του γνωστού fediverse στην προεπισκόπηση ροής - show_staff_badge: - desc_html: Δείξε ένα σήμα προσωπικού στη σελίδα ενός χρήστη - title: Δείξε διακριτικό προσωπικού - site_description: - desc_html: Εισαγωγική παράγραφος στην αρχική σελίδα. Περιέγραψε τι κάνει αυτό τον διακομιστή Mastodon διαφορετικό και ό,τι άλλο ενδιαφέρον. Μπορείς να χρησιμοποιήσεις HTML tags, συγκεκριμένα < a> και < em>. - title: Περιγραφή κόμβου - site_description_extended: - desc_html: Ένα καλό μέρος για τον κώδικα δεοντολογίας, τους κανόνες, τις οδηγίες και ό,τι άλλο διαφοροποιεί τον κόμβο σου. Μπορείς να χρησιμοποιήσεις και κώδικα HTML - title: Προσαρμοσμένες εκτεταμένες πληροφορίες - site_short_description: - desc_html: Εμφανίζεται στην πλαϊνή μπάρα και στα meta tags. Περιέγραψε τι είναι το Mastodon και τι κάνει αυτό τον διακομιστή ιδιαίτερο σε μια παράγραφο. Αν μείνει κενό, θα χρησιμοποιήσει την προκαθορισμένη περιγραφή του κόμβου. - title: Σύντομη περιγραφή του κόμβου - site_terms: - desc_html: Μπορείς να γράψεις τη δική σου πολιτική απορρήτου, όρους χρήσης ή άλλους νομικούς όρους. Μπορείς να χρησιμοποιήσεις HTML tags - title: Προσαρμοσμένοι όροι χρήσης της υπηρεσίας - site_title: Όνομα κόμβου - thumbnail: - desc_html: Χρησιμοποιείται για προεπισκοπήσεις μέσω του OpenGraph και του API. Συστήνεται 1200x630px - title: Μικρογραφία κόμβου - timeline_preview: - desc_html: Εμφάνισε τη δημόσια ροή στην αρχική σελίδα - title: Προεπισκόπιση ροής - title: Ρυθμίσεις ιστότοπου - trendable_by_default: - desc_html: Επηρεάζει όσες ετικέτες δεν είχαν απαγορευτεί νωρίτερα - title: Επέτρεψε στις ετικέτες να εμφανίζονται στις τάσεις χωρίς να χρειάζεται πρώτα έγκριση - trends: - desc_html: Δημόσια εμφάνιση ετικετών που έχουν ήδη εγκριθεί και είναι δημοφιλείς - title: Δημοφιλείς ετικέτες + title: Ρυθμίσεις διακομιστή site_uploads: delete: Διαγραφή μεταφορτωμένου αρχείου destroyed_msg: Η μεταφόρτωση ιστότοπου διαγράφηκε επιτυχώς! statuses: + account: Συντάκτης + application: Εφαρμογή back_to_account: Επιστροφή στη σελίδα λογαριασμού batch: remove_from_report: Αφαίρεση από την αναφορά report: Αναφορά deleted: Διαγραμμένα + favourites: Αγαπημένα + history: Ιστορικό εκδόσεων + in_reply_to: Απάντηση σε + language: Γλώσσα media: title: Πολυμέσα + metadata: Μεταδεδομένα no_status_selected: Καμία δημοσίευση δεν άλλαξε αφού καμία δεν ήταν επιλεγμένη + open: Άνοιγμα δημοσίευσης + reblogs: Αναδημοσιεύσεις + status_changed: Η ανάρτηση άλλαξε title: Καταστάσεις λογαριασμού + trending: Δημοφιλή + visibility: Ορατότητα with_media: Με πολυμέσα system_checks: database_schema_check: @@ -617,6 +516,12 @@ el: edit_preset: Ενημέρωση προκαθορισμένης προειδοποίησης empty: Δεν έχετε ακόμη ορίσει κάποια προεπιλογή προειδοποίησης. title: Διαχείριση προκαθορισμένων προειδοποιήσεων + webhooks: + delete: Διαγραφή + disable: Απενεργοποίηση + disabled: Απενεργοποιημένα + enable: Ενεργοποίηση + status: Κατάσταση admin_mailer: new_appeal: actions: @@ -657,16 +562,12 @@ el: applications: created: Η εφαρμογή δημιουργήθηκε επιτυχώς destroyed: Η εφαρμογή διαγράφηκε επιτυχώς - invalid_url: Το URL δεν είναι έγκυρο regenerate_token: Αναδημιουργία του διακριτικού πρόσβασης (access token) token_regenerated: Το διακριτικό πρόσβασης (access token) αναδημιουργήθηκε επιτυχώς warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν! your_token: Το διακριτικό πρόσβασής σου (access token) auth: - apply_for_account: Αίτηση πρόσκλησης change_password: Συνθηματικό - checkbox_agreement_html: Συμφωνώ με τους κανονισμούς του κόμβου και τους όρους χρήσης - checkbox_agreement_without_rules_html: Συμφωνώ με τους όρους χρήσης delete_account: Διαγραφή λογαριασμού delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση. description: @@ -692,19 +593,22 @@ el: registration_closed: Το %{instance} δεν δέχεται νέα μέλη resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης reset_password: Επαναφορά συνθηματικού + rules: + title: Ορισμένοι βασικοί κανόνες. security: Ασφάλεια set_new_password: Ορισμός νέου συνθηματικού setup: email_below_hint_html: Αν η παρακάτω διεύθυνση email είναι λανθασμένη, μπορείτε να την ενημερώσετε και να λάβετε νέο email επιβεβαίωσης. email_settings_hint_html: Το email επιβεβαίωσης στάλθηκε στο %{email}. Αν η διεύθυνση αυτή δεν είναι σωστή, μπορείτε να την ενημερώσετε στις ρυθμίσεις λογαριασμού. title: Ρυθμίσεις + sign_up: + title: Ας ξεκινήσουμε τις ρυθμίσεις στο %{domain}. status: account_status: Κατάσταση λογαριασμού confirming: Αναμονή για ολοκλήρωση επιβεβαίωσης του email. pending: Η εφαρμογή σας εκκρεμεί έγκρισης, πιθανόν θα διαρκέσει κάποιο χρόνο. Θα λάβετε email αν εγκριθεί. redirecting_to: Ο λογαριασμός σου είναι ανενεργός γιατί επί του παρόντος ανακατευθύνει στον %{acct}. too_fast: Η φόρμα υποβλήθηκε πολύ γρήγορα, προσπαθήστε ξανά. - trouble_logging_in: Πρόβλημα σύνδεσης; use_security_key: Χρήση κλειδιού ασφαλείας authorize_follow: already_following: Ήδη ακολουθείς αυτό το λογαριασμό @@ -758,10 +662,6 @@ el: more_details_html: Για περισσότερες πληροφορίες, δες την πολιτική απορρήτου. username_available: Το όνομα χρήστη σου θα γίνει ξανά διαθέσιμο username_unavailable: Το όνομα χρήστη σου θα παραμείνει μη διαθέσιμο - directories: - directory: Κατάλογος λογαριασμών - explanation: Βρες χρήστες βάσει των ενδιαφερόντων τους - explore_mastodon: Εξερεύνησε το %{title} disputes: strikes: approve_appeal: Έγκριση έφεσης @@ -814,20 +714,22 @@ el: public: Δημόσιες ροές thread: Συζητήσεις edit: + add_keyword: Προσθήκη λέξης-κλειδιού + keywords: Λέξεις-κλειδιά title: Ενημέρωση φίλτρου errors: invalid_context: Έδωσες λάθος ή ανύπαρκτο πλαίσιο - invalid_irreversible: Τα μη αντιστρέψιμα φίλτρα δουλεύουν μόνο στα πλαίσια της αρχικής ροής και των ειδοποιήσεων index: + contexts: Φίλτρα σε %{contexts} delete: Διαγραφή empty: Δεν έχεις φίλτρα. + expires_in: Λήγει σε %{distance} + expires_on: Λήγει στις %{date} title: Φίλτρα new: + save: Αποθήκευση νέου φίλτρου title: Πρόσθεσε νέο φίλτρο footer: - developers: Ανάπτυξη - more: Περισσότερα… - resources: Πόροι trending_now: Τάσεις generic: all: Όλα @@ -859,7 +761,6 @@ el: following: Λίστα ακολούθων muting: Λίστα αποσιωπήσεων upload: Ανέβασμα - in_memoriam_html: Εις μνήμην. invites: delete: Απενεργοποίησε expired: Ληγμένη @@ -927,21 +828,14 @@ el: carry_blocks_over_text: Ο/Η χρήστης μετακόμισε από το %{acct}, που είχες αποκλείσει. carry_mutes_over_text: Ο/Η χρήστης μετακόμισε από το %{acct}, που είχες αποσιωπήσει. copy_account_note_text: 'Ο/Η χρήστης μετακόμισε από το %{acct}, ορίστε οι προηγούμενες σημειώσεις σου:' + navigation: + toggle_menu: Εμφάνιση/Απόκρυψη μενού notification_mailer: admin: + report: + subject: "%{name} υπέβαλε μια αναφορά" sign_up: subject: "%{name} έχει εγγραφεί" - digest: - action: Δες όλες τις ειδοποιήσεις - body: Μια σύνοψη των μηνυμάτων που έχασες από την τελευταία επίσκεψή σου στις %{since} - mention: 'Ο/Η %{name} σε ανέφερε στις:' - new_followers_summary: - one: Επίσης, απέκτησες έναν νέο ακόλουθο ενώ ήσουν μακριά! - other: Επίσης, απέκτησες %{count} νέους ακόλουθους ενώ ήσουν μακριά! Εκπληκτικό! - subject: - one: "1 νέα ειδοποίηση από την τελευταία επίσκεψή σου 🐘" - other: "%{count} νέες ειδοποιήσεις από την τελευταία επίσκεψή σου 🐘" - title: Ενώ έλειπες... favourite: body: 'Η κατάστασή σου αγαπήθηκε από τον/την %{name}:' subject: Ο/Η %{name} αγάπησε την κατάστασή σου @@ -1007,6 +901,8 @@ el: other: Άλλες posting_defaults: Προεπιλογές δημοσίευσης public_timelines: Δημόσιες ροές + privacy_policy: + title: Πολιτική Απορρήτου reactions: errors: limit_reached: Το όριο διαφορετικών αντιδράσεων ξεπεράστηκε @@ -1028,22 +924,7 @@ el: remove_selected_follows: Διακοπή παρακολούθησης επιλεγμένων χρηστών status: Κατάσταση λογαριασμού remote_follow: - acct: Γράψε το ΌνομαΧρήστη@τομέα από όπου θέλεις να εκτελέσεις την ενέργεια αυτή missing_resource: Δεν βρέθηκε το απαιτούμενο URL ανακατεύθυνσης για το λογαριασμό σου - no_account_html: Δεν έχεις λογαριασμό; Μπορείς να γραφτείς εδώ - proceed: Συνέχισε για να ακολουθήσεις - prompt: 'Ετοιμάζεσαι να ακολουθήσεις:' - reason_html: "Γιατί χρειάζεται αυτό το βήμα; Το %{instance} μπορεί να μην είναι ο κόμβος που έχεις γραφτεί, έτσι πρέπει να σε ανακατευθύνουμε στο δικό σου." - remote_interaction: - favourite: - proceed: Συνέχισε για σημείωση ως αγαπημένου - prompt: 'Θέλεις να σημειώσεις ως αγαπημένο αυτό το τουτ:' - reblog: - proceed: Συνέχισε για προώθηση - prompt: 'Θέλεις να προωθήσεις αυτό το τουτ:' - reply: - proceed: Συνέχισε για να απαντήσεις - prompt: 'Θέλεις να απαντήσεις σε αυτό το τουτ:' reports: errors: invalid_rules: δεν παραπέμπει σε έγκυρους κανόνες @@ -1057,11 +938,15 @@ el: activity: Τελευταία δραστηριότητα browser: Φυλλομετρητής (Browser) browsers: + blackberry: BlackBerry generic: Άγνωστος φυλλομετρητής + uc_browser: UC Browser current_session: Τρέχουσα σύνδεση description: "%{browser} σε %{platform}" explanation: Αυτοί είναι οι φυλλομετρητές (browsers) που είναι συνδεδεμένοι στον λογαριασμό σου στο Mastodon αυτή τη στιγμή. platforms: + blackberry: BlackBerry + chrome_os: ChromeOS mac: Mac other: άγνωστη πλατφόρμα revoke: Ανακάλεσε @@ -1151,89 +1036,6 @@ el: sensitive_content: Ευαίσθητο περιεχόμενο tags: does_not_match_previous_name: δεν ταιριάζει με το προηγούμενο όνομα - terms: - body_html: | -

      Πολιτική Απορρήτου

      -

      Ποιες πληροφορίες συλλέγουμε;

      - -
        -
      • Βασικά στοιχεία λογαριασμού: Όταν εγγραφείς σε αυτό τον διακομιστή, μπορεί να σου ζητηθεί όνομα χρήστη, διεύθυνση email και ένας κωδικός. Μπορεί επίσης να εισάγεις επιπλέον πληροφορίες λογαριασμού όπως ένα όνομα λογαριασμού και σύντομο βιογραφικό και να ανεβάσεις εικόνα προφίλ και επικεφαλίδας. Το όνομα χρήστη, το όνομα λογαριασμού, το βιογραφικό και οι εικόνες προφίλ και επικεφαλίδας είναι πάντα δημόσια εμφανείς.
      • -
      • Δημοσιεύσεις, ακόλουθοι και λοιπά δημόσια στοιχεία: Η λίστα των ανθρώπων που ακολουθείς εμφανίζεται δημόσια, το ίδιο και οι ακόλουθοί σου. Όταν υποβάλλεις ένα μήνυμα, η ημερομηνία και ώρα αποθηκεύονται καθώς και η εφαρμογή που χρησιμοποίησες για την υποβολή του. Τα μηνύματα μπορεί να περιέχουν συνημμένα πολυμέσα όπως εικόνες και βίντεο. Τα δημόσια και τα μη καταχωρημένα μηνύματα είναι δημόσια διαθέσιμα. Όταν προβάλεις μια δημοσίευση στο προφίλ σου, είναι και αυτό δημόσια διαθέσιμο. Οι δημοσιεύσεις σου παραδίδονται στους ακολούθους σου, σε κάποιες περιπτώσεις αυτό σημαίνει ότι παραδίδονται σε διαφορετικούς διακομιστές (servers) και αντίγραφά τους αποθηκεύονται σε αυτούς. Παρομοίως, όταν διαγράψεις δημοσιεύσεις, αυτό μεταφέρεται στους ακόλουθους σου. Η αναδημοσίευση και η σημείωση ως αγαπημένης μιας δημοσίευσης είναι πάντα δημόσια.
      • -
      • Προσωπικές δημοσιεύσεις και προς ακόλουθους: Όλες οι δημοσιεύσεις αποθηκεύονται και επεξεργάζονται στον διακομιστή. Οι δημοσιεύσεις προς τους ακόλουθους παραδίδονται στους ακόλουθους σου και σε όσους χρήστες αναφέρονται σε αυτές. Σε κάποιες περιπτώσεις αυτό σημαίνει πως παραδίδονται σε διαφορετικούς διακομιστές και αντίγραφά τους αποθηκεύονται σε αυτούς. Καταβάλουμε ειλικρινή προσπάθεια περιορισμού πρόσβασης σε αυτές τις δημοσιεύσεις μόνο σε εγκεκριμένα άτομα, όμως διαφορετικοί διακομιστές μπορεί να μην το πετυχαίνουν αυτό. Για αυτό, είναι σημαντικό να ελέγχεις τους διακομιστές στους οποίους ανήκουν οι ακόλουθοί σου. Μπορείς να ενεργοποιήσεις την επιλογή χειροκίνητης αποδοχής ή απόρριψης των νέων ακόλουθών σου στις ρυθμίσεις. Παρακαλούμε έχε υπόψιν σου πως οι διαχειριστές του διακομιστή και των αποδεκτών διακομιστών πιθανόν να κοιτάνε αυτά τα μηνύματα, και πως οι τελικοί αποδέκτες μπορούν να αποθηκεύσουν την οθόνη, το μήνυμα ή να το αναμεταδώσουν με άλλους τρόπους. Μην μοιράζεσαι επικύνδυνες πληροφορίες μέσω του Mastodon.
      • -
      • Διευθύνσεις IP και άλλα metadata: Όταν συνδέεσαι, καταγράφουμε την διεύθυνση IP σου, καθώς και το όνομα της εφαρμογής του φυλλομετρητή σου (browser). Όλες οι τρέχουσες συνδέσεις στον λογαριασμό σου είναι διαθέσιμες προς ανασκόπηση στις ρυθμίσεις. Η πιο πρόσφατη διεύθυνση IP αποθηκεύεται για μέχρι 12 μήνες. Επίσης μπορεί να διατηρήσουμε ιστορικό του διακομιστή (log files) που να περιέχει την διεύθυνση ΙΡ κάθε κλήσης προς τον διακομιστή μας.
      • -
      - -
      - -

      Πως χρησιμοποιούμε τις πληροφορίες σου;

      - -

      Οι πληροφορίες σου που συλλέγουμε μπορεί να χρησιμοποιηθούν με τους ακόλουθους τρόπους:

      - -
        -
      • Για να παρέχουμε την βασική λειτουργικότητα του Mastodon. Μπορείς να αλληλεπιδράσεις με τις δημοσιεύσεις άλλων και να κάνεις τις δικές σου μόνο αφού συνδεθείς. Για παράδειγμα, μπορείς να ακολουθήσεις άλλους χρήστες για να βλέπεις τις συνολικές δημοσιεύσεις τους στη δική σου, προσωπική αρχική ροή.
      • -
      • Για να διευκολύνουμε τη διαχείριση της κοινότητας, για παράδειγμα συγκρίνοντας τη δική σου διεύθυνση IP με άλλες γνωστές διευθύνσεις για να καθορίσουμε περιπτώσεις αποφυγής αποκλεισμού ή άλλων παραβάσεων.
      • -
      • Η διεύθυνση email που δίνεις μπορεί να χρησιμοποιηθεί για να σου στείλουμε πληροφορίες, ειδοποιήσεις για αλληλεπιδράσεις άλλων χρηστών με τις δημοσιεύσεις σου και να ανταποκριθούμε σε ερωτήματά σου.
      • -
      - -
      - -

      Πως προστατεύουμε τις πληροφορίες σου;

      - -

      Εφαρμόζουμε μια σειρά μεθόδων ασφαλείας για να διασφαλίσουμε τις προσωπικές πληροφορίες που εισάγεις, καταθέτεις ή κοιτάζεις. Μεταξύ άλλων, η σύνδεση του φυλλομετρητή σου καθώς και οι ανταλασσόμενες πληροφορίες μεταξύ των εφαρμογών σου και του API είναι κρυπτογραφημένες μέσω SSL και το συνθηματικό σου κωδικοποιείται με ισχυρό, μη αντιστρέψιμο αλγόριθμο. Μπορείς να ενεργοποιήσεις την ταυτοπόίηση 2 παραγόντων (2FA) για επιπλέον ασφαλή πρόσβαση στο λογαριασμό σου.

      - -
      - -

      Ποια είναι η πολιτική διατήρησης πληροφοριών μας;

      - -

      Καταβάλουμε κάθε δυνατή προσπάθεια να:

      - -
        -
      • Διατηρήσουμε αρχεία ενεργειών των διακομιστών (servers) για όλα τα αιτήματα σε αυτόν τον διακομιστή, και αυτά τα αρχεία διατηρούνται για μέγιστο χρόνο 90 ημερών.
      • -
      • Διατηρήσουμε τις διευθύνσεις IP που σχετίζονται με εγγεγραμμένους χρήστες για μέγιστο χρόνο 12 μηνών.
      • -
      - -

      Μπορείς να αιτηθείς και να αποθηκεύσεις τοπικά ένα αρχείο του περιεχομένου σου που περιλαμβάνει τις δημοσιεύσεις, τα συνημμένα πολυμέσα, την εικόνα προφίλ και την εικόνα επικεφαλίδας.

      - -

      Μπορείς ανά πάσα στιγμή να διαγράψεις οριστικά και αμετάκλητα το λογαριασμό σου.

      - -
      - -

      Χρησιμοποιούμε cookies;

      - -

      Ναι. Τα cookies είναι μικρά αρχεία που ένας ιστοτοπος (site) ή πάροχος υπηρεσίας μεταφέρει στον σκληρό δίσκο του υπολογιστή μέσω του φυλλομετρητή (αν το επιτρέψεις). Τα cookies αυτά επιτρέπουν στον ιστότοπο να αναγνωρίζει τον φυλλομετρητή σου και, αν έχεις λογαριασμό, να τον συνδέσει με αυτόν.

      - -

      Χρησιμοποιούμε τα cookies για να αναγνωρίσουμε και αποθηκεύσουμε τις προτιμήσεις σου για τις μελλοντικές σου επισκέψεις.

      - -
      - -

      Αποκαλύπτουμε πληροφορίες σε τρίτους;

      - -

      Δεν πουλάμε, ανταλλάσσουμε ή με άλλο τρόπο μεταφέρουμε σε τρίτα μέρη πληροφορίες που σε προσωποποιούν. Αυτό δεν περιλαμβάνει αξιόπιστα τρίτα μέρη που μας βοηθούν να λειτουργούμε τον ιστότοπό μας, να διεξάγουμε τις εργασίες μας ή να σε εξυπηρετούμε, στο βαθμό που αυτά τα τρίτα μέρη συμφωνούν να διατηρούν αυτές τις πληροφορίες εμπιστευτικές. Επίσης μπορεί να μοιραστούμε τις πληροφορίες σου όταν θεωρήσουμε πως αυτό είναι σύμφωνο με τον νόμο, με την πολιτική του ιστότοπου μας ή διαφυλάσσει τα δικά μας δικαιώματα ή τρίτων, την ιδιοκτησία ή την ασφάλεια.

      - -

      Το δημόσιο περιεχόμενο σου μπορεί να αποθηκευτεί από άλλους διακομιστές (servers) στο δίκτυο. Οι δημόσιες και οι προς ακόλουθους δημοσιεύσεις σου παραδίδονται στους διακομιστές των ακολούθων σου και τα προσωπικά μηνύματα στους διακομιστές των παραληπτών, όταν αυτοί βρίσκονται σε διαφορετικό διακομιστή.

      - -

      Όταν επιτρέψεις σε μια εφαρμογή να χρησιμοποιήσει τον λογαριασμό σου, ανάλογα με το εύρος των δικαιωμάτων που εγκρίνεις, μπορεί να έχει πρόσβαση στις πληροφορίες του δημόσιου προφιλ σου, στη λίστα των ακολούθων σου, στους ακόλουθούς σου, στις λίστες σου, σε όλες τις δημοσιεύσεις σου και στα αγαπημένα σου. Οι εφαρμογές ποτέ δεν έχουν πρόσβαση στις διευθύνσεις email και στα συνθηματικά σου.

      - -
      - -

      Χρήση από παιδιά

      - -

      Αν αυτός ο διακομιστής βρίσκεται στην ΕΕ (Ευρωπαϊκή Ένωση) ή στον ΕΟΧ (Ευρωπαϊκός Οικονομικός Χώρος): Ο ιστότοπός μας, τα προϊόντα και οι υπηρεσίες μας απευθύνονται σε άτομα ηλικίας άνω των 16. Αν είσαι κάτω των 16, σύμφωνα με τις απαιτήσεις του Γενικού Κανονισμού Προστασίας Δεδομένων "GDPR" (General Data Protection Regulation) μην χρησιμοποιήσεις αυτόν τον ιστότοπο.

      - -

      Αν αυτός ο διακομιστής βρίσκεται στις ΗΠΑ: Ο ιστότοπός μας, τα προϊόντα και οι υπηρεσίες μας απευθύνονται σε άτομα ηλικίας τουλάχιστον 13 ετών. Αν είσαι κάτω των 13, σύμφωνα με τις απαιτήσεις του COPPA (Children's Online Privacy Protection Act) μην χρησιμοποιήσεις αυτόν τον ιστότοπο.

      - -

      Οι νομικές απαιτήσεις μπορεί να είναι διαφορετικές αν ο διακομιστής αυτός βρίσκεται σε άλλη δικαιοδοσία.

      - -
      - -

      Αλλαγές στην πολιτική απορρήτου μας

      - -

      Αν αποφασίσουμε να κάνουμε αλλαγές στην πολιτική απορρήτου μας, θα τις δηλώσουμε σε αυτήν εδώ τη σελίδα.

      - -

      Η άδεια χρήσης αυτού του κειμένου είναι κατάCC-BY-SA. Ενημερώθηκε τελευταία φορά στις 7 Μαρτίου, 2018.

      - -

      Οι παραπάνω όροι έχουν προσαρμοστεί από τους αντίστοιχους όρους του Discourse.

      - title: Όροι Χρήσης και Πολιτική Απορρήτου του κόμβου %{instance} themes: contrast: Mastodon (Υψηλή αντίθεση) default: Mastodon (Σκοτεινό) @@ -1274,20 +1076,11 @@ el: suspend: Λογαριασμός σε αναστολή welcome: edit_profile_action: Στήσιμο προφίλ - edit_profile_step: Μπορείς να προσαρμόσεις το προφίλ σου ανεβάζοντας μια εικόνα εμφάνισης & επικεφαλίδας, αλλάζοντας το εμφανιζόμενο όνομά σου και άλλα. Αν θες να ελέγχεις τους νέου σου ακόλουθους πριν αυτοί σε ακολουθήσουν, μπορείς να κλειδώσεις το λογαριασμό σου. explanation: Μερικές συμβουλές για να ξεκινήσεις final_action: Ξεκίνα τις δημοσιεύσεις - final_step: 'Ξεκίνα τις δημοσιεύσεις! Ακόμα και χωρίς ακόλουθους τα δημόσια μηνύματά σου μπορεί να τα δουν άλλοι, για παράδειγμα στην τοπική ροή και στις ετικέτες. Ίσως να θέλεις να κάνεις μια εισαγωγή του εαυτού σου με την ετικέτα #introductions.' full_handle: Το πλήρες όνομά σου full_handle_hint: Αυτό θα εδώ θα πεις στους φίλους σου για να σου μιλήσουν ή να σε ακολουθήσουν από άλλο κόμβο. - review_preferences_action: Αλλαγή προτιμήσεων - review_preferences_step: Σιγουρέψου πως έχεις ορίσει τις προτιμήσεις σου, όπως το ποια email θέλεις να λαμβάνεις, ή ποιο επίπεδο ιδιωτικότητας θέλεις να έχουν οι δημοσιεύσεις σου. Αν δεν σε πιάνει ναυτία, μπορείς να ενεργοποιήσεις την αυτόματη αναπαραγωγή των GIF. subject: Καλώς ήρθες στο Mastodon - tip_federated_timeline: Η ομοσπονδιακή ροή είναι μια όψη πραγματικού χρόνου στο δίκτυο του Mastodon. Παρόλα αυτά, περιλαμβάνει μόνο όσους ακολουθούν οι γείτονές σου, άρα δεν είναι πλήρης. - tip_following: Ακολουθείς το διαχειριστή του διακομιστή σου αυτόματα. Για να βρεις περισσότερους ενδιαφέροντες ανθρώπους, έλεγξε την τοπική και την ομοσπονδιακή ροή. - tip_local_timeline: Η τοπική ροή είναι η όψη πραγματικού χρόνου των ανθρώπων στον κόμβο %{instance}. Αυτοί είναι οι άμεσοι γείτονές σου! - tip_mobile_webapp: Αν ο φυλλομετρητής (browser) στο κινητό σού σου επιτρέπει να προσθέσεις το Mastodon στην αρχική οθόνη της συσκευής, θα λαμβάνεις και ειδοποιήσεις μέσω push. Σε πολλά πράγματα λειτουργεί σαν κανονική εφαρμογή! - tips: Συμβουλές title: Καλώς όρισες, %{name}! users: follow_limit_reached: Δεν μπορείς να ακολουθήσεις περισσότερα από %{limit} άτομα diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index fc7fc9edf68984..26540146f5e7ad 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -1,5 +1,34 @@ --- en-GB: + about: + about_mastodon_html: 'The social network of the future: No ads, no corporate surveillance, ethical design, and decentralisation! Own your data with Mastodon!' + contact_missing: Not set + contact_unavailable: N/A + hosted_on: Mastodon hosted on %{domain} + title: About + accounts: + follow: Follow + followers: + one: Follower + other: Followers + following: Following + instance_actor_flash: This account is a virtual actor used to represent the server itself and not any individual user. It is used for federation purposes and should not be suspended. + last_active: last active + link_verified_on: Ownership of this link was checked on %{date} + nothing_here: There is nothing here! + pin_errors: + following: You must be already following the person you want to endorse + posts: + one: Post + other: Posts + posts_tab_heading: Posts + admin: + account_actions: + action: Perform action + title: Perform moderation action on %{acct} + account_moderation_notes: + create: Leave note + created_msg: Moderation note successfully created! errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/en.yml b/config/locales/en.yml index fc0ec6e3ea215f..679e356b41f573 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,94 +1,27 @@ --- en: about: - about_hashtag_html: These are public posts tagged with #%{hashtag}. You can interact with them if you have an account anywhere in the fediverse. about_mastodon_html: 'The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!' - about_this: About - active_count_after: active - active_footnote: Monthly Active Users (MAU) - administered_by: 'Administered by:' - api: API - apps: Mobile apps - apps_platforms: Use Mastodon from iOS, Android and other platforms - browse_directory: Browse a profile directory and filter by interests - browse_local_posts: Browse a live stream of public posts from this server - browse_public_posts: Browse a live stream of public posts on Mastodon - contact: Contact contact_missing: Not set contact_unavailable: N/A - continue_to_web: Continue to web app - discover_users: Discover users - documentation: Documentation - federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond. - get_apps: Try a mobile app hosted_on: Mastodon hosted on %{domain} - instance_actor_flash: | - This account is a virtual actor used to represent the server itself and not any individual user. - It is used for federation purposes and should not be blocked unless you want to block the whole instance, in which case you should use a domain block. - learn_more: Learn more - logged_in_as_html: You are currently logged in as %{username}. - logout_before_registering: You are already logged in. - privacy_policy: Privacy policy - rules: Server rules - rules_html: 'Below is a summary of rules you need to follow if you want to have an account on this server of Mastodon:' - see_whats_happening: See what's happening - server_stats: 'Server stats:' - source_code: Source code - status_count_after: - one: post - other: posts - status_count_before: Who published - tagline: Follow friends and discover new ones - terms: Terms of service - unavailable_content: Moderated servers - unavailable_content_description: - domain: Server - reason: Reason - rejecting_media: 'Media files from these servers will not be processed or stored, and no thumbnails will be displayed, requiring manual click-through to the original file:' - rejecting_media_title: Filtered media - silenced: 'Posts from these servers will be hidden in public timelines and conversations, and no notifications will be generated from their users interactions, unless you are following them:' - silenced_title: Limited servers - suspended: 'No data from these servers will be processed, stored or exchanged, making any interaction or communication with users from these servers impossible:' - suspended_title: Suspended servers - unavailable_content_html: Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server. - user_count_after: - one: user - other: users - user_count_before: Home to - what_is_mastodon: What is Mastodon? + title: About accounts: - choices_html: "%{name}'s choices:" - endorsements_hint: You can endorse people you follow from the web interface, and they will show up here. - featured_tags_hint: You can feature specific hashtags that will be displayed here. follow: Follow followers: one: Follower other: Followers following: Following instance_actor_flash: This account is a virtual actor used to represent the server itself and not any individual user. It is used for federation purposes and should not be suspended. - joined: Joined %{date} last_active: last active link_verified_on: Ownership of this link was checked on %{date} - media: Media - moved_html: "%{name} has moved to %{new_profile_link}:" - network_hidden: This information is not available nothing_here: There is nothing here! - people_followed_by: People whom %{name} follows - people_who_follow: People who follow %{name} pin_errors: following: You must be already following the person you want to endorse posts: one: Post other: Posts posts_tab_heading: Posts - posts_with_replies: Posts and replies - roles: - admin: Admin - bot: Bot - group: Group - moderator: Mod - unavailable: Profile unavailable - unfollow: Unfollow admin: account_actions: action: Perform action @@ -105,12 +38,17 @@ en: avatar: Avatar by_domain: Domain change_email: - changed_msg: Account email successfully changed! + changed_msg: Email successfully changed! current_email: Current email label: Change email new_email: New email submit: Change email title: Change email for %{username} + change_role: + changed_msg: Role successfully changed! + label: Change role + no_role: No role + title: Change role for %{username} confirm: Confirm confirmed: Confirmed confirming: Confirming @@ -154,6 +92,7 @@ en: active: Active all: All pending: Pending + silenced: Limited suspended: Suspended title: Moderation moderation_notes: Moderation notes @@ -161,6 +100,7 @@ en: most_recent_ip: Most recent IP no_account_selected: No accounts were changed as none were selected no_limits_imposed: No limits imposed + no_role_assigned: No role assigned not_subscribed: Not subscribed pending: Pending review perform_full_suspension: Suspend @@ -187,12 +127,7 @@ en: reset: Reset reset_password: Reset password resubscribe: Resubscribe - role: Permissions - roles: - admin: Administrator - moderator: Moderator - staff: Staff - user: User + role: Role search: Search search_same_email_domain: Other users with the same e-mail domain search_same_ip: Other users with the same IP @@ -235,17 +170,21 @@ en: approve_user: Approve User assigned_to_self_report: Assign Report change_email_user: Change E-mail for User + change_role_user: Change Role of User confirm_user: Confirm User create_account_warning: Create Warning create_announcement: Create Announcement + create_canonical_email_block: Create E-mail Block create_custom_emoji: Create Custom Emoji create_domain_allow: Create Domain Allow create_domain_block: Create Domain Block create_email_domain_block: Create E-mail Domain Block create_ip_block: Create IP rule create_unavailable_domain: Create Unavailable Domain + create_user_role: Create Role demote_user: Demote User destroy_announcement: Delete Announcement + destroy_canonical_email_block: Delete E-mail Block destroy_custom_emoji: Delete Custom Emoji destroy_domain_allow: Delete Domain Allow destroy_domain_block: Delete Domain Block @@ -254,6 +193,7 @@ en: destroy_ip_block: Delete IP rule destroy_status: Delete Post destroy_unavailable_domain: Delete Unavailable Domain + destroy_user_role: Destroy Role disable_2fa_user: Disable 2FA disable_custom_emoji: Disable Custom Emoji disable_sign_in_token_auth_user: Disable E-mail Token Authentication for User @@ -267,6 +207,7 @@ en: reject_user: Reject User remove_avatar_user: Remove Avatar reopen_report: Reopen Report + resend_user: Resend Confirmation Mail reset_password_user: Reset Password resolve_report: Resolve Report sensitive_account: Force-Sensitive Account @@ -280,24 +221,30 @@ en: update_announcement: Update Announcement update_custom_emoji: Update Custom Emoji update_domain_block: Update Domain Block + update_ip_block: Update IP rule update_status: Update Post + update_user_role: Update Role actions: approve_appeal_html: "%{name} approved moderation decision appeal from %{target}" approve_user_html: "%{name} approved sign-up from %{target}" assigned_to_self_report_html: "%{name} assigned report %{target} to themselves" change_email_user_html: "%{name} changed the e-mail address of user %{target}" + change_role_user_html: "%{name} changed role of %{target}" confirm_user_html: "%{name} confirmed e-mail address of user %{target}" create_account_warning_html: "%{name} sent a warning to %{target}" create_announcement_html: "%{name} created new announcement %{target}" + create_canonical_email_block_html: "%{name} blocked e-mail with the hash %{target}" create_custom_emoji_html: "%{name} uploaded new emoji %{target}" create_domain_allow_html: "%{name} allowed federation with domain %{target}" create_domain_block_html: "%{name} blocked domain %{target}" create_email_domain_block_html: "%{name} blocked e-mail domain %{target}" create_ip_block_html: "%{name} created rule for IP %{target}" create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}" + create_user_role_html: "%{name} created %{target} role" demote_user_html: "%{name} demoted user %{target}" destroy_announcement_html: "%{name} deleted announcement %{target}" - destroy_custom_emoji_html: "%{name} destroyed emoji %{target}" + destroy_canonical_email_block_html: "%{name} unblocked e-mail with the hash %{target}" + destroy_custom_emoji_html: "%{name} deleted emoji %{target}" destroy_domain_allow_html: "%{name} disallowed federation with domain %{target}" destroy_domain_block_html: "%{name} unblocked domain %{target}" destroy_email_domain_block_html: "%{name} unblocked e-mail domain %{target}" @@ -305,6 +252,7 @@ en: destroy_ip_block_html: "%{name} deleted rule for IP %{target}" destroy_status_html: "%{name} removed post by %{target}" destroy_unavailable_domain_html: "%{name} resumed delivery to domain %{target}" + destroy_user_role_html: "%{name} deleted %{target} role" disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}" disable_custom_emoji_html: "%{name} disabled emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} disabled e-mail token authentication for %{target}" @@ -318,6 +266,7 @@ en: reject_user_html: "%{name} rejected sign-up from %{target}" remove_avatar_user_html: "%{name} removed %{target}'s avatar" reopen_report_html: "%{name} reopened report %{target}" + resend_user_html: "%{name} resent confirmation e-mail for %{target}" reset_password_user_html: "%{name} reset password of user %{target}" resolve_report_html: "%{name} resolved report %{target}" sensitive_account_html: "%{name} marked %{target}'s media as sensitive" @@ -331,8 +280,10 @@ en: update_announcement_html: "%{name} updated announcement %{target}" update_custom_emoji_html: "%{name} updated emoji %{target}" update_domain_block_html: "%{name} updated domain block for %{target}" + update_ip_block_html: "%{name} changed rule for IP %{target}" update_status_html: "%{name} updated post by %{target}" - deleted_status: "(deleted post)" + update_user_role_html: "%{name} changed %{target} role" + deleted_account: deleted account empty: No logs found. filter_by_action: Filter by action filter_by_user: Filter by user @@ -376,6 +327,7 @@ en: listed: Listed new: title: Add new custom emoji + no_emoji_selected: No emojis were changed as none were selected not_permitted: You are not permitted to perform this action overwrite: Overwrite shortcode: Shortcode @@ -428,6 +380,7 @@ en: destroyed_msg: Domain block has been undone domain: Domain edit: Edit domain block + existing_domain_block: You have already imposed stricter limits on %{name}. existing_domain_block_html: You have already imposed stricter limits on %{name}, you need to unblock it first. new: create: Create block @@ -648,6 +601,67 @@ en: unresolved: Unresolved updated_at: Updated view_profile: View profile + roles: + add_new: Add role + assigned_users: + one: "%{count} user" + other: "%{count} users" + categories: + administration: Administration + devops: DevOps + invites: Invites + moderation: Moderation + special: Special + delete: Delete + description_html: With user roles, you can customize which functions and areas of Mastodon your users can access. + edit: Edit '%{name}' role + everyone: Default permissions + everyone_full_description_html: This is the base role affecting all users, even those without an assigned role. All other roles inherit permissions from it. + permissions_count: + one: "%{count} permission" + other: "%{count} permissions" + privileges: + administrator: Administrator + administrator_description: Users with this permission will bypass every permission + delete_user_data: Delete User Data + delete_user_data_description: Allows users to delete other users' data without delay + invite_users: Invite Users + invite_users_description: Allows users to invite new people to the server + manage_announcements: Manage Announcements + manage_announcements_description: Allows users to manage announcements on the server + manage_appeals: Manage Appeals + manage_appeals_description: Allows users to review appeals against moderation actions + manage_blocks: Manage Blocks + manage_blocks_description: Allows users to block e-mail providers and IP addresses + manage_custom_emojis: Manage Custom Emojis + manage_custom_emojis_description: Allows users to manage custom emojis on the server + manage_federation: Manage Federation + manage_federation_description: Allows users to block or allow federation with other domains, and control deliverability + manage_invites: Manage Invites + manage_invites_description: Allows users to browse and deactivate invite links + manage_reports: Manage Reports + manage_reports_description: Allows users to review reports and perform moderation actions against them + manage_roles: Manage Roles + manage_roles_description: Allows users to manage and assign roles below theirs + manage_rules: Manage Rules + manage_rules_description: Allows users to change server rules + manage_settings: Manage Settings + manage_settings_description: Allows users to change site settings + manage_taxonomies: Manage Taxonomies + manage_taxonomies_description: Allows users to review trending content and update hashtag settings + manage_user_access: Manage User Access + manage_user_access_description: Allows users to disable other users' two-factor authentication, change their e-mail address, and reset their password + manage_users: Manage Users + manage_users_description: Allows users to view other users' details and perform moderation actions against them + manage_webhooks: Manage Webhooks + manage_webhooks_description: Allows users to set up webhooks for administrative events + view_audit_log: View Audit Log + view_audit_log_description: Allows users to see a history of administrative actions on the server + view_dashboard: View Dashboard + view_dashboard_description: Allows users to access the dashboard and various metrics + view_devops: DevOps + view_devops_description: Allows users to access Sidekiq and pgHero dashboards + title: Roles rules: add_new: Add rule delete: Delete @@ -656,108 +670,67 @@ en: empty: No server rules have been defined yet. title: Server rules settings: - activity_api_enabled: - desc_html: Counts of locally published posts, active users, and new registrations in weekly buckets - title: Publish aggregate statistics about user activity in the API - bootstrap_timeline_accounts: - desc_html: Separate multiple usernames by comma. These accounts will be guaranteed to be shown in follow recommendations - title: Recommend these accounts to new users - contact_information: - email: Business e-mail - username: Contact username - custom_css: - desc_html: Modify the look with CSS loaded on every page - title: Custom CSS - default_noindex: - desc_html: Affects all users who have not changed this setting themselves - title: Opt users out of search engine indexing by default + about: + manage_rules: Manage server rules + preamble: Provide in-depth information about how the server is operated, moderated, funded. + rules_hint: There is a dedicated area for rules that your users are expected to adhere to. + title: About + appearance: + preamble: Customize Mastodon's web interface. + title: Appearance + branding: + preamble: Your server's branding differentiates it from other servers in the network. This information may be displayed across a variety of environments, such as Mastodon's web interface, native applications, in link previews on other websites and within messaging apps, and so on. For this reason, it is best to keep this information clear, short and concise. + title: Branding + content_retention: + preamble: Control how user-generated content is stored in Mastodon. + title: Content retention + discovery: + follow_recommendations: Follow recommendations + preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server. + profile_directory: Profile directory + public_timelines: Public timelines + title: Discovery + trends: Trends domain_blocks: all: To everyone disabled: To no one - title: Show domain blocks users: To logged-in local users - domain_blocks_rationale: - title: Show rationale - hero: - desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail - title: Hero image - mascot: - desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot - title: Mascot image - peers_api_enabled: - desc_html: Domain names this server has encountered in the fediverse - title: Publish list of discovered servers in the API - preview_sensitive_media: - desc_html: Link previews on other websites will display a thumbnail even if the media is marked as sensitive - title: Show sensitive media in OpenGraph previews - profile_directory: - desc_html: Allow users to be discoverable - title: Enable profile directory registrations: - closed_message: - desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags - title: Closed registration message - deletion: - desc_html: Allow anyone to delete their account - title: Open account deletion - min_invite_role: - disabled: No one - title: Allow invitations by - require_invite_text: - desc_html: When registrations require manual approval, make the “Why do you want to join?” text input mandatory rather than optional - title: Require new users to enter a reason to join + preamble: Control who can create an account on your server. + title: Registrations registrations_mode: modes: approved: Approval required for sign up none: Nobody can sign up open: Anyone can sign up - title: Registrations mode - show_known_fediverse_at_about_page: - desc_html: When disabled, restricts the public timeline linked from the landing page to showing only local content - title: Include federated content on unauthenticated public timeline page - show_staff_badge: - desc_html: Show a staff badge on a user page - title: Show staff badge - site_description: - desc_html: Introductory paragraph on the API. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a> and <em>. - title: Server description - site_description_extended: - desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags - title: Custom extended information - site_short_description: - desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. - title: Short server description - site_terms: - desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags - title: Custom terms of service - site_title: Server name - thumbnail: - desc_html: Used for previews via OpenGraph and API. 1200x630px recommended - title: Server thumbnail - timeline_preview: - desc_html: Display link to public timeline on landing page and allow API access to the public timeline without authentication - title: Allow unauthenticated access to public timeline - title: Site settings - trendable_by_default: - desc_html: Affects hashtags that have not been previously disallowed - title: Allow hashtags to trend without prior review - trends: - desc_html: Publicly display previously reviewed content that is currently trending - title: Trends + title: Server Settings site_uploads: delete: Delete uploaded file destroyed_msg: Site upload successfully deleted! statuses: + account: Author + application: Application back_to_account: Back to account page back_to_report: Back to report page batch: remove_from_report: Remove from report report: Report deleted: Deleted + favourites: Favourites + history: Version history + in_reply_to: Replying to + language: Language media: title: Media + metadata: Metadata no_status_selected: No posts were changed as none were selected + open: Open post + original_status: Original post + reblogs: Reblogs + status_changed: Post changed title: Account posts + trending: Trending + visibility: Visibility with_media: With media strikes: actions: @@ -797,6 +770,9 @@ en: description_html: These are links that are currently being shared a lot by accounts that your server sees posts from. It can help your users find out what's going on in the world. No links are displayed publicly until you approve the publisher. You can also allow or reject individual links. disallow: Disallow link disallow_provider: Disallow publisher + no_link_selected: No links were changed as none were selected + publishers: + no_publisher_selected: No publishers were changed as none were selected shared_by_over_week: one: Shared by one person over the last week other: Shared by %{count} people over the last week @@ -816,6 +792,7 @@ en: description_html: These are posts that your server knows about that are currently being shared and favourited a lot at the moment. It can help your new and returning users to find more people to follow. No posts are displayed publicly until you approve the author, and the author allows their account to be suggested to others. You can also allow or reject individual posts. disallow: Disallow post disallow_account: Disallow author + no_status_selected: No trending posts were changed as none were selected not_discoverable: Author has not opted-in to being discoverable shared_by: one: Shared or favourited one time @@ -831,6 +808,7 @@ en: tag_uses_measure: total uses description_html: These are hashtags that are currently appearing in a lot of posts that your server sees. It can help your users find out what people are talking the most about at the moment. No hashtags are displayed publicly until you approve them. listable: Can be suggested + no_tag_selected: No tags were changed as none were selected not_listable: Won't be suggested not_trendable: Won't appear under trends not_usable: Cannot be used @@ -851,6 +829,26 @@ en: edit_preset: Edit warning preset empty: You haven't defined any warning presets yet. title: Manage warning presets + webhooks: + add_new: Add endpoint + delete: Delete + description_html: A webhook enables Mastodon to push real-time notifications about chosen events to your own application, so your application can automatically trigger reactions. + disable: Disable + disabled: Disabled + edit: Edit endpoint + empty: You don't have any webhook endpoints configured yet. + enable: Enable + enabled: Active + enabled_events: + one: 1 enabled event + other: "%{count} enabled events" + events: Events + new: New webhook + rotate_secret: Rotate secret + secret: Signing secret + status: Status + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +872,8 @@ en: new_trends: body: 'The following items need a review before they can be displayed publicly:' new_trending_links: - no_approved_links: There are currently no approved trending links. - requirements: 'Any of these candidates could surpass the #%{rank} approved trending link, which is currently "%{lowest_link_title}" with a score of %{lowest_link_score}.' title: Trending links new_trending_statuses: - no_approved_statuses: There are currently no approved trending posts. - requirements: 'Any of these candidates could surpass the #%{rank} approved trending post, which is currently %{lowest_status_url} with a score of %{lowest_status_score}.' title: Trending posts new_trending_tags: no_approved_tags: There are currently no approved trending hashtags. @@ -915,16 +909,13 @@ en: applications: created: Application successfully created destroyed: Application successfully deleted - invalid_url: The provided URL is invalid regenerate_token: Regenerate access token token_regenerated: Access token successfully regenerated warning: Be very careful with this data. Never share it with anyone! your_token: Your access token auth: - apply_for_account: Request an invite + apply_for_account: Get on waitlist change_password: Password - checkbox_agreement_html: I agree to the server rules and terms of service - checkbox_agreement_without_rules_html: I agree to the terms of service delete_account: Delete account delete_account_html: If you wish to delete your account, you can proceed here. You will be asked for confirmation. description: @@ -943,6 +934,7 @@ en: migrate_account: Move to a different account migrate_account_html: If you wish to redirect this account to a different one, you can configure it here. or_log_in_with: Or log in with + privacy_policy_agreement_html: I have read and agree to the privacy policy providers: cas: CAS saml: SAML @@ -950,12 +942,18 @@ en: registration_closed: "%{instance} is not accepting new members" resend_confirmation: Resend confirmation instructions reset_password: Reset password + rules: + preamble: These are set and enforced by the %{domain} moderators. + title: Some ground rules. security: Security set_new_password: Set new password setup: email_below_hint_html: If the below e-mail address is incorrect, you can change it here and receive a new confirmation e-mail. email_settings_hint_html: The confirmation e-mail was sent to %{email}. If that e-mail address is not correct, you can change it in account settings. title: Setup + sign_up: + preamble: With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted. + title: Let's get you set up on %{domain}. status: account_status: Account status confirming: Waiting for e-mail confirmation to be completed. @@ -964,7 +962,6 @@ en: redirecting_to: Your account is inactive because it is currently redirecting to %{acct}. view_strikes: View past strikes against your account too_fast: Form submitted too fast, try again. - trouble_logging_in: Trouble logging in? use_security_key: Use security key authorize_follow: already_following: You are already following this account @@ -1022,10 +1019,6 @@ en: more_details_html: For more details, see the privacy policy. username_available: Your username will become available again username_unavailable: Your username will remain unavailable - directories: - directory: Profile directory - explanation: Discover users based on their interests - explore_mastodon: Explore %{title} disputes: strikes: action_taken: Action taken @@ -1104,29 +1097,60 @@ en: public: Public timelines thread: Conversations edit: + add_keyword: Add keyword + keywords: Keywords + statuses: Individual posts + statuses_hint_html: This filter applies to select individual posts regardless of whether they match the keywords below. Review or remove posts from the filter. title: Edit filter errors: + deprecated_api_multiple_keywords: These parameters cannot be changed from this application because they apply to more than one filter keyword. Use a more recent application or the web interface. invalid_context: None or invalid context supplied - invalid_irreversible: Irreversible filtering only works with home or notifications context index: + contexts: Filters in %{contexts} delete: Delete empty: You have no filters. + expires_in: Expires in %{distance} + expires_on: Expires on %{date} + keywords: + one: "%{count} keyword" + other: "%{count} keywords" + statuses: + one: "%{count} post" + other: "%{count} posts" + statuses_long: + one: "%{count} individual post hidden" + other: "%{count} individual posts hidden" title: Filters new: + save: Save new filter title: Add new filter + statuses: + back_to_filter: Back to filter + batch: + remove: Remove from filter + index: + hint: This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface. + title: Filtered posts footer: - developers: Developers - more: More… - resources: Resources trending_now: Trending now generic: all: All + all_items_on_page_selected_html: + one: "%{count} item on this page is selected." + other: All %{count} items on this page are selected. + all_matching_items_selected_html: + one: "%{count} item matching your search is selected." + other: All %{count} items matching your search are selected. changes_saved_msg: Changes successfully saved! copy: Copy delete: Delete + deselect: Deselect all none: None order_by: Order by save_changes: Save changes + select_all_matching_items: + one: Select %{count} item matching your search. + other: Select all %{count} items matching your search. today: today validation_errors: one: Something isn't quite right yet! Please review the error below @@ -1150,7 +1174,6 @@ en: following: Following list muting: Muting list upload: Upload - in_memoriam_html: In Memoriam. invites: delete: Deactivate expired: Expired @@ -1229,21 +1252,14 @@ en: carry_blocks_over_text: This user moved from %{acct}, which you had blocked. carry_mutes_over_text: This user moved from %{acct}, which you had muted. copy_account_note_text: 'This user moved from %{acct}, here were your previous notes about them:' + navigation: + toggle_menu: Toggle menu notification_mailer: admin: + report: + subject: "%{name} submitted a report" sign_up: subject: "%{name} signed up" - digest: - action: View all notifications - body: Here is a brief summary of the messages you missed since your last visit on %{since} - mention: "%{name} mentioned you in:" - new_followers_summary: - one: Also, you have acquired one new follower while being away! Yay! - other: Also, you have acquired %{count} new followers while being away! Amazing! - subject: - one: "1 new notification since your last visit 🐘" - other: "%{count} new notifications since your last visit 🐘" - title: In your absence... favourite: body: 'Your post was favourited by %{name}:' subject: "%{name} favourited your post" @@ -1316,6 +1332,8 @@ en: other: Other posting_defaults: Posting defaults public_timelines: Public timelines + privacy_policy: + title: Privacy Policy reactions: errors: limit_reached: Limit of different reactions reached @@ -1338,22 +1356,7 @@ en: remove_selected_follows: Unfollow selected users status: Account status remote_follow: - acct: Enter your username@domain you want to act from missing_resource: Could not find the required redirect URL for your account - no_account_html: Don't have an account? You can sign up here - proceed: Proceed to follow - prompt: 'You are going to follow:' - reason_html: "Why is this step necessary? %{instance} might not be the server where you are registered, so we need to redirect you to your home server first." - remote_interaction: - favourite: - proceed: Proceed to favourite - prompt: 'You want to favourite this post:' - reblog: - proceed: Proceed to boost - prompt: 'You want to boost this post:' - reply: - proceed: Proceed to reply - prompt: 'You want to reply to this post:' reports: errors: invalid_rules: does not reference valid rules @@ -1371,7 +1374,7 @@ en: browser: Browser browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1385,7 +1388,7 @@ en: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Current session description: "%{browser} on %{platform}" @@ -1394,8 +1397,8 @@ en: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS + blackberry: BlackBerry + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1525,89 +1528,6 @@ en: too_late: It is too late to appeal this strike tags: does_not_match_previous_name: does not match the previous name - terms: - body_html: | -

      Privacy Policy

      -

      What information do we collect?

      - -
        -
      • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
      • -
      • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
      • -
      • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
      • -
      • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
      • -
      - -
      - -

      What do we use your information for?

      - -

      Any of the information we collect from you may be used in the following ways:

      - -
        -
      • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
      • -
      • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
      • -
      • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
      • -
      - -
      - -

      How do we protect your information?

      - -

      We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

      - -
      - -

      What is our data retention policy?

      - -

      We will make a good faith effort to:

      - -
        -
      • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
      • -
      • Retain the IP addresses associated with registered users no more than 12 months.
      • -
      - -

      You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

      - -

      You may irreversibly delete your account at any time.

      - -
      - -

      Do we use cookies?

      - -

      Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

      - -

      We use cookies to understand and save your preferences for future visits.

      - -
      - -

      Do we disclose any information to outside parties?

      - -

      We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

      - -

      Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

      - -

      When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

      - -
      - -

      Site usage by children

      - -

      If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

      - -

      If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

      - -

      Law requirements can be different if this server is in another jurisdiction.

      - -
      - -

      Changes to our Privacy Policy

      - -

      If we decide to change our privacy policy, we will post those changes on this page.

      - -

      This document is CC-BY-SA. It was last updated May 26, 2022.

      - -

      Originally adapted from the Discourse privacy policy.

      - title: "%{instance} Terms of Service and Privacy Policy" themes: contrast: Mastodon (High contrast) default: Mastodon (Dark) @@ -1686,20 +1606,13 @@ en: suspend: Account suspended welcome: edit_profile_action: Setup profile - edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account. + edit_profile_step: You can customize your profile by uploading a profile picture, changing your display name and more. You can opt-in to review new followers before they’re allowed to follow you. explanation: Here are some tips to get you started final_action: Start posting - final_step: 'Start posting! Even without followers your public posts may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.' + final_step: 'Start posting! Even without followers, your public posts may be seen by others, for example on the local timeline or in hashtags. You may want to introduce yourself on the #introductions hashtag.' full_handle: Your full handle full_handle_hint: This is what you would tell your friends so they can message or follow you from another server. - review_preferences_action: Change preferences - review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay. subject: Welcome to Mastodon - tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete. - tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines. - tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours! - tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways! - tips: Tips title: Welcome aboard, %{name}! users: follow_limit_reached: You cannot follow more than %{limit} people diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 2ab3692b2d441b..5c890ffda26db4 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1,123 +1,75 @@ --- eo: about: - about_hashtag_html: Ĉi tiuj estas la publikaj mesaĝoj markitaj per #%{hashtag}. Vi povas interagi kun ili se vi havas konton ie ajn en la fediverse. - about_mastodon_html: Mastodon estas socia reto bazita sur malfermitaj retaj protokoloj kaj sur libera malfermitkoda programo. Ĝi estas sencentra kiel retmesaĝoj. - about_this: Pri - active_count_after: aktiva - active_footnote: Monate Aktivaj Uzantoj (MAU) - administered_by: 'Administrata de:' - api: API - apps: Poŝtelefonaj aplikaĵoj - apps_platforms: Uzu Mastodon ĉe iOS, Android kaj aliajn platformojn - browse_directory: Esplori profilujo kaj filtri per interesoj - browse_local_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon - browse_public_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon - contact: Kontakti + about_mastodon_html: 'Mastodon estas socia retejo de la estonteco: sen reklamo, sen kompania gvato, etika dezajno kaj malcentraligo! Vi regu viajn datumojn kun Mastodon!' contact_missing: Ne elektita contact_unavailable: Ne disponebla - continue_to_web: Daŭrigi al la retaplikaĵo - discover_users: Malkovri uzantojn - documentation: Dokumentado - federation_hint_html: Per konto ĉe %{instance}, vi povos sekvi homojn ĉe iu ajn Mastodon nodo kaj preter. - get_apps: Provu telefonan aplikaĵon hosted_on: "%{domain} estas nodo de Mastodon" - instance_actor_flash: | - Ĉi tiu konto estas virtuala ulo uzata por reprezenti la servilon mem kaj ne iun apartan uzanton. - Ĝi estas uzata por frataraj celoj kaj ĝi ne devus esti blokita krom se vi volas bloki la tutan servilon, tiuokaze vi devus uzi domajnan blokadon. - learn_more: Lerni pli - logout_before_registering: Vi jam salutis. - privacy_policy: Privateca politiko - rules: Reguloj de la servilo - see_whats_happening: Vidi kio okazas - server_stats: Servo statuso - source_code: Fontkodo - status_count_after: - one: mesaĝo - other: mesaĝoj - status_count_before: Kie skribiĝis - tagline: Sekvi amikojn kaj trovi iujn novajn - terms: Uzkondiĉoj - unavailable_content: Kontrolitaj serviloj - unavailable_content_description: - domain: Servilo - reason: 'Kialo:' - rejecting_media_title: Filtritaj aŭdovidaĵoj - silenced_title: Silentigitaj serviloj - suspended_title: Haltigitaj serviloj - user_count_after: - one: uzanto - other: uzantoj - user_count_before: Hejmo de - what_is_mastodon: Kio estas Mastodon? + title: Pri accounts: - choices_html: 'Proponoj de %{name}:' follow: Sekvi followers: one: Sekvanto other: Sekvantoj following: Sekvatoj - joined: Aliĝis je %{date} + instance_actor_flash: Ĉi tiu konto estas virtuala agento uzata por reprezenti la servilon mem kaj neniu individua uzanto. Ĝi estas uzata por celoj de la federaĵo kaj devas ne esti suspendita. last_active: laste aktiva link_verified_on: Proprieto de ĉi tiu ligilo estis kontrolita je %{date} - media: Aŭdovidaĵoj - moved_html: "%{name} moviĝis al %{new_profile_link}:" - network_hidden: Tiu informo ne estas disponebla nothing_here: Estas nenio ĉi tie! - people_followed_by: Sekvatoj de %{name} - people_who_follow: Sekvantoj de %{name} pin_errors: following: Vi devas sekvi la homon, kiun vi volas proponi posts: - one: Mesaĝo + one: Afiŝo other: Mesaĝoj - posts_tab_heading: Mesaĝoj - posts_with_replies: Mesaĝoj kaj respondoj - roles: - admin: Administranto - bot: Roboto - group: Grupo - moderator: Kontrolanto - unavailable: Profilo ne disponebla - unfollow: Ne plu sekvi + posts_tab_heading: Afiŝoj admin: account_actions: action: Plenumi agon title: Plenumi kontrolan agon al %{acct} account_moderation_notes: create: Lasi noton - created_msg: Kontrola noto sukcese kreita! - destroyed_msg: Kontrola noto sukcese detruita! + created_msg: Noto de mederigado estis sukcese kreita! + destroyed_msg: Noto de moderigado sukcese detruita! accounts: add_email_domain_block: Bloki retadresan domajnon approve: Aprobi + approved_msg: Sukcese aprobis aliĝilon de %{username} are_you_sure: Ĉu vi certas? avatar: Profilbildo by_domain: Domajno change_email: - changed_msg: Konta retadreso sukcese ŝanĝita! + changed_msg: Retpoŝta adreso estis sukcese ŝanĝita! current_email: Nuna retadreso label: Ŝanĝi retadreson new_email: Nova retadreso submit: Ŝanĝi retadreson title: Ŝanĝi retadreson por %{username} + change_role: + changed_msg: Rolo estis sukcese ŝanĝita! + label: Ŝanĝi rolon + no_role: Neniu rolo + title: Ŝanĝi rolon por %{username} confirm: Konfirmi confirmed: Konfirmita confirming: Konfirmante - custom: Kutimo + custom: Aliaj agordoj delete: Forigi datumojn deleted: Forigita demote: Degradi - disable: Malebligi - disable_two_factor_authentication: Malebligi 2FA - disabled: Malebligita + destroyed_msg: Datumoj de %{username} nun enviciĝis por esti forigita baldaǔ + disable: Frostigi + disable_sign_in_token_auth: Malŝalti retpoŝtan ĵetonan aŭtentigon + disable_two_factor_authentication: Malŝalti 2FA-n + disabled: Frostigita display_name: Montrata nomo domain: Domajno edit: Redakti - email: Retadreso - email_status: Retadreso Stato - enable: Ebligi + email: Retpoŝto + email_status: Stato de retpoŝto + enable: Malfrostigi + enable_sign_in_token_auth: Ŝalti retpoŝtan ĵetonan aŭtentigon enabled: Ebligita + enabled_msg: Sukcese malfrostigis konton de %{username} followers: Sekvantoj follows: Sekvatoj header: Kapa bildo @@ -127,49 +79,51 @@ eo: ip: IP joined: Aliĝis location: - all: Ĉio + all: Ĉiuj local: Lokaj remote: Foraj title: Loko login_status: Ensaluta stato - media_attachments: Ligitaj aŭdovidaĵoj + media_attachments: Aŭdovidaj aldonaĵoj memorialize: Ŝanĝi al memoro memorialized: Memorita moderation: - active: Aktiva + active: Aktivaj all: Ĉio pending: Pritraktata - suspended: Haltigita - title: Kontrolado - moderation_notes: Kontrolaj notoj - most_recent_activity: Lasta ago + silenced: Limigita + suspended: Suspendita + title: Moderigado + moderation_notes: Notoj de moderigado + most_recent_activity: Lastaj afiŝoj most_recent_ip: Lasta IP no_account_selected: Neniu konto estis ŝanĝita ĉar neniu estis selektita no_limits_imposed: Neniu limito trudita + no_role_assigned: Sen rolo not_subscribed: Ne abonita pending: Pritraktata recenzo - perform_full_suspension: Haltigi + perform_full_suspension: Suspendi + previous_strikes: Antaǔaj admonoj + previous_strikes_description_html: + one: Ĉi tiu konto havas unu admonon. + other: Ĉi tiu konto havas %{count} admonojn. promote: Plirangigi protocol: Protokolo public: Publika push_subscription_expires: Eksvalidiĝo de la abono al PuSH redownload: Aktualigi profilon reject: Malakcepti - remove_avatar: Forigi profilbildon + remove_avatar: Forigi la rolfiguron remove_header: Forigi kapan bildon + removed_avatar_msg: La bildo de la rolfiguro de %{username} estas sukcese forigita resend_confirmation: already_confirmed: Ĉi tiu uzanto jam estas konfirmita - send: Resendi konfirman retmesaĝon - success: Konfirma retmesaĝo sukcese sendita! + send: Resendi konfirman retpoŝton + success: Konfirma retpoŝto estis sukcese sendita! reset: Restarigi reset_password: Restarigi pasvorton resubscribe: Reaboni - role: Permesoj - roles: - admin: Administranto - moderator: Kontrolanto - staff: Teamo - user: Uzanto + role: Rolo search: Serĉi search_same_email_domain: Aliaj uzantoj kun la sama retpoŝta domajno search_same_ip: Aliaj uzantoj kun la sama IP @@ -180,73 +134,88 @@ eo: sensitized: markita tikla shared_inbox_url: URL de kunhavigita leterkesto show: - created_reports: Kreitaj signaloj - targeted_reports: Signalitaj de aliaj - silence: Kaŝi + created_reports: Faritaj raportoj + targeted_reports: Raporitaj de alia + silence: Mutigita silenced: Silentigita - statuses: Mesaĝoj + statuses: Afiŝoj + strikes: Antaǔaj admonoj subscribe: Aboni suspend: Haltigu - suspended: Haltigita + suspended: Suspendita + suspension_reversible_hint_html: La konto estas suspendita, kaj la datumoj estos komplete forgitaj en la %{date}. Ĝis tiam, la konto povas esti restaŭrita sen malutila efiko. Se vi deziras tuj forigi ĉiujn datumojn de la konto, vi povas fari ĉi-sube. title: Kontoj unblock_email: Malbloki retpoŝtadresojn unblocked_email_msg: Sukcese malblokis la retpoŝtadreson de %{username} - unconfirmed_email: Nekonfirmita retadreso + unconfirmed_email: Nekonfirmita retpoŝto undo_sensitized: Malfari sentema undo_silenced: Malfari kaŝon undo_suspension: Malfari haltigon unsubscribe: Malaboni + unsuspended_msg: La konto de %{username} estas sukcese reaktivigita username: Uzantnomo view_domain: Vidi la resumon de la domajno warn: Averti web: Reto - whitelisted: En la blanka listo + whitelisted: Permesita por federacio action_logs: action_types: + approve_appeal: Aprobis Apelacion approve_user: Aprobi Uzanton assigned_to_self_report: Atribui Raporton - change_email_user: Ŝanĝi retadreson de uzanto - confirm_user: Konfermi uzanto + change_email_user: Ŝanĝi retpoŝton de uzanto + change_role_user: Ŝanĝi Rolon de Uzanton + confirm_user: Konfirmi uzanton create_account_warning: Krei Averton create_announcement: Krei Anoncon - create_custom_emoji: Krei Propran emoĝion + create_canonical_email_block: Krei Blokadon de Retpoŝto + create_custom_emoji: Krei Propran Emoĝion create_domain_allow: Krei Domajnan Permeson - create_domain_block: Krei blokadon de domajno - create_email_domain_block: Krei blokadon de retpoŝta domajno + create_domain_block: Krei Blokadon De Domajno + create_email_domain_block: Krei Blokadon De Retpoŝta Domajno create_ip_block: Krei IP-regulon - demote_user: Malpromocii uzanton + create_user_role: Krei Rolon + demote_user: Malpromocii Uzanton destroy_announcement: Forigi Anoncon - destroy_custom_emoji: Forigi Propran emoĝion + destroy_canonical_email_block: Forigi blokadon de retpoŝta adreso + destroy_custom_emoji: Forigi Propran Emoĝion destroy_domain_allow: Forigi Domajnan Permeson destroy_domain_block: Forigi blokadon de domajno destroy_email_domain_block: Forigi blokadon de retpoŝta domajno destroy_ip_block: Forigi IP-regulon destroy_status: Forigi mesaĝon destroy_unavailable_domain: Forigi Nehaveblan Domajnon - disable_2fa_user: Malebligi 2FA - disable_custom_emoji: Malebligi Propran Emoĝion - disable_user: Malebligi uzanton + destroy_user_role: Detrui Rolon + disable_2fa_user: Malaktivigi 2FA-n + disable_custom_emoji: Malaktivigi la proprajn emoĝiojn + disable_sign_in_token_auth_user: Malaktivigi Retpoŝtan Ĵetonon por Uzanto + disable_user: Malaktivigi la uzanton enable_custom_emoji: Ebligi Propran Emoĝion + enable_sign_in_token_auth_user: Aktivigi la aŭtentigon de peco per retpoŝto por la uzanto enable_user: Ebligi uzanton memorialize_account: Memorigu Konton promote_user: Promocii Uzanton + reject_appeal: Malaprobi Apelacion reject_user: Malakcepti Uzanton - remove_avatar_user: Forigi profilbildon + remove_avatar_user: Forigi la rolfiguron reopen_report: Remalfermi signalon + resend_user: Resendi konfirman retmesaĝon reset_password_user: Restarigi pasvorton resolve_report: Solvitaj reporto sensitive_account: Marki tikla la aŭdovidaĵojn de via konto silence_account: Silentigi konton - suspend_account: Haltigi konton + suspend_account: Suspendi la konton unassigned_report: Malatribui Raporton unblock_email_account: Malbloki retpoŝtadreson unsensitive_account: Malmarku la amaskomunikilojn en via konto kiel sentemaj unsilence_account: Malsilentigi konton - unsuspend_account: Malhaltigi konton + unsuspend_account: Reaktivigi la konton update_announcement: Ĝisdatigi anoncon update_custom_emoji: Ĝisdatigi proprajn emoĝiojn update_domain_block: Ĝigdatigi domajnan blokadon + update_ip_block: Krei IP-regulon update_status: Ĝisdatigi staton + update_user_role: Ĝisdatigi Rolon actions: approve_user_html: "%{name} aprobis registriĝon de %{target}" assigned_to_self_report_html: "%{name} asignis signalon %{target} al si mem" @@ -259,26 +228,31 @@ eo: create_domain_block_html: "%{name} blokis domajnon %{target}" create_email_domain_block_html: "%{name} blokis retpoŝtan domajnon %{target}" create_ip_block_html: "%{name} kreis regulon por IP %{target}" + create_user_role_html: "%{name} kreis rolon de %{target}" demote_user_html: "%{name} degradis uzanton %{target}" destroy_announcement_html: "%{name} forigis anoncon %{target}" - destroy_custom_emoji_html: "%{name} neniigis la emoĝion %{target}" + destroy_custom_emoji_html: "%{name} forigis emoĝion %{target}" destroy_domain_allow_html: "%{name} forigis domajnon %{target} el la blanka listo" destroy_domain_block_html: "%{name} malblokis domajnon %{target}" destroy_email_domain_block_html: "%{name} malblokis retpoŝtan domajnon %{target}" destroy_ip_block_html: "%{name} forigis regulon por IP %{target}" destroy_status_html: "%{name} forigis mesaĝojn de %{target}" - disable_2fa_user_html: "%{name} malebligis dufaktoran aŭtentigon por uzanto %{target}" - disable_custom_emoji_html: "%{name} malebligis emoĝion %{target}" - disable_user_html: "%{name} malebligis ensaluton por uzanto %{target}" + destroy_user_role_html: "%{name} forigis rolon de %{target}" + disable_2fa_user_html: "%{name} malaktivigis la postulon de la dufaktora aŭtentigo por la uzanto %{target}" + disable_custom_emoji_html: "%{name} neebligis la emoĝion %{target}" + disable_user_html: "%{name} neebligis la saluton de la uzanto %{target}" enable_custom_emoji_html: "%{name} ebligis emoĝion %{target}" enable_user_html: "%{name} ebligis ensaluton por uzanto %{target}" memorialize_account_html: "%{name} ŝanĝis la konton de %{target} al memora paĝo" promote_user_html: "%{name} plirangigis uzanton %{target}" reject_user_html: "%{name} malakceptis registriĝon de %{target}" - remove_avatar_user_html: "%{name} forigis profilbildon de %{target}" + remove_avatar_user_html: "%{name} forigis la rolfiguron de %{target}" reopen_report_html: "%{name} remalfermis signalon %{target}" + resend_user_html: "%{name} resendis konfirman retmesaĝon por %{target}" + suspend_account_html: "%{name} suspendis la konton de %{target}" + unsuspend_account_html: "%{name} reaktivigis la konton de %{target}" update_announcement_html: "%{name} ĝisdatigis anoncon %{target}" - deleted_status: "(forigita mesaĝo)" + deleted_account: forigita konto empty: Neniu protokolo trovita. filter_by_action: Filtri per ago filter_by_user: Filtri per uzanto @@ -310,11 +284,11 @@ eo: created_msg: Emoĝio sukcese kreita! delete: Forigi destroyed_msg: Emoĝio sukcese forigita! - disable: Malebligi - disabled: Malebligita - disabled_msg: Emoĝio sukcese malebligita + disable: Neebligi + disabled: Neebligita + disabled_msg: La emoĝio sukcese neebligita emoji: Emoĝio - enable: Ebligi + enable: Enŝalti enabled: Ebligita enabled_msg: Tiu emoĝio estis sukcese ebligita list: Listo @@ -335,15 +309,24 @@ eo: dashboard: active_users: aktivaj uzantoj interactions: interago - media_storage: Aŭdvidaĵa memorilo + media_storage: Memorilo de aŭdovidaĵoj new_users: novaj uzantoj opened_reports: raportoj malfermitaj + pending_tags_html: + one: "%{count} pritraktota kradvorto" + other: "%{count} pritraktotaj kradvortoj" resolved_reports: raportoj solvitaj software: Programo + sources: Fontoj de konto-kreado space: Memorspaca uzado title: Kontrolpanelo + top_languages: Plej aktivaj lingvoj top_servers: Plej aktivaj serviloj website: Retejo + disputes: + appeals: + empty: Neniuj apelacioj estas trovitaj. + title: Apelacioj domain_allows: add_new: Aldoni domajnon al la blanka listo created_msg: Domajno estis sukcese aldonita al la blanka listo @@ -362,13 +345,13 @@ eo: severity: desc_html: "Kaŝi igos la mesaĝojn de la konto nevideblaj al tiuj, kiuj ne sekvas tiun. Haltigi forigos ĉiujn enhavojn, aŭdovidaĵojn kaj datumojn de la konto. Uzu Nenio se vi simple volas malakcepti aŭdovidaĵojn." noop: Nenio - silence: Kaŝi - suspend: Haltigi + silence: Mutigi + suspend: Suspendi title: Nova domajna blokado obfuscate: Malklara domajna nomo private_comment: Privata komento public_comment: Publika komento - reject_media: Malakcepti aŭdovidajn dosierojn + reject_media: Malakcepti la aŭdovidajn dosierojn reject_media_hint: Forigas aŭdovidaĵojn loke konservitajn kaj rifuzas alŝuti ajnan estonte. Ne koncernas haltigojn reject_reports: Malakcepti signalojn reject_reports_hint: Ignori ĉiujn signalojn el tiu domajno. Ne koncernas haltigojn @@ -391,6 +374,10 @@ eo: title: Rekomendoj de sekvado instances: availability: + failures_recorded: + one: Malsukcesa provo dum %{count} tago. + other: Malsukcesa provo dum %{count} apartaj tagoj. + no_failures_recorded: Neniuj malsukcesoj en protokolo. title: Disponebleco warning: La lasta provo por konektiĝi al ĉi tiu servilo estis malsukcesa back_to_all: Ĉiuj @@ -398,25 +385,40 @@ eo: back_to_warning: Averta by_domain: Domajno content_policies: + comment: Interna noto policies: + reject_media: Malakcepti la aŭdovidaĵojn reject_reports: Malakcepti raportojn silence: Kaŝu + suspend: Suspendi policy: Politiko + reason: Publika kialo + title: Regularo de enhavo dashboard: instance_accounts_dimension: Plej sekvataj kontoj instance_accounts_measure: konservitaj kontoj instance_followers_measure: niaj sekvantoj tie instance_follows_measure: iliaj sekvantoj ĉi tie + instance_languages_dimension: Ĉefaj lingvoj + instance_media_attachments_measure: stokitaj aŭdovidaj aldonaĵoj instance_reports_measure: raportoj pri ili instance_statuses_measure: konservitaj afiŝoj delivery: all: Ĉiuj + clear: Forviŝi liverajn erarojn + failing: Malsukcesas + restart: Restarti liveradon + stop: Halti liveradon + unavailable: Nedisponebla delivery_available: Liverado disponeblas empty: Neniuj domajnoj trovitaj. + known_accounts: + one: "%{count} konata konto" + other: "%{count} konataj kontoj" moderation: all: Ĉiuj limited: Limigita - title: Kontrolo + title: Moderigado private_comment: Privata komento public_comment: Publika komento purge: Purigu @@ -455,11 +457,11 @@ eo: add_new: Aldoni novan ripetilon delete: Forigi description_html: "Fratara ripetilo estas survoja servilo, kiu interŝanĝas grandan kvanton de publikaj mesaĝoj inter serviloj, kiuj abonas kaj publikigas al ĝi. Ĝi povas helpi etajn kaj mezgrandajn servilojn malkovri enhavon de la fediverse, kio normale postulus al lokaj uzantoj mane sekvi homojn de foraj serviloj." - disable: Malebligi - disabled: Malebligita - enable: Ebligi + disable: Neebligi + disabled: Neebligita + enable: Enŝalti enable_hint: Post ebligo, via servilo abonos ĉiujn publikajn mesaĝojn de tiu ripetilo, kaj komencos sendi publikajn mesaĝojn de la servilo al ĝi. - enabled: Malebligita + enabled: Ebligita inbox_url: URL de la ripetilo pending: Atendante aprobon de la ripetilo save_and_enable: Konservi kaj ebligi @@ -475,7 +477,10 @@ eo: notes: one: "%{count} noto" other: "%{count} notoj" + action_log: Kontrola protokolo action_taken_by: Ago farita de + actions: + other_description_html: Vidu pli da elektebloj por kontroli la agadon de la konto kaj personecigi la komunikadon kun la konto pri kiu raporto. add_to_report: Aldoni pli al raporto are_you_sure: Ĉu vi certas? assign_to_self: Asigni al mi @@ -489,6 +494,7 @@ eo: forwarded: Plusendita forwarded_to: Plusendita al %{domain} mark_as_resolved: Marki solvita + mark_as_sensitive: Marki kiel tiklan mark_as_unresolved: Marki nesolvita no_one_assigned: Neniu notes: @@ -498,6 +504,7 @@ eo: delete: Forigi placeholder: Priskribu faritajn agojn, aŭ ajnan novan informon pri tiu signalo… title: Notoj + remote_user_placeholder: la ekstera uzanto de %{instance} reopen: Remalfermi signalon report: 'Signalo #%{id}' reported_account: Signalita konto @@ -513,113 +520,95 @@ eo: unresolved: Nesolvitaj updated_at: Ĝisdatigita view_profile: Vidi profilon + roles: + add_new: Aldoni rolon + assigned_users: + one: "%{count} uzanto" + other: "%{count} uzantoj" + categories: + administration: Administrado + invites: Invitoj + moderation: Kontrolado + special: Specialaj + delete: Forigi + edit: Redakti rolon de '%{name}' + everyone: Implicitaj permesoj + everyone_full_description_html: Jen la baza rolo, kiu afektas ĉiujn uzantojn, eĉ tiuj sen atribuata rolo. Ĉiuj aliaj roloj heredas permesojn de ĝi. + permissions_count: + one: "%{count} permeso" + other: "%{count} permesoj" + privileges: + administrator: Administranto + administrator_description: Uzantoj kun ĉi tiu permeso preterpasos ĉiun permeson + delete_user_data: Forviŝi la datumojn de la uzanto + invite_users: Inviti Uzantojn + manage_announcements: Administri Anoncojn + manage_announcements_description: Permesas uzantojn administri anoncojn ĉe la servilo + manage_appeals: Administri Apelaciojn + manage_appeals_description: Rajtigas al uzantoj kontroli apelaciojn kontraǔ kontrolaj agoj + manage_blocks: Administri Blokojn + manage_federation: Administri Federacion + manage_federation_description: Permesas al uzantoj bloki aǔ permesi federacion kun aliaj domajnoj, kaj regi liveradon + manage_invites: Administri Invitojn + manage_roles: Administri Rolojn + manage_rules: Administri Regulojn + title: Roloj rules: add_new: Aldoni regulon delete: Forigi edit: Redakti la regulon title: Reguloj de la servilo settings: - activity_api_enabled: - desc_html: Sumo de lokaj mesaĝoj, aktivaj uzantoj, kaj novaj registriĝoj laŭsemajne - title: Publikigi kunmetitajn statistikojn pri la uzanta agado - bootstrap_timeline_accounts: - desc_html: Disigi plurajn uzantnomojn per komo. Funkcios nur por lokaj neŝlositaj kontoj. Kiam malplena, la dekomenca valoro estas ĉiuj lokaj administrantoj. - title: Dekomencaj sekvadoj por novaj uzantoj - contact_information: - email: Publika retadreso - username: Kontakta uzantnomo - custom_css: - desc_html: Ŝanĝi la aspekton per CSS ŝargita en ĉiu pago - title: Propra CSS + about: + title: Pri + appearance: + title: Apero + discovery: + title: Eltrovado domain_blocks: all: Al ciuj disabled: Al neniu - title: Vidi domajna blokado users: Al salutintaj lokaj uzantoj - domain_blocks_rationale: - title: Montri la kialon - hero: - desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la servilo estos uzata - title: Kapbildo - mascot: - desc_html: Montrata en pluraj paĝoj. Rekomendataj estas almenaŭ 293x205px. Se ĉi tio ne estas agordita, la defaŭlta maskoto uziĝas - title: Maskota bildo - peers_api_enabled: - desc_html: Nomoj de domajnoj, kiujn ĉi tiu servilo renkontis en la federauniverso - title: Publikigi liston de malkovritaj serviloj - preview_sensitive_media: - desc_html: Antaŭvido de ligiloj en aliaj retejoj montros bildeton eĉ se la aŭdovidaĵo estas markita kiel tikla - title: Montri tiklajn aŭdovidaĵojn en la antaŭvidoj de OpenGraph - profile_directory: - desc_html: Permesi al uzantoj esti troveblaj - title: Ebligi la profilujon - registrations: - closed_message: - desc_html: Montrita sur la hejma paĝo kiam registriĝoj estas fermitaj. Vi povas uzi HTML-etikedojn - title: Mesaĝo pri fermitaj registriĝoj - deletion: - desc_html: Permesi al iu ajn forigi propran konton - title: Permesi forigi konton - min_invite_role: - disabled: Neniu - title: Permesi invitojn de registrations_mode: modes: approved: Bezonas aprobi por aliĝi none: Neniu povas aliĝi open: Iu povas aliĝi - title: Registrado modo - show_known_fediverse_at_about_page: - desc_html: Kiam ŝaltita, ĝi montros mesaĝojn de la tuta konata fediverse antaŭvide. Aliokaze, ĝi montros nur lokajn mesaĝojn. - title: Montri konatan fediverse en tempolinia antaŭvido - show_staff_badge: - desc_html: Montri teaman insignon en paĝo de uzanto - title: Montri teaman insignon - site_description: - desc_html: Enkonduka alineo en la ĉefpaĝo. Priskribu la unikaĵojn de ĉi tiu nodo de Mastodon, kaj ĉiujn aliajn gravaĵojn. Vi povas uzi HTML-etikedojn, kiel <a> kaj <em>. - title: Priskribo de la servilo - site_description_extended: - desc_html: Bona loko por viaj sintenaj reguloj, aliaj reguloj, gvidlinioj kaj aliaj aferoj, kiuj apartigas vian serilon. Vi povas uzi HTML-etikedojn - title: Propraj detalaj informoj - site_short_description: - desc_html: Afiŝita en la flankpanelo kaj metadatumaj etikedoj. Priskribu kio estas Mastodon, kaj kio specialas en ĉi tiu nodo, per unu alineo. Se malplena, la priskribo de la servilo estos uzata. - title: Mallonga priskribo de la servilo - site_terms: - desc_html: Vi povas skribi vian propran privatecan politikon, viajn uzkondiĉojn aŭ aliajn leĝaĵojn. Vi povas uzi HTML-etikedojn - title: Propraj uzkondiĉoj - site_title: Nomo de la servilo - thumbnail: - desc_html: Uzata por antaŭvidoj per OpenGraph kaj per API. 1200x630px rekomendita - title: Bildeto de la servilo - timeline_preview: - desc_html: Montri publikan templinion en komenca paĝo - title: Tempolinia antaŭvido - title: Retejaj agordoj - trends: - desc_html: Publike montri antaŭe kontrolitajn kradvortojn, kiuj nune furoras - title: Furoraj kradvortoj site_uploads: delete: Forigi elŝutitan dosieron destroyed_msg: Reteja alŝuto sukcese forigita! statuses: + account: Skribanto back_to_account: Reveni al konta paĝo batch: remove_from_report: Forigi de raporto report: Raporti deleted: Forigita + language: Lingvo media: title: Aŭdovidaĵoj + metadata: Metadatumoj no_status_selected: Neniu mesaĝo estis ŝanĝita ĉar neniu estis elektita + open: Malfermi afiŝojn + original_status: Originala afiŝo + reblogs: Reblogaĵoj + status_changed: Afiŝo ŝanĝiĝis title: Mesaĝoj de la konto + trending: Popularaĵoj + visibility: Videbleco with_media: Kun aŭdovidaĵoj strikes: actions: delete_statuses: "%{name} forigis afiŝojn de %{target}" - disable: "%{name} malebligis la konton de %{target}" + disable: "%{name} frostigis la konton de %{target}" + suspend: "%{name} suspendis la konton de %{target}" appeal_approved: Apelaciita + appeal_pending: Apelacio pritraktiĝos system_checks: database_schema_check: message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite + elasticsearch_running_check: + message_html: Ne eblas konekti Elasticsearch. Bonvolu kontroli ke ĝi funkcias, aǔ malŝaltu plentekstan serĉon rules_check: action: Administri servilajn regulojn message_html: Vi ne difinis iujn servilajn regulojn. @@ -629,34 +618,51 @@ eo: title: Administrado trends: allow: Permesi + approved: Aprobita disallow: Malpermesi links: - allow: Permesi ligilon - disallow: Malpermesi ligilon + allow: Permesi la ligilon + disallow: Malpermesi la ligilon title: Tendencantaj ligiloj pending_review: Atendante revizion statuses: - allow: Permesi afiŝon - allow_account: Permesi aŭtoron - disallow: Malpermesi afiŝon - disallow_account: Malpermesi aŭtoron + allow: Permesi la afiŝon + allow_account: Permesi la aŭtoron + disallow: Malpermesi la afiŝon + disallow_account: Malpermesi la aŭtoron + shared_by: + one: Kundividita kaj aldonita al la preferaĵoj unufoje + other: Kundividita kaj aldonita al la preferaĵoj %{friendly_count}-foje title: Tendencantaj afiŝoj tags: dashboard: tag_accounts_measure: unikaj uzoj + tag_servers_dimension: Ĉefaj serviloj tag_servers_measure: malsamaj serviloj not_usable: Ne povas esti uzata title: Tendencantaj kradvortoj + trending_rank: 'Populara #%{rank}' + usable: Povas esti uzata title: Tendencoj + trending: Popularaĵoj warning_presets: add_new: Aldoni novan - delete: Forigi - edit_preset: Redakti avertan antaŭagordon + delete: Forviŝi + edit_preset: Redakti la antaŭagordojn de averto title: Administri avertajn antaŭagordojn + webhooks: + delete: Forigi + disable: Neebligi + disabled: Neebligita + edit: Redakti finpunkton + enable: Ŝalti + enabled: Aktiva + events: Eventoj admin_mailer: new_appeal: actions: - disable: por malebligi ties konton + disable: por frostigi ties konton + suspend: por suspendi iliajn kontojn new_pending_account: body: La detaloj de la nova konto estas sube. Vi povas aprobi aŭ Malakcepti ĉi kandidatiĝo. subject: Nova konto atendas por recenzo en %{instance} (%{username}) @@ -682,7 +688,7 @@ eo: confirmation_dialogs: Konfirmaj fenestroj discovery: Eltrovo localization: - body: Mastodon estas tradukita per volontuloj. + body: Mastodon estas tradukita de volontuloj. guide_link: https://crowdin.com/project/mastodon guide_link_text: Ĉiu povas kontribui. sensitive_content: Tikla enhavo @@ -697,28 +703,25 @@ eo: applications: created: Aplikaĵo sukcese kreita destroyed: Aplikaĵo sukcese forigita - invalid_url: La URL donita ne estas valida regenerate_token: Rekrei aliran ĵetonon token_regenerated: Alira ĵetono sukcese rekreita warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn! your_token: Via alira ĵetono auth: - apply_for_account: Peti inviton change_password: Pasvorto - checkbox_agreement_html: Mi samopinii al la Servo reguloj kaj kondiĉo al servadon - checkbox_agreement_without_rules_html: Mi konsenti la reguloj de servado delete_account: Forigi konton delete_account_html: Se vi deziras forigi vian konton, vi povas fari tion ĉi tie. Vi bezonos konfirmi vian peton. description: prefix_invited_by_user: "@%{name} invitigi vin aligiĝi ĉi tiu servilo de Mastodon!" - prefix_sign_up: Registriĝi ĉe Mastodon hodiaŭ! + prefix_sign_up: Registriĝu ĉe Mastodon hodiaŭ! + suffix: Kun konto, vi povos sekvi aliajn homojn, skribi afiŝojn kaj interŝanĝi mesaĝojn kun la uzantoj de iu ajn Mastodon'a servilo kaj multe pli! didnt_get_confirmation: Ĉu vi ne ricevis la instrukciojn por konfirmi? dont_have_your_security_key: Ne havas vi vian sekurecan ŝlosilon? forgot_password: Pasvorto forgesita? invalid_reset_password_token: Ĵetono por restarigi pasvorton nevalida aŭ eksvalida. Bonvolu peti novan. link_to_webauth: Uzi vian sekurecan ŝlosilon log_in_with: Ensaluti per - login: Saluti + login: Ensaluti logout: Adiaŭi migrate_account: Movi al alia konto migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas agordi ĝin ĉi tie. @@ -726,10 +729,10 @@ eo: providers: cas: CAS saml: SAML - register: Registriĝi + register: Krei konton registration_closed: "%{instance} ne estas akcepti nova uzantojn" resend_confirmation: Resendi la instrukciojn por konfirmi - reset_password: Ŝanĝi pasvorton + reset_password: Restarigi pasvorton security: Sekureco set_new_password: Elekti novan pasvorton setup: @@ -737,7 +740,6 @@ eo: status: account_status: Statuso de la konto too_fast: Formularo sendita tro rapide, klopodu denove. - trouble_logging_in: Ĝeni ensaluti? use_security_key: Uzi sekurecan ŝlosilon authorize_follow: already_following: Vi jam sekvas tiun konton @@ -761,7 +763,7 @@ eo: invalid_signature: 올바른 Ed25519 시그니처가 아닙니다 date: formats: - default: "%Y-%m-%d " + default: "%Y-%b-%d" with_month_name: "%e-a de %B %Y" datetime: distance_in_words: @@ -788,10 +790,6 @@ eo: more_details_html: Por pli da detaloj, vidi la privatecan politikon. username_available: Via uzantnomo iĝos denove disponebla username_unavailable: Via uzantnomo restos nedisponebla - directories: - directory: Profilujo - explanation: Malkovru uzantojn per iliaj interesoj - explore_mastodon: Esplori %{title} disputes: strikes: created_at: Datita @@ -848,20 +846,25 @@ eo: public: Publika templinio thread: Konversacioj edit: + add_keyword: Aldoni ĉefvorton + keywords: Ĉefvortoj title: Ŝanĝi filtrilojn errors: invalid_context: Neniu aŭ nevalida kunteksto donita - invalid_irreversible: Nemalfarebla filtrado funkcias nur por hejma aŭ sciiga kuntekstoj index: + contexts: Filtriloj en %{contexts} delete: Forigi empty: Vi havas neniun filtrilon. + expires_in: Eksvalidiĝi en %{distance} + expires_on: Eksvalidiĝi je %{date} + keywords: + one: "%{count} ĉefvorto" + other: "%{count} ĉefvortoj" title: Filtriloj new: + save: Konservi novan filtrilon title: Aldoni novan filtrilon footer: - developers: Programistoj - more: Pli… - resources: Rimedoj trending_now: Nunaj furoraĵoj generic: all: Ĉio @@ -892,7 +895,6 @@ eo: following: Listo de sekvatoj muting: Listo de silentigitoj upload: Alŝuti - in_memoriam_html: Memore invites: delete: Malaktivigi expired: Eksvalida @@ -910,7 +912,7 @@ eo: one: 1 uzo other: "%{count} uzoj" max_uses_prompt: Neniu limo - prompt: Krei kaj diskonigi ligilojn al aliaj por doni aliron al ĉi tiu servilo + prompt: Generi kaj kundividi ligilojn kun aliaj personoj por doni aliron al ĉi tiu servilo table: expires_at: Eksvalidiĝas je uses: Uzoj @@ -950,19 +952,13 @@ eo: only_redirect_html: Alie, vi povas nur aldoni alidirekton en via profilo. other_data: Neniu alia datumo estos movita aŭtomate moderation: - title: Kontrolado + title: Moderigado + navigation: + toggle_menu: Baskuli menuon notification_mailer: - digest: - action: Vidi ĉiujn sciigojn - body: Jen eta resumo de la mesaĝoj, kiujn vi mistrafis ekde via lasta vizito en %{since} - mention: "%{name} menciis vin en:" - new_followers_summary: - one: Ankaŭ, vi ekhavis novan sekvanton en via foresto! Jej! - other: Ankaŭ, vi ekhavis %{count} novajn sekvantojn en via foresto! Mirinde! - subject: - one: "1 nova sciigo ekde via lasta vizito 🐘" - other: "%{count} novaj sciigoj ekde via lasta vizito 🐘" - title: En via foresto… + admin: + sign_up: + subject: "%{name} registriĝis" favourite: body: "%{name} stelumis vian mesaĝon:" subject: "%{name} stelumis vian mesaĝon" @@ -982,9 +978,9 @@ eo: subject: "%{name} menciis vin" title: Nova mencio reblog: - body: "%{name} diskonigis vian mesaĝon:" - subject: "%{name} diskonigis vian mesaĝon" - title: Nova diskonigo + body: 'Via mesaĝo estas suprenigita de %{name}:' + subject: "%{name} suprenigis vian mesaĝon" + title: Nova suprenigo status: subject: "%{name} ĵus afiŝita" update: @@ -1005,16 +1001,16 @@ eo: trillion: Dn otp_authentication: code_hint: Enmetu la kodon kreitan de via aŭtentiga aplikaĵo por konfirmi - enable: Ebligi + enable: Enŝalti instructions_html: "Skanu ĉi tiun QR-kodon per Google Authenticator aŭ per simila aplikaĵo en via poŝtelefono. De tiam, la aplikaĵo kreos nombrojn, kiujn vi devos enmeti." manual_instructions: 'Se vi ne povas skani la QR-kodon kaj bezonas enmeti ĝin mane, jen la tut-teksta sekreto:' setup: Agordi wrong_code: La enmetita kodo estis nevalida! Ĉu la servila tempo kaj la aparata tempo ĝustas? pagination: newer: Pli nova - next: Sekva + next: Antaŭen older: Malpli nova - prev: Antaŭa + prev: Malantaŭen truncate: "…" polls: errors: @@ -1029,7 +1025,7 @@ eo: too_many_options: ne povas enhavi pli da %{max} proponoj preferences: other: Aliaj aferoj - posting_defaults: Afiŝadoj defaŭltoj + posting_defaults: Implicitaj agordoj de afiŝado public_timelines: Publikaj templinioj reactions: errors: @@ -1053,22 +1049,11 @@ eo: remove_selected_follows: Ne plu sekvi elektitajn uzantojn status: Statuso de la konto remote_follow: - acct: Enmetu vian uzantnomo@domajno de kie vi volas agi missing_resource: La bezonata URL de plusendado por via konto ne estis trovita - no_account_html: Ĉu vi ne havas konton? Vi povas registriĝi tie - proceed: Daŭrigi por eksekvi - prompt: 'Vi eksekvos:' - reason_html: "Kial necesas ĉi tiu paŝo?%{instance} povus ne esti la servilo, kie vi registriĝis, do ni unue bezonas alidirekti vin al via hejma servilo." - remote_interaction: - favourite: - proceed: Konfirmi la stelumon - prompt: 'Vi volas stelumi ĉi tiun mesaĝon:' - reblog: - proceed: Konfirmi la diskonigon - prompt: 'Vi volas diskonigi ĉi tiun mesaĝon:' - reply: - proceed: Konfirmi la respondon - prompt: 'Vi volas respondi al ĉi tiu mesaĝo:' + rss: + content_warning: 'Averto pri enhavo:' + descriptions: + tag: 'Publikaj afiŝoj pri #%{hashtag}' scheduled_statuses: over_daily_limit: Vi transpasis la limigon al %{limit} samtage planitaj mesaĝoj over_total_limit: Vi transpasis la limigon al %{limit} planitaj mesaĝoj @@ -1092,7 +1077,7 @@ eo: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Nuna seanco description: "%{browser} en %{platform}" @@ -1107,7 +1092,7 @@ eo: ios: iOS linux: Linux mac: Mac - other: nekonata platformo + other: nekonata substrato windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1127,7 +1112,7 @@ eo: export: Eksporti datumojn featured_tags: Elstarigitaj kradvortoj import: Importi - import_and_export: Alporto kaj elporto + import_and_export: Enporti kaj elporti migrate: Konta migrado notifications: Sciigoj preferences: Preferoj @@ -1147,17 +1132,19 @@ eo: video: one: "%{count} video" other: "%{count} videoj" - boosted_from_html: Diskonigita de %{acct_link} - content_warning: 'Enhava averto: %{warning}' + boosted_from_html: Suprenigita de %{acct_link} + content_warning: 'Averto de la enhavo: %{warning}' + default_language: Same kiel lingvo de la fasado disallowed_hashtags: one: 'enhavas malpermesitan kradvorton: %{tags}' other: 'enhavis malpermesitan kradvorton: %{tags}' + edited_at_html: Redaktis je %{date} open_in_web: Malfermi retumile over_character_limit: limo de %{max} signoj transpasita pin_errors: limit: Vi jam atingis la maksimuman nombron de alpinglitaj mesaĝoj ownership: Mesaĝo de iu alia ne povas esti alpinglita - reblog: Diskonigo ne povas esti alpinglita + reblog: Suprenigo ne povas esti alpinglita poll: total_people: one: "%{count} persono" @@ -1166,11 +1153,11 @@ eo: one: "%{count} voĉdono" other: "%{count} voĉdonoj" vote: Voĉdoni - show_more: Malfoldi + show_more: Montri pli show_newer: Montri pli novajn show_older: Montri pli malnovajn - show_thread: Montri la fadenon - sign_in_to_participate: Ensaluti por partopreni en la konversacio + show_thread: Montri la mesaĝaron + sign_in_to_participate: Ensalutu por partopreni la konversacion title: "%{name}: “%{quote}”" visibilities: direct: Rekta @@ -1178,13 +1165,18 @@ eo: private_long: Montri nur al sekvantoj public: Publika public_long: Ĉiuj povas vidi - unlisted: Nelistigita + unlisted: Ne enlistigita unlisted_long: Ĉiuj povas vidi, sed nelistigita en publikaj templinioj statuses_cleanup: enabled: Aŭtomate forigi malnovajn postojn exceptions: Esceptoj - ignore_favs: Ignori ŝatatajn - ignore_reblogs: Ignori akcelojn + ignore_favs: Ignori la preferaĵojn + ignore_reblogs: Ignori la suprenigojn + keep_direct: Konservi rektajn mesaĝojn + keep_direct_hint: Ne forigos viajn rektajn mesagôjn + keep_media: Konservi la mesaĝojn kun aŭdovidaj aldonaĵoj + keep_media_hint: Ne forviŝi la mesaĝojn kiuj enhavas aŭdovidajn aldonaĵojn + keep_self_fav_hint: Ne forviŝi viajn proprajn afiŝojn, se vi aldonis ilin al viaj preferaĵoj min_age: '1209600': 2 semajnoj '15778476': 6 monatoj @@ -1196,25 +1188,23 @@ eo: '7889238': 3 monatoj stream_entries: pinned: Alpinglita - reblogged: diskonigita + reblogged: suprenigita sensitive_content: Tikla enhavo tags: does_not_match_previous_name: ne kongruas kun la antaŭa nomo - terms: - title: Uzkondiĉoj kaj privateca politiko de %{instance} themes: contrast: Mastodon (Forta kontrasto) default: Mastodon (Malluma) mastodon-light: Mastodon (Luma) time: formats: - default: "%Y-%m-%d %H:%M" + default: "%Y.%b.%d, %H:%M" month: "%b %Y" time: "%H:%M" two_factor_authentication: add: Aldoni - disable: Malebligi - disabled_success: Dufaktora aŭtentigo sukcese malebligita + disable: Malaktivigi 2FA-n + disabled_success: Du-faktora aŭtentigo sukcese malaktivigita edit: Redakti enabled: Dufaktora aŭtentigo ebligita enabled_success: Dufaktora aŭtentigo sukcese ebligita @@ -1226,10 +1216,18 @@ eo: recovery_instructions_html: Se vi perdas aliron al via telefono, vi povas uzi unu el la subaj realiraj kodoj por rehavi aliron al via konto. Konservu realirajn kodojn sekure. Ekzemple, vi povas printi ilin kaj konservi ilin kun aliaj gravaj dokumentoj. webauthn: Sekurecaj ŝlosiloj user_mailer: + appeal_approved: + action: Iri al via konto + title: Apelacio estis aprobita + appeal_rejected: + subject: Via apelacio de %{date} estis malaprobita + title: Apelacio estis malaprobita backup_ready: explanation: Vi petis kompletan arkivon de via Mastodon-konto. Ĝi nun pretas por elŝutado! subject: Via arkivo estas preta por elŝutado title: Arkiva elŝuto + suspicious_sign_in: + change_password: ŝanĝi vian pasvorton warning: categories: spam: Spamo @@ -1238,28 +1236,20 @@ eo: disable: Via konto %{acct} estas frostigita none: Averto por %{acct} silence: Via konto %{acct} estas limigita - suspend: Via konto %{acct} estas haltigita + suspend: Via konto %{acct} estas suspendita title: disable: Konto frostigita none: Averto silence: Konto limigita - suspend: Konto haltigita + suspend: Konto suspendita welcome: edit_profile_action: Agordi profilon - edit_profile_step: Vi povas proprigi vian profilon per alŝuto de profilbildo, fonbildo, ŝanĝo de via afiŝita nomo kaj pli. Se vi ŝatus kontroli novajn sekvantojn antaŭ ol ili rajtas sekvi vin, vi povas ŝlosi vian konton. explanation: Jen kelkaj konsiloj por helpi vin komenci final_action: Ekmesaĝi - final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka templinio kaj en la kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions.' + final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka templinio aŭ per kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions / #konigo.' full_handle: Via kompleta uzantnomo full_handle_hint: Jen kion vi dirus al viaj amikoj, por ke ili mesaĝu aŭ sekvu vin de alia servilo. - review_preferences_action: Ŝanĝi preferojn - review_preferences_step: Estu certa ke vi agordis viajn preferojn, kiel kiujn retmesaĝojn vi ŝatus ricevi, aŭ kiun dekomencan privatecan nivelon vi ŝatus ke viaj mesaĝoj havu. Se tio ne ĝenas vin, vi povas ebligi aŭtomatan ekigon de GIF-oj. subject: Bonvenon en Mastodon - tip_federated_timeline: La fratara templinio estas antaŭvido de la reto de Mastodon. Sed ĝi enhavas nur homojn, kiuj estas sekvataj de aliaj homoj de via nodo, do ĝi ne estas kompleta. - tip_following: Vi dekomence sekvas la administrantojn de via servilo. Por trovi pli da interesaj homoj, rigardu la lokan kaj frataran templiniojn. - tip_local_timeline: La loka templinio estas antaŭvido de la homoj en %{instance}. Ĉi tiuj estas viaj apudaj najbaroj! - tip_mobile_webapp: Se via telefona retumilo proponas al vi aldoni Mastodon al via hejma ekrano, vi povas ricevi puŝsciigojn. Tio multmaniere funkcias kiel operaciuma aplikaĵo! - tips: Konsiloj title: Bonvenon, %{name}! users: follow_limit_reached: Vi ne povas sekvi pli ol %{limit} homo(j) diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index beefc4193df5b5..e0def87cad0f4b 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1,94 +1,27 @@ --- es-AR: about: - about_hashtag_html: Estos son mensajes públicos etiquetados con #%{hashtag}. Si tenés una cuenta en cualquier parte del fediverso, podés interactuar con ellos. about_mastodon_html: 'La red social del futuro: ¡sin publicidad, sin vigilancia corporativa, con diseño ético y descentralización! ¡Con Mastodon vos sos el dueño de tus datos!' - about_this: Acerca de Mastodon - active_count_after: activo - active_footnote: Usuarios activos mensualmente (MAU) - administered_by: 'Administrado por:' - api: API - apps: Aplicaciones móviles - apps_platforms: Usá Mastodon desde iOS, Android y otras plataformas - browse_directory: Explorá el directorio de perfiles y filtrá por intereses - browse_local_posts: Explorá un flujo en tiempo real de mensajes públicos en este servidor - browse_public_posts: Explorá un flujo en tiempo real de mensajes públicos en Mastodon - contact: Contacto contact_missing: No establecido contact_unavailable: No disponible - continue_to_web: Continuar con la aplicación web - discover_users: Descubrí usuarios - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} vas a poder seguir a cuentas de cualquier servidor de Mastodon y más allá. - get_apps: Probá una aplicación móvil hosted_on: Mastodon alojado en %{domain} - instance_actor_flash: | - Esta cuenta es un actor virtual usado para representar al propio servidor y no a ningún usuario individual. - Se usa para fines federativos y no debe ser bloqueado a menos que quieras bloquear toda la instancia, en cuyo caso deberías usar un bloqueo de dominio. - learn_more: Aprendé más - logged_in_as_html: Actualmente iniciaste sesión como %{username}. - logout_before_registering: Ya iniciaste sesión. - privacy_policy: Política de privacidad - rules: Reglas del servidor - rules_html: 'Abajo hay un resumen de las reglas que tenés que seguir si querés tener una cuenta en este servidor de Mastodon:' - see_whats_happening: Esto es lo que está pasando ahora - server_stats: 'Estadísticas del servidor:' - source_code: Código fuente - status_count_after: - one: mensaje - other: mensajes - status_count_before: Que enviaron - tagline: Seguí a tus amigos y descubrí nueva gente - terms: Términos del servicio - unavailable_content: Servidores moderados - unavailable_content_description: - domain: Servidor - reason: Motivo - rejecting_media: 'Los archivos de medios de este servidor no van a ser procesados y no se mostrarán miniaturas, lo que requiere un clic manual hacia el archivo original:' - rejecting_media_title: Medios filtrados - silenced: 'Los mensajes de estos servidores se ocultarán en las líneas temporales y conversaciones públicas, y no se generarán notificaciones de las interacciones de sus usuarios, a menos que los estés siguiendo:' - silenced_title: Servidores limitados - suspended: 'No se procesarán, almacenarán o intercambiarán datos de estos servidores, haciendo imposible cualquier interacción o comunicación con los usuarios de estos servidores:' - suspended_title: Servidores suspendidos - unavailable_content_html: Mastodon generalmente te permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se hicieron en este servidor en particular. - user_count_after: - one: usuario - other: usuarios - user_count_before: Hogar de - what_is_mastodon: "¿Qué es Mastodon?" + title: Información accounts: - choices_html: 'Recomendados de %{name}:' - endorsements_hint: Podés recomendar, desde la interface web, a cuentas que seguís, y van a aparecer acá. - featured_tags_hint: Podés destacar etiquetas específicas que se mostrarán acá. follow: Seguir followers: one: Seguidor other: Seguidores following: Siguiendo instance_actor_flash: Esta cuenta es un actor virtual usado para representar al servidor en sí mismo y no a ningún usuario individual. Se usa para propósitos de la federación y no debe ser suspendido. - joined: En este servidor desde %{date} last_active: última actividad link_verified_on: La propiedad de este enlace fue verificada el %{date} - media: Medios - moved_html: "%{name} se mudó a %{new_profile_link}:" - network_hidden: Esta información no está disponible nothing_here: "¡No hay nada acá!" - people_followed_by: "%{name} sigue a estas personas" - people_who_follow: Estas personas siguen a %{name} pin_errors: following: Ya tenés que estar siguiendo a la cuenta que querés recomendar posts: one: Mensaje other: Mensajes posts_tab_heading: Mensajes - posts_with_replies: Mensajes y respuestas - roles: - admin: Administrador - bot: Bot - group: Grupo - moderator: Moderador - unavailable: Perfil no disponible - unfollow: Dejar de seguir admin: account_actions: action: Ejecutar acción @@ -105,12 +38,17 @@ es-AR: avatar: Avatar by_domain: Dominio change_email: - changed_msg: "¡Correo electrónico de cuenta cambiado exitosamente!" + changed_msg: "¡Correo electrónico cambiado exitosamente!" current_email: Correo electrónico actual label: Cambiar correo electrónico new_email: Nuevo correo electrónico submit: Cambiar correo electrónico title: Cambiar correo electrónico para %{username} + change_role: + changed_msg: "¡Rol cambiado exitosamente!" + label: Cambiar rol + no_role: Sin rol + title: Cambiar rol para %{username} confirm: Confirmar confirmed: Confirmado confirming: Confirmación @@ -154,6 +92,7 @@ es-AR: active: Activas all: Todas pending: Pendientes + silenced: Limitada suspended: Suspendidas title: Moderación moderation_notes: Notas de moderación @@ -161,6 +100,7 @@ es-AR: most_recent_ip: Dirección IP más reciente no_account_selected: No se cambió ninguna cuenta ya que ninguna fue seleccionada no_limits_imposed: Sin límites impuestos + no_role_assigned: Sin rol asignado not_subscribed: No suscripto pending: Revisión pendiente perform_full_suspension: Suspender @@ -187,12 +127,7 @@ es-AR: reset: Restablecer reset_password: Cambiar contraseña resubscribe: Resuscribir - role: Permisos - roles: - admin: Administrador - moderator: Moderador - staff: Administración - user: Usuario + role: Rol search: Buscar search_same_email_domain: Otros usuarios con el mismo dominio de correo electrónico search_same_ip: Otros usuarios con la misma dirección IP @@ -235,17 +170,21 @@ es-AR: approve_user: Aprobar usuario assigned_to_self_report: Asignar denuncia change_email_user: Cambiar correo electrónico del usuario + change_role_user: Cambiar rol del usuario confirm_user: Confirmar usuario create_account_warning: Crear advertencia create_announcement: Crear anuncio + create_canonical_email_block: Crear bloqueo de correo electrónico create_custom_emoji: Crear emoji personalizado create_domain_allow: Crear permiso de dominio create_domain_block: Crear bloqueo de dominio create_email_domain_block: Crear bloqueo de dominio de correo electrónico create_ip_block: Crear regla de dirección IP create_unavailable_domain: Crear dominio no disponible + create_user_role: Crear rol demote_user: Descender usuario destroy_announcement: Eliminar anuncio + destroy_canonical_email_block: Eliminar bloqueo de correo electrónico destroy_custom_emoji: Eliminar emoji personalizado destroy_domain_allow: Eliminar permiso de dominio destroy_domain_block: Eliminar bloqueo de dominio @@ -254,6 +193,7 @@ es-AR: destroy_ip_block: Eliminar regla de dirección IP destroy_status: Eliminar mensaje destroy_unavailable_domain: Eliminar dominio no disponible + destroy_user_role: Destruir rol disable_2fa_user: Deshabilitar 2FA disable_custom_emoji: Deshabilitar emoji personalizado disable_sign_in_token_auth_user: Deshabilitar autenticación de token por correo electrónico para el usuario @@ -267,6 +207,7 @@ es-AR: reject_user: Rechazar usuario remove_avatar_user: Quitar avatar reopen_report: Reabrir denuncia + resend_user: Reenviar correo electrónico de confirmación reset_password_user: Cambiar contraseña resolve_report: Resolver denuncia sensitive_account: Forzar cuenta como sensible @@ -280,24 +221,30 @@ es-AR: update_announcement: Actualizar anuncio update_custom_emoji: Actualizar emoji personalizado update_domain_block: Actualizar bloque de dominio + update_ip_block: Actualizar regla de dirección IP update_status: Actualizar mensaje + update_user_role: Actualizar rol actions: approve_appeal_html: "%{name} aprobó la solicitud de moderación de %{target}" approve_user_html: "%{name} aprobó el registro de %{target}" assigned_to_self_report_html: "%{name} se asignó la denuncia %{target} a sí" change_email_user_html: "%{name} cambió la dirección de correo electrónico del usuario %{target}" + change_role_user_html: "%{name} cambió el rol de %{target}" confirm_user_html: "%{name} confirmó la dirección de correo del usuario %{target}" create_account_warning_html: "%{name} envió una advertencia a %{target}" create_announcement_html: "%{name} creó el nuevo anuncio %{target}" + create_canonical_email_block_html: "%{name} bloqueó el correo electrónico con el hash %{target}" create_custom_emoji_html: "%{name} subió nuevo emoji %{target}" create_domain_allow_html: "%{name} permitió la federación con el dominio %{target}" create_domain_block_html: "%{name} bloqueó el dominio %{target}" create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}" create_ip_block_html: "%{name} creó la regla para la dirección IP %{target}" create_unavailable_domain_html: "%{name} detuvo la entrega al dominio %{target}" + create_user_role_html: "%{name} creó el rol %{target}" demote_user_html: "%{name} bajó de nivel al usuario %{target}" destroy_announcement_html: "%{name} eliminó el anuncio %{target}" - destroy_custom_emoji_html: "%{name} destruyó el emoji %{target}" + destroy_canonical_email_block_html: "%{name} desbloqueó el correo electrónico con el hash %{target}" + destroy_custom_emoji_html: "%{name} eliminó el emoji %{target}" destroy_domain_allow_html: "%{name} no permitió la federación con el dominio %{target}" destroy_domain_block_html: "%{name} desbloqueó el dominio %{target}" destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}" @@ -305,6 +252,7 @@ es-AR: destroy_ip_block_html: "%{name} eliminó la regla para la dirección IP %{target}" destroy_status_html: "%{name} eliminó el mensaje de %{target}" destroy_unavailable_domain_html: "%{name} reanudó la entrega al dominio %{target}" + destroy_user_role_html: "%{name} eliminó el rol %{target}" disable_2fa_user_html: "%{name} deshabilitó el requerimiento de dos factores para el usuario %{target}" disable_custom_emoji_html: "%{name} deshabilitó el emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} deshabilitó la autenticación de token por correo electrónico para %{target}" @@ -318,6 +266,7 @@ es-AR: reject_user_html: "%{name} rechazó el registro de %{target}" remove_avatar_user_html: "%{name} quitó el avatar de %{target}" reopen_report_html: "%{name} reabrió la denuncia %{target}" + resend_user_html: "%{name} reenvió el correo electrónico de confirmación para %{target}" reset_password_user_html: "%{name} cambió la contraseña del usuario %{target}" resolve_report_html: "%{name} resolvió la denuncia %{target}" sensitive_account_html: "%{name} marcó los medios de %{target} como sensibles" @@ -331,8 +280,10 @@ es-AR: update_announcement_html: "%{name} actualizó el anuncio %{target}" update_custom_emoji_html: "%{name} actualizó el emoji %{target}" update_domain_block_html: "%{name} actualizó el bloqueo de dominio para %{target}" + update_ip_block_html: "%{name} cambió la regla para la dirección IP %{target}" update_status_html: "%{name} actualizó el mensaje de %{target}" - deleted_status: "[mensaje eliminado]" + update_user_role_html: "%{name} cambió el rol %{target}" + deleted_account: cuenta eliminada empty: No se encontraron registros. filter_by_action: Filtrar por acción filter_by_user: Filtrar por usuario @@ -376,6 +327,7 @@ es-AR: listed: Listados new: title: Agregar nuevo emoji personalizado + no_emoji_selected: No se cambió ningún emoji, ya que ninguno fue seleccionado not_permitted: No tenés permiso para realizar esta acción overwrite: Sobreescribir shortcode: Código corto @@ -428,6 +380,7 @@ es-AR: destroyed_msg: Se deshizo el bloqueo de dominio domain: Dominio edit: Editar bloqueo de dominio + existing_domain_block: Ya impusiste límites más estrictos a %{name}. existing_domain_block_html: Ya le aplicaste límites más estrictos a %{name}, por lo que primero necesitás desbloquearlo. new: create: Crear bloqueo @@ -475,7 +428,7 @@ es-AR: status: Estado suppress: Eliminar recomendación de cuentas para seguir suppressed: Eliminado - title: Recomendaciones de cuentas para seguir + title: Recom. de cuentas a seguir unsuppress: Restablecer recomendaciones de cuentas para seguir instances: availability: @@ -648,6 +601,67 @@ es-AR: unresolved: No resueltas updated_at: Actualizadas view_profile: Ver perfil + roles: + add_new: Agregar rol + assigned_users: + one: "%{count} usuario" + other: "%{count} usuarios" + categories: + administration: Administración + devops: Operadores de desarrollo + invites: Invitaciones + moderation: Moderación + special: Especial + delete: Eliminar + description_html: Con roles de usuario, podés personalizar las funciones y áreas de Mastodon a las que pueden acceder tus usuarios. + edit: Editar rol de «%{name}» + everyone: Permisos predeterminados + everyone_full_description_html: Este es el rol base que afecta a todos los usuarios, incluso aquellos sin un rol asignado. Todos los otros roles heredan permisos de él. + permissions_count: + one: "%{count} permiso" + other: "%{count} permisos" + privileges: + administrator: Administrador + administrator_description: Los usuarios con este permiso saltarán todos los permisos + delete_user_data: Eliminar datos del usuario + delete_user_data_description: Permite a los usuarios eliminar los datos de otros usuarios sin demora + invite_users: Invitar usuarios + invite_users_description: Permite a los usuarios invitar a nuevas personas al servidor + manage_announcements: Administrar anuncios + manage_announcements_description: Permite a los usuarios administrar anuncios en el servidor + manage_appeals: Administrar apelaciones + manage_appeals_description: Permite a los usuarios revisar apelaciones contra acciones de moderación + manage_blocks: Administrar bloqueos + manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP + manage_custom_emojis: Administrar emojis personalizados + manage_custom_emojis_description: Permite a los usuarios administrar emojis personalizados en el servidor + manage_federation: Administrar Federación + manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios y controlar las entregas + manage_invites: Administrar invitaciones + manage_invites_description: Permite a los usuarios navegar y desactivar los enlaces de invitación + manage_reports: Administrar denuncias + manage_reports_description: Permite a los usuarios revisar denuncias y realizar acciones de moderación contra ellas + manage_roles: Administrar roles + manage_roles_description: Permite a los usuarios administrar y asignar roles por debajo de los suyos + manage_rules: Administrar reglas + manage_rules_description: Permite a los usuarios cambiar las reglas del servidor + manage_settings: Administrar configuración + manage_settings_description: Permite a los usuarios cambiar la configuración del sitio + manage_taxonomies: Administrar taxonomías + manage_taxonomies_description: Permite a los usuarios revisar el contenido de tendencia y actualizar la configuración de las etiquetas + manage_user_access: Administrar acceso de usuario + manage_user_access_description: Permite a los usuarios deshabilitar la autenticación de dos factores de otros usuarios, cambiar su dirección de correo electrónico y restablecer su contraseña + manage_users: Administrar usuarios + manage_users_description: Permite a los usuarios ver los detalles de otros usuarios y realizar acciones de moderación contra ellos + manage_webhooks: Administrar Webhooks + manage_webhooks_description: Permite a los usuarios configurar webhooks para eventos administrativos + view_audit_log: Ver auditoría + view_audit_log_description: Permite a los usuarios ver un historial de acciones administrativas en el servidor + view_dashboard: Ver panel + view_dashboard_description: Permite a los usuarios acceder al panel de control y varias métricas + view_devops: Operadores de desarrollo + view_devops_description: Permite a los usuarios acceder a los paneles de Sidekiq y pgHero + title: Roles rules: add_new: Agregar regla delete: Eliminar @@ -656,108 +670,67 @@ es-AR: empty: Aún no se han definido las reglas del servidor. title: Reglas del servidor settings: - activity_api_enabled: - desc_html: Conteos de mensajes publicados localmente, usuarios activos y nuevos registros en tandas semanales - title: Publicar estadísticas agregadas sobre la actividad del usuario en la API - bootstrap_timeline_accounts: - desc_html: Separar múltiples nombres de usuario con coma. Sólo funcionarán las cuentas locales y desbloqueadas. Predeterminadamente, cuando está vacío se trata de todos los administradores locales. - title: Recomendar estas cuentas a usuarios nuevos - contact_information: - email: Correo electrónico de negocios - username: Nombre de usuario de contacto - custom_css: - desc_html: Modificá la apariencia con CSS cargado en cada página - title: CSS personalizado - default_noindex: - desc_html: Afecta a todos los usuarios que no cambiaron esta configuración por sí mismos - title: Quitar predeterminadamente a los usuarios de la indexación de los motores de búsqueda + about: + manage_rules: Administrar reglas del servidor + preamble: Proveé información en profundidad sobre cómo el servidor es operado, moderado y financiado. + rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran. + title: Información + appearance: + preamble: Personalizá la interface web de Mastodon. + title: Apariencia + branding: + preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interface web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa. + title: Marca + content_retention: + preamble: Controlá cómo el contenido generado por el usuario se almacena en Mastodon. + title: Retención de contenido + discovery: + follow_recommendations: Recom. de cuentas a seguir + preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controlá cómo funcionan varias opciones de descubrimiento en tu servidor. + profile_directory: Directorio de perfiles + public_timelines: Líneas temporales públicas + title: Descubrí + trends: Tendencias domain_blocks: all: A todos disabled: A nadie - title: Mostrar dominios bloqueados users: A usuarios locales con sesiones abiertas - domain_blocks_rationale: - title: Mostrar razonamiento - hero: - desc_html: Mostrado en la página principal. Se recomienda un tamaño mínimo de 600x100 píxeles. Predeterminadamente se establece a la miniatura del servidor - title: Imagen de portada - mascot: - desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205 píxeles. Cuando no se especifica, se muestra la mascota predeterminada - title: Imagen de la mascota - peers_api_enabled: - desc_html: Nombres de dominio que este servidor encontró en el fediverso - title: Publicar lista de servidores descubiertos en la API - preview_sensitive_media: - desc_html: Las previsualizaciones de enlaces en otros sitios web mostrarán una miniatura incluso si el medio está marcado como contenido sensible - title: Mostrar medios sensibles en previsualizaciones de OpenGraph - profile_directory: - desc_html: Permitir que los usuarios puedan ser descubiertos - title: Habilitar directorio de perfiles registrations: - closed_message: - desc_html: Mostrado en la página principal cuando los registros de nuevas cuentas están cerrados. Podés usar etiquetas HTML - title: Mensaje de registro de nuevas cuentas cerrado - deletion: - desc_html: Permitir que cualquiera elimine su cuenta - title: Abrir eliminación de cuenta - min_invite_role: - disabled: Nadie - title: Permitir invitaciones de - require_invite_text: - desc_html: Cuando los registros requieran aprobación manual, hacé que la solicitud de invitación "¿Por qué querés unirte?" sea obligatoria, en vez de opcional - title: Requerir que los nuevos usuarios llenen un texto de solicitud de invitación + preamble: Controlá quién puede crear una cuenta en tu servidor. + title: Registros registrations_mode: modes: approved: Se requiere aprobación para registrarse none: Nadie puede registrarse open: Cualquiera puede registrarse - title: Modo de registros - show_known_fediverse_at_about_page: - desc_html: Cuando está deshabilitado, restringe la línea temporal pública enlazada desde la página de inicio para mostrar sólo contenido local - title: Incluir contenido federado en la página de línea temporal pública no autenticada - show_staff_badge: - desc_html: Mostrar una insignia de administración en la página de un usuario - title: Mostrar insignia de administración - site_description: - desc_html: Párrafo introductorio en la API. Describe qué hace especial a este servidor de Mastodon y todo lo demás que sea importante. Podés usar etiquetas HTML, en particular <a> y <em>. - title: Descripción del servidor - site_description_extended: - desc_html: Un buen lugar para tu código de conducta, reglas, directrices y otras cosas que definen tu servidor. Podés usar etiquets HTML - title: Información extendida personalizada - site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe qué es Mastodon y qué hace especial a este servidor en un solo párrafo. - title: Descripción corta del servidor - site_terms: - desc_html: Podés escribir tus propias políticas de privacidad, términos del servicio u otras cuestiones legales. Podés usar etiquetas HTML - title: Términos del servicio personalizados - site_title: Nombre del servidor - thumbnail: - desc_html: Usado para previsualizaciones vía OpenGraph y APIs. Se recomienda 1200x630 píxeles - title: Miniatura del servidor - timeline_preview: - desc_html: Mostrar enlace a la línea temporal pública en la página de inicio y permitir el acceso a la API a la línea temporal pública sin autenticación - title: Permitir acceso no autorizado a la línea temporal pública - title: Configuración del sitio - trendable_by_default: - desc_html: Afecta a etiquetas que no fueron rechazadas previamente - title: Permitir que las etiquetas sean tendencia sin revisión previa - trends: - desc_html: Mostrar públicamente etiquetas previamente revisadas que son tendencia actualmente - title: Tendencias + title: Configuraciones del servidor site_uploads: delete: Eliminar archivo subido destroyed_msg: "¡Subida al sitio eliminada exitosamente!" statuses: + account: Autor + application: Aplicación back_to_account: Volver a la página de la cuenta back_to_report: Volver a la página de la denuncia batch: remove_from_report: Quitar de la denuncia report: Denunciar deleted: Eliminado + favourites: Favoritos + history: Historial de versiones + in_reply_to: Respondiendo a + language: Idioma media: title: Medios + metadata: Metadatos no_status_selected: No se cambió ningún mensaje, ya que ninguno fue seleccionado + open: Abrir mensaje + original_status: Mensaje original + reblogs: Adhesiones + status_changed: Mensaje cambiado title: Mensajes de la cuenta + trending: En tendencia + visibility: Visibilidad with_media: Con medios strikes: actions: @@ -797,6 +770,9 @@ es-AR: description_html: Estos son enlaces que actualmente están siendo muy compartidos por cuentas desde las que tu servidor ve los mensajes. Esto puede ayudar a tus usuarios a averiguar qué está pasando en el mundo. No hay enlaces que se muestren públicamente hasta que autoricés al publicador. También podés permitir o rechazar enlaces individuales. disallow: Rechazar enlace disallow_provider: Rechazar medio + no_link_selected: No se cambió ningún enlace, ya que ninguno fue seleccionado + publishers: + no_publisher_selected: No se cambió ningún medio, ya que ninguno fue seleccionado shared_by_over_week: one: Compartido por una persona durante la última semana other: Compartido por %{count} personas durante la última semana @@ -816,6 +792,7 @@ es-AR: description_html: Estos son mensajes que tu servidor detecta que están siendo compartidos y marcados como favoritos muchas veces en este momento. Esto puede ayudar a tus usuarios nuevos y retornantes a encontrar más cuentas para seguir. No hay mensajes que se muestren públicamente hasta que aprobés al autor, y el autor permita que su cuenta sea sugerida a otros. También podés permitir o rechazar mensajes individuales. disallow: Rechazar mensaje disallow_account: Rechazar autor + no_status_selected: No se cambió ningún mensaje en tendencia, ya que ninguno fue seleccionado not_discoverable: El autor optó ser detectable shared_by: one: Compartido o marcado como favorito una vez @@ -831,6 +808,7 @@ es-AR: tag_uses_measure: usos totales description_html: Estas son etiquetas que están apareciendo en muchos mensajes que tu servidor ve. Esto puede ayudar a tus usuarios a averiguar de qué habla la gente en estos momentos. No hay etiquetas que se muestren públicamente hasta que las aprobés. listable: Pueden ser recomendadas + no_tag_selected: No se cambió ninguna etiqueta, ya que ninguna fue seleccionada not_listable: No serán recomendadas not_trendable: No aparecerán en tendencias not_usable: No podrán ser usadas @@ -851,6 +829,26 @@ es-AR: edit_preset: Editar preajuste de advertencia empty: Aún no ha definido ningún preajuste de advertencia. title: Administrar preajustes de advertencia + webhooks: + add_new: Agregar punto final + delete: Eliminar + description_html: Un webhook habilita a Mastodon a enviar notificaciones en tiempo real sobre los eventos elegidos a tu propia aplicación, así la misma puede activar automáticamente las reacciones. + disable: Deshabilitar + disabled: Deshabilitada + edit: Editar punto final + empty: Todavía no tenés configurado ningún punto final de webhook. + enable: Habilitar + enabled: Activar + enabled_events: + one: 1 evento habilitado + other: "%{count} eventos habilitados" + events: Eventos + new: Nuevo webhook + rotate_secret: Rotar secreto + secret: Firma secreta + status: Estado + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +872,8 @@ es-AR: new_trends: body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:' new_trending_links: - no_approved_links: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado de #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.' title: Enlaces en tendencia new_trending_statuses: - no_approved_statuses: Actualmente no hay mensajes en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el mensaje de tendencia aprobado de #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.' title: Mensajes en tendencia new_trending_tags: no_approved_tags: Actualmente no hay etiquetas en tendencia aprobadas. @@ -915,16 +909,13 @@ es-AR: applications: created: Aplicación creada exitosamente destroyed: Aplicación eliminada exitosamente - invalid_url: La dirección web ofrecida no es válida regenerate_token: Regenerar clave de acceso token_regenerated: Clave de acceso regenerada exitosamente warning: Ojo con estos datos. ¡Nunca los compartas con nadie! your_token: Tu clave de acceso auth: - apply_for_account: Solicitar una invitación + apply_for_account: Entrar en la lista de espera change_password: Contraseña - checkbox_agreement_html: Acepto las reglas del servidor y los términos del servicio - checkbox_agreement_without_rules_html: Acepto los términos del servicio delete_account: Eliminar cuenta delete_account_html: Si querés eliminar tu cuenta, podés seguir por acá. Se te va a pedir una confirmación. description: @@ -943,6 +934,7 @@ es-AR: migrate_account: Mudarse a otra cuenta migrate_account_html: Si querés redireccionar esta cuenta a otra distinta, podés configurar eso acá. or_log_in_with: O iniciar sesión con + privacy_policy_agreement_html: Leí y acepto la política de privacidad providers: cas: CAS saml: SAML @@ -950,12 +942,18 @@ es-AR: registration_closed: "%{instance} no está aceptando nuevos miembros" resend_confirmation: Reenviar correo electrónico de confirmación reset_password: Cambiar contraseña + rules: + preamble: Estas reglas son establecidas y aplicadas por los moderadores de %{domain}. + title: Algunas reglas básicas. security: Seguridad set_new_password: Establecer nueva contraseña setup: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, podés cambiarla acá y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: Se envió el correo electrónico de confirmación a %{email}. Si esa dirección de correo electrónico no es correcta, podés cambiarla en la configuración de la cuenta. title: Configuración + sign_up: + preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra cuenta en la red, independientemente de en qué servidor esté alojada su cuenta. + title: Dejá que te preparemos en %{domain}. status: account_status: Estado de la cuenta confirming: Esperando confirmación de correo electrónico. @@ -964,7 +962,6 @@ es-AR: redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}. view_strikes: Ver incumplimientos pasados contra tu cuenta too_fast: Formulario enviado demasiado rápido, probá de nuevo. - trouble_logging_in: "¿Tenés problemas para iniciar sesión?" use_security_key: Usar la llave de seguridad authorize_follow: already_following: Ya estás siguiendo a esta cuenta @@ -1022,10 +1019,6 @@ es-AR: more_details_html: Para más detalles, leé la política de privacidad. username_available: Tu nombre de usuario volverá a estar disponible username_unavailable: Tu nombre de usuario no estará disponible - directories: - directory: Directorio de perfiles - explanation: Descubrí usuarios basados en sus intereses - explore_mastodon: Navegá %{title} disputes: strikes: action_taken: Acción tomada @@ -1104,29 +1097,60 @@ es-AR: public: Líneas temporales públicas thread: Conversaciones edit: + add_keyword: Agregar palabra clave + keywords: Palabras clave + statuses: Mensajes individuales + statuses_hint_html: Este filtro se aplica a la selección de mensajes individuales, independientemente de si coinciden con las palabras clave a continuación. Revisar o quitar mensajes del filtro. title: Editar filtro errors: + deprecated_api_multiple_keywords: Estos parámetros no se pueden cambiar de esta aplicación porque se aplican a más de una palabra clave de filtro. Usá una aplicación más reciente o la interface web. invalid_context: Se suministró un contexto no válido o vacío - invalid_irreversible: El filtrado irreversible sólo funciona con los contextos de "Principal" o de "Notificaciones" index: + contexts: Filtros en %{contexts} delete: Eliminar empty: No tenés filtros. + expires_in: Caduca en %{distance} + expires_on: Caduca en %{date} + keywords: + one: "%{count} palabra clave" + other: "%{count} palabras clave" + statuses: + one: "%{count} mensaje" + other: "%{count} mensajes" + statuses_long: + one: "%{count} mensaje individual oculto" + other: "%{count} mensajes individuales ocultos" title: Filtros new: + save: Guardar nuevo filtro title: Agregar nuevo filtro + statuses: + back_to_filter: Volver al filtro + batch: + remove: Quitar del filtro + index: + hint: Este filtro se aplica a la selección de mensajes individuales, independientemente de otros criterios. Podés agregar más mensajes a este filtro desde la interface web. + title: Mensajes filtrados footer: - developers: Desarrolladores - more: Más… - resources: Recursos trending_now: Tendencia ahora generic: all: Todas + all_items_on_page_selected_html: + one: "%{count} elemento en esta página está seleccionado." + other: Todos los %{count} elementos en esta página están seleccionados. + all_matching_items_selected_html: + one: "%{count} elemento que coincide con tu búsqueda está seleccionado." + other: Todos los %{count} elementos que coinciden con tu búsqueda están seleccionados. changes_saved_msg: "¡Cambios guardados exitosamente!" copy: Copiar delete: Eliminar + deselect: Deseleccionar todo none: "[Ninguna]" order_by: Ordenar por save_changes: Guardar cambios + select_all_matching_items: + one: Seleccionar %{count} elemento que coincide con tu búsqueda. + other: Seleccionar todos los %{count} elementos que coinciden con tu búsqueda. today: hoy validation_errors: one: "¡Falta algo! Por favor, revisá el error abajo" @@ -1150,7 +1174,6 @@ es-AR: following: Lista de seguidos muting: Lista de silenciados upload: Subir - in_memoriam_html: Cuenta conmemorativa. invites: delete: Desactivar expired: Vencidas @@ -1229,21 +1252,14 @@ es-AR: carry_blocks_over_text: Este usuario se mudó desde %{acct}, que habías bloqueado. carry_mutes_over_text: Este usuario se mudó desde %{acct}, que habías silenciado. copy_account_note_text: 'Este usuario se mudó desde %{acct}, acá están tus notas previas sobre él/ella:' + navigation: + toggle_menu: Cambiar menú notification_mailer: admin: + report: + subject: "%{name} envió una denuncia" sign_up: subject: Se registró %{name} - digest: - action: Ver todas las notificaciones - body: Acá tenés un resumen de los mensajes que te perdiste desde tu última visita, el %{since} - mention: "%{name} te mencionó en:" - new_followers_summary: - one: Además, ¡ganaste un nuevo seguidor mientras estabas ausente! ¡Esa! - other: Además, ¡ganaste %{count} nuevos seguidores mientras estabas ausente! ¡Esssa! - subject: - one: "1 nueva notificación desde tu última visita 🐘" - other: "%{count} nuevas notificaciones desde tu última visita 🐘" - title: En tu ausencia... favourite: body: 'Tu mensaje fue marcado como favorito por %{name}:' subject: "%{name} marcó tu mensaje como favorito" @@ -1315,6 +1331,8 @@ es-AR: other: Otras opciones posting_defaults: Configuración predeterminada de mensajes public_timelines: Líneas temporales públicas + privacy_policy: + title: Política de privacidad reactions: errors: limit_reached: Se alcanzó el límite de reacciones diferentes @@ -1337,22 +1355,7 @@ es-AR: remove_selected_follows: Dejar de seguir a los usuarios seleccionados status: Estado de la cuenta remote_follow: - acct: Ingresá tu usuario@dominio desde el que querés continuar missing_resource: No se pudo encontrar la dirección web de redireccionamiento requerida para tu cuenta - no_account_html: "¿No tenés cuenta? Podés registrarte acá" - proceed: Proceder para seguir - prompt: 'Vas a seguir a:' - reason_html: "¿Por qué es necesario este paso? %{instance} puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen." - remote_interaction: - favourite: - proceed: Proceder para marcar como favorito - prompt: 'Vas a marcar este mensaje como favorito:' - reblog: - proceed: Proceder para adherir - prompt: 'Vas a adherir a este mensaje:' - reply: - proceed: Proceder para responder - prompt: 'Vas a responder a este mensaje:' reports: errors: invalid_rules: no hace referencia a reglas válidas @@ -1394,7 +1397,7 @@ es-AR: adobe_air: Adobe Air android: Android blackberry: BlackBerry - chrome_os: Chrome OS + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: GNU/Linux @@ -1426,9 +1429,9 @@ es-AR: preferences: Configuración profile: Perfil relationships: Seguimientos - statuses_cleanup: Eliminación automática de mensajes + statuses_cleanup: Eliminación auto. de mensajes strikes: Moderación de incumplimientos - two_factor_authentication: Autenticación de dos factores + two_factor_authentication: Aut. de dos factores webauthn_authentication: Llaves de seguridad statuses: attached: @@ -1524,89 +1527,6 @@ es-AR: too_late: Es demasiado tarde para apelar este incumplimiento tags: does_not_match_previous_name: no coincide con el nombre anterior - terms: - body_html: | -

      Política de privacidad

      -

      ¿Qué información recolectamos?

      - -
        -
      • Información básica de la cuenta: Si te registrás en este servidor, se te va a pedir un nombre de usuario, una dirección de correo electrónico y una contraseña. También podés ingresar información adicional de perfil como un nombre para mostrar y una biografía, y subir un avatar y una imagen de cabecera. El nombre de usuario, nombre para mostrar, biografía, avatar e imagen de cabecera siempre son visibles públicamente.
      • -
      • Mensajes, seguimiento y otra información pública: La lista de cuentas a las que seguís es mostrada públicamente, al igual que la de tus seguidores. Cuando enviás un mensaje, se almacenan la fecha y hora, así como la aplicación desde la cual enviaste el mensaje. Los mensajes pueden contener archivos adjuntos de medios, como imágenes y videos. Los mensajes públicos y no listados están técnicamente disponibles para todos. Cuando destacás un mensaje en tu perfil, eso también se considera información disponible públicamente. Tus mensajes son entregados a tus seguidores; en algunos casos significa que son entregados a diferentes servidores y las copias son almacenadas allí. Cuando eliminás mensajes, esto también afecta a tus seguidores. La acción de adherir o marcar como favorito otro mensaje es siempre pública.
      • -
      • Mensajes directos y sólo para seguidores: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esos mensajes sólo a las cuentas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen tus seguidores. Podés cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración. Por favor, tené en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que los destinatarios pueden tomar capturas de pantalla, copiarlos o volver a compartirlos de alguna otra manera. No compartas ninguna información peligrosa en Mastodon.
      • -
      • Direcciones IP y otros metadatos: Cuando iniciás sesión, registramos la dirección IP desde dónde lo estás haciendo, así como el nombre de tu navegador web. Todos los inicios de sesiones están disponibles para tu revisión y revocación en la configuración. La última dirección IP usada se almacena hasta por 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
      • -
      - -
      - -

      ¿Para qué usamos tu información?

      - -

      Toda la información que recolectamos de vos puede ser usada de las siguientes maneras:

      - -
        -
      • Para proporcionar la funcionalidad principal de Mastodon. Sólo podés interactuar con el contenido de otras cuentas y publicar tu propio contenido cuando hayás iniciado sesión. Por ejemplo, podés seguir a otras cuentas para ver sus mensajes combinados en tu propia línea temporal personalizada.
      • -
      • Para ayudar a la moderación de la comunidad, por ejemplo, comparando tu dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
      • -
      • La dirección de correo electrónico que nos proporcionés podría usarse para enviarte información, notificaciones sobre otras cuentas que interactúen con tu contenido o para enviarte mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
      • -
      - -
      - -

      ¿Cómo protegemos tu información?

      - -

      Implementamos una variedad de medidas de seguridad para mantener la seguridad de tu información personal cuando ingresás, enviás o accedés a tu información personal. Entre otras cosas, la sesión de tu navegador web, así como el tráfico entre sus aplicaciones y la API, están protegidos con SSL; y tu contraseña está protegida mediante un algoritmo unidireccional fuerte. Podés habilitar la autenticación de dos factores para obtener un acceso más seguro a tu cuenta.

      - -
      - -

      ¿Cuál es nuestra política de retención de datos?

      - -

      Hacemos un esfuerzo de buena fe para:

      - -
        -
      • Conservar los registros del servidor que contengan la dirección IP de todas las solicitudes a este servidor, en la medida en que se mantengan dichos registros, por no más de 90 días.
      • -
      • Conservar las direcciones IP asociadas a los usuarios registrados, por no más de 12 meses.
      • -
      - -

      Podés solicitar y descargar un archivo historial de tu contenido, incluyendo tus mensajes, archivos adjuntos de medios, avatar e imagen de cabecera.

      - -

      Podés eliminar tu cuenta de forma irreversible en cualquier momento.

      - -
      - -

      ¿Usamos cookies?

      - -

      Sí. Las cookies son pequeños archivos que un sitio web o su proveedor de servicios transfiere a la unidad de almacenamiento de tu computadora a través de tu navegador web (si así lo permitís). Estas cookies permiten al sitio reconocer tu navegador web y, si tenés una cuenta registrada, asociarla con la misma.

      - -

      Usamos cookies para entender y guardar tu configuración para futuras visitas.

      - -
      - -

      ¿Revelamos alguna información a terceros?

      - -

      No vendemos, comercializamos ni transferimos de ninguna otra manera a terceros tu información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podríamos liberar tu información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio web, o proteger derechos, propiedad o seguridad, nuestros o de otros.

      - -

      Tu contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y tus mensajes sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.

      - -

      Cuando autorizás a una aplicación a usar tu cuenta, dependiendo del alcance de los permisos que aprobés, puede acceder a la información de tu perfil público, tu lista de seguimiento, tus seguidores, tus listas, todos tus mensajes y tus favoritos. Las aplicaciones nunca podrán acceder a tu dirección de correo electrónico o contraseña.

      - -
      - -

      Uso del sitio web por parte de niños

      - -

      Si este servidor está en la UE o en el EEE: Nuestro sitio web, productos y servicios están dirigidos a personas mayores de 16 años. Si tenés menos de 16 años, según los requisitos de la GDPR (Reglamento General de Protección de Datos) entonces, por favor, no usés este sitio web.

      - -

      Si este servidor está en los EE.UU.: Nuestro sitio web, productos y servicios están dirigidos a personas que tienen al menos 13 años de edad. Si tenés menos de 13 años, según los requisitos de COPPA (Acta de Protección de la Privacidad en Línea de Niños [en inglés]) entonces, por favor, no usés este sitio web.

      - -

      Los requisitos legales pueden ser diferentes si este servidor está en otra jurisdicción.

      - -
      - -

      Cambios a nuestra Política de privacidad

      - -

      Si decidimos cambiar nuestra política de privacidad, publicaremos dichos cambios en esta página.

      - -

      Este documento es CC-BY-SA. Fue actualizado por última vez el 7 de marzo de 2018.

      - -

      Adaptado originalmente desde la política de privacidad de Discourse.

      - title: Términos del servicio y Políticas de privacidad de %{instance} themes: contrast: Alto contraste default: Oscuro @@ -1685,20 +1605,13 @@ es-AR: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Podés personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre para mostrar y más cosas. Si querés revisar a tus nuevos seguidores antes de que se les permita seguirte, podés hacer tu cuenta privada. + edit_profile_step: Podés personalizar tu perfil subiendo un avatar (imagen de perfil), cambiando tu nombre a mostrar y más. Podés optar por revisar a los nuevos seguidores antes de que puedan seguirte. explanation: Aquí hay algunos consejos para empezar final_action: Empezá a enviar mensajes - final_step: ¡Empezá a enviar mensajes! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea temporal local, y con etiquetas. Capaz que quieras presentarte al mundo con la etiqueta "#presentación". + final_step: "¡Empezá a enviar mensajes! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea temporal local o al usar etiquetas. Capaz que quieras presentarte al mundo con la etiqueta «#presentación»." full_handle: Tu nombre de usuario completo full_handle_hint: Esto es lo que le dirás a tus contactos para que ellos puedan enviarte mensajes o seguirte desde otro servidor. - review_preferences_action: Cambiar configuración - review_preferences_step: Asegurate de establecer tu configuración, como qué tipo de correos electrónicos te gustaría recibir, o qué nivel de privacidad te gustaría que sea el predeterminado para tus mensajes. Si no sufrís de mareos, podrías elegir habilitar la reproducción automática de GIFs. subject: Bienvenido a Mastodon - tip_federated_timeline: La línea temporal federada es una línea contínua global de la red de Mastodon. Pero sólo incluye gente que tus vecinos están siguiendo, así que no es completa. - tip_following: Predeterminadamente seguís al / a los administrador/es de tu servidor. Para encontrar más gente interesante, revisá las lineas temporales local y federada. - tip_local_timeline: La línea temporal local es una línea contínua global de cuentas en %{instance}. ¡Estos son tus vecinos inmediatos! - tip_mobile_webapp: Si tu navegador web móvil te ofrece agregar Mastodon a tu página de inicio, podés recibir notificaciones push. ¡Actúa como una aplicación nativa de muchas maneras! - tips: Consejos title: "¡Bienvenido a bordo, %{name}!" users: follow_limit_reached: No podés seguir a más de %{limit} cuentas diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 5b1b04100b9f3c..ab0d9be1def920 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1,94 +1,27 @@ --- es-MX: about: - about_hashtag_html: Estos son toots públicos etiquetados con #%{hashtag}. Puedes interactuar con ellos si tienes una cuenta en cualquier parte del fediverso. about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!' - about_this: Información - active_count_after: activo - active_footnote: Usuarios Activos Mensuales (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicaciones móviles - apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas - browse_directory: Navega por el directorio de perfiles y filtra por intereses - browse_local_posts: Explora en vivo los posts públicos de este servidor - browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon - contact: Contacto contact_missing: No especificado contact_unavailable: No disponible - continue_to_web: Continuar a la aplicación web - discover_users: Descubrir usuarios - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá. - get_apps: Probar una aplicación móvil hosted_on: Mastodon hosteado en %{domain} - instance_actor_flash: | - Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual. - Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio. - learn_more: Aprende más - logged_in_as_html: Actualmente estás conectado como %{username}. - logout_before_registering: Actualmente ya has iniciado sesión. - privacy_policy: Política de privacidad - rules: Normas del servidor - rules_html: 'A continuación hay un resumen de las normas que debes seguir si quieres tener una cuenta en este servidor de Mastodon:' - see_whats_happening: Ver lo que está pasando - server_stats: 'Datos del servidor:' - source_code: Código fuente - status_count_after: - one: estado - other: estados - status_count_before: Qué han escrito - tagline: Seguir a amigos existentes y descubre nuevos - terms: Condiciones de servicio - unavailable_content: Contenido no disponible - unavailable_content_description: - domain: Servidor - reason: 'Motivo:' - rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor. - rejecting_media_title: Medios filtrados - silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor. - silenced_title: Servidores silenciados - suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos. - suspended_title: Servidores suspendidos - unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. - user_count_after: - one: usuario - other: usuarios - user_count_before: Tenemos - what_is_mastodon: "¿Qué es Mastodon?" + title: Acerca de accounts: - choices_html: 'Elecciones de %{name}:' - endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí. - featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí. follow: Seguir followers: one: Seguidor other: Seguidores following: Siguiendo instance_actor_flash: Esta cuenta es un actor virtual utilizado para representar al servidor en sí mismo y no a ningún usuario individual. Se utiliza para propósitos de la federación y no se debe suspender. - joined: Se unió el %{date} last_active: última conexión link_verified_on: La propiedad de este vínculo fue verificada el %{date} - media: Multimedia - moved_html: "%{name} se ha trasladado a %{new_profile_link}:" - network_hidden: Esta información no está disponible nothing_here: "¡No hay nada aquí!" - people_followed_by: Usuarios a quien %{name} sigue - people_who_follow: Usuarios que siguen a %{name} pin_errors: following: Debes estar siguiendo a la persona a la que quieres aprobar posts: one: Toot other: Toots posts_tab_heading: Toots - posts_with_replies: Toots con respuestas - roles: - admin: Administrador - bot: Bot - group: Grupo - moderator: Moderador - unavailable: Perfil no disponible - unfollow: Dejar de seguir admin: account_actions: action: Realizar acción @@ -105,12 +38,17 @@ es-MX: avatar: Foto de perfil by_domain: Dominio change_email: - changed_msg: "¡El correo electrónico se ha actualizado correctamente!" + changed_msg: "¡Email cambiado con éxito!" current_email: Correo electrónico actual label: Cambiar el correo electrónico new_email: Nuevo correo electrónico submit: Cambiar el correo electrónico title: Cambiar el correo electrónico de %{username} + change_role: + changed_msg: "¡Rol cambiado con éxito!" + label: Cambiar rol + no_role: Sin rol + title: Cambiar rol para %{username} confirm: Confirmar confirmed: Confirmado confirming: Confirmando @@ -154,6 +92,7 @@ es-MX: active: Activo all: Todos pending: Pendiente + silenced: Limitado suspended: Suspendidos title: Moderación moderation_notes: Notas de moderación @@ -161,6 +100,7 @@ es-MX: most_recent_ip: IP más reciente no_account_selected: Ninguna cuenta se cambió como ninguna fue seleccionada no_limits_imposed: Sin límites impuestos + no_role_assigned: Ningún rol asignado not_subscribed: No se está suscrito pending: Revisión pendiente perform_full_suspension: Suspender @@ -187,12 +127,7 @@ es-MX: reset: Reiniciar reset_password: Reiniciar contraseña resubscribe: Re-suscribir - role: Permisos - roles: - admin: Administrador - moderator: Moderador - staff: Personal - user: Usuario + role: Rol search: Buscar search_same_email_domain: Otros usuarios con el mismo dominio de correo search_same_ip: Otros usuarios con la misma IP @@ -235,17 +170,21 @@ es-MX: approve_user: Aprobar Usuario assigned_to_self_report: Asignar Reporte change_email_user: Cambiar Correo Electrónico del Usuario + change_role_user: Cambiar Rol de Usuario confirm_user: Confirmar Usuario create_account_warning: Crear Advertencia create_announcement: Crear Anuncio + create_canonical_email_block: Crear Bloqueo de Correo Electrónico create_custom_emoji: Crear Emoji Personalizado create_domain_allow: Crear Permiso de Dominio create_domain_block: Crear Bloqueo de Dominio create_email_domain_block: Crear Bloqueo de Dominio de Correo Electrónico create_ip_block: Crear regla IP create_unavailable_domain: Crear Dominio No Disponible + create_user_role: Crear Rol demote_user: Degradar Usuario destroy_announcement: Eliminar Anuncio + destroy_canonical_email_block: Eliminar Bloqueo de Correo Electrónico destroy_custom_emoji: Eliminar Emoji Personalizado destroy_domain_allow: Eliminar Permiso de Dominio destroy_domain_block: Eliminar Bloqueo de Dominio @@ -254,6 +193,7 @@ es-MX: destroy_ip_block: Eliminar regla IP destroy_status: Eliminar Estado destroy_unavailable_domain: Eliminar Dominio No Disponible + destroy_user_role: Destruir Rol disable_2fa_user: Deshabilitar 2FA disable_custom_emoji: Deshabilitar Emoji Personalizado disable_sign_in_token_auth_user: Deshabilitar la Autenticación por Token de Correo Electrónico para el Usuario @@ -267,6 +207,7 @@ es-MX: reject_user: Rechazar Usuario remove_avatar_user: Eliminar Avatar reopen_report: Reabrir Reporte + resend_user: Reenviar Correo de Confirmación reset_password_user: Restablecer Contraseña resolve_report: Resolver Reporte sensitive_account: Marcar multimedia en tu cuenta como sensible @@ -280,24 +221,30 @@ es-MX: update_announcement: Actualizar Anuncio update_custom_emoji: Actualizar Emoji Personalizado update_domain_block: Actualizar el Bloqueo de Dominio + update_ip_block: Actualizar regla IP update_status: Actualizar Estado + update_user_role: Actualizar Rol actions: approve_appeal_html: "%{name} aprobó la solicitud de moderación de %{target}" approve_user_html: "%{name} aprobó el registro de %{target}" assigned_to_self_report_html: "%{name} asignó el informe %{target} a sí mismo" change_email_user_html: "%{name} cambió la dirección de correo electrónico del usuario %{target}" + change_role_user_html: "%{name} cambió el rol de %{target}" confirm_user_html: "%{name} confirmó la dirección de correo electrónico del usuario %{target}" create_account_warning_html: "%{name} envió una advertencia a %{target}" create_announcement_html: "%{name} ha creado un nuevo anuncio %{target}" + create_canonical_email_block_html: "%{name} bloqueó el correo electrónico con el hash %{target}" create_custom_emoji_html: "%{name} subió un nuevo emoji %{target}" create_domain_allow_html: "%{name} permitió la federación con el dominio %{target}" create_domain_block_html: "%{name} bloqueó el dominio %{target}" create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}" create_ip_block_html: "%{name} creó una regla para la IP %{target}" create_unavailable_domain_html: "%{name} detuvo las entregas al dominio %{target}" + create_user_role_html: "%{name} creó el rol %{target}" demote_user_html: "%{name} degradó al usuario %{target}" destroy_announcement_html: "%{name} eliminó el anuncio %{target}" - destroy_custom_emoji_html: "%{name} destruyó emoji %{target}" + destroy_canonical_email_block_html: "%{name} desbloqueó el correo electrónico con el hash %{target}" + destroy_custom_emoji_html: "%{name} eliminó el emoji %{target}" destroy_domain_allow_html: "%{name} bloqueó la federación con el dominio %{target}" destroy_domain_block_html: "%{name} desbloqueó el dominio %{target}" destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}" @@ -305,6 +252,7 @@ es-MX: destroy_ip_block_html: "%{name} eliminó una regla para la IP %{target}" destroy_status_html: "%{name} eliminó el estado por %{target}" destroy_unavailable_domain_html: "%{name} reanudó las entregas al dominio %{target}" + destroy_user_role_html: "%{name} eliminó el rol %{target}" disable_2fa_user_html: "%{name} desactivó el requisito de dos factores para el usuario %{target}" disable_custom_emoji_html: "%{name} desactivó el emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} ha deshabilitado la autenticación por token de correo electrónico para %{target}" @@ -318,6 +266,7 @@ es-MX: reject_user_html: "%{name} rechazó el registro de %{target}" remove_avatar_user_html: "%{name} eliminó el avatar de %{target}" reopen_report_html: "%{name} reabrió el informe %{target}" + resend_user_html: "%{name} ha reenviado el correo de confirmación para %{target}" reset_password_user_html: "%{name} reinició la contraseña del usuario %{target}" resolve_report_html: "%{name} resolvió el informe %{target}" sensitive_account_html: "%{name} marcó la multimedia de %{target} como sensible" @@ -331,8 +280,10 @@ es-MX: update_announcement_html: "%{name} actualizó el anuncio %{target}" update_custom_emoji_html: "%{name} actualizó el emoji %{target}" update_domain_block_html: "%{name} actualizó el bloqueo de dominio para %{target}" + update_ip_block_html: "%{name} cambió la regla para la IP %{target}" update_status_html: "%{name} actualizó el estado de %{target}" - deleted_status: "(estado borrado)" + update_user_role_html: "%{name} cambió el rol %{target}" + deleted_account: cuenta eliminada empty: No se encontraron registros. filter_by_action: Filtrar por acción filter_by_user: Filtrar por usuario @@ -376,6 +327,7 @@ es-MX: listed: Listados new: title: Añadir nuevo emoji personalizado + no_emoji_selected: No se cambió ningún emoji ya que no se seleccionó ninguno not_permitted: No tienes permiso para realizar esta acción overwrite: Sobrescribir shortcode: Código de atajo @@ -428,6 +380,7 @@ es-MX: destroyed_msg: El bloque de dominio se deshizo domain: Dominio edit: Editar nuevo dominio bloqueado + existing_domain_block: Ya ha impuesto límites más estrictos a %{name}. existing_domain_block_html: Ya ha impuesto límites más estrictos a %{name}, necesita desbloquearlo primero. new: create: Crear bloque @@ -648,6 +601,65 @@ es-MX: unresolved: No resuelto updated_at: Actualizado view_profile: Ver perfil + roles: + add_new: Añadir rol + assigned_users: + one: "%{count} usuario" + other: "%{count} usuarios" + categories: + administration: Administración + invites: Invitaciones + moderation: Moderación + special: Especial + delete: Eliminar + description_html: Con roles de usuario, puede personalizar las funciones y áreas de Mastodon a las que pueden acceder sus usuarios. + edit: Editar rol '%{name}' + everyone: Permisos por defecto + everyone_full_description_html: Este es el rol base que afecta a todos los usuarios, incluso aquellos sin un rol asignado. Todos los otros roles heredan permisos de él. + permissions_count: + one: "%{count} permiso" + other: "%{count} permisos" + privileges: + administrator: Administrador + administrator_description: Los usuarios con este permiso saltarán todos los permisos + delete_user_data: Borrar Datos de Usuario + delete_user_data_description: Permite a los usuarios eliminar los datos de otros usuarios sin demora + invite_users: Invitar usuarios + invite_users_description: Permite a los usuarios invitar a nuevas personas al servidor + manage_announcements: Administrar Anuncios + manage_announcements_description: Permite a los usuarios gestionar anuncios en el servidor + manage_appeals: Administrar Apelaciones + manage_appeals_description: Permite a los usuarios revisar apelaciones contra acciones de moderación + manage_blocks: Administrar Bloqueos + manage_blocks_description: Permite a los usuarios bloquear los proveedores de e-mail y las direcciones IP + manage_custom_emojis: Administrar Emojis Personalizados + manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor + manage_federation: Administrar Federación + manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad + manage_invites: Administrar Invitaciones + manage_invites_description: Permite a los usuarios navegar y desactivar los enlaces de invitación + manage_reports: Administrar Informes + manage_reports_description: Permite a los usuarios revisar informes y realizar acciones de moderación basadas en ellos + manage_roles: Administrar Roles + manage_roles_description: Permite a los usuarios administrar y asignar roles por debajo de los suyos + manage_rules: Gestionar Reglas + manage_rules_description: Permite a los usuarios cambiar las reglas del servidor + manage_settings: Administrar Ajustes + manage_settings_description: Permite a los usuarios cambiar la configuración del sitio + manage_taxonomies: Administrar Taxonomías + manage_taxonomies_description: Permite a los usuarios revisar el contenido en tendencia y actualizar la configuración de las etiquetas + manage_user_access: Administrar Acceso de Usuarios + manage_user_access_description: Permite a los usuarios desactivar la autenticación de dos factores de otros usuarios, cambiar su dirección de correo electrónico y restablecer su contraseña + manage_users: Administrar Usuarios + manage_users_description: Permite a los usuarios ver los detalles de otros usuarios y realizar acciones de moderación contra ellos + manage_webhooks: Administrar Webhooks + manage_webhooks_description: Permite a los usuarios configurar webhooks para eventos administrativos + view_audit_log: Ver Registro de Auditoría + view_audit_log_description: Permite a los usuarios ver un historial de acciones administrativas en el servidor + view_dashboard: Ver Panel de Control + view_dashboard_description: Permite a los usuarios acceder al panel de control y varias métricas + view_devops_description: Permite a los usuarios acceder a los paneles de control Sidekiq y pgHero + title: Roles rules: add_new: Añadir norma delete: Eliminar @@ -656,108 +668,67 @@ es-MX: empty: Aún no se han definido las normas del servidor. title: Normas del servidor settings: - activity_api_enabled: - desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales - title: Publicar estadísticas locales acerca de actividad de usuario - bootstrap_timeline_accounts: - desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales. - title: Seguimientos predeterminados para usuarios nuevos - contact_information: - email: Correo de trabajo - username: Nombre de usuario - custom_css: - desc_html: Modificar el aspecto con CSS cargado en cada página - title: CSS personalizado - default_noindex: - desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos - title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto + about: + manage_rules: Administrar reglas del servidor + preamble: Proporciona información detallada sobre cómo el servidor es operado, moderado y financiado. + rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran. + title: Acerca de + appearance: + preamble: Personalizar la interfaz web de Mastodon. + title: Apariencia + branding: + preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interfaz web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa. + title: Marca + content_retention: + preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon. + title: Retención de contenido + discovery: + follow_recommendations: Recomendaciones de cuentas + preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controla cómo funcionan varias opciones de descubrimiento en tu servidor. + profile_directory: Directorio de perfiles + public_timelines: Lineas de tiempo públicas + title: Descubrimiento + trends: Tendencias domain_blocks: all: A todos disabled: A nadie - title: Mostrar dominios bloqueados users: Para los usuarios locales que han iniciado sesión - domain_blocks_rationale: - title: Mostrar la razón de ser - hero: - desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia - title: Imagen de portada - mascot: - desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205px. Cuando no se especifica, se muestra la mascota por defecto - title: Imagen de la mascota - peers_api_enabled: - desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso - title: Publicar lista de instancias descubiertas - preview_sensitive_media: - desc_html: Los enlaces de vistas previas en otras web mostrarán una miniatura incluso si el medio está marcado como contenido sensible - title: Mostrar contenido sensible en previews de OpenGraph - profile_directory: - desc_html: Permitir que los usuarios puedan ser descubiertos - title: Habilitar directorio de perfiles registrations: - closed_message: - desc_html: Se muestra en la portada cuando los registros están cerrados. Puedes usar tags HTML - title: Mensaje de registro cerrado - deletion: - desc_html: Permite a cualquiera a eliminar su cuenta - title: Eliminación de cuenta abierta - min_invite_role: - disabled: Nadie - title: Permitir invitaciones de - require_invite_text: - desc_html: Cuando los registros requieren aprobación manual, haga obligatorio en la invitaciones el campo "¿Por qué quieres unirte?" en lugar de opcional - title: Requiere a los nuevos usuarios rellenar un texto de solicitud de invitación + preamble: Controla quién puede crear una cuenta en tu servidor. + title: Registros registrations_mode: modes: approved: Se requiere aprobación para registrarse none: Nadie puede registrarse open: Cualquiera puede registrarse - title: Modo de registros - show_known_fediverse_at_about_page: - desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales. - title: Mostrar fediverso conocido en la vista previa de la historia - show_staff_badge: - desc_html: Mostrar un parche de staff en la página de un usuario - title: Mostrar parche de staff - site_description: - desc_html: Párrafo introductorio en la portada y en meta tags. Puedes usar tags HTML, en particular <a> y <em>. - title: Descripción de instancia - site_description_extended: - desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML - title: Información extendida personalizada - site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. - title: Descripción corta de la instancia - site_terms: - desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML - title: Términos de servicio personalizados - site_title: Nombre de instancia - thumbnail: - desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px - title: Portada de instancia - timeline_preview: - desc_html: Mostrar línea de tiempo pública en la portada - title: Previsualización - title: Ajustes del sitio - trendable_by_default: - desc_html: Afecta a etiquetas que no han sido previamente rechazadas - title: Permitir que las etiquetas sean tendencia sin revisión previa - trends: - desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia - title: Hashtags de tendencia + title: Ajustes del Servidor site_uploads: delete: Eliminar archivo subido destroyed_msg: "¡Carga del sitio eliminada con éxito!" statuses: + account: Autor + application: Aplicación back_to_account: Volver a la cuenta back_to_report: Volver a la página de reporte batch: remove_from_report: Eliminar del reporte report: Reportar deleted: Eliminado + favourites: Favoritos + history: Historial de versiones + in_reply_to: En respuesta a + language: Idioma media: title: Multimedia + metadata: Metadatos no_status_selected: No se cambió ningún estado al no seleccionar ninguno + open: Abrir publicación + original_status: Publicación original + reblogs: Impulsos + status_changed: Publicación cambiada title: Estado de las cuentas + trending: En tendencia + visibility: Visibilidad with_media: Con multimedia strikes: actions: @@ -797,6 +768,9 @@ es-MX: description_html: Estos son enlaces que actualmente están siendo compartidos mucho por las cuentas desde las que tu servidor ve los mensajes. Pueden ayudar a tus usuarios a averiguar qué está pasando en el mundo. Ningún enlace se muestren públicamente hasta que autorice al dominio. También puede permitir o rechazar enlaces individuales. disallow: Rechazar enlace disallow_provider: Rechazar editor + no_link_selected: No se cambió ningún enlace ya que no se seleccionó ninguno + publishers: + no_publisher_selected: No se cambió ningún editor ya que no se seleccionó ninguno shared_by_over_week: one: Compartido por una persona durante la última semana other: Compartido por %{count} personas durante la última semana @@ -816,6 +790,7 @@ es-MX: description_html: Estos son publicaciones que su servidor conoce que están siendo compartidas y marcadas como favoritas mucho en este momento. Pueden ayudar a tus usuarios nuevos y retornantes a encontrar más gente a la que seguir. No hay mensajes que se muestren públicamente hasta que apruebes el autor y el autor permita que su cuenta sea sugerida a otros. También puedes permitir o rechazar mensajes individuales. disallow: Rechazar publicación disallow_account: No permitir autor + no_status_selected: No se cambió ninguna publicación en tendencia ya que no se seleccionó ninguna not_discoverable: El autor no ha optado por ser detectable shared_by: one: Compartido o marcado como favorito una vez @@ -831,6 +806,7 @@ es-MX: tag_uses_measure: usuarios totales description_html: Estos son etiquetas que están apareciendo en muchos posts que tu servidor ve. Pueden ayudar a tus usuarios a averiguar de qué habla más gente en estos momentos. No hay hashtags que se muestren públicamente hasta que los apruebes. listable: Pueden ser recomendadas + no_tag_selected: No se cambió ninguna etiqueta ya que no se seleccionó ninguna not_listable: No serán recomendadas not_trendable: No aparecerán en tendencias not_usable: No pueden ser usadas @@ -851,6 +827,26 @@ es-MX: edit_preset: Editar aviso predeterminado empty: Aún no has definido ningún preajuste de advertencia. title: Editar configuración predeterminada de avisos + webhooks: + add_new: Añadir endpoint + delete: Eliminar + description_html: Un webhook permite a Mastodon enviar notificaciones en tiempo real sobre los eventos elegidos a tu propia aplicación, para que tu aplicación pueda lanzar reacciones automáticamente. + disable: Deshabilitar + disabled: Deshabilitado + edit: Editar endpoint + empty: Aún no tienes ningún endpoint de webhook configurado. + enable: Habilitar + enabled: Activo + enabled_events: + one: 1 evento habilitado + other: "%{count} eventos habilitados" + events: Eventos + new: Nuevo webhook + rotate_secret: Rotar secreto + secret: Firmando secreto + status: Estado + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +870,8 @@ es-MX: new_trends: body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:' new_trending_links: - no_approved_links: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado por #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.' title: Enlaces en tendencia new_trending_statuses: - no_approved_statuses: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar la publicación en tendencia aprobado por #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.' title: Publicaciones en tendencia new_trending_tags: no_approved_tags: Actualmente no hay ninguna etiqueta en tendencia aprobada. @@ -915,16 +907,13 @@ es-MX: applications: created: Aplicación creada exitosamente destroyed: Apicación eliminada exitosamente - invalid_url: La URL proporcionada es incorrecta regenerate_token: Regenerar token de acceso token_regenerated: Token de acceso regenerado exitosamente warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie! your_token: Tu token de acceso auth: - apply_for_account: Solicitar una invitación + apply_for_account: Entrar en la lista de espera change_password: Contraseña - checkbox_agreement_html: Acepto las reglas del servidor y términos de servicio - checkbox_agreement_without_rules_html: Acepto los términos de servicio delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: @@ -943,6 +932,7 @@ es-MX: migrate_account: Mudarse a otra cuenta migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí. or_log_in_with: O inicia sesión con + privacy_policy_agreement_html: He leído y acepto la política de privacidad providers: cas: CAS saml: SAML @@ -950,12 +940,18 @@ es-MX: registration_closed: "%{instance} no está aceptando nuevos miembros" resend_confirmation: Volver a enviar el correo de confirmación reset_password: Restablecer contraseña + rules: + preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}. + title: Algunas reglas básicas. security: Cambiar contraseña set_new_password: Establecer nueva contraseña setup: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, se puede cambiarla aquí y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: El correo electrónico de confirmación fue enviado a %{email}. Si esa dirección de correo electrónico no sea correcta, se puede cambiarla en la configuración de la cuenta. title: Configuración + sign_up: + preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente del servidor en el que se encuentre. + title: Crear cuenta de Mastodon en %{domain}. status: account_status: Estado de la cuenta confirming: Esperando confirmación de correo electrónico. @@ -964,7 +960,6 @@ es-MX: redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}. view_strikes: Ver amonestaciones pasadas contra tu cuenta too_fast: Formulario enviado demasiado rápido, inténtelo de nuevo. - trouble_logging_in: "¿Problemas para iniciar sesión?" use_security_key: Usar la clave de seguridad authorize_follow: already_following: Ya estás siguiendo a esta cuenta @@ -1022,10 +1017,6 @@ es-MX: more_details_html: Para más detalles, ver la política de privacidad. username_available: Tu nombre de usuario volverá a estar disponible username_unavailable: Tu nombre de usuario no estará disponible - directories: - directory: Directorio de perfiles - explanation: Descubre usuarios según sus intereses - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Acción realizada @@ -1104,29 +1095,60 @@ es-MX: public: Timeline público thread: Conversaciones edit: + add_keyword: Añadir palabra clave + keywords: Palabras clave + statuses: Publicaciones individuales + statuses_hint_html: Este filtro se aplica a la selección de publicaciones individuales independientemente de si coinciden con las palabras clave a continuación. Revise o elimine publicaciones del filtro. title: Editar filtro errors: + deprecated_api_multiple_keywords: Estos parámetros no se pueden cambiar desde esta aplicación porque se aplican a más de una palabra clave de filtro. Utilice una aplicación más reciente o la interfaz web. invalid_context: Se suminstró un contexto inválido o vacío - invalid_irreversible: El filtrado irreversible solo funciona con los contextos propios o de notificaciones index: + contexts: Filtros en %{contexts} delete: Borrar empty: No tienes filtros. + expires_in: Caduca en %{distance} + expires_on: Expira el %{date} + keywords: + one: "%{count} palabra clave" + other: "%{count} palabras clave" + statuses: + one: "%{count} publicación" + other: "%{count} publicaciones" + statuses_long: + one: "%{count} publicación individual oculta" + other: "%{count} publicaciones individuales ocultas" title: Filtros new: + save: Guardar nuevo filtro title: Añadir un nuevo filtro + statuses: + back_to_filter: Volver a filtrar + batch: + remove: Eliminar del filtro + index: + hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web. + title: Publicaciones filtradas footer: - developers: Desarrolladores - more: Mas… - resources: Recursos trending_now: Tendencia ahora generic: all: Todos + all_items_on_page_selected_html: + one: "%{count} elemento en esta página está seleccionado." + other: Todos los %{count} elementos en esta página están seleccionados. + all_matching_items_selected_html: + one: "%{count} elemento que coincide con su búsqueda está seleccionado." + other: Todos los %{count} elementos que coinciden con su búsqueda están seleccionados. changes_saved_msg: "¡Cambios guardados con éxito!" copy: Copiar delete: Eliminar + deselect: Deseleccionar todo none: Nada order_by: Ordenar por save_changes: Guardar cambios + select_all_matching_items: + one: Seleccionar %{count} elemento que coincide con tu búsqueda. + other: Seleccionar todos los %{count} elementos que coinciden con tu búsqueda. today: hoy validation_errors: one: "¡Algo no está bien! Por favor, revisa el error" @@ -1150,7 +1172,6 @@ es-MX: following: Lista de seguidos muting: Lista de silenciados upload: Cargar - in_memoriam_html: En memoria. invites: delete: Desactivar expired: Expiradas @@ -1229,21 +1250,14 @@ es-MX: carry_blocks_over_text: Este usuario se mudó desde %{acct}, que habías bloqueado. carry_mutes_over_text: Este usuario se mudó desde %{acct}, que habías silenciado. copy_account_note_text: 'Este usuario se mudó desde %{acct}, aquí estaban tus notas anteriores sobre él:' + navigation: + toggle_menu: Alternar menú notification_mailer: admin: + report: + subject: "%{name} envió un informe" sign_up: subject: "%{name} se registró" - digest: - action: Ver todas las notificaciones - body: Un resumen de los mensajes que perdiste en desde tu última visita, el %{since} - mention: "%{name} te ha mencionado en:" - new_followers_summary: - one: "¡Ademas, has adquirido un nuevo seguidor mientras no estabas! ¡Hurra!" - other: "¡Ademas, has adquirido %{count} nuevos seguidores mientras no estabas! ¡Genial!" - subject: - one: "1 nueva notificación desde tu última visita 🐘" - other: "%{count} nuevas notificaciones desde tu última visita 🐘" - title: En tu ausencia… favourite: body: 'Tu estado fue marcado como favorito por %{name}:' subject: "%{name} marcó como favorito tu estado" @@ -1290,7 +1304,7 @@ es-MX: code_hint: Introduce el código generado por tu aplicación de autentificación para confirmar description_html: Si habilitas autenticación de dos factores a través de una aplicación de autenticación, el ingreso requerirá que estés en posesión de tu teléfono, que generará códigos para que ingreses. enable: Activar - instructions_html: "Escanea este código QR desde Google Authenticator o una aplicación similar en tu teléfono. A partir de ahora, esta aplicación generará códigos que tendrásque ingresar cuando quieras iniciar sesión." + instructions_html: "Escanea este código QR desde Google Authenticator o una aplicación similar en tu teléfono. A partir de ahora, esta aplicación generará códigos que tendrás que ingresar cuando quieras iniciar sesión." manual_instructions: 'Si no puedes escanear el código QR y necesitas introducirlo manualmente, este es el secreto en texto plano:' setup: Configurar wrong_code: "¡El código ingresado es inválido! ¿Es correcta la hora del dispositivo y el servidor?" @@ -1315,6 +1329,8 @@ es-MX: other: Otros posting_defaults: Configuración por defecto de publicaciones public_timelines: Líneas de tiempo públicas + privacy_policy: + title: Política de Privacidad reactions: errors: limit_reached: Límite de reacciones diferentes alcanzado @@ -1337,22 +1353,7 @@ es-MX: remove_selected_follows: Dejar de seguir a los usuarios seleccionados status: Estado de la cuenta remote_follow: - acct: Ingresa tu usuario@dominio desde el que quieres seguir missing_resource: No se pudo encontrar la URL de redirección requerida para tu cuenta - no_account_html: "¿No tienes una cuenta? Puedes registrarte aqui" - proceed: Proceder a seguir - prompt: 'Vas a seguir a:' - reason_html: "¿¿Por qué es necesario este paso? %{instance} puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen." - remote_interaction: - favourite: - proceed: Proceder a marcar como favorito - prompt: 'Quieres marcar como favorito este toot:' - reblog: - proceed: Proceder a retootear - prompt: 'Quieres retootear este toot:' - reply: - proceed: Proceder a responder - prompt: 'Quieres responder a este toot:' reports: errors: invalid_rules: no hace referencia a reglas válidas @@ -1370,7 +1371,6 @@ es-MX: browser: Navegador browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1384,7 +1384,6 @@ es-MX: phantom_js: PhantomJS qq: Navegador QQ safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" @@ -1393,8 +1392,6 @@ es-MX: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: GNU Linux @@ -1519,91 +1516,11 @@ es-MX: pinned: Toot fijado reblogged: retooteado sensitive_content: Contenido sensible + strikes: + errors: + too_late: Es demasiado tarde para apelar esta amonestación tags: does_not_match_previous_name: no coincide con el nombre anterior - terms: - body_html: | -

      Política de Privacidad

      -

      ¿Qué información recogemos?

      - -
        -
      • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
      • -
      • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
      • -
      • Publicaciones directas y sólo para seguidores: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información peligrosa en Mastodon.
      • -
      • Direcciones IP y otros metadatos: Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
      • -
      - -
      - -

      ¿Para qué utilizamos su información?

      - -

      Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:

      - -
        -
      • Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
      • -
      • Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
      • -
      • La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
      • -
      - -
      - -

      ¿Cómo protegemos su información?

      - -

      Implementamos una variedad de medidas de seguridad para mantener la seguridad de su información personal cuando usted ingresa, envía o accede a su información personal. Entre otras cosas, la sesión de su navegador, así como el tráfico entre sus aplicaciones y la API, están protegidos con SSL, y su contraseña está protegida mediante un algoritmo unidireccional fuerte. Puede habilitar la autenticación de dos factores para un acceso más seguro a su cuenta.

      - -
      - -

      ¿Cuál es nuestra política de retención de datos?

      - -

      Haremos un esfuerzo de buena fe para:

      - -
        -
      • Conservar los registros del servidor que contengan la dirección IP de todas las peticiones a este servidor, en la medida en que se mantengan dichos registros, no más de 90 días.
      • -
      • Conservar las direcciones IP asociadas a los usuarios registrados no más de 12 meses.
      • -
      - -

      Puede solicitar y descargar un archivo de su contenido, incluidos sus mensajes, archivos adjuntos multimedia, foto de perfil e imagen de cabecera.

      - -

      Usted puede borrar su cuenta de forma irreversible en cualquier momento.

      - -
      - -

      ¿Utilizamos cookies?

      - -

      Sí. Las cookies son pequeños archivos que un sitio o su proveedor de servicios transfiere al disco duro de su ordenador a través de su navegador web (si usted lo permite). Estas cookies permiten al sitio reconocer su navegador y, si tiene una cuenta registrada, asociarla con su cuenta registrada.

      - -

      Utilizamos cookies para entender y guardar sus preferencias para futuras visitas.

      - -
      - -

      ¿Revelamos alguna información a terceros?

      - -

      No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.

      - -

      Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.

      - -

      Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.

      - -
      - -

      Uso del sitio por parte de los niños

      - -

      Si este servidor está en la UE o en el EEE: Nuestro sitio, productos y servicios están dirigidos a personas mayores de 16 años. Si es menor de 16 años, según los requisitos de la GDPR (General Data Protection Regulation) no utilice este sitio.

      - -

      Si este servidor está en los EE.UU.: Nuestro sitio, productos y servicios están todos dirigidos a personas que tienen al menos 13 años de edad. Si usted es menor de 13 años, según los requisitos de COPPA (Children's Online Privacy Protection Act) no utilice este sitio.

      - -

      Los requisitos legales pueden ser diferentes si este servidor está en otra jurisdicción.

      - -
      - -

      Cambios en nuestra Política de Privacidad

      - -

      Si decidimos cambiar nuestra política de privacidad, publicaremos esos cambios en esta página.

      - -

      Este documento es CC-BY-SA. Fue actualizado por última vez el 7 de marzo de 2018.

      - -

      Adaptado originalmente desde la política de privacidad de Discourse.

      - title: Términos del Servicio y Políticas de Privacidad de %{instance} themes: contrast: Alto contraste default: Mastodon @@ -1646,7 +1563,7 @@ es-MX: change_password: cambies tu contraseña details: 'Aquí están los detalles del inicio de sesión:' explanation: Hemos detectado un inicio de sesión en tu cuenta desde una nueva dirección IP. - further_actions_html: Si fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura. + further_actions_html: Si no fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura. subject: Tu cuenta ha sido accedida desde una nueva dirección IP title: Un nuevo inicio de sesión warning: @@ -1682,20 +1599,13 @@ es-MX: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar el perfil - edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta. + edit_profile_step: Puedes personalizar tu perfil subiendo una foto de perfil, cambiando tu nombre de usuario y mucho más. Puedes optar por revisar a los nuevos seguidores antes de que puedan seguirte. explanation: Aquí hay algunos consejos para empezar final_action: Empezar a publicar - final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.' + final_step: "¡Empieza a publicar! Incluso sin seguidores, tus publicaciones públicas pueden ser vistas por otros, por ejemplo en la línea de tiempo local o en etiquetas. Tal vez quieras presentarte con la etiqueta de #introducciones." full_handle: Su sobrenombre completo full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia. - review_preferences_action: Cambiar preferencias - review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs". subject: Bienvenido a Mastodon - tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. - tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada. - tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos! - tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas! - tips: Consejos title: Te damos la bienvenida a bordo, %{name}! users: follow_limit_reached: No puedes seguir a más de %{limit} personas diff --git a/config/locales/es.yml b/config/locales/es.yml index 8abd8212fce328..94478df9b8a7db 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,94 +1,27 @@ --- es: about: - about_hashtag_html: Estos son publicaciones públicas etiquetadas con #%{hashtag}. Puedes interactuar con ellas si tienes una cuenta en cualquier parte del fediverso. about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!' - about_this: Información - active_count_after: activo - active_footnote: Usuarios Activos Mensuales (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicaciones móviles - apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas - browse_directory: Navega por el directorio de perfiles y filtra por intereses - browse_local_posts: Explora en vivo los posts públicos de este servidor - browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon - contact: Contacto contact_missing: No especificado contact_unavailable: No disponible - continue_to_web: Continuar con la aplicación web - discover_users: Descubrir usuarios - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá. - get_apps: Probar una aplicación móvil hosted_on: Mastodon alojado en %{domain} - instance_actor_flash: | - Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual. - Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio. - learn_more: Aprende más - logged_in_as_html: Actualmente has iniciado sesión como %{username}. - logout_before_registering: Ya has iniciado sesión. - privacy_policy: Política de privacidad - rules: Normas del servidor - rules_html: 'A continuación hay un resumen de las normas que debes seguir si quieres tener una cuenta en este servidor de Mastodon:' - see_whats_happening: Ver lo que está pasando - server_stats: 'Datos del servidor:' - source_code: Código fuente - status_count_after: - one: estado - other: estados - status_count_before: Qué han escrito - tagline: Seguir a amigos existentes y descubre nuevos - terms: Condiciones de servicio - unavailable_content: Contenido no disponible - unavailable_content_description: - domain: Servidor - reason: 'Motivo:' - rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor. - rejecting_media_title: Medios filtrados - silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor. - silenced_title: Servidores silenciados - suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos. - suspended_title: Servidores suspendidos - unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. - user_count_after: - one: usuario - other: usuarios - user_count_before: Tenemos - what_is_mastodon: "¿Qué es Mastodon?" + title: Acerca de accounts: - choices_html: 'Elecciones de %{name}:' - endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí. - featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí. follow: Seguir followers: one: Seguidor other: Seguidores following: Siguiendo instance_actor_flash: Esta cuenta es un actor virtual utilizado para representar al servidor en sí mismo y no a ningún usuario individual. Se utiliza para propósitos de la federación y no se debe suspender. - joined: Se unió el %{date} last_active: última conexión link_verified_on: La propiedad de este vínculo fue verificada el %{date} - media: Multimedia - moved_html: "%{name} se ha trasladado a %{new_profile_link}:" - network_hidden: Esta información no está disponible nothing_here: "¡No hay nada aquí!" - people_followed_by: Usuarios a quien %{name} sigue - people_who_follow: Usuarios que siguen a %{name} pin_errors: following: Debes estar siguiendo a la persona a la que quieres aprobar posts: one: Publicación other: Publicaciones posts_tab_heading: Publicaciones - posts_with_replies: Publicaciones y respuestas - roles: - admin: Administrador - bot: Bot - group: Grupo - moderator: Moderador - unavailable: Perfil no disponible - unfollow: Dejar de seguir admin: account_actions: action: Realizar acción @@ -105,12 +38,17 @@ es: avatar: Avatar by_domain: Dominio change_email: - changed_msg: "¡El correo electrónico se ha actualizado correctamente!" + changed_msg: "¡Email cambiado con éxito!" current_email: Correo electrónico actual label: Cambiar el correo electrónico new_email: Nuevo correo electrónico submit: Cambiar el correo electrónico title: Cambiar el correo electrónico de %{username} + change_role: + changed_msg: "¡Rol cambiado con éxito!" + label: Cambiar rol + no_role: Sin rol + title: Cambiar rol para %{username} confirm: Confirmar confirmed: Confirmado confirming: Confirmando @@ -154,6 +92,7 @@ es: active: Activo all: Todos pending: Pendiente + silenced: Limitado suspended: Suspendidos title: Moderación moderation_notes: Notas de moderación @@ -161,6 +100,7 @@ es: most_recent_ip: IP más reciente no_account_selected: Ninguna cuenta se cambió como ninguna fue seleccionada no_limits_imposed: Sin límites impuestos + no_role_assigned: Ningún rol asignado not_subscribed: No se está suscrito pending: Revisión pendiente perform_full_suspension: Suspender @@ -187,12 +127,7 @@ es: reset: Reiniciar reset_password: Reiniciar contraseña resubscribe: Re-suscribir - role: Permisos - roles: - admin: Administrador - moderator: Moderador - staff: Personal - user: Usuario + role: Rol search: Buscar search_same_email_domain: Otros usuarios con el mismo dominio de correo search_same_ip: Otros usuarios con la misma IP @@ -235,17 +170,21 @@ es: approve_user: Aprobar Usuario assigned_to_self_report: Asignar Reporte change_email_user: Cambiar Correo Electrónico del Usuario + change_role_user: Cambiar Rol de Usuario confirm_user: Confirmar Usuario create_account_warning: Crear Advertencia create_announcement: Crear Anuncio + create_canonical_email_block: Crear Bloqueo de Correo Electrónico create_custom_emoji: Crear Emoji Personalizado create_domain_allow: Crear Permiso de Dominio create_domain_block: Crear Bloqueo de Dominio create_email_domain_block: Crear Bloqueo de Dominio de Correo Electrónico create_ip_block: Crear regla IP create_unavailable_domain: Crear Dominio No Disponible + create_user_role: Crear Rol demote_user: Degradar Usuario destroy_announcement: Eliminar Anuncio + destroy_canonical_email_block: Eliminar Bloqueo de Correo Electrónico destroy_custom_emoji: Eliminar Emoji Personalizado destroy_domain_allow: Eliminar Permiso de Dominio destroy_domain_block: Eliminar Bloqueo de Dominio @@ -254,6 +193,7 @@ es: destroy_ip_block: Eliminar regla IP destroy_status: Eliminar Estado destroy_unavailable_domain: Eliminar Dominio No Disponible + destroy_user_role: Destruir Rol disable_2fa_user: Deshabilitar 2FA disable_custom_emoji: Deshabilitar Emoji Personalizado disable_sign_in_token_auth_user: Deshabilitar la Autenticación por Token de Correo Electrónico para el Usuario @@ -267,6 +207,7 @@ es: reject_user: Rechazar Usuario remove_avatar_user: Eliminar Avatar reopen_report: Reabrir Reporte + resend_user: Reenviar Correo de Confirmación reset_password_user: Restablecer Contraseña resolve_report: Resolver Reporte sensitive_account: Marcar multimedia en tu cuenta como sensible @@ -280,24 +221,30 @@ es: update_announcement: Actualizar Anuncio update_custom_emoji: Actualizar Emoji Personalizado update_domain_block: Actualizar el Bloqueo de Dominio + update_ip_block: Actualizar regla IP update_status: Actualizar Estado + update_user_role: Actualizar Rol actions: approve_appeal_html: "%{name} aprobó la solicitud de moderación de %{target}" approve_user_html: "%{name} aprobó el registro de %{target}" assigned_to_self_report_html: "%{name} asignó el informe %{target} a sí mismo" change_email_user_html: "%{name} cambió la dirección de correo electrónico del usuario %{target}" + change_role_user_html: "%{name} cambió el rol de %{target}" confirm_user_html: "%{name} confirmó la dirección de correo electrónico del usuario %{target}" create_account_warning_html: "%{name} envió una advertencia a %{target}" create_announcement_html: "%{name} ha creado un nuevo anuncio %{target}" + create_canonical_email_block_html: "%{name} bloqueó el correo electrónico con el hash %{target}" create_custom_emoji_html: "%{name} subió un nuevo emoji %{target}" create_domain_allow_html: "%{name} permitió la federación con el dominio %{target}" create_domain_block_html: "%{name} bloqueó el dominio %{target}" create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}" create_ip_block_html: "%{name} creó una regla para la IP %{target}" create_unavailable_domain_html: "%{name} detuvo las entregas al dominio %{target}" + create_user_role_html: "%{name} creó el rol %{target}" demote_user_html: "%{name} degradó al usuario %{target}" destroy_announcement_html: "%{name} eliminó el anuncio %{target}" - destroy_custom_emoji_html: "%{name} destruyó emoji %{target}" + destroy_canonical_email_block_html: "%{name} desbloqueó el correo electrónico con el hash %{target}" + destroy_custom_emoji_html: "%{name} eliminó el emoji %{target}" destroy_domain_allow_html: "%{name} bloqueó la federación con el dominio %{target}" destroy_domain_block_html: "%{name} desbloqueó el dominio %{target}" destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}" @@ -305,6 +252,7 @@ es: destroy_ip_block_html: "%{name} eliminó una regla para la IP %{target}" destroy_status_html: "%{name} eliminó el estado por %{target}" destroy_unavailable_domain_html: "%{name} reanudó las entregas al dominio %{target}" + destroy_user_role_html: "%{name} eliminó el rol %{target}" disable_2fa_user_html: "%{name} desactivó el requisito de dos factores para el usuario %{target}" disable_custom_emoji_html: "%{name} desactivó el emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} ha deshabilitado la autenticación por token de correo electrónico para %{target}" @@ -318,6 +266,7 @@ es: reject_user_html: "%{name} rechazó el registro de %{target}" remove_avatar_user_html: "%{name} eliminó el avatar de %{target}" reopen_report_html: "%{name} reabrió el informe %{target}" + resend_user_html: "%{name} ha reenviado el correo de confirmación para %{target}" reset_password_user_html: "%{name} reinició la contraseña del usuario %{target}" resolve_report_html: "%{name} resolvió el informe %{target}" sensitive_account_html: "%{name} marcó la multimedia de %{target} como sensible" @@ -331,8 +280,10 @@ es: update_announcement_html: "%{name} actualizó el anuncio %{target}" update_custom_emoji_html: "%{name} actualizó el emoji %{target}" update_domain_block_html: "%{name} actualizó el bloqueo de dominio para %{target}" + update_ip_block_html: "%{name} cambió la regla para la IP %{target}" update_status_html: "%{name} actualizó el estado de %{target}" - deleted_status: "(estado borrado)" + update_user_role_html: "%{name} cambió el rol %{target}" + deleted_account: cuenta eliminada empty: No se encontraron registros. filter_by_action: Filtrar por acción filter_by_user: Filtrar por usuario @@ -376,6 +327,7 @@ es: listed: Listados new: title: Añadir nuevo emoji personalizado + no_emoji_selected: No se cambió ningún emoji ya que no se seleccionó ninguno not_permitted: No tienes permiso para realizar esta acción overwrite: Sobrescribir shortcode: Código de atajo @@ -428,6 +380,7 @@ es: destroyed_msg: El bloque de dominio se deshizo domain: Dominio edit: Editar nuevo dominio bloqueado + existing_domain_block: Ya impusiste límites más estrictos a %{name}. existing_domain_block_html: Ya ha impuesto límites más estrictos a %{name}, necesita desbloquearlo primero. new: create: Crear bloque @@ -648,6 +601,65 @@ es: unresolved: No resuelto updated_at: Actualizado view_profile: Ver perfil + roles: + add_new: Añadir rol + assigned_users: + one: "%{count} usuario" + other: "%{count} usuarios" + categories: + administration: Administración + invites: Invitaciones + moderation: Moderación + special: Especial + delete: Eliminar + description_html: Con roles de usuario, puede personalizar las funciones y áreas de Mastodon a las que pueden acceder sus usuarios. + edit: Editar rol '%{name}' + everyone: Permisos por defecto + everyone_full_description_html: Este es el rol base que afecta a todos los usuarios, incluso aquellos sin un rol asignado. Todos los otros roles heredan permisos de él. + permissions_count: + one: "%{count} permiso" + other: "%{count} permisos" + privileges: + administrator: Administrador + administrator_description: Los usuarios con este permiso saltarán todos los permisos + delete_user_data: Borrar Datos de Usuario + delete_user_data_description: Permite a los usuarios eliminar los datos de otros usuarios sin demora + invite_users: Invitar usuarios + invite_users_description: Permite a los usuarios invitar a nuevas personas al servidor + manage_announcements: Administrar Anuncios + manage_announcements_description: Permite a los usuarios gestionar anuncios en el servidor + manage_appeals: Administrar Apelaciones + manage_appeals_description: Permite a los usuarios revisar apelaciones contra acciones de moderación + manage_blocks: Administrar Bloqueos + manage_blocks_description: Permite a los usuarios bloquear los proveedores de e-mail y las direcciones IP + manage_custom_emojis: Administrar Emojis Personalizados + manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor + manage_federation: Administrar Federación + manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad + manage_invites: Administrar Invitaciones + manage_invites_description: Permite a los usuarios navegar y desactivar los enlaces de invitación + manage_reports: Administrar Informes + manage_reports_description: Permite a los usuarios revisar informes y realizar acciones de moderación basadas en ellos + manage_roles: Administrar Roles + manage_roles_description: Permite a los usuarios administrar y asignar roles por debajo de los suyos + manage_rules: Gestionar Reglas + manage_rules_description: Permite a los usuarios cambiar las reglas del servidor + manage_settings: Administrar Ajustes + manage_settings_description: Permite a los usuarios cambiar la configuración del sitio + manage_taxonomies: Administrar Taxonomías + manage_taxonomies_description: Permite a los usuarios revisar el contenido en tendencia y actualizar la configuración de las etiquetas + manage_user_access: Administrar Acceso de Usuarios + manage_user_access_description: Permite a los usuarios desactivar la autenticación de dos factores de otros usuarios, cambiar su dirección de correo electrónico y restablecer su contraseña + manage_users: Administrar Usuarios + manage_users_description: Permite a los usuarios ver los detalles de otros usuarios y realizar acciones de moderación contra ellos + manage_webhooks: Administrar Webhooks + manage_webhooks_description: Permite a los usuarios configurar webhooks para eventos administrativos + view_audit_log: Ver Registro de Auditoría + view_audit_log_description: Permite a los usuarios ver un historial de acciones administrativas en el servidor + view_dashboard: Ver Panel de Control + view_dashboard_description: Permite a los usuarios acceder al panel de control y varias métricas + view_devops_description: Permite a los usuarios acceder a los paneles de control Sidekiq y pgHero + title: Roles rules: add_new: Añadir norma delete: Eliminar @@ -656,108 +668,67 @@ es: empty: Aún no se han definido las normas del servidor. title: Normas del servidor settings: - activity_api_enabled: - desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales - title: Publicar estadísticas locales acerca de actividad de usuario - bootstrap_timeline_accounts: - desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales. - title: Seguimientos predeterminados para usuarios nuevos - contact_information: - email: Correo de trabajo - username: Nombre de usuario - custom_css: - desc_html: Modificar el aspecto con CSS cargado en cada página - title: CSS personalizado - default_noindex: - desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos - title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto + about: + manage_rules: Administrar reglas del servidor + preamble: Proporciona información detallada sobre cómo el servidor es operado, moderado y financiado. + rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran. + title: Acerca de + appearance: + preamble: Personalizar la interfaz web de Mastodon. + title: Apariencia + branding: + preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interfaz web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa. + title: Marca + content_retention: + preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon. + title: Retención de contenido + discovery: + follow_recommendations: Recomendaciones de cuentas + preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controla cómo funcionan varias opciones de descubrimiento en tu servidor. + profile_directory: Directorio de perfiles + public_timelines: Lineas de tiempo públicas + title: Descubrimiento + trends: Tendencias domain_blocks: all: A todos disabled: A nadie - title: Mostrar dominios bloqueados users: Para los usuarios locales que han iniciado sesión - domain_blocks_rationale: - title: Mostrar la razón de ser - hero: - desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia - title: Imagen de portada - mascot: - desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205px. Cuando no se especifica, se muestra la mascota por defecto - title: Imagen de la mascota - peers_api_enabled: - desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso - title: Publicar lista de instancias descubiertas - preview_sensitive_media: - desc_html: Los enlaces de vistas previas en otras web mostrarán una miniatura incluso si el medio está marcado como contenido sensible - title: Mostrar contenido sensible en previews de OpenGraph - profile_directory: - desc_html: Permitir que los usuarios puedan ser descubiertos - title: Habilitar directorio de perfiles registrations: - closed_message: - desc_html: Se muestra en la portada cuando los registros están cerrados. Puedes usar tags HTML - title: Mensaje de registro cerrado - deletion: - desc_html: Permite a cualquiera a eliminar su cuenta - title: Eliminación de cuenta abierta - min_invite_role: - disabled: Nadie - title: Permitir invitaciones de - require_invite_text: - desc_html: Cuando los registros requieren aprobación manual, haga obligatorio en la invitaciones el campo "¿Por qué quieres unirte?" en lugar de opcional - title: Requiere a los nuevos usuarios rellenar un texto de solicitud de invitación + preamble: Controla quién puede crear una cuenta en tu servidor. + title: Registros registrations_mode: modes: approved: Se requiere aprobación para registrarse none: Nadie puede registrarse open: Cualquiera puede registrarse - title: Modo de registros - show_known_fediverse_at_about_page: - desc_html: Cuando esté desactivado, se mostrarán solamente publicaciones locales en la línea temporal pública - title: Incluye contenido federado en la página de línea de tiempo pública no autenticada - show_staff_badge: - desc_html: Mostrar un parche de staff en la página de un usuario - title: Mostrar parche de staff - site_description: - desc_html: Párrafo introductorio en la portada y en meta tags. Puedes usar tags HTML, en particular <a> y <em>. - title: Descripción de instancia - site_description_extended: - desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML - title: Información extendida personalizada - site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. - title: Descripción corta de la instancia - site_terms: - desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML - title: Términos de servicio personalizados - site_title: Nombre de instancia - thumbnail: - desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px - title: Portada de instancia - timeline_preview: - desc_html: Mostrar línea de tiempo pública en la portada - title: Previsualización - title: Ajustes del sitio - trendable_by_default: - desc_html: Afecta a etiquetas que no han sido previamente rechazadas - title: Permitir que las etiquetas sean tendencia sin revisión previa - trends: - desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia - title: Hashtags de tendencia + title: Ajustes del Servidor site_uploads: delete: Eliminar archivo subido destroyed_msg: "¡Carga del sitio eliminada con éxito!" statuses: + account: Autor + application: Aplicación back_to_account: Volver a la cuenta back_to_report: Volver a la página del reporte batch: remove_from_report: Eliminar del reporte report: Reporte deleted: Eliminado + favourites: Favoritos + history: Historial de versiones + in_reply_to: En respuesta a + language: Idioma media: title: Multimedia + metadata: Metadatos no_status_selected: No se cambió ningún estado al no seleccionar ninguno + open: Abrir publicación + original_status: Publicación original + reblogs: Impulsos + status_changed: Publicación cambiada title: Estado de las cuentas + trending: En tendencia + visibility: Visibilidad with_media: Con multimedia strikes: actions: @@ -797,6 +768,9 @@ es: description_html: Estos son enlaces que actualmente están siendo compartidos mucho por las cuentas desde las que tu servidor ve los mensajes. Pueden ayudar a tus usuarios a averiguar qué está pasando en el mundo. Ningún enlace se muestren públicamente hasta que autorice al dominio. También puede permitir o rechazar enlaces individuales. disallow: Rechazar enlace disallow_provider: Rechazar medio + no_link_selected: No se cambió ningún enlace ya que no se seleccionó ninguno + publishers: + no_publisher_selected: No se cambió ningún editor ya que no se seleccionó ninguno shared_by_over_week: one: Compartido por una persona durante la última semana other: Compartido por %{count} personas durante la última semana @@ -816,6 +790,7 @@ es: description_html: Estos son publicaciones que su servidor conoce que están siendo compartidas y marcadas como favoritas mucho en este momento. Pueden ayudar a tus usuarios nuevos y retornantes a encontrar más gente a la que seguir. No hay mensajes que se muestren públicamente hasta que apruebes el autor y el autor permita que su cuenta sea sugerida a otros. También puedes permitir o rechazar mensajes individuales. disallow: No permitir publicación disallow_account: No permitir autor + no_status_selected: No se cambió ninguna publicación en tendencia ya que no se seleccionó ninguna not_discoverable: El autor no ha optado por ser detectable shared_by: one: Compartido o marcado como favorito una vez @@ -831,6 +806,7 @@ es: tag_uses_measure: usos totales description_html: Estos son etiquetas que están apareciendo en muchos posts que tu servidor ve. Pueden ayudar a tus usuarios a averiguar de qué habla más gente en estos momentos. No hay hashtags que se muestren públicamente hasta que los apruebes. listable: Pueden ser recomendadas + no_tag_selected: No se cambió ninguna etiqueta ya que no se seleccionó ninguna not_listable: No serán recomendadas not_trendable: No aparecerán en tendencias not_usable: No pueden ser usadas @@ -851,6 +827,26 @@ es: edit_preset: Editar aviso predeterminado empty: Aún no has definido ningún preajuste de advertencia. title: Editar configuración predeterminada de avisos + webhooks: + add_new: Añadir endpoint + delete: Eliminar + description_html: Un webhook permite a Mastodon enviar notificaciones en tiempo real sobre los eventos elegidos a tu propia aplicación, para que tu aplicación pueda lanzar reacciones automáticamente. + disable: Deshabilitar + disabled: Deshabilitado + edit: Editar endpoint + empty: Aún no tienes ningún endpoint de webhook configurado. + enable: Habilitar + enabled: Activo + enabled_events: + one: 1 evento habilitado + other: "%{count} eventos habilitados" + events: Eventos + new: Nuevo webhook + rotate_secret: Rotar secreto + secret: Firmando secreto + status: Estado + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +870,8 @@ es: new_trends: body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:' new_trending_links: - no_approved_links: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado por #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.' title: Enlaces en tendencia new_trending_statuses: - no_approved_statuses: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar la publicación en tendencia aprobado por #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.' title: Publicaciones en tendencia new_trending_tags: no_approved_tags: Actualmente no hay ninguna etiqueta en tendencia aprobada. @@ -915,16 +907,13 @@ es: applications: created: Aplicación creada exitosamente destroyed: Apicación eliminada exitosamente - invalid_url: La URL proporcionada es incorrecta regenerate_token: Regenerar token de acceso token_regenerated: Token de acceso regenerado exitosamente warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie! your_token: Tu token de acceso auth: - apply_for_account: Solicitar una invitación + apply_for_account: Entrar en la lista de espera change_password: Contraseña - checkbox_agreement_html: Acepto las reglas del servidor y términos de servicio - checkbox_agreement_without_rules_html: Acepto los términos de servicio delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: @@ -943,6 +932,7 @@ es: migrate_account: Mudarse a otra cuenta migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí. or_log_in_with: O inicia sesión con + privacy_policy_agreement_html: He leído y acepto la política de privacidad providers: cas: CAS saml: SAML @@ -950,12 +940,18 @@ es: registration_closed: "%{instance} no está aceptando nuevos miembros" resend_confirmation: Volver a enviar el correo de confirmación reset_password: Restablecer contraseña + rules: + preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}. + title: Algunas reglas básicas. security: Cambiar contraseña set_new_password: Establecer nueva contraseña setup: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, se puede cambiarla aquí y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: El correo electrónico de confirmación fue enviado a %{email}. Si esa dirección de correo electrónico no sea correcta, se puede cambiarla en la configuración de la cuenta. title: Configuración + sign_up: + preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente del servidor en el que se encuentre. + title: Crear cuenta de Mastodon en %{domain}. status: account_status: Estado de la cuenta confirming: Esperando confirmación de correo electrónico. @@ -964,7 +960,6 @@ es: redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}. view_strikes: Ver amonestaciones pasadas contra tu cuenta too_fast: Formulario enviado demasiado rápido, inténtelo de nuevo. - trouble_logging_in: "¿Problemas para iniciar sesión?" use_security_key: Usar la clave de seguridad authorize_follow: already_following: Ya estás siguiendo a esta cuenta @@ -1022,10 +1017,6 @@ es: more_details_html: Para más detalles, ver la política de privacidad. username_available: Tu nombre de usuario volverá a estar disponible username_unavailable: Tu nombre de usuario no estará disponible - directories: - directory: Directorio de perfiles - explanation: Descubre usuarios según sus intereses - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Acción realizada @@ -1104,29 +1095,60 @@ es: public: Líneas de tiempo públicas thread: Conversaciones edit: + add_keyword: Añadir palabra clave + keywords: Palabras clave + statuses: Publicaciones individuales + statuses_hint_html: Este filtro se aplica a la selección de publicaciones individuales independientemente de si coinciden con las palabras clave a continuación. Revise o elimine publicaciones del filtro. title: Editar filtro errors: + deprecated_api_multiple_keywords: Estos parámetros no se pueden cambiar desde esta aplicación porque se aplican a más de una palabra clave de filtro. Utilice una aplicación más reciente o la interfaz web. invalid_context: Se suminstró un contexto inválido o vacío - invalid_irreversible: El filtrado irreversible solo funciona con los contextos propios o de notificaciones index: + contexts: Filtros en %{contexts} delete: Borrar empty: No tienes filtros. + expires_in: Caduca en %{distance} + expires_on: Expira el %{date} + keywords: + one: "%{count} palabra clave" + other: "%{count} palabras clave" + statuses: + one: "%{count} publicación" + other: "%{count} publicaciones" + statuses_long: + one: "%{count} publicación individual oculta" + other: "%{count} publicaciones individuales ocultas" title: Filtros new: + save: Guardar nuevo filtro title: Añadir nuevo filtro + statuses: + back_to_filter: Volver a filtrar + batch: + remove: Eliminar del filtro + index: + hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web. + title: Publicaciones filtradas footer: - developers: Desarrolladores - more: Mas… - resources: Recursos trending_now: Tendencia ahora generic: all: Todos + all_items_on_page_selected_html: + one: "%{count} elemento en esta página está seleccionado." + other: Todos los %{count} elementos en esta página están seleccionados. + all_matching_items_selected_html: + one: "%{count} elemento que coincide con su búsqueda está seleccionado." + other: Todos los %{count} elementos que coinciden con su búsqueda están seleccionados. changes_saved_msg: "¡Cambios guardados con éxito!" copy: Copiar delete: Eliminar + deselect: Deseleccionar todo none: Nada order_by: Ordenar por save_changes: Guardar cambios + select_all_matching_items: + one: Seleccionar %{count} elemento que coincide con tu búsqueda. + other: Seleccionar todos los %{count} elementos que coinciden con tu búsqueda. today: hoy validation_errors: one: "¡Algo no está bien! Por favor, revisa el error" @@ -1150,7 +1172,6 @@ es: following: Lista de seguidos muting: Lista de silenciados upload: Cargar - in_memoriam_html: En memoria. invites: delete: Desactivar expired: Expiradas @@ -1229,21 +1250,14 @@ es: carry_blocks_over_text: Este usuario se mudó desde %{acct}, que habías bloqueado. carry_mutes_over_text: Este usuario se mudó desde %{acct}, que habías silenciado. copy_account_note_text: 'Este usuario se mudó desde %{acct}, aquí estaban tus notas anteriores sobre él:' + navigation: + toggle_menu: Alternar menú notification_mailer: admin: + report: + subject: "%{name} envió un informe" sign_up: subject: "%{name} se registró" - digest: - action: Ver todas las notificaciones - body: Un resumen de los mensajes que perdiste en desde tu última visita, el %{since} - mention: "%{name} te ha mencionado en:" - new_followers_summary: - one: "¡Ademas, has adquirido un nuevo seguidor mientras no estabas! ¡Hurra!" - other: "¡Ademas, has adquirido %{count} nuevos seguidores mientras no estabas! ¡Genial!" - subject: - one: "1 nueva notificación desde tu última visita 🐘" - other: "%{count} nuevas notificaciones desde tu última visita 🐘" - title: En tu ausencia… favourite: body: 'Tu estado fue marcado como favorito por %{name}:' subject: "%{name} marcó como favorito tu estado" @@ -1315,6 +1329,8 @@ es: other: Otros posting_defaults: Configuración por defecto de publicaciones public_timelines: Líneas de tiempo públicas + privacy_policy: + title: Política de Privacidad reactions: errors: limit_reached: Límite de reacciones diferentes alcanzado @@ -1337,22 +1353,7 @@ es: remove_selected_follows: Dejar de seguir a los usuarios seleccionados status: Estado de la cuenta remote_follow: - acct: Ingresa tu usuario@dominio desde el que quieres seguir missing_resource: No se pudo encontrar la URL de redirección requerida para tu cuenta - no_account_html: "¿No tienes una cuenta? Puedes registrarte aqui" - proceed: Proceder a seguir - prompt: 'Vas a seguir a:' - reason_html: "¿¿Por qué es necesario este paso? %{instance} puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen." - remote_interaction: - favourite: - proceed: Proceder a marcar como favorito - prompt: 'Quieres marcar como favorita esta publicación:' - reblog: - proceed: Proceder a retootear - prompt: 'Quieres retootear esta publicación:' - reply: - proceed: Proceder a responder - prompt: 'Quieres responder a esta publicación:' reports: errors: invalid_rules: no hace referencia a reglas válidas @@ -1370,7 +1371,6 @@ es: browser: Navegador browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1384,7 +1384,6 @@ es: phantom_js: PhantomJS qq: Navegador QQ safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" @@ -1393,8 +1392,6 @@ es: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: GNU Linux @@ -1524,89 +1521,6 @@ es: too_late: Es demasiado tarde para apelar esta amonestación tags: does_not_match_previous_name: no coincide con el nombre anterior - terms: - body_html: | -

      Política de Privacidad

      -

      ¿Qué información recogemos?

      - -
        -
      • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
      • -
      • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
      • -
      • Publicaciones directas y sólo para seguidores: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información peligrosa en Mastodon.
      • -
      • Direcciones IP y otros metadatos: Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
      • -
      - -
      - -

      ¿Para qué utilizamos su información?

      - -

      Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:

      - -
        -
      • Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
      • -
      • Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
      • -
      • La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
      • -
      - -
      - -

      ¿Cómo protegemos su información?

      - -

      Implementamos una variedad de medidas de seguridad para mantener la seguridad de su información personal cuando usted ingresa, envía o accede a su información personal. Entre otras cosas, la sesión de su navegador, así como el tráfico entre sus aplicaciones y la API, están protegidos con SSL, y su contraseña está protegida mediante un algoritmo unidireccional fuerte. Puede habilitar la autenticación de dos factores para un acceso más seguro a su cuenta.

      - -
      - -

      ¿Cuál es nuestra política de retención de datos?

      - -

      Haremos un esfuerzo de buena fe para:

      - -
        -
      • Conservar los registros del servidor que contengan la dirección IP de todas las peticiones a este servidor, en la medida en que se mantengan dichos registros, no más de 90 días.
      • -
      • Conservar las direcciones IP asociadas a los usuarios registrados no más de 12 meses.
      • -
      - -

      Puede solicitar y descargar un archivo de su contenido, incluidos sus mensajes, archivos adjuntos multimedia, foto de perfil e imagen de cabecera.

      - -

      Usted puede borrar su cuenta de forma irreversible en cualquier momento.

      - -
      - -

      ¿Utilizamos cookies?

      - -

      Sí. Las cookies son pequeños archivos que un sitio o su proveedor de servicios transfiere al disco duro de su ordenador a través de su navegador web (si usted lo permite). Estas cookies permiten al sitio reconocer su navegador y, si tiene una cuenta registrada, asociarla con su cuenta registrada.

      - -

      Utilizamos cookies para entender y guardar sus preferencias para futuras visitas.

      - -
      - -

      ¿Revelamos alguna información a terceros?

      - -

      No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.

      - -

      Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.

      - -

      Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.

      - -
      - -

      Uso del sitio por parte de los niños

      - -

      Si este servidor está en la UE o en el EEE: Nuestro sitio, productos y servicios están dirigidos a personas mayores de 16 años. Si es menor de 16 años, según los requisitos de la GDPR (General Data Protection Regulation) no utilice este sitio.

      - -

      Si este servidor está en los EE.UU.: Nuestro sitio, productos y servicios están todos dirigidos a personas que tienen al menos 13 años de edad. Si usted es menor de 13 años, según los requisitos de COPPA (Children's Online Privacy Protection Act) no utilice este sitio.

      - -

      Los requisitos legales pueden ser diferentes si este servidor está en otra jurisdicción.

      - -
      - -

      Cambios en nuestra Política de Privacidad

      - -

      Si decidimos cambiar nuestra política de privacidad, publicaremos esos cambios en esta página.

      - -

      Este documento es CC-BY-SA. Fue actualizado por última vez el 7 de marzo de 2018.

      - -

      Adaptado originalmente desde la política de privacidad de Discourse.

      - title: Términos del Servicio y Políticas de Privacidad de %{instance} themes: contrast: Alto contraste default: Mastodon @@ -1649,7 +1563,7 @@ es: change_password: cambies tu contraseña details: 'Aquí están los detalles del inicio de sesión:' explanation: Hemos detectado un inicio de sesión en tu cuenta desde una nueva dirección IP. - further_actions_html: Si fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura. + further_actions_html: Si no fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura. subject: Tu cuenta ha sido accedida desde una nueva dirección IP title: Un nuevo inicio de sesión warning: @@ -1685,20 +1599,13 @@ es: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar el perfil - edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta. + edit_profile_step: Puedes personalizar tu perfil subiendo una foto de perfil, cambiando tu nombre de usuario y mucho más. Puedes optar por revisar a los nuevos seguidores antes de que puedan seguirte. explanation: Aquí hay algunos consejos para empezar final_action: Empezar a publicar - final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.' + final_step: "¡Empieza a publicar! Incluso sin seguidores, tus publicaciones públicas pueden ser vistas por otros, por ejemplo en la línea de tiempo local o en etiquetas. Tal vez quieras presentarte con la etiqueta de #introducciones." full_handle: Su sobrenombre completo full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia. - review_preferences_action: Cambiar preferencias - review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs". subject: Bienvenido a Mastodon - tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. - tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada. - tip_local_timeline: La línea de tiempo local es una vista de la gente en %{instance}. ¡Estos son tus vecinos inmediatos! - tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas! - tips: Consejos title: Te damos la bienvenida a bordo, %{name}! users: follow_limit_reached: No puedes seguir a más de %{limit} personas diff --git a/config/locales/et.yml b/config/locales/et.yml index 3c48bad5b7a6a4..10f7b67ca8192b 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1,87 +1,25 @@ --- et: about: - about_hashtag_html: Need on avalikud tuututused sildistatud sildiga #%{hashtag}. Te saate suhelda nendega, kui Teil on konto üks kõik kus terves fediversumis. about_mastodon_html: 'Tuleviku sotsiaalvõrgustik: Reklaamivaba, korporatiivse järelvalveta, eetiline kujundus ning detsentraliseeritus! Oma enda andmeid Mastodonis!' - about_this: Meist - active_count_after: aktiivne - active_footnote: Igakuiselt aktiivseid kasutajaid (MAU) - administered_by: 'Administraator:' - api: API - apps: Mobiilirakendused - apps_platforms: Kasuta Mastodoni iOS-is, Androidis ja teistel platvormidel - browse_directory: Sirvi profiilide kataloogi ja filtreeri huvide alusel - browse_local_posts: Sirvi reaalajas voogu avalikest postitustest sellest serverist - browse_public_posts: Sirvi reaalajas voogu avalikest postitustest Mastodonis - contact: Kontakt contact_missing: Määramata contact_unavailable: Pole saadaval - discover_users: Avasta kasutajaid - documentation: Dokumentatsioon - federation_hint_html: Kui Teil on kasutaja %{instance}-is, saate Te jälgida inimesi üks kõik millisel Mastodoni serveril ja kaugemalgi. - get_apps: Proovi mobiilirakendusi hosted_on: Mastodon majutatud %{domain}-is - instance_actor_flash: | - See konto on virtuaalne näitleja, mis esindab tervet serverit ning mitte ühtegi kindlat isikut. - Seda kasutatakse föderatiivsetel põhjustel ning seda ei tohiks blokeerida, välja arvatud juhul, kui soovite blokeerida tervet serverit, kuid sellel juhul soovitame hoopis kasutada domeeni blokeerimist. - learn_more: Lisateave - privacy_policy: Privaatsuspoliitika - rules: Serveri reeglid - rules_html: 'Järgneb kokkuvõte reeglitest, mida pead järgima, kui lood endale siin Mastodoni serveris konto:' - see_whats_happening: Vaata, mis toimub - server_stats: 'Serveri statistika:' - source_code: Lähtekood - status_count_after: - one: postitust - other: staatuseid - status_count_before: Kes on avaldanud - tagline: Jälgi sõpru ja leia uusi - terms: Kasutustingimused - unavailable_content: Sisu pole saadaval - unavailable_content_description: - reason: Põhjus - rejecting_media: 'Meedia failid sellelt serverilt ei töödelda ega salvestata ning mitte ühtegi eelvaadet ei kuvata, mis nõuab manuaalselt vajutust originaalfailile:' - rejecting_media_title: Filtreeritud meediaga - silenced: 'Postitused nendelt serveritelt peidetakse avalikes ajajoontes ja vestlustes ning mitte ühtegi teavitust ei tehta nende kasutajate tegevustest, välja arvatud juhul, kui Te neid jälgite:' - suspended: 'Mitte mingeid andmeid nendelt serveritelt ei töödelda, salvestata ega vahetata, tehes igasuguse interaktsiooni või kirjavahetuse kasutajatega nendelt serveritelt võimatuks:' - unavailable_content_html: Mastodon tavaliselt lubab Teil vaadata sisu ning suhelda kasutajatega üks kõik millisest teisest serverist fediversumis. Need on erandid, mis on paika pandud sellel kindlal serveril. - user_count_after: - one: kasutajale - other: kasutajale - user_count_before: Koduks - what_is_mastodon: Mis on Mastodon? accounts: - choices_html: "%{name}-i valikud:" - endorsements_hint: Te saate heaks kiita inimesi, keda jälgite, veebiliidesest ning neid kuvatakse siin. - featured_tags_hint: Te saate valida kindlaid silte, mida kuvatakse siin. follow: Jälgi followers: one: Jälgija other: Jälgijaid following: Jälgib - joined: Liitus %{date} last_active: viimati aktiivne link_verified_on: Selle lingi autorsust kontrolliti %{date} - media: Meedia - moved_html: "%{name} kolis %{new_profile_link}:" - network_hidden: Neid andmeid pole saadaval nothing_here: Siin pole midagi! - people_followed_by: Inimesed, keda %{name} jälgib - people_who_follow: Inimesed, kes jälgivad kasutajat %{name} pin_errors: following: Te peate juba olema selle kasutaja jälgija, keda te heaks kiidate posts: one: Postitus other: Postitused posts_tab_heading: Postitused - posts_with_replies: Postitused ja vastused - roles: - admin: Administraator - bot: Robot - group: Grupp - moderator: Moderaator - unavailable: Profiil pole saadaval - unfollow: Lõpeta jälgimine admin: account_actions: action: Täida tegevus @@ -97,7 +35,6 @@ et: avatar: Profiilipilt by_domain: Domeen change_email: - changed_msg: Konto e-postiaadress edukalt muudetud! current_email: Praegune e-postiaadress label: Muuda e-posti aadressi new_email: Uus е-posti aadress @@ -161,12 +98,6 @@ et: reset: Lähtesta reset_password: Lähtesta salasõna resubscribe: Telli taas - role: Õigused - roles: - admin: Administraator - moderator: Moderaator - staff: Personal - user: Kasutaja search: Otsi search_same_email_domain: Muud kasutajad sama e-posti domeeniga search_same_ip: Teised kasutajad, kellel on sama IP @@ -225,7 +156,6 @@ et: update_announcement: Uuenda teadaannet update_custom_emoji: Uuendas kohandatud emotikoni update_status: Uuendas staatust - deleted_status: "(kustutatud staatus)" empty: Logisi ei leitud. filter_by_action: Filtreeri tegevuse järgi filter_by_user: Filtreeri kasutaja järgi @@ -400,91 +330,15 @@ et: unresolved: Lahendamata updated_at: Uuendatud settings: - activity_api_enabled: - desc_html: Kohalike postituste, aktiivsete kasutajate ja uute registreerimiste numbrid iganädalaste "ämbritena" - title: Avalda koondstatistikat selle kasutaja aktiivsusest - bootstrap_timeline_accounts: - desc_html: Eralda mitut kasutajanime komadega. Ainult kohalikud ja lukustamata kasutajate nimed töötavad. Kui tühi, on vaikesätteks kõik kohalikud administraatorid. - title: Vaikimisi jälgimised uutele kasutajatele - contact_information: - email: Äri e-post - username: Kontakt kasutajanimi - custom_css: - desc_html: Muuda kujundust CSSi abil, mis laetakse igal lehel - title: Kohandatud CSS - default_noindex: - desc_html: Mõjutab kõiki kasutajaid, kes pole seda sätet ise muutnud - title: Loobu kasutajate otsingumootoritesse indekseerimisest vaikimisi domain_blocks: all: Kõigile disabled: Mitte kellelegi - title: Näita domeeniblokeeringuid users: Sisseloginud kohalikele kasutajatele - domain_blocks_rationale: - title: Näita põhjendust - hero: - desc_html: Kuvatud kodulehel. Vähemalt 600x100px soovitatud. Kui pole seadistatud, kuvatakse serveri pisililt - title: Maskotipilt - mascot: - desc_html: Kuvatakse mitmel lehel. Vähemalt 293x205px soovitatud. Kui pole seadistatud, kuvatakse vaikimisi maskott - title: Maskotipilt - peers_api_enabled: - desc_html: Domeenid, mida see server on kohanud fediversumis - title: Avalda nimekiri avastatud serveritest - preview_sensitive_media: - desc_html: Lingi eelvaated teistel veebisaitidel kuvab pisipilti, isegi kui meedia on märgitud tundlikuks - title: Kuva tundlikku meediat OpenGraphi eelvaadetes - profile_directory: - desc_html: Luba kasutajate avastamine - title: Luba profiilikataloog - registrations: - closed_message: - desc_html: Kuvatud esilehel kui registreerimised on suletud. Te võite kasutada HTMLi silte - title: Suletud registreerimiste sõnum - deletion: - desc_html: Luba kasutajatel oma konto kustutada - title: Ava kontode kustutamine - min_invite_role: - disabled: Mitte keegi - title: Luba kutseid registrations_mode: modes: approved: Kinnitus vajalik konto loomisel none: Keegi ei saa kontoid luua open: Kõik võivad kontoid luua - title: Registreerimisrežiim - show_known_fediverse_at_about_page: - desc_html: Kui lubatud, näitab kõiki teatud fediversumi tuututusi. Vastasel juhul näidatakse ainult kohalike tuututusi. - title: Näita teatud fediversumit ajajoone eelvaates - show_staff_badge: - desc_html: Näita personalimärki kasutaja profiilil - title: Näita personalimärki - site_description: - desc_html: Sissejuhatuslik lõik API kohta. Kirjelda, mis teeb selle Mastodoni serveri eriliseks ja ka muud tähtsat. Te saate kasutada HTMLi silte, peamiselt <a> ja <em>. - title: Serveri kirjeldus - site_description_extended: - desc_html: Hea koht käitumisreegliteks, reegliteks, suunisteks ja muuks, mis teevad Teie serveri eriliseks. Te saate kasutada HTML silte - title: Lisa informatsioon - site_short_description: - desc_html: Kuvatud küljeribal ja metasiltides. Kirjelda, mis on Mastodon ja mis on selles serveris erilist ühes lõigus. - title: Serveri lühikirjeldus - site_terms: - desc_html: Te saate kirjutada oma privaatsuspoliitika, kasutustingimused jm seaduslikku infot. Te saate kasutada HTMLi silte - title: Kasutustingimused - site_title: Serveri nimi - thumbnail: - desc_html: Kasutatud OpenGraph ja API eelvaadeteks. 1200x630px soovitatud - title: Serveri pisipilt - timeline_preview: - desc_html: Kuva avalikku ajajoont esilehel - title: Ajajoone eelvaade - title: Lehe seaded - trendable_by_default: - desc_html: Puudutab silte, mis pole varem keelatud - title: Luba siltide trendimine ilma eelneva ülevaatuseta - trends: - desc_html: Kuva avalikult eelnevalt üle vaadatud sildid, mis on praegu trendikad - title: Populaarsed sildid praegu site_uploads: delete: Kustuta üleslaetud fail destroyed_msg: Üleslaetud fail edukalt kustutatud! @@ -540,16 +394,12 @@ et: applications: created: Rakenduse loomine õnnestus destroyed: Rakenduse kustutamine õnnestus - invalid_url: Antud URL on vale regenerate_token: Loo uus access token token_regenerated: Access tokeni loomine õnnestus warning: Olge nende andmetega ettevaatlikud. Ärge jagage neid kellegagi! your_token: Teie access token auth: - apply_for_account: Taotle kutse change_password: Salasõna - checkbox_agreement_html: Ma nõustun serveri reeglitega ja kasutustingimustega - checkbox_agreement_without_rules_html: Ma nõustun kasutustingimustega delete_account: Kustuta konto delete_account_html: Kui Te soovite oma kontot kustutada, võite jätkata siit. Teilt küsitakse kinnitust. description: @@ -579,7 +429,6 @@ et: confirming: Ootan e-posti kinnitust. pending: Teie taotlus ootab ülevaadet meie personali poolt. See võib võtta mõnda aega. Kui Teie taotlus on vastu võetud, saadetakse Teile e-kiri. redirecting_to: Teie konto ei ole aktiivne, kuna hetkel suunatakse ümber kasutajale %{acct}. - trouble_logging_in: Probleeme sisselogimisega? authorize_follow: already_following: Te juba jälgite seda kontot already_requested: Te juba saatsite jälgimistaotluse sellele kontole @@ -632,10 +481,6 @@ et: more_details_html: Rohkemate detailide jaoks palun lugege privaatsuspoliitikat. username_available: Teie kasutajanimi muutub uuesti kasutatavaks username_unavailable: Teie kasutajanimi jääb mitte kasutatavaks - directories: - directory: Profiilikataloog - explanation: Avasta kasutajaid nende huvide põhjal - explore_mastodon: Avasta %{title} domain_validator: invalid_domain: ei ole sobiv domeeni nimi errors: @@ -685,7 +530,6 @@ et: title: Muuda filtrit errors: invalid_context: Puudulik või vale kontekst - invalid_irreversible: Taastamatu filter töötab ainult kodu või teavituste kontekstis index: delete: Kustuta empty: Teil pole filtreid. @@ -693,9 +537,6 @@ et: new: title: Lisa uus filter footer: - developers: Arendajad - more: Rohkem… - resources: Materjalid trending_now: Praegu trendikad generic: all: Kõik @@ -723,7 +564,6 @@ et: following: Jälgimiste nimekiri muting: Vaigistuse nimekiri upload: Lae üles - in_memoriam_html: Mälestamaks. invites: delete: Peata expired: Aegunud @@ -788,14 +628,6 @@ et: moderation: title: Moderatsioon notification_mailer: - digest: - action: Vaata kõiki teateid - body: Siin on kiire ülevaade sellest, mis sõnumeid Te ei näinud pärast Teie viimast külastust %{since} - mention: "%{name} mainis Teid postituses:" - new_followers_summary: - one: Ja veel, Te saite ühe uue jälgija kui Te olite eemal! Jee! - other: Ja veel, Te saite %{count} uut jälgijat kui Te olite eemal! Hämmastav! - title: Teie puudumisel... favourite: body: "%{name} lisas Teie staatuse lemmikutesse:" subject: "%{name} märkis su staatuse lemmikuks" @@ -869,24 +701,7 @@ et: remove_selected_follows: Lõpeta valitud kasutajate jälgimine status: Konto olek remote_follow: - acct: Sisestage oma kasutajanimi@domeen, kust te soovite jälgida missing_resource: Ei suutnud leida vajalikku suunamise URLi Teie konto jaoks - no_account_html: Teil pole veel kontot? Saate luua ühe siit - proceed: Jätka jälgimiseks - prompt: 'Te hakkate jälgima:' - reason_html: |- - Miks on see samm vajalik? - %{instance} ei pruugi olla server, kus asub Teie konto, nii et me peame Teid suunama oma kodu serverile. - remote_interaction: - favourite: - proceed: Jätka lemmikuks lisamiseks - prompt: 'Te soovite lisada seda tuututust lemmikutesse:' - reblog: - proceed: Jätka upitamiseks - prompt: 'Te soovite seda tuututust upitada:' - reply: - proceed: Jätka vastamiseks - prompt: 'Te soovite vastata sellele tuututusele:' scheduled_statuses: over_daily_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit} selle päeva kohta over_total_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit} @@ -968,8 +783,6 @@ et: sensitive_content: Tundlik sisu tags: does_not_match_previous_name: ei ühti eelmise nimega - terms: - title: "%{instance} Kasutustingimused ja Privaatsuspoliitika" themes: contrast: Mastodon (Kõrge kontrast) default: Mastodon (Tume) @@ -1005,20 +818,11 @@ et: suspend: Konto peatatud welcome: edit_profile_action: Sea üles profiil - edit_profile_step: Te saate oma profiili isikupärastada näiteks lisades profiilipildi, päise, muutes oma kuvanime ja muud. Kui Te soovite üle vaadata inimesi, kes Teid jälgida soovivad, saate lukustada oma konto. explanation: Siin on mõned nõuanded, mis aitavad sul alustada final_action: Alusa postitamist - final_step: 'Alusta postitamist! Isegi ilma jälgijateta näevad teised Teie avalikke postitusi, näiteks kohalikul ajajoonel ning siltidest. Te võite ennast tutvustada kasutades silti #introductions.' full_handle: Teie täisnimi full_handle_hint: See on mida oma sõpradega jagada, et nad saaksid Teile sõnumeid saata ning Teid jälgida teiselt serverilt. - review_preferences_action: Muuda eelistusi - review_preferences_step: Kindlasti seadistage oma sätted Teie maitse järgi, näiteks e-kirju, mida soovite saada, või millist privaatsustaset Te soovite vaikimisi. Kui Teil pole merehaigust, võite Te näiteks lubada GIFide automaatse mängimise. subject: Tere tulemast Mastodoni - tip_federated_timeline: Föderatiivne ajajoon on reaalajas voogvaade tervest Mastodoni võrgust. Aga see sisaldab ainult inimesi, keda su naabrid tellivad, niiet see pole täiuslik. - tip_following: Vaikimisi, Te jälgite ainult oma serveri administraator(eid). Et leida rohkem huvitavamaid inimesi, vaadake kohalikke ja föderatiivseid ajajooni. - tip_local_timeline: Kohalik ajajoon on reaalajas voogvaade inimestest, kes on serveris %{instance}. Need on Teie lähimad naabrid! - tip_mobile_webapp: Kui Teie mobiilne veebilehitseja pakub Teile lisada meid Teie avaekraanile, saate Te reaalajas teateid. See töötab nagu tavaline mobiilirakendus mitmel moel! - tips: Nõuanded title: Tere tulemast pardale, %{name}! users: follow_limit_reached: Te ei saa jälgida rohkem kui %{limit} inimest diff --git a/config/locales/eu.yml b/config/locales/eu.yml index bc515fe5e7f679..11dcec2bc93c75 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1,92 +1,27 @@ --- eu: about: - about_hashtag_html: Hauek #%{hashtag} traola duten bidalketa publikoak dira. Fedibertsoko edozein kontu baduzu haiekin elkarrekintza izan dezakezu. about_mastodon_html: 'Etorkizuneko sare soziala: ez iragarkirik eta ez zelatatze korporatiborik, diseinu etikoa eta deszentralizazioa! Izan zure datuen jabea Mastodonekin!' - about_this: Honi buruz - active_count_after: aktibo - active_footnote: Hilabeteko erabiltzaile aktiboak (HEA) - administered_by: 'Administratzailea(k):' - api: APIa - apps: Aplikazio mugikorrak - apps_platforms: Erabili Mastodon, iOS, Android eta beste plataformetatik - browse_directory: Arakatu profilen direktorio bat eta iragazi interesen arabera - browse_local_posts: Arakatu zerbitzari honetako bidalketa publikoen zuzeneko jario bat - browse_public_posts: Arakatu Mastodoneko bidalketa publikoen zuzeneko jario bat - contact: Kontaktua contact_missing: Ezarri gabe contact_unavailable: E/E - continue_to_web: Jarraitu web aplikaziora - discover_users: Aurkitu erabiltzaileak - documentation: Dokumentazioa - federation_hint_html: "%{instance} instantzian kontu bat izanda edozein Mastodon zerbitzariko jendea jarraitu ahal izango duzu, eta harago ere." - get_apps: Probatu mugikorrerako aplikazio bat hosted_on: Mastodon %{domain} domeinuan ostatatua - instance_actor_flash: "Kontu hau zerbitzaria bera adierazten duen aktore birtual bat da, ez norbanako bat. Federaziorako erabiltzen da eta ez zenuke blokeatu behar instantzia osoa blokeatu nahi ez baduzu, kasu horretan domeinua blokeatzea egokia litzateke. \n" - learn_more: Ikasi gehiago - logged_in_as_html: "%{username} bezala saioa hasita zaude." - logout_before_registering: Saioa hasi duzu jada. - privacy_policy: Pribatutasun politika - rules: Zerbitzariaren arauak - rules_html: 'Behean Mastodon zerbitzari honetan kontua eduki nahi baduzu jarraitu beharreko arauen laburpena daukazu:' - see_whats_happening: Ikusi zer gertatzen ari den - server_stats: 'Zerbitzariaren estatistikak:' - source_code: Iturburu kodea - status_count_after: - one: bidalketa - other: bidalketa - status_count_before: Hauek - tagline: Jarraitu lagunak eta egin berriak - terms: Erabilera baldintzak - unavailable_content: Eduki eskuraezina - unavailable_content_description: - domain: Zerbitzaria - reason: Arrazoia - rejecting_media: 'Zerbitzari hauetako multimedia fitxategiak ez dira prozesatuko ez gordeko, eta ez dira iruditxoak bistaratuko, jatorrizko irudira joan behar izango da klik eginez:' - rejecting_media_title: Iragazitako multimedia - silenced: 'Zerbitzari hauetako bidalketak denbora-lerro eta elkarrizketa publikoetan ezkutatuko dira, eta bere erabiltzaileen interakzioek ez dute jakinarazpenik sortuko ez badituzu jarraitzen:' - silenced_title: Isilarazitako zerbitzariak - suspended: 'Ez da zerbitzari hauetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari hauetako erabiltzaileekin komunikatzea ezinezkoa eginez:' - suspended_title: Kanporatutako zerbitzariak - unavailable_content_html: Mastodonek orokorrean fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikustea eta beraiekin aritzea ahalbidetzen dizu. Salbuespena egin da zerbitzari zehatz honekin. - user_count_after: - one: erabiltzaile - other: erabiltzaile - user_count_before: Hemen - what_is_mastodon: Zer da Mastodon? + title: Honi buruz accounts: - choices_html: "%{name}(r)en aukerak:" - endorsements_hint: Jarraitzen duzun jendea sustatu dezakezu web interfazearen bidez, eta hemen agertuko da. - featured_tags_hint: Hemen agertuko diren traolak nabarmendu ditzakezu. follow: Jarraitu followers: one: Jarraitzaile other: jarraitzaile following: Jarraitzen instance_actor_flash: Kontu hau zerbitzaria adierazten duen aktore birtual bat da eta ez banako erabiltzaile bat. Federatzeko helburuarekin erabiltzen da eta ez da kanporatu behar. - joined: "%{date}(e)an elkartua" last_active: azkenekoz aktiboa link_verified_on: 'Esteka honen jabetzaren egiaztaketa data: %{date}' - media: Multimedia - moved_html: "%{name} hona migratu da %{new_profile_link}:" - network_hidden: Informazio hau ez dago eskuragarri nothing_here: Ez dago ezer hemen! - people_followed_by: "%{name}(e)k jarraitzen dituenak" - people_who_follow: "%{name} jarraitzen dutenak" pin_errors: following: Onetsi nahi duzun pertsona aurretik jarraitu behar duzu posts: one: Bidalketa other: Bidalketa posts_tab_heading: Bidalketa - posts_with_replies: Bidalketak eta erantzunak - roles: - admin: Administratzailea - bot: Bot-a - group: Taldea - moderator: Moderatzailea - unavailable: Profila ez dago eskuragarri - unfollow: Utzi jarraitzeari admin: account_actions: action: Burutu ekintza @@ -103,12 +38,17 @@ eu: avatar: Abatarra by_domain: Domeinua change_email: - changed_msg: e-mail kontua ongi aldatu da! + changed_msg: Eposta kontua ongi aldatu da! current_email: Uneko e-mail helbidea label: Aldatu e-mail helbidea new_email: E-mail berria submit: Aldatu e-mail helbidea title: Aldatu %{username}(r)en e-mail helbidea + change_role: + changed_msg: Rola ondo aldatu da! + label: Aldatu rola + no_role: Rolik ez + title: Aldatu %{username} erabiltzailearen rola confirm: Berretsi confirmed: Berretsita confirming: Berresten @@ -152,20 +92,22 @@ eu: active: Aktiboa all: Denak pending: Zain + silenced: Mugatua suspended: Kanporatua title: Moderazioa moderation_notes: Moderazio oharrak most_recent_activity: Azken jarduera most_recent_ip: Azken IP-a - no_account_selected: Ez da konturik aldatu ez delako bata bera hautatu + no_account_selected: Ez da konturik aldatu ez delako bat ere hautatu no_limits_imposed: Ez da mugarik ezarri + no_role_assigned: Ez du rolik esleituta not_subscribed: Harpidetu gabe pending: Berrikusketa egiteke perform_full_suspension: Kanporatu - previous_strikes: Aurreko abisuak + previous_strikes: Aurreko neurriak previous_strikes_description_html: - one: Kontu honek abisu bat dauka. - other: Kontu honek %{count} abisu dauzka. + one: Kontu honen aurka neurri bat hartu da. + other: Kontu honen aurka %{count} neurri hartu dira. promote: Sustatu protocol: Protokoloa public: Publikoa @@ -185,12 +127,7 @@ eu: reset: Berrezarri reset_password: Berrezarri pasahitza resubscribe: Berriro harpidetu - role: Baimenak - roles: - admin: Administratzailea - moderator: Moderatzailea - staff: Langilea - user: Erabiltzailea + role: Rola search: Bilatu search_same_email_domain: E-mail domeinu bera duten beste erabiltzailean search_same_ip: IP bera duten beste erabiltzaileak @@ -206,7 +143,7 @@ eu: silence: Isilarazi silenced: Isilarazita statuses: Bidalketa - strikes: Aurreko abisuak + strikes: Aurreko neurriak subscribe: Harpidetu suspend: Kanporatu suspended: Kanporatuta @@ -233,17 +170,21 @@ eu: approve_user: Onartu erabiltzailea assigned_to_self_report: Esleitu salaketa change_email_user: Aldatu erabiltzailearen e-maila + change_role_user: Aldatu erabiltzailearen rola confirm_user: Berretsi erabiltzailea create_account_warning: Sortu abisua create_announcement: Sortu iragarpena + create_canonical_email_block: Sortu eposta blokeoa create_custom_emoji: Sortu emoji pertsonalizatua create_domain_allow: Sortu domeinu baimena create_domain_block: Sortu domeinu blokeoa create_email_domain_block: Sortu e-mail domeinu blokeoa create_ip_block: Sortu IP araua create_unavailable_domain: Sortu eskuragarri ez dagoen domeinua + create_user_role: Sortu rola demote_user: Jaitsi erabiltzailearen maila destroy_announcement: Ezabatu iragarpena + destroy_canonical_email_block: Ezabatu eposta blokeoa destroy_custom_emoji: Ezabatu emoji pertsonalizatua destroy_domain_allow: Ezabatu domeinu baimena destroy_domain_block: Ezabatu domeinu blokeoa @@ -252,6 +193,7 @@ eu: destroy_ip_block: Ezabatu IP araua destroy_status: Ezabatu bidalketa destroy_unavailable_domain: Ezabatu eskuragarri ez dagoen domeinua + destroy_user_role: Ezabatu rola disable_2fa_user: Desgaitu 2FA disable_custom_emoji: Desgaitu emoji pertsonalizatua disable_sign_in_token_auth_user: Desgaitu e-posta token autentifikazioa erabiltzailearentzat @@ -265,6 +207,7 @@ eu: reject_user: Baztertu erabiltzailea remove_avatar_user: Kendu abatarra reopen_report: Berrireki txostena + resend_user: Birbidali berrespen posta reset_password_user: Berrezarri pasahitza resolve_report: Konpondu txostena sensitive_account: Markatu zure kontuko multimedia hunkigarri bezala @@ -278,24 +221,30 @@ eu: update_announcement: Eguneratu iragarpena update_custom_emoji: Eguneratu emoji pertsonalizatua update_domain_block: Eguneratu domeinu-blokeoa + update_ip_block: Eguneratu IP araua update_status: Eguneratu bidalketa + update_user_role: Eguneratu rola actions: approve_appeal_html: "%{name} erabiltzaileak %{target} erabiltzailearen moderazio erabakiaren apelazioa onartu du" approve_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen izen-ematea onartu du" assigned_to_self_report_html: "%{name} erabiltzaileak %{target} salaketa bere buruari esleitu dio" change_email_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen e-posta helbidea aldatu du" + change_role_user_html: "%{name} erabiltzaileak %{target} kontuaren rola aldatu du" confirm_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen e-posta helbidea berretsi du" create_account_warning_html: "%{name} erabiltzaileak abisua bidali dio %{target} erabiltzaileari" create_announcement_html: "%{name} erabiltzaileak %{target} iragarpen berria sortu du" + create_canonical_email_block_html: "%{name} erabiltzaileak %{target} hash-a duen helbide elektronikoa blokeatu du" create_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji berria kargatu du" create_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federazioa onartu du" create_domain_block_html: "%{name} erabiltzaileak %{target} domeinua blokeatu du" create_email_domain_block_html: "%{name} erabiltzaileak %{target} e-posta helbideen domeinua blokeatu du" create_ip_block_html: "%{name} kontuak %{target} IParen araua sortu du" create_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketa gelditu du" + create_user_role_html: "%{name} erabiltzaileak %{target} rola sortu du" demote_user_html: "%{name} erabiltzaileak %{target} erabiltzailea mailaz jaitsi du" destroy_announcement_html: "%{name} erabiltzaileak %{target} iragarpena ezabatu du" - destroy_custom_emoji_html: "%{name} erabiltzaileak %{target} emojia suntsitu du" + destroy_canonical_email_block_html: "%{name} erabiltzaileak %{target} hash-a duen helbide elektronikoa desblokeatu du" + destroy_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a ezabatu du" destroy_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federatzea debekatu du" destroy_domain_block_html: "%{name} erabiltzaileak %{target} domeinua desblokeatu du" destroy_email_domain_block_html: "%{name} erabiltzaileak %{target} e-posta helbideen domeinua desblokeatu du" @@ -303,6 +252,7 @@ eu: destroy_ip_block_html: "%{name} erabiltzaileak %{target} IParen araua ezabatu du" destroy_status_html: "%{name} erabiltzaileak %{target} erabiltzailearen bidalketa kendu du" destroy_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketari berrekin dio" + destroy_user_role_html: "%{name} erabiltzaileak %{target} rola ezabatu du" disable_2fa_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen bi faktoreko autentifikazioa desgaitu du" disable_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a desgaitu du" disable_sign_in_token_auth_user_html: "%{name} erabiltzaileak e-posta token autentifikazioa desgaitu du %{target} helburuan" @@ -316,6 +266,7 @@ eu: reject_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen izen-ematea baztertu du" remove_avatar_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen abatarra kendu du" reopen_report_html: "%{name} erabiltzaileak %{target} txostena berrireki du" + resend_user_html: "%{name} kontuak berrespen eposta bidali du %{target} kontuarentzat" reset_password_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen pasahitza berrezarri du" resolve_report_html: "%{name} erabiltzaileak %{target} txostena konpondu du" sensitive_account_html: "%{name} erabiltzaileak %{target} erabiltzailearen multimedia hunkigarri bezala markatu du" @@ -329,8 +280,10 @@ eu: update_announcement_html: "%{name} erabiltzaileak %{target} iragarpena eguneratu du" update_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a eguneratu du" update_domain_block_html: "%{name} erabiltzaileak %{target} domeinu-blokeoa eguneratu du" + update_ip_block_html: "%{name} erabiltzaileak %{target} IParen araua aldatu du" update_status_html: "%{name} erabiltzaileak %{target} erabiltzailearen bidalketa eguneratu du" - deleted_status: "(ezabatutako bidalketa)" + update_user_role_html: "%{name} erabiltzaileak %{target} rola aldatu du" + deleted_account: ezabatu kontua empty: Ez da egunkaririk aurkitu. filter_by_action: Iragazi ekintzen arabera filter_by_user: Iragazi erabiltzaileen arabera @@ -374,6 +327,7 @@ eu: listed: Zerrendatua new: title: Gehitu emoji pertsonal berria + no_emoji_selected: Ez da emojirik aldatu ez delako bat ere hautatu not_permitted: Ez daukazu ekintza hau burutzeko baimenik overwrite: Gainidatzi shortcode: Laster-kodea @@ -391,6 +345,18 @@ eu: media_storage: Multimedia biltegiratzea new_users: erabiltzaile berri opened_reports: txosten irekita + pending_appeals_html: + one: Apelazio %{count} zain + other: "%{count} apelazio zain" + pending_reports_html: + one: Txosten %{count} zain + other: "%{count} txosten zain" + pending_tags_html: + one: Traola %{count} zain + other: "%{count} traola zain" + pending_users_html: + one: Erabiltzaile %{count} zain + other: "%{count} erabiltzaile zain" resolved_reports: txosten konponduta software: Softwarea sources: Izen emate jatorriak @@ -414,6 +380,7 @@ eu: destroyed_msg: Domeinuaren blokeoa desegin da domain: Domeinua edit: Editatu domeinu-blokeoa + existing_domain_block: Aurretik muga zorrotzagoak ezarriak dituzu %{name} domeinuan. existing_domain_block_html: '%{name} domeinuan muga zorrotzagoak ezarri dituzu jada, aurretik desblokeatu beharko duzu.' new: create: Sortu blokeoa @@ -438,6 +405,9 @@ eu: view: Ikusi domeinuaren blokeoa email_domain_blocks: add_new: Gehitu berria + attempts_over_week: + one: Izen-emateko saiakera %{count} azken astean + other: Izen-emateko %{count} saiakera azken astean created_msg: Ongi gehitu da e-mail helbidea domeinuen zerrenda beltzera delete: Ezabatu dns: @@ -446,8 +416,11 @@ eu: domain: Domeinua new: create: Gehitu domeinua + resolve: Ebatzi domeinua title: Sarrera berria e-mail zerrenda beltzean - no_email_domain_block_selected: Ez da eposta domeinu blokeorik aldatu ez delako bat bera ere hautatu + no_email_domain_block_selected: Ez da eposta domeinu blokeorik aldatu ez delako bat ere hautatu + resolved_dns_records_hint_html: Domeinu-izena ondorengo MX domeinuetara ebazten da, zeinek eposta onartzeko ardura duten. MX domeinu bat blokeatzeak MX domeinu hori erabiltzen duen edozein helbide elektronikotatik izena-ematea blokeatzen du, baita ikusgai dagoen domeinu-izena beste bat bada ere. Kontuz ibili eposta hornitzaile nagusiak blokeatu gabe. + resolved_through_html: "%{domain} domeinuaren bidez ebatzia" title: E-mail zerrenda beltza follow_recommendations: description_html: "Jarraitzeko gomendioek erabiltzaile berriei eduki interesgarria azkar aurkitzen laguntzen diete. Erabiltzaile batek jarraitzeko gomendio pertsonalizatuak jasotzeko adina interakzio izan ez duenean, kontu hauek gomendatzen zaizkio. Egunero birkalkulatzen dira hizkuntza bakoitzerako, azken aldian parte-hartze handiena izan duten eta jarraitzaile lokal gehien dituzten kontuak nahasiz." @@ -463,6 +436,9 @@ eu: one: Domeinura entregatzeak arrakastarik gabe huts egiten badu egun %{count} igaro ondoren, ez da entregatzeko saiakera gehiago egingo, ez bada domeinu horretatik entregarik jasotzen. other: Domeinura entregatzeak arrakastarik gabe huts egiten badu %{count} egun igaro ondoren, ez da entregatzeko saiakera gehiago egingo, ez bada domeinu horretatik entregarik jasotzen. failure_threshold_reached: Hutsegite atalasera iritsi da %{date} datan. + failures_recorded: + one: Huts egindako saiakera egun %{count}ean. + other: Huts egindako saiakera %{count} egun desberdinetan. no_failures_recorded: Ez dago hutsegiterik erregistroan. title: Egoera warning: Zerbitzari honetara konektatzeko azken saiakerak huts egin du @@ -494,6 +470,7 @@ eu: delivery: all: Guztiak clear: Garbitu banaketa erroreak + failing: Huts egiten du restart: Berrabiarazi banaketa stop: Gelditu banaketa unavailable: Eskuraezina @@ -541,7 +518,7 @@ eu: '94670856': 3 urte new: title: Sortu IP arau berria - no_ip_block_selected: Ez da IP araurik aldatu, ez delako batere hautatu + no_ip_block_selected: Ez da IP araurik aldatu, ez delako bat ere hautatu title: IP arauak relationships: title: "%{acct}(e)ren erlazioak" @@ -573,9 +550,10 @@ eu: action_log: Auditoria-egunkaria action_taken_by: Neurrien hartzailea actions: - delete_description_html: Salatutako bidalketak ezabatuko dira eta abisu bat gordeko da, etorkizunean kontu berarekin elkarrekintzarik baduzu kontuan izan dezazun. + delete_description_html: Salatutako bidalketak ezabatuko dira eta neurria gordeko da, etorkizunean kontu berarekin elkarrekintzarik baduzu kontuan izan dezazun. + mark_as_sensitive_description_html: Salatutako bidalketetako multimedia edukia hunkigarri bezala eta neurria gordeko da, etorkizunean kontu honek arau-hausterik egiten badu kontuan izan dezazun. other_description_html: Ikusi kontuaren portaera kontrolatzeko eta salatutako kontuarekin komunikazioa pertsonalizatzeko aukera gehiago. - resolve_description_html: Ez da neurririk hartuko salatutako kontuaren aurka, ez da abisurik gordeko eta salaketa itxiko da. + resolve_description_html: Ez da ekintzarik hartuko salatutako kontuaren aurka, ez da neurria gordeko eta salaketa itxiko da. silence_description_html: Profila dagoeneko jarraitzen dutenei edo eskuz bilatzen dutenei bakarrik agertuko zaie, bere irismena asko mugatuz. Beti bota daiteke atzera. suspend_description_html: Profila eta bere eduki guztiak iritsiezinak bihurtuko dira, ezabatzen den arte. Kontuarekin ezin da interakziorik eduki. Atzera bota daiteke 30 eguneko epean. actions_description_html: Erabaki txosten hau konpontzeko ze ekintza hartu. Salatutako kontuaren aurka zigor ekintza bat hartzen baduzu, eposta jakinarazpen bat bidaliko zaie, Spam kategoria hautatzean ezik. @@ -623,6 +601,67 @@ eu: unresolved: Konpondu gabea updated_at: Eguneratua view_profile: Ikusi profila + roles: + add_new: Gehitu rola + assigned_users: + one: Erabiltzaile %{count} + other: "%{count} erabiltzaile" + categories: + administration: Administrazioa + devops: DevOps + invites: Gonbidapenak + moderation: Moderazioa + special: Berezia + delete: Ezabatu + description_html: "Erabiltzaile rolak erabiliz erabiltzaileek Mastodonen ze funtzio eta lekutara sarbidea duten pertsonalizatu dezakezu." + edit: Editatu '%{name}' rola + everyone: Baimen lehenetsiak + everyone_full_description_html: Hau erabiltzaile guztiei eragiten dien oinarrizko rola da, rol bat esleitu gabekoei ere bai. Gainerako rolek honetatik heredatzen dituzte baimenak. + permissions_count: + one: Baimen %{count} + other: "%{count} baimen" + privileges: + administrator: Administratzailea + administrator_description: Baimen hau duten erabiltzaileak baimen guztien gainetik pasako dira + delete_user_data: Ezabatu erabiltzaileen datuak + delete_user_data_description: Baimendu erabiltzaileek beste erabiltzaileen datuak atzerapenik gabe ezabatzea + invite_users: Gonbidatu erabiltzaileak + invite_users_description: Baimendu erabiltzaileek zerbitzarira jende berria gonbidatzea + manage_announcements: Kudeatu iragarpenak + manage_announcements_description: Baimendu erabiltzaileek zerbitzariko iragarpenak kudeatzea + manage_appeals: Kudeatu apelazioak + manage_appeals_description: Baimendu erabiltzaileek moderazio ekintzen aurkako apelazioak berrikustea + manage_blocks: Kudeatu blokeatzeak + manage_blocks_description: Baimendu erabiltzaileek eposta hornitzaile eta IP helbideak blokeatzea + manage_custom_emojis: Kudeatu emoji pertsonalizatuak + manage_custom_emojis_description: Baimendu erabiltzaileek zerbitzariko emoji pertsonalizatuak kudeatzea + manage_federation: Kudeatu federazioa + manage_federation_description: Baimendu erabiltzaileek beste domeinuak blokeatu edo federazioa onartzea, eta banagarritasuna kontrolatzea + manage_invites: Kudeatu gonbidapenak + manage_invites_description: Baimendu erabiltzaileek gonbidapen estekak arakatu eta desaktibatzea + manage_reports: Kudeatu txostenak + manage_reports_description: Baimendu erabiltzaileek txostenak berrikusi eta moderazio ekintzak burutzea + manage_roles: Kudeatu rolak + manage_roles_description: Baimendu erabiltzaileek beren mailaren azpiko rolak kudeatu eta esleitzea + manage_rules: Kudeatu arauak + manage_rules_description: Baimendu erabiltzaileek zerbitzariaren arauak aldatzea + manage_settings: Kudeatu ezarpenak + manage_settings_description: Baimendu erabiltzaileek gunearen ezarpenak aldatzea + manage_taxonomies: Kudeatu taxonomiak + manage_taxonomies_description: Baimendu erabiltzaileek joerak berrikustea eta traolen ezarpenak eguneratzea + manage_user_access: Kudeatu erabiltzaileen sarbidea + manage_user_access_description: Baimendu erabiltzaileek beste erabiltzaileen bi faktoreko autentifikazioa desaktibatzea, eposta helbideak aldatzea eta pasahitzak berrezartzea + manage_users: Kudeatu erabiltzaileak + manage_users_description: Baimendu erabiltzaileek beste erabiltzaileen xehetasunak ikusi eta moderazio ekintzak burutzea + manage_webhooks: Kudeatu webhook-ak + manage_webhooks_description: Baimendu erabiltzaileek webhook-ak konfiguratzea gertaera administratiboentzat + view_audit_log: Ikusi auditoria-egunkaria + view_audit_log_description: Baimendu erabiltzaileek zerbitzariko administrazio-ekintzen historia ikustea + view_dashboard: Ikusi aginte-panela + view_dashboard_description: Baimendu erabiltzaileek aginte-panela eta hainbat estatistika ikustea + view_devops: DevOps + view_devops_description: Baimendu erabiltzaileek Sidekiq eta pgHero aginte-paneletara sarbidea izatea + title: Rolak rules: add_new: Gehitu araua delete: Ezabatu @@ -631,108 +670,67 @@ eu: empty: Ez da zerbitzariko araurik definitu oraindik. title: Zerbitzariaren arauak settings: - activity_api_enabled: - desc_html: Lokalki argitaratutako bidalketa kopurua, erabiltzaile aktiboak, eta izen emate berriak asteko - title: Argitaratu erabiltzaile-jardueraren estatistikak - bootstrap_timeline_accounts: - desc_html: Banandu erabiltzaile-izenak koma bitartez. Giltzapetu gabeko kontu lokalekin dabil bakarrik. Hutsik dagoenean lehenetsitakoa admin lokal guztiak da. - title: Lehenetsitako jarraipena erabiltzaile berrientzat - contact_information: - email: Laneko e-mail helbidea - username: Kontaktuaren erabiltzaile-izena - custom_css: - desc_html: Aldatu itxura orri bakoitzean kargatutako CSS bidez - title: CSS pertsonala - default_noindex: - desc_html: Ezarpen hau berez aldatu ez duten erabiltzaile guztiei eragiten die - title: Utzi erabiltzaileak bilatzailearen indexaziotik kanpo lehenetsita + about: + manage_rules: Kudeatu zerbitzariaren arauak + preamble: Zerbitzaria nola gobernatzen, moderatzen eta finantzatzen den azaltzen duen informazio xehea eman. + rules_hint: Erabiltzaileek jarraitu behar dituzten arauei eskainitako atal bat dago. + title: Honi buruz + appearance: + preamble: Mastodonen web interfazea pertsonalizatu. + title: Itxura + branding: + preamble: 'Zure zerbitzariaren markak sareko beste zerbitzarietatik bereizten du. Informazio hau hainbat ingurunetan bistaratuko da: Mastodonen web interfazean, aplikazio natiboetan, esteken aurrebistak beste webguneetan eta mezularitza aplikazioetan eta abar. Horregatik, informazio hau garbia eta laburra izatea komeni da.' + title: Marka + content_retention: + preamble: Kontrolatu erabiltzaileek sortutako edukia nola biltegiratzen den Mastodonen. + title: Edukia atxikitzea + discovery: + follow_recommendations: Jarraitzeko gomendioak + preamble: Eduki interesgarria aurkitzea garrantzitsua da Mastodoneko erabiltzaile berrientzat, behar bada inor ez dutelako ezagutuko. Kontrolatu zure zerbitzariko aurkikuntza-ezaugarriek nola funtzionatzen duten. + profile_directory: Profil-direktorioa + public_timelines: Denbora-lerro publikoak + title: Aurkitzea + trends: Joerak domain_blocks: all: Guztiei disabled: Inori ez - title: Erakutsi domeinu-blokeoak users: Saioa hasita duten erabiltzaile lokalei - domain_blocks_rationale: - title: Erakutsi arrazoia - hero: - desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, zerbitzariaren irudia hartuko du - title: Azaleko irudia - mascot: - desc_html: Hainbat orritan bistaratua. Gutxienez 293x205px aholkatzen da. Ezarri ezean lehenetsitako maskota erakutsiko da - title: Maskotaren irudia - peers_api_enabled: - desc_html: Zerbitzari honek fedibertsoan aurkitutako domeinu-izenak - title: Argitaratu aurkitutako zerbitzarien zerrenda - preview_sensitive_media: - desc_html: Beste webguneetako esteken aurrebistak iruditxoa izango du multimedia hunkigarri gisa markatzen bada ere - title: Erakutsi multimedia hunkigarria OpenGraph aurrebistetan - profile_directory: - desc_html: Baimendu erabiltzaileak aurkigarriak izatea - title: Gaitu profil-direktorioa registrations: - closed_message: - desc_html: Azaleko orrian bistaratua izen ematea ixten denean. HTML etiketak erabili ditzakezu - title: Izen emate itxiaren mezua - deletion: - desc_html: Baimendu edonori bere kontua ezabatzea - title: Ireki kontu ezabaketa - min_invite_role: - disabled: Inor ez - title: Baimendu hauen gobidapenak - require_invite_text: - desc_html: Izen emateak eskuz onartu behar direnean, "Zergatik elkartu nahi duzu?" testu sarrera derrigorrezko bezala ezarri, ez hautazko - title: Eskatu erabiltzaile berriei bat egiteko arrazoia sartzeko + preamble: Kontrolatu nork sortu dezakeen kontua zerbitzarian. + title: Izen emateak registrations_mode: modes: approved: Izena emateko onarpena behar da none: Ezin du inork izena eman open: Edonork eman dezake izena - title: Erregistratzeko modua - show_known_fediverse_at_about_page: - desc_html: Txandakatzean, fedibertso ezagun osoko tootak bistaratuko ditu aurrebistan. Bestela, toot lokalak besterik ez ditu erakutsiko - title: Erakutsi fedibertsu ezagun osoko denbora-lerroa aurrebistan - show_staff_badge: - desc_html: Erakutsi langile banda erabiltzailearen orrian - title: Erakutsi langile banda - site_description: - desc_html: Azaleko orrian agertuko den sarrera paragrafoa. Azaldu zerk egiten duen berezi Mastodon zerbitzari hau eta garrantzizko beste edozer. HTML etiketak erabili ditzakezu, zehazki <a> eta <em>. - title: Zerbitzariaren deskripzioa - site_description_extended: - desc_html: Zure jokabide-koderako toki on bat, arauak, gidalerroak eta zure zerbitzari desberdin egiten duten bestelakoak. HTML etiketak erabili ditzakezu - title: Informazio hedatu pertsonalizatua - site_short_description: - desc_html: Albo-barra eta meta etiketetan bistaratua. Deskribatu zerk egiten duen Mastodon zerbitzari hau berezia paragrafo batean. Hutsik lagatzekotan lehenetsitako deskripzioa agertuko da. - title: Zerbitzariaren deskripzio laburra - site_terms: - desc_html: Zure pribatutasun politika, erabilera baldintzak eta bestelako testu legalak idatzi ditzakezu. HTML etiketak erabili ditzakezu - title: Erabilera baldintza pertsonalizatuak - site_title: Zerbitzariaren izena - thumbnail: - desc_html: Aurrebistetarako erabilia OpenGraph eta API bidez. 1200x630px aholkatzen da - title: Zerbitzariaren iruditxoa - timeline_preview: - desc_html: Bistaratu denbora-lerro publikoa hasiera orrian - title: Denbora-lerroaren aurrebista - title: Gunearen ezarpenak - trendable_by_default: - desc_html: Aurretik debekatu ez diren traola guztiei eragiten dio - title: Baimendu traolak joera bihurtzea aurretik errebisatu gabe - trends: - desc_html: Erakutsi publikoki orain joeran dauden aurretik errebisatutako traolak - title: Traolak joeran + title: Zerbitzariaren ezarpenak site_uploads: delete: Ezabatu igotako fitxategia destroyed_msg: Guneko igoera ongi ezabatu da! statuses: + account: Egilea + application: Aplikazioa back_to_account: Atzera kontuaren orrira back_to_report: Atzera txostenaren orrira batch: remove_from_report: Kendu txostenetik report: Salatu deleted: Ezabatuta + favourites: Gogokoak + history: Bertsio-historia + in_reply_to: Honi erantzuten + language: Hizkuntza media: title: Multimedia - no_status_selected: Ez da bidalketarik aldatu ez delako bidalketarik aukeratu + metadata: Metadatuak + no_status_selected: Ez da bidalketarik aldatu ez delako bat ere hautatu + open: Ireki bidalketa + original_status: Jatorrizko bidalketa + reblogs: Bultzadak + status_changed: Bidalketa aldatuta title: Kontuaren bidalketak + trending: Joera + visibility: Ikusgaitasuna with_media: Multimediarekin strikes: actions: @@ -772,22 +770,34 @@ eu: description_html: Esteka hauek zure zerbitzariak ikusten dituen kontuek asko zabaltzen ari diren estekak dira. Zure erabiltzaileei munduan ze berri den jakiteko lagungarriak izan daitezke. Ez da estekarik bistaratzen argitaratzaileak onartu arte. Esteka bakoitza onartu edo baztertu dezakezu. disallow: Ukatu esteka disallow_provider: Ukatu argitaratzailea + no_link_selected: Ez da estekarik aldatu ez delako bat ere hautatu + publishers: + no_publisher_selected: Ez da argitaratzailerik aldatu ez delako bat ere hautatu shared_by_over_week: one: Pertsona batek partekatua azken astean other: "%{count} pertsonak partekatua azken astean" title: Esteken joerak usage_comparison: "%{today} aldiz partekatua gaur, atzo %{yesterday} aldiz" + only_allowed: Soilik onartutakoak pending_review: Berrikusketaren zain preview_card_providers: allowed: Argitaratzaile honen estekak joera izan daitezke + description_html: Hauek dira zure zerbitzarian maiz partekatzen diren esteken domeinuak. Estekak ez dira joeretan publikoki agertuko estekaren domeinua onartu arte. Onartzeak (edo baztertzeak) azpi-domeinuei ere eragiten die. rejected: Argitaratzaile honen estekek ezin dute joera izan title: Argitaratzaileak rejected: Ukatua statuses: allow: Onartu bidalketa allow_account: Onartu egilea + description_html: Hauek dira une honetan asko partekatu eta gogokoak diren bidalketak (zure zerbitzariak ezagutzen dituenak). Erabiltzaile berrientzat eta bueltan itzuli direnentzat lagungarriak izan daitezke nor jarraitu aurkitzeko. Bidalketak ez dira publikoki erakusten zuk egilea onartu arte eta egileak gomendatua izatea onartu arte. Bidalketak banan bana ere onartu edo baztertu ditzakezu. disallow: Ez onartu bidalketa disallow_account: Ez onartu egilea + no_status_selected: Ez da joerarik aldatu ez delako bat ere hautatu + not_discoverable: Egileak ez du aukeratu aurkikuntza ezaugarrietan agertzea + shared_by: + one: Behin partekatua edo gogoko egina + other: "%{friendly_count} aldiz partekatua edo gogoko egina" + title: Bidalketen joerak tags: current_score: Uneko emaitza%{score} dashboard: @@ -796,7 +806,9 @@ eu: tag_servers_dimension: Zerbitzari nagusiak tag_servers_measure: zerbitzari desberdin tag_uses_measure: erabilera guztira + description_html: Traola hauek askotan agertzen dira zure zerbitzariak ikusten dituen bidalketetan. Jendea zertaz hitz egiten ari den aurkitzen lagun diezaieke erabiltzaileei. Traolak ez dira publiko egiten onartzen dituzun arte. listable: Gomendatu daiteke + no_tag_selected: Ez da etiketarik aldatu ez delako bat ere hautatu not_listable: Ez da gomendatuko not_trendable: Ez da joeretan agertuko not_usable: Ezin da erabili @@ -806,14 +818,50 @@ eu: trending_rank: "%{rank}. joera" usable: Erabili daiteke usage_comparison: "%{today} aldiz erabili da gaur, atzo %{yesterday} aldiz" + used_by_over_week: + one: Pertsona batek erabilia azken astean + other: "%{count} pertsonak erabilia azken astean" title: Joerak + trending: Joerak warning_presets: add_new: Gehitu berria delete: Ezabatu edit_preset: Editatu abisu aurre-ezarpena empty: Ez duzu abisu aurrezarpenik definitu oraindik. title: Kudeatu abisu aurre-ezarpenak + webhooks: + add_new: Gehitu amaiera-puntua + delete: Ezabatu + description_html: "Webhook batek aukera ematen dio Mastodoni zure aplikazioari aukeratutako gertaeren jakinarazpenak denbora errealean bidaltzeko, zure aplikazioak automatikoki erantzunak abiarazi ditzan." + disable: Desgaitu + disabled: Desgaituta + edit: Editatu amaiera-puntua + empty: Ez duzu webhook amaiera-punturik konfiguratu oraindik. + enable: Gaitu + enabled: Aktiboa + enabled_events: + one: Gaitutako gertaera bat + other: Gaitutako %{count} gertaera + events: Gertaerak + new: Webhook berria + rotate_secret: Biratu sekretua + secret: Sinatze-sekretua + status: Egoera + title: Webhook-ak + webhook: Webhook admin_mailer: + new_appeal: + actions: + delete_statuses: bidalketak ezabatzea + disable: kontua blokeatzea + mark_statuses_as_sensitive: bidalketak hunkigarri gisa markatzea + none: abisu bat + sensitive: kontua hunkigarri gisa markatzea + silence: kontua mugatzea + suspend: kontua kanporatzea + body: "%{target} erabiltzaileak apelazioa jarri dio %{action_taken_by} erabiltzaileak %{date}(e)an hartutako %{type} motako erabakiari. Hau idatzi du:" + next_steps: Apelazioa onartu dezakezu moderazio erabakia desegiteko, edo ez ikusia egin. + subject: "%{username} erabiltzailea %{instance} instantziako moderazio erabaki bat apelatzen ari da" new_pending_account: body: Kontu berriaren xehetasunak azpian daude. Eskaera hau onartu edo ukatu dezakezu. subject: Kontu berria berrikusteko %{instance} instantzian (%{username}) @@ -822,10 +870,16 @@ eu: body_remote: "%{domain} domeinuko norbaitek %{target} salatu du" subject: Salaketa berria %{instance} instantzian (#%{id}) new_trends: + body: 'Ondorengo elementuak berrikusi behar dira publikoki bistaratu aurretik:' new_trending_links: title: Esteken joerak + new_trending_statuses: + title: Bidalketen joerak new_trending_tags: + no_approved_tags: Ez dago onartutako traolen joerarik une honetan. + requirements: 'Hautagai hauek joeretan onartutako %{rank}. traola gainditu dezakete: une honetan #%{lowest_tag_name} da, %{lowest_tag_score} puntuazioarekin.' title: Traolak joeran + subject: Joera berriak daude berrikusteko %{instance} instantzian aliases: add_new: Sortu ezizena created_msg: Ongi sortu da ezizena. Orain kontu zaharretik migratzen hasi zaitezke. @@ -855,16 +909,13 @@ eu: applications: created: Aplikazioa ongi sortu da destroyed: Aplikazioa ongi ezabatu da - invalid_url: Emandako URL-a baliogabea da regenerate_token: Birsortu sarbide token-a token_regenerated: Sarbide token-a ongi birsortu da warning: Kontuz datu hauekin, ez partekatu inoiz inorekin! your_token: Zure sarbide token-a auth: - apply_for_account: Eskatu gonbidapen bat + apply_for_account: Jarri itxarote-zerrendan change_password: Pasahitza - checkbox_agreement_html: Zerbitzariaren arauak eta erabilera baldintzak onartzen ditut - checkbox_agreement_without_rules_html: Erabilera baldintzak onartzen ditut delete_account: Ezabatu kontua delete_account_html: Kontua ezabatu nahi baduzu, jarraitu hemen. Berrestea eskatuko zaizu. description: @@ -883,6 +934,7 @@ eu: migrate_account: Migratu beste kontu batera migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, hemen konfiguratu dezakezu. or_log_in_with: Edo hasi saioa honekin + privacy_policy_agreement_html: Pribatutasun politika irakurri dut eta ados nago providers: cas: CAS saml: SAML @@ -890,20 +942,26 @@ eu: registration_closed: "%{instance} instantziak ez du kide berririk onartzen" resend_confirmation: Birbidali berresteko argibideak reset_password: Berrezarri pasahitza + rules: + preamble: Hauek %{domain} instantziako moderatzaileek ezarriak eta betearaziak dira. + title: Oinarrizko arau batzuk. security: Segurtasuna set_new_password: Ezarri pasahitza berria setup: email_below_hint_html: Beheko e-mail helbidea okerra bada, hemen aldatu dezakezu eta baieztapen e-mail berria jaso. email_settings_hint_html: Baieztamen e-maila %{email} helbidera bidali da. E-mail helbide hori zuzena ez bada, kontuaren ezarpenetan aldatu dezakezu. title: Ezarpena + sign_up: + preamble: Mastodon zerbitzari honetako kontu batekin, aukera izango duzu sareko edozein pertsona jarraitzeko, ez dio axola kontua non ostatatua dagoen. + title: "%{domain} zerbitzariko kontua prestatuko dizugu." status: account_status: Kontuaren egoera confirming: E-mail baieztapena osatu bitartean zain. functional: Zure kontua guztiz erabilgarri dago. pending: Zure eskaera gainbegiratzeko dago oraindik. Honek denbora behar lezake. Zure eskaera onartzen bada e-mail bat jasoko duzu. redirecting_to: Zure kontua ez dago aktibo orain %{acct} kontura birbideratzen duelako. + view_strikes: Ikusi zure kontuaren aurkako neurriak too_fast: Formularioa azkarregi bidali duzu, saiatu berriro. - trouble_logging_in: Arazoak saioa hasteko? use_security_key: Erabili segurtasun gakoa authorize_follow: already_following: Kontu hau aurretik jarraitzen duzu @@ -961,16 +1019,36 @@ eu: more_details_html: Xehetasun gehiagorako, ikusi pribatutasun politika. username_available: Zure erabiltzaile-izena berriro eskuragarri egongo da username_unavailable: Zure erabiltzaile-izena ez da eskuragarri egongo - directories: - directory: Profilen direktorioa - explanation: Deskubritu erabiltzaileak interesen arabera - explore_mastodon: Esploratu %{title} disputes: strikes: + action_taken: Ezarritako neurria appeal: Apelazioa + appeal_approved: Neurria behar bezala apelatu da eta jada ez da baliozkoa + appeal_rejected: Apelazioa baztertu da + appeal_submitted_at: Apelazioa bidalita + appealed_msg: Zure apelazioa bidali da. Onartzen bada, jakinaraziko zaizu. appeals: submit: Bidali apelazioa + approve_appeal: Onartu apelazioa + associated_report: Erlazionatutako txostena + created_at: Data + description_html: Hauek dira %{instance} instantziako arduradunek zure kontuaren aurka hartutako ekintzak eta bidali dizkizuten abisuak. recipient: Honi zuzendua + reject_appeal: Baztertu apelazioa + status: "%{id} bidalketa" + status_removed: Bidalketa dagoeneko ezabatu da sistematik + title: "%{date}(e)ko %{action}" + title_actions: + delete_statuses: Bidalketa ezabatzea + disable: Kontua blokeatzea + mark_statuses_as_sensitive: Bidalketak hunkigarri gisa markatzea + none: Abisua + sensitive: Kontua hunkigarri gisa markatzea + silence: Kontua mugatzea + suspend: Kontua kanporatzea + your_appeal_approved: Zure apelazioa onartu da + your_appeal_pending: Apelazio bat bidali duzu + your_appeal_rejected: Zure apelazioa baztertu da domain_validator: invalid_domain: ez da domeinu izen baliogarria errors: @@ -1019,29 +1097,60 @@ eu: public: Denbora-lerro publikoak thread: Elkarrizketak edit: + add_keyword: Gehitu gako-hitza + keywords: Gako-hitzak + statuses: Banako bidalketak + statuses_hint_html: Iragazki hau hautatutako banako bidalketei aplikatuko zaie, gako-hitzekin bat etorri ala ez. Berrikusi edo kendu bidalketak iragazkitik. title: Editatu iragazkia errors: + deprecated_api_multiple_keywords: Parametro hauek ezin dira aldatu aplikazio honetatik, iragazitako gako-hitz bat baino gehiagori eragiten diotelako. Erabili aplikazio berriago bat edo web interfazea. invalid_context: Testuinguru baliogabe edo hutsa eman da - invalid_irreversible: Behin betiko iragazketa hasiera edo jakinarazpenen testuinguruan besterik ez dabil index: + contexts: "%{contexts} testuinguruetako iragazkiak" delete: Ezabatu empty: Ez duzu iragazkirik. + expires_in: "%{distance}(a)n iraungitzen da" + expires_on: "%{date}(a)n iraungitzen da" + keywords: + one: Gako-hitz %{count} + other: "%{count} gako-hitz" + statuses: + one: Bidalketa %{count} + other: "%{count} bidalketa" + statuses_long: + one: Banako bidalketa %{count} ezkutatuta + other: Banako %{count} bidalketa ezkutatuta title: Iragazkiak new: + save: Gorde iragazki berria title: Gehitu iragazki berria + statuses: + back_to_filter: Itzuli iragazkira + batch: + remove: Kendu iragazkitik + index: + hint: Iragazki honek banako bidalketei eragiten die, beste kriterioak badaude ere. Bidalketa gehiago gehitu ditzakezu iragazkira web interfazetik. + title: Iragazitako bidalketak footer: - developers: Garatzaileak - more: Gehiago… - resources: Baliabideak trending_now: Joera orain generic: all: Denak + all_items_on_page_selected_html: + one: Orri honetako elementu %{count} hautatuta. + other: Orri honetako %{count} elementuak hautatuta. + all_matching_items_selected_html: + one: Zure bilaketarekin bat datorren elementu %{count} hautatuta. + other: Zure bilaketarekin bat datozen %{count} elementu hautatuta. changes_saved_msg: Aldaketak ongi gorde dira! copy: Kopiatu delete: Ezabatu + deselect: Desautatu guztiak none: Bat ere ez order_by: Ordenatze-irizpidea save_changes: Gorde aldaketak + select_all_matching_items: + one: Hautatu zure bilaketarekin bat datorren elementu %{count}. + other: Hautatu zure bilaketarekin bat datozen %{count} elementuak. today: gaur validation_errors: one: Zerbait ez dabil ongi! Egiaztatu beheko errorea mesedez @@ -1065,7 +1174,6 @@ eu: following: Jarraitutakoen zerrenda muting: Mutututakoen zerrenda upload: Igo - in_memoriam_html: Memoriala. invites: delete: Desaktibatu expired: Iraungitua @@ -1144,15 +1252,14 @@ eu: carry_blocks_over_text: Erabiltzaile hau %{acct} kontutik dator, zeina blokeatuta daukazun. carry_mutes_over_text: Erabiltzaile hau %{acct} kontutik dator, zeina isilarazita daukazun. copy_account_note_text: 'Erabiltzaile hau %{acct} kontutik dator, hemen berari buruzko zure aurreko oharrak:' + navigation: + toggle_menu: Txandakatu menua notification_mailer: - digest: - action: Ikusi jakinarazpen guztiak - body: Hona zure %{since}(e)ko azken bisitatik galdu dituzun mezuen laburpen bat - mention: "%{name}(e)k aipatu zaitu:" - new_followers_summary: - one: Kanpoan zeundela jarraitzaile berri bat gehitu zaizu! - other: Kanpoan zeundela %{count} jarraitzaile berri bat gehitu zaizkizu! - title: Kanpoan zeundela... + admin: + report: + subject: "%{name} erabiltzaileak txosten bat bidali du" + sign_up: + subject: "%{name} erabiltzailea erregistratu da" favourite: body: "%{name}(e)k zure bidalketa gogoko du:" subject: "%{name}(e)k zure bidalketa gogoko du" @@ -1179,6 +1286,8 @@ eu: title: Bultzada berria status: subject: "%{name} erabiltzaileak bidalketa egin berri du" + update: + subject: "%{name} erabiltzaileak bidalketa bat editatu du" notifications: email_events: E-mail jakinarazpenentzako gertaerak email_events_hint: 'Hautatu jaso nahi dituzun gertaeren jakinarazpenak:' @@ -1222,6 +1331,8 @@ eu: other: Denetarik posting_defaults: Bidalketarako lehenetsitakoak public_timelines: Denbora-lerro publikoak + privacy_policy: + title: Pribatutasun politika reactions: errors: limit_reached: Erreakzio desberdinen muga gaindituta @@ -1244,22 +1355,15 @@ eu: remove_selected_follows: Utzi hautatutako erabiltzaileak jarraitzeari status: Kontuaren egoera remote_follow: - acct: Sartu jarraitzeko erabili nahi duzun erabiltzaile@domeinua missing_resource: Ezin izan da zure konturako behar den birbideratze URL-a - no_account_html: Ez duzu konturik? Izena eman dezakezu - proceed: Ekin jarraitzeari - prompt: 'Hau jarraituko duzu:' - reason_html: "Zergaitik eman behar da urrats hau?%{instance} agian ez da izena eman duzun zerbitzaria, eta zure hasiera-zerbitzarira eraman behar zaitugu aurretik." - remote_interaction: - favourite: - proceed: Bihurtu gogoko - prompt: 'Bidalketa hau gogoko bihurtu nahi duzu:' - reblog: - proceed: Eman bultzada - prompt: 'Bidalketa honi bultzada eman nahi diozu:' - reply: - proceed: Ekin erantzuteari - prompt: 'Bidalketa honi erantzun nahi diozu:' + reports: + errors: + invalid_rules: ez die erreferentzia egiten baliozko arauei + rss: + content_warning: 'Edukiaren abisua:' + descriptions: + account: "@%{acct} kontuaren bidalketa publikoak" + tag: "#%{hashtag} traola duten bidalketa publikoak" scheduled_statuses: over_daily_limit: 'Egun horretarako programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}' over_total_limit: 'Programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}' @@ -1269,7 +1373,7 @@ eu: browser: Nabigatzailea browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1283,7 +1387,7 @@ eu: phantom_js: PhantomJS qq: QQ nabigatzailea safari: Safari - uc_browser: UCBrowser + uc_browser: UC nabigatzailea weibo: Weibo current_session: Uneko saioa description: "%{browser} - %{platform}" @@ -1292,7 +1396,7 @@ eu: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry + blackberry: BlackBerry chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS @@ -1326,6 +1430,7 @@ eu: profile: Profila relationships: Jarraitutakoak eta jarraitzaileak statuses_cleanup: Bidalketak automatikoki ezabatzea + strikes: Moderazio neurriak two_factor_authentication: Bi faktoreetako autentifikazioa webauthn_authentication: Segurtasun gakoak statuses: @@ -1342,14 +1447,17 @@ eu: other: "%{count} bideo" boosted_from_html: "%{acct_link}(e)tik bultzatua" content_warning: 'Edukiaren abisua: %{warning}' + default_language: Interfazearen hizkuntzaren berdina disallowed_hashtags: one: 'debekatutako traola bat zuen: %{tags}' other: 'debekatutako traola hauek zituen: %{tags}' + edited_at_html: Editatua %{date} errors: in_reply_not_found: Erantzuten saiatu zaren bidalketa antza ez da existitzen. open_in_web: Ireki web-ean over_character_limit: "%{max}eko karaktere muga gaindituta" pin_errors: + direct: Aipatutako erabiltzaileentzat soilik ikusgai dauden bidalketak ezin dira finkatu limit: Gehienez finkatu daitekeen bidalketa kopurua finkatu duzu jada ownership: Ezin duzu beste norbaiten bidalketa bat finkatu reblog: Bultzada bat ezin da finkatu @@ -1402,7 +1510,7 @@ eu: '2629746': Hilabete 1 '31556952': Urte 1 '5259492': 2 hilabete - '604800': 1 week + '604800': Aste 1 '63113904': 2 urte '7889238': 3 hilabete min_age_label: Denbora muga @@ -1414,91 +1522,11 @@ eu: pinned: Finkatutako bidalketa reblogged: "(r)en bultzada" sensitive_content: 'Kontuz: Eduki hunkigarria' + strikes: + errors: + too_late: Beranduegi da neurri hau apelatzeko tags: does_not_match_previous_name: ez dator aurreko izenarekin bat - terms: - body_html: | -

      Pribatutasun politika

      -

      Zer informazio biltzen dugu?

      - -
        -
      • Kontuaren oinarrizko informazioa: Zerbitzari honetan izena ematen baduzu, erabiltzaile-izena, e-posta helbidea eta pasahitza sartzea galdetu dakizuke. Profilean bestelako informazioa sartu dezakezu esaterako pantaila-izena eta biografia, eta profileko eta goiburuko irudiak igo ditzakezu. Erabiltzaile-izena, pantaila-izena, biografia, profileko irudia eta goiburuko irudia beti dira publikoak.
      • -
      • Bidalketak, jarraitzea eta beste informazioa: Jarraitzen duzun jendearen zerrenda publikoa da, baita zure jarraitzaileena ere. Bidalketa bat argitaratzean, data eta ordua eta mezua bidaltzeko erabilitako aplikazioa gordetzen dira. Bidalketek eranskinak izan ditzakete, esaterako irudiak eta bideoak. Bidalketa publikoak eta zerrendatu gabeak publikoki ikusi daitezke. Zure profilean bidalketa bat sustatzen duzunean, informazio hori ere publikoki eskuragarri dago. Zure bidalketak zure jarraitzaileei bidaltzen zaizkie, kasu batzuetan honek esan nahi du beste zerbitzari batzuetara bidaltzen dela eta han kopiak gordetzen dituztela. Bidalketak ezabatzen dituzunean, hori ere zure jarraitzaileei bidaltzen zaie. Beste bidalketa batzuk zabaltzea edo gogoko izatea beti da informazio publikoa.
      • -
      • Mezu zuzenak eta soilik jarraitzaileentzako bidalketak: Bidalketa guztiak zerbitzarian gorde eta prozesatzen dira. Soilik jarraitzaileentzako diren bidalketak zure jarraitzaileei bidaltzen zaizkie eta bertan aipatutako erabiltzaileei. Mezu zuzenak soilik aipatutako erabiltzaileei bidaltzen zaizkie. Honek esan nahi du kasu batzuetan beste zerbitzari batzuetara bidaltzen dela mezua eta han kopiak gordetzen direla. Borondate oneko ahalegin bat egiten dugu mezuok soilik baimena duten pertsonek ikus ditzaten, baina beste zerbitzariek agian ez. Hortaz, zure jarraitzaileen zerbitzaria zein den egiaztatzea garrantzitsua da. Jarraitzaileak eskuz onartu eta ukatzeko aukera aldatu dezakezu. Kontuan izan zerbitzariaren operadoreak eta mezua jasotzen duen edozein zerbitzariko operadoreek mezuok ikus ditzaketela eta edonork atera dezakeela pantaila argazki bat, kopiatu edo beste modu batean partekatu.Ez partekatu informazio arriskutsua Mastodon bidez.
      • -
      • IP-ak eta bestelako meta-datuak: Saioa hasten duzunean, zure IP helbidea gordetzen dugu, eta erabiltzen duzun nabigatzaile edo aplikazioa. Hasitako saio guztiak zuk ikusteko moduan daude eta ezarpenetan indargabetu ditzakezu. Erabilitako azken IP helbidea 12 hilabetez gordetzen da. Gure zerbitzariak jasotako eskari guztiak eta IP-a duten zerbitzariko egunkariak gorde genitzake.
      • -
      - -
      - -

      Zertarako erabiltzen dugu zure informazioa?

      - -

      Biltzen dugun informazio guztia honela erabiltzen da:

      - -
        -
      • Mastodon zerbitzuko funtzio nagusietarako. Beste pertsonen edukiarekin harremanetan sartzeko edo zure edukia argitaratzeko saioa hasi behar duzu. Adibidez, beste pertsona batzuk jarraitu ditzakezu zure denbora-lerro pertsonalizatu bat izateko.
      • -
      • Komunitatearen moderazioari laguntzeko, esaterako zure IP-a ezagutzen ditugun beste batzuekin alderatu dezakegu, debekuak ekiditea edo bestelako arau-urraketak eragozteko.
      • -
      • Emandako e-posta helbidea informazioa bidaltzeko erabili genezake, beste pertsonek zure edukiekin harremanetan jartzean jakinarazteko, edo mezu bat bidaltzen dizutenean, galderak erantzutean eta bestelako eskari eta galderetarako.
      • -
      - -
      - -

      Nola babesten dugu zure informazioa?

      - -

      Hainbat segurtasun neurri hartzen ditugu zure informazio pertsonalaren segurtasuna babesteko, informazio pertsonala sartzen duzunean, bidaltzen duzunean edo atzitzen duzunean. Besteak beste zure nabigatzailearen saioa eta zure aplikazioen eta API-aren arteko trafikoa, SSL bidez babesten da, eta zure pasahitza alde bateko algoritmo sendo batekin hash-eatzen da. Bi faktoreetako autentifikazioa gaitu dezakezu zure kontuaren segurtasuna areagotzeko.

      - -
      - -

      Zein da gure datuak biltzeko politika?

      - -

      Borondate oneko ahalegina egingo dugu honetarako:

      - -
        -
      • Zerbitzari honetara egindako eskari guztien egunkaria IP helbidearekin, 90 egunez gehienez.
      • -
      • Izena eman duten erabiltzaileen eskariekin lotutako IP helbideak, 12 hilabetez gehienez..
      • -
      - -

      Zure edukiaren kopia duen artxibo bat eskatu eta deskargatu dezakezu, bertan mezuak multimedia eranskinak, profileko irudia eta goiburuko irudia daude.

      - -

      Zure kontua behin betirako ezabatu dezakezu nahi duzunean.

      - -
      - -

      Cookie-ak erabiltzen ditugu?

      - -

      Bai. Cookie-ak gune edo zerbitzu hornitzaile baten zure ordenagailuko disko gogorrera bidaltzen dituen fitxategi txikiak dira (zuk baimentzen baduzu). Cookie hauek guneari zure nabigatzailea identifikatzea, konturik duzun jakin, eta erregistratutako kontuarekin erlazionatzea ahalbidetzen diote.

      - -

      Cookie-ak erabiltzen ditugu zure hobespenak ulertu eta hurrengo saioetarako gordetzeko

      - -
      - -

      Informazioa kanpoko inorekin partekatzen dugu?

      - -

      Ez dugu identifikatu zaitzakeen informazio pertsonala saltzen, trukatzen edo kanpora bidaltzen. Salbuespena konfiantzako hirugarrengoak dira, gunea martxan izaten laguntzen digutenak, negozioa aurrera eramateko aholkua ematen digutenak edo zuri zerbitzua ematen laguntzen digutenak, hauek informazioaren konfidentzialtasuna errespetatzea onartzen dutenean. Agian legearekin betetzeko beharrezkoa den informazioa ere eman genezake, gunearen politika indarrean jartzeko behar dena, edo gure eskubideak, jabetzak, edo segurtasuna babesteko beharrezkoa dena.

      - -

      Zure eduki publikoak sareko beste zerbitzariek deskargatu dezakete. Zure bidalketa publikoak eta soilik jarraitzaileentzat diren mezuak zure jarraitzaileen zerbitzarietara bidaltzen dira, jarraitzaile edo hartzaile horiek beste zerbitzari batean badute kontua.

      - -

      Aplikazio bati zure kontua erabiltzeko baimena ematen diozunean, onartutako baimen esparruaren arabera, zure profileko informazio publikoa atzitu lezake, zuk jarraitutakoen zerrenda, zure jarraitzaileen zerrenda, zure bidalketa guztiak eta zure gogokoak. Aplikazioen ezin dute inoiz zure e-posta helbidea edo pasahitza atzitu.

      - -
      - -

      Umeek gunea erabiltzea

      - -

      Zerbitzari hau Europar Batasunean edo Europako Ekonomia-Eremuan badago: Gure gunea, produktua eta zerbitzuak 16 urte edo gehiago dituztenei zuzenduta daude. 16 urte baino gazteagoa bazara, GDPR legearen arabera ezin duzu gune hau erabili (General Data Protection Regulation)

      - -

      Zerbitzari hau Amerikako Estatu Batuetan badago: Gure gunea, produktua eta zerbitzuak 13 urte edo gehiago dituztenei zuzenduta daude. 13 urte baino gazteagoa bazara, COPPA legearen arabera ezin duzu gune hau erabili (Children's Online Privacy Protection Act).

      - -

      Zerbitzari hau beste eremu legal batean badago, legearen eskariak desberdinak izan daitezke.

      - -
      - -

      Aldaketak gure pribatutasun politikan

      - -

      Gure pribatutasun politika aldatzea erabakitzen badugu, aldaketak orri honetan argitaratuko ditugu.

      - -

      Dokumentu honek CC-BY-SA lizentzia du. Eta azkenekoz 2018ko martxoak 7an eguneratu zen

      - -

      Jatorrian Discourse sarearen pribatutasun politikatik moldatua.

      - title: "%{instance} instantziaren erabilera baldintzak eta pribatutasun politika" themes: contrast: Mastodon (Kontraste altua) default: Mastodon (Iluna) @@ -1507,6 +1535,7 @@ eu: formats: default: "%Y(e)ko %b %d, %H:%M" month: "%Y(e)ko %b" + time: "%H:%M" two_factor_authentication: add: Gehitu disable: Desgaitu @@ -1523,37 +1552,66 @@ eu: recovery_instructions_html: Zure telefonora sarbidea galtzen baduzu, beheko berreskuratze kode bat erabili dezakezu kontura berriro sartu ahal izateko. Gore barreskuratze kodeak toki seguruan. Adibidez inprimatu eta dokumentu garrantzitsuekin batera gorde. webauthn: Segurtasun gakoak user_mailer: + appeal_approved: + action: Joan zure kontura + explanation: "%{strike_date}(e)an zure kontuari ezarritako neurriaren aurka %{appeal_date}(e)an jarri zenuen apelazioa onartu da. Zure kontua egoera onean dago berriro." + subject: "%{date}(e)ko zure apelazioa onartu da" + title: Apelazioa onartuta + appeal_rejected: + explanation: "%{strike_date}(e)an zure kontuari ezarritako neurriaren aurka %{appeal_date}(e)an jarri zenuen apelazioa baztertu da." + subject: "%{date}(e)ko zure apelazioa baztertu da" + title: Apelazioa baztertuta backup_ready: explanation: Zure Mastodon kontuaren babes-kopia osoa eskatu duzu. Deskargatzeko prest dago! subject: Zure artxiboa deskargatzeko prest dago title: Artxiboa jasotzea + suspicious_sign_in: + change_password: aldatu pasahitza + details: 'Hemen daude saio hasieraren xehetasunak:' + explanation: Zure kontuan IP helbide berri batetik saioa hasi dela detektatu dugu. + further_actions_html: Ez bazara zu izan, lehenbailehen %{action} gomendatzen dizugu eta bi faktoreko autentifikazioa gaitzea zure kontua seguru mantentzeko. + subject: Zure kontura sarbidea egon da IP helbide berri batetik + title: Saio hasiera berria warning: + appeal: Bidali apelazioa + appeal_description: Hau errore bat dela uste baduzu, apelazio bat bidali diezaiekezu %{instance} instantziako arduradunei. + categories: + spam: Spama + violation: Edukiak komunitatearen gidalerro hauek urratzen ditu + explanation: + delete_statuses: Zure bidalketetako batzuk komunitatearen gidalerro bat edo gehiago urratzen dituztela aurkitu da eta ondorioz %{instance} instantziako moderatzaileek ezabatu egin dituzte. + disable: Ezin duzu zure kontua erabili, baina zure profilak eta beste datuek hor diraute. Zure datuen babeskopia eskatu dezakezu, kontuaren ezarpenak aldatu edo kontua ezabatu. + mark_statuses_as_sensitive: Zure bidalketetako batzuk hunkigarri bezala markatu dituzte %{instance} instantziako moderatzaileek. Horrek esan nahi du jendeak klik egin beharko duela bidalketetako multimedia edukian aurrebista bistaratzeko. Etorkizunean zuk zeuk markatu ditzakezu multimediak hunkigarri bezala. + sensitive: Hemendik aurrera, igotzen dituzun multimedia fitxategi guztiak hunkigarri gisa markatuko dira eta abisuan klik egin beharko da ikusteko. + silence: Zure kontua erabili dezakezu oraindik, baina dagoeneko jarraitzen zaituen jendeak soilik ikusi ahal izango ditu zure bidalketak zerbitzari honetan, eta aurkikuntza-ezaugarrietatik baztertua izango zara. Hala ere, besteek eskuz jarrai zaitzakete oraindik. + suspend: Ezin duzu zure kontua erabili, eta zure profila eta beste datuak ez daude eskuragarri jada. Hala ere, saioa hasi dezakezu zure datuen babeskopia eskatzeko, 30 egun inguru barru behin betiko ezabatu aurretik. Zure oinarrizko informazioa gordeko da kanporatzea saihestea eragozteko. + reason: 'Arrazoia:' + statuses: 'Aipatutako bidalketak:' subject: + delete_statuses: "%{acct} zerbitzarian zure bidalketak ezabatu dira" disable: Zure %{acct} kontua izoztu da + mark_statuses_as_sensitive: "%{acct} zerbitzarian zure bidalketak hunkigarri gisa markatu dira" none: "%{acct} konturako abisua" + sensitive: "%{acct} zerbitzarian zure bidalketak hunkigarri gisa markatuko dira hemendik aurrera" silence: Zure %{acct} kontua murriztu da suspend: Zure %{acct} kontua kanporatua izan da title: + delete_statuses: Bidalketak ezabatuta disable: Kontu izoztua + mark_statuses_as_sensitive: Bidalketak hunkigarri gisa markatuta none: Abisua + sensitive: Kontua hunkigarri gisa markatuta silence: Kontu murriztua suspend: Kontu kanporatua welcome: edit_profile_action: Ezarri profila - edit_profile_step: Pertsonalizatu profila abatar bat igoz, goiburu bat, zure pantaila-izena aldatuz eta gehiago. Jarraitzaile berriak onartu aurretik gainbegiratu nahi badituzu, kontua giltzaperatu dezakezu. + edit_profile_step: Pertsonalizatu profila abatar bat igoz, zure pantaila-izena aldatuz eta gehiago. Jarraitzaile berriak onartu aurretik berrikusi nahi badituzu, kontuari giltzarrapoa jarri diezaiokezu. explanation: Hona hasteko aholku batzuk final_action: Hasi bidalketak argitaratzen final_step: 'Hasi argitaratzen! Jarraitzailerik ez baduzu ere zure bidalketa publikoak besteek ikusi ditzakete, esaterako denbora-lerro lokalean eta traoletan. Zure burua aurkeztu nahi baduzu #aurkezpenak traola erabili zenezake.' full_handle: Zure erabiltzaile-izen osoa full_handle_hint: Hau da lagunei esango zeniekeena beste zerbitzari batetik zu jarraitzeko edo zuri mezuak bidaltzeko. - review_preferences_action: Aldatu hobespenak - review_preferences_step: Ziurtatu hobespenak ezartzen dituzula, hala nola, jaso nahi dituzu e-postak edo lehenetsitako pribatutasuna bidalketa berrietarako. Mareatzen ez bazaitu GIF-ak automatikoki abiatzea ere ezarri dezakezu. subject: Ongi etorri Mastodon-era - tip_federated_timeline: Federatutako denbora-lerroan Mastodon sarearen trafikoa ikusten da. Baina zure instantziako auzokideak jarraitutakoak besterik ez daude hor, ez da osoa. - tip_following: Lehenetsita zerbitzariko administratzailea jarraitzen duzu. Jende interesgarri gehiago aurkitzeko, egiaztatu denbora-lerro lokala eta federatua. - tip_local_timeline: Denbora-lerro lokalean %{instance} instantziako trafikoa ikusten da. Hauek zure instantziako auzokideak dira! - tip_mobile_webapp: Zure mugikorreko nabigatzaileak Mastodon hasiera pantailan gehitzea eskaintzen badizu, push jakinarazpenak jaso ditzakezu. Aplikazio natiboaren parekoa da zentzu askotan! - tips: Aholkuak title: Ongi etorri, %{name}! users: follow_limit_reached: Ezin dituzu %{limit} pertsona baino gehiago jarraitu diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 05a1ce434cb238..9601162dead21c 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1,94 +1,27 @@ --- fa: about: - about_hashtag_html: این‌ها نوشته‌های عمومی هستند که برچسب (هشتگ) #%{hashtag} را دارند. اگر شما روی هر کارسازی حساب داشته باشید می‌توانید به این نوشته‌ها واکنش نشان دهید. about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکت‌ها، طراحی اخلاق‌مدار، و معماری غیرمتمرکز! با ماستودون صاحب داده‌های خودتان باشید!' - about_this: درباره - active_count_after: فعّال - active_footnote: کاربران فعّال ماهانه - administered_by: 'به مدیریت:' - api: رابط برنامه‌نویسی کاربردی - apps: اپ‌های موبایل - apps_platforms: ماستودون را در iOS، اندروید، و سایر سیستم‌ها داشته باشید - browse_directory: شاخهٔ نمایه‌ای را مرور کرده و بر حسب علاقه، بپالایید - browse_local_posts: جریانی زنده از فرسته‌های عمومی این کارساز را ببینید - browse_public_posts: جریانی زنده از فرسته‌های عمومی روی ماستودون را ببینید - contact: تماس contact_missing: تنظیم نشده contact_unavailable: موجود نیست - continue_to_web: در کارهٔ وب ادامه دهید - discover_users: یافتن کاربران - documentation: مستندات - federation_hint_html: با حسابی روی %{instance} می‌توانید افراد روی هر کارساز ماستودون و بیش از آن را پی بگیرید. - get_apps: یک اپ موبایل را بیازمایید hosted_on: ماستودون، میزبانی‌شده روی %{domain} - instance_actor_flash: | - این حساب، بازیگری مجازی به نمایندگی خود کارساز بوده و کاربری واقعی نیست. - این حساب برای مقاصد خودگردانی به کار می‌رفته و نباید مسدود شود؛ مگر این که بخواهید کل نمونه را مسدود کنید که در آن صورت نیز باید از انسداد دامنه استفاده کنید. - learn_more: بیشتر بدانید - logged_in_as_html: شما هم‌اکنون به عنوان %{username} وارد شده‌اید. - logout_before_registering: شما هم‌اکنون وارد شده‌اید. - privacy_policy: سیاست رازداری - rules: قوانین کارساز - rules_html: 'در زیر خلاصه‌ای از قوانینی که در صورت علاقه به داشتن حسابی روی این کارساز ماستودون، باید رعایت کنید آمده است:' - see_whats_happening: ببینید چه خبر است - server_stats: 'آمار کارساز:' - source_code: کدهای منبع - status_count_after: - one: چیز نوشته‌اند - other: چیز نوشته‌اند - status_count_before: که در کنار هم - tagline: با دوستان خود در ارتباط باشید و دوستان تازه پیدا کنید - terms: شرایط خدمت - unavailable_content: محتوای ناموجود - unavailable_content_description: - domain: کارساز - reason: دلیل - rejecting_media: 'پرونده‌های رسانه از این کارسازها پردازش یا ذخیره نخواهند شد و هیچ بندانگشتی‌ای نمایش نخواهد یافت. نیازمند کلیک دستی برای رسیدن به پروندهٔ اصلی:' - rejecting_media_title: رسانه‌های پالوده - silenced: 'فرسته‌ها از این کارسازها در خط‌زمانی‌های عمومی و گفت‌وگوها پنهان خواهند بود و هیچ آگاهی‌ای از برهم‌کنش‌های کاربرانشان ایجاد نخواهد شد،‌مگر این که دنبالشان کنید:' - silenced_title: کارسازهای خموش - suspended: 'هیچ داده‌ای از این کارسازها پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهم‌کنش یا ارتباط با کاربران این کارسازها را غیرممکن خواهد کرد:' - suspended_title: کارسازهای معلّق - unavailable_content_html: ماستودون عموماً می‌گذارد محتوا را از از هر کارساز دیگری در دنیای شبکه‌های اجتماعی غیرمتمرکز دیده و با آنان برهم‌کنش داشته باشید. این‌ها استثناهایی هستند که روی این کارساز خاص وضع شده‌اند. - user_count_after: - one: کاربر - other: کاربر - user_count_before: میزبان - what_is_mastodon: ماستودون چیست؟ + title: درباره accounts: - choices_html: 'انتخاب‌های %{name}:' - endorsements_hint: شما می‌توانید از محیط وب ماستودون، کسانی را که پی می‌گیرید به دیگران هم پیشنهاد دهید تا این‌جا نشان داده شوند. - featured_tags_hint: می‌توانید برچسب‌های خاصی را مشخّص کنید تا این‌جا دیده شوند. follow: پیگیری followers: one: پیگیر other: پیگیر following: پی می‌گیرد instance_actor_flash: این حساب یک عامل مجازی است که به نمایندگی از خود کارساز استفاده می‌شود و نه هیچ یکی از کاربران. این حساب به منظور اتصال به فدراسیون استفاده می‌شود و نباید معلق شود. - joined: پیوسته از %{date} last_active: آخرین فعالیت link_verified_on: مالکیت این پیوند در %{date} بررسی شد - media: عکس و ویدیو - moved_html: "%{name} حساب خود را به %{new_profile_link} منتقل کرده است:" - network_hidden: این اطلاعات در دسترس نیست nothing_here: این‌جا چیزی نیست! - people_followed_by: کسانی که %{name} پی می‌گیرد - people_who_follow: کسانی که %{name} را پی می‌گیرند pin_errors: following: باید کاربری که می‌خواهید پیشنهاد دهید را دنبال کرده باشید posts: one: فرسته other: فرسته‌ها posts_tab_heading: فرسته‌ها - posts_with_replies: فرسته‌ها و پاسخ‌ها - roles: - admin: مدیر - bot: ربات - group: گروه - moderator: ناظر - unavailable: نمایهٔ ناموجود - unfollow: پایان پیگیری admin: account_actions: action: انجامِ کنش @@ -105,12 +38,17 @@ fa: avatar: تصویر نمایه by_domain: دامین change_email: - changed_msg: نشانی ایمیل این حساب با موفقیت تغییر کرد! - current_email: ایمیل کنونی - label: تغییر نشانی ایمیل - new_email: ایمیل تازه - submit: تغییر ایمیل - title: تغییر ایمیل برای %{username} + changed_msg: رایانامه با موفقیت تغییر کرد! + current_email: رایانامهٔ کنونی + label: تغییر رایانامه + new_email: رایانامهٔ جدید + submit: تغییر رایانامه + title: تغییر رایانامه برای %{username} + change_role: + changed_msg: نقش با موفقیت تغییر کرد! + label: تغییر نقش + no_role: بدون نقش + title: تغییر نقش برای %{username} confirm: تأیید confirmed: تأیید شد confirming: تأیید @@ -126,8 +64,8 @@ fa: display_name: نام نمایشی domain: دامنه edit: ویرایش - email: ایمیل - email_status: وضعیت ایمیل + email: رایانامه + email_status: وضعیت رایانامه enable: به کار انداختن enable_sign_in_token_auth: به کار انداختن تأیید هویت ژتون رایانامه‌ای enabled: به کار افتاده @@ -154,6 +92,7 @@ fa: active: فعّال all: همه pending: منتظر + silenced: محدود suspended: تعلیق شده title: مدیریت moderation_notes: یادداشت‌های مدیریتی @@ -161,6 +100,7 @@ fa: most_recent_ip: آخرین IP no_account_selected: هیچ حسابی تغییر نکرد زیرا حسابی انتخاب نشده بود no_limits_imposed: بدون محدودیت + no_role_assigned: هیچ نقشی اعطا نشده not_subscribed: مشترک نیست pending: در انتظار بررسی perform_full_suspension: تعلیق @@ -179,17 +119,12 @@ fa: removed_header_msg: تصویر سرایند %{username} با موفّقیت برداشته شد resend_confirmation: already_confirmed: این کاربر قبلا تایید شده است - send: ایمیل تایید را دوباره بفرستید - success: ایمیل تایید با موفقیت ارسال شد! + send: ارسال دوبارهٔ رایانامهٔ تأیید + success: رایانامه تأیید با موفقیت ارسال شد! reset: بازنشانی reset_password: بازنشانی رمز resubscribe: اشتراک دوباره - role: اجازه‌ها - roles: - admin: مدیر - moderator: ناظر - staff: کارمند - user: کاربر + role: نقش search: جستجو search_same_email_domain: دیگر کاربران با دامنهٔ رایانامهٔ یکسان search_same_ip: دیگر کاربران با IP یکسان @@ -212,9 +147,9 @@ fa: suspension_irreversible: داده‌های این حساب به صورت بی‌بازگشت حذف شد. می‌توانید برای قابل استفاده کردنش، آن را نامعلّق کنید، ولی این کار هیچ داده‌ای را که از پیش داده، برنخواهد گرداند. suspension_reversible_hint_html: حساب معلّق شد و داده‌ها به صورت کامل در %{date} برداشته خواهند شد. تا آن زمان، حساب می‌تواند بی هیچ عوارضی بازگردانده شود. اگر می‌خواهید فوراً همهٔ داده‌های حساب را بردارید، می‌توانید در پایین این کار را بکنید. title: حساب‌ها - unblock_email: رفع مسدودیت نشانی ایمیل - unblocked_email_msg: مسدودیت نشانی ایمیل %{username} با موفقیت رفع شد - unconfirmed_email: ایمیل تأییدنشده + unblock_email: رفع مسدودیت نشانی رایانامه + unblocked_email_msg: مسدودیت نشانی رایانامهٔ %{username} با موفقیت رفع شد + unconfirmed_email: رایانامهٔ تأیید نشده undo_sensitized: بازگردانی حساس undo_silenced: واگردانی بی‌صداکردن undo_suspension: واگردانی تعلیق @@ -270,7 +205,7 @@ fa: silence_account: خموشی حساب suspend_account: تعلیق حساب unassigned_report: رفع واگذاری گزارش - unblock_email_account: رفع مسدودیت ایمیل + unblock_email_account: رفع مسدودیت رایانامه unsensitive_account: برداشتن علامت رسانه در حسابتان به عنوان حساس unsilence_account: رفع خموشی حساب unsuspend_account: رفع تعلیق حساب @@ -294,7 +229,6 @@ fa: create_unavailable_domain_html: "%{name} تحویل محتوا به دامنه %{target} را متوقف کرد" demote_user_html: "%{name} کاربر %{target} را تنزل داد" destroy_announcement_html: "%{name} اعلامیهٔ %{target} را حذف کرد" - destroy_custom_emoji_html: "%{name} اموجی %{target} را نابود کرد" destroy_domain_allow_html: "%{name} دامنهٔ %{target} را از فهرست مجاز برداشت" destroy_domain_block_html: "%{name} انسداد دامنهٔ %{target} را رفع کرد" destroy_email_domain_block_html: "%{name} انسداد دامنهٔ رایانامهٔ %{target} را برداشت" @@ -321,7 +255,7 @@ fa: silence_account_html: "%{name} حساب %{target} را محدود کرد" suspend_account_html: "%{name} حساب %{target} را تعلیق کرد" unassigned_report_html: "%{name} گزارش %{target} را از حالت محول شده خارج کرد" - unblock_email_account_html: "%{name} نشانی ایمیل %{target} را رفع مسدودیت کرد" + unblock_email_account_html: "%{name} نشانی رایانامهٔ %{target} را رفع مسدودیت کرد" unsensitive_account_html: "%{name} علامت حساس رسانهٔ %{target} را برداشت" unsilence_account_html: "%{name} محدودیت حساب %{target} را برداشت" unsuspend_account_html: "%{name} حساب %{target} را از تعلیق خارج کرد" @@ -329,7 +263,6 @@ fa: update_custom_emoji_html: "%{name} شکلک %{target} را به‌روز کرد" update_domain_block_html: "%{name} مسدودسازی دامنه را برای %{target} به‌روزرسانی کرد" update_status_html: "%{name} نوشتهٔ %{target} را به‌روز کرد" - deleted_status: "(نوشتهٔ پاک‌شده)" empty: هیچ گزارشی پیدا نشد. filter_by_action: پالایش بر اساس کنش filter_by_user: پالایش بر اساس کاربر @@ -449,7 +382,7 @@ fa: view: دیدن مسدودسازی دامنه email_domain_blocks: add_new: افزودن تازه - created_msg: مسدودسازی دامین ایمیل با موفقیت ساخته شد + created_msg: دامنهٔ رایانامه با موفقیت مسدود شد delete: پاک‌کردن dns: types: @@ -457,8 +390,8 @@ fa: domain: دامین new: create: ساختن مسدودسازی - title: مسدودسازی دامین ایمیل تازه - title: مسدودسازی دامین‌های ایمیل + title: مسدودسازی دامنهٔ رایانامهٔ جدید + title: دامنه‌های رایانامهٔ مسدود شده follow_recommendations: description_html: "پیشنهادات پیگیری به کاربران جدید کک می‌کند تا سریع‌تر محتوای جالب را پیدا کنند. زمانی که کاربری هنوز به اندازه کافی با دیگران تعامل نداشته است تا پیشنهادات پیگیری شخصی‌سازی‌شده دریافت کند، این حساب‌ها را به جای آن فهرست مشاهده خواهد کرد. این حساب‌ها به صورت روزانه و در ترکیب با بیشتری تعاملات و بالاترین دنبال‌کنندگان محلی برای یک زبان مشخص بازمحاسبه می‌شوند." language: برای زبان @@ -577,9 +510,11 @@ fa: comment: none: هیچ created_at: گزارش‌شده + delete_and_resolve: حذف فرسته‌ها forwarded: هدایت شده forwarded_to: هدایت شده به %{domain} mark_as_resolved: علامت‌گذاری به عنوان حل‌شده + mark_as_sensitive: علامت به حساس mark_as_unresolved: علامت‌گذاری به عنوان حل‌نشده no_one_assigned: هیچ‌کس notes: @@ -589,12 +524,14 @@ fa: delete: حذف placeholder: کارهایی را که در این باره انجام شده، یا هر به‌روزرسانی دیگری را بنویسید... title: یادداشت‌ها + remote_user_placeholder: کاربر دوردست از %{instance} reopen: دوباره به جریان بیندازید report: 'گزارش #%{id}' reported_account: حساب گزارش‌شده reported_by: گزارش از طرف resolved: حل‌شده resolved_msg: گزارش با موفقیت حل شد! + skip_to_actions: پرش به کنش‌ها status: نوشته statuses: محتوای گزارش شده target_origin: خاستگاه حساب گزارش‌شده @@ -603,6 +540,28 @@ fa: unresolved: حل‌نشده updated_at: به‌روز شد view_profile: دیدن نمایه + roles: + add_new: افزودن نقش + categories: + administration: مدیریت + invites: دعوت‌ها + moderation: نظارت + special: ویژه + delete: حذف + edit: ویراش نقش %{name} + everyone: اجازه‌های پیش‌گزیده + privileges: + administrator: مدیر + delete_user_data: حذف داده‌های کاربر + invite_users: دعوت کاربران + manage_announcements: مدیریت اعلامیه‌ها + manage_blocks: مدیریت مسدودی‌ها + manage_custom_emojis: مدیریت ایموجی‌های سفارشی + manage_invites: مدیریت دعوت‌ها + manage_reports: مدیریت گزارش‌ها + manage_roles: مدیریت نقش‌ها + manage_rules: مدیریت قوانین + manage_settings: مدیریت تنظیمات rules: add_new: افزودن قانون delete: حذف @@ -611,110 +570,55 @@ fa: empty: هنوز هیچ قانونی برای کارساز تعریف نشده. title: قوانین کارساز settings: - activity_api_enabled: - desc_html: تعداد فرسته‌های محلی، کاربران فعال، و کاربران تازه در هر هفته - title: انتشار آمار تجمیعی دربارهٔ فعالیت کاربران - bootstrap_timeline_accounts: - desc_html: نام‌های کاربری را با ویرگول از هم جدا کنید. این حساب‌ها تضمین می‌شوند که در پیشنهادهای پی‌گیری نشان داده شوند - title: پیگیری‌های پیش‌فرض برای کاربران تازه - contact_information: - email: ایمیل کاری - username: نام کاربری - custom_css: - desc_html: ظاهر ماستودون را با CSS-ای که در همهٔ صفحه‌ها جاسازی می‌شود تغییر دهید - title: سبک CSS سفارشی - default_noindex: - desc_html: روی همهٔ کاربرانی که این تنظیم را خودشان تغییر نداده‌اند تأثیر می‌گذارد - title: درخواست پیش‌فرض از طرف کاربران برای ظاهر نشدن در نتایج موتورهای جستجوگر + discovery: + follow_recommendations: پیروی از پیشنهادها + profile_directory: شاخهٔ نمایه + public_timelines: خط زمانی‌های عمومی + title: کشف + trends: پرطرفدارها domain_blocks: all: برای همه disabled: برای هیچ‌کدام - title: نمایش دامنه‌های مسدود شده users: برای کاربران محلی واردشده - domain_blocks_rationale: - title: دیدن دلیل - hero: - desc_html: در صفحهٔ آغازین نمایش می‌یابد. دست‌کم ۶۰۰×۱۰۰ پیکسل توصیه می‌شود. اگر تعیین نشود، با تصویر بندانگشتی سرور جایگزین خواهد شد - title: تصویر سربرگ - mascot: - desc_html: در صفحه‌های گوناگونی نمایش می‌یابد. دست‌کم ۲۹۳×۲۰۵ پیکسل. اگر تعیین نشود، با تصویر پیش‌فرض جایگزین خواهد شد - title: تصویر نماد - peers_api_enabled: - desc_html: دامین‌هایی که این سرور به آن‌ها برخورده است - title: انتشار سیاههٔ کارسازهای کشف شده در API - preview_sensitive_media: - desc_html: پیوند به سایت‌های دیگر پیش‌نمایشی خواهد داشت که یک تصویر کوچک را نشان می‌دهد، حتی اگر نوشته به عنوان حساس علامت‌گذاری شده باشد - title: نمایش تصاویر حساسیت‌برانگیز در پیش‌نمایش‌های OpenGraph - profile_directory: - desc_html: اجازه به کاربران برای قابل کشف بودن - title: به کار انداختن شاخهٔ نمایه registrations: - closed_message: - desc_html: وقتی امکان ثبت نام روی سرور فعال نباشد در صفحهٔ اصلی نمایش می‌یابد
      می‌توانید HTML بنویسید - title: پیغام برای فعال‌نبودن ثبت نام - deletion: - desc_html: هر کسی بتواند حساب خود را پاک کند - title: فعال‌سازی پاک‌کردن حساب - min_invite_role: - disabled: هیچ کس - title: اجازهٔ دعوت به - require_invite_text: - desc_html: زمانی که نام‌نویسی نیازمند تایید دستی است، متن «چرا می‌خواهید عضو شود؟» بخش درخواست دعوت را به جای اختیاری، اجباری کنید - title: نیازمند پر کردن متن درخواست دعوت توسط کاربران جدید + title: ثبت‌نام‌ها registrations_mode: modes: approved: ثبت نام نیازمند تأیید مدیران است none: کسی نمی‌تواند ثبت نام کند open: همه می‌توانند ثبت نام کنند - title: شرایط ثبت نام - show_known_fediverse_at_about_page: - desc_html: اگر از کار انداخته شود، خط‌زمانی همگانی را محدود می‌کند؛ تا فقط محتوای محلّی را نمایش دهد. - title: نمایش سرورهای دیگر در پیش‌نمایش این سرور - show_staff_badge: - desc_html: نمایش علامت همکار روی صفحهٔ کاربر - title: نمایش علامت همکار - site_description: - desc_html: معرفی کوتاهی دربارهٔ رابط برنامه‌نویسی کاربردی. دربارهٔ این که چه چیزی دربارهٔ این سرور ماستدون ویژه است یا هر چیز مهم دیگری بنویسید. می‌توانید HTML بنویسید، به‌ویژه <a> و <em>. - title: دربارهٔ این سرور - site_description_extended: - desc_html: جای خوبی برای نوشتن سیاست‌های کاربری، قانون‌ها، راهنماها، و هر چیزی که ویژهٔ این سرور است. تگ‌های HTML هم مجاز است - title: اطلاعات تکمیلی سفارشی - site_short_description: - desc_html: روی نوار کناری و همچنین به عنوان فرادادهٔ صفحه‌ها نمایش می‌یابد. در یک بند توضیح دهید که ماستدون چیست و چرا این سرور با بقیه فرق دارد. - title: توضیح کوتاه دربارهٔ سرور - site_terms: - desc_html: می‌توانید سیاست رازداری، شرایط استفاده، یا سایر مسائل قانونی را به دلخواه خود بنویسید. تگ‌های HTML هم مجاز است - title: شرایط استفادهٔ سفارشی - site_title: نام سرور - thumbnail: - desc_html: برای دیدن با OpenGraph و رابط برنامه‌نویسی. وضوح پیشنهادی ۱۲۰۰×۶۳۰ پیکسل - title: تصویر کوچک سرور - timeline_preview: - desc_html: نوشته‌های عمومی این سرور را در صفحهٔ آغازین نشان دهید - title: پیش‌نمایش نوشته‌ها - title: تنظیمات سایت - trendable_by_default: - desc_html: روی برچسب‌هایی که پیش از این ممنوع نشده‌اند تأثیر می‌گذارد - title: بگذارید که برچسب‌های پرطرفدار بدون بازبینی قبلی نمایش داده شوند - trends: - desc_html: برچسب‌های عمومی که پیش‌تر بازبینی شده‌اند و هم‌اینک پرطرفدارند - title: پرطرفدارها + title: تنظیمات کارساز site_uploads: delete: پرونده بارگذاری شده را پاک کنید destroyed_msg: بارگذاری پایگاه با موفقیت حذف شد! statuses: + account: نگارنده + application: برنامه back_to_account: بازگشت به صفحهٔ حساب back_to_report: بازگشت به صفحهٔ گزارش batch: remove_from_report: برداشتن از گزارش report: گزارش deleted: پاک‌شده + favourites: برگزیده‌ها + history: تاریخچهٔ نگارش + in_reply_to: در پاسخ به + language: زبان media: title: رسانه + metadata: فراداده no_status_selected: هیچ فرسته‌ای تغییری نکرد زیرا هیچ‌کدام از آن‌ها انتخاب نشده بودند + open: گشودن فرسته + original_status: فرستهٔ اصلی + reblogs: تقویت‌ها + status_changed: فرسته تغییر کرد title: نوشته‌های حساب + trending: پرطرفدار + visibility: نمایانی with_media: دارای عکس یا ویدیو strikes: + actions: + delete_statuses: "%{name} فرستهٔ %{target} را حذف کرد" appeal_approved: درخواست تجدیدنظر کرد appeal_pending: درخواست تجدیدنظر در انتظار system_checks: @@ -766,6 +670,8 @@ fa: edit_preset: ویرایش هشدار پیش‌فرض empty: هنز هیچ پیش‌تنظیم هشداری را تعریف نکرده‌اید. title: مدیریت هشدارهای پیش‌فرض + webhooks: + new: قلاب وب جدید admin_mailer: new_appeal: actions: @@ -780,7 +686,6 @@ fa: subject: گزارش تازه‌ای برای %{instance} (#%{id}) new_trends: new_trending_links: - no_approved_links: در حال حاضر هیچ پیوند پرطرفداری پذیرفته نشده است. title: پیوندهای داغ new_trending_statuses: title: فرسته‌های داغ @@ -813,16 +718,12 @@ fa: applications: created: برنامه با موفقیت ساخته شد destroyed: برنامه با موفقیت پاک شد - invalid_url: نشانی واردشده معتبر نیست regenerate_token: دوباره‌سازی کد دسترسی token_regenerated: کد دسترسی با موفقیت ساخته شد warning: خیلی مواظب این اطلاعات باشید و آن را به هیچ کس ندهید! your_token: کد دسترسی شما auth: - apply_for_account: درخواست دعوت‌نامه change_password: رمز - checkbox_agreement_html: با قانون‌های این کارساز و شرایط خدماتش موافقم - checkbox_agreement_without_rules_html: من با شرایط استفاده موافقم delete_account: پاک‌کردن حساب delete_account_html: اگر می‌خواهید حساب خود را پاک کنید، از این‌جا پیش بروید. از شما درخواست تأیید خواهد شد. description: @@ -860,7 +761,6 @@ fa: pending: درخواست شما منتظر تأیید مسئولان سایت است و این فرایند ممکن است کمی طول بکشد. اگر درخواست شما پذیرفته شود به شما ایمیلی فرستاده خواهد شد. redirecting_to: حساب شما غیرفعال است زیرا هم‌اکنون به %{acct} منتقل شده است. too_fast: فرم با سرعت بسیار زیادی فرستاده شد، دوباره تلاش کنید. - trouble_logging_in: برای ورود مشکلی دارید؟ use_security_key: استفاده از کلید امنیتی authorize_follow: already_following: شما همین الان هم این حساب را پی‌می‌گیرید @@ -918,10 +818,6 @@ fa: more_details_html: برای اطلاعات بیشتر سیاست رازداری را ببینید. username_available: نام کاربری شما دوباره در دسترس خواهد بود username_unavailable: نام کاربری شما برای دیگران غیرقابل دسترس خواهد ماند - directories: - directory: شاخهٔ نمایه - explanation: کاربران را بر اساس علاقه‌مندی‌هایشان بیابید - explore_mastodon: گشت و گذار در %{title} disputes: strikes: appeal: درخواست تجدیدنظر @@ -950,7 +846,7 @@ fa: content: شرمنده، یک چیزی از سمت ما اشتباه شده. title: این صفحه درست نیست '503': این صفحه به خاطر یک مشکل موقت در کارساز در دسترس نیست. - noscript_html: برای استفاده از نسخهٔ تحت وب ماستودون، لطفاً جاوااسکریپت را فعال کنید. یا به جایش می‌توانید یک اپ ماستدون را به‌کار ببرید. + noscript_html: برای استفاده از نسخهٔ تحت وب ماستودون، لطفاً جاوااسکریپت را فعال کنید. یا به جایش می‌توانید یک کارهٔ ماستودون را به کار ببرید. existing_username_validator: not_found: کاربری با این نام کاربری در این کارساز پیدا نشد not_found_multiple: "%{usernames} پیدا نشد" @@ -985,7 +881,6 @@ fa: title: ویرایش پالایه errors: invalid_context: زمینه‌ای موجود نیست یا نامعتبر است - invalid_irreversible: پالایش برگشت‌ناپذیر تنها در زمینهٔ خانه یا آگاهی‌ها کار می‌کنند index: delete: پاک‌کردن empty: هیچ پالایه‌ای ندارید. @@ -993,9 +888,6 @@ fa: new: title: افزودن پالایهٔ جدید footer: - developers: برنامه‌نویسان - more: بیشتر… - resources: منابع trending_now: پرطرفدار generic: all: همه @@ -1028,7 +920,6 @@ fa: following: سیاههٔ پی‌گیری muting: سیاههٔ خموشی upload: بارگذاری - in_memoriam_html: به یادبود. invites: delete: غیرفعال‌سازی expired: منقضی‌شده @@ -1111,14 +1002,6 @@ fa: admin: sign_up: subject: "%{name} ثبت نام کرد" - digest: - action: دیدن تمامی آگاهی‌ها - body: خلاصه‌ای از پیغام‌هایی که از زمان آخرین بازدید شما در %{since} فرستاده شد - mention: "%{name} این‌جا از شما نام برد:" - new_followers_summary: - one: در ضمن، وقتی که نبودید یک پیگیر تازه پیدا کردید! ای ول! - other: در ضمن، وقتی که نبودید %{count} پیگیر تازه پیدا کردید! چه عالی! - title: در مدتی که نبودید... favourite: body: "%{name} این نوشتهٔ شما را پسندید:" subject: "%{name} نوشتهٔ شما را پسندید" @@ -1210,22 +1093,7 @@ fa: remove_selected_follows: به پیگیری از کاربران انتخاب‌شده پایان بده status: وضعیت حساب remote_follow: - acct: نشانی حساب username@domain خود را این‌جا بنویسید missing_resource: نشانی اینترنتی برای رسیدن به حساب شما پیدا نشد - no_account_html: هنوز عضو نیستید؟ این‌جا می‌توانید حساب باز کنید - proceed: درخواست پیگیری - prompt: 'شما قرار است این حساب را پیگیری کنید:' - reason_html: "چرا این گام ضروریست؟ ممکن است %{instance} کارسازی نباشد که شما رویش حساب دارید؛ پس لازم است پیش از هرچیز، به کارساز خودتان هدایتتان کنیم." - remote_interaction: - favourite: - proceed: به سمت پسندیدن - prompt: 'شما می‌خواهید این فرسته را بپسندید:' - reblog: - proceed: به سمت تقویت - prompt: 'شما می‌خواهید این فرسته را تقویت کنید:' - reply: - proceed: به سمت پاسخ‌دادن - prompt: 'شما می‌خواهید به این فرسته پاسخ دهید:' scheduled_statuses: over_daily_limit: شما از حد مجاز %{limit} فرسته زمان‌بندی‌شده در آن روز فراتر رفته‌اید over_total_limit: شما از حد مجاز %{limit} فرسته زمان‌بندی‌شده فراتر رفته‌اید @@ -1235,7 +1103,6 @@ fa: browser: مرورگر browsers: alipay: علی‌پی - blackberry: بلک‌بری chrome: کروم edge: مایکروسافت اج electron: الکترون @@ -1249,7 +1116,6 @@ fa: phantom_js: فنتوم‌جی‌اس qq: مرورگر کیوکیو safari: سافاری - uc_browser: مرورگر یوسی weibo: وبیو current_session: نشست فعلی description: "%{browser} روی %{platform}" @@ -1258,8 +1124,6 @@ fa: platforms: adobe_air: ایر ادوبی android: اندروید - blackberry: بلک‌بری - chrome_os: سیستم‌عامل کروم firefox_os: سیستم‌عامل فایرفاکس ios: آی‌اواس linux: لینوکس @@ -1383,89 +1247,6 @@ fa: sensitive_content: محتوای حساس tags: does_not_match_previous_name: با نام پیشین مطابق نیست - terms: - body_html: | -

      سیاست رازداری

      -

      What information do we collect?

      - -
        -
      • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
      • -
      • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
      • -
      • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
      • -
      • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
      • -
      - -
      - -

      What do we use your information for?

      - -

      Any of the information we collect from you may be used in the following ways:

      - -
        -
      • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
      • -
      • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
      • -
      • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
      • -
      - -
      - -

      How do we protect your information?

      - -

      We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

      - -
      - -

      What is our data retention policy?

      - -

      We will make a good faith effort to:

      - -
        -
      • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
      • -
      • Retain the IP addresses associated with registered users no more than 12 months.
      • -
      - -

      You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

      - -

      You may irreversibly delete your account at any time.

      - -
      - -

      Do we use cookies?

      - -

      Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

      - -

      We use cookies to understand and save your preferences for future visits.

      - -
      - -

      Do we disclose any information to outside parties?

      - -

      We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

      - -

      Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

      - -

      When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

      - -
      - -

      Site usage by children

      - -

      If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

      - -

      If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

      - -

      Law requirements can be different if this server is in another jurisdiction.

      - -
      - -

      Changes to our Privacy Policy

      - -

      If we decide to change our privacy policy, we will post those changes on this page.

      - -

      This document is CC-BY-SA. It was last updated March 7, 2018.

      - -

      Originally adapted from the Discourse privacy policy.

      - title: شرایط استفاده و سیاست رازداری %{instance} themes: contrast: ماستودون (سایه‌روشن بالا) default: ماستودون (تیره) @@ -1523,20 +1304,11 @@ fa: suspend: حساب معلق شده است welcome: edit_profile_action: تنظیم نمایه - edit_profile_step: 'شما می‌توانید نمایهٔ خود را به دلخواه خود تغییر دهید: می‌توانید تصویر نمایه، تصویر پس‌زمینه، نام، و چیزهای دیگری را تعیین کنید. اگر بخواهید، می‌توانید حساب خود را خصوصی کنید تا فقط کسانی که شما اجازه می‌دهید بتوانند پیگیر حساب شما شوند.' explanation: نکته‌هایی که برای آغاز کار به شما کمک می‌کنند final_action: چیزی منتشر کنید - final_step: 'چیزی بنویسید! حتی اگر الان کسی پیگیر شما نباشد، دیگران نوشته‌های عمومی شما را می‌بینند، مثلاً در فهرست نوشته‌های محلی و در برچسب (هشتگ)ها. شاید بخواهید با برچسب #معرفی خودتان را معرفی کنید.' full_handle: نام کاربری کامل شما full_handle_hint: این چیزی است که باید به دوستانتان بگویید تا بتوانند از کارسازی دیگر به شما پیام داده یا پی‌گیرتان شوند. - review_preferences_action: تغییر ترجیحات - review_preferences_step: با رفتن به صفحهٔ ترجیحات می‌توانید چیزهای گوناگونی را تنظیم کنید. مثلاً این که چه ایمیل‌های آگاه‌سازی‌ای به شما فرستاده شود، یا حریم خصوصی پیش‌فرض نوشته‌هایتان چه باشد. اگر بیماری سفر (حالت تهوع بر اثر دیدن اجسام متحرک) ندارید، می‌توانید پخش خودکار ویدیوها را فعال کنید. subject: به ماستودون خوش آمدید - tip_federated_timeline: "«فهرست نوشته‌های همه‌جا» نمایی کلی از شبکهٔ ماستودون است. ولی فقط شامل افرادیست که همسایگانتان پیگیرشان هستند؛ پس کامل نیست." - tip_following: به طور پیش‌گزیده مدیر(ان) کارسازتان را پی می‌گیرید. برای یافتن افراد جالب دیگر، فهرست «نوشته‌های محلی» و «نوشته‌های همه‌جا» را ببینید. - tip_local_timeline: فهرست نوشته‌های محلی نمایی کلی از کاربران روی %{instance} را ارائه می‌دهد. این‌ها همسایه‌های شما هستند! - tip_mobile_webapp: اگر مرورگر همراهتان پیشنهاد افزودن ماستودون به صفحهٔ اصلیتان را می‌دهد، می‌توانید آگاهی‌های ارسالی را دریافت کنید. این کار از بسیاری جهت‌ها،‌مانند یک کارهٔ بومی عمل می‌کند! - tips: نکته‌ها title: خوش آمدید، کاربر %{name}! users: follow_limit_reached: شما نمی‌توانید بیش از %{limit} نفر را پی بگیرید diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 55e2332cfc41fe..3a72387e2e729e 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1,94 +1,27 @@ --- fi: about: - about_hashtag_html: Nämä julkiset julkaisut on merkitty hastagilla #%{hashtag}. Voit vastata niihin, jos sinulla on tili jossain päin fediversumia. about_mastodon_html: 'Tulevaisuuden sosiaalinen verkosto: Ei mainoksia, ei valvontaa, toteutettu avoimilla protokollilla ja hajautettu! Pidä tietosi ominasi Mastodonilla!' - about_this: Tietoa tästä palvelimesta - active_count_after: aktiivista - active_footnote: Kuukausittain aktiiviset käyttäjät (MAU) - administered_by: 'Ylläpitäjä:' - api: Rajapinta - apps: Mobiilisovellukset - apps_platforms: Käytä Mastodonia Androidilla, iOS:llä ja muilla alustoilla - browse_directory: Selaa profiilihakemistoa - browse_local_posts: Selaa julkisia julkaisuja tältä palvelimelta - browse_public_posts: Selaa julkisia julkaisuja Mastodonissa - contact: Ota yhteyttä contact_missing: Ei asetettu contact_unavailable: Ei saatavilla - continue_to_web: Jatka verkkosovellukseen - discover_users: Löydä käyttäjiä - documentation: Dokumentaatio - federation_hint_html: Tilillä %{instance}:ssa voit seurata ihmisiä millä tahansa Mastodon-palvelimella ja sen ulkopuolella. - get_apps: Kokeile mobiilisovellusta hosted_on: Mastodon palvelimella %{domain} - instance_actor_flash: | - Tämä on virtuaalitili, joka edustaa itse palvelinta eikä yksittäistä käyttäjää. - Sitä käytetään yhdistämistarkoituksiin, eikä sitä saa estää, ellet halua estää koko palvelinta, jolloin sinun on käytettävä verkkotunnuksen estoa. - learn_more: Lisätietoja - logged_in_as_html: Olet kirjautunut sisään nimellä %{username}. - logout_before_registering: Olet jo kirjautunut sisään. - privacy_policy: Tietosuojakäytäntö - rules: Palvelimen säännöt - rules_html: 'Alla on yhteenveto säännöistä, joita sinun on noudatettava, jos haluat olla tili tällä Mastodonin palvelimella:' - see_whats_happening: Näe mitä tapahtuu - server_stats: 'Palvelimen tilastot:' - source_code: Lähdekoodi - status_count_after: - one: julkaisun - other: julkaisua - status_count_before: Julkaistu - tagline: Seuraa ja löydä uusia kavereita - terms: Käyttöehdot - unavailable_content: Moderoidut palvelimet - unavailable_content_description: - domain: Palvelin - reason: Syy - rejecting_media: 'Näiden palvelimien mediatiedostoja ei käsitellä tai tallenneta eikä pikkukuvia näytetä, mikä edellyttää manuaalista klikkausta alkuperäiseen tiedostoon:' - rejecting_media_title: Media suodatettu - silenced: 'Julkaisut näiltä palvelimilta piilotetaan julkisilta aikajanoilta ja keskusteluista, ilmoituksia ei luoda näiden käyttäjien tekemistä toiminnoista, jos et seuraa heitä:' - silenced_title: Hiljennetyt palvelimet - suspended: 'Dataa näiltä palvelimilta ei tulla käsittelemään, tallentamaan tai jakamaan. Tämä tekee kommunikoinnin näiden käyttäjien kanssa mahdottomaksi:' - suspended_title: Keskeytetyt palvelimet - unavailable_content_html: Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle. - user_count_after: - one: käyttäjä - other: käyttäjää - user_count_before: Palvelimella - what_is_mastodon: Mikä on Mastodon? + title: Tietoja accounts: - choices_html: "%{name} valinnat:" - endorsements_hint: Voit suositella seuraamiasi henkilöitä web käyttöliittymän kautta, ne tulevat näkymään tähän. - featured_tags_hint: Voit käyttää tiettyjä aihesanoja, jotka näytetään täällä. follow: Seuraa followers: one: Seuraaja other: Seuraajat following: Seuratut instance_actor_flash: Tämä on virtuaalitili, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään yhdistämistarkoituksiin, eikä sitä tule keskeyttää. - joined: Liittynyt %{date} last_active: viimeksi aktiivinen link_verified_on: Tämän linkin omistus on tarkastettu %{date} - media: Media - moved_html: "%{name} on muuttanut osoitteeseen %{new_profile_link}:" - network_hidden: Nämä tiedot eivät ole käytettävissä nothing_here: Täällä ei ole mitään! - people_followed_by: Henkilöt, joita %{name} seuraa - people_who_follow: Käyttäjän %{name} seuraajat pin_errors: following: Sinun täytyy seurata henkilöä jota haluat tukea posts: one: Julkaisu other: Julkaisut posts_tab_heading: Julkaisut - posts_with_replies: Julkaisut ja vastaukset - roles: - admin: Ylläpitäjä - bot: Botti - group: Ryhmä - moderator: Moderaattori - unavailable: Profiili ei saatavilla - unfollow: Lopeta seuraaminen admin: account_actions: action: Suorita toimenpide @@ -105,12 +38,17 @@ fi: avatar: Profiilikuva by_domain: Verkkotunnus change_email: - changed_msg: Tilin sähköposti vaihdettu onnistuneesti! + changed_msg: Sähköpostin vaihto onnistui! current_email: Nykyinen sähköposti label: Vaihda sähköposti new_email: Uusi sähköposti submit: Vaihda sähköposti title: Vaihda sähköposti käyttäjälle %{username} + change_role: + changed_msg: Rooli vaihdettu onnistuneesti! + label: Vaihda roolia + no_role: Ei roolia + title: Vaihda roolia käyttäjälle %{username} confirm: Vahvista confirmed: Vahvistettu confirming: Vahvistetaan @@ -154,6 +92,7 @@ fi: active: Aktiivinen all: Kaikki pending: Odottavat + silenced: Rajoitettu suspended: Jäähyllä title: Moderointi moderation_notes: Moderointimerkinnät @@ -161,10 +100,14 @@ fi: most_recent_ip: Viimeisin IP no_account_selected: Yhtään tiliä ei muutettu, koska mitään ei valittu no_limits_imposed: Rajoituksia ei ole asetettu + no_role_assigned: Roolia ei ole määritetty not_subscribed: Ei tilaaja pending: Odottaa tarkistusta perform_full_suspension: Siirrä kokonaan jäähylle previous_strikes: Aiemmat varoitukset + previous_strikes_description_html: + one: Tällä tilillä on yksi varoitus. + other: Tällä tilillä on %{count} varoitusta. promote: Ylennä protocol: Protokolla public: Julkinen @@ -184,12 +127,7 @@ fi: reset: Palauta reset_password: Palauta salasana resubscribe: Tilaa uudelleen - role: Oikeudet - roles: - admin: Ylläpitäjä - moderator: Moderaattori - staff: Henkilöstö - user: Käyttäjä + role: Rooli search: Hae search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostiverkkotunnus search_same_ip: Muut käyttäjät samalla IP-osoitteella @@ -232,17 +170,21 @@ fi: approve_user: Hyväksy käyttäjä assigned_to_self_report: Määritä raportti change_email_user: Vaihda sähköposti käyttäjälle + change_role_user: Muuta käyttäjän roolia confirm_user: Vahvista käyttäjä create_account_warning: Luo varoitus create_announcement: Luo ilmoitus + create_canonical_email_block: Luo sähköpostin esto create_custom_emoji: Luo mukautettu emoji create_domain_allow: Salli palvelin create_domain_block: Estä palvelin create_email_domain_block: Estä sähköpostipalvelin create_ip_block: Luo IP-sääntö create_unavailable_domain: Luo ei-saatavilla oleva verkkotunnus + create_user_role: Luo rooli demote_user: Alenna käyttäjä destroy_announcement: Poista ilmoitus + destroy_canonical_email_block: Poista sähköpostin esto destroy_custom_emoji: Poista mukautettu emoji destroy_domain_allow: Salli verkkotunnuksen poisto destroy_domain_block: Poista verkkotunnuksen esto @@ -251,6 +193,7 @@ fi: destroy_ip_block: Poista IP-sääntö destroy_status: Poista julkaisu destroy_unavailable_domain: Poista ei-saatavilla oleva verkkotunnus + destroy_user_role: Hävitä rooli disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä disable_custom_emoji: Estä mukautettu emoji disable_sign_in_token_auth_user: Estä käyttäjältä sähköpostitunnuksen todennus @@ -264,6 +207,7 @@ fi: reject_user: Hylkää käyttäjä remove_avatar_user: Profiilikuvan poisto reopen_report: Uudelleenavaa raportti + resend_user: Lähetä vahvistusviesti uudelleen reset_password_user: Nollaa salasana resolve_report: Selvitä raportti sensitive_account: Pakotus arkaluontoiseksi tiliksi @@ -277,23 +221,29 @@ fi: update_announcement: Päivitä ilmoitus update_custom_emoji: Päivitä muokattu emoji update_domain_block: Päivitä verkkotunnuksen esto + update_ip_block: Päivitä IP-sääntö update_status: Päivitä viesti + update_user_role: Päivitä rooli actions: approve_appeal_html: "%{name} hyväksyi moderointipäätöksen muutoksenhaun lähettäjältä %{target}" approve_user_html: "%{name} hyväksyi käyttäjän rekisteröitymisen kohteesta %{target}" assigned_to_self_report_html: "%{name} otti raportin %{target} tehtäväkseen" change_email_user_html: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen" + change_role_user_html: "%{name} muutti roolia %{target}" confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen" create_account_warning_html: "%{name} lähetti varoituksen henkilölle %{target}" create_announcement_html: "%{name} loi uuden ilmoituksen %{target}" + create_canonical_email_block_html: "%{name} esti sähköpostin hashilla %{target}" create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}" create_domain_allow_html: "%{name} salli yhdistäminen verkkotunnuksella %{target}" create_domain_block_html: "%{name} esti verkkotunnuksen %{target}" create_email_domain_block_html: "%{name} esti sähköpostin %{target}" create_ip_block_html: "%{name} luonut IP-säännön %{target}" create_unavailable_domain_html: "%{name} pysäytti toimituksen verkkotunnukseen %{target}" + create_user_role_html: "%{name} luonut %{target} roolin" demote_user_html: "%{name} alensi käyttäjän %{target}" destroy_announcement_html: "%{name} poisti ilmoituksen %{target}" + destroy_canonical_email_block_html: "%{name} poisti sähköposti eston hashilla %{target}" destroy_custom_emoji_html: "%{name} poisti emojin %{target}" destroy_domain_allow_html: "%{name} esti yhdistämisen verkkotunnuksella %{target}" destroy_domain_block_html: "%{name} poisti verkkotunnuksen %{target} eston" @@ -302,6 +252,7 @@ fi: destroy_ip_block_html: "%{name} poisti IP-säännön %{target}" destroy_status_html: "%{name} poisti viestin %{target}" destroy_unavailable_domain_html: "%{name} jatkoi toimitusta verkkotunnukseen %{target}" + destroy_user_role_html: "%{name} poisti %{target} roolin" disable_2fa_user_html: "%{name} poisti käyttäjältä %{target} vaatimuksen kaksivaiheisen todentamiseen" disable_custom_emoji_html: "%{name} poisti emojin %{target}" disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksen %{target} todennuksen käytöstä" @@ -315,6 +266,7 @@ fi: reject_user_html: "%{name} hylkäsi käyttäjän rekisteröitymisen kohteesta %{target}" remove_avatar_user_html: "%{name} poisti käyttäjän %{target} profiilikuvan" reopen_report_html: "%{name} avasi uudelleen raportin %{target}" + resend_user_html: "%{name} lähetti vahvistusviestin sähköpostitse käyttäjälle %{target}" reset_password_user_html: "%{name} palautti käyttäjän %{target} salasanan" resolve_report_html: "%{name} ratkaisi raportin %{target}" sensitive_account_html: "%{name} merkitsi %{target} median arkaluonteiseksi" @@ -328,8 +280,10 @@ fi: update_announcement_html: "%{name} päivitti ilmoituksen %{target}" update_custom_emoji_html: "%{name} päivitti emojin %{target}" update_domain_block_html: "%{name} päivitti verkkotunnuksen %{target}" + update_ip_block_html: "%{name} muutti sääntöä IP-osoitteelle %{target}" update_status_html: "%{name} päivitti viestin %{target}" - deleted_status: "(poistettu julkaisu)" + update_user_role_html: "%{name} muutti roolia %{target}" + deleted_account: poisti tilin empty: Lokeja ei löytynyt. filter_by_action: Suodata tapahtuman mukaan filter_by_user: Suodata käyttäjän mukaan @@ -368,10 +322,12 @@ fi: enable: Ota käyttöön enabled: Käytössä enabled_msg: Emojin käyttöönotto onnistui + image_hint: PNG tai GIF enintään %{size} list: Listaa listed: Listassa new: title: Lisää uusi mukautettu emoji + no_emoji_selected: Hymiöitä ei muutettu, koska yhtään ei valittu not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa overwrite: Kirjoita yli shortcode: Lyhennekoodi @@ -424,6 +380,7 @@ fi: destroyed_msg: Verkkotunnuksen esto on peruttu domain: Verkkotunnus edit: Muokkaa verkkotunnuksen estoa + existing_domain_block: Olet jo asettanut tiukemmat rajoitukset %{name}. existing_domain_block_html: Olet jo asettanut %{name} tiukemmat rajat ja sinun täytyy poistaa se ensin. new: create: Luo esto @@ -474,14 +431,46 @@ fi: title: Noudata suosituksia unsuppress: Palauta seuraa suositus instances: + availability: + description_html: + one: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivä ilman onnistumista, uusia yrityksiä ei tehdä ennen kuin toimitus alkaen verkkotunnukselta on vastaanotettu. + other: Jos toimitus verkkotunnukselle, epäonnistuu %{count} eri päivänä ilman onnistumista, uusia yrityksiä ei tehdä ennen kuin toimitus alkaen verkkotunnuselta on vastaanotettu. + failure_threshold_reached: Epäonnistumisen kynnys saavutettu %{date}. + failures_recorded: + one: Epäonnistuneita yrityksiä %{count} päivässä. + other: Epäonnistuneita yrityksiä %{count} päivää. + no_failures_recorded: Ei epäonnistumisia kirjattu. + title: Saatavuus + warning: Viimeisin yritys yhdistää yhteys tähän palvelimeen on epäonnistunut back_to_all: Kaikki back_to_limited: Rajoitettu back_to_warning: Varoitus by_domain: Verkkotunnus confirm_purge: Oletko varma, että haluat pysyvästi poistaa tiedot tältä verkkotunnukselta? + content_policies: + comment: Sisäinen huomautus + description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnuksien tileihin. + policies: + reject_media: Hylkää media + reject_reports: Hylkää raportit + silence: Rajoitus + suspend: Jäädytä + policy: Käytännöt + reason: Julkinen syy + title: Sisällön toimintatavat + dashboard: + instance_accounts_dimension: Seuratuimmat tilit + instance_accounts_measure: tallennetut tilit + instance_followers_measure: seuraajamme siellä + instance_follows_measure: heidän seuraajansa täällä + instance_languages_dimension: Suosituimmat kielet + instance_media_attachments_measure: tallennetut median liitteet + instance_reports_measure: niitä koskevat raportit + instance_statuses_measure: tallennetut viestit delivery: all: Kaikki clear: Tyhjennä toimitusvirheet + failing: Epäonnistuminen restart: Käynnistä toimitus uudelleen stop: Lopeta toimitus unavailable: Ei saatavilla @@ -490,6 +479,9 @@ fi: delivery_error_hint: Jos toimitus ei ole mahdollista %{count} päivän aikana, se merkitään automaattisesti toimittamattomaksi. destroyed_msg: Tiedot %{domain} on nyt jonossa välitöntä poistoa varten. empty: Verkkotunnuksia ei löytynyt. + known_accounts: + one: "%{count} tunnettu tili" + other: "%{count} tunnettua tiliä" moderation: all: Kaikki limited: Rajoitettu @@ -497,12 +489,14 @@ fi: private_comment: Yksityinen kommentti public_comment: Julkinen kommentti purge: Tyhjennä + purge_description_html: Jos uskot tämän verkkotunnuksen olevan offline-tilassa, voit poistaa kaikki tilitietueet ja niihin liittyvät tiedot sinun tallennustilasta. Tämä voi kestää jonkin aikaa. title: Tiedossa olevat instanssit total_blocked_by_us: Estetty meidän toimesta total_followed_by_them: Heidän seuraama total_followed_by_us: Meidän seuraama total_reported: Niitä koskevat raportit total_storage: Medialiitteet + totals_time_period_hint_html: Alla näkyvät yhteenlasketut tiedot sisältävät koko ajan. invites: deactivate_all: Poista kaikki käytöstä filter: @@ -557,6 +551,7 @@ fi: action_taken_by: Toimenpiteen tekijä actions: delete_description_html: Ilmoitetut viestit poistetaan ja kirjataan varoitus, joka auttaa sinua saman tilin tulevista rikkomuksista. + mark_as_sensitive_description_html: Ilmoitettujen viestien media merkitään arkaluonteisiksi ja varoitus tallennetaan, jotta voit kärjistää saman tilin tulevia rikkomuksia. other_description_html: Katso lisää vaihtoehtoja tilin käytöksen hallitsemiseksi ja ilmoitetun tilin viestinnän mukauttamiseksi. resolve_description_html: Ilmoitettua tiliä vastaan ei ryhdytä toimenpiteisiin, varoitusta ei kirjata ja raportti suljetaan. silence_description_html: Profiili näkyy vain niille, jotka jo seuraavat sitä tai etsivät sen manuaalisesti, mikä rajoittaa merkittävästi kattavuutta. Se voidaan aina palauttaa. @@ -606,6 +601,67 @@ fi: unresolved: Ratkaisemattomat updated_at: Päivitetty view_profile: Näytä profiili + roles: + add_new: Lisää rooli + assigned_users: + one: "%{count} käyttäjä" + other: "%{count} käyttäjää" + categories: + administration: Ylläpito + devops: DevOps + invites: Kutsut + moderation: Moderointi + special: Erikois + delete: Poista + description_html: Käyttäjän roolit, voit muokata toimintoja ja alueita mitä sinun Mastodon käyttäjät voivat käyttää. + edit: Muokkaa "%{name}" roolia + everyone: Oletus käyttöoikeudet + everyone_full_description_html: Tämä on perusrooli joka vaikuttaa kaikkiin käyttäjiin, jopa ilman määrättyä roolia. Kaikki muut roolit perivät sen käyttöoikeudet. + permissions_count: + one: "%{count} käyttöoikeus" + other: "%{count} käyttöoikeutta" + privileges: + administrator: Ylläpitäjä + administrator_description: Käyttäjät, joilla on tämä käyttöoikeus, ohittavat jokaisen käyttöoikeuden + delete_user_data: Poista käyttäjän tiedot + delete_user_data_description: Salli käyttäjien poistaa muiden käyttäjien tiedot viipymättä + invite_users: Kutsu käyttäjiä + invite_users_description: Sallii käyttäjien kutsua uusia ihmisiä palvelimelle + manage_announcements: Hallitse Ilmoituksia + manage_announcements_description: Salli käyttäjien hallita ilmoituksia palvelimella + manage_appeals: Hallitse valituksia + manage_appeals_description: Antaa käyttäjien tarkastella valvontatoimia koskevia valituksia + manage_blocks: Hallitse lohkoja + manage_blocks_description: Sallii käyttäjien estää sähköpostipalvelujen ja IP-osoitteiden käytön + manage_custom_emojis: Hallita mukautettuja hymiöitä + manage_custom_emojis_description: Salli käyttäjien hallita mukautettuja hymiöitä palvelimella + manage_federation: Hallita liitoksia + manage_federation_description: Sallii käyttäjien estää tai sallia liitoksen muiden verkkotunnusten kanssa ja hallita toimitusta + manage_invites: Hallita kutsuja + manage_invites_description: Sallii käyttäjien selata ja poistaa kutsulinkkejä käytöstä + manage_reports: Hallita raportteja + manage_reports_description: Sallii käyttäjien tarkastella raportteja ja suorittaa valvontatoimia niitä vastaan + manage_roles: Hallita rooleja + manage_roles_description: Sallii käyttäjien hallita ja määrittää rooleja heidän alapuolellaan + manage_rules: Hallita sääntöjä + manage_rules_description: Sallii käyttäjien vaihtaa palvelinsääntöjä + manage_settings: Hallita asetuksia + manage_settings_description: Salli käyttäjien muuttaa sivuston asetuksia + manage_taxonomies: Hallita luokittelua + manage_taxonomies_description: Sallii käyttäjien tarkistaa trendillisen sisällön ja päivittää hashtag-asetuksia + manage_user_access: Hallita käyttäjän oikeuksia + manage_user_access_description: Sallii käyttäjien poistaa käytöstä muiden käyttäjien kaksivaiheisen todennuksen, muuttaa heidän sähköpostiosoitettaan ja nollata heidän salasanansa + manage_users: Hallita käyttäjiä + manage_users_description: Sallii käyttäjien tarkastella muiden käyttäjien tietoja ja suorittaa valvontatoimia heitä vastaan + manage_webhooks: Hallita Webhookit + manage_webhooks_description: Sallii käyttäjien luoda webhookit hallinnollisiin tapahtumiin + view_audit_log: Katsoa valvontalokia + view_audit_log_description: Sallii käyttäjien nähdä palvelimen hallinnollisten toimien historian + view_dashboard: Näytä koontinäyttö + view_dashboard_description: Sallii käyttäjien käyttää kojelautaa ja erilaisia mittareita + view_devops: DevOps + view_devops_description: Sallii käyttäjille oikeuden käyttää Sidekiq ja pgHero dashboardeja + title: Roolit rules: add_new: Lisää sääntö delete: Poista @@ -614,108 +670,67 @@ fi: empty: Palvelimen sääntöjä ei ole vielä määritelty. title: Palvelimen säännöt settings: - activity_api_enabled: - desc_html: Paikallisesti julkaistujen tilojen, aktiivisten käyttäjien ja uusien rekisteröintien määrät viikoittain - title: Julkaise koostetilastoja käyttäjien aktiivisuudesta - bootstrap_timeline_accounts: - desc_html: Erota käyttäjänimet pilkulla. Vain paikalliset ja lukitsemattomat tilit toimivat. Jos kenttä jätetään tyhjäksi, oletusarvona ovat kaikki paikalliset ylläpitäjät. - title: Uudet käyttäjät seuraavat oletuksena seuraavia tilejä - contact_information: - email: Työsähköposti - username: Yhteyshenkilön käyttäjänimi - custom_css: - desc_html: Muokkaa ulkoasua CSS:llä, joka on ladattu jokaiselle sivulle - title: Mukautettu CSS - default_noindex: - desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse - title: Valitse oletuksena käyttäjät hakukoneiden indeksoinnin ulkopuolelle + about: + manage_rules: Hallinnoi palvelimen sääntöjä + preamble: Anna perusteellista tietoa siitä, miten palvelinta käytetään, valvotaan, rahoitetaan. + rules_hint: On olemassa erityinen alue sääntöjä, joita käyttäjien odotetaan noudattavan. + title: Tietoja + appearance: + preamble: Muokkaa Mastodonin web-käyttöliittymää. + title: Ulkoasu + branding: + preamble: Palvelimesi brändäys erottaa sen muista verkon palvelimista. Nämä tiedot voidaan näyttää useissa eri ympäristöissä, kuten Mastodonin käyttöliittymässä, sovelluksissa, linkkien esikatselu muilla sivustoilla ja viestisovelluksien sisällä ja niin edelleen. Tästä syystä on parasta pitää nämä tiedot selkeinä, lyhyinä ja ytimekkäinä. + title: Brändäys + content_retention: + preamble: Määritä, miten käyttäjän luoma sisältö tallennetaan Mastodoniin. + title: Sisällön säilyttäminen + discovery: + follow_recommendations: Noudata suosituksia + preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset etsintäominaisuudet toimivat palvelimellasi. + profile_directory: Profiilihakemisto + public_timelines: Julkiset aikajanat + title: Löytäminen + trends: Trendit domain_blocks: all: Kaikille disabled: Ei kenellekkään - title: Näytä domainestot users: Kirjautuneille paikallisille käyttäjille - domain_blocks_rationale: - title: Näytä syy - hero: - desc_html: Näytetään etusivulla. Suosituskoko vähintään 600x100 pikseliä. Jos kuvaa ei aseteta, käytetään instanssin pikkukuvaa - title: Sankarin kuva - mascot: - desc_html: Näytetään useilla sivuilla. Suositus vähintään 293×205px. Kun ei ole asetettu, käytetään oletuskuvaa - title: Maskottikuva - peers_api_enabled: - desc_html: Verkkotunnukset, jotka tämä instanssi on kohdannut fediversumissa - title: Julkaise löydettyjen instanssien luettelo - preview_sensitive_media: - desc_html: Linkin esikatselu muilla sivustoilla näyttää pikkukuvan vaikka media on merkitty arkaluonteiseksi - title: Näytä arkaluontoiset mediat OpenGraph esikatselussa - profile_directory: - desc_html: Salli käyttäjien olla löydettävissä - title: Ota profiilihakemisto käyttöön registrations: - closed_message: - desc_html: Näytetään etusivulla, kun rekisteröinti on suljettu. HTML-tagit käytössä - title: Viesti, kun rekisteröinti on suljettu - deletion: - desc_html: Salli jokaisen poistaa oma tilinsä - title: Avoin tilin poisto - min_invite_role: - disabled: Ei kukaan - title: Salli kutsut käyttäjältä - require_invite_text: - desc_html: Kun rekisteröinnit edellyttävät manuaalista hyväksyntää, tee “Miksi haluat liittyä?” teksti pakolliseksi eikä valinnaiseksi - title: Vaadi uusia käyttäjiä antamaan liittymisen syy + preamble: Määritä, kuka voi luoda tilin palvelimellesi. + title: Rekisteröinnit registrations_mode: modes: approved: Rekisteröinti vaatii hyväksynnän none: Kukaan ei voi rekisteröityä open: Kaikki voivat rekisteröityä - title: Rekisteröintitapa - show_known_fediverse_at_about_page: - desc_html: Kun tämä on valittu, esikatselussa näytetään tuuttaukset kaikkialta tunnetusta fediversumista. Muutoin näytetään vain paikalliset tuuttaukset. - title: Näytä aikajanan esikatselussa koko tunnettu fediversumi - show_staff_badge: - desc_html: Näytä käyttäjäsivulla henkilöstömerkki - title: Näytä henkilöstömerkki - site_description: - desc_html: Esittelykappale etusivulla ja metatunnisteissa. HTML-tagit käytössä, tärkeimmät ovat <a> ja <em>. - title: Instanssin kuvaus - site_description_extended: - desc_html: Hyvä paikka käytösohjeille, säännöille, ohjeistuksille ja muille instanssin muista erottaville asioille. HTML-tagit käytössä - title: Omavalintaiset laajat tiedot - site_short_description: - desc_html: Näytetään sivupalkissa ja kuvauksessa. Kerro yhdessä kappaleessa, mitä Mastodon on ja mikä tekee palvelimesta erityisen. - title: Lyhyt instanssin kuvaus - site_terms: - desc_html: Tähän voit kirjoittaa tietosuojakäytännöistä, käyttöehdoista ja sen sellaisista asioista. Voit käyttää HTML-tageja - title: Omavalintaiset käyttöehdot - site_title: Instanssin nimi - thumbnail: - desc_html: Käytetään esikatseluissa OpenGraphin ja API:n kautta. Suosituskoko 1200x630 pikseliä - title: Instanssin pikkukuva - timeline_preview: - desc_html: Näytä julkinen aikajana aloitussivulla - title: Aikajanan esikatselu - title: Sivuston asetukset - trendable_by_default: - desc_html: Vaikuttaa hashtageihin, joita ei ole aiemmin poistettu käytöstä - title: Salli hashtagit ilman tarkistusta ennakkoon - trends: - desc_html: Näytä julkisesti aiemmin tarkistetut hashtagit, jotka ovat tällä hetkellä saatavilla - title: Trendaavat aihetunnisteet + title: Palvelimen asetukset site_uploads: delete: Poista ladattu tiedosto destroyed_msg: Sivuston lataus onnistuneesti poistettu! statuses: + account: Tekijä + application: Sovellus back_to_account: Takaisin tilin sivulle back_to_report: Takaisin raporttisivulle batch: remove_from_report: Poista raportista report: Raportti deleted: Poistettu + favourites: Suosikit + history: Versiohistoria + in_reply_to: Vastaa + language: Kieli media: title: Media + metadata: Metadata no_status_selected: Viestejä ei muutettu, koska yhtään ei ole valittuna + open: Avaa viesti + original_status: Alkuperäinen viesti + reblogs: Edelleen jako + status_changed: Viesti muutettu title: Tilin tilat + trending: Nousussa + visibility: Näkyvyys with_media: Sisältää mediaa strikes: actions: @@ -731,6 +746,11 @@ fi: system_checks: database_schema_check: message_html: Tietokannan siirto on vireillä. Suorita ne varmistaaksesi, että sovellus toimii odotetulla tavalla + elasticsearch_running_check: + message_html: Ei saatu yhteyttä Elasticsearch. Tarkista, että se on käynnissä tai poista kokotekstihaku käytöstä + elasticsearch_version_check: + message_html: 'Yhteensopimaton Elasticsearch versio: %{value}' + version_comparison: Elasticsearch %{running_version} on käynnissä, kun %{required_version} vaaditaan rules_check: action: Hallinnoi palvelimen sääntöjä message_html: Et ole määrittänyt mitään palvelimen sääntöä. @@ -750,8 +770,15 @@ fi: description_html: Nämä ovat linkkejä, joita jaetaan tällä hetkellä paljon tileillä, joilta palvelimesi näkee viestejä. Se voi auttaa käyttäjiäsi saamaan selville, mitä maailmassa tapahtuu. Linkkejä ei näytetä julkisesti, ennen kuin hyväksyt julkaisijan. Voit myös sallia tai hylätä yksittäiset linkit. disallow: Hylkää linkki disallow_provider: Estä julkaisija + no_link_selected: Yhtään linkkiä ei muutettu, koska yhtään ei valittu + publishers: + no_publisher_selected: Julkaisijoita ei muutettu, koska yhtään ei valittu + shared_by_over_week: + one: Yksi henkilö jakanut viimeisen viikon aikana + other: Jakanut %{count} henkilöä viimeisen viikon aikana title: Suositut linkit usage_comparison: Jaettu %{today} kertaa tänään verrattuna eilen %{yesterday} + only_allowed: Vain sallittu pending_review: Odottaa tarkistusta preview_card_providers: allowed: Tämän julkaisijan linkit voivat trendata @@ -765,6 +792,7 @@ fi: description_html: Nämä ovat viestejä, jotka palvelimesi tietää tällä hetkellä jaetuksi ja suosituksi. Tämä voi auttaa uusia ja palaavia ihmisiä löytämään lisää ihmisiä, joita seurata seurata. Julkaisuja ei näytetä julkisesti ennen kuin hyväksyt tekijän ja kirjoittaja sallii tilinsä ehdottamisen muille. Voit myös sallia tai hylätä yksittäiset viestit. disallow: Estä viesti disallow_account: Estä tekijä + no_status_selected: Suosittuja viestejä ei muutettu, koska yhtään ei valittu not_discoverable: Tekijä ei ole ilmoittanut olevansa löydettävissä shared_by: one: Jaettu tai suosikki kerran @@ -780,6 +808,7 @@ fi: tag_uses_measure: käyttökerrat description_html: Nämä ovat hashtageja, jotka näkyvät tällä hetkellä monissa viesteissä, jotka palvelimesi näkee. Tämä voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten tällä hetkellä. Mitään hashtageja ei näytetä julkisesti ennen kuin hyväksyt ne. listable: Voidaan ehdottaa + no_tag_selected: Yhtään tagia ei muutettu, koska yhtään ei valittu not_listable: Ei tulla ehdottamaan not_trendable: Ei näy trendien alla not_usable: Ei voida käyttää @@ -789,13 +818,37 @@ fi: trending_rank: 'Nousussa #%{rank}' usable: Voidaan käyttää usage_comparison: Käytetty %{today} kertaa tänään, verrattuna %{yesterday} eiliseen + used_by_over_week: + one: Yhden henkilön käyttämä viime viikon aikana + other: Käyttänyt %{count} henkilöä viimeisen viikon aikana title: Trendit + trending: Nousussa warning_presets: add_new: Lisää uusi delete: Poista edit_preset: Muokkaa varoituksen esiasetusta empty: Et ole vielä määrittänyt yhtään varoitusesiasetusta. title: Hallinnoi varoitusesiasetuksia + webhooks: + add_new: Lisää päätepiste + delete: Poista + description_html: A webhook mahdollistaa Mastodonin työntää reaaliaikaisia ilmoituksia valituista tapahtumista omaan sovellukseesi, joten sovelluksesi voi laukaista automaattisesti reaktioita. + disable: Poista käytöstä + disabled: Ei käytössä + edit: Muokkaa päätepistettä + empty: Sinulla ei ole vielä määritetty webhook-päätepisteitä. + enable: Ota käyttöön + enabled: Aktiivinen + enabled_events: + one: 1 aktivoitu tapahtuma + other: "%{count} aktivoitua tapahtumaa" + events: Tapahtumat + new: Uusi webhook + rotate_secret: Vaihda salaus + secret: Salainen tunnus + status: Tila + title: Webhookit + webhook: Webhook admin_mailer: new_appeal: actions: @@ -819,12 +872,8 @@ fi: new_trends: body: 'Seuraavat kohteet on tarkistettava ennen kuin ne voidaan näyttää julkisesti:' new_trending_links: - no_approved_links: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä linkkejä. - requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään linkin, joka on tällä hetkellä "%{lowest_link_title}" arvosanalla %{lowest_link_score}.' title: Suositut linkit new_trending_statuses: - no_approved_statuses: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä viestejä. - requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään julkaisun, joka on tällä hetkellä %{lowest_status_url} arvosanalla %{lowest_status_score}.' title: Suositut viestit new_trending_tags: no_approved_tags: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä hashtageja. @@ -839,11 +888,11 @@ fi: hint_html: Jos haluat siirtyä toisesta tilistä tähän tiliin, voit luoda aliasin, joka on pakollinen, ennen kuin voit siirtää seuraajia vanhasta tilistä tähän tiliin. Tämä toiminto on itsessään vaaraton ja palautuva. Tilin siirtyminen aloitetaan vanhalta tililtä. remove: Poista aliaksen linkitys appearance: - advanced_web_interface: Edistynyt web-käyttöliittymä + advanced_web_interface: Edistynyt selainkäyttöliittymä advanced_web_interface_hint: 'Jos haluat käyttää koko näytön leveyttä, edistyneen web-käyttöliittymän avulla voit määrittää useita eri sarakkeita näyttämään niin paljon tietoa samanaikaisesti kuin haluat: Koti, ilmoitukset, yhdistetty aikajana, mikä tahansa määrä luetteloita ja aihetunnisteita.' animations_and_accessibility: Animaatiot ja saavutettavuus confirmation_dialogs: Vahvistusvalinnat - discovery: Löytö + discovery: Löydöt localization: body: Mastodonin ovat kääntäneet vapaaehtoiset. guide_link: https://crowdin.com/project/mastodon @@ -860,16 +909,13 @@ fi: applications: created: Sovelluksen luonti onnistui destroyed: Sovelluksen poisto onnistui - invalid_url: Annettu URL on virheellinen regenerate_token: Luo pääsytunnus uudelleen token_regenerated: Pääsytunnuksen uudelleenluonti onnistui warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille! your_token: Pääsytunnus auth: - apply_for_account: Pyydä kutsu + apply_for_account: Tule jonotuslistalle change_password: Salasana - checkbox_agreement_html: Hyväksyn palvelimen käytännöt ja käyttöehdot - checkbox_agreement_without_rules_html: Hyväksyn käyttöehdot delete_account: Poista tili delete_account_html: Jos haluat poistaa tilisi, paina tästä. Poisto on vahvistettava. description: @@ -888,6 +934,7 @@ fi: migrate_account: Muuta toiseen tiliin migrate_account_html: Jos haluat ohjata tämän tilin toiseen tiliin, voit asettaa toisen tilin tästä. or_log_in_with: Tai käytä kirjautumiseen + privacy_policy_agreement_html: Olen lukenut ja hyväksynyt tietosuojakäytännön providers: cas: CAS saml: SAML @@ -895,12 +942,18 @@ fi: registration_closed: "%{instance} ei hyväksy uusia jäseniä" resend_confirmation: Lähetä vahvistusohjeet uudestaan reset_password: Palauta salasana + rules: + preamble: "%{domain} valvojat määrittävät ja valvovat sääntöjä." + title: Joitakin perussääntöjä. security: Tunnukset set_new_password: Aseta uusi salasana setup: email_below_hint_html: Jos alla oleva sähköpostiosoite on virheellinen, voit muuttaa sitä täällä ja tilata uuden vahvistussähköpostiviestin. email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit muuttaa sitä tiliasetuksissa. title: Asetukset + sign_up: + preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on. + title: Otetaan sinulle käyttöön %{domain}. status: account_status: Tilin tila confirming: Odotetaan sähköpostivahvistuksen valmistumista. @@ -909,7 +962,6 @@ fi: redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä kohteeseen %{acct}. view_strikes: Näytä tiliäsi koskevia aiempia varoituksia too_fast: Lomake lähetettiin liian nopeasti, yritä uudelleen. - trouble_logging_in: Ongelmia kirjautumisessa? use_security_key: Käytä suojausavainta authorize_follow: already_following: Sinä seuraat jo tätä tiliä @@ -967,10 +1019,6 @@ fi: more_details_html: Lisätietoja saat tietosuojakäytännöstämme. username_available: Käyttäjänimesi tulee saataville uudestaan username_unavailable: Käyttäjänimesi ei tule saataville enää uudestaan - directories: - directory: Profiilihakemisto - explanation: Löydä käyttäjiä heidän kiinnostustensa mukaan - explore_mastodon: Tutki %{title}ia disputes: strikes: action_taken: Toteutetut toimet @@ -981,10 +1029,12 @@ fi: appealed_msg: Valituksesi on lähetetty. Jos se hyväksytään, sinulle ilmoitetaan. appeals: submit: Lähetä valitus + approve_appeal: Hyväksy valitus associated_report: Liittyvä raportti created_at: Päivätty description_html: Nämä ovat tiliäsi koskevia toimia ja varoituksia, jotka %{instance} henkilökunta on lähettänyt sinulle. recipient: Osoitettu + reject_appeal: Hylkää valitus status: 'Viesti #%{id}' status_removed: Viesti on jo poistettu järjestelmästä title: "%{action} alkaen %{date}" @@ -1015,7 +1065,7 @@ fi: content: Valitettavasti jokin meni pieleen meidän päässämme. title: Sivu ei ole oikein '503': Sivua ei voitu näyttää palvelimen väliaikaisen vian vuoksi. - noscript_html: Mastodon-selainsovelluksen käyttöön vaaditaan JavaScript. Voit vaihtoehtoisesti kokeilla jotakin omalle käyttöjärjestelmällesi tehtyä Mastodonsovellusta. + noscript_html: Käyttääksesi Mastodon-verkkopalvelua, ota JavaScript käyttöön. Vaihtoehtoisesti voit kokeilla myös jotakin juuri käyttämällesi alustalle kehitettyä Mastodon-sovellusta. existing_username_validator: not_found: paikallista käyttäjää ei löydy kyseisellä käyttäjänimellä not_found_multiple: "%{usernames} ei löytynyt" @@ -1047,29 +1097,60 @@ fi: public: Julkiset aikajanat thread: Keskustelut edit: + add_keyword: Lisää avainsana + keywords: Avainsanat + statuses: Yksittäiset postaukset + statuses_hint_html: Tämä suodatin koskee yksittäisten postausten valintaa riippumatta siitä, vastaavatko ne alla olevia avainsanoja. Tarkista tai poista viestit suodattimesta. title: Muokkaa suodatinta errors: + deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai web-käyttöliittymää. invalid_context: Ei sisältöä tai se on virheellinen - invalid_irreversible: Sen sijaan suodatus toimii vain kodin tai ilmoitusten yhteydessä index: + contexts: Suodattimet %{contexts} delete: Poista empty: Sinulla ei ole suodattimia. + expires_in: Vanhenee %{distance} + expires_on: Vanhenee %{date} + keywords: + one: "%{count} avainsana" + other: "%{count} avainsanaa" + statuses: + one: "%{count} viesti" + other: "%{count} viestiä" + statuses_long: + one: "%{count} yksittäinen viesti piilotettu" + other: "%{count} yksittäistä viestiä piilotettu" title: Suodattimet new: + save: Tallenna uusi suodatin title: Lisää uusi suodatin + statuses: + back_to_filter: Takaisin suodattimeen + batch: + remove: Poista suodattimista + index: + hint: Tämä suodatin koskee yksittäisten viestien valintaa muista kriteereistä riippumatta. Voit lisätä lisää viestejä tähän suodattimeen web-käyttöliittymästä. + title: Suodatetut viestit footer: - developers: Kehittäjille - more: Lisää… - resources: Resurssit trending_now: Suosittua nyt generic: all: Kaikki + all_items_on_page_selected_html: + one: "%{count} kohde tällä sivulla on valittu." + other: Kaikki %{count} kohdetta tällä sivulla on valittu. + all_matching_items_selected_html: + one: "%{count} tuotetta, joka vastaa hakuasi." + other: Kaikki %{count} kohdetta, jotka vastaavat hakuasi. changes_saved_msg: Muutosten tallennus onnistui! copy: Kopioi delete: Poista + deselect: Poista kaikki valinnat none: Ei mitään order_by: Järjestä save_changes: Tallenna muutokset + select_all_matching_items: + one: Valitse %{count} kohdetta, joka vastaa hakuasi. + other: Valitse kaikki %{count} kohdetta, jotka vastaavat hakuasi. today: tänään validation_errors: one: Kaikki ei ole aivan oikein! Tarkasta alla oleva virhe @@ -1093,7 +1174,6 @@ fi: following: Seurattujen lista muting: Mykistettyjen lista upload: Lähetä - in_memoriam_html: Muistoissamme. invites: delete: Poista käytöstä expired: Vanhentunut @@ -1172,18 +1252,14 @@ fi: carry_blocks_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka olit estänyt. carry_mutes_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka mykistit. copy_account_note_text: 'Tämä käyttäjä siirtyi paikasta %{acct}, tässä olivat aiemmat muistiinpanosi niistä:' + navigation: + toggle_menu: Avaa/sulje valikko notification_mailer: admin: + report: + subject: "%{name} lähetti raportin" sign_up: subject: "%{name} kirjautunut" - digest: - action: Näytä kaikki ilmoitukset - body: Tässä lyhyt yhteenveto viime käyntisi (%{since}) jälkeen tulleista viesteistä - mention: "%{name} mainitsi sinut:" - new_followers_summary: - one: Olet myös saanut yhden uuden seuraajan! Juhuu! - other: Olet myös saanut %{count} uutta seuraajaa! Aivan mahtavaa! - title: Poissaollessasi… favourite: body: "%{name} tykkäsi tilastasi:" subject: "%{name} tykkäsi tilastasi" @@ -1255,6 +1331,8 @@ fi: other: Muut posting_defaults: Julkaisujen oletusasetukset public_timelines: Julkiset aikajanat + privacy_policy: + title: Tietosuojakäytäntö reactions: errors: limit_reached: Erilaisten reaktioiden raja saavutettu @@ -1277,25 +1355,15 @@ fi: remove_selected_follows: Lopeta valittujen käyttäjien seuraaminen status: Tilin tila remote_follow: - acct: Syötä se käyttäjätunnus@verkkotunnus, josta haluat seurata missing_resource: Vaadittavaa uudelleenohjaus-URL:ää tiliisi ei löytynyt - no_account_html: Eikö sinulla ole tiliä? Voit rekisteröityä täällä - proceed: Siirry seuraamaan - prompt: 'Olet aikeissa seurata:' - reason_html: "Miksi tämä vaihe on tarpeen? %{instance} ei ehkä ole se palvelin, jolle olet rekisteröitynyt, joten meidän täytyy ensin ohjata sinut kotipalvelimellesi." - remote_interaction: - favourite: - proceed: Jatka suosikiksi lisäämiseen - prompt: 'Haluat lisätä suosikiksi julkaisun:' - reblog: - proceed: Jatka buustaamiseen - prompt: 'Haluat buustata julkaisun:' - reply: - proceed: Jatka vastaamiseen - prompt: 'Haluat vastata julkaisuun:' reports: errors: invalid_rules: ei viittaa voimassa oleviin sääntöihin + rss: + content_warning: 'Sisällön varoitus:' + descriptions: + account: Julkiset viestit lähettäjältä @%{acct} + tag: 'Julkiset viestit merkitty #%{hashtag}' scheduled_statuses: over_daily_limit: Olet ylittänyt %{limit} ajoitetun viestin rajan tälle päivälle over_total_limit: Olet ylittänyt %{limit} ajoitetun viestin rajan @@ -1305,7 +1373,7 @@ fi: browser: Selain browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1319,22 +1387,22 @@ fi: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Nykyinen istunto - description: "%{browser}, %{platform}" + description: "%{browser} alustalla %{platform}" explanation: Nämä verkkoselaimet ovat tällä hetkellä kirjautuneet Mastodon-tilillesi. ip: IP-osoite platforms: - adobe_air: Adobe Air + adobe_air: Adobe AIR android: Android - blackberry: Blackberry - chrome_os: Chrome OS + blackberry: BlackBerry + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux mac: macOS - other: tuntematon järjestelmä + other: tuntematon alusta windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone @@ -1383,6 +1451,7 @@ fi: disallowed_hashtags: one: 'sisälsi aihetunnisteen jota ei sallita: %{tags}' other: 'sisälsi aihetunnisteet joita ei sallita: %{tags}' + edited_at_html: Muokattu %{date} errors: in_reply_not_found: Viesti, johon yrität vastata, ei näytä olevan olemassa. open_in_web: Avaa selaimessa @@ -1418,12 +1487,12 @@ fi: enabled: Poista vanhat viestit automaattisesti enabled_hint: Poistaa viestit automaattisesti, kun ne saavuttavat tietyn ikärajan, elleivät ne täsmää yhtä alla olevista poikkeuksista exceptions: Poikkeukset - explanation: Koska viestien poistaminen on kallista toimintaa. Tämä tehdään hitaasti ajan mittaan, kun palvelin ei ole muuten kiireinen. Tästä syystä viestejäsi voidaan poistaa jonkin aikaa myöhemmin, kun ne ovat saavuttaneet ikärajan. + explanation: Koska viestien poistaminen on kallista toimintaa, sitä tehdään hitaasti ajan mittaan, kun palvelin ei ole muutoin kiireinen. Viestejäsi voidaankin siis poistaa myös viiveellä verrattuna niille määrittämääsi aikarajaan. ignore_favs: Ohita suosikit ignore_reblogs: Ohita tehostukset interaction_exceptions: Poikkeukset, jotka perustuvat vuorovaikutukseen interaction_exceptions_explanation: Huomaa, että ei ole takeita viestien poistamiselle, jos ne alittavat suosikki- tai tehostusrajan sen jälkeen, kun ne on kerran ylitetty. - keep_direct: Säilytä suorat viestit + keep_direct: Säilytä yksityisviestit keep_direct_hint: Ei poista mitään sinun suoria viestejä keep_media: Säilytä viestit, joissa on liitetiedostoja keep_media_hint: Ei poista viestejä, joissa on liitteitä @@ -1431,7 +1500,7 @@ fi: keep_pinned_hint: Ei poista mitään kiinnitettyä viestiä keep_polls: Säilytä äänestykset keep_polls_hint: Ei poista yhtäkään äänestystä - keep_self_bookmark: Säilytä lisäämäsi viestit kirjanmerkkeihin + keep_self_bookmark: Säilytä kirjanmerkkeihin lisäämäsi viestit keep_self_bookmark_hint: Ei poista viestejäsi, jos olet lisännyt ne kirjanmerkkeihin keep_self_fav: Säilyttää viestit suosikeissa keep_self_fav_hint: Ei poista omia viestejäsi, jos olet lisännyt ne suosikkeihin @@ -1453,10 +1522,11 @@ fi: pinned: Kiinnitetty tuuttaus reblogged: buustasi sensitive_content: Arkaluontoista sisältöä + strikes: + errors: + too_late: On liian myöhäistä vedota tähän varoitukseen tags: does_not_match_previous_name: ei vastaa edellistä nimeä - terms: - title: "%{instance}, käyttöehdot ja tietosuojakäytäntö" themes: contrast: Mastodon (Korkea kontrasti) default: Mastodon (Tumma) @@ -1495,6 +1565,13 @@ fi: explanation: Pyysit täydellistä varmuuskopiota Mastodon-tilistäsi. Voit nyt ladata sen! subject: Arkisto on valmiina ladattavaksi title: Arkiston tallennus + suspicious_sign_in: + change_password: vaihda salasanasi + details: 'Tässä on tiedot kirjautumisesta:' + explanation: Olemme havainneet kirjautumisen tilillesi uudesta IP-osoitteesta. + further_actions_html: Jos et ollut sinä, suosittelemme, että %{action} teet välittömästi ja otat kaksivaiheisen todennuksen käyttöön tilisi turvallisuuden varmistamiseksi. + subject: Tiliäsi on käytetty uudesta IP-osoitteesta + title: Uusi kirjautuminen warning: appeal: Lähetä valitus appeal_description: Jos uskot, että tämä on virhe, voit hakea muutosta henkilökunnalta %{instance}. @@ -1528,20 +1605,13 @@ fi: suspend: Tilin käyttäminen keskeytetty welcome: edit_profile_action: Aseta profiili - edit_profile_step: Voit mukauttaa profiiliasi lataamalla profiilikuvan ja otsakekuvan, muuttamalla näyttönimeäsi ym. Jos haluat hyväksyä uudet seuraajat ennen kuin he voivat seurata sinua, voit lukita tilisi. + edit_profile_step: Voit muokata profiiliasi lataamalla profiilikuvan, vaihtamalla näyttönimeä ja paljon muuta. Voit halutessasi arvioida uudet seuraajat ennen kuin he saavat seurata sinua. explanation: Näillä vinkeillä pääset alkuun final_action: Ala julkaista - final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja hashtagien avulla. Kannattaa esittäytyä! Käytä hashtagia #introductions. (Jos haluat esittäytyä myös suomeksi, se kannattaa tehdä erillisessä tuuttauksessa ja käyttää hashtagia #esittely.).' + final_step: 'Aloita julkaiseminen! Jopa ilman seuraajia, muut voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla tai hashtageilla. Haluat ehkä esitellä itsesi #introductions hashtag.' full_handle: Koko käyttäjätunnuksesi full_handle_hint: Kerro tämä ystävillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut toisen instanssin kautta. - review_preferences_action: Muuta asetuksia - review_preferences_step: Käy tarkistamassa, että asetukset ovat haluamallasi tavalla. Voit valita, missä tilanteissa haluat saada sähköpostia, mikä on julkaisujesi oletusnäkyvyys jne. Jos et saa helposti pahoinvointia, voit valita, että GIF-animaatiot toistetaan automaattisesti. subject: Tervetuloa Mastodoniin - tip_federated_timeline: Yleinen aikajana näyttää sisältöä koko Mastodon-verkostosta. Siinä näkyvät kuitenkin vain ne henkilöt, joita oman instanssisi käyttäjät seuraavat. Siinä ei siis näytetä aivan kaikkea. - tip_following: Oletusarvoisesti seuraat oman palvelimesi ylläpitäjiä. Etsi lisää kiinnostavia ihmisiä paikalliselta ja yleiseltä aikajanalta. - tip_local_timeline: Paikallinen aikajana näyttää instanssin %{instance} käyttäjien julkaisut. He ovat naapureitasi! - tip_mobile_webapp: Jos voit lisätä Mastodonin mobiiliselaimen kautta aloitusnäytöllesi, voit vastaanottaa push-ilmoituksia. Toiminta vastaa monin tavoin tavanomaista sovellusta! - tips: Vinkkejä title: Tervetuloa mukaan, %{name}! users: follow_limit_reached: Et voi seurata yli %{limit} henkilöä diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 3fcd67bb2d0477..191e14deb1e57b 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,94 +1,27 @@ --- fr: about: - about_hashtag_html: Voici des messages publics tagués avec #%{hashtag}. Vous pouvez interagir avec si vous avez un compte n’importe où dans le fédiverse. about_mastodon_html: 'Le réseau social de l''avenir : pas de publicité, pas de surveillance institutionnelle, conception éthique et décentralisation ! Gardez le contrôle de vos données avec Mastodon !' - about_this: À propos - active_count_after: actif·ve·s - active_footnote: Nombre mensuel d'utilisateur·rice·s actif·ve·s (NMUA) - administered_by: 'Administré par :' - api: API - apps: Applications mobiles - apps_platforms: Utilisez Mastodon depuis iOS, Android et d’autres plates-formes - browse_directory: Parcourir l’annuaire des profils et filtrer par centres d’intérêts - browse_local_posts: Parcourir en direct un flux de messages publics depuis ce serveur - browse_public_posts: Parcourir en direct un flux de messages publics sur Mastodon - contact: Contact contact_missing: Non défini contact_unavailable: Non disponible - continue_to_web: Continuer vers l’application web - discover_users: Découvrez des utilisateur·rice·s - documentation: Documentation - federation_hint_html: Avec un compte sur %{instance}, vous pourrez suivre des gens sur n’importe quel serveur Mastodon et au-delà. - get_apps: Essayez une application mobile hosted_on: Serveur Mastodon hébergé sur %{domain} - instance_actor_flash: | - Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un·e utilisateur·rice individuel·le. - Il est utilisé à des fins de fédération et ne doit pas être bloqué à moins que vous ne vouliez bloquer l’instance entière, auquel cas vous devriez utiliser un blocage de domaine. - learn_more: En savoir plus - logged_in_as_html: Vous êtes actuellement connecté·e en tant que %{username}. - logout_before_registering: Vous êtes déjà connecté·e. - privacy_policy: Politique de confidentialité - rules: Règles du serveur - rules_html: 'Voici un résumé des règles que vous devez suivre si vous voulez avoir un compte sur ce serveur de Mastodon :' - see_whats_happening: Quoi de neuf - server_stats: 'Statistiques du serveur :' - source_code: Code source - status_count_after: - one: message - other: messages - status_count_before: Qui a publié - tagline: Suivez vos ami·e·s et découvrez-en de nouveaux·elles - terms: Conditions d’utilisation - unavailable_content: Serveurs modérés - unavailable_content_description: - domain: Serveur - reason: Motif - rejecting_media: 'Les fichiers média de ces serveurs ne seront ni traités ni stockés, et aucune miniature ne sera affichée, rendant nécessaire de cliquer vers le fichier d’origine :' - rejecting_media_title: Médias filtrés - silenced: 'Les messages de ces serveurs seront cachés des flux publics et conversations, et les interactions de leurs utilisateur·rice·s ne donneront lieu à aucune notification, à moins que vous ne les suiviez :' - silenced_title: Serveurs limités - suspended: 'Aucune donnée venant de ces serveurs ne sera traitée, stockée ou échangée, rendant impossible toute interaction ou communication avec les utilisateur·rice·s de ces serveurs :' - suspended_title: Serveurs suspendus - unavailable_content_html: Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur·rice·s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier. - user_count_after: - one: utilisateur - other: utilisateur·rice·s - user_count_before: Abrite - what_is_mastodon: Qu’est-ce que Mastodon ? + title: À propos accounts: - choices_html: "%{name} recommande :" - endorsements_hint: Vous pouvez recommander des personnes que vous suivez depuis l’interface web, et elles apparaîtront ici. - featured_tags_hint: Vous pouvez mettre en avant certains hashtags qui seront affichés ici. follow: Suivre followers: one: Abonné·e other: Abonné·e·s following: Abonnements instance_actor_flash: Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un utilisateur individuel. Il est utilisé à des fins de fédération et ne doit pas être suspendu. - joined: Inscrit·e en %{date} last_active: dernière activité link_verified_on: La propriété de ce lien a été vérifiée le %{date} - media: Médias - moved_html: "%{name} a changé de compte pour %{new_profile_link} :" - network_hidden: Cette information n’est pas disponible nothing_here: Rien à voir ici ! - people_followed_by: Personnes suivies par %{name} - people_who_follow: Personnes qui suivent %{name} pin_errors: following: Vous devez être déjà abonné·e à la personne que vous désirez recommander posts: one: Message other: Messages posts_tab_heading: Messages - posts_with_replies: Messages et réponses - roles: - admin: Admin - bot: Robot - group: Groupe - moderator: Modérateur·trice - unavailable: Profil non disponible - unfollow: Ne plus suivre admin: account_actions: action: Effectuer l'action @@ -105,12 +38,17 @@ fr: avatar: Avatar by_domain: Domaine change_email: - changed_msg: Courriel du compte modifié avec succès ! + changed_msg: Courriel modifié avec succès ! current_email: Courriel actuel label: Modifier le courriel new_email: Nouveau courriel submit: Modifier le courriel title: Modifier le courriel pour %{username} + change_role: + changed_msg: Rôle modifié avec succès ! + label: Modifier le rôle + no_role: Aucun rôle + title: Modifier le rôle de %{username} confirm: Confirmer confirmed: Confirmé confirming: Confirmation @@ -154,6 +92,7 @@ fr: active: Actifs all: Tous pending: En cours de traitement + silenced: Limité suspended: Suspendus title: Modération moderation_notes: Notes de modération @@ -161,6 +100,7 @@ fr: most_recent_ip: Adresse IP la plus récente no_account_selected: Aucun compte n’a été modifié, car aucun n’a été sélectionné no_limits_imposed: Aucune limite imposée + no_role_assigned: Aucun rôle assigné not_subscribed: Non abonné pending: En attente d’approbation perform_full_suspension: Suspendre @@ -187,12 +127,7 @@ fr: reset: Réinitialiser reset_password: Réinitialiser le mot de passe resubscribe: Se réabonner - role: Permissions - roles: - admin: Administrateur - moderator: Modérateur - staff: Équipe - user: Utilisateur + role: Rôle search: Rechercher search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel search_same_ip: Autres utilisateur·rice·s avec la même IP @@ -234,18 +169,22 @@ fr: approve_appeal: Approuver l'appel approve_user: Approuver l’utilisateur assigned_to_self_report: Affecter le signalement - change_email_user: Modifier le courriel pour + change_email_user: Modifier le courriel pour ce compte + change_role_user: Changer le rôle de l’utilisateur·rice confirm_user: Confirmer l’utilisateur create_account_warning: Créer une alerte create_announcement: Créer une annonce + create_canonical_email_block: Créer un blocage de domaine de courriel create_custom_emoji: Créer des émojis personnalisés create_domain_allow: Créer un domaine autorisé create_domain_block: Créer un blocage de domaine create_email_domain_block: Créer un blocage de domaine de courriel create_ip_block: Créer une règle IP create_unavailable_domain: Créer un domaine indisponible + create_user_role: Créer le rôle demote_user: Rétrograder l’utilisateur·ice destroy_announcement: Supprimer l’annonce + destroy_canonical_email_block: Supprimer le blocage de domaine de courriel destroy_custom_emoji: Supprimer des émojis personnalisés destroy_domain_allow: Supprimer le domaine autorisé destroy_domain_block: Supprimer le blocage de domaine @@ -254,6 +193,7 @@ fr: destroy_ip_block: Supprimer la règle IP destroy_status: Supprimer le message destroy_unavailable_domain: Supprimer le domaine indisponible + destroy_user_role: Détruire le rôle disable_2fa_user: Désactiver l’A2F disable_custom_emoji: Désactiver les émojis personnalisés disable_sign_in_token_auth_user: Désactiver l'authentification basée sur les jetons envoyés par courriel pour l'utilisateur·rice @@ -267,6 +207,7 @@ fr: reject_user: Rejeter l’utilisateur remove_avatar_user: Supprimer l’avatar reopen_report: Rouvrir le signalement + resend_user: Renvoyer l'e-mail de confirmation reset_password_user: Réinitialiser le mot de passe resolve_report: Résoudre le signalement sensitive_account: Marquer les médias de votre compte comme sensibles @@ -280,24 +221,30 @@ fr: update_announcement: Modifier l’annonce update_custom_emoji: Mettre à jour les émojis personnalisés update_domain_block: Mettre à jour le blocage de domaine + update_ip_block: Mettre à jour la règle IP update_status: Mettre à jour le message + update_user_role: Mettre à jour le rôle actions: approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}" approve_user_html: "%{name} a approuvé l’inscription de %{target}" assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}" change_email_user_html: "%{name} a modifié l'adresse de courriel de l'utilisateur·rice %{target}" + change_role_user_html: "%{name} a changé le rôle de %{target}" confirm_user_html: "%{name} a confirmé l'adresse courriel de l'utilisateur %{target}" create_account_warning_html: "%{name} a envoyé un avertissement à %{target}" create_announcement_html: "%{name} a créé une nouvelle annonce %{target}" + create_canonical_email_block_html: "%{name} a bloqué l’e-mail avec le hachage %{target}" create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}" create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}" create_domain_block_html: "%{name} a bloqué le domaine %{target}" create_email_domain_block_html: "%{name} a bloqué de domaine de courriel %{target}" create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}" create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}" + create_user_role_html: "%{name} a créé le rôle %{target}" demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}" destroy_announcement_html: "%{name} a supprimé l'annonce %{target}" - destroy_custom_emoji_html: "%{name} a détruit l'émoji %{target}" + destroy_canonical_email_block_html: "%{name} a débloqué l'email avec le hash %{target}" + destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}" destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}" destroy_domain_block_html: "%{name} a débloqué le domaine %{target}" destroy_email_domain_block_html: "%{name} a débloqué le domaine de courriel %{target}" @@ -305,6 +252,7 @@ fr: destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}" destroy_status_html: "%{name} a supprimé le message de %{target}" destroy_unavailable_domain_html: "%{name} a repris la livraison au domaine %{target}" + destroy_user_role_html: "%{name} a supprimé le rôle %{target}" disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}" disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}" disable_sign_in_token_auth_user_html: "%{name} a désactivé l'authentification basée sur les jetons envoyés par courriel pour %{target}" @@ -318,6 +266,7 @@ fr: reject_user_html: "%{name} a rejeté l’inscription de %{target}" remove_avatar_user_html: "%{name} a supprimé l'avatar de %{target}" reopen_report_html: "%{name} a rouvert le signalement %{target}" + resend_user_html: "%{name} a renvoyé l'e-mail de confirmation pour %{target}" reset_password_user_html: "%{name} a réinitialisé le mot de passe de l'utilisateur·rice %{target}" resolve_report_html: "%{name} a résolu le signalement %{target}" sensitive_account_html: "%{name} a marqué le média de %{target} comme sensible" @@ -331,8 +280,10 @@ fr: update_announcement_html: "%{name} a mis à jour l'annonce %{target}" update_custom_emoji_html: "%{name} a mis à jour l'émoji %{target}" update_domain_block_html: "%{name} a mis à jour le blocage de domaine pour %{target}" + update_ip_block_html: "%{name} a modifié la règle pour l'IP %{target}" update_status_html: "%{name} a mis à jour le message de %{target}" - deleted_status: "(message supprimé)" + update_user_role_html: "%{name} a changé le rôle %{target}" + deleted_account: compte supprimé empty: Aucun journal trouvé. filter_by_action: Filtrer par action filter_by_user: Filtrer par utilisateur·ice @@ -376,6 +327,7 @@ fr: listed: Listé new: title: Ajouter un nouvel émoji personnalisé + no_emoji_selected: Aucun émoji n’a été modifié, car aucun n’a été sélectionné not_permitted: Vous n’êtes pas autorisé à effectuer cette action overwrite: Écraser shortcode: Raccourci @@ -428,6 +380,7 @@ fr: destroyed_msg: Le blocage de domaine a été désactivé domain: Domaine edit: Modifier le blocage de domaine + existing_domain_block: Vous avez déjà imposé des limites plus strictes à %{name}. existing_domain_block_html: Vous avez déjà imposé des limites plus strictes à %{name}, vous devez d’abord le/la débloquer. new: create: Créer le blocage @@ -480,8 +433,8 @@ fr: instances: availability: description_html: - one: Si la livraison au domaine échoue pendant %{count} jour sans succès, aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine soit reçue. - other: Si la livraison au domaine échoue pendant %{count} jours différents sans succès, aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine soit reçue. + one: Si la livraison au domaine échoue pendant %{count} jour, aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine ne soit reçue. + other: Si la livraison au domaine échoue pendant %{count} jours différents, aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine ne soit reçue. failure_threshold_reached: Le seuil de défaillance a été atteint le %{date}. failures_recorded: one: Tentative échouée pendant %{count} jour. @@ -648,6 +601,67 @@ fr: unresolved: Non résolus updated_at: Mis à jour view_profile: Voir le profil + roles: + add_new: Ajouter un rôle + assigned_users: + one: "%{count} utilisateur·rice" + other: "%{count} utilisateur·rice·s" + categories: + administration: Administration + devops: DevOps + invites: Invitations + moderation: Modération + special: Spécial + delete: Supprimer + description_html: Les rôles utilisateur vous permettent de personnaliser les fonctions et les zones de Mastodon auxquelles vos utilisateur⋅rice⋅s peuvent accéder. + edit: Modifier le rôle '%{name}' + everyone: Autorisations par défaut + everyone_full_description_html: Ceci est le rôle de base qui impacte tou⋅te⋅s les utilisateur⋅rice⋅s, même celleux sans rôle assigné. Tous les autres rôles héritent des autorisations de celui-ci. + permissions_count: + one: "%{count} autorisation" + other: "%{count} autorisations" + privileges: + administrator: Administrateur·rice + administrator_description: Les utilisateur⋅rice⋅s ayant cette autorisation pourront contourner toutes les autorisations + delete_user_data: Supprimer les données de l'utilisateur⋅rice + delete_user_data_description: Permet aux utilisateur⋅rice⋅s de supprimer sans délai les données des autres utilisateur⋅rice⋅s + invite_users: Inviter des utilisateur⋅rice⋅s + invite_users_description: Permet aux utilisateur⋅rice⋅s d'inviter de nouvelles personnes sur le serveur + manage_announcements: Gérer les annonces + manage_announcements_description: Permet aux utilisateur⋅rice⋅s de gérer les annonces sur le serveur + manage_appeals: Gérer les contestations + manage_appeals_description: Permet aux utilisateur⋅rice⋅s d'examiner les appels contre les actions de modération + manage_blocks: Gérer les blocages + manage_blocks_description: Permet aux utilisateur⋅rice⋅s de bloquer des fournisseurs de courriel et des adresses IP + manage_custom_emojis: Gérer les émojis personnalisés + manage_custom_emojis_description: Permet aux utilisateur⋅rice⋅s de gérer les émoticônes personnalisées sur le serveur + manage_federation: Gérer de la féderation + manage_federation_description: Permet aux utilisateur⋅rice⋅s de bloquer ou d'autoriser la fédération avec d'autres domaines, et de contrôler la capacité de livraison + manage_invites: Gérer les invitations + manage_invites_description: Permet aux utilisateur⋅rice⋅s de parcourir et de désactiver les liens d'invitation + manage_reports: Gérer les rapports + manage_reports_description: Permet aux utilisateur⋅rice⋅s d'examiner les signalements et d'effectuer des actions de modération en conséquence + manage_roles: Gérer les rôles + manage_roles_description: Permet aux utilisateur⋅rice⋅s de gérer et d'assigner des rôles inférieurs au leur + manage_rules: Gérer les règles + manage_rules_description: Permet aux utilisateur·rice·s de modifier les règles du serveur + manage_settings: Gérer les paramètres + manage_settings_description: Permet aux utilisateur·rice·s de modifier les paramètres du site + manage_taxonomies: Gérer les taxonomies + manage_taxonomies_description: Permet aux utilisateur⋅rice⋅s d'examiner les contenus tendance et de mettre à jour les paramètres des hashtags + manage_user_access: Gérer l'accès utilisateur + manage_user_access_description: Permet aux utilisateur⋅rice⋅s de désactiver l'authentification à deux facteurs, de modifier l'adresse courriel et de réinitialiser le mot de passe des autres utilisateur⋅rice⋅s + manage_users: Gérer les utilisateur·rice·s + manage_users_description: Permet aux utilisateur⋅rice⋅s de voir les détails des autres utilisateur⋅rice⋅s et d'effectuer des actions de modération en conséquence + manage_webhooks: Gérer les points d’ancrage web + manage_webhooks_description: Permet aux utilisateur⋅rice⋅s de configurer des webhooks pour des événements d'administration + view_audit_log: Afficher le journal d'audit + view_audit_log_description: Permet aux utilisateur⋅rice⋅s de voir l'historique des opérations d'administration sur le serveur + view_dashboard: Voir le tableau de bord + view_dashboard_description: Permet aux utilisateur⋅rice⋅s d'accéder au tableau de bord et à diverses statistiques + view_devops: DevOps + view_devops_description: Permet aux utilisateur⋅rice⋅s d'accéder aux tableaux de bord Sidekiq et pgHero + title: Rôles rules: add_new: Ajouter une règle delete: Supprimer @@ -656,108 +670,67 @@ fr: empty: Aucune règle de serveur n'a été définie pour l'instant. title: Règles du serveur settings: - activity_api_enabled: - desc_html: Nombre de messages publiés localement, de comptes actifs et de nouvelles inscriptions regroupés par semaine - title: Publier des statistiques agrégées sur l’activité des utilisateur·rice·s - bootstrap_timeline_accounts: - desc_html: Séparez les noms d'utilisateur·rice·s par des virgules. Ces comptes seront affichés dans les recommendations d'abonnement - title: Recommender ces comptes aux nouveaux·elles utilisateur·rice·s - contact_information: - email: Entrez une adresse courriel publique - username: Entrez un nom d’utilisateur·ice - custom_css: - desc_html: Modifier l’apparence avec une CSS chargée sur chaque page - title: CSS personnalisé - default_noindex: - desc_html: Affecte tous les utilisateurs qui n'ont pas changé eux-mêmes ce paramètre - title: Opter pour le retrait de l'indexation des moteurs de recherche par défaut + about: + manage_rules: Gérer les règles du serveur + preamble: Fournissez des informations détaillées sur le fonctionnement, la modération et le financement du serveur. + rules_hint: Il y a un espace dédié pour les règles auxquelles vos utilisateurs sont invités à adhérer. + title: À propos + appearance: + preamble: Personnaliser l'interface web de Mastodon. + title: Apparence + branding: + preamble: L'image de marque de votre serveur la différencie des autres serveurs du réseau. Ces informations peuvent être affichées dans nombre d'environnements, tels que l'interface web de Mastodon, les applications natives, dans les aperçus de liens sur d'autres sites Web et dans les applications de messagerie, etc. C'est pourquoi il est préférable de garder ces informations claires, courtes et concises. + title: Thème + content_retention: + preamble: Contrôle comment le contenu créé par les utilisateurs est enregistré et stocké dans Mastodon. + title: Rétention du contenu + discovery: + follow_recommendations: Suivre les recommandations + preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur. + profile_directory: Annuaire des profils + public_timelines: Fils publics + title: Découverte + trends: Tendances domain_blocks: all: À tout le monde disabled: À personne - title: Afficher le blocage de domaines users: Aux utilisateur·rice·s connecté·e·s localement - domain_blocks_rationale: - title: Montrer la raison - hero: - desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette du serveur - title: Image d’en-tête - mascot: - desc_html: Affiché sur plusieurs pages. Au moins 293×205px recommandé. Lorsqu’il n’est pas défini, retombe à la mascotte par défaut - title: Image de la mascotte - peers_api_enabled: - desc_html: Noms des domaines que ce serveur a découvert dans le fédiverse - title: Publier la liste des serveurs découverts dans l’API - preview_sensitive_media: - desc_html: Les aperçus de lien sur les autres sites web afficheront une vignette même si les médias sont marqués comme sensibles - title: Montrer les médias sensibles dans les prévisualisations OpenGraph - profile_directory: - desc_html: Permettre aux utilisateur·ice·s d’être découvert·e·s - title: Activer l’annuaire des profils registrations: - closed_message: - desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées. Vous pouvez utiliser des balises HTML - title: Message de fermeture des inscriptions - deletion: - desc_html: Permettre à tou·te·s les utilisateur·rice·s de supprimer leur compte - title: Autoriser les suppressions de compte - min_invite_role: - disabled: Personne - title: Autoriser les invitations par - require_invite_text: - desc_html: Lorsque les enregistrements nécessitent une approbation manuelle, rendre le texte de l’invitation "Pourquoi voulez-vous vous inscrire ?" obligatoire plutôt que facultatif - title: Exiger que les nouveaux utilisateurs remplissent un texte de demande d’invitation + preamble: Affecte qui peut créer un compte sur votre serveur. + title: Inscriptions registrations_mode: modes: approved: Approbation requise pour s’inscrire none: Personne ne peut s’inscrire open: N’importe qui peut s’inscrire - title: Mode d’enregistrement - show_known_fediverse_at_about_page: - desc_html: Lorsque désactivée, restreint le fil public accessible via la page d’accueil de l’instance pour ne montrer que le contenu local - title: Inclure le contenu fédéré sur la page de fil public sans authentification - show_staff_badge: - desc_html: Montrer un badge de responsable sur une page utilisateur·rice - title: Montrer un badge de responsable - site_description: - desc_html: Paragraphe introductif sur l'API. Décrivez les particularités de ce serveur Mastodon et précisez toute autre chose qui vous semble importante. Vous pouvez utiliser des balises HTML, en particulier <a> et <em>. - title: Description du serveur - site_description_extended: - desc_html: L’endroit idéal pour afficher votre code de conduite, les règles, les guides et autres choses qui rendent votre serveur différent. Vous pouvez utiliser des balises HTML - title: Description étendue du serveur - site_short_description: - desc_html: Affichée dans la barre latérale et dans les méta-tags. Décrivez ce qui rend spécifique ce serveur Mastodon en un seul paragraphe. Si laissée vide, la description du serveur sera affiché par défaut. - title: Description courte du serveur - site_terms: - desc_html: Vous pouvez écrire votre propre politique de confidentialité, conditions d’utilisation ou autre jargon juridique. Vous pouvez utiliser des balises HTML - title: Politique de confidentialité - site_title: Nom du serveur - thumbnail: - desc_html: Utilisée pour les prévisualisations via OpenGraph et l’API. 1200x630px recommandé - title: Vignette du serveur - timeline_preview: - desc_html: Afficher un lien vers le fil public sur la page d’accueil et autoriser l'accès anonyme au fil public via l'API - title: Autoriser la prévisualisation anonyme du fil global title: Paramètres du serveur - trendable_by_default: - desc_html: Affecte les hashtags qui n'ont pas été précédemment non autorisés - title: Autoriser les hashtags à apparaître dans les tendances sans approbation préalable - trends: - desc_html: Afficher publiquement les hashtags approuvés qui sont populaires en ce moment - title: Hashtags populaires site_uploads: delete: Supprimer le fichier téléversé destroyed_msg: Téléversement sur le site supprimé avec succès ! statuses: + account: Auteur·rice + application: Application back_to_account: Retour à la page du compte back_to_report: Retour à la page du rapport batch: remove_from_report: Retirer du rapport report: Signalement deleted: Supprimé + favourites: Favoris + history: Historique de version + in_reply_to: Répondre à + language: Langue media: title: Médias + metadata: Metadonnés no_status_selected: Aucun message n’a été modifié car aucun n’a été sélectionné + open: Ouvrir le message + original_status: Message original + reblogs: Partages + status_changed: Publication modifiée title: Messages du compte + trending: Tendances + visibility: Visibilité with_media: Avec médias strikes: actions: @@ -797,6 +770,9 @@ fr: description_html: Ces liens sont actuellement énormément partagés par des comptes dont votre serveur voit les messages. Cela peut aider vos utilisateur⋅rice⋅s à découvrir ce qu'il se passe dans le monde. Aucun lien n'est publiquement affiché tant que vous n'avez pas approuvé le compte qui le publie. Vous pouvez également autoriser ou rejeter les liens individuellement. disallow: Interdire le lien disallow_provider: Interdire l'éditeur + no_link_selected: Aucun lien n'a été changé car aucun n'a été sélectionné + publishers: + no_publisher_selected: Aucun compte publicateur n'a été changé car aucun n'a été sélectionné shared_by_over_week: one: Partagé par %{count} personne au cours de la dernière semaine other: Partagé par %{count} personnes au cours de la dernière semaine @@ -816,6 +792,7 @@ fr: description_html: Voici les messages dont votre serveur a connaissance qui sont beaucoup partagés et mis en favoris en ce moment. Cela peut aider vos utilisateur⋅rice⋅s, néophytes comme aguerri⋅e⋅s, à trouver plus de comptes à suivre. Aucun message n'est publiquement affiché tant que vous n'en avez pas approuvé l'auteur⋅rice, et seulement si icellui permet que son compte soit suggéré aux autres. Vous pouvez également autoriser ou rejeter les messages individuellement. disallow: Proscrire le message disallow_account: Proscrire l'auteur·rice + no_status_selected: Aucune publication en tendance n'a été changée car aucune n'a été sélectionnée not_discoverable: L'auteur⋅rice n'a pas choisi de pouvoir être découvert⋅e shared_by: one: Partagé ou ajouté aux favoris une fois @@ -831,6 +808,7 @@ fr: tag_uses_measure: utilisations totales description_html: Ces hashtags apparaissent actuellement dans de nombreux messages que votre serveur voit. Cela peut aider vos utilisateur⋅rice⋅s à découvrir les sujets dont les gens parlent le plus en ce moment. Aucun hashtag n'est publiquement affiché tant que vous ne l'avez pas approuvé. listable: Peut être suggéré + no_tag_selected: Aucun tag n'a été changé car aucun n'a été sélectionné not_listable: Ne sera pas suggéré not_trendable: N'apparaîtra pas sous les tendances not_usable: Ne peut être utilisé @@ -851,6 +829,26 @@ fr: edit_preset: Éditer les avertissements prédéfinis empty: Vous n'avez pas encore créé de paramètres prédéfinis pour les avertissements. title: Gérer les avertissements prédéfinis + webhooks: + add_new: Ajouter un point de terminaison + delete: Supprimer + description_html: Un point d'ancrage web permet à Mastodon d'envoyer des notifications en temps réel concernant des événements sélectionnés vers votre propre application, afin que celle-ci puisse déclencher automatiquement des réactions. + disable: Désactiver + disabled: Désactivé + edit: Modifier le point de terminaison + empty: Pour l'instant, vous n'avez configuré aucun lien d'ancrage web pour point de terminaison. + enable: Activer + enabled: Actif + enabled_events: + one: 1 événement activé + other: "%{count} événements activés" + events: Événements + new: Nouveau point d’ancrage web + rotate_secret: Effectuer une rotation du secret + secret: Jeton de connexion + status: État + title: Points d’ancrage web + webhook: Point d’ancrage web admin_mailer: new_appeal: actions: @@ -874,12 +872,8 @@ fr: new_trends: body: 'Les éléments suivants doivent être approuvés avant de pouvoir être affichés publiquement :' new_trending_links: - no_approved_links: Il n'y a pas de lien tendance approuvé actuellement. - requirements: N'importe quel élément de la sélection pourrait surpasser le lien tendance approuvé n°%{rank}, qui est actuellement « %{lowest_link_title} » avec un résultat de %{lowest_link_score}. title: Liens tendance new_trending_statuses: - no_approved_statuses: Il n'y a pas de message tendance approuvé actuellement. - requirements: N'importe quel élément de la sélection pourrait surpasser le message tendance approuvé n°%{rank}, qui est actuellement « %{lowest_status_url} » avec un résultat de %{lowest_status_score}. title: Messages tendance new_trending_tags: no_approved_tags: Il n'y a pas de hashtag tendance approuvé actuellement. @@ -915,16 +909,13 @@ fr: applications: created: Application créée avec succès destroyed: Application supprimée avec succès - invalid_url: L’URL fournie est invalide regenerate_token: Régénérer le jeton d’accès token_regenerated: Jeton d’accès régénéré avec succès warning: Soyez prudent·e avec ces données. Ne les partagez pas ! your_token: Votre jeton d’accès auth: - apply_for_account: Demander une invitation + apply_for_account: S’inscrire sur la liste d’attente change_password: Mot de passe - checkbox_agreement_html: J’accepte les règles du serveur et les conditions de service - checkbox_agreement_without_rules_html: J’accepte les conditions d’utilisation delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: @@ -943,6 +934,7 @@ fr: migrate_account: Déménager vers un compte différent migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici. or_log_in_with: Ou authentifiez-vous avec + privacy_policy_agreement_html: J’ai lu et j’accepte la politique de confidentialité providers: cas: CAS saml: SAML @@ -950,12 +942,18 @@ fr: registration_closed: "%{instance} a désactivé les inscriptions" resend_confirmation: Envoyer à nouveau les consignes de confirmation reset_password: Réinitialiser le mot de passe + rules: + preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}. + title: Quelques règles de base. security: Sécurité set_new_password: Définir le nouveau mot de passe setup: email_below_hint_html: Si l’adresse de courriel ci-dessous est incorrecte, vous pouvez la modifier ici et recevoir un nouveau courriel de confirmation. email_settings_hint_html: Le courriel de confirmation a été envoyé à %{email}. Si cette adresse de courriel n’est pas correcte, vous pouvez la modifier dans les paramètres du compte. title: Configuration + sign_up: + preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé. + title: Mettons les choses en place pour %{domain}. status: account_status: État du compte confirming: En attente de la confirmation par courriel à compléter. @@ -964,7 +962,6 @@ fr: redirecting_to: Votre compte est inactif car il est actuellement redirigé vers %{acct}. view_strikes: Voir les sanctions précédemment appliquées à votre compte too_fast: Formulaire envoyé trop rapidement, veuillez réessayer. - trouble_logging_in: Vous avez un problème pour vous connecter ? use_security_key: Utiliser la clé de sécurité authorize_follow: already_following: Vous suivez déjà ce compte @@ -1022,10 +1019,6 @@ fr: more_details_html: Pour plus de détails, voir la politique de confidentialité. username_available: Votre nom d’utilisateur·rice sera à nouveau disponible username_unavailable: Votre nom d’utilisateur·rice restera indisponible - directories: - directory: Annuaire des profils - explanation: Découvrir des utilisateur·rice·s en fonction de leurs centres d’intérêt - explore_mastodon: Explorer %{title} disputes: strikes: action_taken: Mesure prise @@ -1104,29 +1097,60 @@ fr: public: Fils publics thread: Discussions edit: + add_keyword: Ajouter un mot-clé + keywords: Mots-clés + statuses: Publications individuelles + statuses_hint_html: Ce filtre s'applique à la sélection de messages individuels, qu'ils correspondent ou non aux mots-clés ci-dessous. Revoir ou supprimer des messages du filtre. title: Éditer le filtre errors: + deprecated_api_multiple_keywords: Ces paramètres ne peuvent pas être modifiés depuis cette application, car ils s'appliquent à plus d'un filtre de mot-clé. Utilisez une application plus récente ou l'interface web. invalid_context: Contexte invalide ou insuffisant - invalid_irreversible: Le filtrage irréversible ne fonctionne que pour l’accueil et les notifications index: + contexts: Filtres dans %{contexts} delete: Supprimer empty: Vous n'avez aucun filtre. + expires_in: Expire dans %{distance} + expires_on: Expire le %{date} + keywords: + one: "%{count} mot-clé" + other: "%{count} mots-clés" + statuses: + one: "%{count} message" + other: "%{count} messages" + statuses_long: + one: "%{count} publication individuelle cachée" + other: "%{count} publications individuelles cachées" title: Filtres new: + save: Enregistrer le nouveau filtre title: Ajouter un nouveau filtre + statuses: + back_to_filter: Retour au filtre + batch: + remove: Retirer du filtre + index: + hint: Ce filtre s'applique à la sélection de messages individuels, indépendamment d'autres critères. Vous pouvez ajouter plus de messages à ce filtre à partir de l'interface Web. + title: Messages filtrés footer: - developers: Développeurs - more: Davantage… - resources: Ressources trending_now: Tendance en ce moment generic: all: Tous + all_items_on_page_selected_html: + one: "%{count} élément de cette page est sélectionné." + other: L'ensemble des %{count} éléments de cette page est sélectionné. + all_matching_items_selected_html: + one: "%{count} élément correspondant à votre recherche est sélectionné." + other: L'ensemble des %{count} éléments correspondant à votre recherche est sélectionné. changes_saved_msg: Les modifications ont été enregistrées avec succès ! copy: Copier delete: Supprimer + deselect: Tout déselectionner none: Aucun order_by: Classer par save_changes: Enregistrer les modifications + select_all_matching_items: + one: Sélectionnez %{count} élément correspondant à votre recherche. + other: Sélectionnez tous l'ensemble des %{count} éléments correspondant à votre recherche. today: aujourd’hui validation_errors: one: Quelque chose ne va pas ! Veuillez vérifiez l’erreur ci-dessous @@ -1150,7 +1174,6 @@ fr: following: Liste d’utilisateur·rice·s suivi·e·s muting: Liste d’utilisateur·rice·s que vous masquez upload: Importer - in_memoriam_html: En mémoire de. invites: delete: Désactiver expired: Expiré @@ -1229,21 +1252,14 @@ fr: carry_blocks_over_text: Cet utilisateur que vous aviez bloqué est parti de %{acct}. carry_mutes_over_text: Cet utilisateur que vous aviez masqué est parti de %{acct}. copy_account_note_text: 'Cet·te utilisateur·rice est parti·e de %{acct}, voici vos notes précédentes à son sujet :' + navigation: + toggle_menu: Basculer l'affichage du menu notification_mailer: admin: + report: + subject: "%{name} a soumis un signalement" sign_up: subject: "%{name} s'est inscrit·e" - digest: - action: Voir toutes les notifications - body: Voici un bref résumé des messages que vous avez raté depuis votre dernière visite le %{since} - mention: "%{name} vous a mentionné⋅e dans :" - new_followers_summary: - one: De plus, vous avez un·e nouvel·le abonné·e ! Youpi ! - other: De plus, vous avez %{count} abonné·e·s de plus ! Incroyable ! - subject: - one: "Une nouvelle notification depuis votre dernière visite 🐘" - other: "%{count} nouvelles notifications depuis votre dernière visite 🐘" - title: Pendant votre absence… favourite: body: "%{name} a ajouté votre message à ses favoris :" subject: "%{name} a ajouté votre message à ses favoris" @@ -1315,6 +1331,8 @@ fr: other: Autre posting_defaults: Paramètres de publication par défaut public_timelines: Fils publics + privacy_policy: + title: Politique de confidentialité reactions: errors: limit_reached: Limite de réactions différentes atteinte @@ -1337,22 +1355,7 @@ fr: remove_selected_follows: Ne plus suivre les comptes sélectionnés status: État du compte remote_follow: - acct: Entrez l’adresse profil@serveur depuis laquelle vous voulez effectuer cette action missing_resource: L’URL de redirection requise pour votre compte n’a pas pu être trouvée - no_account_html: Vous n’avez pas de compte ? Vous pouvez vous inscrire ici - proceed: Confirmer l’abonnement - prompt: 'Vous allez suivre :' - reason_html: "Pourquoi cette étape est-elle nécessaire? %{instance} pourrait ne pas être le serveur sur lequel vous vous êtes inscrit·e, et nous devons donc vous rediriger vers votre serveur de base en premier." - remote_interaction: - favourite: - proceed: Confirmer l’ajout aux favoris - prompt: 'Vous souhaitez ajouter ce message à vos favoris :' - reblog: - proceed: Confirmer le partage - prompt: 'Vous souhaitez partager ce message :' - reply: - proceed: Confirmer la réponse - prompt: 'Vous souhaitez répondre à ce message :' reports: errors: invalid_rules: ne fait pas référence à des règles valides @@ -1394,7 +1397,7 @@ fr: adobe_air: Adobe Air android: Android blackberry: BlackBerry - chrome_os: Chrome OS + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1519,91 +1522,11 @@ fr: pinned: Message épinglé reblogged: a partagé sensitive_content: Contenu sensible + strikes: + errors: + too_late: Il est trop tard pour faire appel à cette sanction tags: does_not_match_previous_name: ne correspond pas au nom précédent - terms: - body_html: | -

      Politique de confidentialité

      -

      Quelles informations collectons-nous ?

      - -
        -
      • Informations de base sur votre compte : si vous vous inscrivez sur ce serveur, il vous sera demandé de rentrer un identifiant, une adresse électronique et un mot de passe. Vous pourrez également ajouter des informations additionnelles sur votre profil, telles qu’un nom public et une biographie, ainsi que téléverser une image de profil et une image d’en-tête. Vos identifiant, nom public, biographie, image de profil et image d’en-tête seront toujours affichés publiquement.
      • -
      • Posts, liste d’abonnements et autres informations publiques : la liste de vos abonnements ainsi que la liste de vos abonné·e·s sont publiques. Quand vous postez un message, la date et l’heure d’envoi ainsi que le nom de l’application utilisée pour sa transmission sont enregistré·e·s. Des médias, tels que des images ou des vidéos, peuvent être joints aux messages. Les posts publics et non listés sont affichés publiquement. Quand vous mettez en avant un post sur votre profil, ce post est également affiché publiquement. Vos messages sont délivrés à vos abonné·e·s, ce qui, dans certains cas, signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Quand vous supprimez un post, il est probable que l'action soit aussi délivrée à vos abonné·e·s. Partager un message ou le marquer comme favori est toujours une action publique.
      • -
      • Posts directs et abonné·e·s uniquement : tous les posts sont stockés et traités par le serveur. Les messages abonné·e·s uniquement ne sont transmis qu’à vos abonné·e·s et aux personnes mentionnées dans le corps du message, tandis que les messages directs ne sont transmis qu’aux personnes mentionnées. Dans certains cas, cela signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Nous faisons un effort de bonne foi pour en limiter l’accès uniquement aux personnes autorisées, mais ce n’est pas nécessairement le cas des autres serveurs. Il est donc très important que vous vérifiiez les serveurs auxquels appartiennent vos abonné·e·s. Il vous est possible d’activer une option dans les paramètres afin d’approuver et de rejeter manuellement les nouveaux·lles abonné·e·s. Gardez s’il vous plaît en mémoire que les opérateur·rice·s du serveur ainsi que celles et ceux de n’importe quel serveur récepteur peuvent voir ces messages et qu’il est possible pour les destinataires de faire des captures d’écran, de copier et plus généralement de repartager ces messages. Ne partagez aucune information sensible à l’aide de Mastodon !
      • -
      • IP et autres métadonnées : quand vous vous connectez, nous enregistrons votre adresse IP ainsi que le nom de votre navigateur web. Toutes les sessions enregistrées peuvent être consultées dans les paramètres, afin que vous puissiez les surveiller et éventuellement les révoquer. La dernière adresse IP utilisée est conservée pour une durée de 12 mois. Nous sommes également susceptibles de conserver les journaux du serveur, ce qui inclut l’adresse IP de chaque requête reçue.
      • -
      - -
      - -

      Que faisons-nous des informations que nous collectons ?

      - -

      Toutes les informations que nous collectons sur vous peuvent être utilisées des manières suivantes :

      - -
        -
      • pour vous fournir les fonctionnalités de base de Mastodon. Vous ne pouvez interagir avec le contenu des autres et poster votre propre contenu que lorsque vous êtes connecté·e. Par exemple, vous pouvez vous abonner à plusieurs autres comptes pour voir l’ensemble de leurs posts dans votre fil d’accueil personnalisé.
      • -
      • pour aider à la modération de la communauté : par exemple, comparer votre adresse IP avec d’autres afin de déterminer si un bannissement a été contourné ou si une autre violation aux règles a été commise.
      • -
      • l’adresse électronique que vous nous avez fournie peut être utilisée pour vous envoyer des informations, des notifications lorsque d’autres personnes interagissent avec votre contenu ou vous envoient des messages, pour répondre à des demandes de votre part ainsi que pour toutes autres requêtes ou questions.
      • -
      - -
      - -

      Comment protégeons-nous vos informations ?

      - -

      Nous mettons en œuvre une variété de mesures de sécurité afin de garantir la sécurité de vos informations personnelles quand vous les saisissez, les soumettez et les consultez. Entre autres choses, votre session de navigation ainsi que le trafic entre votre application et l’API sont sécurisés à l’aide de TLS ; tandis que votre mot de passe est haché en utilisant un puissant algorithme à sens unique. Vous pouvez également activer l’authentification à deux facteurs pour sécuriser encore plus l’accès à votre compte.

      - -
      - -

      Quelle est notre politique de conservation des données ?

      - -

      Nous ferons un effort de bonne foi :

      - -
        -
      • pour ne pas conserver plus de 90 jours les journaux systèmes contenant les adresses IP de toutes les requêtes reçues par ce serveur.
      • -
      • pour ne pas conserver plus de 12 mois les adresses IP associées aux utilisateur·ice·s enregistré·e·s.
      • -
      - -

      Vous pouvez demander une archive de votre contenu, incluant vos posts, vos médias joints, votre image de profil et votre image d’en-tête.

      - -

      Vous pouvez, à n’importe quel moment, supprimer votre compte de manière définitive.

      - -
      - -

      Utilisons-nous des témoins de connexion ?

      - -

      Oui. Les témoins de connexion sont de petits fichiers qu’un site ou un service transfère sur le disque dur de votre ordinateur via votre navigateur web (si vous l’avez autorisé). Ces témoins permettent au site de reconnaître votre navigateur et, dans le cas où vous possédez un compte, de vous associer avec ce dernier.

      - -

      Nous utilisons les témoins de connexion comme un moyen de comprendre et de nous souvenir de vos préférences pour vos prochaines visites.

      - -
      - -

      Divulguons-nous des informations à des tiers ?

      - -

      Nous ne vendons, n’échangeons ou ne transférons d’une quelconque manière que ce soit des informations permettant de vous identifier personnellement. Cela n’inclut pas les tiers de confiance qui nous aident à faire fonctionner ce site, à conduire nos activités commerciales ou à vous servir, du moment qu’ils acceptent de garder ces informations confidentielles. Nous sommes également susceptibles de partager vos informations quand nous pensons que cela est nécessaire pour nous conformer à la loi, pour faire respecter les règles de notre site, ainsi que pour défendre nos droits, notre propriété, notre sécurité, ou ceux d’autres personnes.

      - -

      Votre contenu public peut être téléchargé par d’autres serveurs du réseau. Dans le cas où vos abonné·e·s et vos destinataires résideraient sur des serveurs différents du vôtre, vos posts publics et abonné·e·s uniquement peuvent être délivrés vers les serveurs de vos abonné·e·s tandis que vos messages directs sont délivrés aux serveurs de vos destinataires.

      - -

      Quand vous autorisez une application à utiliser votre compte, en fonction de l’étendue des permissions que vous approuvez, il est possible qu’elle puisse accéder aux informations publiques de votre profil, à votre liste d’abonnements, votre liste d’abonné·e·s, vos listes, tous vos posts et vos favoris. Les applications ne peuvent en aucun cas accéder à votre adresse électronique et à votre mot de passe.

      - -
      - -

      Utilisation de ce site par les enfants

      - -

      Si ce serveur est situé dans l’UE ou l’EEE : notre site, nos produits et nos services sont tous destinés à des personnes âgées de 16 ans ou plus. Si vous avez moins de 16 ans, en application du RGPD (Règlement Général sur la Protection des Données), merci de ne pas utiliser ce site.

      - -

      Si ce serveur est situé aux États-Unis d’Amérique : notre site, nos produits et nos services sont tous destinés à des personnes âgées de 13 ans ou plus. Si vous avez moins de 13 ans, en application du COPPA (Children's Online Privacy Protection Act), merci de ne pas utiliser ce site.

      - -

      Les exigences légales peuvent être différentes si ce serveur se trouve dans une autre juridiction.

      - -
      - -

      Modifications de notre politique de confidentialité

      - -

      Dans le cas où nous déciderions de changer notre politique de confidentialité, nous posterons les modifications sur cette page.

      - -

      Ce document est publié sous licence CC-BY-SA. Il a été mis à jour pour la dernière fois le 7 mars 2018.

      - -

      Originellement adapté de la politique de confidentialité de Discourse.

      - title: Conditions d’utilisation et politique de confidentialité de %{instance} themes: contrast: Mastodon (Contraste élevé) default: Mastodon (Sombre) @@ -1682,20 +1605,13 @@ fr: suspend: Compte suspendu welcome: edit_profile_action: Configuration du profil - edit_profile_step: Vous pouvez personnaliser votre profil en téléchargeant un avatar, une image d’en-tête, en changeant votre pseudo et plus encore. Si vous souhaitez examiner les nouveaux·lles abonné·e·s avant qu’iels ne soient autorisé·e·s à vous suivre, vous pouvez verrouiller votre compte. + edit_profile_step: Vous pouvez personnaliser votre profil en téléchargeant une photo de profil, en changant votre nom d'utilisateur, etc. Vous pouvez opter pour le passage en revue de chaque nouvelle demande d'abonnement à chaque fois qu'un utilisateur essaie de s'abonner à votre compte. explanation: Voici quelques conseils pour vous aider à démarrer final_action: Commencez à publier - final_step: 'Commencez à publier ! Même sans abonné·e·s, vos messages publics peuvent être vus par d’autres, par exemple sur le fil public local et dans les hashtags. Vous pouvez vous présenter sur le hashtag #introductions.' + final_step: 'Commencez à publier ! Même si vous n''avez pas encore d''abonnés, vos publications sont publiques et sont accessibles par les autres, par exemple grâce à la zone horaire locale ou par les hashtags. Vous pouvez vous présenter sur le hashtag #introductions.' full_handle: Votre identifiant complet full_handle_hint: C’est ce que vous diriez à vos ami·e·s pour leur permettre de vous envoyer un message ou vous suivre à partir d’un autre serveur. - review_preferences_action: Modifier les préférences - review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous publier vos messages par défaut. Si vous n’avez pas le mal des transports, vous pouvez choisir d’activer la lecture automatique des GIF. subject: Bienvenue sur Mastodon - tip_federated_timeline: Le fil public global est une vue en direct du réseau Mastodon. Mais elle n’inclut que les personnes auxquelles vos voisin·e·s sont abonné·e·s, donc elle n’est pas complète. - tip_following: Vous suivez les administrateurs de votre serveur par défaut. Pour trouver d’autres personnes intéressantes, consultez les fils publics local et global. - tip_local_timeline: Le fil public local est une vue des personnes sur %{instance}. Ce sont vos voisines et voisins immédiats ! - tip_mobile_webapp: Si votre navigateur mobile vous propose d’ajouter Mastodon à votre écran d’accueil, vous pouvez recevoir des notifications. Il agit comme une application native de bien des façons ! - tips: Astuces title: Bienvenue à bord, %{name} ! users: follow_limit_reached: Vous ne pouvez pas suivre plus de %{limit} personnes diff --git a/config/locales/fy.yml b/config/locales/fy.yml new file mode 100644 index 00000000000000..9d90643881ba20 --- /dev/null +++ b/config/locales/fy.yml @@ -0,0 +1,153 @@ +--- +fy: + accounts: + last_active: letst warber + admin: + accounts: + delete: Gegevens fuortsmite + deleted: Fuortsmiten + domain: Domein + edit: Bewurkje + followers: Folgers + follows: Folgjend + header: Omslachfoto + inbox_url: Ynboks-URL + ip: IP + joined: Registrearre + location: + all: Alle + local: Lokaal + remote: Ekstern + title: Lokaasje + login_status: Oanmeldsteat + media_attachments: Mediabylagen + moderation: + active: Aktyf + all: Alle + pending: Yn ôfwachting + silenced: Beheind + suspended: Utsteld + title: Moderaasje + perform_full_suspension: Utstelle + promote: Promovearje + protocol: Protokol + public: Iepenbier + reject: Wegerje + security_measures: + only_password: Allinnich wachtwurd + password_and_2fa: Wachtwurd en 2FA + title: Accounts + unblock_email: E-mailadres deblokkearje + warn: Warskôgje + web: Web-app + action_logs: + action_types: + destroy_announcement: Meidieling fuortsmite + deleted_account: fuortsmiten account + custom_emojis: + copy: Kopiearje + delete: Fuortsmite + disable: Utskeakelje + disabled: Utskeakele + emoji: Emoji + enable: Ynskeakelje + enabled: Ynskeakele + image_hint: PNG of GIF net grutter as %{size} + list: Yn list + listed: Werjaan + upload: Oplade + dashboard: + active_users: warbere brûkers + interactions: ynteraksjes + title: Dashboerd + top_languages: Meast aktive talen + top_servers: Meast aktive tsjinners + website: Website + disputes: + appeals: + empty: Gjin beswieren fûn. + title: Beswieren + email_domain_blocks: + delete: Fuortsmite + domain: Domein + new: + create: Domain tafoegje + resolve: Domein opsykje + follow_recommendations: + status: Steat + instances: + back_to_all: Alle + back_to_limited: Beheind + back_to_warning: Warskôging + by_domain: Domein + confirm_purge: Wolle jo werklik alle gegevens fan dit domein foar ivich fuortsmite? + content_policies: + comment: Ynterne reden + policies: + silence: Beheind + suspend: Utsteld + policy: Belied + dashboard: + instance_accounts_measure: bewarre accounts + ip_blocks: + delete: Fuortsmite + relays: + delete: Fuortsmite + reports: + delete_and_resolve: Berjocht fuortsmite + notes: + delete: Fuortsmite + roles: + delete: Fuortsmite + rules: + delete: Fuortsmite + statuses: + deleted: Fuortsmiten + system_checks: + database_schema_check: + message_html: Der binne database migraasjes yn ôfwachting. Jo moatte dizze útfiere om der foar te soargjen dat de applikaasje wurkjen bliuwt sa as it heard + warning_presets: + delete: Fuortsmite + webhooks: + delete: Fuortsmite + auth: + delete_account: Account fuortsmite + deletes: + proceed: Account fuortsmite + errors: + '400': The request you submitted was invalid or malformed. + '403': You don't have permission to view this page. + '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. + '410': The page you were looking for doesn't exist here anymore. + '422': + '429': Too many requests + '500': + '503': The page could not be served due to a temporary server failure. + filters: + contexts: + thread: Petearen + index: + delete: Fuortsmite + generic: + delete: Fuortsmite + invites: + delete: Deaktivearje + notification_mailer: + mention: + action: Beäntwurdzje + body: 'Jo binne fermeld troch %{name} yn:' + subject: Jo binne fermeld troch %{name} + title: Nije fermelding + relationships: + last_active: Letst warber + rss: + content_warning: 'Ynhâldswarskôging:' + settings: + delete: Account fuortsmite + statuses: + content_warning: 'Ynhâldswarskôging: %{warning}' + pin_errors: + direct: Berjochten dy allinnich sichtber binne foar fermelde brûkers kinne net fêstset wurde + webauthn_credentials: + delete: Fuortsmite diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 8a280c001224bb..9df952ef1eea51 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -1,54 +1,230 @@ --- ga: about: - api: API - privacy_policy: Polasaí príobháideachais - unavailable_content_description: - domain: Freastalaí - reason: Fáth + about_mastodon_html: 'Líonra sóisialta a sheasfaidh an aimsir: Gan fógraíocht, gan faire chorparáideach, le leagan amach eiticiúil agus dílárú. Bíodh do chuid sonraí agatsa féin le Mastodon!' + contact_missing: Gan socrú + contact_unavailable: N/B + hosted_on: Mastodon arna óstáil ar %{domain} + title: Maidir le accounts: + follow: Lean + following: Ag leanúint + nothing_here: Níl rud ar bith anseo! + posts: + few: Postálacha + many: Postálacha + one: Postáil + other: Postálacha + two: Postálacha posts_tab_heading: Postálacha - roles: - bot: Róbat - group: Grúpa - moderator: Modhnóir - unfollow: Ná lean admin: + account_actions: + action: Déan gníomh + title: Dean gníomh modhnóireachta ar %{acct} + account_moderation_notes: + create: Fág nóta accounts: + approve: Faomh are_you_sure: An bhfuil tú cinnte? + avatar: Abhatár + by_domain: Fearann + change_email: + current_email: Ríomhphost reatha + label: Athraigh ríomhphost + new_email: Ríomhphost nua + submit: Athraigh ríomhphost + title: Athraigh ríomhphost do %{username} + change_role: + changed_msg: Athraíodh ról go rathúil! + label: Athraigh ról + no_role: Gan ról + title: Athraigh ról do %{username} confirm: Deimhnigh confirmed: Deimhnithe confirming: Ag deimhniú + custom: Saincheaptha + delete: Scrios sonraí + deleted: Scriosta + demote: Ísligh + disable: Reoigh + disable_two_factor_authentication: Díchumasaigh 2FA + disabled: Reoite + display_name: Ainm taispeána + domain: Fearann + edit: Cuir in eagar email: Ríomhphost email_status: Stádas ríomhphoist + enable: Dí-reoigh + enabled: Ar chumas followers: Leantóirí + follows: Ag leanúint + header: Ceanntásc ip: IP location: all: Uile + local: Áitiúil + remote: Cian + promote: Ardaigh + protocol: Prótacal public: Poiblí + redownload: Athnuaigh próifíl reject: Diúltaigh - roles: - admin: Riarthóir - moderator: Modhnóir - staff: Foireann - user: Úsáideoir + remove_avatar: Bain abhatár + remove_header: Bain ceanntásc + resend_confirmation: + success: Seoladh go rathúil ríomhphost deimhnithe! + reset: Athshocraigh + reset_password: Athshocraigh pasfhocal + resubscribe: Athchláraigh + role: Ról search: Cuardaigh statuses: Postálacha + subscribe: Cláraigh title: Cuntais + web: Gréasán + action_logs: + action_types: + assigned_to_self_report: Sann Tuairisc + create_account_warning: Cruthaigh Rabhadh + destroy_announcement: Scrios Fógra + destroy_ip_block: Scrios riail IP + destroy_status: Scrios Postáil + remove_avatar_user: Bain Abhatár + reopen_report: Athoscail tuairisc + reset_password_user: Athshocraigh Pasfhocal + resolve_report: Réitigh tuairisc + unassigned_report: Díshann Tuairisc + update_announcement: Nuashonraigh Fógra + update_status: Nuashonraigh Postáil + update_user_role: Nuashonraigh Ról + actions: + create_account_warning_html: Sheol %{name} rabhadh chuig %{target} + deleted_account: cuntas scriosta announcements: live: Beo publish: Foilsigh custom_emojis: + created_msg: Cruthaíodh emoji go rathúil! delete: Scrios + destroyed_msg: Scriosadh emoji go rathúil! + disable: Díchumasaigh + disabled: Díchumasaithe emoji: Emoji + enable: Cumasaigh list: Liosta + upload: Uaslódáil + dashboard: + software: Bogearraí + title: Deais + website: Suíomh Gréasáin + domain_blocks: + domain: Fearann + new: + severity: + silence: Ciúnaigh email_domain_blocks: delete: Scrios + follow_recommendations: + status: Stádas instances: + back_to_all: Uile + back_to_warning: Rabhadh content_policies: policy: Polasaí delivery: all: Uile + unavailable: Níl ar fáil + moderation: + all: Uile + purge: Glan + title: Cónascadh + invites: + filter: + all: Uile + available: Ar fáil + ip_blocks: + delete: Scrios + expires_in: + '1209600': Coicís + '15778476': 6 mhí + '2629746': Mí amháin + '31556952': Bliain amháin + '86400': Lá amháin + '94670856': 3 bhliain + relays: + delete: Scrios + disable: Díchumasaigh + disabled: Díchumasaithe + enable: Cumasaigh + enabled: Ar chumas + save_and_enable: Sábháil agus cumasaigh + status: Stádas + reports: + category: Catagóir + delete_and_resolve: Scrios postálacha + no_one_assigned: Duine ar bith + notes: + delete: Scrios + title: Nótaí + status: Stádas + title: Tuairiscí + roles: + delete: Scrios + privileges: + delete_user_data: Scrios Sonraí Úsáideora + rules: + delete: Scrios + site_uploads: + delete: Scrios comhad uaslódáilte + statuses: + account: Údar + deleted: Scriosta + language: Teanga + media: + title: Meáin + metadata: Meiteashonraí + open: Oscail postáil + original_status: Bunphostáil + reblogs: Athbhlaganna + status_changed: Athraíodh postáil + trending: Ag treochtáil + with_media: Le meáin + strikes: + actions: + delete_statuses: Scrios %{name} postálacha de chuid %{target} + tags: + review: Stádas athbhreithnithe + trends: + allow: Ceadaigh + disallow: Dícheadaigh + preview_card_providers: + title: Foilsitheoirí + statuses: + allow: Ceadaigh postáil + allow_account: Ceadaigh údar + warning_presets: + delete: Scrios + webhooks: + delete: Scrios + admin_mailer: + new_appeal: + actions: + delete_statuses: a gcuid postálacha a scrios + none: rabhadh + auth: + delete_account: Scrios cuntas + too_fast: Cuireadh an fhoirm isteach róthapa, triail arís. + deletes: + proceed: Scrios cuntas + disputes: + strikes: + appeal_submitted_at: Achomharc curtha isteach + appealed_msg: Cuireadh isteach d'achomharc. Má ceadófar é, cuirfear ar an eolas tú. + appeals: + submit: Cuir achomharc isteach + title_actions: + none: Rabhadh + your_appeal_pending: Chuir tú achomharc isteach errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -59,3 +235,33 @@ ga: '429': Too many requests '500': '503': The page could not be served due to a temporary server failure. + filters: + contexts: + thread: Comhráite + index: + delete: Scrios + generic: + delete: Scrios + notification_mailer: + admin: + report: + subject: Chuir %{name} tuairisc isteach + rss: + content_warning: 'Rabhadh ábhair:' + statuses: + content_warning: 'Rabhadh ábhair: %{warning}' + show_more: Taispeáin níos mó + show_newer: Taispeáin níos nuaí + show_thread: Taispeáin snáithe + user_mailer: + warning: + appeal: Cuir achomharc isteach + categories: + spam: Turscar + reason: 'Fáth:' + subject: + none: Rabhadh do %{acct} + title: + none: Rabhadh + webauthn_credentials: + delete: Scrios diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 450134bbcf6d03..24dc6e7ca38e5b 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1,70 +1,13 @@ --- gd: about: - about_hashtag_html: Seo postaichean poblach le taga #%{hashtag} riutha. ’S urrainn dhut conaltradh leotha ma tha cunntas agad àite sam bith sa cho-shaoghal. about_mastodon_html: 'An lìonra sòisealta dhan àm ri teachd: Gun sanasachd, gun chaithris corporra, dealbhadh beusail agus dì-mheadhanachadh! Gabh sealbh air an dàta agad fhèin le Mastodon!' - about_this: Mu dhèidhinn - active_count_after: gnìomhach - active_footnote: Cleachdaichean gnìomhach gach mìos (MAU) - administered_by: 'Rianachd le:' - api: API - apps: Aplacaidean mobile - apps_platforms: Cleachd Mastodon o iOS, Android ’s ùrlaran eile - browse_directory: Rùraich eòlaire phròifilean ’s criathraich a-rèir ùidhean - browse_local_posts: Brabhsaich sruth beò de phostaichean poblach on fhrithealaiche seo - browse_public_posts: Brabhsaich sruth beò de phostaichean poblach air Mastodon - contact: Fios thugainn contact_missing: Cha deach a shuidheachadh contact_unavailable: Chan eil seo iomchaidh - continue_to_web: Lean air adhart dhan aplacaid-lìn - discover_users: Rùraich cleachdaichean - documentation: Docamaideadh - federation_hint_html: Le cunntas air %{instance}, ’s urrainn dhut leantainn air daoine air frithealaiche Mastodon sam bith is a bharrachd. - get_apps: Feuch aplacaid mobile hosted_on: Mastodon ’ga òstadh air %{domain} - instance_actor_flash: | - ’S e actar biortail a tha sa chunntas seo a riochdaicheas am frithealaiche fhèin seach cleachdaiche sònraichte. - Tha e ’ga chleachdadh a chùm co-nasgaidh agus cha bu chòir dhut a bhacadh ach ma tha thu airson an t-ionstans gu lèir a bhacadh agus b’ fheàirrde thu bacadh àrainne a chleachdadh an àite sin. - learn_more: Barrachd fiosrachaidh - logged_in_as_html: Tha thu air do chlàradh a-steach an-dràsta mar %{username}. - logout_before_registering: Tha thu air clàradh a-steach mu thràth. - privacy_policy: Poileasaidh prìobhaideachd - rules: Riaghailtean an fhrithealaiche - rules_html: 'Tha geàrr-chunntas air na riaghailtean a dh’fheumas tu gèilleadh riutha ma tha thu airson cunntas fhaighinn air an fhrithealaiche Mastodon seo gu h-ìosal:' - see_whats_happening: Faic dè tha dol - server_stats: 'Stadastaireachd an fhrithealaiche:' - source_code: Bun-tùs - status_count_after: - few: postaichean - one: phost - other: post - two: phost - status_count_before: A dh’fhoillsich - tagline: Lean air caraidean ’s rùraich feadhainn ùra - terms: Teirmichean na seirbheise - unavailable_content: Frithealaichean fo mhaorsainneachd - unavailable_content_description: - domain: Frithealaiche - reason: Adhbhar - rejecting_media: 'Cha dèid faidhlichean meadhain o na frithealaichean seo a phròiseasadh no a stòradh agus cha dèid dealbhagan dhiubh a shealltainn. Feumar briogadh gus an ruigear am faidhle tùsail a làimh:' - rejecting_media_title: Meadhanan criathraichte - silenced: 'Thèid postaichean o na frithealaichean seo fhalach air loidhnichean-ama is còmhraidhean poblach agus cha dèid brathan a ghintinn à conaltraidhean nan cleachdaichean aca ach ma bhios tu fèin a’ leantainn orra:' - silenced_title: Frithealaichean cuingichte - suspended: 'Cha dèid dàta sam bith o na frithealaichean seo a phròiseasadh, a stòradh no iomlaid agus chan urrainn do na cleachdaichean o na frithealaichean sin conaltradh an-seo:' - suspended_title: Frithealaichean à rèim - unavailable_content_html: San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus conaltradh leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo. - user_count_after: - few: cleachdaichean - one: chleachdaiche - other: cleachdaiche - two: chleachdaiche - user_count_before: "’Na dhachaigh do" - what_is_mastodon: Dè th’ ann am Mastodon? + title: Mu dhèidhinn accounts: - choices_html: 'Roghadh is taghadh %{name}:' - endorsements_hint: "’S urrainn dhut daoine air a leanas tu a bhrosnachadh on eadar-aghaidh-lìn agus nochdaidh iad an-seo." - featured_tags_hint: "’S urrainn dhut tagaichean hais sònraichte a bhrosnachadh a thèid a shealltainn an-seo." - follow: Lean air + follow: Lean followers: few: Luchd-leantainn one: Neach-leantainn @@ -72,31 +15,17 @@ gd: two: Luchd-leantainn following: A’ leantainn instance_actor_flash: "’S e actar biortail a tha sa chunntas seo a riochdaicheas am frithealaiche fhèin seach cleachdaiche sònraichte. Tha e ’ga chleachdadh a chùm co-nasgaidh agus cha bu chòir dhut a chur à rèim." - joined: Air ballrachd fhaighinn %{date} last_active: an gnìomh mu dheireadh link_verified_on: Chaidh dearbhadh cò leis a tha an ceangal seo %{date} - media: Meadhanan - moved_html: 'Chaidh %{name} imrich gu %{new_profile_link}:' - network_hidden: Chan eil am fiosrachadh seo ri fhaighinn nothing_here: Chan eil dad an-seo! - people_followed_by: Daoine air a leanas %{name} - people_who_follow: Daoine a tha a’ leantainn air %{name} pin_errors: - following: Feumaidh tu leantainn air neach mus urrainn dhut a bhrosnachadh + following: Feumaidh tu neach a leantainn mus urrainn dhut a bhrosnachadh posts: few: Postaichean one: Post other: Postaichean two: Postaichean posts_tab_heading: Postaichean - posts_with_replies: Postaichean ’s freagairtean - roles: - admin: Rianaire - bot: Bot - group: Buidheann - moderator: Maor - unavailable: Chan eil a’ phròifil ri làimh - unfollow: Na lean tuilleadh admin: account_actions: action: Gabh an gnìomh @@ -113,12 +42,17 @@ gd: avatar: Avatar by_domain: Àrainn change_email: - changed_msg: Chaidh post-d a’ chunntais atharrachadh! + changed_msg: Chaidh am post-d atharrachadh! current_email: Am post-d làithreach label: Atharraich am post-d new_email: Post-d ùr submit: Atharraich am post-d title: Atharraich am post-d airson %{username} + change_role: + changed_msg: Chaidh an dreuchd atharrachadh! + label: Atharraich an dreuchd + no_role: Gun dreuchd + title: Atharraich an dreuchd aig %{username} confirm: Dearbh confirmed: Chaidh a dhearbhachadh confirming: "’Ga dhearbhadh" @@ -141,7 +75,7 @@ gd: enabled: An comas enabled_msg: Chaidh an cunntas aig %{username} a dhì-reòthadh followers: Luchd-leantainn - follows: A’ leantainn air + follows: A’ leantainn header: Bann-cinn inbox_url: URL a’ bhogsa a-steach invite_request_text: Adhbharan na ballrachd @@ -162,6 +96,7 @@ gd: active: Gnìomhach all: Na h-uile pending: Ri dhèiligeadh + silenced: Cuingichte suspended: À rèim title: Maorsainneachd moderation_notes: Nòtaichean na maorsainneachd @@ -169,6 +104,7 @@ gd: most_recent_ip: An IP as ùire no_account_selected: Cha deach cunntas sam bith atharrachadh o nach deach gin dhiubh a thaghadh no_limits_imposed: Cha deach crìoch sam bith a sparradh + no_role_assigned: Cha deach dreuchd iomruineadh not_subscribed: Gun fho-sgrìobhadh pending: A’ feitheamh air lèirmheas perform_full_suspension: Cuir à rèim @@ -197,12 +133,7 @@ gd: reset: Ath-shuidhich reset_password: Ath-shuidhich am facal-faire resubscribe: Fo-sgrìobh a-rithist - role: Ceadan - roles: - admin: Rianaire - moderator: Maor - staff: Ball dhen sgioba - user: Cleachdaiche + role: Dreuchd search: Lorg search_same_email_domain: Cleachdaichean eile aig a bheil an aon àrainn puist-d search_same_ip: Cleachdaichean eile aig a bheil an t-aon IP @@ -245,17 +176,21 @@ gd: approve_user: Aontaich ris a’ chleachdaiche assigned_to_self_report: Iomruin an gearan change_email_user: Atharraich post-d a’ chleachdaiche + change_role_user: Atharraich dreuchd a’ chleachdaiche confirm_user: Dearbh an cleachdaiche create_account_warning: Cruthaich rabhadh create_announcement: Cruthaich brath-fios + create_canonical_email_block: Cruthaich bacadh puist-d create_custom_emoji: Cruthaich Emoji gnàthaichte create_domain_allow: Cruthaich ceadachadh àrainne create_domain_block: Cruthaich bacadh àrainne create_email_domain_block: Cruthaich bacadh àrainne puist-d create_ip_block: Cruthaich riaghailt IP create_unavailable_domain: Cruthaich àrainn nach eil ri fhaighinn + create_user_role: Cruthaich dreuchd demote_user: Ìslich an cleachdaiche destroy_announcement: Sguab às am brath-fios + destroy_canonical_email_block: Sguab às dhan bhacadh puist-d destroy_custom_emoji: Sguab às an t-Emoji gnàthaichte destroy_domain_allow: Sguab às ceadachadh na h-àrainne destroy_domain_block: Sguab às bacadh na h-àrainne @@ -264,6 +199,7 @@ gd: destroy_ip_block: Sguab às an riaghailt IP destroy_status: Sguab às am post destroy_unavailable_domain: Sguab às àrainn nach eil ri fhaighinn + destroy_user_role: Mill an dreuchd disable_2fa_user: Cuir an dearbhadh dà-cheumnach à comas disable_custom_emoji: Cuir an t-Emoji gnàthaichte à comas disable_sign_in_token_auth_user: Cuir à comas dearbhadh le tòcan puist-d dhan chleachdaiche @@ -277,6 +213,7 @@ gd: reject_user: Diùlt an cleachdaiche remove_avatar_user: Thoir air falbh an t-avatar reopen_report: Fosgail an gearan a-rithist + resend_user: Cuir am post-d dearbhaidh a-rithist reset_password_user: Ath-shuidhich am facal-faire resolve_report: Fuasgail an gearan sensitive_account: Spàrr an fhrionasachd air a’ chunntas seo @@ -290,24 +227,30 @@ gd: update_announcement: Ùraich am brath-fios update_custom_emoji: Ùraich an t-Emoji gnàthaichte update_domain_block: Ùraich bacadh na h-àrainne + update_ip_block: Ùraich an riaghailt IP update_status: Ùraich am post + update_user_role: Ùraich an dreuchd actions: approve_appeal_html: Dh’aontaich %{name} ri ath-thagradh air co-dhùnadh na maorsainneachd o %{target} approve_user_html: Dh’aontaich %{name} ri clàradh o %{target} assigned_to_self_report_html: Dh’iomruin %{name} an gearan %{target} dhaibh fhèin change_email_user_html: Dh’atharraich %{name} seòladh puist-d a’ chleachdaiche %{target} + change_role_user_html: Atharraich %{name} an dreuchd aig %{target} confirm_user_html: Dhearbh %{name} seòladh puist-d a’ chleachdaiche %{target} create_account_warning_html: Chuir %{name} rabhadh gu %{target} create_announcement_html: Chruthaich %{name} brath-fios %{target} ùr + create_canonical_email_block_html: Bhac %{name} am post-d air a bheil an hais %{target} create_custom_emoji_html: Luchdaich %{name} suas Emoji %{target} ùr create_domain_allow_html: Cheadaich %{name} co-nasgadh leis an àrainn %{target} create_domain_block_html: Bhac %{name} an àrainn %{target} create_email_domain_block_html: Bhac %{name} an àrainn puist-d %{target} create_ip_block_html: Chruthaich %{name} riaghailt dhan IP %{target} create_unavailable_domain_html: Sguir %{name} ris an lìbhrigeadh dhan àrainn %{target} + create_user_role_html: Chruthaich %{name} an dreuchd %{target} demote_user_html: Dh’ìslich %{name} an cleachdaiche %{target} destroy_announcement_html: Sguab %{name} às am brath-fios %{target} - destroy_custom_emoji_html: Mhill %{name} an Emoji %{target} + destroy_canonical_email_block_html: Dhì-bhac %{name} am post-d air a bheil an hais %{target} + destroy_custom_emoji_html: Sguab %{name} às an Emoji %{target} destroy_domain_allow_html: Dì-cheadaich %{name} co-nasgadh leis an àrainn %{target} destroy_domain_block_html: Dì-bhac %{name} an àrainn %{target} destroy_email_domain_block_html: Dì-bhac %{name} an àrainn puist-d %{target} @@ -315,6 +258,7 @@ gd: destroy_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target} destroy_status_html: Thug %{name} post aig %{target} air falbh destroy_unavailable_domain_html: Lean %{name} air adhart leis an lìbhrigeadh dhan àrainn %{target} + destroy_user_role_html: Sguab %{name} às an dreuchd %{target} disable_2fa_user_html: Chuir %{name} riatanas an dearbhaidh dà-cheumnaich à comas dhan chleachdaiche %{target} disable_custom_emoji_html: Chuir %{name} an Emoji %{target} à comas disable_sign_in_token_auth_user_html: Chuir %{name} à comas dearbhadh le tòcan puist-d dha %{target} @@ -328,6 +272,7 @@ gd: reject_user_html: Dhiùlt %{name} an clàradh o %{target} remove_avatar_user_html: Thug %{name} avatar aig %{target} air falbh reopen_report_html: Dh’fhosgail %{name} an gearan %{target} a-rithist + resend_user_html: Chuir %{name} am post-d dearbhaidh airson %{target} a-rithist reset_password_user_html: Dh’ath-shuidhich %{name} am facal-faire aig a’ chleachdaiche %{target} resolve_report_html: Dh’fhuasgail %{name} an gearan %{target} sensitive_account_html: Chuir %{name} comharra gu bheil e frionasach ri meadhan aig %{target} @@ -341,8 +286,10 @@ gd: update_announcement_html: Dh’ùraich %{name} am brath-fios %{target} update_custom_emoji_html: Dh’ùraich %{name} an Emoji %{target} update_domain_block_html: Dh’ùraich %{name} bacadh na h-àrainne %{target} + update_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target} update_status_html: Dh’ùraich %{name} post le %{target} - deleted_status: "(post air a sguabadh às)" + update_user_role_html: Dh’atharraich %{name} an dreuchd %{target} + deleted_account: chaidh an cunntas a sguabadh às empty: Cha deach loga a lorg. filter_by_action: Criathraich a-rèir gnìomha filter_by_user: Criathraich a-rèir cleachdaiche @@ -386,6 +333,7 @@ gd: listed: Liostaichte new: title: Cuir Emoji gnàthaichte ùr ris + no_emoji_selected: Cha deach Emoji sam bith atharrachadh o nach deach gin dhiubh a thaghadh not_permitted: Chan fhaod thu seo a dhèanamh overwrite: Sgrìobh thairis air shortcode: Geàrr-chòd @@ -446,19 +394,20 @@ gd: destroyed_msg: Chan eil an àrainn ’ga bacadh tuilleadh domain: Àrainn edit: Deasaich bacadh na h-àrainne + existing_domain_block: Chuir thu cuingeachaidhean nas teinne air %{name} mu thràth. existing_domain_block_html: Chuir thu cuingeachadh nas teinne air %{name} mu thràth, feumaidh tu a dì-bhacadh an toiseach. new: create: Cruthaich bacadh hint: Cha chuir bacadh na h-àrainne crìoch air cruthachadh chunntasan san stòr-dàta ach cuiridh e dòighean maorsainneachd sònraichte an sàs gu fèin-obrachail air a h-uile dàta a tha aig na cunntasan ud. severity: - desc_html: Falaichidh am mùchadh postaichean a’ chunntais do dhuine sam bith nach ail a’ leantainn air. Bheir an cur à rèim air falbh gach susbaint, meadhan is dàta pròifil a’ chunntais. Tagh Chan eil gin mur eil thu ach airson faidhlichean meadhain a dhiùltadh. + desc_html: Falaichidh am mùchadh postaichean a’ chunntais do dhuine sam bith nach eil ’ga leantainn. Bheir an cur à rèim air falbh gach susbaint, meadhan is dàta pròifil a’ chunntais. Tagh Chan eil gin mur eil thu ach airson faidhlichean meadhain a dhiùltadh. noop: Chan eil gin silence: Mùch suspend: Cuir à rèim title: Bacadh àrainne ùr obfuscate: Doilleirich ainm na h-àrainne obfuscate_hint: Doilleirich pàirt de dh’ainm na h-àrainne air an liosta ma tha foillseachadh liosta nan cuingeachaidhean àrainne an comas - private_comment: Beachd prìobhaideachd + private_comment: Beachd prìobhaideach private_comment_hint: Beachd mu chuingeachadh na h-àrainne seo nach cleachd ach na maoir. public_comment: Beachd poblach public_comment_hint: Beachd poblach mu chuingeachadh na h-àrainne seo ma tha foillseachadh liosta nan cuingeachaidhean àrainne an comas. @@ -490,7 +439,7 @@ gd: resolved_through_html: Chaidh fuasgladh slighe %{domain} title: Àrainnean puist-d ’gam bacadh follow_recommendations: - description_html: "Cuidichidh molaidhean leantainn an luchd-cleachdaidh ùr ach an lorg iad susbaint inntinneach gu luath. Mur an do ghabh cleachdaiche conaltradh gu leòr le càch airson molaidhean leantainn gnàthaichte fhaighinn, mholamaid na cunntasan seo ’nan àite. Thèid an àireamhachadh às ùr gach latha stèidhichte air na cunntasan air an robh an conaltradh as trice ’s an luchd-leantainn ionadail as motha sa chànan." + description_html: "Cuidichidh molaidhean leantainn an luchd-cleachdaidh ùr ach an lorg iad susbaint inntinneach gu luath. Mur an do ghabh cleachdaiche conaltradh gu leòr le càch airson molaidhean leantainn gnàthaichte fhaighinn, mholamaid na cunntasan seo ’nan àite. Thèid an àireamhachadh às ùr gach latha, stèidhichte air na cunntasan air an robh an conaltradh as trice ’s an luchd-leantainn ionadail as motha sa chànan." language: Dhan chànan status: Staid suppress: Mùch na molaidhean leantainn @@ -559,7 +508,7 @@ gd: all: Na h-uile limited: Cuingichte title: Maorsainneachd - private_comment: Beachd prìobhaideachd + private_comment: Beachd prìobhaideach public_comment: Beachd poblach purge: Purgaidich purge_description_html: Ma tha thu dhen bheachd gu bheil an àrainn seo far loidhne gu buan, ’s urrainn dhut a h-uile clàr cunntais ’s an dàta co-cheangailte on àrainn ud a sguabadh às san stòras agad. Dh’fhaoidte gun doir sin greis mhath. @@ -598,7 +547,7 @@ gd: relays: add_new: Cuir ath-sheachadan ùr ris delete: Sguab às - description_html: "’S e frithealaiche eadar-mheadhanach a th’ ann an ath-sheachadan co-nasgaidh a nì iomlaid air grunnan mòra de phostaichean poblach eadar na frithealaichean a dh’fho-sgrìobhas ’s a dh’fhoillsicheas dha. ’S urrainn dha cuideachadh a thoirt do dh’fhrithealaichean beaga is meadhanach mòr ach an rùraich iad susbaint sa cho-shaoghal agus às an aonais, bhiodh aig cleachdaichean ionadail leantainn air daoine eile air frithealaichean cèine a làimh." + description_html: "’S e frithealaiche eadar-mheadhanach a th’ ann an ath-sheachadan co-nasgaidh a nì iomlaid air grunnan mòra de phostaichean poblach eadar na frithealaichean a dh’fho-sgrìobhas ’s a dh’fhoillsicheas dha. ’S urrainn dha cuideachadh a thoirt do dh’fhrithealaichean beaga is meadhanach mòr ach an rùraich iad susbaint sa cho-shaoghal agus às an aonais, bhiodh aig cleachdaichean ionadail daoine eile a leantainn air frithealaichean cèine a làimh." disable: Cuir à comas disabled: Chaidh a chur à comas enable: Cuir an comas @@ -629,9 +578,9 @@ gd: mark_as_sensitive_description_html: Thèid comharra an fhrionasachd a chur ris na meadhanan sna postaichean le gearan orra agus rabhadh a chlàradh gus do chuideachadh ach am bi thu nas teinne le droch-ghiùlan on aon chunntas sam àm ri teachd. other_description_html: Seall barrachd roghainnean airson giùlan a’ chunntais a stiùireadh agus an conaltradh leis a’ chunntas a chaidh gearan a dhèanamh mu dhèidhinn a ghnàthachadh. resolve_description_html: Cha dèid gnìomh sam bith a ghabhail an aghaidh a’ chunntais le gearan air agus thèid an gearan a dhùnadh gun rabhadh a chlàradh. - silence_description_html: Chan fhaic ach an fheadhainn a tha a’ leantainn oirre mu thràth no a lorgas a làimh i a’ phròifil seo agus cuingichidh seo uiread nan daoine a ruigeas i gu mòr. Gabhaidh seo a neo-dhèanamh uair sam bith. + silence_description_html: Chan fhaic ach an fheadhainn a tha ’ga leantainn mu thràth no a lorgas a làimh i a’ phròifil seo agus cuingichidh seo uiread nan daoine a ruigeas i gu mòr. Gabhaidh seo a neo-dhèanamh uair sam bith. suspend_description_html: Cha ghabh a’ phròifil seo agus an t-susbaint gu leòr aice inntrigeadh gus an dèid a sguabadh às air deireadh na sgeòil. Cha ghabh eadar-ghabhail a dhèanamh leis a’ chunntas. Gabhaidh seo a neo-dhèanamh am broinn 30 latha. - actions_description_html: Cuir romhad dè an gnìomh a ghabhas tu gus an gearan seo fhuasgladh. Ma chuireas tu peanas air a’ chunntas le gearan air, gheibh iad brath air a’ phost-d mura tagh thu an roinn-seòrsa Spama. + actions_description_html: Socraich dè a nì thu airson an gearan seo fhuasgladh. Ma chuireas tu peanas air a’ chunntas le gearan air, gheibh iad brath air a’ phost-d mura tagh thu an roinn-seòrsa Spama. add_to_report: Cuir barrachd ris a’ ghearan are_you_sure: A bheil thu cinnteach? assign_to_self: Iomruin dhomh-sa @@ -676,6 +625,69 @@ gd: unresolved: Gun fhuasgladh updated_at: Air ùrachadh view_profile: Seall a’ phròifil + roles: + add_new: Cuir dreuchd ris + assigned_users: + few: "%{count} cleachdaichean" + one: "%{count} chleachdaiche" + other: "%{count} cleachdaiche" + two: "%{count} chleachdaiche" + categories: + administration: Rianachd + invites: Cuiridhean + moderation: Maorsainneachd + special: Sònraichte + delete: Sguab às + description_html: Le dreuchdan chleachdaichean, ’s urrainn dhut gnàthachadh dè na gleusan is raointean de Mhastodon as urrainn dha na cleachdaichean agad inntrigeadh. + edit: Deasaich an dreuchd aig “%{name}“ + everyone: Na ceadan bunaiteach + everyone_full_description_html: Seo an dreuchd bhunaiteach a bheir buaidh air gach cleachdaiche, fiù an fheadhainn nach deach dreuchd iomruineadh dhaibh. Gheibh a h-uile dreuch ceadan uaipe mar dhìleab. + permissions_count: + few: "%{count} ceadan" + one: "%{count} chead" + other: "%{count} cead" + two: "%{count} chead" + privileges: + administrator: Rianaire + administrator_description: Chan eil cuingeachadh sam bith air na cleachdaichean aig bheil an cead seo + delete_user_data: Sguab às dàta a’ chleachdaiche + delete_user_data_description: Leigidh seo le cleachdaichean dàta chleachdaichean eile a sguabadh às gun dàil + invite_users: Thoir cuireadh do chleachdaichean + invite_users_description: Leigidh seo le cleachdaichean cuireadh dhan fhrithealaiche a chur gu daoine eile + manage_announcements: Stiùireadh nam brathan-fios + manage_announcements_description: Leigidh seo le cleachdaichean brathan-fios a stiùireadh air an fhrithealaiche + manage_appeals: Stiùireadh ath-thagraidhean + manage_appeals_description: Leigidh seo le cleachdaichean lèirmheas a dhèanamh air ath-thagraidhean an aghaidh gnìomhan mhaor + manage_blocks: Stiùireadh nam bacaidhean + manage_blocks_description: Leigidh seo le cleachdaichean solaraichean puist-d is seòlaidhean IP a bhacadh + manage_custom_emojis: Stiùireadh nan Emojis gnàthaichte + manage_custom_emojis_description: Leigidh seo le cleachdaichean Emojis gnàthaichte a stiùireadh air an fhrithealaiche + manage_federation: Stiùireadh a’ cho-nasgaidh + manage_federation_description: Leigidh seo le cleachdaichean an co-nasgadh le àrainnean eile a bhacadh no a cheadachadh agus stiùireadh dè ghabhas lìbhrigeadh + manage_invites: Stiùireadh nan cuiridhean + manage_invites_description: Leigidh seo le cleachdaichean ceanglaichean cuiridh a rùrachadh ’s a chur à gnìomh + manage_reports: Stiùireadh ghearanan + manage_reports_description: Leigidh seo le cleachdaichean lèirmheas a dhèanamh air gearanan agus gnìomhan maoir a ghabhail ’nan aghaidh + manage_roles: Stiùireadh dhreuchdan + manage_roles_description: Leigidh seo le cleachdaichean dreuchdan a stiùireadh is iomruineadh do dh’ìochdaran + manage_rules: Stiùireadh nan riaghailtean + manage_rules_description: Leigidh seo le cleachdaichean riaghailtean an fhrithealaiche atharrachadh + manage_settings: Stiùireadh nan roghainnean + manage_settings_description: Leigidh seo le cleachdaichean roghainnean na làraich atharrachadh + manage_taxonomies: Stiùireadh thacsonamaidhean + manage_taxonomies_description: Leigidh seo le cleachdaichean lèirmheas a dhèanamh air an t-susbaint a tha a’ treandadh agus roghainnean nan tagaichean hais ùrachadh + manage_user_access: Stiùireadh inntrigeadh chleachdaichean + manage_user_access_description: Leigidh seo le cleachdaichean gun cuir iad à comas dearbhadh dà-cheumnach càich, gun atharraich iad an seòladh puist-d aca is gun ath-shuidhich iad am facal-faire aca + manage_users: Stiùireadh chleachdaichean + manage_users_description: Leigidh seo le cleachdaichean mion-fhiosrachadh càich a shealltainn agus gnìomhan maoir a ghabhail ’nan aghaidh + manage_webhooks: Stiùireadh nan webhooks + manage_webhooks_description: Leigidh seo le cleachdaichean webhooks a shuidheachadh do thachartasan na rianachd + view_audit_log: Coimhead air an loga sgrùdaidh + view_audit_log_description: Leigidh seo le cleachdaichean coimhead air eachdraidh gnìomhan na rianachd air an fhrithealaiche + view_dashboard: Coimhead air an deas-bhòrd + view_dashboard_description: Leigidh seo le cleachdaichean an deas-bhòrd agus meatrachdan inntrigeadh + view_devops_description: Leigidh seo le cleachdaichean na deas-bhùird aig Sidekiq is pgHero inntrigeadh + title: Dreuchdan rules: add_new: Cuir riaghailt ris delete: Sguab às @@ -684,108 +696,67 @@ gd: empty: Cha deach riaghailtean an fhrithealaiche a mhìneachadh fhathast. title: Riaghailtean an fhrithealaiche settings: - activity_api_enabled: - desc_html: Cunntasan nam postaichean a chaidh fhoillseachadh gu h-ionadail, nan cleachdaichean gnìomhach ’s nan clàraidhean ùra an am bucaidean seachdaineil - title: Foillsich agragaid dhen stadastaireachd mu ghnìomhachd nan cleachdaichean san API - bootstrap_timeline_accounts: - desc_html: Sgar iomadh ainm cleachdaiche le cromag. Cuiridh sinn geall gun nochd na cunntasan seo am measg nam molaidhean leantainn - title: Mol na cunntasan seo do chleachdaichean ùra - contact_information: - email: Post-d gnìomhachais - username: Ainm cleachdaiche a’ chonaltraidh - custom_css: - desc_html: Atharraich an coltas le CSS a thèid a luchdadh le gach duilleag - title: CSS gnàthaichte - default_noindex: - desc_html: Bidh buaidh air a h-uile cleachdaiche nach do dh’atharraich an roghainn seo dhaibh fhèin - title: Thoir air falbh ro-aonta nan cleachdaichean air inneacsadh le einnseanan-luirg mar a’ bhun-roghainn + about: + manage_rules: Stiùirich riaghailtean an fhrithealaiche + preamble: Solair fiosrachadh domhainn mu sholar, maorsainneachd is maoineachadh an fhrithealaiche seo. + rules_hint: Tha roinn sònraichte ann dha na riaghailtean air am bu chòir an luchd-cleachdaidh agad a leantainn. + title: Mu dhèidhinn + appearance: + preamble: Gnàthaich eadar-aghaidh-lìn Mhastodon. + title: Coltas + branding: + preamble: Tha branndadh an fhrithealaiche agad eadar-dhealaichte o fhrithealaichean eile san lìonra. Faodaidh gun nochd am fiosrachadh seo thar iomadh àrainneachd, can eadar-aghaidh-lìn Mhastodon, aplacaidean tùsail, ro-sheallaidhean air ceanglaichean air làraichean-lìn eile agus am broinn aplacaidean theachdaireachdan is mar sin air adhart. Air an adhbhar seo, mholamaid gun cùm thu am fiosrachadh seo soilleir is goirid. + title: Branndadh + content_retention: + preamble: Stiùirich mar a tha susbaint an luchd-cleachdaidh ’ga stòradh ann am Mastodon. + title: Glèidheadh na susbaint + discovery: + follow_recommendations: Molaidhean leantainn + preamble: Tha tighinn an uachdar susbainte inntinniche fìor-chudromach airson toiseach-tòiseachaidh an luchd-cleachdaidh ùr nach eil eòlach air duine sam bith air Mastodon, ma dh’fhaoidte. Stiùirich mar a dh’obraicheas gleusan an rannsachaidh air an fhrithealaiche agad. + profile_directory: Eòlaire nam pròifil + public_timelines: Loidhnichean-ama poblach + title: Rùrachadh + trends: Treandaichean domain_blocks: all: Dhan a h-uile duine disabled: Na seall idir - title: Seall bacaidhean àrainne users: Dhan luchd-chleachdaidh a clàraich a-steach gu h-ionadail - domain_blocks_rationale: - title: Seall an t-adhbhar - hero: - desc_html: Thèid seo a shealltainn air a’ phrìomh-dhuilleag. Mholamaid 600x100px air a char as lugha. Mura dèid seo a shuidheachadh, thèid dealbhag an fhrithealaiche a shealltainn ’na àite - title: Dealbh gaisgich - mascot: - desc_html: Thèid seo a shealltainn air iomadh duilleag. Mholamaid 293×205px air a char as lugha. Mura dèid seo a shuidheachadh, thèid an suaichnean a shealltainn ’na àite - title: Dealbh suaichnein - peers_api_enabled: - desc_html: Ainmean àrainne air an do thachair am frithealaiche seo sa cho-shaoghal - title: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API - preview_sensitive_media: - desc_html: Ro-sheallaidh ceanglaichean dealbhag fhiù ’s ma chaidh comharradh gu bheil am meadhan frionasach - title: Seall meadhanan frionasach ann an ro-sheallaidhean OpenGraph - profile_directory: - desc_html: Suidhich gun gabh cleachdaichean a rùrachadh - title: Cuir eòlaire nam pròifil an comas registrations: - closed_message: - desc_html: Thèid seo a shealltainn air an duilleag-dhachaigh nuair a bhios an clàradh dùinte. ’S urrainn dhut tagaichean HTML a chleachdadh - title: Teachdaireachd a’ chlàraidh dhùinte - deletion: - desc_html: Leig le neach sa bith an cunntas a sguabadh às - title: Fosgail sguabadh às chunntasan - min_invite_role: - disabled: Na ceadaich idir - title: Ceadaich cuiridhean le - require_invite_text: - desc_html: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil - title: Iarr air cleachdaichean ùra gun innis iad carson a tha iad ag iarraidh ballrachd + preamble: Stiùirich cò dh’fhaodas cunntas a chruthachadh air an fhrithealaiche agad. + title: Clàraidhean registrations_mode: modes: approved: Tha aontachadh riatanach airson clàradh none: Chan fhaod neach sam bith clàradh open: "’S urrainn do neach sam bith clàradh" - title: Modh a’ chlàraidh - show_known_fediverse_at_about_page: - desc_html: Nuair a bhios seo à comas, cha sheall an loidhne-ama phoblach a thèid a cheangal rithe on duilleag-landaidh ach susbaint ionadail - title: Gabh a-staigh susbaint cho-naisgte air duilleag na loidhne-ama poblaich gun ùghdarrachadh - show_staff_badge: - desc_html: Seall bràist sgioba air duilleag cleachdaiche - title: Seall bràist sgioba - site_description: - desc_html: Earrann tuairisgeil air an API. Mìnich dè tha sònraichte mun fhrithealaiche Mastodon seo agus rud sa bith eile a tha cudromach. ’S urrainn dhut tagaichean HTML a chleachdadh agus <a> ’s <em> gu sònraichte. - title: Tuairisgeul an fhrithealaiche - site_description_extended: - desc_html: Seo deagh àite airson an còd-giùlain, na riaghailtean ’s na comharran-treòrachaidh agad agus do nithean eile a tha sònraichte mun fhrithealaiche agad. ‘S urrainn dhut tagaichean HTML a chleachdadh - title: Fiosrachadh leudaichte gnàthaichte - site_short_description: - desc_html: Nochdaidh seo air a’ bhàr-taoibh agus sna meata-thagaichean. Mìnich dè th’ ann am Mastodon agus dè tha sònraichte mun fhrithealaiche agad ann an aon earrann a-mhàin. - title: Tuairisgeul goirid an fhrithealaiche - site_terms: - desc_html: "’S urrainn dhut am poileasaidh prìobhaideachd no teirmichean na seirbheise agad fhèin no fiosrachadh laghail sa bith eile a sgrìobhadh. ‘S urrainn dhut tagaichean HTML a chleachdadh" - title: Teirmichean gnàthaichte na seirbheise - site_title: Ainm an fhrithealaiche - thumbnail: - desc_html: Thèid seo a chleachdadh airson ro-sheallaidhean slighe OpenGraph no API. Mholamaid 1200x630px - title: Dealbhag an fhrithealaiche - timeline_preview: - desc_html: Seall ceangal dhan loidhne-ama phoblach air an duilleag-landaidh is ceadaich inntrigeadh gun ùghdarrachadh leis an API air an loidhne-ama phoblach - title: Ceadaich inntrigeadh gun ùghdarrachadh air an loidhne-ama phoblach - title: Roghainnean na làraich - trendable_by_default: - desc_html: Bheir seo buaidh air na tagaichean hais nach deach a dhì-cheadachadh roimhe - title: Leig le tagaichean hais treandadh às aonais lèirmheis ro làimh - trends: - desc_html: Seall susbaint gu poblach a chaidh lèirmheas a dhèanamh oirre roimhe ’s a tha a’ treandadh - title: Treandaichean + title: Roghainnean an fhrithealaiche site_uploads: delete: Sguab às am faidhle a chaidh a luchdadh suas destroyed_msg: Chaidh an luchdadh suas dhan làrach a sguabadh às! statuses: + account: Ùghdar + application: Aplacaid back_to_account: Till gu duilleag a’ chunntais back_to_report: Till gu duilleag a’ ghearain batch: remove_from_report: Thoir air falbh on ghearan report: Gearan deleted: Chaidh a sguabadh às + favourites: Annsachdan + history: Eachdraidh nan tionndadh + in_reply_to: Air freagairt gu + language: Cànan media: title: Meadhanan + metadata: Meata-dàta no_status_selected: Cha deach post sam bith atharrachadh o nach deach gin dhiubh a thaghadh + open: Fosgail am post + original_status: Am post tùsail + reblogs: Brosnachaidhean + status_changed: Post air atharrachadh title: Postaichean a’ chunntais + trending: A’ treandadh + visibility: Faicsinneachd with_media: Le meadhanan riutha strikes: actions: @@ -825,6 +796,9 @@ gd: description_html: Seo na ceanglaichean a tha ’gan co-roinneadh le iomadh cunntas on a chì am frithealaiche agad na postaichean. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ach am faigh iad a-mach dè tha tachairt air an t-saoghal. Cha dèid ceanglaichean a shealltainn gu poblach gus an aontaich thu ris an fhoillsichear. ’S urrainn dhut ceanglaichean àraidh a cheadachadh no a dhiùltadh cuideachd. disallow: Na ceadaich an ceangal disallow_provider: Na ceadaich am foillsichear + no_link_selected: Cha deach ceangal sam bith atharrachadh o nach deach gin dhiubh a thaghadh + publishers: + no_publisher_selected: Cha deach foillsichear sam bith atharrachadh o nach deach gin dhiubh a thaghadh shared_by_over_week: few: Chaidh a cho-roinneadh le %{count} rè na seachdain seo chaidh one: Chaidh a cho-roinneadh le %{count} rè na seachdain seo chaidh @@ -843,9 +817,10 @@ gd: statuses: allow: Ceadaich am post allow_account: Ceadaich an t-ùghdar - description_html: Seo na postaichean air a bheil am frithealaiche agad eòlach ’s a tha ’gan co-roinneadh is ’nan annsachd gu tric aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ùr no a thill ach an lorg iad daoine airson leantainn orra. Cha dèid postaichean a shealltainn gu poblach gus an gabh thu ris an ùghdar agus gus an aontaich an t-ùghdar gun dèid an cunntas aca a mholadh do dhaoine eile. ’S urrainn dhut postaichean àraidh a cheadachadh no a dhiùltadh cuideachd. + description_html: Seo na postaichean air a bheil am frithealaiche agad eòlach ’s a tha ’gan co-roinneadh is ’nan annsachd gu tric aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ùr no a thill ach an lorg iad daoine airson an leantainn. Cha dèid postaichean a shealltainn gu poblach gus an gabh thu ris an ùghdar agus gus an aontaich an t-ùghdar gun dèid an cunntas aca a mholadh do dhaoine eile. ’S urrainn dhut postaichean àraidh a cheadachadh no a dhiùltadh cuideachd. disallow: Na ceadaich am post disallow_account: Na ceadaich an t-ùghdar + no_status_selected: Cha deach post a’ treandadh sam bith atharrachadh o nach deach gin dhiubh a thaghadh not_discoverable: Cha do chuir an t-ùghdar roimhe gun gabh a rùrachadh shared_by: few: Chaidh a cho-roinneadh no ’na annsachd %{friendly_count} tursan @@ -863,6 +838,7 @@ gd: tag_uses_measure: cleachdaidhean iomlan description_html: Seo na tagaichean hais a nochdas ann an grunn phostaichean a chì am frithealaiche agad aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh agad ach am faigh iad a-mach cò air a tha daoine a’ bruidhinn nas trice aig an àm seo. Cha dèid tagaichean hais a shealltainn gu poblach gus an aontaich thu riutha. listable: Gabhaidh a mholadh + no_tag_selected: Cha deach taga sam bith atharrachadh o nach deach gin dhiubh a thaghadh not_listable: Cha dèid a mholadh not_trendable: Cha nochd e am measg nan treandaichean not_usable: Cha ghabh a chleachdadh @@ -885,6 +861,28 @@ gd: edit_preset: Deasaich rabhadh ro-shuidhichte empty: Cha do mhìnich thu ro-sheataichean rabhaidhean fhathast. title: Stiùirich na rabhaidhean ro-shuidhichte + webhooks: + add_new: Cuir puing-dheiridh ris + delete: Sguab às + description_html: Bheir webhook comas do Mhastodon gus brathan fìor-ama a phutadh dhan aplacaid agad fhèin mu na tachartasan a thagh thu ach an adhbharaich an aplacaid agad freagairtean gu fèin-obrachail. + disable: Cuir à comas + disabled: À comas + edit: Deasaich a’ phuing-dheiridh + empty: Cha deach puing-deiridh webhook sam bith a rèiteachadh fhathast. + enable: Cuir an comas + enabled: Gnìomhach + enabled_events: + few: Tha %{count} tachartasan an comas + one: Tha %{count} tachartas an comas + other: Tha %{count} tachartas an comas + two: Tha %{count} thachartas an comas + events: Tachartasan + new: Webhook ùr + rotate_secret: Cuairtich an rùn + secret: Rùn soidhnich + status: Staid + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -908,12 +906,8 @@ gd: new_trends: body: 'Tha na nithean seo feumach air lèirmheas mus nochd iad gu poblach:' new_trending_links: - no_approved_links: Chan eil ceangal a’ treandadh le aontachadh ann. - requirements: "’S urrainn do ghin dhe na tagraichean seo dol thairis air #%{rank} a tha aig a’ cheangal “%{lowest_link_title}” a’ treandadh as ìsle le aontachadh agus sgòr de %{lowest_link_score} air." title: Ceanglaichean a’ treandadh new_trending_statuses: - no_approved_statuses: Chan eil post a’ treandadh le aontachadh ann. - requirements: "’S urrainn do ghin dhe na tagraichean seo dol thairis air #%{rank} a tha aig a’ phost %{lowest_status_url} a’ treandadh as ìsle le aontachadh agus sgòr de %{lowest_status_score} air." title: Postaichean a’ treandadh new_trending_tags: no_approved_tags: Chan eil taga hais a’ treandadh le aontachadh ann. @@ -929,7 +923,7 @@ gd: remove: Dì-cheangail an t-alias appearance: advanced_web_interface: Eadar-aghaidh-lìn adhartach - advanced_web_interface_hint: 'Ma tha thu airson leud gu lèir na sgrìn agad a chleachdadh, leigidh an eadar-aghaidh-lìn adhartach leat gun rèitich thu mòran cholbhan eadar-dhealaichte ach am faic thu na thogras tu de dh’fhiosrachadh aig an aon àm: Dachaigh, brathan, loidhne-ama cho-naisgte, na thogras tu de liostaichean is tagaichean hais.' + advanced_web_interface_hint: 'Ma tha thu airson leud na sgrìn agad gu lèir a chleachdadh, leigidh an eadar-aghaidh-lìn adhartach leat mòran cholbhan eadar-dhealaichte a cho-rèiteachadh airson uiread de dh''fhiosrachadh ''s a thogras tu fhaicinn aig an aon àm: Dachaigh, brathan, loidhne-ama cho-naisgte, liostaichean is tagaichean hais a rèir do thoil.' animations_and_accessibility: Beòthachaidhean agus so-ruigsinneachd confirmation_dialogs: Còmhraidhean dearbhaidh discovery: Rùrachadh @@ -949,22 +943,19 @@ gd: applications: created: Chaidh an t-iarrtas a chruthachadh destroyed: Chaidh an t-iarrtas a sguabadh às - invalid_url: Tha an t-URL a thugadh seachad mì-dhligheach regenerate_token: Ath-ghin an tòcan inntrigidh token_regenerated: Chaidh an tòcan inntrigidh ath-ghintinn warning: Bi glè chùramach leis an dàta seo. Na co-roinn le duine sam bith e! your_token: An tòcan inntrigidh agad auth: - apply_for_account: Iarr cuireadh + apply_for_account: Faigh air an liosta-fheitheimh change_password: Facal-faire - checkbox_agreement_html: Gabhaidh mi ri riaghailtean an fhrithealaiche ’s teirmichean a’ chleachdaidh - checkbox_agreement_without_rules_html: Gabhaidh mi ri teirmichean a’ chleachdaidh delete_account: Sguab às an cunntas delete_account_html: Nam bu mhiann leat an cunntas agad a sguabadh às, nì thu an-seo e. Thèid dearbhadh iarraidh ort. description: prefix_invited_by_user: Thug @%{name} cuireadh dhut ach am faigh thu ballrachd air an fhrithealaiche seo de Mhastodon! prefix_sign_up: Clàraich le Mastodon an-diugh! - suffix: Le cunntas, ’s urrainn dhut leantainn air daoine, naidheachdan a phostadh agus conaltradh leis an luchd-chleachdaidh air frithealaiche Mastodon sam bith is a bharrachd! + suffix: Le cunntas, ’s urrainn dhut daoine a leantainn, naidheachdan a phostadh agus conaltradh leis an luchd-chleachdaidh air frithealaiche Mastodon sam bith is a bharrachd! didnt_get_confirmation: Nach d’fhuair thu an stiùireadh mun dearbhadh? dont_have_your_security_key: Nach eil iuchair tèarainteachd agad? forgot_password: Na dhìochuimhnich thu am facal-faire agad? @@ -977,6 +968,7 @@ gd: migrate_account: Imrich gu cunntas eile migrate_account_html: Nam bu mhiann leat an cunntas seo ath-stiùireadh gu fear eile, ’s urrainn dhut a rèiteachadh an-seo. or_log_in_with: No clàraich a-steach le + privacy_policy_agreement_html: Leugh mi is tha mi ag aontachadh ris a’ phoileasaidh prìobhaideachd providers: cas: CAS saml: SAML @@ -984,12 +976,18 @@ gd: registration_closed: Cha ghabh %{instance} ri buill ùra resend_confirmation: Cuir an stiùireadh mun dearbhadh a-rithist reset_password: Ath-shuidhich am facal-faire + rules: + preamble: Tha iad ’gan stèidheachadh is a chur an gnìomh leis na maoir aig %{domain}. + title: Riaghailtean bunasach. security: Tèarainteachd set_new_password: Suidhich facal-faire ùr setup: email_below_hint_html: Mur eil am post-d gu h-ìosal mar bu chòir, ’s urrainn dhut atharrachadh an-seo agus gheibh thu post-d dearbhaidh ùr. email_settings_hint_html: Chaidh am post-d dearbhaidh a chur gu %{email}. Mur eil an seòladh puist-d seo mar bu chòir, ’s urrainn dhut atharrachadh ann an roghainnean a’ chunntais. title: Suidheachadh + sign_up: + preamble: Le cunntas air an fhrithealaiche Mastodon seo, ’s urrainn dhut neach sam bith a leantainn air an lìonra, ge b’ e càit a bheil an cunntas aca-san ’ga òstadh. + title: Suidhicheamaid %{domain} dhut. status: account_status: Staid a’ chunntais confirming: A’ feitheamh air coileanadh an dearbhaidh on phost-d. @@ -998,20 +996,19 @@ gd: redirecting_to: Chan eil an cunntas gad gnìomhach on a tha e ’ga ath-stiùireadh gu %{acct}. view_strikes: Seall na rabhaidhean a fhuair an cunntas agad roimhe too_fast: Chaidh am foirm a chur a-null ro luath, feuch ris a-rithist. - trouble_logging_in: A bheil duilgheadas agad leis a’ chlàradh a-steach? use_security_key: Cleachd iuchair tèarainteachd authorize_follow: - already_following: Tha thu a’ leantainn air a’ chunntas seo mu thràth + already_following: Tha thu a’ leantainn a’ chunntais seo mu thràth already_requested: Chuir thu iarrtas leantainn dhan chunntas seo mu thràth error: Gu mì-fhortanach, thachair mearachd le lorg a’ chunntais chèin - follow: Lean air + follow: Lean follow_request: 'Chuir thu iarrtas leantainn gu:' - following: 'Taghta! Chaidh leat a’ leantainn air:' + following: 'Taghta! Chaidh leat a’ leantainn:' post_follow: close: Air neo dùin an uinneag seo. return: Seall pròifil a’ chleachdaiche - web: Tadhail air an lìon - title: Lean air %{acct} + web: Tadhail air an duilleag-lìn + title: Lean %{acct} challenge: confirm: Lean air adhart hint_html: "Gliocas: Chan iarr sinn am facal-faire agad ort a-rithist fad uair a thìde." @@ -1056,10 +1053,6 @@ gd: more_details_html: Airson barrachd fiosrachaidh faic am poileasaidh prìobhaideachd. username_available: Bidh an t-ainm-cleachdaiche agad ri fhaighinn a-rithist username_unavailable: Cha bhi an t-ainm-cleachdaiche agad ri fhaighinn fhathast - directories: - directory: Eòlaire nam pròifil - explanation: Rùraich cleachdaichean stèidhichte air an ùidhean - explore_mastodon: Rùraich %{title} disputes: strikes: action_taken: An gnìomh a ghabhadh @@ -1138,29 +1131,72 @@ gd: public: Loidhnichean-ama poblach thread: Còmhraidhean edit: + add_keyword: Cuir facal-luirg ris + keywords: Faclan-luirg + statuses: Postaichean fa leth + statuses_hint_html: Bidh a’ chriathrag seo an sàs air taghadh de phostaichean fa leth ge b’ e am freagair iad ris na faclan-luirg gu h-ìosal gus nach freagair. Dèan lèirmheas air na postaichean no thoir iad air falbh on chriathrag seo. title: Deasaich a’ chriathrag errors: + deprecated_api_multiple_keywords: Cha ghabh na paramadairean seo atharrachadh on aplacaid seo on a bhios iad an sàs air iomadh facal-luirg na criathraige. Cleachd aplacaid nas ùire no an eadar-aghaidh-lìn. invalid_context: Cha deach co-theacs a sholar no tha e mì-dhligheach - invalid_irreversible: Chan obraich criathradh buan ach ann an co-theacsa na dachaigh no na brathan index: + contexts: Criathradh am broinn %{contexts} delete: Sguab às empty: Chan eil criathrag agad. + expires_in: Falbhaidh an ùine air an ceann %{distance} + expires_on: Falbhaidh an ùine air %{date} + keywords: + few: "%{count} faclan-luirg" + one: "%{count} fhacal-luirg" + other: "%{count} facal-luirg" + two: "%{count} fhacal-luirg" + statuses: + few: "%{count} postaichean" + one: "%{count} phost" + other: "%{count} post" + two: "%{count} phost" + statuses_long: + few: Chaidh %{count} postaichean fa leth fhalach + one: Chaidh %{count} phost fa leth fhalach + other: Chaidh %{count} post fa leth fhalach + two: Chaidh %{count} phost fa leth fhalach title: Criathragan new: + save: Sàbhail a’ chriathrag ùr title: Cuir criathrag ùr ris + statuses: + back_to_filter: Air ais dhan chriathrag + batch: + remove: Thoir air falbh on chriathrag + index: + hint: Bidh a’ chriathrag seo an sàs air postaichean fa leth ge b’ e dè na roghainnean eile. ’S urrainn dhut barrachd phostaichean a chur ris a’ chriathrag seo leis an eadar-aghaidh-lìn. + title: Postaichean criathraichte footer: - developers: Luchd-leasachaidh - more: Barrachd… - resources: Goireasan trending_now: A’ treandadh an-dràsta generic: all: Na h-uile + all_items_on_page_selected_html: + few: Chaidh na %{count} nithean uile a thaghadh air an duilleag seo. + one: Chaidh %{count} nì a thaghadh air an duilleag seo. + other: Chaidh an %{count} nì uile a thaghadh air an duilleag seo. + two: Chaidh an %{count} nì uile a thaghadh air an duilleag seo. + all_matching_items_selected_html: + few: Chaidh %{count} nithean a thaghadh a fhreagras dha na lorg thu. + one: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu. + other: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu. + two: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu. changes_saved_msg: Chaidh na h-atharraichean a shàbhaladh! copy: Dèan lethbhreac delete: Sguab às + deselect: Dì-thagh na h-uile none: Chan eil gin order_by: Seòrsaich a-rèir save_changes: Sàbhail na h-atharraichean + select_all_matching_items: + few: Tagh na %{count} nithean uile a fhreagras dha na lorg thu. + one: Tagh %{count} nì a fhreagras dha na lorg thu. + other: Tagh an %{count} nì uile a fhreagras dha na lorg thu. + two: Tagh an %{count} nì uile a fhreagras dha na lorg thu. today: an-diugh validation_errors: few: Tha rud ann nach eil buileach ceart fhathast! Thoir sùil air na %{count} mhearachdan gu h-ìosal @@ -1177,16 +1213,15 @@ gd: merge_long: Cùm na reacordan a tha ann is cuir feadhainn ùr ris overwrite: Sgrìobh thairis air overwrite_long: Cuir na reacordan ùra an àite na feadhna a tha ann - preface: "’S urrainn dhut dàta ion-phortadh a dh’às-phortaich thu o fhrithealaiche eile, can liosta nan daoine air a leanas tu no a tha thu a’ bacadh." + preface: "’S urrainn dhut dàta ion-phortadh a dh’às-phortaich thu o fhrithealaiche eile, can liosta nan daoine a leanas tu no a tha thu a’ bacadh." success: Chaidh an dàta agad a luchdadh suas is thèid a phròiseasadh a-nis types: blocking: Liosta-bhacaidh bookmarks: Comharran-lìn domain_blocking: Liosta-bhacaidh àrainnean - following: Liosta dhen fheadhainn air a leanas tu + following: Liosta dhen fheadhainn a leanas tu muting: Liosta a’ mhùchaidh upload: Luchdaich suas - in_memoriam_html: Mar chuimhneachan. invites: delete: Cuir à gnìomh expired: Dh’fhalbh an ùine air @@ -1267,36 +1302,25 @@ gd: carry_blocks_over_text: Chaidh an cleachdaiche seo imrich o %{acct} a b’ àbhaist dhut a bhacadh. carry_mutes_over_text: Chaidh an cleachdaiche seo imrich o %{acct} a b’ àbhaist dhut a mhùchadh. copy_account_note_text: 'Da cleachdaiche air gluasad o %{acct}, seo na nòtaichean a bh’ agad mu dhèidhinn roimhe:' + navigation: + toggle_menu: Toglaich an clàr-taice notification_mailer: admin: + report: + subject: Rinn %{name} gearan sign_up: subject: Chlàraich %{name} - digest: - action: Seall a h-uile brath - body: Seo geàrr-chunntas air na h-atharraichean nach fhaca thu on tadhal mu dheireadh agad %{since} - mention: 'Thug %{name} iomradh ort an-seo:' - new_followers_summary: - few: Cuideachd, bhuannaich thu %{count} luchd-leantainn ùr on àm a bha thu air falbh! Nach ma sin! - one: Cuideachd, bhuannaich thu %{count} neach-leantainn ùr on àm a bha thu air falbh! Nach ma sin! - other: Cuideachd, bhuannaich thu %{count} luchd-leantainn ùr on àm a bha thu air falbh! Nach ma sin! - two: Cuideachd, bhuannaich thu %{count} neach-leantainn ùr on àm a bha thu air falbh! Nach ma sin! - subject: - few: "%{count} brathan ùra on tadhal mu dheireadh agad 🐘" - one: "%{count} bhrath ùr on tadhal mu dheireadh agad 🐘" - other: "%{count} brath ùr on tadhal mu dheireadh agad 🐘" - two: "%{count} bhrath ùr on tadhal mu dheireadh agad 🐘" - title: Fhad ’s a bha thu air falbh… favourite: body: 'Is annsa le %{name} am post agad:' subject: Is annsa le %{name} am post agad title: Annsachd ùr follow: - body: Tha %{name} a’ leantainn ort a-nis! - subject: Tha %{name} a’ leantainn ort a-nis + body: Tha %{name} ’gad leantainn a-nis! + subject: Tha %{name} ’gad leantainn a-nis title: Neach-leantainn ùr follow_request: action: Stiùirich na h-iarrtasan leantainn - body: Dh’iarr %{name} leantainn ort + body: Dh’iarr %{name} leantainn subject: 'Neach-leantainn ri dhèiligeadh: %{name}' title: Iarrtas leantainn ùr mention: @@ -1345,7 +1369,7 @@ gd: polls: errors: already_voted: Chuir thu bhòt sa chunntas-bheachd seo mu thràth - duplicate_options: " – tha nithean dùblaichte ann" + duplicate_options: "– tha nithean dùblaichte ann" duration_too_long: "– tha seo ro fhad air falbh san àm ri teachd" duration_too_short: "– tha seo ro aithghearr" expired: Tha an cunntas-bheachd air a thighinn gu crìoch @@ -1357,6 +1381,8 @@ gd: other: Eile posting_defaults: Bun-roghainnean a’ phostaidh public_timelines: Loidhnichean-ama poblach + privacy_policy: + title: Poileasaidh prìobhaideachd reactions: errors: limit_reached: Ràinig thu crìoch nam freagairtean eadar-dhealaichte @@ -1364,7 +1390,7 @@ gd: relationships: activity: Gnìomhachd a’ chunntais dormant: Na thàmh - follow_selected_followers: Lean air an luchd-leantainn a thagh thu + follow_selected_followers: Lean an luchd-leantainn a thagh thu followers: Luchd-leantainn following: A’ leantainn invited: Air cuireadh fhaighinn @@ -1376,25 +1402,10 @@ gd: relationship: Dàimh remove_selected_domains: Thoir air falbh a h-uile neach-leantainn o na h-àrainnean a thagh thu remove_selected_followers: Thoir air falbh a h-uile neach-leantainn a thagh thu - remove_selected_follows: Na lean air na cleachdaichean a thagh thu tuilleadh + remove_selected_follows: Na lean na cleachdaichean a thagh thu tuilleadh status: Staid a’ chunntais remote_follow: - acct: Cuir a-steach ainm-cleachdaiche@àrainn airson a chur ort missing_resource: Cha do lorg sinn URL ath-stiùiridh riatanach a’ chunntais agad - no_account_html: Nach eil cunntas agad? ’S urrainn dhut clàradh leinn an-seo - proceed: Lean air adhart gus leantainn air - prompt: 'Bidh thu a’ leantainn air:' - reason_html: "Carson a tha feum air a’ cheum seo? Dh’fhaoidte nach e %{instance} am frithealaiche far an do rinn thu clàradh agus feumaidh sinn d’ ath-stiùireadh dhan fhrithealaiche dachaigh agad an toiseach." - remote_interaction: - favourite: - proceed: Lean air adhart gus a chur ris na h-annsachdan - prompt: 'Tha thu airson am post seo a chur ris na h-annsachdan:' - reblog: - proceed: Lean air adhart gus a bhrosnachadh - prompt: 'Tha thu airson am post seo a bhrosnachadh:' - reply: - proceed: Lean air adhart gus freagairt - prompt: 'Tha thu airson freagairt dhan phost seo:' reports: errors: invalid_rules: gun iomradh air riaghailtean dligheach @@ -1412,7 +1423,6 @@ gd: browser: Brabhsair browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1426,7 +1436,6 @@ gd: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: An seisean làithreach description: "%{browser} air %{platform}" @@ -1435,8 +1444,6 @@ gd: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1529,7 +1536,7 @@ gd: visibilities: direct: Dìreach private: Luchd-leantainn a-mhàin - private_long: Na seall dhan luchd-leantainn + private_long: Na seall ach dhan luchd-leantainn public: Poblach public_long: Chì a h-uile duine seo unlisted: Falaichte o liostaichean @@ -1578,11 +1585,6 @@ gd: too_late: Tha e ro anmoch airson an rabhadh seo ath-thagradh tags: does_not_match_previous_name: "– chan eil seo a-rèir an ainm roimhe" - terms: - body_html: '

      Poileasaidh prìobhaideachd

      Dè am fiosrachadh a chruinnicheas sinn?

      • Fiosrachadh bunasach a’ cunntais: Ma chlàraicheas tu leis an fhrithealaiche seo, dh’fhaoidte gun dèid iarraidh ort gun cuir thu a-steach ainm-cleachdaiche, seòladh puist-d agus facal-faire. Faodaidh tu barrachd fiosrachaidh a chur ris a’ phròifil agad ma thogras tu, can ainm-taisbeanaidh agus teacsa mu do dhèidhinn agus dealbhan pròifile ’s banna-chinn a luchdadh suas. Thèid an t-ainm-cleachdaiche, an t-ainm-taisbeanaidh, an teacsa mu do dhèidhinn agus dealbhan na pròifile ’s a bhanna-chinn a shealltainn gu poblach an-còmhnaidh.
      • Postaichean, luchd-leantainn agus fiosrachadh poblach eile: Tha liosta nan daoine air a leanas tu poblach mar a tha i dhan luchd-leantainn agad. Nuair a chuireas tu a-null teachdaireachd, thèid an t-àm ’s an ceann-latha a stòradh cho math ris an aplacaid leis an do chuir thu am foirm a-null. Faodaidh ceanglachain meadhain a bhith am broinn teachdaireachdan, can dealbhan no videothan. Tha postaichean poblach agus postaichean falaichte o liostaichean ri ’m faighinn gu poblach. Nuair a bhrosnaicheas tu post air a’ phròifil agad, ’s e fiosrachadh poblach a tha sin cuideachd. Thèid na postaichean agad a lìbhrigeadh dhan luchd-leantainn agad agus is ciall dha seo gun dèid an lìbhrigeadh gu frithealaichean eile aig amannan is gun dèid lethbhreacan dhiubh a stòradh thall. Nuair a sguabas tu às post, thèid sin a lìbhrigeadh dhan luchd-leantainn agad cuideachd. Tha ath-bhlogachadh no dèanamh annsachd de phost eile poblach an-còmhnaidh.
      • Postaichean dìreach is dhan luchd-leantainn a-mhàin: Thèid a h-uile post a stòradh ’s a phròiseasadh air an fhrithealaiche. Thèid na postaichean dhan luchd-leantainn a-mhàin a lìbhrigeadh dhan luchd-leantainn agad agus dhan luchd-chleachdaidh a chaidh iomradh a dhèanamh orra sa phost. Thèid postaichean dìreach a lìbhrigeadh dhan luchd-chleachdaidh a chaidh iomradh a dhèanamh orra sa phost a-mhàin. Is ciall dha seo gun dèid an lìbhrigeadh gu frithealaichean eile aig amannan is gun dèid lethbhreacan dhiubh a stòradh thall. Nì sinn ar dìcheall gun cuingich sinn an t-inntrigeadh dha na postaichean air na daoine a fhuair ùghdarrachadh dhaibh ach dh’fhaoidte nach dèan frithealaichean eile seo. Mar sin dheth, tha e cudromach gun doir thu sùil air na frithealaichean dhan a bhuineas an luchd-leantainn agad. Faodaidh tu roghainn a chur air no dheth a leigeas leat aontachadh ri luchd-leantainn ùra no an diùltadh a làimh. Thoir an aire gum faic rianairean an fhrithealaiche agus frithealaiche sam bith a gheibh am fiosrachadh na teachdaireachdan dhen leithid agus gur urrainn dha na faightearan glacaidhean-sgrìn no lethbhreacan dhiubh a dhèanamh no an cho-roinneadh air dòighean eile. Na co-roinn fiosrachadh cunnartach air Mastodon idir.
      • IPan is meata-dàta eile: Nuair a nì thu clàradh a-steach, clàraidh sinn an seòladh IP on a rinn thu clàradh a-steach cuide ri ainm aplacaid a’ bhrabhsair agad. Bidh a h-uile seisean clàraidh a-steach ri làimh dhut airson an lèirmheas agus an cùl-ghairm sna roghainnean. Thèid an seòladh IP as ùire a chleachd thu a stòradh suas ri 12 mhìos. Faodaidh sinn cuideachd logaichean an fhrithealaiche a chumail a ghabhas a-steach seòladh IP aig a h-uile iarrtas dhan fhrithealaiche againn.

      Dè na h-adhbharan air an cleachd sinn am fiosrachadh agad?

      Seo na dòighean air an cleachd sinn fiosrachadh sam bith a chruinnich sinn uat ma dh’fhaoidte:

      • Airson bun-ghleusan Mhastodon a lìbhrigeadh. Chan urrainn dhut eadar-ghnìomh a ghabhail le susbaint càich no an t-susbaint agad fhèin a phostadh ach nuair a bhios tu air do chlàradh a-steach. Mar eisimpleir, faodaidh tu leantainn air càch ach am faic thu na postaichean aca còmhla air loidhne-ama pearsanaichte na dachaigh agad.
      • Airson cuideachadh le maorsainneachd na coimhearsnachd, can airson coimeas a dhèanamh eadar an seòladh IP agad ri feadhainn eile feuch am mothaich sinn do sheachnadh toirmisg no briseadh eile nan riaghailtean.
      • Faodaidh sinn an seòladh puist-d agad a chleachdadh airson fiosrachadh no brathan mu eadar-ghnìomhan a ghabh càch leis an t-susbaint agad no teachdaireachdan a chur thugad, airson freagairt ri ceasnachaidhean agus/no iarrtasan no ceistean eile.

      Ciamar a dhìonas sinn am fiosrachadh agad?

      Cuiridh sinn iomadh gleus tèarainteachd an sàs ach an glèidheadh sinn sàbhailteachd an fhiosrachaidh phearsanta agad nuair a chuireas tu gin a-steach, nuair a chuireas tu a-null e no nuair a nì thu inntrigeadh air. Am measg gleusan eile, thèid seisean a’ bhrabhsair agad cuide ris an trafaig eadar na h-aplacaidean agad ’s an API a dhìon le SSL agus thèid hais a dhèanamh dhen fhacal-fhaire agad le algairim aon-shligheach làidir. Faodaidh tu dearbhadh dà-cheumnach a chur an comas airson barrachd tèarainteachd a chur ris an inntrigeadh dhan chunntas agad.


      Dè am poileasaidh cumail dàta againn?

      Nì sinn ar dìcheall:

      • Nach cùm sinn logaidhean an fhrithealaiche sa bheil seòlaidhean IP nan iarrtasan uile dhan fhrithealaiche seo nas fhaide na 90 latha ma chumas sinn logaichean dhen leithid idir.
      • Nach cùm sinn na seòlaidhean IP a tha co-cheangailte ri cleachdaichean clàraichte nas fhaide na 12 mhìos.

      ’S urrainn dhut tasg-lann iarraidh dhen t-susbaint agad ’s a luchdadh a-nuas is gabhaidh seo a-staigh na postaichean, na ceanglachain meadhain, dealbh na pròifil agus dealbh a’ bhanna-chinn agad.

      ’S urrainn dhut an cunntas agad a sguabadh às gu buan uair sam bith.


      An cleachd sinn briosgaidhean?

      Cleachdaidh. ’S e faidhlichean beaga a tha sna briosgaidean a thar-chuireas làrach no solaraiche seirbheise gu clàr-cruaidh a’ choimpiutair agad leis a’ bhrabhsair-lìn agad (ma cheadaicheas tu sin). Bheir na briosgaidean sin comas dhan làrach gun aithnich i am brabhsair agad agus ma tha cunntas clàraichte agad, gun co-cheangail i ris a’ chunntas chlàraichte agad e.

      Cleachdaidh sinn briosgaidean airson na roghainnean agad a thuigsinn ’s a ghlèidheadh gus an tadhail thu oirnn san àm ri teachd.


      Am foillsich sinn fiosrachadh sam bith gu pàrtaidhean air an taobh a-muigh?

      Cha reic, malairt no tar-chuir sinn fiosrachadh air a dh’aithnichear thu fhèin gu pàrtaidh sam bith air an taobh a-muigh. Cha ghabh seo a-staigh treas-phàrtaidhean earbsach a chuidicheas leinn le ruith na làraich againn, le obrachadh a’ ghnìomhachais againn no gus an t-seirbheis a thoirt leat cho fada ’s a dh’aontaicheas na treas-phàrtaidhean sin gun cùm iad am fiosrachadh dìomhair. Faodaidh sinn am fiosrachadh agad fhoillseachadh cuideachd nuair a bhios sinn dhen bheachd gu bheil am foillseachadh sin iomchaidh airson gèilleadh dhan lagh, poileasaidhean na làraich againn èigneachadh no na còraichean, an sealbh no an t-sàbhailteachd againn fhèin no aig càch a dhìon.

      Dh’fhaoidte gun dèid an t-susbaint phoblach agad a luchdadh a-nuas le frithealaichean eile san lìonra. Thèid na postaichean poblach agad ’s an fheadhainn dhan luchd-leantainn a-mhàin a lìbhrigeadh dha na frithealaichean far a bheil an luchd-leantainn agad a’ còmhnaidh agus thèid na teachdaireachdan dìreach a lìbhrigeadh gu frithealaichean nam faightearan nuair a bhios iad a’ còmhnaidh air frithealaiche eile.

      Nuair a dh’ùghdarraicheas tu aplacaid gun cleachd i an cunntas agad, a-rèir sgòp nan ceadan a dh’aontaicheas tu riutha, faodaidh i fiosrachadh poblach na pròifil agad, liosta na feadhna air a bhios tu a’ leantainn, an luchd-leantainn agad, na liostaichean agad, na postaichean agad uile ’s na h-annsachdan agad inntrigeadh. Chan urrainn do dh’aplacaidean an seòladh puist-d no am facal-faire agad inntrigeadh idir.


      Cleachdadh na làraich leis a’ chloinn

      Ma tha am frithealaiche seo san Aonadh Eòrpach (AE) no san Roinn Eaconomach na h-Eòrpa (EEA): Tha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 16 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon GDPR (General Data Protection Regulation) nach cleachd thu an làrach seo.

      Ma tha am frithealaiche seo sna Stàitean Aonaichte (SAA): Tha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 13 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon COPPA (Children''s Online Privacy Protection Act)ha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 16 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon GDPR (General Data Protection Regulation) nach cleachd thu an làrach seo.

      Ma tha am frithealaiche seo sna Stàitean Aonaichte (SAA): Tha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 13 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon COPPA (Children''s Online Privacy Protection Act) nach cleachd thu an làrach seo.

      Dh’fhaoidte gu bheil am frithealaiche seo fo riatanasan lagha eile ma tha e ann an uachdranas laghail eile.


      Atharraichean air a’ phoileasaidh phrìobhaideachd againn

      Ma chuireas sinn romhainn am poileasaidh prìobhaideachd againn atharrachadh, postaichidh sinn na h-atharraichean dhan duilleag seo.

      Tha an sgrìobhainn seo fo cheadachas CC-BY-SA. Chaidh ùrachadh an turas mu dheireadh an t-7mh dhen Mhart 2018.

      Chaidh a fhreagarrachadh o thùs o phoileasaidh prìobhaideachd Discourse.

      - - ' - title: Teirmichean na seirbheise ⁊ poileasaidh prìobhaideachd %{instance} themes: contrast: Mastodon (iomsgaradh àrd) default: Mastodon (dorcha) @@ -1639,7 +1641,7 @@ gd: disable: Chan urrainn dhut an cunntas agad a chleachdadh tuilleadh ach mairidh a’ phròifil ’s an dàta eile agad. Faodaidh tu lethbhreac-glèidhidh dhen dàta agad iarraidh, roghainnean a’ chunntais atharrachadh no an cunntas agad a sguabadh às. mark_statuses_as_sensitive: Chuir maoir %{instance} comharra na frionasachd ri cuid dhe na postaichean agad. Is ciall dha seo gum feumar gnogag a thoirt air na meadhanan sna postaichean mus faicear ro-shealladh. ’S urrainn dhut fhèin comharra a chur gu bheil meadhan frionasach nuair a sgrìobhas tu post san à ri teachd. sensitive: O seo a-mach, thèid comharra na frionasachd a chur ri faidhle meadhain sam bith a luchdaicheas tu suas agus thèid am falach air cùlaibh rabhaidh a ghabhas briogadh air. - silence: "’S urrainn dhut an cunntas agad a chleachdadh fhathast ach chan fhaic ach na daoine a tha a’ leantainn ort mu thràth na postaichean agad air an fhrithealaiche seo agus dh’fhaoidte gun dèid d’ às-dhùnadh o iomadh gleus rùrachaidh. Gidheadh, faodaidh càch leantainn ort a làimh fhathast." + silence: "’S urrainn dhut an cunntas agad a chleachdadh fhathast ach chan fhaic ach na daoine a tha ’gad leantainn mu thràth na postaichean agad air an fhrithealaiche seo agus dh’fhaoidte gun dèid d’ às-dhùnadh o iomadh gleus rùrachaidh. Gidheadh, faodaidh càch ’gad leantainn a làimh fhathast." suspend: Chan urrainn dhut an cunntas agad a chleachdadh tuilleadh agus chan fhaigh thu grèim air a’ phròifil no air an dàta eile agad. ’S urrainn dhut clàradh a-steach fhathast airson lethbhreac-glèidhidh dhen dàta agad iarraidh mur dèid an dàta a thoirt air falbh an ceann 30 latha gu slàn ach cumaidh sinn cuid dhen dàta bhunasach ach nach seachain thu an cur à rèim. reason: 'Adhbhar:' statuses: 'Iomradh air postaichean:' @@ -1661,23 +1663,16 @@ gd: suspend: Cunntas à rèim welcome: edit_profile_action: Suidhich a’ phròifil agad - edit_profile_step: "’S urrainn dhut a’ phròifil agad a ghnàthachadh is tu a’ luchdadh suas avatar no bann-cinn, ag atharrachadh d’ ainm-taisbeanaidh is a bharrachd. Nam bu mhiann leat lèirmheas a dhèanamh air daoine mus fhaod iad leantainn ort, ’s urrainn dhut an cunntas agad a ghlasadh." + edit_profile_step: "’S urrainn dhut a’ phròifil agad a ghnàthachadh is tu a’ luchdadh suas dealbh pròifil, ag atharrachadh d’ ainm-taisbeanaidh is a bharrachd. ’S urrainn dhut lèirmheas a dhèanamh air daoine mus fhaod iad ’gad leantainn ma thogras tu." explanation: Seo gliocas no dhà gus tòiseachadh final_action: Tòisich air postadh - final_step: 'Tòisich air postadh! Fiù ’s mur eil duine sam bith a’ leantainn ort, chì cuid mhath na postaichean poblach agad, can air an loidhne-ama ionadail agus le tagaichean hais. Saoil an innis thu beagan mu d’ dhèidhinn air an taga hais #introductions?' + final_step: 'Tòisich air postadh! Fiù ’s mur eil duine sam bith ’gad leantainn, chì cuid mhath na postaichean poblach agad, can air an loidhne-ama ionadail no le tagaichean hais. Saoil an innis thu beagan mu d’ dhèidhinn air an taga hais #fàilte?' full_handle: D’ ainm-cleachdaiche slàn - full_handle_hint: Seo na bheir thu dha na caraidean agad ach an urrainn dhaibh teachdaireachd a chur thugad no leantainn ort o fhrithealaiche eile. - review_preferences_action: Atharraich na roghainnean - review_preferences_step: Dèan cinnteach gun suidhich thu na roghainnean agad, can dè na puist-d a bu mhiann leat fhaighinn no dè a’ bun-roghainn air ìre na prìobhaideachd a bu chòir a bhith aig na postaichean agad. Mura cuir gluasad an òrrais ort, b’ urrainn dhut cluich fèin-obrachail nan GIFs a chur an comas. + full_handle_hint: Seo na bheir thu dha na caraidean agad ach an urrainn dhaibh teachdaireachd a chur thugad no ’gad leantainn o fhrithealaiche eile. subject: Fàilte gu Mastodon - tip_federated_timeline: "’S e sealladh farsaing dhen lìonra Mastodon a tha san loidhne-ama cho-naisgte. Gidheadh, cha ghabh i a-staigh ach na daoine air an do rinn do nàbaidhean fo-sgrìobhadh, mar sin chan eil i coileanta." - tip_following: Leanaidh tu air rianaire(an) an fhrithealaiche agad a ghnàth. Airson daoine nas inntinniche a lorg, thoir sùil air na loidhnichean-ama ionadail is co-naisgte. - tip_local_timeline: "’S e sealladh farsaing air na daoine a th’ air %{instance} a tha san loidhne-ama ionadail agad. Seo na nàbaidhean a tha faisg ort!" - tip_mobile_webapp: Ma leigeas am brabhsair mobile agad leat Mastodon a chur ris an sgrìn-dhachaigh, ’s urrainn dhut brathan putaidh fhaighinn. Bidh e ’ga ghiùlan fhèin coltach ri aplacaid thùsail air iomadh dòigh! - tips: Gliocasan title: Fàilte air bòrd, %{name}! users: - follow_limit_reached: Chan urrainn dhut leantainn air còrr is %{limit} daoine + follow_limit_reached: Chan urrainn dhut còrr is %{limit} daoine a leantainn invalid_otp_token: Còd dà-cheumnach mì-dhligheach otp_lost_help_html: Ma chaill thu an t-inntrigeadh dhan dà chuid diubh, ’s urrainn dhut fios a chur gu %{email} seamless_external_login: Rinn thu clàradh a-steach le seirbheis on taobh a-muigh, mar sin chan eil roghainnean an fhacail-fhaire ’s a’ phuist-d ri làimh dhut. diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 93634adcd37861..cb15fc513709a9 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1,94 +1,27 @@ --- gl: about: - about_hashtag_html: Estas son publicacións públicas etiquetadas con #%{hashtag}. Podes interactuar con elas se tes unha conta nalgures do fediverso. about_mastodon_html: 'A rede social do futuro: Sen publicidade, sen seguimento por empresas, deseño ético e descentralización! En Mastodon ti posúes os teus datos!' - about_this: Acerca de - active_count_after: activas - active_footnote: Usuarias Activas no Mes (UAM) - administered_by: 'Administrada por:' - api: API - apps: Aplicacións móbiles - apps_platforms: Emprega Mastodon dende iOS, Android e outras plataformas - browse_directory: Mira o directorio e filtra por intereses - browse_local_posts: Navega polas publicacións públicas deste servidor en tempo real - browse_public_posts: Navega polas publicacións públicas de Mastodon en tempo real - contact: Contacto contact_missing: Non establecido contact_unavailable: Non dispoñíbel - continue_to_web: Continuar na app web - discover_users: Descubrir usuarias - documentation: Documentación - federation_hint_html: Cunha conta en %{instance} poderás seguir ás persoas en calquera servidor do Mastodon e alén. - get_apps: Probar unha aplicación móbil hosted_on: Mastodon aloxado en %{domain} - instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías utilizar o bloqueo do dominio. - - ' - learn_more: Saber máis - logged_in_as_html: Entraches como %{username}. - logout_before_registering: Xa iniciaches sesión. - privacy_policy: Política de privacidade - rules: Regras do servidor - rules_html: 'Aquí tes un resumo das regras que debes seguir se queres ter unha conta neste servidor de Mastodon:' - see_whats_happening: Ver o que está a acontecer - server_stats: 'Estatísticas do servidor:' - source_code: Código fonte - status_count_after: - one: publicación - other: publicacións - status_count_before: Que publicaron - tagline: Segue ás túas amizades e coñece novas - terms: Termos do servizo - unavailable_content: Contido non dispoñíbel - unavailable_content_description: - domain: Servidor - reason: Razón - rejecting_media: 'Os ficheiros multimedia deste servidor non serán procesados e non se amosarán miniaturas, o que require un clic manual no ficheiro orixinal:' - rejecting_media_title: Multimedia filtrado - silenced: 'As publicacións destes servidores non se amosarán en conversas e cronoloxías públicas, nin terás notificacións xeradas polas interaccións das usuarias, a menos que as estés a seguir:' - silenced_title: Servidores acalados - suspended: 'Non se procesarán, almacenarán nin intercambiarán datos destes servidores, o que fai imposíbel calquera interacción ou comunicación coas usuarias dende estes servidores:' - suspended_title: Servidores suspendidos - unavailable_content_html: O Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular. - user_count_after: - one: usuaria - other: usuarias - user_count_before: Fogar de - what_is_mastodon: Qué é Mastodon? + title: Acerca de accounts: - choices_html: 'Escollas de %{name}:' - endorsements_hint: Podes suxerir a persoas que segues dende a interface web, e amosaranse aquí. - featured_tags_hint: Podes destacar determinados cancelos que se amosarán aquí. follow: Seguir followers: one: Seguidora other: Seguidoras - following: Seguindo + following: A Seguir instance_actor_flash: Esta conta é un actor virtual utilizado para representar ó servidor mesmo e non a unha usuaria individual. Utilízase por motivos de federación e non debería estar suspendida. - joined: Uniuse en %{date} last_active: última actividade link_verified_on: A propiedade desta ligazón foi verificada en %{date} - media: Multimedia - moved_html: "%{name} mudouse a %{new_profile_link}:" - network_hidden: Esta información non está dispoñíbel nothing_here: Non hai nada aquí! - people_followed_by: Persoas que segue %{name} - people_who_follow: Persoas que seguen a %{name} pin_errors: following: Tes que seguir á persoa que queres engadir posts: one: Publicación other: Publicacións posts_tab_heading: Publicacións - posts_with_replies: Publicacións e respostas - roles: - admin: Administradora - bot: Bot - group: Grupo - moderator: Moderadora - unavailable: Perfil non dispoñíbel - unfollow: Deixar de seguir admin: account_actions: action: Executar acción @@ -105,12 +38,17 @@ gl: avatar: Imaxe de perfil by_domain: Dominio change_email: - changed_msg: Email da conta mudado de xeito correcto! + changed_msg: Email mudado de xeito correcto! current_email: Email actual label: Mudar email new_email: Novo email submit: Mudar email title: Mudar email de %{username} + change_role: + changed_msg: Rol mudado correctamente! + label: Cambiar rol + no_role: Sen rol + title: Cambiar o rol de %{username} confirm: Confirmar confirmed: Confirmado confirming: Estase a confirmar @@ -133,7 +71,7 @@ gl: enabled: Activado enabled_msg: Desbloqueada a conta de %{username} followers: Seguidoras - follows: Seguindo + follows: Segue header: Cabeceira inbox_url: URL da caixa de entrada invite_request_text: Razóns para unirte @@ -154,6 +92,7 @@ gl: active: Activa all: Todo pending: Pendente + silenced: Limitada suspended: Suspendidos title: Moderación moderation_notes: Notas de moderación @@ -161,6 +100,7 @@ gl: most_recent_ip: IP máis recente no_account_selected: Ningunha conta mudou porque ningunha foi seleccionada no_limits_imposed: Sen límites impostos + no_role_assigned: Sen rol asignado not_subscribed: Non subscrita pending: Revisión pendente perform_full_suspension: Suspender @@ -187,12 +127,7 @@ gl: reset: Restabelecer reset_password: Restabelecer contrasinal resubscribe: Resubscribir - role: Permisos - roles: - admin: Administrador - moderator: Moderador - staff: Persoal (staff) - user: Usuaria + role: Rol search: Procurar search_same_email_domain: Outras usuarias co mesmo dominio de email search_same_ip: Outras usuarias co mesmo IP @@ -235,17 +170,21 @@ gl: approve_user: Aprobar Usuaria assigned_to_self_report: Asignar denuncia change_email_user: Editar email da usuaria + change_role_user: Cambiar Rol da Usuaria confirm_user: Confirmar usuaria create_account_warning: Crear aviso create_announcement: Crear anuncio + create_canonical_email_block: Crear Bloqueo de email create_custom_emoji: Crear emoticonas personalizadas create_domain_allow: Crear Dominio Permitido create_domain_block: Crear bloquedo do Dominio create_email_domain_block: Crear bloqueo de dominio de correo electrónico create_ip_block: Crear regra IP create_unavailable_domain: Crear dominio Non dispoñible + create_user_role: Crear Rol demote_user: Degradar usuaria destroy_announcement: Eliminar anuncio + destroy_canonical_email_block: Eliminar Bloqueo de email destroy_custom_emoji: Eliminar emoticona personalizada destroy_domain_allow: Eliminar Dominio permitido destroy_domain_block: Eliminar bloqueo do Dominio @@ -254,6 +193,7 @@ gl: destroy_ip_block: Eliminar regra IP destroy_status: Eliminar publicación destroy_unavailable_domain: Eliminar dominio Non dispoñible + destroy_user_role: Eliminar Rol disable_2fa_user: Desactivar 2FA disable_custom_emoji: Desactivar emoticona personalizada disable_sign_in_token_auth_user: Desactivar Autenticación por token no email para Usuaria @@ -267,6 +207,7 @@ gl: reject_user: Rexeitar Usuaria remove_avatar_user: Eliminar avatar reopen_report: Reabrir denuncia + resend_user: Reenviar o email de confirmación reset_password_user: Restabelecer contrasinal resolve_report: Resolver denuncia sensitive_account: Marca o multimedia da túa conta como sensible @@ -280,24 +221,30 @@ gl: update_announcement: Actualizar anuncio update_custom_emoji: Actualizar emoticona personalizada update_domain_block: Actualizar bloqueo do dominio + update_ip_block: Actualizar regra IP update_status: Actualizar publicación + update_user_role: Actualizar Rol actions: approve_appeal_html: "%{name} aprobou a apelación da decisión da moderación de %{target}" approve_user_html: "%{name} aprobou o rexistro de %{target}" assigned_to_self_report_html: "%{name} asignou a denuncia %{target} para si mesma" change_email_user_html: "%{name} cambiou o enderezo de email da usuaria %{target}" + change_role_user_html: "%{name} cambiou o rol de %{target}" confirm_user_html: "%{name} confirmou o enderezo de email da usuaria %{target}" create_account_warning_html: "%{name} envioulle unha advertencia a %{target}" create_announcement_html: "%{name} creou un novo anuncio %{target}" + create_canonical_email_block_html: "%{name} bloqueou o email con hash %{target}" create_custom_emoji_html: "%{name} subiu un novo emoji %{target}" create_domain_allow_html: "%{name} permitiu a federación co dominio %{target}" create_domain_block_html: "%{name} bloqueou o dominio %{target}" create_email_domain_block_html: "%{name} bloqueou o dominio de email %{target}" create_ip_block_html: "%{name} creou regra para o IP %{target}" create_unavailable_domain_html: "%{name} deixou de interactuar co dominio %{target}" + create_user_role_html: "%{name} creou o rol %{target}" demote_user_html: "%{name} degradou a usuaria %{target}" destroy_announcement_html: "%{name} eliminou o anuncio %{target}" - destroy_custom_emoji_html: "%{name} destruíu o emoji %{target}" + destroy_canonical_email_block_html: "%{name} desbloqueou o email con hash %{target}" + destroy_custom_emoji_html: "%{name} eliminou o emoji %{target}" destroy_domain_allow_html: "%{name} retirou a federación co dominio %{target}" destroy_domain_block_html: "%{name} desbloqueou o dominio %{target}" destroy_email_domain_block_html: "%{name} desbloqueou o dominio de email %{target}" @@ -305,6 +252,7 @@ gl: destroy_ip_block_html: "%{name} eliminou a regra para o IP %{target}" destroy_status_html: "%{name} eliminou a publicación de %{target}" destroy_unavailable_domain_html: "%{name} retomou a interacción co dominio %{target}" + destroy_user_role_html: "%{name} eliminou o rol %{target}" disable_2fa_user_html: "%{name} desactivou o requerimento do segundo factor para a usuaria %{target}" disable_custom_emoji_html: "%{name} desactivou o emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} desactivou a autenticación por token no email para %{target}" @@ -318,6 +266,7 @@ gl: reject_user_html: "%{name} rexeitou o rexistro de %{target}" remove_avatar_user_html: "%{name} eliminou o avatar de %{target}" reopen_report_html: "%{name} reabriu a denuncia %{target}" + resend_user_html: "%{name} reenviou o email de confirmación para %{target}" reset_password_user_html: "%{name} restableceu o contrasinal da usuaria %{target}" resolve_report_html: "%{name} resolveu a denuncia %{target}" sensitive_account_html: "%{name} marcou o multimedia de %{target} como sensible" @@ -331,8 +280,10 @@ gl: update_announcement_html: "%{name} actualizou o anuncio %{target}" update_custom_emoji_html: "%{name} actualizou o emoji %{target}" update_domain_block_html: "%{name} actualizou o bloqueo do dominio para %{target}" + update_ip_block_html: "%{name} cambiou a regra para IP %{target}" update_status_html: "%{name} actualizou a publicación de %{target}" - deleted_status: "(publicación eliminada)" + update_user_role_html: "%{name} cambiou o rol %{target}" + deleted_account: conta eliminada empty: Non se atoparon rexistros. filter_by_action: Filtrar por acción filter_by_user: Filtrar por usuaria @@ -376,6 +327,7 @@ gl: listed: Listado new: title: Engadir nova emoticona personalizado + no_emoji_selected: Non se cambiou ningún emoji xa que ningún foi seleccionado not_permitted: Non podes realizar esta acción overwrite: Sobrescribir shortcode: Código curto @@ -428,6 +380,7 @@ gl: destroyed_msg: Desfíxose o bloqueo de dominio domain: Dominio edit: Editar bloqueo de dominio + existing_domain_block: Xa tes establecidas restricións maiores para %{name}. existing_domain_block_html: Xa impuxeches límites máis estrictos a %{name}, precisas desbloquealo primeiro. new: create: Crear bloqueo @@ -600,7 +553,7 @@ gl: delete_description_html: As publicacións denunciadas van ser eliminadas e gárdase un aviso para axudarche a xestionar futuras infraccións desta conta. mark_as_sensitive_description_html: Os multimedia das publicacións denunciadas serán marcados como sensibles e engadirase un aviso para axudarche a xestionar futuras infraccións da mesma conta. other_description_html: Mira máis opcións para controlar o comportamento da conta e personalizar as comunicacións coa conta denunciada. - resolve_description_html: Non se van tomar accións contra a conta denunciada, nin se gardan avisos, e a denuncia arquivada. + resolve_description_html: Non se van tomar accións contra a conta denunciada, nin se gardarán avisos, e pecharase a denuncia. silence_description_html: O perfil será visible só para quen xa o está a seguir ou quen o buscou manualmente, limitando moito o seu alcance. Pódese cambiar. suspend_description_html: O perfil e tódolos seus contidos será inaccesbles e finalmente eliminados. A interacción coa conta non será posible. Reversible durante 30 días. actions_description_html: Decide que acción tomar respecto desta denuncia. Se tomas accións punitivas contra a conta denunciada, enviaráselles un email coa notificación, excepto se está seleccionada a categoría Spam. @@ -630,7 +583,7 @@ gl: placeholder: Describir que accións foron tomadas ou calquera outra novidade sobre esta denuncia... title: Notas notes_description_html: Ver e deixar unha nota para ti no futuro e outras moderadoras - quick_actions_description_html: 'Tomar unha acción rápida ou desprázate abaixo para ver o contido denunciado:' + quick_actions_description_html: 'Toma unha acción rápida ou desprázate abaixo para ver o contido denunciado:' remote_user_placeholder: a usuaria remota desde %{instance} reopen: Reabrir denuncia report: 'Denuncia #%{id}' @@ -648,6 +601,65 @@ gl: unresolved: Non resolto updated_at: Actualizado view_profile: Ver perfil + roles: + add_new: Engadir rol + assigned_users: + one: "%{count} usuaria" + other: "%{count} usuarias" + categories: + administration: Administración + invites: Convites + moderation: Moderación + special: Especial + delete: Eliminar + description_html: Cos roles das usuarias podes personalizar as funcións e áreas de Mastodon ás que as usuarias poden acceder. + edit: Editar rol '%{name}' + everyone: Permisos por defecto + everyone_full_description_html: Este é o rol básico que afecta a tódalas usuarias, incluso aquelas sen un rol asignado. Tódolos outros roles herdan os seus permisos. + permissions_count: + one: "%{count} permiso" + other: "%{count} permisos" + privileges: + administrator: Administradora + administrator_description: As usuarias con este permiso poderán superar calquera restrición + delete_user_data: Eliminar datos de usuarias + delete_user_data_description: Permite eliminar datos doutras usuarias sen demoras + invite_users: Convidar usuarias + invite_users_description: Permite que outras usuarias conviden a xente ao servidor + manage_announcements: Xestionar anuncios + manage_announcements_description: Permite que xestionen os anuncios publicados no servidor + manage_appeals: Xestionar recursos + manage_appeals_description: Permite revisar as apelacións contra as accións de moderación + manage_blocks: Xestionar bloqueos + manage_blocks_description: Permite bloquear provedores de email e enderezos IP + manage_custom_emojis: Xestionar Emojis personalizados + manage_custom_emojis_description: Permite xestionar os emojis personalizados do servidor + manage_federation: Xestionar a federación + manage_federation_description: Permite bloquear ou permitir a federación con outros dominios, e controlar as entregas + manage_invites: Xestionar Convites + manage_invites_description: Permite ver e desactivar ligazóns de convite + manage_reports: Xestionar Denuncias + manage_reports_description: Permite revisar as denuncias e realizar accións de moderación sobre elas + manage_roles: Xestionar Roles + manage_roles_description: Permite xestionar e asignar roles a niveis inferiores + manage_rules: Xestionar Regras + manage_rules_description: Permite cambiar as regras do servidor + manage_settings: Xestionar Axustes + manage_settings_description: Permite cambiar os axustes do sitio web + manage_taxonomies: Xestionar Taxonomías + manage_taxonomies_description: Permite revisar o contido en voga e actualizar os axustes dos cancelos + manage_user_access: Xestionar Acceso das usuarias + manage_user_access_description: Permite desactivar o segundo factor de autenticación doutras usuarias, cambiar o enderezo de email e restablecer o contrasinal + manage_users: Xestionar Usuarias + manage_users_description: Permite ver os detalles doutras usuarias e realizar accións de moderación sobre elas + manage_webhooks: Xestionar Webhooks + manage_webhooks_description: Permite establecer webhooks para eventos administrativos + view_audit_log: Ver Rexistro de auditoría + view_audit_log_description: Permite ver o historial de accións administrativas no servidor + view_dashboard: Ver Taboleiro + view_dashboard_description: Permite acceder ao taboleiro e varias métricas do servidor + view_devops_description: Permite acceder aos taboleiros Sidekiq e phHero + title: Roles rules: add_new: Engadir regra delete: Eliminar @@ -656,108 +668,67 @@ gl: empty: Aínda non se definiron as regras do servidor. title: Regras do servidor settings: - activity_api_enabled: - desc_html: Conta de estados publicados de xeito local, usuarias activas, e novos rexistros en períodos semanais - title: Publicar na API estatísticas acumuladas sobre a actividade da usuaria - bootstrap_timeline_accounts: - desc_html: Separar os múltiples nomes de usuaria con vírgulas. Estas contas teñen garantido aparecer nas recomendacións de seguimento - title: Recoméndalle estas contas ás novas usuarias - contact_information: - email: Email de negocios - username: Nome de usuaria de contacto - custom_css: - desc_html: Modificar a aparencia con CSS cargado en cada páxina - title: CSS personalizado - default_noindex: - desc_html: Aféctalle a todas as usuarias que non cambiaron os axustes elas mesmas - title: Por omisión exclúe as usuarias do indexado por servidores de busca + about: + manage_rules: Xestionar regras do servidor + preamble: Proporciona información detallada acerca do xeito en que se xestiona, modera e financia o servidor. + rules_hint: Hai un espazo dedicado para as normas que é de agardar que as túas usuarias cumpran. + title: Acerca de + appearance: + preamble: Personalizar a interface web de Mastodon. + title: Aparencia + branding: + preamble: A personalización do teu servidor diferénciao doutros servidores da rede. A información podería mostrarse en diversos entornos, como a interface web de Mastodon, aplicacións nativas, vista previa das ligazóns noutras webs e apps de mensaxería, e similares. Debido a esto é recomendable que a información sexa clara, curta e concisa. + title: Personalización + content_retention: + preamble: Controla como se gardan en Mastodon os contidos creados polas usuarias. + title: Retención do contido + discovery: + follow_recommendations: Recomendacións de seguimento + preamble: Destacar contido interesante é importante para axudar a que as novas usuarias se sintan cómodas se non coñecen a ninguén en Mastodon. Xestiona os diferentes xeitos de promocionar contidos. + profile_directory: Directorio de perfís + public_timelines: Cronoloxías públicas + title: Descubrir + trends: Tendencias domain_blocks: all: Para todos disabled: Para ninguén - title: Amosar dominios bloqueados users: Para usuarias locais conectadas - domain_blocks_rationale: - title: Amosar motivo - hero: - desc_html: Amosado na páxina principal. Polo menos 600x100px recomendados. Se non está definido, estará por defecto a miniatura do servidor - title: Imaxe do heroe - mascot: - desc_html: Amosado en varias páxinas. Polo menos 293x205px recomendados. Se non está definido, estará a mascota por defecto - title: Imaxe da mascota - peers_api_enabled: - desc_html: Nomes de dominio que este servidor atopou no fediverso - title: Publicar na API listaxe de servidores descobertos - preview_sensitive_media: - desc_html: A vista previa de ligazóns de outros sitios web mostrará unha imaxe incluso si os medios están marcados como sensibles - title: Mostrar medios sensibles con vista previa OpenGraph - profile_directory: - desc_html: Permitir que as usuarias poidan ser descubertas - title: Activar o directorio de perfil registrations: - closed_message: - desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar cancelos HTML - title: Mensaxe de rexistro pechado - deletion: - desc_html: Permitirlle a calquera que elimine a súa conta - title: Abrir o borrado da conta - min_invite_role: - disabled: Ninguén - title: Permitir convites por - require_invite_text: - desc_html: Cando os rexistros requiren aprobación manual, facer que o texto "Por que te queres rexistrar?" do convite sexa obrigatorio en lugar de optativo - title: Require que as novas usuarias completen solicitude de texto do convite + preamble: Xestiona quen pode crear unha conta no teu servidor. + title: Rexistros registrations_mode: modes: approved: Precisa aprobación para rexistrarse none: Rexistro pechado open: Rexistro aberto - title: Estado do rexistro - show_known_fediverse_at_about_page: - desc_html: Si activado, mostraralle os toots de todo o fediverso coñecido nunha vista previa. Si non só mostrará os toots locais. - title: Incluír contido federado na páxina da cronoloxía pública sen autenticación - show_staff_badge: - desc_html: Mostrar unha insignia de membresía nunha páxina de usuaria - title: Mostrar insigna de membresía - site_description: - desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar cancelos HTML, en particular <a> e <em>. - title: Descrición do servidor - site_description_extended: - desc_html: Un bo lugar para o teu código de conduta, regras, guías e outras cousas para diferenciar o teu servidor. Podes empregar cancelos HTML - title: Información extendida da personalización - site_short_description: - desc_html: Amosado na barra lateral e nos cancelos meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baleiro, amosará a descrición do servidor. - title: Descrición curta do servidor - site_terms: - desc_html: Podes escribir a túa propia política de privacidade, termos de servizo ou aclaracións legais. Podes empregar cancelos HTML - title: Termos de servizo personalizados - site_title: Nome do servidor - thumbnail: - desc_html: Utilizado para vistas previsas vía OpenGraph e API. Recoméndase 1200x630px - title: Icona do servidor - timeline_preview: - desc_html: Mostrar ligazón á cronoloxía pública na páxina de benvida e permitir o acceso API á cronoloxía pública sen ter autenticación - title: Permitir acceso á cronoloxía pública sen autenticación - title: Axustes do sitio - trendable_by_default: - desc_html: Afecta ós cancelos que non foron rexeitados de xeito previo - title: Permite ós cancelos ser tendencia sen revisión previa - trends: - desc_html: Amosar de xeito público cancelos revisados previamente que actualmente son tendencia - title: Cancelos en tendencia + title: Axustes do servidor site_uploads: delete: Eliminar o ficheiro subido destroyed_msg: Eliminado correctamente o subido! statuses: + account: Conta + application: Aplicación back_to_account: Volver a páxina da conta back_to_report: Volver a denuncias batch: remove_from_report: Eliminar da denuncia report: Denuncia deleted: Eliminado + favourites: Favoritas + history: Historial de versións + in_reply_to: En resposta a + language: Idioma media: title: Medios + metadata: Metadatos no_status_selected: Non se cambiou ningunha publicación xa que ningunha foi seleccionada + open: Abrir publicación + original_status: Publicación orixinal + reblogs: Promocións + status_changed: Publicación editada title: Publicacións da conta + trending: Tendencia + visibility: Visibilidade with_media: con medios strikes: actions: @@ -797,6 +768,9 @@ gl: description_html: Estas son ligazóns que actualmente están sendo compartidas por moitas contas das que o teu servidor recibe publicación. Pode ser de utilidade para as túas usuarias para saber o que acontece polo mundo. Non se mostran ligazóns de xeito público a non ser que autorices a quen as publica. Tamén podes permitir ou rexeitar ligazóns de xeito individual. disallow: Denegar ligazón disallow_provider: Denegar orixe + no_link_selected: Non se cambiou ningunha ligazón xa que non había ningunha seleccionada + publishers: + no_publisher_selected: Non se cambiou ningún autor xa que ningún foi seleccionado shared_by_over_week: one: Compartido por unha persoa na última semana other: Compartido por %{count} persoas na última semana @@ -816,6 +790,7 @@ gl: description_html: Estas son publicacións que o teu servidor coñece que están sendo compartidas e favorecidas en gran número neste intre. Pode ser útil para as persoas recén chegadas e as que retornan para que atopen persoas a quen seguir. Non se mostran publicamente a menos que aprobes a autora, e a autora permita que a súa conta sexa suxerida a outras. Tamén podes rexeitar ou aprobar publicacións individuais. disallow: Rexeitar publicación disallow_account: Rexeitar autora + no_status_selected: Non se cambiou ningunha publicación en voga xa que non había ningunha seleccionada not_discoverable: A autora non elexiu poder ser atopada shared_by: one: Compartida ou favorecida unha vez @@ -831,6 +806,7 @@ gl: tag_uses_measure: total de usos description_html: Estes son cancelos que actualmente están presentes en moitas publicacións que o teu servidor recibe. Pode ser útil para que as túas usuarias atopen a outras persoas a través do máis comentado neste intre. Non se mostran cancelos públicamente que non fosen aprobados por ti. listable: Pode ser suxerida + no_tag_selected: Non se cambiaron cancelos porque ningún foi seleccionado not_listable: Non vai ser suxerida not_trendable: Non aparecerá en tendencias not_usable: Non pode ser usado @@ -851,6 +827,26 @@ gl: edit_preset: Editar aviso preestablecido empty: Non definiches os avisos prestablecidos. title: Xestionar avisos preestablecidos + webhooks: + add_new: Engadir punto de extremo + delete: Eliminar + description_html: Un webhook permítelle a Mastodon enviar notificacións en tempo real á túa aplicación acerca dos eventos elexidos e así, a aplicación activará automáticamente a súa programación. + disable: Desactivar + disabled: Desactivado + edit: Editar extremo + empty: Non tes configurado ningún punto extremo para o webhook. + enable: Activar + enabled: Activo + enabled_events: + one: 1 evento activado + other: "%{count} eventos activados" + events: Eventos + new: Novo webhook + rotate_secret: Rotar segredo + secret: Segredo de acceso + status: Estado + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +870,8 @@ gl: new_trends: body: 'Os seguintes elementos precisan revisión antes de ser mostrados públicamente:' new_trending_links: - no_approved_links: Actualmente non hai ligazóns en voga aprobadas. - requirements: 'Calquera destos candidatos podería superar o #%{rank} das ligazóns en voga aprobadas, que actualmente é "%{lowest_link_title}" cunha puntuación de %{lowest_link_score}.' title: Ligazóns en voga new_trending_statuses: - no_approved_statuses: Actualmente non hai publicacións en voga aprobadas. - requirements: 'Calquera destos candidatos podería superar o #%{rank} nas publicacións en boga aprobadas, que actualmente é %{lowest_status_url} cunha puntuación de %{lowest_status_score}.' title: Publicacións en voga new_trending_tags: no_approved_tags: Non hai etiquetas en voga aprobadas. @@ -895,7 +887,7 @@ gl: remove: Desligar alcume appearance: advanced_web_interface: Interface web avanzada - advanced_web_interface_hint: Se queres empregar todo o ancho da túa pantalla, a interface web avanzada permíteche configurar diferentes columnas para ver tanta información como desexe. Inicio, notificacións, cronoloxía federada, calquera número de listaxes e cancelos. + advanced_web_interface_hint: Se queres empregar todo o ancho da pantalla, a interface web avanzada permíteche configurar diferentes columnas para ver tanta información como queiras. Inicio, notificacións, cronoloxía federada, varias listaxes e cancelos. animations_and_accessibility: Animacións e accesibilidade confirmation_dialogs: Diálogos de confirmación discovery: Descubrir @@ -906,7 +898,7 @@ gl: sensitive_content: Contido sensible toot_layout: Disposición da publicación application_mailer: - notification_preferences: Cambiar os axustes de correo-e + notification_preferences: Cambiar os axustes de email salutation: "%{name}," settings: 'Mudar as preferencias de e-mail: %{link}' view: 'Vista:' @@ -915,16 +907,13 @@ gl: applications: created: Creouse con éxito este aplicativo destroyed: Eliminouse con éxito o aplicativo - invalid_url: A URL proporcionada non é válida regenerate_token: Votar a xenerar o testemuño de acceso token_regenerated: Rexenerouse con éxito o testemuño de acceso warning: Ten moito tino con estos datos. Non os compartas nunca con ninguén! your_token: O seu testemuño de acceso auth: - apply_for_account: Solicite un convite + apply_for_account: Solicita o acceso change_password: Contrasinal - checkbox_agreement_html: Acepto as regras do servidor e os termos do servizo - checkbox_agreement_without_rules_html: Acepto os termos do servizo delete_account: Eliminar conta delete_account_html: Se queres eliminar a túa conta, podes facelo aquí. Deberás confirmar a acción. description: @@ -933,8 +922,8 @@ gl: suffix: Ao abrir unha conta, poderás seguir a xente, actualizacións das publicacións e intercambiar mensaxes coas usuarias de calquera servidor de Mastodon e moito máis! didnt_get_confirmation: Non recibiches as instruccións de confirmación? dont_have_your_security_key: "¿Non tes a túa chave de seguridade?" - forgot_password: Esqueceu o contrasinal? - invalid_reset_password_token: O testemuño para restablecer o contrasinal non é válido ou caducou. Por favor solicite un novo. + forgot_password: Non lembras o contrasinal? + invalid_reset_password_token: O token para restablecer o contrasinal non é válido ou caducou. Por favor solicita un novo. link_to_otp: Escribe o código do segundo factor do móbil ou un código de recuperación link_to_webauth: Usa o teu dispositivo de chave de seguridade log_in_with: Accede con @@ -943,19 +932,26 @@ gl: migrate_account: Mover a unha conta diferente migrate_account_html: Se queres redirixir esta conta hacia outra diferente, pode configuralo aquí. or_log_in_with: Ou accede con + privacy_policy_agreement_html: Lin e acepto a política de privacidade providers: cas: CAS saml: SAML - register: Rexistro + register: Crear conta registration_closed: "%{instance} non está a aceptar novas usuarias" resend_confirmation: Reenviar as intruccións de confirmación reset_password: Restablecer contrasinal + rules: + preamble: Son establecidas e aplicadas pola moderación de %{domain}. + title: Algunhas regras básicas. security: Seguranza set_new_password: Estabelecer novo contrasinal setup: email_below_hint_html: Se o enderezo inferior non é correcto, podes cambialo aquí e recibir un correo de confirmación. email_settings_hint_html: Enviouse un correo de confirmación a %{email}. Se o enderezo non é correcto podes cambialo nos axustes da conta. title: Axustes + sign_up: + preamble: Cunha conta neste servidor Mastodon poderás seguir a calquera outra persoa na rede, independentemente de onde estivese hospedada esa conta. + title: Imos crear a túa conta en %{domain}. status: account_status: Estado da conta confirming: Agardando a confirmación do correo enviado. @@ -964,7 +960,6 @@ gl: redirecting_to: A túa conta está inactiva porque está redirixida a %{acct}. view_strikes: Ver avisos anteriores respecto da túa conta too_fast: Formulario enviado demasiado rápido, inténtao outra vez. - trouble_logging_in: Problemas para acceder? use_security_key: Usa chave de seguridade authorize_follow: already_following: Xa está a seguir esta conta @@ -1022,10 +1017,6 @@ gl: more_details_html: Para máis detalles, mira a política de intimidade. username_available: O nome de usuaria estará dispoñible novamente username_unavailable: O nome de usuaria non estará dispoñible - directories: - directory: Directorio de perfís - explanation: Descubre usuarias según o teu interese - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Acción tomada @@ -1072,7 +1063,7 @@ gl: content: Sentímolo, pero algo do noso lado falloou. title: Esta páxina non é correcta '503': A páxina non se puido servir debido a un fallo temporal no servidor. - noscript_html: Para utilizar a aplicación web de Mastodon debes activar JavaScript. De xeito alternativo, probb cunha das apps nativas para Mastodon na túa plataforma. + noscript_html: Para utilizar a aplicación web de Mastodon debes activar JavaScript. De xeito alternativo, proba cunha das apps nativas para Mastodon na túa plataforma. existing_username_validator: not_found: non se atopou unha usuaria local con ese alcume not_found_multiple: non se atopou a %{usernames} @@ -1084,12 +1075,12 @@ gl: in_progress: Xerando o seu ficheiro... request: Solicite o ficheiro size: Tamaño - blocks: Bloqueos + blocks: Bloqueadas bookmarks: Marcadores csv: CSV domain_blocks: Bloqueos de dominio lists: Listaxes - mutes: Silenciados + mutes: Silenciadas storage: Almacenamento de multimedia featured_tags: add_new: Engadir novo @@ -1104,29 +1095,60 @@ gl: public: Cronoloxías públicas thread: Conversas edit: + add_keyword: Engadir palabra chave + keywords: Palabras chave + statuses: Publicacións individuais + statuses_hint_html: O filtro aplícase para seleccionar publicacións individuais independentemente de se concorda coas palabras chave indicadas. Revisa ou elimina publicacións do filtro. title: Editar filtro errors: + deprecated_api_multiple_keywords: Estes parámetros non se poden cambiar desde esta aplicación porque son de aplicación a máis dun filtro de palabras chave. Usa unha aplicación máis recente ou a interface web. invalid_context: Non se proporcionou un contexto válido - invalid_irreversible: O filtrado non reversible só funciona con contexto de avisos ou Inicio index: + contexts: Filtros para %{contexts} delete: Eliminar empty: Non tes filtros. + expires_in: Caduca en %{distance} + expires_on: Caduca o %{date} + keywords: + one: "%{count} palabra chave" + other: "%{count} palabras chave" + statuses: + one: "%{count} publicación" + other: "%{count} publicacións" + statuses_long: + one: "%{count} publicación individual agochada" + other: "%{count} publicacións individuais agochadas" title: Filtros new: + save: Gardar o novo filtro title: Engadir novo filtro + statuses: + back_to_filter: Volver ao filtro + batch: + remove: Eliminar do filtro + index: + hint: Este filtro aplícase para seleccionar publicacións individuais independentemente de outros criterios. Podes engadir máis publicacións a este filtro desde a interface web. + title: Publicacións filtradas footer: - developers: Desenvolvedoras - more: Máis… - resources: Recursos trending_now: Tendencia agora generic: all: Todo + all_items_on_page_selected_html: + one: "%{count} elemento seleccionado nesta páxina." + other: Tódolos %{count} elementos desta páxina están seleccionados. + all_matching_items_selected_html: + one: "%{count} elemento coincidente coa busca está seleccionado." + other: Tódolos %{count} elementos coincidentes coa busca están seleccionados. changes_saved_msg: Cambios gardados correctamente!! copy: Copiar delete: Eliminar + deselect: Desmarcar todo none: Ningún order_by: Ordenar por save_changes: Gardar cambios + select_all_matching_items: + one: Seleccionar %{count} elemento coincidente coa busca. + other: Seleccionar tódolos %{count} elementos coincidentes coa busca. today: hoxe validation_errors: one: Algo non está ben de todo! Por favor revise abaixo o erro @@ -1150,7 +1172,6 @@ gl: following: Lista de seguimento muting: Lista de usuarias acaladas upload: Subir - in_memoriam_html: Lembranzas. invites: delete: Desactivar expired: Caducou @@ -1206,7 +1227,7 @@ gl: followers_count: Seguidoras no momento da migración incoming_migrations: Movendo desde unha conta diferente incoming_migrations_html: Para migrar doutra conta cara esta, primeiro debes crear un alcume da conta. - moved_msg: A túa conta está redirixindo agora a %{acct} e os teus seguidores movéronse alí. + moved_msg: A túa conta foi redirixida a %{acct} e os teus seguimentos movéronse alí. not_redirecting: Neste momento a túa conta non está redirixindo cara a ningunha outra. on_cooldown: Migraches recentemente a conta. Esta función estará dispoñible de novo en %{count} días. past_migrations: Migracións pasadas @@ -1229,21 +1250,14 @@ gl: carry_blocks_over_text: Esta usuaria chegou desde %{acct}, que ti tes bloqueada. carry_mutes_over_text: Esta usuaria chegou desde %{acct}, que ti tes acalada. copy_account_note_text: 'Esta usuaria chegou desde %{acct}, aquí están as túas notas previas acerca dela:' + navigation: + toggle_menu: Activa o menú notification_mailer: admin: + report: + subject: "%{name} enviou unha denuncia" sign_up: subject: "%{name} rexistrouse" - digest: - action: Ver todas as notificacións - body: Aquí ten un breve resumo das mensaxes publicadas desde a súa última visita en %{since} - mention: "%{name} mencionouna en:" - new_followers_summary: - one: Ademáis, ten unha nova seguidora desde entón! Ben! - other: Ademáis, obtivo %{count} novas seguidoras desde entón! Tremendo! - subject: - one: "1 nova notificación desde a última visita 🐘" - other: "%{count} novas notificacións desde a última visita 🐘" - title: Na súa ausencia... favourite: body: 'A túa publicación foi marcada como favorita por %{name}:' subject: "%{name} marcou como favorita a túa publicación" @@ -1259,7 +1273,7 @@ gl: title: Nova petición de seguimento mention: action: Responder - body: 'Foi mencionada por %{name} en:' + body: "%{name} mencionoute en:" subject: Foches mencionada por %{name} title: Nova mención poll: @@ -1315,6 +1329,8 @@ gl: other: Outro posting_defaults: Valores por omisión public_timelines: Cronoloxías públicas + privacy_policy: + title: Política de Privacidade reactions: errors: limit_reached: Acadouse o límite das diferentes reaccións @@ -1324,7 +1340,7 @@ gl: dormant: En repouso follow_selected_followers: Seguir seguidoras seleccionadas followers: Seguidoras - following: Seguindo + following: A Seguir invited: Convidado last_active: Último activo most_recent: Máis recente @@ -1337,22 +1353,7 @@ gl: remove_selected_follows: Deixar de seguir as usuarias escollidas status: Estado da conta remote_follow: - acct: Introduza o seu usuaria@servidor desde onde quere interactuar missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta - no_account_html: Non ten unha conta? Pode rexistrarse aquí - proceed: Proceda para seguir - prompt: 'Vas seguir a:' - reason_html: "Por que é necesario este paso?%{instance} podería non ser o servidor onde se rexistrou, así que precisamo redirixila primeiro ao seu servidor de orixe." - remote_interaction: - favourite: - proceed: Darlle a favorito - prompt: 'Vas marcar favorita esta publicación:' - reblog: - proceed: Darlle a promocionar - prompt: 'Vas promover esta publicación:' - reply: - proceed: Responde - prompt: 'Vas responder a esta publicación:' reports: errors: invalid_rules: non fai referencia a regras válidas @@ -1370,7 +1371,6 @@ gl: browser: Navegador browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1384,17 +1384,14 @@ gl: phantom_js: PhantomJS qq: Navegador QQ safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" - explanation: Estos son os navegadores web nos que actualmente ten sesión iniciada. + explanation: Estos son os navegadores web nos que actualmente tes sesión iniciada. ip: IP platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1484,7 +1481,7 @@ gl: enabled: Borrar automáticamente publicacións antigas enabled_hint: Borra automáticamente as túas publicacións unha vez acadan certa lonxevidade, a menos que cumpran algunha destas excepcións exceptions: Excepcións - explanation: Como o borrado de publicacións consume moitos recursos, este faise lentamente cando o servidor non ten moita carga de traballo. Así, a eliminación das túas publicacións podería ser lixeiramente posterior a cando lle correspondería por idade. + explanation: Como o borrado de publicacións consume moitos recursos, esta faise aos poucos cando o servidor non ten moita carga de traballo. Así, a eliminación das túas publicacións podería ser lixeiramente posterior a cando lle correspondería por idade. ignore_favs: Ignorar favoritas ignore_reblogs: Ignorar promocións interaction_exceptions: Excepcións baseadas en interaccións @@ -1524,89 +1521,6 @@ gl: too_late: É demasiado tarde para recurrir este aviso tags: does_not_match_previous_name: non concorda co nome anterior - terms: - body_html: | -

      Privacidade

      -

      Qué información recollemos?

      - -
        -
      • Información básica da conta: Se se rexistra en este servidor, pediráselle un nome de usuaria, un enderezo de correo electrónico e un contrasinal. De xeito adicional tamén poderá introducir información como un nome público e biografía, tamén subir unha fotografía de perfil e unha imaxe para a cabeceira. O nome de usuaria, o nome público, a biografía e as imaxes de perfil e cabeceira sempre se mostran publicamente.
      • -
      • Publicacións, seguimento e outra información pública: O listado das persoas que segue é un listado público, o mesmo acontece coas súas seguidoras. Cando evía unha mensaxe, a data e hora gárdanse así como o aplicativo que utilizou para enviar a mensaxe. As publicacións poderían conter ficheiros de medios anexos, como fotografías e vídeos. As publicacións públicas e as non listadas están dispoñibles de xeito público. Cando destaca unha publicación no seu perfil tamén é pública. As publicacións son enviadas as súas seguidoras, en algúns casos pode acontecer que estén en diferentes servidores e gárdanse copias neles. Cando elemina unha publicación tamén se envía as súas seguidoras. A acción de volver a publicar ou marcar como favorita outra publicación sempre é pública.
      • -
      • Mensaxes directas e só para seguidoras: Todas as mensaxes gárdanse e procésanse no servidor. As mensaxes só para seguidoras son entregadas as súas seguidoras e as usuarias que son mencionadas en elas, e as mensaxes directas entréganse só as usuarias mencionadas en elas. En algúns casos esto implica que son entregadas a diferentes servidores e gárdanse copias alí. Facemos un esforzo sincero para limitar o acceso a esas publicacións só as persoas autorizadas, pero outros servidores poderían non ser tan escrupulosos. Polo tanto, é importante revisar os servidores onde se hospedan as súas seguidoras. Nos axustes pode activar a opción de aprovar ou rexeitar novas seguidoras de xeito manual. Teña en conta que a administración do servidor e todos os outros servidores implicados poden ver as mensaxes., e as destinatarias poderían facer capturas de pantalla, copiar e volver a compartir as mensaxes. Non comparta información comprometida en Mastodon.
      • -
      • IPs e outros metadatos: Cando se conecta, gravamos o IP desde onde se conecta, así como o nome do aplicativo desde onde o fai. Todas as sesións conectadas están dispoñibles para revisar e revogar nos axustes. O último enderezo IP utilizado gárdase ate por 12 meses. Tamén poderiamos gardar informes do servidor que inclúan o enderezo IP de cada petición ao servidor.
      • -
      - -
      - -

      De qué xeito utilizamos os seus datos?

      - -

      Toda a información que recollemos podería ser utilizada dos seguintes xeitos:

      - -
        -
      • Para proporcionar a funcionabiliade básica de Mastodon. Só pode interactuar co contido de outra xente e publicar o seu propio contido se está conectada. Por exemplo, podería seguir outra xente e ver as súas publicacións combinadas nunha liña temporal inicial personalizada.
      • -
      • Para axudar a moderar a comunidade, por exemplo comparando o seu enderezo IP con outros coñecidos para evitar esquivar os rexeitamentos ou outras infraccións.
      • -
      • O endero de correo electrónico que nos proporciona podería ser utilizado para enviarlle información, notificacións sobre outra xente que interactúa cos seus contidos ou lle envía mensaxes, e para respostar a consultas, e/ou outras cuestións ou peticións.
      • -
      - -
      - -

      Cómo proxetemos os seus datos?

      - -

      Implementamos varias medidas de seguridade para protexer os seus datos persoais cando introduce, envía ou accede a súa información persoal. Entre outras medidas, a súa sesión de navegación, así como o tráfico entre os seus aplicativos e o API están aseguradas mediante SSL, e o seu contrasinal está camuflado utilizando un algoritmo potente de unha sóa vía. Pode habilitar a autenticación de doble factor para protexer o acceso a súa conta aínda máis.

      - -
      - -

      Cal é a nosa política de retención de datos?

      - -

      Faremos un sincero esforzo en:

      - -
        -
      • Protexer informes do servidor que conteñan direccións IP das peticións ao servidor, ate a data estos informes gárdanse por non máis de 90 días.
      • -
      • Reter os enderezos IP asociados con usuarias rexistradas non máis de 12 meses.
      • -
      - -

      Pode solicitar e descargar un ficheiro cos seus contidos, incluíndo publicacións, anexos de medios, imaxes de perfil e imaxe da cabeceira.

      - -

      En calquer momento pode eliminar de xeito irreversible a súa conta.

      - -
      - -

      Utilizamos testemuños?

      - -

      Si. Os testemuños son pequenos ficheiros que un sitio web ou o provedor de servizo transfiren ao disco duro da súa computadora a través do navegador web (se vostede o permite). Estos testemuños posibilitan ao sitio web recoñecer o seu navegador e, se ten unha conta rexistrada, asocialo con dita conta.

      - -

      Utilizamos testemuños para comprender e gardar as súas preferencias para futuras visitas.

      - -
      - -

      Entregamos algunha información a terceiras alleas?

      - -

      Non vendemos, negociamos ou transferimos de algún xeito a terceiras partes alleas a súa información identificativa persoal. Esto non inclúe terceiras partes de confianza que nos axudan a operar o sitio web, a xestionar a empresa, ou darlle servizo se esas partes aceptan manter esa información baixo confidencialidade. Poderiamos liberar esa información se cremos que eso da cumplimento axeitado a lei, reforza as políticas do noso sitio ou protexe os nosos, e de outros, dereitos, propiedade ou seguridade.

      - -

      O seu contido público podería ser descargado por outros servidores na rede. As súas publicacións públicas e para só seguidoras son entregadas aos servidores onde residen as súas seguidoras na rede, e as mensaxes directas son entregadas aos servidores das destinatarias sempre que esas seguidoras ou destinatarios residan en servidores distintos de este.

      - -

      Cado autoriza a este aplicativo a utilizar a súa conta, dependendo da amplitude dos permisos que autorice, podería acceder a información pública de perfil, ao listado de seguimento, as súas seguidoras, os seus listados, todas as súas publicacións, as publicacións favoritas. Os aplicativos non poden nunca acceder ao seu enderezo de correo nin ao seu contrasinal.

      - -
      - -

      Utilización do sitio web por menores

      - -

      Se este servidor está na UE ou no EEE: a nosa web, productos e servizos están dirixidos a persoas de 16 ou máis anos. Se ten menos de 16 anos, a requerimento da GDPR (General Data Protection Regulation) non utilice esta web.

      - -

      Se este servidor está nos EEUU: a nosa web, productos e servizos están dirixidos a persoas de 13 ou máis anos. Se non ten 13 anos de idade, a requerimento de COPPA (Children's Online Privacy Protection Act) non utilice esta web.

      - -

      Os requerimentos legais poden ser diferentes si este servidor está baixo outra xurisdición.

      - -
      - -

      Cambios na nosa política de intimidade

      - -

      Se decidimos cambiar a nosa política de intimidade publicaremos os cambios en esta páxina.

      - -

      Este documento ten licenza CC-BY-SA. Actualizouse o 7 de Marzo de 2018.

      - -

      Adaptado do orixinal Discourse privacy policy.

      - title: "%{instance} Termos do Servizo e Política de Intimidade" themes: contrast: Mastodon (Alto contraste) default: Mastodon (Escuro) @@ -1685,26 +1599,19 @@ gl: suspend: Conta suspendida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Podes personalizar o teu perfil subindo un avatar, cabeceira, cambiar o nome público e aínda máis. Se restrinxes a túa conta podes revisar a conta das persoas que solicitan seguirte antes de permitirlles o acceso aos teus toots. + edit_profile_step: Podes personalizar o teu perfil subindo unha imaxe de perfil, cambiar o nome público e moito máis. Podes elexir revisar as solicitudes de seguimento recibidas antes de permitirlles que te sigan. explanation: Aquí tes algunhas endereitas para ir aprendendo - final_action: Comece a publicar - final_step: 'Publica! Incluso sen seguidoras as túas mensaxes públicas serán vistas por outras persoas, por exemplo na cronoloxía local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.' - full_handle: O seu alcume completo - full_handle_hint: Esto é o que lle dirá aos seus amigos para que poidan seguila ou enviarlle mensaxes desde outro servidor. - review_preferences_action: Cambiar preferencias - review_preferences_step: Lembre establecer as preferencias, tales como qué correos-e lle querería recibir, ou o nivel de intimidade por omisión para as súas mensaxes. Se non lle molestan as imaxes con movemento, pode escoller que os GIF se reproduzan automáticamente. + final_action: Comeza a publicar + final_step: 'Publica! Incluso sen seguidoras, as túas mensaxes públicas serán vistas por outras persoas, por exemplo na cronoloxía local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.' + full_handle: O teu alcume completo + full_handle_hint: Compárteo coas túas amizades para que poidan seguirte ou enviarche mensaxes desde outros servidores. subject: Benvida a Mastodon - tip_federated_timeline: A cronoloxía federada é unha visión reducida da rede Mastodon. Inclúe xente a que segue xente que ti segues, así que non é completa. - tip_following: Por defecto segues a Admin(s) no teu servidor. Para atopar máis xente interesante, mira nas cronoloxías local e federada. - tip_local_timeline: A cronoloxía local é unha ollada xeral sobre a xente en %{instance}. Son as súas veciñas máis próximas! - tip_mobile_webapp: Si o navegador móbil lle ofrece engadir Mastodon a pantalla de inicio, pode recibir notificacións push. En moitos aspectos comportarase como un aplicativo nativo! - tips: Consellos title: Benvida, %{name}! users: follow_limit_reached: Non pode seguir a máis de %{limit} persoas invalid_otp_token: O código do segundo factor non é válido otp_lost_help_html: Se perdes o acceso a ambos, podes contactar con %{email} - seamless_external_login: Accedeches a través dun servizo externo, polo que os axustes de contrasinal e correo-e non están dispoñibles. + seamless_external_login: Accedeches a través dun servizo externo, polo que os axustes de contrasinal e email non están dispoñibles. signed_in_as: 'Rexistrada como:' verification: explanation_html: 'Podes validarte a ti mesma como a dona das ligazóns nos metadatos do teu perfil. Para esto, o sitio web ligado debe conter unha ligazón de retorno ao perfil de Mastodon. Esta ligazón de retorno ten que ter un atributo rel="me". O texto da ligazón non importa. Aquí tes un exemplo:' diff --git a/config/locales/he.yml b/config/locales/he.yml index 2d0cf8ae941a7b..bc51c21ac9917c 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1,69 +1,12 @@ --- he: about: - about_hashtag_html: אלו סטטוסים פומביים המתוייגים בתור#%{hashtag}. ניתן להגיב, להדהד או לחבב אותם אם יש לך חשבון בכל מקום בפדרציה. about_mastodon_html: מסטודון היא רשת חברתית חופשית, מבוססת תוכנה חופשית ("קוד פתוח"). כאלטרנטיבה בלתי ריכוזית לפלטפרומות המסחריות, מסטודון מאפשרת להמנע מהסיכונים הנלווים להפקדת התקשורת שלך בידי חברה יחידה. שמת את מבטחך בשרת אחד — לא משנה במי בחרת, תמיד אפשר לדבר עם כל שאר המשתמשים. לכל מי שרוצה יש את האפשרות להקים שרת מסטודון עצמאי, ולהשתתף ברשת החברתית באופן חלק. - about_this: אודות שרת זה - active_count_after: פעיל - active_footnote: משתמשים פעילים חודשית (MAU) - administered_by: 'מנוהל ע"י:' - api: ממשק - apps: יישומונים לנייד - apps_platforms: שימוש במסטודון מ-iOS, אנדרואיד ופלטפורמות אחרות - browse_directory: עיון בספריית פרופילים וסינון לפי תחומי עניין - browse_local_posts: עיון בפיד חי של חצרוצים פומביים בשרת זה - browse_public_posts: עיון בפיד חי של חצרוצים פומביים בשרת זה - contact: יצירת קשר contact_missing: ללא הגדרה contact_unavailable: לא רלוונטי/חסר - continue_to_web: להמשיך לאפליקציית ווב - discover_users: גילוי משתמשים - documentation: תיעוד - federation_hint_html: עם חשבון ב-%{instance} ניתן לעקוב אחרי אנשים בכל שרת מסטודון ומעבר. - get_apps: נסה/י יישומון לנייד hosted_on: מסטודון שיושב בכתובת %{domain} - instance_actor_flash: | - חשבון זה הינו פועל וירטואלי המשמש לייצוג השרת עצמו ולא משתמש ספציפי. - הוא משמש למטרת פדרציה ואין לחסום אותו אלא למטרת חסימת המופע כולו, ובמקרה כזה עדיף להשתמש בחסימת מופע. - learn_more: מידע נוסף - logged_in_as_html: הנך מחובר/ת כרגע כ-%{username}. - logout_before_registering: חשבון זה כבר מחובר. - privacy_policy: מדיניות פרטיות - rules: כללי השרת - rules_html: 'להלן סיכום הכללים שעליך לעקוב אחריהם על מנת להשתמש בחשבון בשרת מסטודון זה:' - see_whats_happening: מה קורה כעת - server_stats: 'סטטיסטיקות שרת:' - source_code: קוד מקור - status_count_after: - many: חצרוצים - one: חצרוץ - other: חצרוצים - two: חצרוצים - status_count_before: שכתבו - tagline: מעקב אחרי חברים וגילוי חדשים - terms: תנאי שימוש - unavailable_content: שרתים מוגבלים - unavailable_content_description: - domain: שרת - reason: סיבה - rejecting_media: 'קבצי מדיה משרתים אלה לא יעובדו או ישמרו, ותמונות ממוזערות לא יוצגו. נדרשת הקלקה ידנית על מנת לצפות בקובץ המקורי:' - rejecting_media_title: מדיה מסוננת - silenced: 'חצרוצים משרתים אלה יוסתרו מפידים ושיחות פומביים, ושום התראות לא ינתנו על אינטראקציות עם משתמשיהם, אלא אם הינך במעקב אחריהם:' - silenced_title: שרתים מוגבלים - suspended: 'שום מידע עם שרתים אלה לא יעובד, יישמר או יוחלף, מה שהופך כל תקשורת עם משתמשיהם לבלתי אפשרית:' - suspended_title: שרתים מושעים - unavailable_content_html: ככלל מסטודון מאפשר לך לצפות בתוכן ולתקשר עם משתמשים בכל שרת בפדרציה. אלו הם היוצאים מן הכלל שהוגדרו עבור שרת זה. - user_count_after: - many: משתמשים - one: משתמש - other: משתמשים - two: משתמשים - user_count_before: ביתם של - what_is_mastodon: מה זה מסטודון? + title: אודות accounts: - choices_html: 'בחירותיו/ה של %{name}:' - endorsements_hint: תוכל/י להמליץ על אנשים לעקוב אחריהם דרך ממשק הווב, והם יופיעו כאן. - featured_tags_hint: תוכל/י להציג האשתגיות ספציפיות והן תופענה כאן. follow: לעקוב followers: many: עוקבים @@ -72,31 +15,17 @@ he: two: עוקבים following: נעקבים instance_actor_flash: חשבון זה הינו פועל וירטואלי המשמש לייצוג השרת עצמו ולא אף משתמש ספציפי. הוא משמש למטרות פדרציה ואין להשעותו. - joined: הצטרף/ה ב-%{date} last_active: פעילות אחרונה link_verified_on: בעלות על קישורית זו נבדקה לאחרונה ב-%{date} - media: מדיה - moved_html: "%{name} עבר(ה) אל %{new_profile_link}:" - network_hidden: מידע זה אינו זמין nothing_here: אין פה שום דבר! - people_followed_by: הנעקבים של %{name} - people_who_follow: העוקבים של %{name} pin_errors: following: עליך לעקוב אחרי חשבון לפני שניתן יהיה להמליץ עליו posts: - many: חצרוצים - one: חצרוץ - other: חצרוצים - two: חצרוצים - posts_tab_heading: חצרוצים - posts_with_replies: חצרוצים ותגובות - roles: - admin: מנהל - bot: בוט - group: קבוצה - moderator: מנחה - unavailable: פרופיל לא זמין - unfollow: הפסקת מעקב + many: הודעות + one: הודעה + other: הודעות + two: הודעותיים + posts_tab_heading: הודעות admin: account_actions: action: בצע/י פעולה @@ -113,12 +42,17 @@ he: avatar: יַצְגָן by_domain: שם מתחם change_email: - changed_msg: כתובת הדוא"ל המשוייכת לחשבון שונתה בהצלחה ! + changed_msg: דוא"ל שונה בהצלחה current_email: כתובת דוא"ל נוכחית label: שינוי כתובת דוא"ל משוייכת לחשבון new_email: כתובת דוא"ל חדשה submit: שלחי בקשה לשינוי דוא"ל title: שינוי כתובת דוא"ל עבור המשתמש.ת %{username} + change_role: + changed_msg: תפקיד שונה בהצלחה ! + label: שנה תפקיד + no_role: ללא תפקיד + title: שינוי תפקיד עבור המשתמש.ת %{username} confirm: אישור confirmed: אושר confirming: המאשר @@ -162,6 +96,7 @@ he: active: פעילים all: הכל pending: בהמתנה + silenced: מוגבלים suspended: מושהים title: ניהול קהילה moderation_notes: הודעות מנחה @@ -169,6 +104,7 @@ he: most_recent_ip: כתובות אחרונות no_account_selected: לא בוצעו שינויים בחשבונות ל שכן לא נבחרו חשבונות no_limits_imposed: לא הוטלו הגבלות + no_role_assigned: ללא תפקיד not_subscribed: לא רשום pending: ממתינים לסקירה perform_full_suspension: ביצוע השעייה מלאה @@ -195,20 +131,15 @@ he: send: שלח מחדש דוא"ל אימות success: הודעת האימייל נשלחה בהצלחה! reset: איפוס - reset_password: אתחול סיסמא + reset_password: איפוס סיסמה resubscribe: להרשם מחדש - role: הרשאות - roles: - admin: מנהל מערכת - moderator: מנחה דיונים - staff: צוות - user: משתמש(ת) + role: תפקיד search: חיפוש search_same_email_domain: משתמשים אחרים מאותו דומיין דוא"ל search_same_ip: משתמשים אחרים מאותה כתובת IP security_measures: - only_password: סיסמא בלבד - password_and_2fa: סיסמא ואימות דו-גורמי + only_password: סיסמה בלבד + password_and_2fa: סיסמה ואימות דו-שלבי sensitive: מאולצים לרגישות sensitized: מסומנים כרגישים shared_inbox_url: תיבה משותפת לדואר נכנס @@ -245,25 +176,30 @@ he: approve_user: אישור משתמש assigned_to_self_report: הקצאת דו"ח change_email_user: שינוי כתובת דוא"ל למשתמש + change_role_user: שינוי תפקיד למשתמש confirm_user: אשר משתמש create_account_warning: יצירת אזהרה create_announcement: יצירת הכרזה + create_canonical_email_block: יצירת חסימת דואל create_custom_emoji: יצירת אמוג'י מיוחד create_domain_allow: יצירת דומיין מותר create_domain_block: יצירת דומיין חסום create_email_domain_block: יצירת חסימת דומיין דוא"ל create_ip_block: יצירת כלל IP create_unavailable_domain: יצירת דומיין בלתי זמין + create_user_role: יצירת תפקיד demote_user: הורדת משתמש בדרגה destroy_announcement: מחיקת הכרזה + destroy_canonical_email_block: מחיקת חסימת דואל destroy_custom_emoji: מחיקת אמוג'י יחודי destroy_domain_allow: מחיקת דומיין מותר destroy_domain_block: מחיקת דומיין חסום destroy_email_domain_block: מחיקת חסימת דומיין דוא"ל destroy_instance: טיהור דומיין destroy_ip_block: מחיקת כלל IP - destroy_status: מחיקת חצרוץ + destroy_status: מחיקת הודעה destroy_unavailable_domain: מחיקת דומיין בלתי זמין + destroy_user_role: מחיקת תפקיד disable_2fa_user: השעיית זיהוי דו-גורמי disable_custom_emoji: השעיית אמוג'י מיוחד disable_sign_in_token_auth_user: השעיית אסימון הזדהות בדוא"ל של משתמש @@ -277,7 +213,8 @@ he: reject_user: דחיית משתמש remove_avatar_user: הסרת תמונת פרופיל reopen_report: פתיחת דו"ח מחדש - reset_password_user: איפוס סיסמא + resend_user: שליחת דואל אישור שוב + reset_password_user: איפוס סיסמה resolve_report: פתירת דו"ח sensitive_account: חשבון רגיש לכח silence_account: הגבלת חשבון @@ -290,31 +227,38 @@ he: update_announcement: עדכון הכרזה update_custom_emoji: עדכון סמלון מותאם אישית update_domain_block: עדכון חסימת שם מתחם + update_ip_block: עדכון כלל IP update_status: סטטוס עדכון + update_user_role: עדכון תפקיד actions: approve_appeal_html: "%{name} אישר/ה ערעור על החלטת מנהלי הקהילה מ-%{target}" approve_user_html: "%{name} אישר/ה הרשמה מ-%{target}" assigned_to_self_report_html: '%{name} הקצה/תה דו"ח %{target} לעצמם' change_email_user_html: '%{name} שינה/תה את כתובת הדוא"ל של המשתמש %{target}' + change_role_user_html: "%{name} שינה את התפקיד של %{target}" confirm_user_html: '%{name} אישר/ה את כותבת הדו"אל של המשתמש %{target}' create_account_warning_html: "%{name} שלח/ה אזהרה ל %{target}" create_announcement_html: "%{name} יצר/ה הכרזה חדשה %{target}" + create_canonical_email_block_html: "%{name} חסם/ה את הדואל %{target}" create_custom_emoji_html: "%{name} העלו אמוג'י חדש %{target}" create_domain_allow_html: "%{name} אישר/ה פדרציה עם הדומיין %{target}" create_domain_block_html: "%{name} חסם/ה את הדומיין %{target}" create_email_domain_block_html: '%{name} חסם/ה את דומיין הדוא"ל %{target}' create_ip_block_html: "%{name} יצר/ה כלל עבור IP %{target}" create_unavailable_domain_html: "%{name} הפסיק/ה משלוח לדומיין %{target}" + create_user_role_html: "%{name} יצר את התפקיד של %{target}" demote_user_html: "%{name} הוריד/ה בדרגה את המשתמש %{target}" destroy_announcement_html: "%{name} מחק/ה את ההכרזה %{target}" - destroy_custom_emoji_html: "%{name} השמיד/ה את האמוג'י %{target}" + destroy_canonical_email_block_html: "%{name} הסיר/ה חסימה מדואל %{target}" + destroy_custom_emoji_html: "%{name} מחק אמוג'י של %{target}" destroy_domain_allow_html: "%{name} לא התיר/ה פדרציה עם הדומיין %{target}" destroy_domain_block_html: "%{name} הסיר/ה חסימה מהדומיין %{target}" destroy_email_domain_block_html: '%{name} הסיר/ה חסימה מדומיין הדוא"ל %{target}' destroy_instance_html: "%{name} טיהר/ה את הדומיין %{target}" destroy_ip_block_html: "%{name} מחק/ה את הכלל עבור IP %{target}" - destroy_status_html: "%{name} הסיר/ה חצרוץ מאת %{target}" + destroy_status_html: ההודעה של %{target} הוסרה ע"י %{name} destroy_unavailable_domain_html: "%{name} התחיל/ה מחדש משלוח לדומיין %{target}" + destroy_user_role_html: "%{name} ביטל את התפקיד של %{target}" disable_2fa_user_html: "%{name} ביטל/ה את הדרישה לאימות דו-גורמי למשתמש %{target}" disable_custom_emoji_html: "%{name} השבית/ה את האמוג'י %{target}" disable_sign_in_token_auth_user_html: '%{name} השבית/ה את האימות בעזרת אסימון דוא"ל עבור %{target}' @@ -328,7 +272,8 @@ he: reject_user_html: "%{name} דחו הרשמה מ-%{target}" remove_avatar_user_html: "%{name} הסירו את תמונת הפרופיל של %{target}" reopen_report_html: '%{name} פתח מחדש דו"ח %{target}' - reset_password_user_html: "%{name} איפס/ה סיסמא עבור המשתמש %{target}" + resend_user_html: "%{name} הפעיל.ה שליחה מחדש של דואל אימות עבור %{target}" + reset_password_user_html: הסיסמה עבור המשתמש %{target} התאפסה על־ידי %{name} resolve_report_html: '%{name} פתר/ה דו"ח %{target}' sensitive_account_html: "%{name} סימן/ה את המדיה של %{target} כרגיש" silence_account_html: "%{name} הגביל/ה את חשבונו של %{target}" @@ -341,8 +286,10 @@ he: update_announcement_html: "%{name} עדכן/ה הכרזה %{target}" update_custom_emoji_html: "%{name} עדכן/ה אמוג'י %{target}" update_domain_block_html: "%{name} עדכן/ה חסימת דומיין עבור %{target}" - update_status_html: "%{name} עדכן/ה חצרוץ של %{target}" - deleted_status: "(חצרוץ נמחק)" + update_ip_block_html: "%{name} שינה כלל עבור IP %{target}" + update_status_html: "%{name} עדכן/ה הודעה של %{target}" + update_user_role_html: "%{name} שינה את התפקיד של %{target}" + deleted_account: חשבון מחוק empty: לא נמצאו יומנים. filter_by_action: סינון לפי פעולה filter_by_user: סינון לפי משתמש @@ -386,6 +333,7 @@ he: listed: ברשימה new: title: הוספת אמוג'י מיוחד חדש + no_emoji_selected: לא בוצעו שינויים ברגשונים שכן לא נבחרו כאלו not_permitted: אין לך הרשאות לביצוע פעולה זו overwrite: לדרוס shortcode: קוד קצר @@ -414,10 +362,10 @@ he: other: "%{count} דוחות ממתינים" two: "%{count} דוחות ממתינים" pending_tags_html: - many: "%{count} האשתגיות ממתינות" - one: "%{count} האשתג ממתין" - other: "%{count} האשתגיות ממתינות" - two: "%{count} האשתגיות ממתינות" + many: "%{count} תגיות ממתינות" + one: תגית %{count} ממתינה + other: "%{count} תגיות ממתינות" + two: "%{count} תגיות ממתינות" pending_users_html: many: "%{count} משתמשים ממתינים" one: "%{count} משתמש/ת ממתינ/ה" @@ -446,6 +394,7 @@ he: destroyed_msg: חסימת שרת בוטלה domain: שרת edit: עריכת חסימת שם מתחם + existing_domain_block: כבר החלת הגבלות מחמירות יותר על %{name} existing_domain_block_html: כבר הפעלת הגבלות חמורות יותר על %{name}, עליך ראשית להסיר מעליו/ה את החסימה. new: create: יצירת חסימה @@ -537,7 +486,7 @@ he: instance_languages_dimension: שפות מובילות instance_media_attachments_measure: קבצי מדיה מאופסנים instance_reports_measure: דו"חות אודותיהם - instance_statuses_measure: חצרוצים מאופסנים + instance_statuses_measure: הודעות מאופסנות delivery: all: הכל clear: ניקוי שגיאות משלוח @@ -598,11 +547,11 @@ he: relays: add_new: הוספת ממסר חדש delete: מחיקה - description_html: "ממסר פדרטיבי הוא שרת מתווך שמחליף כמויות גדולות של חצרוצים פומביים בין שרתים שרשומים ומפרסמים אליו. הוא יכול לעזור לשרתים קטנים ובינוניים לגלות תוכן מהפדרציה, מה שאחרת היה דורש ממשתמשים מקומיים לעקוב ידנית אחרי אנשים בשרתים מרוחקים." + description_html: "ממסר פדרטיבי הוא שרת מתווך שמחליף כמויות גדולות של הודעות פומביות בין שרתים שרשומים ומפרסמים אליו. הוא יכול לעזור לשרתים קטנים ובינוניים לגלות תוכן מהפדרציה, מה שאחרת היה דורש ממשתמשים מקומיים לעקוב ידנית אחרי אנשים בשרתים מרוחקים." disable: השבתה disabled: מושבת enable: לאפשר - enable_hint: מרגע שאופשר, השרת שלך יירשם לכל החצרוצים הפומביים מהממסר הזה, ויתחיל לשלוח את חצרוציו הפומביים לממסר. + enable_hint: מרגע שאופשר, השרת שלך יירשם לכל ההודעות הפומביות מהממסר הזה, ויתחיל לשלוח את הודעותיו הפומביות לממסר. enabled: מאופשר inbox_url: קישורית ממסר pending: ממתין לאישור הממסר @@ -625,8 +574,8 @@ he: action_log: ביקורת יומן action_taken_by: פעולה בוצעה ע"י actions: - delete_description_html: הפוסטים המדווחים יימחקו ותרשם עבירה על מנת להקל בהעלאה של דיווחים עתידיים על אותה חשבון. - mark_as_sensitive_description_html: המדיה בחצרוצים מדווחים תסומן כרגישה ועבירה תרשם כדי לעזור לך להסלים באינטראקציות עתידיות עם אותו החשבון. + delete_description_html: ההודעות המדווחות יימחקו ותרשם עבירה על מנת להקל בהעלאה של דיווחים עתידיים על אותו החשבון. + mark_as_sensitive_description_html: המדיה בהודעות מדווחות תסומן כרגישה ועבירה תרשם כדי לעזור לך להסלים באינטראקציות עתידיות עם אותו החשבון. other_description_html: ראו אפשרויות נוספות לשליטה בהתנהגות החשבון וכדי לבצע התאמות בתקשורת עם החשבון המדווח. resolve_description_html: אף פעולה לא תבוצע נגד החשבון עליו דווח, לא תירשם עבירה, והדיווח ייסגר. silence_description_html: הפרופיל יהיה גלוי אך ורק לאלה שכבר עוקבים אחריו או לאלה שיחפשו אותו ידנית, מה שיגביל מאד את תפוצתו. ניתן תמיד להחזיר את המצב לקדמותו. @@ -643,7 +592,7 @@ he: none: ללא comment_description_html: 'על מנת לספק עוד מידע, %{name} כתב\ה:' created_at: מדווח - delete_and_resolve: מחיקת חצרוצים + delete_and_resolve: מחיקת הודעות forwarded: קודם forwarded_to: קודם ל-%{domain} mark_as_resolved: סימון כפתור @@ -676,6 +625,71 @@ he: unresolved: לא פתור updated_at: עודכן view_profile: צפה בפרופיל + roles: + add_new: הוספת תפקיד + assigned_users: + many: "%{count} משתמשים" + one: 'משתמש %{count} ' + other: "%{count} משתמשים" + two: "%{count} שני משתמשים" + categories: + administration: ניהול מערכת + devops: DevOps + invites: הזמנות + moderation: פיקוח + special: מיוחדים + delete: מחיקה + description_html: באמצעות תפקידי משתמש, תוכלו להתאים אישית לאילו פונקציות ואזורים של מסטודון המשתמשים יוכלו לגשת + edit: עריכת התפקיד של %{name} + everyone: הרשאות ברירת מחדל + everyone_full_description_html: זהו התפקיד הבסיסי שמשפיע על כלל המשתשמשים, אפילו אלו ללא תפקיד. כל התפקידים האחרים יורשים את ההרשאות שלהם ממנו. + permissions_count: + many: "%{count} הרשאות" + one: הרשאה %{count} + other: "%{count} הרשאות" + two: "%{count} הרשאות" + privileges: + administrator: מנהל מערכת + administrator_description: משתמשים עם הרשאה זו יוכלו לעקוף כל הרשאה + delete_user_data: מחיקת כל נתוני המשתמש + delete_user_data_description: מאפשר למשתמשים למחוק נתוני משתמשים אחרים ללא דיחוי + invite_users: הזמנת משתמשים + invite_users_description: מאפשר למשתמשים להזמין אנשים חדשים לשרת + manage_announcements: ניהול הכרזות + manage_announcements_description: מאפשר למשתמשים לנהל הכרזות של השרת + manage_appeals: ניהול ערעורים + manage_appeals_description: מאפשר למשתמשים לסקור ערעורים כנגד פעולות מודרציה + manage_blocks: ניהול חסימות + manage_blocks_description: מאפשר למשתמשים לחסום ספקי דוא"ל וכתובות IP + manage_custom_emojis: ניהול סמלונים בהתאמה אישית + manage_custom_emojis_description: מאפשר למשתמשים לנהל סמלונים בהתאמה אישית של השרת + manage_federation: ניהול פדרציה + manage_federation_description: מאפשר למשתמשים לחסום או לאפשר התממשקות עם שמות מתחם אחרים + manage_invites: ניהול הזמנות + manage_invites_description: מאפשר למשתמשים לעלעל ב ולבטל קישורי הזמנה + manage_reports: ניהול דו"חות + manage_reports_description: מאפשר למשתמשים לסקור דו"חות ולבצע פעולות מודרציה בהתבסס עליהם + manage_roles: ניהול תפקידים + manage_roles_description: מאפשר למשתמשים לנהל ולמנות אחרים לתפקידים נמוכים יותר משלהם. + manage_rules: ניהול כללים + manage_rules_description: מאפשר למשתמשים לנהל את כללי השרת + manage_settings: נהל הגדרות + manage_settings_description: מאפשר למשתמשים לנהל את הגדרות השרת + manage_taxonomies: ניהול טקסונומיות + manage_taxonomies_description: מאפשר למשתמשים לסקור תוכן אופנתי (טרנדי) ולעדכן אפשרויות של תגיות. + manage_user_access: ניהול גישת משתמשים + manage_user_access_description: מאפשר למשתמשים לבטל אימות דו-שלבי של משתמשים אחרים, לשנות את כתובות הדוא"ל שלהם, ולאפס את סיסמתם + manage_users: ניהול משתמשים + manage_users_description: מאפשר למשתמשים לצפות בפרטים של משתמשים אחרים ולבצע פעולות מודרציה לפיהם + manage_webhooks: ניהול Webhooks + manage_webhooks_description: מאפשר למשתמשים להגדיר Webhooks לאירועים מנהלתיים + view_audit_log: צפייה בלוג ביקורת + view_audit_log_description: מאפשר למשתשמשים לצפות בהיסטוריה של פעולות מנהלתיות על השרת + view_dashboard: הצג לוח מחוונים + view_dashboard_description: אפשר למשתמשים לגשת ללוח המחוונים + view_devops: DevOps + view_devops_description: מאפשר למשתמשים לגשת ללוחות המחוונים של Sidekiq ושל pgHero + title: תפקידים rules: add_new: הוספת כלל delete: מחיקה @@ -684,114 +698,73 @@ he: empty: שום כללי שרת לא הוגדרו עדיין. title: כללי שרת settings: - activity_api_enabled: - desc_html: מספר החצרוצים שפורסמו מקומית, משתמשים פעילים, והרשמות חדשות בדליים שבועיים - title: פרסום סטטיסטיקות מקובצות עבור פעילות משתמשים בממשק - bootstrap_timeline_accounts: - desc_html: הפרדת משתמשים מרובים בפסיק. למשתמשים אלה מובטח שהם יכללו בהמלצות המעקב - title: המלצה על חשבונות אלה למשתמשים חדשים - contact_information: - email: נא להקליד כתובת דוא"ל פומבית - username: נא להכניס שם משתמש - custom_css: - desc_html: שינוי המראה בעזרת CSS הנטען בכל דף - title: CSS יחודי - default_noindex: - desc_html: משפיע על כל המשתמשים שלא שינו את ההגדרה בעצמם - title: לא לכלול משתמשים במנוע החיפוש כברירת מחדל + about: + manage_rules: ניהול כללי שרת + preamble: תיאור מעמיק על דרכי ניהול השרת, ניהול הדיונים, ומקורות המימון שלו. + rules_hint: קיים מקום ייעודי לחוקים שעל המשתמשים שלך לדבוק בהם. + title: אודות + appearance: + preamble: התאמה מיוחדת של מנשק המשתמש של מסטודון. + title: מראה + branding: + preamble: המיתוג של השרת שלך מבדל אותו משרתים אחרים ברשת. המידע יכול להיות מוצג בסביבות שונות כגון מנשק הווב של מסטודון, יישומים מרומיים, בצפיה מקדימה של קישור או בתוך יישומוני הודעות וכולי. מסיבה זו מומלץ לשמור על המידע ברור, קצר וממצה. + title: מיתוג + content_retention: + preamble: שליטה על דרך אחסון תוכן המשתמשים במסטודון. + title: תקופת השמירה של תכנים + discovery: + follow_recommendations: המלצות מעקב + preamble: הצפה של תוכן מעניין בקבלת פני משתמשות חדשות שאולי אינן מכירות עדיין א.נשים במסטודון. ניתן לשלוט איך אפשרויות גילוי שונות עובדות על השרת שלך. + profile_directory: מדריך פרופילים + public_timelines: פידים פומביים + title: איתור + trends: נושאים חמים domain_blocks: all: לכולם disabled: לאף אחד - title: צפיה בחסימת דומיינים users: למשתמשים מקומיים מחוברים - domain_blocks_rationale: - title: הצגת רציונל - hero: - desc_html: מוצגת בדף הראשי. מומלץ לפחות 600x100px. אם לא נבחר, מוצגת במקום תמונה מוקטנת מהשרת - title: תמונת גיבור - mascot: - desc_html: מוצגת בכל מיני דפים. מומלץ לפחות 293×205px. אם לא נבחר, מוצג במקום קמע ברירת המחדל - title: תמונת קמע - peers_api_enabled: - desc_html: שמות דומיינים ששרת זה נתקל בהם ברחבי הפדרציה - title: פרסם רשימה של שרתים שנתגלו דרך הממשק - preview_sensitive_media: - desc_html: תצוגה מקדימה של קישוריות לאתרים אחרים יוצגו כתמונה מוקטנת אפילו אם המדיה מסומנת כרגישה - title: הצגת מדיה רגישה בתצוגה מקדימה של OpenGraph - profile_directory: - desc_html: הרשאה למשתמשים להתגלות - title: הרשאה לספריית פרופילים registrations: - closed_message: - desc_html: מוצג על הדף הראשי כאשר ההרשמות סגורות. ניתן להשתמש בתגיות HTML - title: מסר סגירת הרשמות - deletion: - desc_html: הרשאה לכולם למחוק את חשבונם - title: פתיחת מחיקת חשבון - min_invite_role: - disabled: אף אחד - title: אפשר הזמנות לפי - require_invite_text: - desc_html: כאשר הרשמות דורשות אישור ידני, הפיכת טקסט ה"מדוע את/ה רוצה להצטרף" להכרחי במקום אופציונלי - title: אלץ משתמשים חדשים למלא סיבת הצטרפות + preamble: שליטה בהרשאות יצירת חשבון בשרת שלך. + title: הרשמות registrations_mode: modes: approved: נדרש אישור הרשמה none: אף אחד לא יכול להרשם open: כל אחד יכול להרשם - title: מצב הרשמות - show_known_fediverse_at_about_page: - desc_html: כאשר לא מופעל, מגביל את הפיד הפומבי המקושר מדף הנחיתה להצגת תוכן מקומי בלבד - title: הכללת תוכן פדרטיבי בדף הפיד הפומבי הבלתי מאומת - show_staff_badge: - desc_html: הצג תג צוות בדף המשתמש - title: הצג תג צוות - site_description: - desc_html: מוצג כפסקה על הדף הראשי ומשמש כתגית מטא. ניתן להשתמש בתגיות HTML, ובמיוחד ב־ < a> ו־ < em> . - title: תיאור האתר - site_description_extended: - desc_html: מקום טוב להצגת כללים, הנחיות, ודברים אחרים שמבדלים אותך ממופעים אחרים. ניתן להשתמש בתגיות HTML - title: תיאור אתר מורחב - site_short_description: - desc_html: מוצג בעמודה הצידית ובמטא תגים. מתאר מהו מסטודון ומה מיחד שרת זה בפסקה בודדת. - title: תאור שרת קצר - site_terms: - desc_html: ניתן לכתוב מדיניות פרטיות, תנאי שירות ושאר מסמכים חוקיים בעצמך. ניתן להשתמש בתגי HTML - title: תנאי שירות יחודיים - site_title: כותרת האתר - thumbnail: - desc_html: משמש לתצוגה מקדימה דרך OpenGraph והממשק. מומלץ 1200x630px - title: תמונה ממוזערת מהשרת - timeline_preview: - desc_html: הצגת קישורית לפיד הפומבי מדף הנחיתה והרשאה לממשק לגשת לפיד הפומבי ללא אימות - title: הרשאת גישה בלתי מאומתת לפיד הפומבי - title: הגדרות אתר - trendable_by_default: - desc_html: משפיע על האשתגיות שלא נאסרו קודם לכן - title: הרשאה להאשתגיות להופיע בנושאים החמים ללא אישור מוקדם - trends: - desc_html: הצגה פומבית של תוכן שנסקר בעבר ומופיע כרגע בנושאים החמים - title: נושאים חמים + title: הגדרות שרת site_uploads: delete: מחיקת קובץ שהועלה destroyed_msg: העלאת אתר נמחקה בהצלחה! statuses: + account: מחבר + application: יישום back_to_account: חזרה לדף החשבון back_to_report: חזרה לעמוד הדיווח batch: remove_from_report: הסרה מהדיווח report: דווח deleted: מחוקים + favourites: חיבובים + history: היסטורית גרסאות + in_reply_to: השיבו ל־ + language: שפה media: title: מדיה - no_status_selected: לא בוצעו שינויים בחצרוצים שכן לא נבחרו חצרוצים - title: חצרוצי חשבון + metadata: נתוני-מטא + no_status_selected: לא בוצעו שינויים בהודעות שכן לא נבחרו כאלו + open: פתח הודעה + original_status: הודעה מקורית + reblogs: שיתופים + status_changed: הודעה שונתה + title: הודעות החשבון + trending: נושאים חמים + visibility: נראות with_media: עם מדיה strikes: actions: - delete_statuses: "%{name} מחק/ה את חצרוציו של %{target}" + delete_statuses: "%{name} מחק/ה את הודעותיו של %{target}" disable: "%{name} הקפיא/ה את חשבונו של %{target}" - mark_statuses_as_sensitive: "%{name} סימנה את חצרוציו של %{target} כרגישים" + mark_statuses_as_sensitive: "%{name} סימנ/ה את הודעותיו של %{target} כרגישים" none: "%{name} שלח/ה אזהרה ל-%{target}" sensitive: "%{name} סימן/ה את חשבונו של %{target} כרגיש" silence: "%{name} הגביל/ה את חשבונו/ה של %{target}" @@ -813,7 +786,7 @@ he: message_html: שום הליכי Sidekiq לא רצים עבור %{value} תור(ות). בחנו בבקשה את הגדרות Sidekiq tags: review: סקירת מצב - updated_msg: הגדרות האשתג עודכנו בהצלחה + updated_msg: הגדרות תגיות עודכנו בהצלחה title: ניהול trends: allow: לאפשר @@ -822,9 +795,12 @@ he: links: allow: אישור קישורית allow_provider: אישור מפרסם - description_html: בקישוריות אלה נעשה כרגע שימוש על ידי חשבונות רבים שהשרת שלך רואה חצרוצים מהם. זה עשוי לסייע למשתמשיך לברר מה קורה בעולם. שום קישוריות לא יוצגו עד שתאשרו את המפרסם. ניתן גם לאפשר או לדחות קישוריות ספציפיות. + description_html: בקישוריות אלה נעשה כרגע שימוש על ידי חשבונות רבים שהשרת שלך רואה הודעות מהם. זה עשוי לסייע למשתמשיך לברר מה קורה בעולם. שום קישוריות לא יוצגו עד שתאשרו את המפרסם. ניתן גם לאפשר או לדחות קישוריות ספציפיות. disallow: לא לאשר קישורית disallow_provider: לא לאשר מפרסם + no_link_selected: לא בוצעו שינויים בקישורים שכן לא נבחרו כאלו + publishers: + no_publisher_selected: לא בוצעו שינויים במפרסמים שכן לא נבחרו כאלו shared_by_over_week: many: הופץ על ידי %{count} אנשים בשבוע האחרון one: הופץ על ידי אדם אחד בשבוע האחרון @@ -841,18 +817,19 @@ he: title: מפרסמים rejected: דחוי statuses: - allow: הרשאת חצרוץ + allow: הרשאת הודעה allow_account: הרשאת מחבר/ת - description_html: אלו הם חצרוצים שהשרת שלך מכיר וזוכים להדהודים וחיבובים רבים כרגע. זה עשוי למשתמשיך החדשים והחוזרים למצוא עוד נעקבים. החצרוצים לא מוצגים עד שיאושר המחבר/ת, והמחבר/ת יאשרו שחשבונים יומלץ לאחרים. ניתן לאשר או לדחות חצרוצים ספציפיים. - disallow: לא לאשר חצרוץ + description_html: אלו הן הודעות שהשרת שלך מכיר וזוכות להדהודים וחיבובים רבים כרגע. זה עשוי למשתמשיך החדשים והחוזרים למצוא עוד נעקבים. ההודעות לא מוצגות עד שיאושר המחבר/ת, והמחבר/ת יאשרו שחשבונים יומלץ לאחרים. ניתן לאשר או לדחות הודעות ספציפיות. + disallow: לדחות הודעה disallow_account: לא לאשר מחבר/ת + no_status_selected: לא בוצעו שינויים בהודעות חמות שכן לא נבחרו כאלו not_discoverable: המחבר/ת לא בחר/ה לאפשר את גילויים shared_by: many: הודהד וחובב %{friendly_count} פעמים one: הודהד או חובב פעם אחת other: הודהד וחובב %{friendly_count} פעמים two: הודהד וחובב %{friendly_count} פעמים - title: חצרוצים חמים + title: הודעות חמות tags: current_score: ציון נוכחי %{score} dashboard: @@ -861,13 +838,14 @@ he: tag_servers_dimension: שרתים מובילים tag_servers_measure: שרתים שונים tag_uses_measure: כלל השימושים - description_html: אלו הן האשתגיות שמופיעות הרבה כרגע בחצרוצים המגיעים לשרת. זה עשוי לעזור למשתמשיך למצוא על מה אנשים מרבים לדבר כרגע. שום האשתגיות לא יוצגו בפומבי עד שתאושרנה. + description_html: אלו הן התגיות שמופיעות הרבה כרגע בהודעות המגיעות לשרת. זה עשוי לעזור למשתמשיך למצוא על מה אנשים מרבים לדבר כרגע. שום תגיות לא יוצגו בפומבי עד שתאושרנה. listable: ניתנות להצעה + no_tag_selected: לא בוצעו שינויים בתגיות שכן לא נבחרו כאלו not_listable: לא תוצענה not_trendable: לא תופענה תחת נושאים חמים not_usable: לא שמישות peaked_on_and_decaying: הגיע לשיא ב-%{date}, ודועך עכשיו - title: האשתגיות חמות + title: תגיות חמות trendable: עשויה להופיע תחת נושאים חמים trending_rank: 'מדורגת #%{rank}' usable: ניתנת לשימוש @@ -885,12 +863,34 @@ he: edit_preset: ערוך/י טקסט מוכן מראש לאזהרה empty: לא הגדרת עדיין שום טקסט מוכן מראש לאזהרה. title: ניהול טקסטים מוכנים מראש לאזהרות + webhooks: + add_new: הוספת נקודת קצה + delete: מחיקה + description_html: כלי webhook מאפשר למסטודון לשגר התראות זמן-אמת לגבי אירועים נבחרים ליישומון שלך כדי שהוא יוכל להגיב אוטומטית. + disable: כיבוי + disabled: כבוי + edit: עריכת נקודת קצה + empty: לא הוגדו נקודות קצה להתליות רשת עדיין. + enable: אפשר + enabled: פעילים + enabled_events: + many: "%{count} אירועים אופשרו" + one: אירוע %{count} מאופשר + other: "%{count} אירועים אופשרו" + two: "%{count} אירועים אופשרו" + events: אירועים + new: Webhook חדש + rotate_secret: החלף מפתח + secret: מפתח הרשמה + status: סטטוס + title: התליות רשת + webhook: התליית רשת admin_mailer: new_appeal: actions: - delete_statuses: כדי למחוק את חצרוציהם + delete_statuses: כדי למחוק את הודעותיהם disable: כדי להקפיא את חשבונם - mark_statuses_as_sensitive: כדי לסמן את חצרוציהם כרגישים + mark_statuses_as_sensitive: כדי לסמן את הודעותיהם כרגישות none: אזהרה sensitive: כדי לסמן את חשבונם כרגיש silence: כדי להגביל את חשבונם @@ -908,17 +908,13 @@ he: new_trends: body: 'הפריטים הבאים זקוקים לסקירה לפני שניתן יהיה להציגם פומבית:' new_trending_links: - no_approved_links: אין כרגע שום קישוריות חמות מאושרות. - requirements: כל אחד מהמועמדים האלה עשוי לעבור את הקישורית החמה המאושרת מדרגה %{rank}, שהיא כרגע %{lowest_link_title} עם ציון של %{lowest_link_score}. title: נושאים חמים new_trending_statuses: - no_approved_statuses: אין כרגע שום חצרוצים חמים מאושרים. - requirements: כל אחד מהמועמדים האלה עשוי לעבור החצרוץ החם המאושר מדרגה %{rank}, שההא כרגע %{lowest_status_url} עם ציון של %{lowest_status_score}. - title: חצרוצים לוהטים + title: הודעות חמות new_trending_tags: - no_approved_tags: אין כרגע שום האשתגיות חמות מאושרות. - requirements: כל אחת מהמועמדות האלה עשויה לעבור את ההאשתגית החמה המאושרת מדרגה %{rank}, שהיא כרגע %{lowest_tag_name} עם ציון של %{lowest_tag_score}. - title: האשתגיות חמות + no_approved_tags: אין כרגע שום תגיות חמות מאושרות. + requirements: כל אחת מהמועמדות האלו עשויה לעבור את התגית החמה המאושרת מדרגה %{rank}, שהיא כרגע %{lowest_tag_name} עם ציון של %{lowest_tag_score}. + title: תגיות חמות subject: נושאים חמים חדשים מוכנים לסקירה ב-%{instance} aliases: add_new: יצירת שם נרדף @@ -929,7 +925,7 @@ he: remove: הסרת שם נרדף appearance: advanced_web_interface: ממשק ווב מתקדם - advanced_web_interface_hint: 'אם ברצונך לעשות שימוש במלוא רוחב המסך, ממשק הווב המתקדם מאפשר לך להגדיר עמודות רבות ושונות כדי לראות בו זמנית כמה מידע שתרצה/י: פיד הבית, התראות, פרהסיה ומספר כלשהו של רשימות והאשתגיות.' + advanced_web_interface_hint: 'אם ברצונך לעשות שימוש במלוא רוחב המסך, ממשק הווב המתקדם מאפשר לך להגדיר עמודות רבות ושונות כדי לראות בו זמנית כמה מידע שתרצה/י: פיד הבית, התראות, פרהסיה ומספר כלשהו של רשימות ותגיות.' animations_and_accessibility: הנפשות ונגישות confirmation_dialogs: חלונות אישור discovery: גילוי @@ -938,37 +934,34 @@ he: guide_link: https://crowdin.com/project/mastodon guide_link_text: כולם יכולים לתרום. sensitive_content: תוכן רגיש - toot_layout: פריסת חצרוץ + toot_layout: פריסת הודעה application_mailer: notification_preferences: שינוי העדפות דוא"ל salutation: "%{name}," settings: 'שינוי הגדרות דוא"ל: %{link}' view: 'תצוגה:' view_profile: צפיה בפרופיל - view_status: הצגת חצרוץ + view_status: הצגת הודעה applications: created: ישום נוצר בהצלחה destroyed: ישום נמחק בהצלחה - invalid_url: כתובת הקישורית אינה חוקית regenerate_token: יצירת אסימון גישה מחדש token_regenerated: אסימון גישה יוצר מחדש בהצלחה warning: זהירות רבה נדרשת עם מידע זה. אין לחלוק אותו אף פעם עם אף אחד! your_token: אסימון הגישה שלך auth: - apply_for_account: בקשת הזמנה - change_password: סיסמא - checkbox_agreement_html: אני מסכים/ה לכללי השרת ולתנאי השימוש - checkbox_agreement_without_rules_html: אני מסכים/ה לתנאי השימוש + apply_for_account: להכנס לרשימת המתנה + change_password: סיסמה delete_account: מחיקת חשבון delete_account_html: אם ברצונך למחוק את החשבון, ניתן להמשיך כאן. תתבקש/י לספק אישור נוסף. description: - prefix_invited_by_user: "@%{name} מזמין אותך להצטרף לשרת זה במסטודון!" + prefix_invited_by_user: "@%{name} רוצה שתצטרף לשרת זה במסטודון!" prefix_sign_up: הרשם/י למסטודון היום! suffix: כבעל/ת חשבון, תוכל/י לעקוב אחרי אנשים, לפרסם עדכונים ולהחליף מסרים עם משתמשים מכל שרת מסטודון ועוד! didnt_get_confirmation: לא התקבלו הוראות אימות? dont_have_your_security_key: אין לך מפתח אבטחה? forgot_password: הנשתכחה סיסמתך? - invalid_reset_password_token: אסימון איפוס הסיסמא לא תקין או פג תוקף. נא לבקש אחד חדש. + invalid_reset_password_token: טוקן איפוס הסיסמה אינו תקין או שפג תוקף. נא לבקש אחד חדש. link_to_otp: נא להכניס את קוד האימות הדו-גורמי מהטלפון או את קוד האחזור link_to_webauth: נא להשתמש במכשיר מפתח האבטחה log_in_with: התחבר באמצעות @@ -977,19 +970,26 @@ he: migrate_account: מעבר לחשבון אחר migrate_account_html: אם ברצונך להכווין את החשבון לעבר חשבון אחר, ניתן להגדיר זאת כאן. or_log_in_with: או התחבר באמצעות + privacy_policy_agreement_html: קארתי והסכמתי למדיניות הפרטיות providers: cas: CAS saml: SAML register: הרשמה registration_closed: "%{instance} לא מקבל חברים חדשים" resend_confirmation: שלח הוראות אימות בשנית - reset_password: איפוס סיסמא - security: החלפת סיסמא - set_new_password: שינוי סיסמא + reset_password: איפוס סיסמה + rules: + preamble: אלו נקבעים ונאכפים ע"י המנחים של %{domain}. + title: כמה חוקים בסיסיים. + security: אבטחה + set_new_password: סיסמה חדשה setup: email_below_hint_html: אם כתובת הדוא"ל להלן לא נכונה, ניתן לשנותה כאן ולקבל דוא"ל אישור חדש. email_settings_hint_html: דוא"ל האישור נשלח ל-%{email}. אם כתובת הדוא"ל הזו לא נכונה, ניתן לשנותה בהגדרות החשבון. title: הגדרות + sign_up: + preamble: כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה. + title: הבא נקים לך את השרת בכתובת %{domain}. status: account_status: מצב חשבון confirming: ממתין שדוא"ל האישור יושלם. @@ -998,7 +998,6 @@ he: redirecting_to: חשבונכם לא פעיל כעת מכיוון שמפנה ל%{acct}. view_strikes: צפיה בעברות קודמות שנרשמו נגד חשבונך too_fast: הטופס הוגש מהר מדי, נסה/י שוב. - trouble_logging_in: בעיה להתחבר לאתר? use_security_key: שימוש במפתח אבטחה authorize_follow: already_following: את/ה כבר עוקב/ת אחרי חשבון זה @@ -1015,8 +1014,8 @@ he: challenge: confirm: המשך hint_html: "טיפ: לא נבקש את סיסמתך שוב בשעה הקרובה." - invalid_password: סיסמא שגויה - prompt: אשר/י סיסמא להמשך + invalid_password: סיסמה שגויה + prompt: יש לאשר את הסיסמה כדי להמשיך crypto: errors: invalid_key: זהו לא מפתח Ed25519 או Curve25519 קביל @@ -1041,14 +1040,14 @@ he: x_seconds: "%{count} שניות" deletes: challenge_not_passed: המידע שהכנסת לא היה נכון - confirm_password: נא להכניס את הסיסמא הנוכחית כדי לוודא את זהותך + confirm_password: נא להכניס את הסיסמה הנוכחית כדי לאמת את זהותך confirm_username: נא להכניס את שם המשתמש כדאי לאשר את הפעולה proceed: מחיקת חשבון success_msg: חשבונך נמחק בהצלחה warning: before: 'לפני שנמשיך, נא לקרוא בזהירות את ההערות הבאות:' caches: מידע שהוטמן על ידי שרתים אחרים עשוי להתמיד - data_removal: חצרוציך וכל מידע אחר יוסרו לתמיד + data_removal: הודעותיך וכל מידע אחר יוסרו לתמיד email_change_html: ניתן לשנות את כתובת הדוא"ל שלך מבלי למחוק את החשבון email_contact_html: אם הוא עדיין לא הגיע, ניתן לקבל עזרה על ידי משלוח דואל ל-%{email} email_reconfirmation_html: אם לא מתקבל דוא"ל האישור, ניתן לבקש אותו שוב @@ -1056,10 +1055,6 @@ he: more_details_html: לפרטים נוספים, ראו את מדיניות הפרטיות. username_available: שם המשתמש שלך שוב יהיה זמין username_unavailable: שם המשתמש שלך יישאר בלתי זמין - directories: - directory: מדריך פרופילים - explanation: גלו משתמשים בהתבסס על תחומי העניין שלהם - explore_mastodon: חקור את %{title} disputes: strikes: action_taken: הפעולה שבוצעה @@ -1070,17 +1065,19 @@ he: appealed_msg: הערעור שלך הוגש. במידה ויאושר, תיודע. appeals: submit: הגש ערעור + approve_appeal: קבלת ערעור associated_report: הדו"ח המשויך created_at: מתאריך description_html: אלו הן הפעולות שננקטו כנגד חשבונך והאזהרות שנשלחו אליך על ידי צוות %{instance}. recipient: הנמען - status: 'חצרוץ #%{id}' - status_removed: החצרוץ כבר הוסר מהמערכת + reject_appeal: דחיית ערעור + status: 'הודעה #%{id}' + status_removed: ההודעה כבר הוסרה מהמערכת title: "%{action} מתאריך %{date}" title_actions: - delete_statuses: הסרת חצרוץ + delete_statuses: הסרת הודעה disable: הקפאת חשבון - mark_statuses_as_sensitive: סימון חצרוצים כרגישים + mark_statuses_as_sensitive: סימון הודעות כרגישות none: אזהרה sensitive: סימו חשבון כרגיש silence: הגבלת חשבון @@ -1112,7 +1109,7 @@ he: archive_takeout: date: תאריך download: הורדת הארכיון שלך - hint_html: ניתן לבקש ארכיון של חצרוציך וקבצי המדיה שלך. המידע המיוצא יהיה בפורמט אקטיביטיפאב, שיכול להיקרא על ידי כל תוכנה התומכת בו. ניתן לבקש ארכיון מדי 7 ימים. + hint_html: ניתן לבקש ארכיון של הודעותיך וקבצי המדיה שלך. המידע המיוצא יהיה בפורמט אקטיביטיפאב, שיכול להיקרא על ידי כל תוכנה התומכת בו. ניתן לבקש ארכיון מדי 7 ימים. in_progress: מייצר את הארכיון שלך... request: לבקש את הארכיון שלך size: גודל @@ -1126,8 +1123,8 @@ he: featured_tags: add_new: הוספת חדש errors: - limit: המספר המירבי של האשתגיות כבר מוצג - hint_html: "מהן האשתגיות נבחרות? הן מוצגות במובלט בפרופיל הפומבי שלך ומאפשר לאנשים לעיין בחצרוציך הפומביים המסמונים בהאשתגיות אלה. הן כלי אדיר למעקב אחר עבודות יצירה ופרוייקטים לטווח ארוך." + limit: המספר המירבי של התגיות כבר מוצג + hint_html: "מהן תגיות נבחרות? הן מוצגות במובלט בפרופיל הפומבי שלך ומאפשר לאנשים לעיין בהודעות הפומביות שלך המסומנות בתגיות אלה. הן כלי אדיר למעקב אחר עבודות יצירה ופרוייקטים לטווח ארוך." filters: contexts: account: פרופילים @@ -1136,26 +1133,54 @@ he: public: פידים פומביים thread: שיחות edit: + add_keyword: הוספת מילת מפתח + keywords: מילות מפתח + statuses: הודעות מסויימות + statuses_hint_html: הסנן פועל על בחירה ידנית של הודעות בין אם הן מתאימות למילות המפתח להלן ואם לאו. posts regardless of whether they match the keywords below. בחינה או הסרה של ההודעות מהסנן. title: ערוך מסנן errors: + deprecated_api_multiple_keywords: לא ניתן לשנות פרמטרים אלו מהיישומון הזה בגלל שהם חלים על יותר ממילת מפתח אחת. ניתן להשתמש ביישומון מעודכן יותר או בממשק הוובי. invalid_context: לא סופק הקשר או הקשר לא תקין - invalid_irreversible: סינון בלתי הפיך עובד רק בהקשר פיד הבית או התראות index: + contexts: פילטרים ב %{contexts} delete: למחוק empty: אין לך מסננים. + expires_in: פג תוקף ב %{distance} + expires_on: פג תוקף ב %{date} + keywords: + many: "%{count} מילות מפתח" + one: מילת מפתח %{count} + other: "%{count} מילות מפתח" + two: "%{count} מילות מפתח" + statuses: + many: "%{count} הודעות" + one: הודעה %{count} + other: "%{count} הודעות" + two: "%{count} הודעותיים" + statuses_long: + many: "%{count} הודעות הוסתרו" + one: הודעה %{count} יחידה הוסתרה + other: "%{count} הודעות הוסתרו" + two: הודעותיים %{count} הוסתרו title: מסננים new: + save: שמירת מסנן חדש title: הוספת מסנן חדש + statuses: + back_to_filter: חזרה לפילטר + batch: + remove: הסרה מפילטר + index: + hint: סנן זה חל באופן של בחירת הודעות בודדות ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד הודעות לסנן זה ממנשק הווב. + title: הודעות שסוננו footer: - developers: מפתחות - more: עוד… - resources: משאבים trending_now: נושאים חמים generic: all: הכל changes_saved_msg: השינויים נשמרו בהצלחה! copy: להעתיק delete: למחוק + deselect: בטל בחירה של הכל none: כלום order_by: מיין לפי save_changes: שמור שינויים @@ -1184,7 +1209,6 @@ he: following: רשימת נעקבים muting: רשימת השתקות upload: יבוא - in_memoriam_html: לזכר. invites: delete: ביטול הפעלה expired: פג תוקף @@ -1215,7 +1239,7 @@ he: login_activities: authentication_methods: otp: יישומון אימות דו-שלבי - password: סיסמא + password: סיסמה sign_in_token: קוד אימות בדוא"ל webauthn: מפתחות אבטחה description_html: אם את/ה רואה פעילות שאינך מזהה, אנא שנה/י את סיסמתך והפעל/י אימות דו-גורמי. @@ -1225,7 +1249,7 @@ he: title: הסטוריית אימותים media_attachments: validations: - images_and_video: לא ניתן להוסיף וידאו לחצרוץ שכבר מכיל תמונות + images_and_video: לא ניתן להוסיף וידאו להודעה שכבר מכילה תמונות not_ready: לא ניתן להצמיד קבצים שהעלאתם לא הסתיימה. נסה/י שוב בעוד רגע! too_many: לא ניתן להוסיף יותר מארבעה קבצים migrations: @@ -1265,28 +1289,17 @@ he: carry_blocks_over_text: חשבון זה עבר מ-%{acct}, אותו חסמת בעבר. carry_mutes_over_text: חשבון זה עבר מ-%{acct}, אותו השתקת בעבר. copy_account_note_text: 'חשבון זה הועבר מ-%{acct}, הנה הערותיך הקודמות לגביהם:' + navigation: + toggle_menu: הצגת\הסתרת תפריט notification_mailer: admin: + report: + subject: '%{name} שלח/ה דו"ח' sign_up: subject: "%{name} נרשמו" - digest: - action: הצגת כל ההתראות - body: להלן סיכום זריז של הדברים שקרו על מאז ביקורך האחרון ב-%{since} - mention: "%{name} פנה אליך ב:" - new_followers_summary: - many: חוץ מזה, נוספו לך %{count} עוקבים חדשים בזמן שלא היית! מדהים! - one: חוץ מזה, נוסף לך עוקב חדש בזמן שלא היית! הידד! - other: חוץ מזה, נוספו לך %{count} עוקבים חדשים בזמן שלא היית! מדהים! - two: חוץ מזה, נוספו לך %{count} עוקבים חדשים בזמן שלא היית! מדהים! - subject: - many: "%{count} התראות חדשות מאז ביקורך האחרון 🐘" - one: "התראה חדשה אחת מאז ביקורך האחרון 🐘" - other: "%{count} התראות חדשות מאז ביקורך האחרון 🐘" - two: "%{count} התראות חדשות מאז ביקורך האחרון 🐘" - title: בהעדרך... favourite: - body: 'חצרוצך חובב על ידי %{name}:' - subject: חצרוצך חובב על ידי %{name} + body: 'הודעתך חובבה על ידי %{name}:' + subject: הודעתך חובבה על ידי %{name} title: חיבוב חדש follow: body: "%{name} עכשיו במעקב אחריך!" @@ -1305,13 +1318,13 @@ he: poll: subject: סקר מאת %{name} הסתיים reblog: - body: 'חצרוצך הודהד על ידי %{name}:' - subject: חצרוצך הודהד על ידי%{name} + body: 'הודעתך הודהדה על ידי %{name}:' + subject: הודעתך הודהדה על ידי%{name} title: הדהוד חדש status: - subject: "%{name} בדיוק חצרץ" + subject: "%{name} בדיוק פרסם" update: - subject: "%{name} ערכו פוסט" + subject: "%{name} ערכו הודעה" notifications: email_events: ארועים להתראות דוא"ל email_events_hint: 'בחר/י ארועים עבורים תרצה/י לקבל התראות:' @@ -1353,8 +1366,10 @@ he: too_many_options: לא יכול להכיל יותר מ-%{max} פריטים preferences: other: שונות - posting_defaults: ברירות מחדל לחצרוץ + posting_defaults: ברירות מחדל להודעות public_timelines: פידים פומביים + privacy_policy: + title: מדיניות פרטיות reactions: errors: limit_reached: גבול מספר התגובות השונות הושג @@ -1377,33 +1392,18 @@ he: remove_selected_follows: בטל מעקב אחר המשתמשים שסומנו status: מצב חשבון remote_follow: - acct: נא להקליד שם_משתמש@קהילה מהם ברצונך לעקוב missing_resource: לא ניתן למצוא קישורית להפניה לחשבונך - no_account_html: אין לך חשבון? ניתן להרשם כאן - proceed: להמשיך ולעקוב - prompt: 'לעקוב אחרי:' - reason_html: "למה שלב זה הכרחי? %{instance} עשוי לא להיות השרת בו את/ה רשום/ה, כך שנצטרך קודם כל להעביר אותך לשרת הבית." - remote_interaction: - favourite: - proceed: המשך לחיבוב - prompt: 'ברצונך לחבב חצרוץ זה:' - reblog: - proceed: המשיכו להדהוד - prompt: 'ברצונך להדהד חצרוץ זה:' - reply: - proceed: המשיבו לתגובה - prompt: 'ברצונך להשיב לחצרוץ זה:' reports: errors: invalid_rules: לא מתייחס לכללים קבילים rss: content_warning: 'אזהרת תוכן:' descriptions: - account: פוסטים ציבוריים מחשבון @%{acct} - tag: 'פוסטים ציבוריים עם תיוג #%{hashtag}' + account: הודעות ציבוריות מחשבון @%{acct} + tag: 'הודעות ציבוריות עם תיוג #%{hashtag}' scheduled_statuses: - over_daily_limit: חרגת מהמספר המקסימלי של חצרוצים מתוזמנים להיום, שהוא %{limit} - over_total_limit: חרגת מהמספר המקסימלי של חצרוצים מתוזמנים, שהוא %{limit} + over_daily_limit: חרגת מהמספר המקסימלי של הודעות מתוזמנות להיום, שהוא %{limit} + over_total_limit: חרגת מהמספר המקסימלי של הודעות מתוזמנות, שהוא %{limit} too_soon: תאריך התזמון חייב להיות בעתיד sessions: activity: פעילות אחרונה @@ -1424,7 +1424,7 @@ he: phantom_js: PhantomJS qq: דפדפן QQ safari: ספארי - uc_browser: UCBrowser + uc_browser: דפדפן UC weibo: Weibo current_session: חיבור נוכחי description: "%{browser} על %{platform}" @@ -1434,7 +1434,7 @@ he: adobe_air: אדובה אייר android: אנדרואיד blackberry: בלקברי - chrome_os: Chrome OS + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: לינוקס @@ -1458,7 +1458,7 @@ he: development: פיתוח edit_profile: עריכת פרופיל export: יצוא מידע - featured_tags: האשתגיות נבחרות + featured_tags: תגיות נבחרות import: יבוא import_and_export: יבוא ויצוא migrate: הגירת חשבון @@ -1466,7 +1466,7 @@ he: preferences: העדפות profile: פרופיל relationships: נעקבים ועוקבים - statuses_cleanup: מחיקת חצרוצים אוטומטית + statuses_cleanup: מחיקת הודעות אוטומטית strikes: עבירות מנהלתיות two_factor_authentication: אימות דו-שלבי webauthn_authentication: מפתחות אבטחה @@ -1482,7 +1482,7 @@ he: many: "%{count} תמונות" one: תמונה %{count} other: "%{count} תמונות" - two: "%{count} תמונות" + two: "%{count} תמונותיים" video: many: "%{count} סרטונים" one: סרטון %{count} @@ -1492,19 +1492,19 @@ he: content_warning: 'אזהרת תוכן: %{warning}' default_language: זהה לשפת ממשק disallowed_hashtags: - many: 'מכיל את ההאשתגיות האסורות: %{tags}' - one: 'מכיל את ההאשתג האסור: %{tags}' - other: 'מכיל את ההאשתגיות האסורות: %{tags}' - two: 'מכיל את ההאשתגיות האסורות: %{tags}' + many: 'מכיל את התגיות האסורות: %{tags}' + one: 'מכיל את התגית האסורה: %{tags}' + other: 'מכיל את התגיות האסורות: %{tags}' + two: 'מכיל את התגיות האסורות: %{tags}' edited_at_html: נערך ב-%{date} errors: - in_reply_not_found: נראה שהחצרוץ שאת/ה מנסה להגיב לו לא קיים. + in_reply_not_found: נראה שההודעה שאת/ה מנסה להגיב לה לא קיימת. open_in_web: פתח ברשת over_character_limit: חריגה מגבול התווים של %{max} pin_errors: - direct: לא ניתן לקבע חצרוצים שנראותם מוגבלת למכותבים בלבד - limit: הגעת למספר החצרוצים המוצמדים המירבי. - ownership: חצרוצים של אחרים לא יכולים להיות מוצמדים + direct: לא ניתן לקבע הודעות שנראותן מוגבלת למכותבים בלבד + limit: הגעת למספר המירבי של ההודעות המוצמדות + ownership: הודעות של אחרים לא יכולות להיות מוצמדות reblog: אין אפשרות להצמיד הדהודים poll: total_people: @@ -1533,26 +1533,26 @@ he: unlisted: מוסתר unlisted_long: פומבי, אבל לא להצגה בפיד הציבורי statuses_cleanup: - enabled: מחק חצרוצים ישנים אוטומטית - enabled_hint: מוחק אוטומטית את חצרוציך לכשהגיעו לסף גיל שנקבע מראש, אלא אם הם תואמים את אחת ההחרגות למטה + enabled: מחק הודעות ישנות אוטומטית + enabled_hint: מוחק אוטומטית את הודעותיך לכשהגיעו לסף גיל שנקבע מראש, אלא אם הן תואמות את אחת ההחרגות למטה exceptions: החרגות - explanation: היות ומחיקת חצרוצים היא פעולה יקרה במשאבים, היא נעשית לאט לאורך זמן כאשר השרת לא עסוק במשימות אחרות. לכן, ייתכן שהחצרוצים שלך ימחקו מעט אחרי שיגיעו לסף הגיל שהוגדר. + explanation: היות ומחיקת הודעות היא פעולה יקרה במשאבים, היא נעשית לאט לאורך זמן כאשר השרת לא עסוק במשימות אחרות. לכן, ייתכן שההודעות שלך ימחקו מעט אחרי שיגיעו לסף הגיל שהוגדר. ignore_favs: התעלם ממחובבים ignore_reblogs: התעלם מהדהודים interaction_exceptions: החרגות מבוססות אינטראקציות - interaction_exceptions_explanation: שים.י לב שאין עֲרֻבָּה למחיקת חצרוצים אם הם יורדים מתחת לסף החיבובים או ההדהודים לאחר הסריקה הראשונית. + interaction_exceptions_explanation: שים.י לב שאין עֲרֻבָּה למחיקת הודעות אם הן יורדות מתחת לסף החיבובים או ההדהודים לאחר הסריקה הראשונית. keep_direct: שמירת הודעות ישירות keep_direct_hint: לא מוחק אך אחת מההודעות הישירות שלך - keep_media: שמור חצרוצים עם מדיה - keep_media_hint: לא מוחק את חצרוציך שמצורפים אליהם קבצי מדיה - keep_pinned: שמור חצרוצים מוצמדים - keep_pinned_hint: לא מוחק אף אחד מהחצרוצים המוצמדים שלך + keep_media: שמור הודעות עם מדיה + keep_media_hint: לא מוחק את הודעותיך שמצורפים אליהן קבצי מדיה + keep_pinned: שמור הודעות מוצמדות + keep_pinned_hint: לא מוחק אף אחד מההודעות המוצמדות שלך keep_polls: שמור סקרים keep_polls_hint: לא מוחר אף אחד מהסקרים שלך - keep_self_bookmark: שמור חצרוצים שסימנת - keep_self_bookmark_hint: לא מוחק חצרוצים שסימנת - keep_self_fav: שמור חצרומים שחיבבת - keep_self_fav_hint: לא מוחק חצרוצים שלך אם חיבבת אותם + keep_self_bookmark: שמור הודעות שסימנת + keep_self_bookmark_hint: לא מוחק הודעות שסימנת + keep_self_fav: שמור הודעות שחיבבת + keep_self_fav_hint: לא מוחק הודעות שלך אם חיבבת אותם min_age: '1209600': שבועיים '15778476': חצי שנה @@ -1563,12 +1563,12 @@ he: '63113904': שנתיים '7889238': 3 חודשים min_age_label: סף גיל - min_favs: השאר חצרוצים מחובבים לפחות - min_favs_hint: לא מוחק מי מחצרוציך שקיבלו לפחות את המספר הזה של חיבובים. להשאיר ריק כדי למחוק חצרוצים ללא קשר למספר החיבובים שקיבלו - min_reblogs: שמור חצרוצים מהודהדים לפחות - min_reblogs_hint: לא מוחק מי מחצרוציך שקיבלו לפחות את המספר הזה של הדהודים. להשאיר ריק כדי למחוק חצרוצים ללא קשר למספר ההדהודים שקיבלו + min_favs: השאר הודעות מחובבות לפחות + min_favs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של חיבובים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר החיבובים שקיבלו + min_reblogs: שמור הודעות מהודהדות לפחות + min_reblogs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של הדהודים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר ההדהודים שקיבלו stream_entries: - pinned: חצרוץ מוצמד + pinned: הודעה נעוצה reblogged: הודהד sensitive_content: תוכן רגיש strikes: @@ -1576,8 +1576,6 @@ he: too_late: מאוחר מדי להגיש ערעור tags: does_not_match_previous_name: לא תואם את השם האחרון - terms: - title: תנאי שימוש ומדיניות פרטיות ב-%{instance} themes: contrast: מסטודון (ניגודיות גבוהה) default: מסטודון (כהה) @@ -1630,46 +1628,39 @@ he: spam: ספאם violation: התוכן מפר את כללי הקהילה הבאים explanation: - delete_statuses: כמה מחצרוציך מפרים אחד או יותר מכללי הקהילה וכתוצאה הוסרו על ידי מנחי הקהילה של %{instance}. + delete_statuses: כמה מהודעותיך מפרות אחד או יותר מכללי הקהילה וכתוצאה הוסרו על ידי מנחי הקהילה של %{instance}. disable: אינך יכול/ה יותר להשתמש בחשבונך, אבל הפרופיל ושאר המידע נשארו על עומדם. ניתן לבקש גיבוי של המידע, לשנות את הגדרות החשבון או למחוק אותו. - mark_statuses_as_sensitive: כמה מחצרוציך סומנו כרגישים על ידי מנחי הקהילה של %{instance}. זה אומר שאנשים יצטרכו להקיש על המדיה בחצרוצים לפני שתופיע תצוגה מקדימה. ניתן לסמן את המידע כרגיש בעצמך בחצרוציך העתידיים. + mark_statuses_as_sensitive: כמה מהודעותיך סומנו כרגישות על ידי מנחי הקהילה של %{instance}. זה אומר שאנשים יצטרכו להקיש על המדיה בהודעות לפני שתופיע תצוגה מקדימה. ניתן לסמן את המידע כרגיש בעצמך בהודעותיך העתידיות. sensitive: מעתה ואילך כל קבצי המדיה שיועלו על ידך יסומנו כרגישים ויוסתרו מאחורי אזהרה. - silence: ניתן עדיין להשתמש בחשבונך אבל רק אנשים שכבר עוקבים אחריך יראו את חצרוציך בשרת זה, וייתכן שתוחרג/י מאמצעי גילוי משתמשים. עם זאת, אחרים יוכלו עדיין לעקוב אחריך. + silence: ניתן עדיין להשתמש בחשבונך אבל רק אנשים שכבר עוקבים אחריך יראו את הודעותיך בשרת זה, וייתכן שתוחרג/י מאמצעי גילוי משתמשים. עם זאת, אחרים יוכלו עדיין לעקוב אחריך. suspend: לא ניתן יותר להשתמש בחשבונך, ופרופילך וכל מידע אחר לא נגישים יותר. ניתן עדיין להתחבר על מנת לבקש גיבוי של המידע שלך עד שיוסר סופית בעוד כ-30 יום, אבל מידע מסויים ישמר על מנת לוודא שלא תחמוק/י מההשעיה. reason: 'סיבה:' - statuses: 'חצרוצים מצוטטים:' + statuses: 'הודעות מצוטטות:' subject: - delete_statuses: הפוסטים שלכם ב%{acct} הוסרו + delete_statuses: ההודעות שלכם ב%{acct} הוסרו disable: חשבונך %{acct} הוקפא - mark_statuses_as_sensitive: חצרוציך ב-%{acct} סומנו כרגישים + mark_statuses_as_sensitive: הודעותיך ב-%{acct} סומנו כרגישות none: אזהרה עבור %{acct} - sensitive: חצרוציך ב-%{acct} יסומנו כרגישים מעתה ואילך + sensitive: הודעותיך ב-%{acct} יסומנו כרגישות מעתה ואילך silence: חשבונך %{acct} הוגבל suspend: חשבונך %{acct} הושעה title: - delete_statuses: פוסטים שהוסרו + delete_statuses: הודעות הוסרו disable: חשבון קפוא - mark_statuses_as_sensitive: חצרוצים סומנו כרגישים + mark_statuses_as_sensitive: הודעות סומנו כרגישות none: אזהרה sensitive: החשבון סומן כרגיש silence: חשבון מוגבל suspend: חשבון מושעה welcome: edit_profile_action: הגדרת פרופיל - edit_profile_step: תוכל.י להתאים אישית את הפרויל באמצעות העלאת יצגן (אוואטר), כותרת, שינוי כינוי ועוד. אם תרצה.י לסקור את עוקביך/ייך החדשים לפני שתרשה.י להם לעקוב אחריך/ייך, תוכל.י לנעול את החשבון לשם כך. + edit_profile_step: תוכל.י להתאים אישית את הפרופיל באמצעות העלאת יצגן (אוואטר), כותרת, שינוי כינוי ועוד. אם תרצה.י לסקור את עוקביך/ייך החדשים לפני שתרשה.י להם לעקוב אחריך/ייך. explanation: הנה כמה טיפים לעזור לך להתחיל - final_action: התחל/ילי לחצרץ - final_step: 'התחל/ילי לחצרץ ! אפילו ללא עוקבים ייתכן שהחצרוצים הפומביים של יצפו ע"י אחרים, למשל בציר הזמן המקומי או בתגי הקבצה (האשטגים). כדאי להציג את עצמך תחת התג #introductions או #היוש' + final_action: התחל/ילי לפרסם הודעות + final_step: 'התחל/ילי לפרסם הודעות! אפילו ללא עוקבים ייתכן שההודעות הפומביות שלך יראו ע"י אחרים, למשל בציר הזמן המקומי או בתגיות הקבצה (האשתגים). כדאי להציג את עצמך תחת התגית #introductions או #היכרות.' full_handle: שם המשתמש המלא שלך full_handle_hint: זה מה שתאמר.י לחברייך כדי שיוכלו לשלוח לך הודעה או לעקוב אחרייך ממופע אחר. - review_preferences_action: שנה הגדרות - review_preferences_step: וודא לקבוע את העדפותייך, למשל איזה הודעות דוא"ל תרצה/י לקבל, או איזו רמת פרטיות תרצה כברירת מחדל לחצרוצים שלך. אם אין לך בעיה עם זה, תוכל לאפשר הפעלה אוטומטית של הנפשות GIF subject: ברוכים הבאים למסטודון - tip_federated_timeline: ציר הזמן הפדרטיבי הוא מבט לכל הפדיברס, אך הוא כולל רק אנשים שחבריך למופע הספציפי שהתחברת אליו נרשמו אליו, כך שהוא לא שלם. - tip_following: את.ה כבר עוקב.ת אחר האדמין (מנהל השרת) כברירת מחדל. על מנת למצוא עוד אנשים מעניינים, בדוק את צירי הזמן המקומי והפדרטיבי. - tip_local_timeline: ציר הזמן המקומי מספק מבט לאנשים במופע זה (%{instance}). אלו הם שכנייך המידיים ! - tip_mobile_webapp: אם דפדפן הנייד שלך מאפשר את הוספת מסטודון למסך הבית שלך, תוכל לקבל התראות בדחיפה (push). במובנים רבים אפשרות זאת מתנהגת כמו ישומון ! - tips: טיפים title: ברוך/ה הבא/ה, %{name} ! users: follow_limit_reached: לא תוכל לעקוב אחר יותר מ %{limit} אנשים diff --git a/config/locales/hi.yml b/config/locales/hi.yml index d0b1082fcd761c..7678edc3850ad1 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -1,17 +1,5 @@ --- hi: - about: - about_this: विवरण - active_count_after: सक्रिय - contact: संपर्क - learn_more: अधिक जानें - privacy_policy: गोपनीयता नीति - status_count_after: - one: स्थिति - other: स्थितियां - unavailable_content_description: - domain: सर्वर - reason: कारण errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/hr.yml b/config/locales/hr.yml index dd3b99dccb8a81..7a9ee2dc394950 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -1,39 +1,14 @@ --- hr: about: - about_hashtag_html: Ovo su javni tootovi označeni s #%{hashtag}. Možete biti u interakciji s njima, ako imate račun bilo gdje u fediverzumu. about_mastodon_html: 'Društvena mreža budućnosti: bez oglasa, bez korporativnog nadzora, etički dizajn i decentralizacija! Budite u vlasništvu svojih podataka pomoću Mastodona!' - about_this: Dodatne informacije - active_count_after: aktivnih - active_footnote: Mjesečno aktivnih korisnika (MAU) - apps: Mobilne aplikacije - apps_platforms: Koristite Mastodon na iOS-u, Androidu i drugim platformama - contact: Kontakt contact_missing: Nije postavljeno - discover_users: Otkrijte korisnike - documentation: Dokumentacija - get_apps: Isprobajte mobilnu aplikaciju - learn_more: Saznajte više - privacy_policy: Politika privatnosti - server_stats: 'Statistika poslužitelja:' - source_code: Izvorni kôd - status_count_before: Koji su objavili - terms: Uvjeti pružanja usluga - unavailable_content: Moderirani poslužitelji accounts: follow: Prati following: Praćenih last_active: posljednja aktivnost - media: Medijski sadržaj nothing_here: Ovdje nema ničeg! - people_followed_by: Ljudi koje %{name} prati - people_who_follow: Ljudi koji prate %{name} posts_tab_heading: Tootovi - posts_with_replies: Tootovi i odgovori - roles: - group: Grupa - unavailable: Profil nije dostupan - unfollow: Prestani pratiti admin: account_actions: action: Izvrši radnju @@ -44,7 +19,6 @@ hr: are_you_sure: Jeste li sigurni? by_domain: Domena change_email: - changed_msg: E-pošta računa uspješno je promijenjena! current_email: Trenutna e-pošta label: Promijeni e-poštu new_email: Nova e-pošta @@ -72,15 +46,12 @@ hr: moderation: all: Sve action_logs: - deleted_status: "(izbrisani status)" empty: Nema pronađenih izvješća. filter_by_action: Filtriraj prema radnji filter_by_user: Filtriraj prema korisniku application_mailer: settings: 'Promijeni postavke e-pošte: %{link}' view: 'Vidi:' - applications: - invalid_url: Unesena poveznica nije valjana auth: didnt_get_confirmation: Niste primili upute za potvrđivanje? forgot_password: Zaboravljena lozinka? @@ -131,9 +102,6 @@ hr: new: title: Dodaj novi filter footer: - developers: Razvijatelji - more: Više… - resources: Resursi trending_now: Popularno generic: all: Sve @@ -165,9 +133,6 @@ hr: one: 1 korištenje other: "%{count} korištenja" notification_mailer: - digest: - body: Ovo je kratak sažetak propuštenih poruka od Vašeg prošlog posjeta %{since} - mention: "%{name} Vas je spomenuo/la:" favourite: body: "%{name} je označio/la Vaš status favoritom:" subject: "%{name} je označio/la Vaš status favoritom" @@ -202,10 +167,7 @@ hr: errors: already_voted: Već ste glasali u ovoj anketi remote_follow: - acct: Unesite Vaše KorisničkoIme@domena s kojim želite izvršiti radnju missing_resource: Nije moguće pronaći traženi URL preusmjeravanja za Vaš račun - proceed: Dalje - prompt: 'Pratit ćete:' sessions: platforms: other: nepoznata platforma @@ -262,9 +224,7 @@ hr: suspend: Račun je suspendiran welcome: edit_profile_action: Postavi profil - review_preferences_action: Promijeni postavke subject: Dobro došli na Mastodon - tips: Savjeti users: invalid_otp_token: Nevažeći dvo-faktorski kôd signed_in_as: 'Prijavljeni kao:' diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 1ee801fd02f5b4..529d4dadf7b390 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1,96 +1,27 @@ --- hu: about: - about_hashtag_html: Ezek a #%{hashtag} hashtaggel ellátott nyilvános bejegyzések. Reagálhatsz rájuk, ha már van felhasználói fiókod valahol a föderációban. about_mastodon_html: 'A jövő közösségi hálózata: Hirdetések és céges megfigyelés nélkül, etikus dizájnnal és decentralizációval! Legyél a saját adataid ura a Mastodonnal!' - about_this: Névjegy - active_count_after: aktív - active_footnote: Havonta aktív felhasználók - administered_by: 'Adminisztrátor:' - api: API - apps: Mobil appok - apps_platforms: Használd a Mastodont iOS-ről, Androidról vagy más platformról - browse_directory: Böngészd a profilokat és szűrj érdeklődési körre - browse_local_posts: Nézz bele a szerver élő, nyilvános bejegyzéseibe - browse_public_posts: Nézz bele a Mastodon élő, nyilvános bejegyzéseibe - contact: Kapcsolat contact_missing: Nincs megadva contact_unavailable: N/A - continue_to_web: Tovább a webes alkalmazáshoz - discover_users: Találj meg másokat - documentation: Dokumentáció - federation_hint_html: Egy %{instance} fiókkal bármely más Mastodon szerveren vagy a föderációban lévő felhasználót követni tudsz. - get_apps: Próbálj ki egy mobil appot hosted_on: "%{domain} Mastodon szerver" - instance_actor_flash: | - Ez a fiók virtuális, magát a szervert reprezentálja, nem pedig konkrét - felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni, hacsak nem akarod a teljes szervert kitiltani, mely esetben a domain tiltásának használata javasolt. - learn_more: Tudj meg többet - logged_in_as_html: Belépve, mint %{username}. - logout_before_registering: Már be vagy jelentkezve. - privacy_policy: Adatvédelmi szabályzat - rules: Szerverünk szabályai - rules_html: 'Alább látod azon követendő szabályok összefoglalóját, melyet be kell tartanod, ha szeretnél fiókot ezen a szerveren:' - see_whats_happening: Nézd, mi történik - server_stats: 'Szerver statisztika:' - source_code: Forráskód - status_count_after: - one: bejegyzést írt - other: bejegyzést írt - status_count_before: Eddig - tagline: Kövess barátokat és találj újakat - terms: Felhasználási feltételek - unavailable_content: Kimoderált szerverek - unavailable_content_description: - domain: Szerver - 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. - rejecting_media_title: Kiszűrt média - silenced: 'Az ezen szerverekről származó bejegyzéseket elrejtjük a nyilvános idővonalakról és beszélgetésekből, a rajtuk lévő felhasználók műveleteiről nem küldünk értesítéseket, hacsak nem követed őket:' - silenced_title: Elnémított szerverek - 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. - suspended_title: Felfüggesztett szerverek - 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 - user_count_before: Összesen - what_is_mastodon: Mi a Mastodon? + title: Névjegy accounts: - choices_html: "%{name} választásai:" - endorsements_hint: A webes felületen promózhatsz általad követett embereket, akik itt fognak megjelenni. - featured_tags_hint: Szerepeltethetsz bizonyos hashtageket, melyek itt jelennek majd meg. follow: Követés followers: one: Követő other: Követő following: Követett - instance_actor_flash: |- - Ez a fiók virtuális, magát a szervert reprezentálja, nem pedig konkrét - felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni. - joined: Csatlakozott %{date} + instance_actor_flash: Ez a fiók virtuális, magát a kiszolgálót reprezentálja, nem pedig konkrét felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni. last_active: utoljára aktív link_verified_on: 'A hivatkozás tulajdonosa ekkor volt ellenőrizve: %{date}' - media: Média - moved_html: "%{name} ide költözött: %{new_profile_link}" - network_hidden: Ez az információ nem elérhető nothing_here: Nincs itt semmi! - people_followed_by: "%{name} követettjei" - people_who_follow: "%{name} követői" pin_errors: following: Ehhez szükséges, hogy kövesd már a felhasználót posts: one: Bejegyzés other: Bejegyzés posts_tab_heading: Bejegyzés - posts_with_replies: Bejegyzés válaszokkal - roles: - admin: Adminisztrátor - bot: Bot - group: Csoport - moderator: Moderátor - unavailable: Nincs ilyen profil - unfollow: Követés vége admin: account_actions: action: Művelet végrehajtása @@ -107,12 +38,17 @@ hu: avatar: Profilkép by_domain: Domain change_email: - changed_msg: A fiókhoz tartozó e-mailt megváltoztattuk! + changed_msg: Az emailt sikeresen megváltoztattuk! current_email: Jelenlegi e-mail label: E-mail megváltoztatása new_email: Új e-mail submit: E-mail megváltoztatása title: "%{username} felhasználó e-mail változás" + change_role: + changed_msg: A szerepet sikeresen megváltoztattuk! + label: Szerep megváltoztatása + no_role: Nincs szerep + title: "%{username} szerepének megváltoztatása" confirm: Megerősítés confirmed: Megerősítve confirming: Megerősítés alatt @@ -156,6 +92,7 @@ hu: active: Aktív all: Összes pending: Függőben + silenced: Korlátozott suspended: Felfüggesztve title: Moderáció moderation_notes: Moderációs bejegyzés @@ -163,6 +100,7 @@ hu: most_recent_ip: Legutóbbi IP-cím no_account_selected: Nem változott meg egy fiók sem, mert semmi sem volt kiválasztva no_limits_imposed: Nincs korlátozás + no_role_assigned: Nincs szerep hozzárendelve not_subscribed: Nincs feliratkozás pending: Engedélyezés alatt perform_full_suspension: Felfüggesztés @@ -189,12 +127,7 @@ hu: reset: Visszaállítás reset_password: Jelszó visszaállítása resubscribe: Feliratkozás ismét - role: Engedélyek - roles: - admin: Adminisztrátor - moderator: Moderátor - staff: Stáb - user: Felhasználó + role: Szerep search: Keresés search_same_email_domain: Felhasználók ugyanezzel az email domainnel search_same_ip: Más felhasználók ugyanezzel az IP-vel @@ -237,17 +170,21 @@ hu: approve_user: Felhasználó Jóváhagyása assigned_to_self_report: Jelentés hozzárendelése change_email_user: Felhasználó e-mail címének módosítása + change_role_user: Felhasználó szerepkörének módosítása confirm_user: Felhasználó megerősítése create_account_warning: Figyelmeztetés létrehozása create_announcement: Közlemény létrehozása + create_canonical_email_block: E-mail tiltás létrehozása create_custom_emoji: Egyéni emodzsi létrehozása create_domain_allow: Domain engedélyezés létrehozása create_domain_block: Domain tiltás létrehozása create_email_domain_block: E-mail domain tiltás létrehozása create_ip_block: IP szabály létrehozása create_unavailable_domain: Elérhetetlen domain létrehozása + create_user_role: Szerepkör létrehozása demote_user: Felhasználó lefokozása destroy_announcement: Közlemény törlése + destroy_canonical_email_block: E-mail tiltás törlése destroy_custom_emoji: Egyéni emodzsi törlése destroy_domain_allow: Domain engedélyezés törlése destroy_domain_block: Domain tiltás törlése @@ -256,6 +193,7 @@ hu: destroy_ip_block: IP szabály törlése destroy_status: Bejegyzés törlése destroy_unavailable_domain: Elérhetetlen domain törlése + destroy_user_role: Szerepkör eltávolítása disable_2fa_user: Kétlépcsős hitelesítés letiltása disable_custom_emoji: Egyéni emodzsi letiltása disable_sign_in_token_auth_user: A felhasználó tokenes e-mail hitelesítésének letiltása @@ -269,6 +207,7 @@ hu: reject_user: Felhasználó Elutasítása remove_avatar_user: Profilkép eltávolítása reopen_report: Jelentés újranyitása + resend_user: Megerősítő e-mail újraküldése reset_password_user: Jelszó visszaállítása resolve_report: Jelentés megoldása sensitive_account: A fiókodban minden média kényesnek jelölése @@ -282,31 +221,38 @@ hu: update_announcement: Közlemény frissítése update_custom_emoji: Egyéni emodzsi frissítése update_domain_block: Domain tiltás frissítése + update_ip_block: IP-szabály frissítése update_status: Bejegyzés frissítése + update_user_role: Szerepkör frissítése actions: approve_appeal_html: "%{name} jóváhagyott egy fellebbezést %{target} moderátori döntéséről" approve_user_html: "%{name} jóváhagyta %{target} regisztrációját" assigned_to_self_report_html: "%{name} a %{target} bejelentést magához rendelte" change_email_user_html: "%{name} megváltoztatta %{target} felhasználó e-mail címét" + change_role_user_html: "%{name} módosította %{target} szerepkörét" confirm_user_html: "%{name} megerősítette %{target} e-mail-címét" create_account_warning_html: "%{name} figyelmeztetést küldött %{target} számára" create_announcement_html: "%{name} új közleményt hozott létre: %{target}" + create_canonical_email_block_html: "%{name} letiltotta a(z) %{target} hashű e-mailt" create_custom_emoji_html: "%{name} új emodzsit töltött fel: %{target}" create_domain_allow_html: "%{name} engedélyezte a föderációt %{target} domainnel" create_domain_block_html: "%{name} letiltotta a %{target} domaint" create_email_domain_block_html: "%{name} letiltotta a %{target} e-mail domaint" - create_ip_block_html: "%{name} létrehozott egy szabályt a %{target} IP-vel kapcsolatban" + create_ip_block_html: "%{name} létrehozta a(z) %{target} IP-címre vonatkozó szabályt" create_unavailable_domain_html: "%{name} leállította a kézbesítést a %{target} domainbe" + create_user_role_html: "%{name} létrehozta a(z) %{target} szerepkört" demote_user_html: "%{name} lefokozta %{target} felhasználót" destroy_announcement_html: "%{name} törölte a %{target} közleményt" - destroy_custom_emoji_html: "%{name} törölte az emodzsit: %{target}" + destroy_canonical_email_block_html: "%{name} engedélyezte a(z) %{target} hashű e-mailt" + destroy_custom_emoji_html: "%{name} törölte a(z) %{target} emodzsit" destroy_domain_allow_html: "%{name} letiltotta a föderációt a %{target} domainnel" destroy_domain_block_html: "%{name} engedélyezte a %{target} domaint" destroy_email_domain_block_html: "%{name} engedélyezte a %{target} e-mail domaint" destroy_instance_html: "%{name} véglegesen törölte a(z) %{target} domaint" - destroy_ip_block_html: "%{name} törölt egy szabályt a %{target} IP-vel kapcsolatban" + destroy_ip_block_html: "%{name} törölte a(z) %{target} IP-címre vonatkozó szabályt" destroy_status_html: "%{name} eltávolította %{target} felhasználó bejegyzését" destroy_unavailable_domain_html: "%{name} újraindította a kézbesítést a %{target} domainbe" + destroy_user_role_html: "%{name} törölte a(z) %{target} szerepkört" disable_2fa_user_html: "%{name} kikapcsolta a kétlépcsős azonosítást %{target} felhasználó fiókján" disable_custom_emoji_html: "%{name} letiltotta az emodzsit: %{target}" disable_sign_in_token_auth_user_html: "%{name} letiltotta a tokenes e-mail hitelesítést %{target} felhasználóra" @@ -320,6 +266,7 @@ hu: reject_user_html: "%{name} elutasította %{target} regisztrációját" remove_avatar_user_html: "%{name} törölte %{target} profilképét" reopen_report_html: "%{name} újranyitotta a %{target} bejelentést" + resend_user_html: "%{name} újraküldte %{target} megerősítő e-mailjét" reset_password_user_html: "%{name} visszaállította %{target} felhasználó jelszavát" resolve_report_html: "%{name} megoldotta a %{target} bejelentést" sensitive_account_html: "%{name} kényesnek jelölte %{target} médiatartalmát" @@ -333,8 +280,10 @@ hu: update_announcement_html: "%{name} frissítette a %{target} közleményt" update_custom_emoji_html: "%{name} frissítette az emodzsit: %{target}" update_domain_block_html: "%{name} frissítette a %{target} domain tiltását" + update_ip_block_html: "%{name} módosította a(z) %{target} IP-címre vonatkozó szabályt" update_status_html: "%{name} frissítette %{target} felhasználó bejegyzését" - deleted_status: "(törölt bejegyzés)" + update_user_role_html: "%{name} módosította a(z) %{target} szerepkört" + deleted_account: törölt fiók empty: Nem található napló. filter_by_action: Szűrés művelet alapján filter_by_user: Szűrés felhasználó alapján @@ -378,6 +327,7 @@ hu: listed: Felsorolva new: title: Új egyéni emodzsi hozzáadása + no_emoji_selected: Nem változott meg egy emodzsi sem, mert semmi sem volt kiválasztva not_permitted: Nem vagy jogosult a művelet végrehajtására overwrite: Felülírás shortcode: Rövidítés @@ -413,7 +363,7 @@ hu: space: Tárhely használat title: Műszerfal top_languages: Legaktívabb nyelvek - top_servers: Legaktívabb szerverek + top_servers: Legaktívabb kiszolgálók website: Weboldal disputes: appeals: @@ -430,6 +380,7 @@ hu: destroyed_msg: A domain tiltása feloldva domain: Domain edit: Domain tiltás szerkesztése + existing_domain_block: 'Már szigorúbb korlátozások vonatkoznak a következőre: %{name}.' existing_domain_block_html: A %{name} domainen már szorosabb korlátokat állítottál be, először oldd fel a tiltást. new: create: Tiltás létrehozása @@ -467,7 +418,7 @@ hu: create: Domain hozzáadása resolve: Domain feloldása title: Új e-mail domain tiltása - no_email_domain_block_selected: Nem változott meg egyetlen e-mail domain tiltás sem, mert nem volt egy sem kiválasztva + no_email_domain_block_selected: Nem változott meg egy domain tiltás sem, mert semmi sem volt kiválasztva resolved_dns_records_hint_html: A domain név a következő MX domain-ekre oldódik fel, melyek valójában fogadják az e-mailt. Az MX domain letiltása minden olyan feliratkozást tiltani fog, melyben az e-mailcím ugyanazt az MX domaint használja, még akkor is, ha a látható domain név más. Légy óvatos, hogy ne tilts le nagy e-mail szolgáltatókat. resolved_through_html: Feloldva %{domain}-n keresztül title: Tiltott e-mail domainek @@ -490,7 +441,7 @@ hu: other: Sikertelen próbálkozás %{count} különböző napon. no_failures_recorded: Nem rögzítettünk hibát. title: Elérhetőség - warning: Sikertelen volt az utolsó csatlakozási próbálkozás ehhez a szerverhez + warning: Az utolsó csatlakozási próbálkozás ehhez a kiszolgálóhoz sikertelen volt back_to_all: Mind back_to_limited: Korlátozott back_to_warning: Figyelmeztetés @@ -567,7 +518,7 @@ hu: '94670856': 3 év new: title: Új IP szabály létrehozása - no_ip_block_selected: Nem változtattunk egy IP szabályon sem, mivel egy sem volt kiválasztva + no_ip_block_selected: Nem változott meg egy IP-szabály sem, mert semmi sem volt kiválasztva title: IP szabály relationships: title: "%{acct} kapcsolatai" @@ -650,116 +601,134 @@ hu: unresolved: Megoldatlan updated_at: Frissítve view_profile: Profil megtekintése + roles: + add_new: Szerep hozzáadása + assigned_users: + one: "%{count} felhasználó" + other: "%{count} felhasználó" + categories: + administration: Adminisztráció + invites: Meghívások + moderation: Moderáció + special: Speciális + delete: Törlés + description_html: A felhasználói szerepekkel testreszabhatod, hogy a felhasználóid milyen Mastodon funkciókat és területeket érjenek el. + edit: "'%{name}' szerep szerkesztése" + everyone: Alapértelmezett engedélyek + everyone_full_description_html: Ez az alap szerep, mely minden felhasználóra kihat, azokra is, akiknek nincs hozzárendelt szerepük. Minden más szerep ebből örökli az engedélyeit. + permissions_count: + one: "%{count} engedély" + other: "%{count} engedély" + privileges: + administrator: Adminisztrátor + administrator_description: A felhasználók ezzel a szereppel minden jogosultsággal rendelkeznek + delete_user_data: Felhasználói adatok törlése + delete_user_data_description: Lehetővé teszi a felhasználónak, hogy azonnal törölhesse más felhasználó adatait + invite_users: Felhasználók meghívása + invite_users_description: Lehetővé teszi a felhasználónak, hogy új embereket hívjon meg a kiszolgálóra + manage_announcements: Hirdetmények kezelése + manage_announcements_description: Lehetővé teszi a felhasználónak, hogy a kiszolgáló hirdetményeit kezelje + manage_appeals: Fellebbezések kezelése + manage_appeals_description: Lehetővé teszi, hogy a felhasználó átnézze a moderációval kapcsolatos fellebbezéseket + manage_blocks: Letiltások kezelése + manage_blocks_description: Lehetővé teszi, hogy a felhasználó letiltson email szolgáltatókat és IP címeket + manage_custom_emojis: Egyedi emodzsik kezelése + manage_custom_emojis_description: Lehetővé teszi a felhasználó számára, hogy a kiszolgáló egyéni emodzsiait kezelje + manage_federation: Föderáció kezelése + manage_federation_description: Lehetővé teszi a felhasználó számára, hogy más domainnekkel való föderációt engedélyezzen vagy letiltson, illetve szabályozza a kézbesítést + manage_invites: Meghívások kezelése + manage_invites_description: Lehetővé teszi a felhasználó számára, hogy böngéssze és deaktiválja a meghívási hivatkozásokat + manage_reports: Bejelentések kezelése + manage_reports_description: Lehetővé teszi a felhasználó számára, hogy átnézze a bejelentéseket és moderáljon ezek alapján + manage_roles: Szerepek kezelése + manage_roles_description: Lehetővé teszi a felhasználó számára, hogy a sajátjánál alacsonyabb rangú szerepeket kezeljen és hozzárendeljen másokhoz + manage_rules: Szabályok kezelése + manage_rules_description: Lehetővé teszi a felhasználó számára, hogy megváltoztassa a kiszolgáló szabályait + manage_settings: Beállítások kezelése + manage_settings_description: Lehetővé teszi, hogy a felhasználó megváltoztassa az oldal beállításait + manage_taxonomies: Taxonómiák kezelése + manage_taxonomies_description: Lehetővé teszi, hogy a felhasználó átnézze a felkapott tartalmakat és frissítse a hashtagek beállításait + manage_user_access: Felhasználói hozzáférések kezelése + manage_user_access_description: Lehetővé teszi, hogy a felhasználó letiltsa mások kétlépcsős azonosítását, megváltoztassa az email címüket, és alaphelyzetbe állítsa a jelszavukat + manage_users: Felhasználók kezelése + manage_users_description: Lehetővé teszi, hogy a felhasználó megtekintse mások részletes adatait és moderálja őket + manage_webhooks: Webhookok kezelése + manage_webhooks_description: Lehetővé teszi, hogy a felhasználó webhookokat állítson be adminisztratív eseményekhez + view_audit_log: Audit napló megtekintése + view_audit_log_description: Lehetővé teszi, hogy a felhasználó megtekintse a kiszolgáló adminisztratív eseményeinek történetét + view_dashboard: Irányítópult megtekintése + view_dashboard_description: Lehetővé teszi, hogy a felhasználó elérje az irányítópultot és vele számos metrikát + view_devops_description: Lehetővé teszi, hogy a felhasználó elérje a Sidekiq és pgHero irányítópultjait + title: Szerepek rules: add_new: Szabály hozzáadása delete: Törlés - description_html: Bár a többség azt állítja, hogy elolvasták és egyetértenek a felhasználói feltételekkel, általában ez nem teljesül, amíg egy probléma elő nem jön. Tedd könnyebbé a szervered szabályainak áttekintését azzal, hogy pontokba foglalod azt egy listába. Próbáld meg a különálló szabályokat megtartani rövidnek, egyszerűnek. Próbáld meg azt is, hogy nem darabolod fel őket sok különálló kis pontra. + description_html: Bár a többség azt állítja, hogy elolvasták és egyetértenek a felhasználói feltételekkel, általában ez nem teljesül, amíg egy probléma elő nem jön. Tedd könnyebbé a kiszolgálód szabályainak áttekintését azzal, hogy pontokba foglalod azt egy listában. Az egyes szabályok legyenek rövidek és egyszerűek. Próbáld meg nem túl sok önálló pontra darabolni őket. edit: Szabály szerkesztése - empty: Nincsenek még szerver szabályok definiálva. - title: Szerverszabályzat + empty: Még nincsenek meghatározva a kiszolgáló szabályai. + title: Kiszolgáló szabályai settings: - activity_api_enabled: - desc_html: Helyi bejegyzések, aktív felhasználók és új regisztrációk száma heti bontásban - title: Felhasználói aktivitás összesített statisztikájának publikussá tétele - bootstrap_timeline_accounts: - desc_html: Az egyes felhasználóneveket vesszővel válaszd el! Csak helyi és aktivált fiókok esetében működik. Üresen (alapértelmezettként) minden helyi adminisztrátorra érvényes. - title: Alapértelmezett követések új felhasználók esetében - contact_information: - email: Kapcsolattartói e-mail cím - username: Kapcsolattartó felhasználóneve - custom_css: - desc_html: Változtasd meg a kinézetet ebben a CSS-ben, mely minden oldalon be fog töltődni - title: Egyéni 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 + about: + manage_rules: Kiszolgáló szabályainak kezelése + preamble: Adj meg részletes információkat arról, hogy a kiszolgáló hogyan működik, miként moderálják és finanszírozzák. + rules_hint: Van egy helyünk a szabályoknak, melyeket a felhasználóidnak be kellene tartani. + title: Névjegy + appearance: + preamble: A Mastodon webes felületének testreszabása. + title: Megjelenés + branding: + preamble: A kiszolgáló márkajelzése különbözteti meg a hálózat többi kiszolgálójától. Ez az információ számos környezetben megjelenhet, például a Mastodon webes felületén, natív alkalmazásokban, más weboldalakon és üzenetküldő alkalmazásokban megjelenő hivatkozások előnézetben stb. Ezért a legjobb, ha ez az információ világos, rövid és tömör. + title: Branding + content_retention: + preamble: Felhasználók által generált tartalom Mastodonon való tárolásának szabályozása. + title: Tartalom megtartása + discovery: + follow_recommendations: Ajánlottak követése + preamble: Az érdekes tartalmak felszínre hozása fontos szerepet játszik az új felhasználók bevonásában, akik esetleg nem ismerik a Mastodont. Szabályozd, hogy a különböző felfedezési funkciók hogyan működjenek a kiszolgálón. + profile_directory: Profiladatbázis + public_timelines: Nyilvános idővonalak + title: Felfedezés + trends: Trendek 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 - mascot: - desc_html: Több oldalon is látszik. Legalább 293×205px méret javasolt. Ha nincs beállítva, az alapértelmezett kabalát használjuk - title: Kabala kép - peers_api_enabled: - desc_html: Domainek, amelyekkel ez a szerver kapcsolatban áll - title: Szerverek listájának közzététele, melyekkel ez a szerver kapcsolatban áll - preview_sensitive_media: - desc_html: Más weboldalakon linkelt tartalmaink előnézetében mindenképp benne lesz egy bélyegkép még akkor is, ha a médiát kényesnek jelölték meg - title: Kényes média mutatása OpenGraph előnézetben - profile_directory: - desc_html: Lehetővé teszi, hogy a felhasználóinkat megtalálják - title: Profil adatbázis engedélyezése registrations: - closed_message: - desc_html: Ez az üzenet jelenik meg a főoldalon, ha a regisztráció nem engedélyezett. HTML-tageket is használhatsz - title: Üzenet, ha a regisztráció nem engedélyezett - deletion: - desc_html: Engedélyezed a felhasználóknak, hogy töröljék fiókjukat - title: Fiók törlésének engedélyezése - min_invite_role: - disabled: Senki - title: Meghívások engedélyezése - require_invite_text: - desc_html: Ha a regisztrációhoz kézi jóváhagyásra van szükség, akkor a „Miért akarsz csatlakozni?” válasz kitöltése legyen kötelező, és ne opcionális - title: Az új felhasználóktól legyen megkövetelve a meghívási kérés szövegének kitöltése + preamble: Szabályozd, hogy ki hozhat létre fiókot a kiszolgálón. + title: Regisztrációk registrations_mode: modes: approved: A regisztráció engedélyhez kötött none: Senki sem regisztrálhat open: Bárki regisztrálhat - title: Regisztrációs mód - show_known_fediverse_at_about_page: - desc_html: Ha le van tiltva, a nyilvános, főoldalról elérhető idővonalon csak helyi tartalmak jelennek meg - title: Mutassuk az általunk ismert föderációt az idővonal előnézetben - show_staff_badge: - desc_html: Stáb-jelvény megjelenítése a felhasználó oldalán - title: Stáb-jelvény megjelenítése - site_description: - desc_html: Rövid bemutatkozás a főoldalon és a meta fejlécekben. Írd le, mi teszi ezt a szervert különlegessé! Használhatod a <a> és <em> HTML tageket. - title: Kiszolgáló leírása - site_description_extended: - desc_html: Ide teheted például a közösségi és egyéb szabályzatot, útmutatókat és mindent, ami egyedivé teszi szerveredet. HTML-tageket is használhatsz - title: További egyéni információk - site_short_description: - desc_html: Oldalsávban és meta tag-ekben jelenik meg. Írd le, mi teszi ezt a szervert különlegessé egyetlen bekezdésben. - title: Rövid leírás - site_terms: - desc_html: Megírhatod saját adatkezelési szabályzatodat, felhasználási feltételeidet vagy más hasonló jellegű dokumentumodat. HTML-tageket is használhatsz - title: Egyéni felhasználási feltételek - site_title: A szerver neve - thumbnail: - desc_html: Az OpenGraph-on és API-n keresztüli előnézetekhez használatos. Ajánlott mérete 1200×630 képpont. - title: A szerver bélyegképe - timeline_preview: - desc_html: Nyilvános idővonal megjelenítése a főoldalon - title: Idővonal előnézete - title: Webhely beállításai - trendable_by_default: - desc_html: Azokra a hashtagekere hat, melyet előzőleg nem tiltottak le - title: Felkapott hashtagek engedélyezése előzetes ellenőrzés nélkül - trends: - desc_html: Előzetesen engedélyezett és most felkapott hashtagek nyilvános megjelenítése - title: Felkapott hashtagek + title: Kiszolgálóbeállítások site_uploads: delete: Feltöltött fájl törlése destroyed_msg: Sikeresen töröltük a site feltöltését! statuses: + account: Szerző + application: Alkalmazás back_to_account: Vissza a fiók oldalára back_to_report: Vissza a bejelentés oldalra batch: remove_from_report: Eltávolítás a bejelentésből report: Bejelentés deleted: Törölve + favourites: Kedvencek + history: Verziótörténet + in_reply_to: 'Válasz címzettje:' + language: Nyelv media: title: Média + metadata: Metaadatok no_status_selected: Nem változtattunk meg egy bejegyzést sem, mert semmi sem volt kiválasztva + open: Bejegyzés megnyitása + original_status: Eredeti bejegyzés + reblogs: Megosztások + status_changed: A bejegyzés megváltozott title: Fiók bejegyzései + trending: Felkapott + visibility: Láthatóság with_media: Médiával strikes: actions: @@ -781,7 +750,7 @@ hu: message_html: 'Nem kompatibilis Elasticsearch verzió: %{value}' version_comparison: Az Elasticsearch %{running_version} fut, de %{required_version} szükséges rules_check: - action: Szerver szabályok menedzselése + action: Kiszolgáló szabályainak kezelése message_html: Még nem definiáltál egy szerver szabályt sem. sidekiq_process_check: message_html: Nincs Sidekiq folyamat, mely a %{value} sorhoz van rendelve. Kérlek, nézd át a Sidekiq beállításait @@ -796,9 +765,12 @@ hu: links: allow: Hivatkozás engedélyezése allow_provider: Közzétevő engedélyezése - description_html: Ezek olyan hivatkozások, melyeket a szervered által látott fiókok mostanában sokat osztanak meg. Ez segíthet a felhasználóidnak rátalálni arra, hogy mi történik a világban. Egy hivatkozást sem mutatunk meg nyilvánosan, amíg a közzétevőt jóvá nem hagytad. A hivatkozásokat külön is engedélyezheted vagy visszautasíthatod. + description_html: Ezek olyan hivatkozások, melyeket a kiszolgálód által látott fiókok mostanában sokat osztanak meg. Ez segíthet a felhasználóidnak rátalálni arra, hogy mi történik a világban. Egy hivatkozást sem jelenik meg nyilvánosan, amíg a közzétevőt jóvá nem hagytad. A hivatkozásokat külön is engedélyezheted vagy elutasíthatod. disallow: Hivatkozás letiltása disallow_provider: Közzétevő letiltása + no_link_selected: Nem változott meg egy hivatkozás sem, mert semmi sem volt kiválasztva + publishers: + no_publisher_selected: Nem változott meg egy közzétevő sem, mert semmi sem volt kiválasztva shared_by_over_week: one: Egy ember osztotta meg a múlt héten other: "%{count} ember osztotta meg a múlt héten" @@ -808,16 +780,17 @@ hu: pending_review: Áttekintésre vár preview_card_providers: allowed: A közzétevő hivatkozásai felkapottak lehetnek - description_html: Ezek olyan domainek, melyekre vonatkozó hivatkozásokat gyakran osztanak meg a szervereden. A hivatkozások nem lesznek nyilvánosan trendik, amíg a hivatkozás domainjét jóvá nem hagytad. A jóváhagyásod (vagy visszautasításod) az aldomainekre is vonatkozik. + description_html: Ezek olyan domainek, melyekre vonatkozó hivatkozásokat gyakran osztanak meg a kiszolgálódon. A hivatkozások nem lesznek nyilvánosan felkapottak, amíg a hivatkozás domainjét jóvá nem hagytad. A jóváhagyásod (vagy elutasításod) az aldomainekre is vonatkozik. rejected: A közzétevő hivatkozásai nem lesznek felkapottak title: Közzétévők rejected: Elutasított statuses: allow: Bejegyzés engedélyezése allow_account: Szerző engedélyezése - description_html: Ezek olyan, a szervered által ismert bejegyzések, melyeket mostanság gyakran osztanak meg vagy jelölnek kedvencnek. Ez segíthet az új vagy visszatérő felhasználóidnak, hogy több követhető személyt találjanak Egyetlen bejegyzést sem mutatunk meg nyilvánosan, amíg ennek szerzőjét nem hagytad jóvá és ő nem járult hozzá, hogy őt másoknak ajánlják. Bejegyzéseket egyenként is engedélyezhetsz vagy visszautasíthatsz. + description_html: Ezek olyan, a szervered által ismert bejegyzések, melyeket mostanság gyakran osztanak meg vagy jelölnek kedvencnek. Ez segíthet az új vagy visszatérő felhasználóidnak, hogy több követhető személyt találjanak. Egyetlen bejegyzés sem jelenik meg nyilvánosan, amíg ennek szerzőjét nem hagytad jóvá és ő nem járult hozzá, hogy őt másoknak ajánlják. Bejegyzéseket egyenként is engedélyezhetsz vagy visszautasíthatsz. disallow: Bejegyzés tiltása disallow_account: Szerző tiltása + no_status_selected: Nem változott meg egy felkapott bejegyzés sem, mert semmi sem volt kiválasztva not_discoverable: A szerző nem járult hozzá, hogy mások rátalálhassanak shared_by: one: Megosztva vagy kedvencnek jelölve egy alkalommal @@ -831,8 +804,9 @@ hu: tag_servers_dimension: Legnépszerűbb kiszolgálók tag_servers_measure: különböző kiszolgáló tag_uses_measure: összes használat - description_html: Ezek olyan hashtag-ek, melyek mostanság nagyon sok bejegyzésben jelennek meg, melyet a szervered lát. Ez segíthet a felhasználóidnak abban, hogy megtudják, miről beszélnek legtöbbet az emberek az adott pillanatban. Egyetlen hashtag-et sem mutatunk meg nyilvánosan, amíg azt nem hagytad jóvá. + description_html: Ezek olyan hashtagek, melyek mostanság nagyon sok bejegyzésben jelennek meg, melyet a szervered lát. Ez segíthet a felhasználóidnak abban, hogy megtudják, miről beszélnek legtöbbet az emberek az adott pillanatban. Egyetlen hashtaget sem jelenik meg nyilvánosan, amíg azt nem hagytad jóvá. listable: Javasolható + no_tag_selected: Nem változott meg egy címke sem, mert semmi sem volt kiválasztva not_listable: Nem lesz javasolva not_trendable: Nem fog megjelenni a trendek alatt not_usable: Nem használható @@ -853,6 +827,26 @@ hu: edit_preset: Figyelmeztetés szerkesztése empty: Nem definiáltál még egyetlen figyelmeztetést sem. title: Figyelmeztetések + webhooks: + add_new: Végpont hozzáadása + delete: Törlés + description_html: Egy webhook lehetővé teszi a Mastodon számára, hogy valósidejű értesítéseket küldjön le a kiválasztott eseményekről a te alkalmazásodnak, így az alkalmazásod automatikusan reagálhat ezekre. + disable: Letiltás + disabled: Letiltva + edit: Végpont szerkesztése + empty: Még nincs beállított webhook végpontod. + enable: Engedélyezés + enabled: Aktív + enabled_events: + one: 1 engedélyezett esemény + other: "%{count} engedélyezett esemény" + events: Események + new: Új webhook + rotate_secret: Titok forgatása + secret: Titok aláírása + status: Állapot + title: Webhookok + webhook: Webhook admin_mailer: new_appeal: actions: @@ -876,12 +870,8 @@ hu: new_trends: body: 'A következő elemeket ellenőrizni kell, mielőtt nyilvánosan megjelennének:' new_trending_links: - no_approved_links: Jelenleg nincsenek jóváhagyott felkapott hivatkozások. - requirements: 'Ezek közül bármelyik jelölt lehagyná a %{rank}. jóváhagyott felkapott hivatkozást, amely jelenleg a(z) „%{lowest_link_title}” ezzel a pontszámmal: %{lowest_link_score}.' title: Felkapott hivatkozások new_trending_statuses: - no_approved_statuses: Jelenleg nincsenek jóváhagyott felkapott bejegyzések. - requirements: 'Ezek közül bármelyik jelölt lehagyná a %{rank}. jóváhagyott felkapott bejegyzést, amely jelenleg a(z) „%{lowest_status_url}” ezzel a pontszámmal: %{lowest_status_score}.' title: Felkapott bejegyzések new_trending_tags: no_approved_tags: Jelenleg nincsenek jóváhagyott felkapott hashtagek. @@ -917,20 +907,17 @@ hu: applications: created: Alkalmazás sikeresen létrehozva destroyed: Alkalmazás sikeresen eltávolítva - invalid_url: A megadott URL nem megfelelő regenerate_token: Hozzáférési kulcs újragenerálása token_regenerated: Hozzáférési kulcs sikeresen újragenerálva warning: Ez érzékeny adat. Soha ne oszd meg másokkal! your_token: Hozzáférési kulcsod auth: - apply_for_account: Meghívó kérése + apply_for_account: Felkerülés a várólistára change_password: Jelszó - checkbox_agreement_html: Egyetértek a szerver szabályaival és a felhasználási feltételekkel - checkbox_agreement_without_rules_html: Egyetértek a felhasználási feltételekkel delete_account: Felhasználói fiók törlése delete_account_html: Felhasználói fiókod törléséhez kattints ide. 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_invited_by_user: "@%{name} meghív téged, hogy csatlakozz ehhez a Mastodon kiszolgálóhoz." prefix_sign_up: Regisztrláj még ma a Mastodonra! suffix: Egy fiókkal követhetsz másokat, bejegyzéseket tehetsz közzé, 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? @@ -945,6 +932,7 @@ hu: migrate_account: Felhasználói fiók költöztetése migrate_account_html: Ha szeretnéd átirányítani ezt a fiókodat egy másikra, a beállításokat itt találod meg. or_log_in_with: Vagy jelentkezz be ezzel + privacy_policy_agreement_html: Elolvastam és egyetértek az adatvédemi nyilatkozattal providers: cas: CAS saml: SAML @@ -952,12 +940,18 @@ hu: registration_closed: "%{instance} nem fogad új tagokat" resend_confirmation: Megerősítési lépések újraküldése reset_password: Jelszó visszaállítása + rules: + preamble: Ezeket a(z) %{domain} moderátorai adjak meg és tartatják be. + title: Néhány alapszabály. security: Biztonság set_new_password: Új jelszó beállítása setup: email_below_hint_html: Ha az alábbi e-mail cím nem megfelelő, itt megváltoztathatod és kaphatsz egy új igazoló e-mailt. email_settings_hint_html: A visszaigazoló e-mailt elküldtük ide %{email}. Ha az e-mail cím nem megfelelő, megváltoztathatod a fiókod beállításainál. title: Beállítás + sign_up: + preamble: Egy fiókkal ezen a Mastodon kiszolgálón követhetsz bárkit a hálózaton, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található. + title: Állítsuk be a fiókod a %{domain} kiszolgálón. status: account_status: Fiók állapota confirming: Várakozás az e-mailes visszaigazolásra. @@ -966,7 +960,6 @@ hu: redirecting_to: A fiókod inaktív, mert jelenleg ide %{acct} van átirányítva. view_strikes: Fiókod elleni korábbi szankciók megtekintése too_fast: Túl gyorsan küldted el az űrlapot, próbáld később. - trouble_logging_in: Problémád van a bejelentkezéssel? use_security_key: Biztonsági kulcs használata authorize_follow: already_following: Már követed ezt a felhasználót @@ -1024,10 +1017,6 @@ hu: more_details_html: A részletekért nézd meg az adatvédelmi szabályzatot. 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 - explore_mastodon: "%{title} felfedezése" disputes: strikes: action_taken: Intézkedés @@ -1073,7 +1062,7 @@ hu: '500': content: Sajnáljuk, valami hiba történt a mi oldalunkon. title: Az oldal nem megfelelő - '503': Az oldalt nem tudjuk megmutatni átmeneti szerverprobléma miatt. + '503': Az oldalt átmeneti kiszolgálóprobléma miatt nem lehet kiszolgálni. 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ő alkalmazást. existing_username_validator: not_found: ezzel a névvel nem találtunk helyi felhasználót @@ -1106,29 +1095,60 @@ hu: public: Nyilvános idővonalak thread: Beszélgetések edit: + add_keyword: Kulcsszó hozzáadása + keywords: Kulcsszavak + statuses: Egyedi bejegyzések + statuses_hint_html: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik, függetlenül attól, hogy megfelelnek-e a lenti kulcsszavaknak. Engedélyezze vagy távolítsa el a bejegyzéseket a szűrőből. title: Szűrő szerkesztése errors: + deprecated_api_multiple_keywords: Ezek a paraméterek nem módosíthatóak az alkalmazásból, mert több mint egy szűrőkulcsszóra is hatással vannak. Használd az alkalmazás vagy a webes felület újabb verzióját. invalid_context: A megadott kontextus hamis vagy hiányzik - invalid_irreversible: Visszafordíthatatlan szűrést csak saját idővonalon vagy értesítéseken lehet végezni index: + contexts: 'Szűrés helye: %{contexts}' delete: Törlés empty: Nincs szűrés. + expires_in: 'Ennyi idő múlva jár le: %{distance}' + expires_on: 'Lejárat ideje: %{date}' + keywords: + one: "%{count} kulcsszó" + other: "%{count} kulcsszó" + statuses: + one: "%{count} bejegyzés" + other: "%{count} bejegyzés" + statuses_long: + one: "%{count} egyedi bejegyzés elrejtve" + other: "%{count} egyedi bejegyzés elrejtve" title: Szűrők new: + save: Új szűrő mentése title: Új szűrő hozzáadása + statuses: + back_to_filter: Vissza a szűrőhöz + batch: + remove: Eltávolítás a szűrőből + index: + hint: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik a megadott kritériumoktól függetlenül. Újabb bejegyzéseket adhatsz hozzá ehhez a szűrőhöz a webes felületen keresztül. + title: Megszűrt bejegyzések footer: - developers: Fejlesztőknek - more: Többet… - resources: Segédanyagok trending_now: Most felkapott generic: all: Mind + all_items_on_page_selected_html: + one: "%{count} elem kiválasztva ezen az oldalon." + other: Mind a(z) %{count} elem kiválasztva ezen az oldalon. + all_matching_items_selected_html: + one: "%{count}, a keresésnek megfelelő elem kiválasztva." + other: Mind a(z) %{count}, a keresésnek megfelelő elem kiválasztva. changes_saved_msg: A változásokat elmentettük! copy: Másolás delete: Törlés + deselect: Összes kiválasztás megszüntetése none: Nincs order_by: Rendezés save_changes: Változások mentése + select_all_matching_items: + one: "%{count}, a keresésnek megfelelő elem kiválasztása." + other: Mind a(z) %{count}, a keresésnek megfelelő elem kiválasztása. today: ma validation_errors: one: Valami nincs rendjén! Tekintsd meg a hibát lent @@ -1143,7 +1163,7 @@ hu: merge_long: Megtartjuk a meglévő bejegyzéseket és hozzávesszük az újakat overwrite: Felülírás overwrite_long: Lecseréljük újakkal a jelenlegi bejegyzéseket - preface: Itt importálhatod egy másik szerverről lementett adataidat, például követettjeid és letiltott felhasználóid listáját. + preface: Itt importálhatod egy másik kiszolgálóról lementett adataidat, például követettjeid és letiltott felhasználóid listáját. success: Adataidat sikeresen feltöltöttük és feldolgozásukat megkezdtük types: blocking: Letiltottak listája @@ -1152,7 +1172,6 @@ hu: following: Követettjeid listája muting: Némított felhasználók listája upload: Feltöltés - in_memoriam_html: Emlékünkben. invites: delete: Visszavonás expired: Lejárt @@ -1170,7 +1189,7 @@ hu: one: 1 használat other: "%{count} használat" max_uses_prompt: Nincs korlát - prompt: Az itt generált linkek megosztásával hívhatod meg ismerőseidet erre a szerverre + prompt: Az itt előállított hivatkozások megosztásával hívhatod meg ismerőseidet erre a kiszolgálóra table: expires_at: Lejárat uses: Használat @@ -1231,21 +1250,14 @@ hu: carry_blocks_over_text: Ez a fiók elköltözött innen %{acct}, melyet letiltottatok. carry_mutes_over_text: Ez a fiók elköltözött innen %{acct}, melyet lenémítottatok. copy_account_note_text: 'Ez a fiók elköltözött innen %{acct}, itt vannak a bejegyzéseitek róla:' + navigation: + toggle_menu: Menü be/ki notification_mailer: admin: + report: + subject: "%{name} bejelentést küldött" sign_up: subject: "%{name} feliratkozott" - digest: - action: Összes értesítés megtekintése - body: Itt a legutóbbi látogatásod (%{since}) óta írott üzenetek rövid összefoglalása - mention: "%{name} megemlített itt:" - new_followers_summary: - one: Sőt, egy új követőd is lett, amióta nem jártál itt. Hurrá! - other: Sőt, %{count} új követőd is lett, amióta nem jártál itt. Hihetetlen! - subject: - one: "1 új értesítés az utolsó látogatásod óta 🐘" - other: "%{count} új értesítés az utolsó látogatásod óta 🐘" - title: Amíg távol voltál… favourite: body: 'A bejegyzésedet kedvencnek jelölte %{name}:' subject: "%{name} kedvencnek jelölte a bejegyzésedet" @@ -1295,7 +1307,7 @@ hu: instructions_html: "Olvasd be ezt a QR-kódot a telefonodon futó Google Authenticator vagy egyéb TOTP alkalmazással. A jövőben ez az alkalmazás fog számodra hozzáférési kódot generálni a belépéshez." manual_instructions: 'Ha nem sikerült a QR-kód beolvasása, itt a szöveges kulcs, amelyet manuálisan kell begépelned:' setup: Beállítás - wrong_code: A beírt kód nem érvényes! A szerver órája és az eszközöd órája szinkronban jár? + wrong_code: A beírt kód nem érvényes. A kiszolgáló órája és az eszközöd órája szinkronban jár? pagination: newer: Újabb next: Következő @@ -1317,6 +1329,8 @@ hu: other: Egyéb posting_defaults: Bejegyzések alapértelmezései public_timelines: Nyilvános idővonalak + privacy_policy: + title: Adatvédelmi irányelvek reactions: errors: limit_reached: A különböző reakciók száma elérte a határértéket @@ -1339,22 +1353,7 @@ hu: remove_selected_follows: Kiválasztottak követésének abbahagyása status: Fiók állapota remote_follow: - acct: Írd be a felhasználódat, amelyről követni szeretnéd felhasznalonev@domain formátumban missing_resource: A fiókodnál nem található a szükséges átirányítási URL - no_account_html: Nincs fiókod? Regisztrálj itt - proceed: Tovább a követéshez - prompt: 'Őt tervezed követni:' - reason_html: "Miért van erre szükség? %{instance} nem feltétlenül az a szerver, ahol regisztrálva vagy, ezért először a saját szerveredre irányítunk." - remote_interaction: - favourite: - proceed: Jelöljük kedvencnek - prompt: 'Ezt a bejegyzést szeretnéd kedvencnek jelölni:' - reblog: - proceed: Tovább a megtoláshoz - prompt: 'Ezt a bejegyzést szeretnéd megtolni:' - reply: - proceed: Válaszadás - prompt: 'Erre a bejegyzésre szeretnél válaszolni:' reports: errors: invalid_rules: nem hivatkozik érvényes szabályra @@ -1372,7 +1371,6 @@ hu: browser: Böngésző browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1386,7 +1384,6 @@ hu: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Jelenlegi munkamenet description: "%{browser} az alábbi platformon: %{platform}" @@ -1395,8 +1392,6 @@ hu: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1486,7 +1481,7 @@ hu: enabled: Régi bejegyzések automatikus törlése enabled_hint: Automatikusan törli a bejegyzéseidet, ahogy azok elérik a megadott korhatárt, kivéve azokat, melyek illeszkednek valamely alábbi kivételre exceptions: Kivételek - explanation: Mivel a bejegyzések törlése drága művelet, ezt időben elnyújtva tesszük meg, amikor a szerver éppen nem elfoglalt. Ezért lehetséges, hogy a bejegyzéseidet valamivel később töröljük, mint ahogy azok elérik a korhatárukat. + explanation: Mivel a bejegyzések törlése drága művelet, ezért ez időben elnyújtva történik, amikor a kiszolgáló épp nem elfoglalt. Ezért lehetséges, hogy a bejegyzéseid valamivel később lesznek törölve, mint ahogy azok elérik a korhatárukat. ignore_favs: Kedvencek kihagyása ignore_reblogs: Megtolások kihagyása interaction_exceptions: Interakció alapú kivételek @@ -1526,89 +1521,6 @@ hu: too_late: Túl késő, hogy fellebbezd ezt a szankciót tags: does_not_match_previous_name: nem illeszkedik az előző névvel - terms: - body_html: | -

      Adatvédelmi nyilatkozat

      -

      Milyen adatokat gyűjtünk?

      - -
        -
      • Alapvető fiókadatok: Ha regisztrálsz ezen a szerveren, kérhetünk tőled felhasználói nevet, e-mail címet és jelszót is. Megadhatsz magadról egyéb profil információt, megjelenítendő nevet, bemutatkozást, feltölthetsz profilképet, háttérképet. A felhasználói neved, megjelenítendő neved, bemutatkozásod, profil képed és háttér képed mindig nyilvános mindenki számára.
      • -
      • Bejegyzések, követések, más nyilvános adatok: Az általad követett emberek listája nyilvános. Ugyanez igaz a te követőidre is. Ha küldesz egy üzenetet, ennek az idejét eltároljuk azzal az alkalmazással együtt, melyből az üzenetet küldted. Az üzenetek tartalmazhatnak média csatolmányt, képeket, videókat. A nyilvános és nem listázott bejegyzések bárki számára elérhetőek. Ha egy bejegyzést kiemelsz a profilodon, az is nyilvánossá válik. Amikor a bejegyzéseidet a követőidnek továbbítjuk, a bejegyzés más szerverekre is átkerülhet, melyeken így másolatok keletkezhetnek. Ha törölsz egy bejegyzést, ez is továbbítódik a követőid felé. A megtolás (reblog) és kedvencnek jelölés művelete is mindig nyilvános.
      • -
      • Közvetlen és csak követőknek szánt bejegyzések: Minden bejegyzés a szerveren tárolódik. A csak követőknek szánt bejegyzéseidet a követőidnek és az ezekben megemlítetteknek továbbítjuk, míg a közvetlen üzeneteket kizárólag az ebben megemlítettek kapják. Néhány esetben ez azt jelenti, hogy ezek más szerverekre is továbbítódnak, így ott másolatok keletkezhetnek. Jóhiszeműen feltételezzük, hogy más szerverek is hasonlóan járnak el, mikor ezeket az üzeneteket csak az arra jogosultaknak mutatják meg. Ugyanakkor ez nem feltétlenül igaz. Érdemes ezért megvizsgálni azokat a szervereket, melyeken követőid vannak. Be tudod állítani, hogy minden követési kérelmet jóvá kelljen hagynod. Tartsd észben, hogy a ennek és más szervereknek az üzemeltetői láthatják az ilyen üzeneteket, illetve a fogadók képernyőképet, másolatot készíthetnek belőlük, vagy újraoszthatják őket. Ne ossz meg semmilyen veszélyes információt a Mastodon hálózaton!
      • -
      • IP címek és egyéb metaadatok: Bejelentkezéskor eltároljuk a használt böngésződet és IP címedet. Minden rögzített munkamenet elérhető és visszavonható a beállítások között. Az utoljára rögzített IP címet maximum 12 hónapig tároljuk. Egyéb szerver logokat is megtarthatunk, melyek HTTP kérésenként is tárolhatják az IP címedet.
      • -
      - -
      - -

      Mire használjuk az adataidat?

      - -

      Bármely tőled begyűjtött adatot a következő célokra használhatjuk fel:

      - -
        -
      • Mastodon alapfunkcióinak biztosítása: Csak akkor léphetsz kapcsolatba másokkal, ha be vagy jelentkezve. Pl. követhetsz másokat a saját, személyre szabott idővonaladon.
      • -
      • Közösségi moderáció elősegítése: Pl. IP címek összehasonlítása másokéval, hogy kiszűrjük a kitiltások megkerülését.
      • -
      • Kapcsolattartás veled: Az általad megadott e-mail címen infókat, értesítéseket küldünk mások interakcióiról, kérésekről, kérdésekről.
      • -
      - -
      - -

      Hogyan védjük az adataidat?

      - -

      Üzemben tartunk néhány biztonsági rendszert, hogy megvédjük a személyes adataidat, amikor eléred vagy karbantartod ezeket. Többek között a böngésződ munkamenete, a szerver oldal, valamint a böngésző közötti teljes kommunikáció SSL-lel van titkosítva, a jelszavadat pedig erős, egyirányú algoritmussal hash-eljük. Kétlépcsős azonosítást is bekapcsolhatsz, hogy még biztonságosabbá tedd a fiókodhoz való hozzáférést.

      - -
      - -

      Mik az adatmegőrzési szabályaink?

      - -

      Mindent megteszünk, hogy:

      - -
        -
      • A szerver logokat, melyek kérésenként tartalmazzák a felhasználó IP címét maximum 90 napig tartsuk meg.
      • -
      • A regisztrált felhasználókat IP címeikkel összekötő adatokat maximum 12 hónapig tartsuk meg.
      • -
      - -

      Kérhetsz mentést minden tárolt adatodról, bejegyzésedről, média fájlodról, profil- és háttér képedről.

      - -

      Bármikor visszaállíthatatlanul le is törölheted a fiókodat.

      - -
      - -

      Használunk sütiket?

      - -

      Igen. A sütik pici állományok, melyeket az oldalunk a böngésződön keresztül a háttértáradra rak, ha engedélyezed ezt. Ezek a sütik teszik lehetővé, hogy az oldalunk felismerje a böngésződet, és ha regisztráltál, hozzá tudjon kötni a fiókodhoz.

      - -

      Arra is használjuk a sütiket, hogy elmenthessük a beállításaidat egy következő látogatás alkalmára.

      - -
      - -

      Átadunk bármilyen adatot harmadik személynek?

      - -

      Az azonosításodra alkalmazható adatokat nem adjuk el, nem kereskedünk vele, nem adjuk át külső szereplőnek. Ez nem foglalja magában azon harmadik személyeket, aki az üzemeltetésben, felhasználók kiszolgálásban és a tevékenységünkben segítenek, de csak addig, amíg ők is elfogadják, hogy ezeket az adatokat bizalmasan kezelik. Akkor is átadhatjuk ezeket az adatokat, ha erre hitünk szerint törvény kötelez minket, ha betartatjuk az oldalunk szabályzatát vagy megvédjük a saját vagy mások személyiségi jogait, tulajdonát, biztonságát.

      - -

      A nyilvános tartalmaidat más hálózatban lévő szerverek letölthetik. A nyilvános és csak követőknek szánt bejegyzéseid olyan szerverekre is elküldődnek, melyeken követőid vannak. A közvetlen üzenetek is átkerülnek a címzettek szervereire, ha ők más szerveren regisztráltak.

      - -

      Ha felhatalmazol egy alkalmazást, hogy használja a fiókodat, a jóváhagyott hatásköröktől függően ez elérheti a nyilvános profiladataidat, a követettjeid listáját, a követőidet, listáidat, bejegyzéseidet és kedvenceidet is. Ezek az alkalmazások ugyanakkor sosem érhetik el a jelszavadat és e-mail címedet.

      - -
      - -

      Az oldal gyerekek általi használata

      - -

      Ha ez a szerver az EU-ban vagy EEA-ban található: Az oldalunk, szolgáltatásaink és termékeink mind 16 éven felülieket céloznak. Ha 16 évnél fiatalabb vagy, a GDPR (General Data Protection Regulation) értelmében kérlek ne használd ezt az oldalt!

      - -

      Ha ez a szerver az USA-ban található: Az oldalunk, szolgáltatásaink és termékeink mind 13 éven felülieket céloznak. Ha 13 évnél fiatalabb vagy, a COPPA (Children's Online Privacy Protection Act) értelmében kérlek ne használd ezt az oldalt!

      - -

      A jogi előírások különbözhetnek ettől a világ egyéb tájain.

      - -
      - -

      Adatvédelmi nyilatkozat változásai

      - -

      Ha úgy döntünk, hogy megváltoztatjuk az adatvédelmi nyilatkozatot, ezt ezen az oldalon közzé fogjuk tenni.

      - -

      Ez a dokumentum CC-BY-SA. Utoljára 2018.03.07 frissült.

      - -

      Eredetileg innen adaptálva Discourse privacy policy.

      - title: "%{instance} Felhasználási feltételek és Adatkezelési nyilatkozat" themes: contrast: Mastodon (Nagy kontrasztú) default: Mastodon (Sötét) @@ -1665,7 +1577,7 @@ hu: disable: Nem használhatod tovább a fiókodat, bár a profil- és egyéb adataid érintetlenül maradnak. Kérhetsz mentést az adataidról, megváltoztathatod a beállításaidat vagy törölheted a fiókodat. mark_statuses_as_sensitive: Néhány bejegyzésedet a %{instance} moderátorai érzékenynek jelölték. Ez azt jelenti, hogy az embereknek először rá kell nyomni a bejegyzés médiatartalmára, mielőtt egy előnézet megjelenne. A jövőben te is megjelölheted bejegyzés írása közben a médiatartalmat érzékenyként. sensitive: Mostantól minden feltöltött médiaállományodat érzékeny tartalomként jelölünk meg és kattintásos figyelmeztetés mögé rejtjük. - silence: A fiókodat most is használhatod, de ezen a kiszolgálón csak olyanok láthatják a bejegyzéseidet, akik már eddig is a követőid voltak, valamint kihagyunk különböző felfedezésre használható funkciókból. Ettől még mások továbbra is manuálisan be tudnak követni. + silence: A fiókodat most is használhatod, de ezen a kiszolgálón csak olyanok láthatják a bejegyzéseidet, akik már eddig is a követőid voltak, valamint kimaradhatsz a különböző felfedezési funkciókból. Viszont mások kézileg továbbra is be tudnak követni. suspend: Többé nem használhatod a fiókodat, a profilod és más adataid többé nem elérhetőek. Még be tudsz jelentkezni, hogy mentést kérj az adataidról addig, amíg kb. 30 nap múlva teljesen le nem töröljük őket. Néhány alapadatot megtartunk, hogy el tudjuk kerülni, hogy megkerüld a felfüggesztést. reason: 'Indok:' statuses: 'Bejegyzések idézve:' @@ -1687,20 +1599,13 @@ hu: suspend: Felfüggesztett fiók welcome: edit_profile_action: Készítsd el profilod - edit_profile_step: 'Itt tudod egyedivé tenni a profilod: feltölthetsz profil- és borítóképet, megváltoztathatod a megjelenített neved és így tovább. Ha jóvá szeretnéd hagyni követőidet, mielőtt követhetnek, itt tudod a fiókodat zárttá tenni.' + edit_profile_step: Testreszabhatod a profilod egy profilkép feltöltésével, a megjelenített neved megváltoztatásával és így tovább. Bekapcsolhatod az új követőid jóváhagyását, mielőtt követhetnek. explanation: Néhány tipp a kezdeti lépésekhez final_action: Kezdj bejegyzéseket írni - final_step: 'Kezdj tülkölni! Nyilvános üzeneteid még követők híján is megjelennek másoknak, például a helyi idővonalon és a hashtageknél. Kezdd azzal, hogy bemutatkozol a #bemutatkozas vagy az #introductions hashtag használatával.' + final_step: 'Kezdj tülkölni! A nyilvános bejegyzéseid még követők híján is megjelennek másoknak, például a helyi idővonalon vagy a hashtageknél. Kezdd azzal, hogy bemutatkozol a #bemutatkozas vagy az #introductions hashtag használatával.' full_handle: Teljes felhasználóneved full_handle_hint: Ez az, amit megadhatsz másoknak, hogy üzenhessenek neked vagy követhessenek téged más szerverekről. - review_preferences_action: Beállítások módosítása - review_preferences_step: Tekintsd át a beállításaidat, például hogy milyen értesítéseket kérsz e-mailben, vagy hogy alapértelmezettként mi legyen a bejegyzéseid láthatósága. Ha nem vagy szédülős alkat, GIF-ek automatikus lejátszását is engedélyezheted. subject: Üdvözöl a Mastodon - tip_federated_timeline: A föderációs idővonal a Mastodon hálózat ütőere. Nem teljes, mivel csak azokat az embereket fogod látni, akiket a szervered többi felhasználója közül valaki már követ. - tip_following: Alapértelmezettként szervered adminisztrátorait követed. Látogasd meg a helyi és a nyilvános idővonalat, hogy más érdekes emberekre is rátalálj. - tip_local_timeline: A helyi idővonal a saját szervered (%{instance}) ütőere. Ezek a kedves emberek itt mind a szomszédaid! - tip_mobile_webapp: Ha a böngésződ lehetővé teszi, hogy a kezdőképernyődhöz add a Mastodont, még értesítéseket is fogsz kapni, akárcsak egy igazi alkalmazás esetében! - tips: Tippek title: Üdv a fedélzeten, %{name}! users: follow_limit_reached: Nem követhetsz több, mint %{limit} embert diff --git a/config/locales/hy.yml b/config/locales/hy.yml index b1234959660300..e854fb44a002f3 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -1,89 +1,26 @@ --- hy: about: - about_hashtag_html: Սրանք #%{hashtag} հեշթեգով հանրային հրապարակումներն են։ Կարող էք փոխգործակցել դրանց հետ եթե ունէք որեւէ հաշիւ դաշտեզերքում։ about_mastodon_html: Ապագայի սոցցանցը։ Ոչ մի գովազդ, ոչ մի կորպորատիվ վերահսկողութիւն, էթիկական դիզայն, եւ ապակենտրոնացում։ Մաստադոնում դու ես քո տուեալների տէրը։ - about_this: Մեր մասին - active_count_after: ակտիվ - active_footnote: Ամսեկան ակտիւ օգտատէրեր (MAU) - administered_by: Ադմինիստրատոր՝ - api: API - apps: Բջջային յաւելուածներ - apps_platforms: Մաստադոնը հասանելի է iOS, Android եւ այլ տարբեր հենքերում - browse_directory: Պրպտիր օգտատէրերի շտեմարանը եւ գտիր հետաքրքիր մարդկանց - browse_local_posts: Տես այս հանգոյցի հանրային գրառումների հոսքը - browse_public_posts: Դիտիր Մաստադոնի հանրային գրառումների հոսքը - contact: Կոնտակտ contact_missing: Սահմանված չէ contact_unavailable: Ոչինչ չկա - discover_users: Գտնել օգտատերներ - documentation: Փաստաթղթեր - federation_hint_html: "«%{instance}»-ում հաշիւ բացելով դու կը կարողանաս հետեւել մարդկանց Մաստոդոնի ցանկացած հանգոյցից և ոչ միայն։" - get_apps: Փորձէք բջջային յաւելուածը hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում - instance_actor_flash: "Այս հաշիւ վիրտուալ դերասան է, օգտագործուում է սպասարկիչը, այլ ոչ անհատ օգտատիրոջը ներկայացնելու, համար։ Օգտագործուում է ֆեդերացիայի նպատակով, ու չպէտք է արգելափակուի, եթէ չէք ցանկանում արգելափակել ողջ հանգոյցը, որի դէպքում պէտք է օգտագործէք տիրոյթի արգելափակումը։ \n" - learn_more: Իմանալ ավելին - privacy_policy: Գաղտնիության քաղաքականություն - rules: Սերուերի կանոնները - rules_html: Այս սերուերում հաշիւ ունենալու համար անհրաժեշտ է պահպանել ստորեւ նշուած կանոնները։ - see_whats_happening: Տես ինչ կը կատարուի - server_stats: Սերվերի վիճակը․ - source_code: Ելատեքստ - status_count_after: - one: գրառում - other: ստատուս - status_count_before: Որոնք արել են՝ - tagline: Հետեւիր ընկերներիդ եւ գտիր նորերին - terms: Ծառայութեան պայմանները - unavailable_content: Մոդերացուող սպասարկիչներ - unavailable_content_description: - domain: Սպասարկիչ - reason: Պատճառը՝ - rejecting_media: Այս հանգոյցների նիւթերը չեն մշակուի կամ պահուի։ Չեն ցուցադրուի նաև մանրապատկերները, պահանջելով ինքնուրոյն անցում դէպի բնօրինակ նիւթը։ - rejecting_media_title: Զտուած մեդիա - silenced: Այս սպասարկչի հրապարակումները թաքցուած են հանրային հոսքից եւ զրոյցներից, եւ ոչ մի ծանուցում չի գեներացուում նրանց օգտատէրերի գործողութիւններից, եթէ նրանց չէք հետեւում․ - silenced_title: Լռեցուած սպասարկիչներ - suspended: Ոչ մի տուեալ այս սպասարկիչներից չի գործարկուում, պահուում կամ փոխանակուում, կատարել որեւէ գործողութիւն կամ հաղորդակցութիւն այս սպասարկիչի օգտատէրերի հետ անհնար է․ - suspended_title: Կասեցուած սպասարկիչներ - unavailable_content_html: Մաստոդոնն ընդհանրապէս թոյլատրում է տեսնել բովանդակութիւնը եւ շփուել այլ դաշնեզերքի այլ հանգոյցների հետ։ Սրանք բացառութիւններն են, որոնք կիրառուել են հէնց այս հանգոյցի համար։ - user_count_after: - one: օգտատէր - other: օգտատերեր - user_count_before: Այստեղ են - what_is_mastodon: Ի՞նչ է Մաստոդոնը accounts: - choices_html: "%{name}-ի ընտրանի՝" - endorsements_hint: Վէբ ինտերֆէյսից կարող ես ցուցադրել մարդկանց, որոնց հետեւում ես, եւ նրանք կը ցուցադրուեն այստեղ։ - featured_tags_hint: Դու կարող ես ցուցադրել յատուկ պիտակներ, որոնք կը ցուցադրուեն այստեղ։ follow: Հետևել followers: one: Հետեւորդ other: Հետևորդներ following: Հետեւած instance_actor_flash: Այս հաշիւը վիրտուալ դերասան է, որը ներկայացնում է հանգոյցը, եւ ոչ որեւէ անհատ օգտատիրոջ։ Այն օգտագործուում է ֆեդերացիայի նպատակներով եւ չպէտք է կասեցուի։ - joined: Միացել են %{date} last_active: վերջին այցը link_verified_on: Սոյն յղման տիրապետումը ստուգուած է՝ %{date}֊ին - media: Մեդիա - moved_html: "%{name} տեղափոխուել է %{new_profile_link}" - network_hidden: Այս տուեալը հասանելի չէ nothing_here: Այստեղ բան չկայ - people_followed_by: Մարդիկ, որոնց %{name}ը հետեւում է - people_who_follow: Մարդիկ, որոնք հետեւում են %{name}ին pin_errors: following: Դու պէտք է հետեւես մարդուն, որին ցանկանում ես խրախուսել posts: one: Գրառում other: Գրառումներ posts_tab_heading: Գրառումներ - posts_with_replies: Գրառումներ եւ պատասխաններ - roles: - admin: Ադմինիստրատոր - bot: Բոտ - group: Խումբ - moderator: Մոդերատոր - unavailable: Պրոֆիլը հասանելի չի - unfollow: Չհետևել admin: account_actions: action: Կատարել գործողութիւն @@ -100,7 +37,6 @@ hy: avatar: Աւատար by_domain: Դոմէն change_email: - changed_msg: Հաշուի էլ․ հասցէն բարեյաջող փոփոխուեց current_email: Ներկայիս էլ․ հասցէ label: Փոխել էլ. հասցէն new_email: Նոր էլ․ փոստ @@ -175,12 +111,6 @@ hy: reset: Վերականգնել reset_password: Վերականգնել գաղտանաբառը resubscribe: Կրկին բաժանորդագրուել - role: Թոյլտուութիւններ - roles: - admin: Ադմինիստրատոր - moderator: Մոդերատոր - staff: Անձնակազմ - user: Oգտատէր search: Որոնել search_same_email_domain: Այլ օգտատէրեր նոյն էլ․ փոստի դոմէյնով search_same_ip: Այլ օգտատէրեր նոյն IP֊ով @@ -255,7 +185,6 @@ hy: update_custom_emoji: Թարմացնել սեփական էմոջիները update_domain_block: Թարմացնել տիրոյթի արգելափակումը update_status: Թարմացնել գրառումը - deleted_status: "(ջնջուած գրառում)" empty: Ոչ մի գրառում չկայ։ filter_by_action: Զտել ըստ գործողութեան filter_by_user: Զտել ըստ օգտատիրոջ @@ -446,52 +375,14 @@ hy: empty: Սերուերի կանոնները դեռեւս սահմանուած չեն։ title: Սերուերի կանոնները settings: - contact_information: - email: Գործնական էլփոստ - username: Կոնտակտի ծածկանուն - custom_css: - title: Սեփական CSS domain_blocks: all: Բոլորին disabled: Ոչ մէկին - title: Ցուցադրել տիրոյթը արգելափակումները - hero: - title: Հերոսի պատկեր - profile_directory: - desc_html: Թոյլատրել օգտատէրերին բացայայտուել - title: Միացնել հաշուի մատեանը - registrations: - closed_message: - desc_html: Ցուցադրուում է արտաքին էջում, երբ գրանցումները փակ են։ Կարող ես օգտագործել նաեւ HTML թէգեր - title: Փակ գրանցման հաղորդագրութիւն - deletion: - desc_html: Բոլորին թոյլատրել ջնջել իրենց հաշիւը - title: Բացել հաշուի ջնջումը - min_invite_role: - disabled: Ոչ ոք - title: Թոյլատրել հրաւէրներ registrations_mode: modes: approved: Գրանցման համար անհրաժեշտ է հաստատում none: Ոչ ոք չի կարող գրանցուել open: Բոլորը կարող են գրանցուել - title: Գրանցումային ռեժիմ - show_staff_badge: - desc_html: Ցուցադրել անձնակազմի անդամի նշանը օգտատիրոջ էջում - title: Ցուցադրել անձնակազմի անդամի նշանը - site_description: - title: Կայքի նկարագրութիւն - site_short_description: - title: Կայքի հակիրճ նկարագրութիւն - site_terms: - desc_html: Դու կարող ես գրել քո սեփական գաղտնիութեան քաղաքականութիւնը, օգտագործման պայմանները եւ այլ կանոններ։ Կարող ես օգտագործել HTML թեգեր - title: Սեփական օգտագործման կանոնները - site_title: Սպասարկչի անուն - thumbnail: - title: Հանգոյցի նկարը - title: Կայքի կարգաւորումներ - trends: - title: Թրենդային պիտակներ site_uploads: delete: Ջնջել վերբեռնուած ֆայլը destroyed_msg: Կայքի վերբեռնումը բարեյաջող ջնջուեց @@ -551,14 +442,10 @@ hy: view_profile: Նայել անձնական էջը view_status: Նայել գրառումը applications: - invalid_url: Տրամադրուած URL անվաւեր է regenerate_token: Ստեղծել նոր հասանելիութեան կտրոն your_token: Քո մուտքի բանալին auth: - apply_for_account: Հրաւէրի հարցում change_password: Գաղտնաբառ - checkbox_agreement_html: Ես համաձայն եմ սպասարկիչի կանոններին և ծառայութեան պայմաններին - checkbox_agreement_without_rules_html: Ես համաձայն եմ ծառայությունների պայմաններին delete_account: Ջնջել հաշիվը description: prefix_sign_up: Գրանցուի՛ր Մաստոդոնում հենց այսօր @@ -579,7 +466,6 @@ hy: status: account_status: Հաշուի կարգավիճակ pending: Դիմումը պէտք է քննուի մեր անձնակազմի կողմից, ինչը կարող է մի փոքր ժամանակ խլել։ Դիմումի հաստատուելու դէպքում, կտեղեկացնենք նամակով։ - trouble_logging_in: Մուտք գործելու խնդիրնե՞ր կան։ use_security_key: Օգտագործել անվտանգութեան բանալի authorize_follow: already_following: Դու արդէն հետեւում ես այս հաշուին @@ -626,10 +512,6 @@ hy: success_msg: Հաշիւդ բարեյաջող ջնջուեց warning: username_available: Քո օգտանունը կրկին հասանելի կը դառնայ - directories: - directory: Հաշուի մատեան - explanation: Բացայայտիր մարդկանց ըստ նրանց հետաքրքրութիւնների - explore_mastodon: Ուսումնասիրիր «%{title}»-ը domain_validator: invalid_domain: անվաւէր տիրոյթի անուն errors: @@ -676,9 +558,6 @@ hy: new: title: Ավելացնել ֆիլտր footer: - developers: Մշակողներ - more: Ավելին… - resources: Ռեսուրսներ trending_now: Այժմ արդիական generic: all: Բոլորը @@ -750,10 +629,6 @@ hy: admin: sign_up: subject: "%{name}-ը գրանցուած է" - digest: - action: Դիտել բոլոր ծանուցումները - mention: "%{name} նշել է քեզ՝" - title: Երբ բացակայ էիր... favourite: body: Քո գրառումը հաւանել է %{name}-ը։ subject: "%{name} հաւանեց գրառումդ" @@ -834,9 +709,6 @@ hy: remove_selected_followers: Հեռացնել նշուած հետեւորդներին remove_selected_follows: Ապահետեւել նշուած օգտատէրերին status: Հաշուի կարգավիճակ - remote_follow: - acct: Մուտքագրիր քո օգտանուն@տիրոյթ, որի անունից ցանկանում ես գործել - prompt: Դու պատրաստուում ես հետևել՝ scheduled_statuses: too_soon: Նախադրուած ամսաթիւը պէտք է լինի ապագայում sessions: @@ -844,7 +716,6 @@ hy: browser: Դիտարկիչ browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -858,7 +729,6 @@ hy: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Ընթացիկ սեսսիա description: "%{browser}, %{platform}" @@ -866,8 +736,6 @@ hy: platforms: adobe_air: Adobe Air android: Անդրոիդ - blackberry: Blackberry - chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: Լինուքս @@ -950,91 +818,6 @@ hy: pinned: Ամրացուած գրառում reblogged: տարածուած sensitive_content: Կասկածելի բովանդակութիւն - terms: - body_html: | -

      Գաղտնիութեան քաղաքականութիւն

      -

      Ոչ պաշտօնական, ոչ իրաւական թարգմանութիւն

      -

      Ինչ անձնական տեղեկութիւններ ենք մենք հաւաքում

      - -
        -
      • Առաջնային հաւաքուող տուեալներ: Եթե դուք գրանցուէք էք այս սերուերում, ձեզանից կարող են պահանջել մուտքագրել օգտուողի անուն, էլ-փոստի հասցէ և գաղտնաբառ։ Դուք կարող էք նաև մուտքագրել յաւելեալ տուեալներ, ինչպիսիք են օրինակ՝ ցուցադրուող անունը եւ կենսագրութիւնը, նաև վերբեռնել գլխանկար և ետնանակար։ Օգտուողի անունը, կենսագրութիւնը, գլխանկարը և ետնանկարը համարվում են հանրային տեղեկատուութիւն։
      • -
      • Գրառումները, հետեւումները և այլ հանրային տեղեկատուութիւնը։ Ձեր հետևած մարդկանց ցուցակը ներկայացուած է հանրայնօրէն, նոյնը ճշմարիտ է նաև հետևորդների համար։ Երբ դուք ուղարկում էք հաղորդագրութիւն, հաղորդագրութեան ուղարկման ամսաթիւը և ժամանակը, ինչպէս նաև յաւելուածը որից այն ուղարկուել է, պահւում է։ Հաղորդագրութիւնները կարող են պարունակել մեդիա կցումներ, ինչպիսիք են նկարները և տեսանիւթերը։ Հանրային և ծածուկ գրառումները հանրայնօրէն հասանելի են։ Անձնական էջում կցուած գրառումները նոյնպես հանրայնօրէն հասանելի տեղեկատուութիւն է։ Ձեր գրառումները ուղարկւում են ձեր հետևորդներին, ինչը նշանակում է, որ որոշ դէպքերում դրանք ուղարկւում են այլ սերուերներ և պատճէները պահւում են այնտեղ։ Երբ դուք ջնջում էք ձեր գրառումները, սա նոյնպէս ուղարկւում է ձեր հետևորդներին։ Մէկ այլ գրառման տարածումը կամ հաւանումը միշտ հանրային է։
      • -
      • Հասցէագրած և միայն հետևորդներին գրառումները: Բոլոր գրառումները պահւում և մշակւում են սերուերի վրայ։ Միայն հետևորդներին գրառումները ուղարկւում են միայն ձեր հետևորդներին և այն օգտատէրերին ովքեր նշուած են գրառման մէջ, իսկ հասցէագրեցուած գրառումները ուղարկւում են միայն դրանում նշուած օգտատէրերին։ Որոշ դէպքերում դա նշանակում է, որ այդ գրառումները ուղարկւում են այլ սերուերներ և պատճէները պահւում այնտեղ։ Մենք բարեխիղճ ջանք են գործադրում սահմանափակելու այդ գրառումների մուտքը միայն լիազօրուած անձանց, բայց այլ սերուերներ կարող են ձախողել դրա կատարումը։ Այդ պատճառով կարևոր է վերանայել այն սերուերները որին ձեր հետևորդները պատկանում են։ Դուք կարող էք կարգաւորումներից միացնել նոր հետևորդներին ինքնուրոյն ընդունելու և մերժելու ընտրանքը։ Խնդրում ենք յիշել, որ սերուերի գործարկուն և ցանկացած ստացող սերուեր կարող է դիտել այդ տեսակ հաղորդագրութիւնները, իսկ ստացողները կարող են էկրանահանել, պատճէնել և այլ կերպ վերատարածել դրանք։Մաստադոնով մի կիսուէք որևէ վտանգաւոր տեղեկատուութեամբ։
      • -
      • IP հասցէներ և այլ մետատուեալներ: Երբ դուք մուտք էք գործում, մենք պահում են ձեր մուտք գործելու IP հասցէն, ինչպէս նաև զննարկիչի տեսակը։ Կարգաւորումներում հասանելի է մուտքի բոլոր սեսիաների վերանայման և մարման հնարաւորութիւնը։ Վերջին օգտագործուած IP հասցէն պահւում է մինչև 12 ամիս ժամկէտով։ Մենք կարող ենք նաև պահել սերուերի մատեանի նիշքերը, որը պարունակում է սերուերին արուած իւրաքանչիւր հարցման IP հասցէն։
      • -
      - -
      - -

      Ինչպէս ենք օգտագործում ձեր անձնական տեղեկութիւնները

      - -

      Ցանկացած տուեալ, որը մենք հաւաքում ենք ձեզնից կարող է օգտագործուել հետեւեալ նպատակներով՝

      - -
        -
      • Մատուցելու Մաստադոնի հիմնական գործառութիւնները։ Դուք կարող էք փոխգործակցել այլ մարդկանց բովանդակութեան հետ և տեղադրել ձեր սեփական բովանդակութիւնը միայն մուտք գործելուց յետոյ։ Օրինակ՝ դուք կարող էք հետեւել այլ մարդկանց նրանց համակցուած գրառումները ձեր անձնական հոսքում տեսնելու համար ։
      • -
      • Նպաստելու համայնքի մոդերացիային։ Օրինակ՝ համեմատելու ձեր IP հասցէն այլ արդեն յայտնի հասցէի հետ՝ բացայայտելու արգելափակումից խուսափելու կամ այլ խախտումների դէպքերը ։
      • -
      • Ձեր տրամադրած էլ-փոստի հասցէն կարող է օգտագործուել ձեզ տեղեկատուութիւն տրամադրելու, այլ մարդկանց՝ ձեր բովանդակութեան հետ փոխգործակցութեան կամ ձեզ հասցէագրած նամակի մասին ծանուցելու, ինչպէս նաև հայցումներին կամ այլ յայտերին ու հարցերին պատասխանելու համար։
      • -
      - -
      - -

      Ինչպէս ենք պաշտպանում ձեր անձնական

      - -

      Մենք կիրառում ենք տարբեր անվտանգութեան միջոցների պահպանելու ձեր անձնական տուեալների անվտանգութիւնը, երբ դուք մուտքագրում, ուղարկում կամ դիտում էգ ձեր անձնական տեղեկութիւնները։ Ի թիւս մնացած բաների, ձեր դիտարկչի սեսիան, ինչպէս նաև ձեր յաւելուածի և API միջև տրաֆիկը պաշտպանուած են SSL-ով, իսկ ձեր գաղտնաբառը պատահականացուած է միակողմանի ալգորիթմով։ Դուք կարող էք միացնել երկաստիճան ինքնորոշումը, ձեր հաշուի մուտքը աւելի պաշտպանուած դարձնելու համար։

      - -
      - -

      Տվյալներ պահպանման քաղաքականութիւնը

      - -

      Մենք գործադրում ենք բարեխիղճ ջանք՝

      - -
        -
      • պահպանելու սերուերի մատեանի նիշքերը՝ այս սերուերին արուած բոլոր հարցումների IP հասցէներով, այնքանով որքանով նման նիշքերը պահւում են, ոչ աւել քան 90 օր ժամկէտով։
      • -
      • պահպանելու գրանցուած օգտատէրի հաշուի հետ կապակցուած IP հասցէները, ոչ աւել քան 12 ամիս ժամկէտով։
      • -
      - -

      Դուք կարող էք ուղարկել հայց ներբեռնելու ձեր բովանդակութեան պատճէն՝ ներառեալ ձեր գրառումները, մեդիա կցումները, գլխանկարը և ետնանկարը։

      - -

      Դուք կարող էք ընդմիշտ ջնջել ձեր հաշիւը ցանկացած ժամանակ

      - -
      - -

      Օգտագործում էք արդեօ՞ք թխուկներ

      - -

      Այո։ Թխուկները փոքր ֆայլեր են որը կայքը կամ նրան ծառայութեան մատուցողը փոխանցում է ձեր համակարգչի կոշտ սկաւառակին դիտարկչի միջոցով (ձեր թոյլատուութիւն)։ Թխուկները հնարաւորութիւն են տալիս կայքին ճանաչելու ձեր դիտարկիչը, և գրանցուած հաշուի դէպքում՝ նոյնացնելու այն ձեր հաշուի հետ։ - - Մենք օգտագործում ենք թխուկները հասկանալու և պահպանելու ձեր նախընտրանքները ապագայ այցերի համար։

      - -
      - -

      Բացայայտում երրորդ կողմերին

      - -

      Մենք չենք վաճառում, փոխանակում, կամ այլ կերպ փոխանցում անձնական նոյնացնող տեղեկատուութիւն երրորդ կողմերին։ Սա չի ներառում վստահելի երրորդ կողմերին որոնք օգնում են կայքի գործարկման, մեր գործունէութեան ծավալման, կամ ձեզ ծառայելու համար, այնքան ժամանակ որքան այդ երրորդ կողմերը համաձայն են գաղտնի պահել այդ տուեալները։ Մենք կարող ենք նաև հանրայնացնել ձեր տեղեկատուութիւնը երբ հաւատացած ենք որ դրա հանրայնացումը անհրաժեշտ է օրէնքի պահանջների կատարման, կամ կայքի քաղաքականութեան կիրառման համար, կամ պաշտպանելու մեր կամ այլոց իրաւունքները, սեփականութիւնը կամ անվտանգութիւնը։

      - -

      Ձեր հանրային բովանդակութիւնը կարող է բեռնուել ցանցի միւս սերուերների կողմից։ Ձեր հանրային և միայն հետևորդներին գրառումները ուղարկւում են այն սերուերներին որտեղ գրանցած են ձեր հետևորդները, և հասցէական հաղորդագրութիւնները ուղարկւում են հասցէատէրերի սերուերներին, այն դէպքում երբ այդ հետևորդները կամ հասցէատէրերը գտնւում են այս սերուերից տարբեր սերուերի վրայ։

      - -

      Երբ դուք թոյլատրում էք յաւելուածի օգտագործել ձեր հաշիւը, կախուած թոյլտւութիւնների շրջանակից, այն կարող է մուտք ունենալ ձեր հաշիւ հանրային տեղեկատւութեանը, ձեր հետևողների ցանկին, ձեր հետևորդներից ցանկին, ցանկերին, ձեր բոլոր գրառումներին, և ձեր հաւանումներին։ Յաւելուածները երբեք չենք կարող մուտք ունենալ ձեր էլ-փոստի հասցէին կամ գաղտնաբառին։

      - -
      - -

      Կայքի օգտագործումը երեխաների կողմից

      - -

      Եթէ այս սերուերը գտնում է ԵՄ-ում կամ ԵՏԳ-ում. Մեր կայքը, արտադրանքները և ծառայութիւնները նախատեսուած են 16 տարին լրացած անձանց համար: Եթէ ձեր 16 տարեկանը չի լրացել, ապա հետևելով GDPR (General Data Protection Regulation) պահանջներին՝ մի օգտագործէք այս կայքը։

      - -

      Եթէ այս սերուերը գտնւում է ԱՄՆ-ում. Մեր կայքը, արտադրանքները և ծառայութիւնները նախատեսուած են 13 տարին լրացած անձանց համար: Եթէ ձեր 16 տարեկանը չի լրացել, ապա հետևելով COPPA (Children's Online Privacy Protection Act) պահանջներին՝ մի օգտագործէք այս կայքը։ - -

      Այլ երկրների իրաւասութիւն շրջաններում օրէնքի պահանջները կարող են տարբերուել։

      - -
      - -

      Գաղտնիութեան քաղաքականութեան փոփոխութիւնները

      - -

      Եթէ մենք որոշենք փոփոխել մեր գաղտնիութեան քաղաքականութիւնը, ապա այդ փոփոխութիւնները կհրապարակենք այս էջում։

      - -

      Այս փաստաթուղթը լիազօրուած է CC-BY-SA լիցենզիայով։ Վերջին թարմացումը՝ 7-ը մարտի 2018

      - -

      Փոխառնուած է Discourse-ի գաղտնիութեան քաղաքականութիւնից.

      - -

      Ոչ պաշտօնական, ոչ իրաւական թարգմանութիւն

      themes: contrast: Mastodon (բարձր կոնտրաստով) default: Mastodon (Մուգ) @@ -1077,13 +860,7 @@ hy: welcome: edit_profile_action: Կարգաւորել հաշիւը final_action: Սկսել գրել - final_step: 'Սկսիր գրել։ Անգամ առանց հետեւորդների քո հանրային գրառումներ կարող են երևալ ուրիշների մօտ, օրինակ՝ տեղական հոսում կամ հեշթեգերում։ Թէ ցանկանաս, կարող ես յայտնել քո մասին օգտագործելով #եսնորեկեմ հեշթեգը։' - review_preferences_action: Փոփոխել կարգաւորումները subject: Բարի գալուստ Մաստոդոն - tip_federated_timeline: Դաշնային հոսքում երևում է ամբողջ Մաստոդոնի ցանցը։ Բայց այն ներառում է միայն այն օգտատէրերին որոնց բաժանորդագրուած են ձեր հարևաններ, այդ պատճառով այն կարող է լինել ոչ ամբողջական։ - tip_following: Դու հետեւում էս քո հանգոյցի ադմին(ներ)ին լռելայն։ Այլ հետաքրքիր անձանց գտնելու համար՝ թերթիր տեղական և դաշնային հոսքերը։ - tip_local_timeline: Տեղական հոսքում երևում են %{instance} հանգոյցի մարդկանց գրառումները։ Նրանք քո հանգոյցի հարևաններն են։ - tips: Հուշումներ title: Բարի գալուստ նաւամատոյց, %{name} users: invalid_otp_token: Անվաւեր 2F կոդ diff --git a/config/locales/id.yml b/config/locales/id.yml index 610a45e1c887f9..95660e16dc558f 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1,88 +1,25 @@ --- id: about: - about_hashtag_html: Ini adalah toot publik yang ditandai dengan #%{hashtag}. Anda bisa berinteraksi dengan mereka jika anda memiliki akun dimanapun di fediverse. - about_mastodon_html: Mastodon adalah sebuah jejaring sosial terbuka, open-sourcedesentralisasi dari platform komersial, menjauhkan anda resiko dari sebuah perusahaan yang memonopoli komunikasi anda. Pilih server yang anda percayai — apapun yang anda pilih, anda tetap dapat berinteraksi dengan semua orang. Semua orang dapat menjalankan server Mastodon sendiri dan berpartisipasi dalam jejaring sosial dengan mudah. - about_this: Tentang server ini - active_count_after: aktif - active_footnote: Pengguna Aktif Bulanan (PAB) - administered_by: 'Dikelola oleh:' - api: API - apps: Aplikasi mobile - apps_platforms: Gunakan Mastodon dari iOS, Android, dan platform lain - browse_directory: Jelajahi direktori profil dan saring sesuai minat - browse_local_posts: Jelajahi siaran langsung dari pos publik server ini - browse_public_posts: Jelajahi siaran langsung pos publik di Mastodon - contact: Kontak - contact_missing: Belum diset + about_mastodon_html: 'Jaringan sosial masa depan: Tanpa iklan, tanpa pemantauan perusahaan, desain etis, dan terdesentralisasi! Miliki data Anda dengan Mastodon!' + contact_missing: Belum ditetapkan contact_unavailable: Tidak Tersedia - continue_to_web: Lanjut ke apl web - discover_users: Temukan pengguna - documentation: Dokumentasi - federation_hint_html: Dengan akun di %{instance} Anda dapat mengikuti orang di server Mastodon mana pun dan di luarnya. - get_apps: Coba aplikasi mobile hosted_on: Mastodon dihosting di %{domain} - instance_actor_flash: "Akun ini adalah aktor virtual yang dipakai untuk merepresentasikan server, bukan pengguna individu. Ini dipakai untuk tujuan federasi dan jangan diblokir kecuali Anda ingin memblokir seluruh instansi, yang seharusnya Anda pakai blokir domain. \n" - learn_more: Pelajari selengkapnya - logged_in_as_html: Anda sedang masuk sebagai %{username}. - logout_before_registering: Anda sudah masuk. - privacy_policy: Kebijakan Privasi - rules: Aturan server - rules_html: 'Di bawah ini adalah ringkasan aturan yang perlu Anda ikuti jika Anda ingin memiliki akun di server Mastodon ini:' - see_whats_happening: Lihat apa yang sedang terjadi - server_stats: 'Statistik server:' - source_code: Kode sumber - status_count_after: - other: status - status_count_before: Yang telah menulis - tagline: Ikuti teman dan temukan yang baru - terms: Kebijakan layanan - unavailable_content: Konten tak tersedia - unavailable_content_description: - domain: Server - reason: Alasan - rejecting_media: 'Berkas media dari server ini tak akan diproses dan disimpan, dan tak akan ada gambar kecil yang ditampilkan, perlu klik manual utk menuju berkas asli:' - rejecting_media_title: Media yang disaring - silenced: 'Pos dari server ini akan disembunyikan dari linimasa publik dan percakapan, dan takkan ada notifikasi yang dibuat dari interaksi pengguna mereka, kecuali Anda mengikuti mereka:' - silenced_title: Server yang dibisukan - suspended: 'Takkan ada data yang diproses, disimpan, dan ditukarkan dari server ini, sehingga interaksi atau komunikasi dengan pengguna dari server ini tak mungkin dilakukan:' - suspended_title: Server yang ditangguhkan - unavailable_content_html: Mastodon umumnya mengizinkan Anda untuk melihat konten dan berinteraksi dengan pengguna dari server lain di fediverse. Ini adalah pengecualian yang dibuat untuk beberapa server. - user_count_after: - other: pengguna - user_count_before: Tempat bernaung bagi - what_is_mastodon: Apa itu Mastodon? + title: Tentang accounts: - choices_html: 'Pilihan %{name}:' - endorsements_hint: Anda dapat mempromosikan orang yang Anda ikuti lewat antar muka web, dan mereka akan muncul di sini. - featured_tags_hint: Anda dapat mengunggulkan tagar tertentu yang akan ditampilkan di sini. follow: Ikuti followers: other: Pengikut following: Mengikuti instance_actor_flash: Akun ini adalah aktor virtual yang merepresentasikan server itu sendiri dan bukan pengguna individu. Ini dipakai untuk tujuan gabungan dan seharusnya tidak ditangguhkan. - joined: Bergabung pada %{date} last_active: terakhir aktif link_verified_on: Kepemilikan tautan ini telah dicek pada %{date} - media: Media - moved_html: "%{name} telah pindah ke %{new_profile_link}:" - network_hidden: Informasi ini tidak tersedia nothing_here: Tidak ada apapun disini! - people_followed_by: Orang yang diikuti %{name} - people_who_follow: Orang-orang yang mengikuti %{name} pin_errors: following: Anda harus mengikuti orang yang ingin anda endorse posts: - other: Toot - posts_tab_heading: Toot - posts_with_replies: Toot dan balasan - roles: - admin: Admin - bot: Bot - group: Grup - moderator: Moderator - unavailable: Profil tidak tersedia - unfollow: Berhenti mengikuti + other: Kiriman + posts_tab_heading: Kiriman admin: account_actions: action: Lakukan aksi @@ -99,12 +36,17 @@ id: avatar: Avatar by_domain: Domian change_email: - changed_msg: Email akun ini berhasil diubah! + changed_msg: כתובת דוא"ל שונתה בהצלחה ! current_email: Email saat ini label: Ganti email new_email: Email baru submit: Ganti email title: Ganti email untuk %{username} + change_role: + changed_msg: תפקיד שונה בהצלחה ! + label: Ubah peran + no_role: Tidak ada peran + title: Ganti peran untuk %{username} confirm: Konfirmasi confirmed: Dikonfirmasi confirming: Mengkonfirmasi @@ -148,6 +90,7 @@ id: active: Aktif all: Semua pending: Tertunda + silenced: Terbatas suspended: Disuspen title: Moderasi moderation_notes: Catatan moderasi @@ -155,6 +98,7 @@ id: most_recent_ip: IP terbaru no_account_selected: Tak ada akun yang diubah sebab tak ada yang dipilih no_limits_imposed: Tidak ada batasan + no_role_assigned: Tidak ada peran yang diberikan not_subscribed: Tidak berlangganan pending: Tinjauan tertunda perform_full_suspension: Lakukan suspen penuh @@ -180,12 +124,7 @@ id: reset: Atur ulang reset_password: Reset kata sandi resubscribe: Langganan ulang - role: Hak akses - roles: - admin: Administrator - moderator: Moderator - staff: Staf - user: Pengguna + role: Peran search: Cari search_same_email_domain: Pengguna lain dengan domain email yang sama search_same_ip: Pengguna lain dengan IP yang sama @@ -228,17 +167,21 @@ id: approve_user: Setujui Pengguna assigned_to_self_report: Berikan laporan change_email_user: Ubah Email untuk Pengguna + change_role_user: Ubah Peran Pengguna confirm_user: Konfirmasi Pengguna create_account_warning: Buat Peringatan create_announcement: Buat Pengumuman + create_canonical_email_block: Buat Pemblokiran Surel create_custom_emoji: Buat Emoji Khusus create_domain_allow: Buat Izin Domain create_domain_block: Buat Blokir Domain create_email_domain_block: Buat Email Blokir Domain create_ip_block: Buat aturan IP create_unavailable_domain: Buat Domain yang Tidak Tersedia + create_user_role: Buah Peran demote_user: Turunkan Pengguna destroy_announcement: Hapus Pengumuman + destroy_canonical_email_block: Hapus Pemblokiran Surel destroy_custom_emoji: Hapus Emoji Khusus destroy_domain_allow: Hapus Izin Domain destroy_domain_block: Hapus Blokir Domain @@ -247,6 +190,7 @@ id: destroy_ip_block: Hapus aturan IP destroy_status: Hapus Status destroy_unavailable_domain: Hapus Domain yang Tidak Tersedia + destroy_user_role: Hapus Peran disable_2fa_user: Nonaktifkan 2FA disable_custom_emoji: Nonaktifkan Emoji Khusus disable_sign_in_token_auth_user: Nonaktifkan Otentikasi Token Email untuk Pengguna @@ -260,6 +204,7 @@ id: reject_user: Tolak Pengguna remove_avatar_user: Hapus Avatar reopen_report: Buka Lagi Laporan + resend_user: Kirim Ulang Email Konfirmasi reset_password_user: Atur Ulang Kata sandi resolve_report: Selesaikan Laporan sensitive_account: Tandai media di akun Anda sebagai sensitif @@ -273,23 +218,29 @@ id: update_announcement: Perbarui Pengumuman update_custom_emoji: Perbarui Emoji Khusus update_domain_block: Perbarui Blokir Domain + update_ip_block: Perbarui peraturan IP update_status: Perbarui Status + update_user_role: Perbarui Peran actions: approve_appeal_html: "%{name} menyetujui moderasi keputusan banding dari %{target}" approve_user_html: "%{name} menyetujui pendaftaran dari %{target}" assigned_to_self_report_html: "%{name} menugaskan laporan %{target} ke dirinya sendiri" change_email_user_html: "%{name} mengubah alamat email pengguna %{target}" + change_role_user_html: "%{name} mengubah peran %{target}" confirm_user_html: "%{name} mengonfirmasi alamat email pengguna %{target}" create_account_warning_html: "%{name} mengirim peringatan untuk %{target}" create_announcement_html: "%{name} membuat pengumuman baru %{target}" + create_canonical_email_block_html: "%{name} memblokir surel dengan hash %{target}" create_custom_emoji_html: "%{name} mengunggah emoji baru %{target}" create_domain_allow_html: "%{name} mengizinkan penggabungan dengan domain %{target}" create_domain_block_html: "%{name} memblokir domain %{target}" create_email_domain_block_html: "%{name} memblokir domain email %{target}" create_ip_block_html: "%{name} membuat aturan untuk IP %{target}" create_unavailable_domain_html: "%{name} menghentikan pengiriman ke domain %{target}" + create_user_role_html: "%{name} membuat peran %{target}" demote_user_html: "%{name} menurunkan pengguna %{target}" destroy_announcement_html: "%{name} menghapus pengumuman %{target}" + destroy_canonical_email_block_html: "%{name} menghapus pemblokiran surel dengan hash %{target}" destroy_custom_emoji_html: "%{name} menghapus emoji %{target}" destroy_domain_allow_html: "%{name} membatalkan izin penggabungan dengan domain %{target}" destroy_domain_block_html: "%{name} membuka blokir domain %{target}" @@ -298,7 +249,8 @@ id: destroy_ip_block_html: "%{name} menghapus aturan untuk IP %{target}" destroy_status_html: "%{name} menghapus status %{target}" destroy_unavailable_domain_html: "%{name} melanjutkan pengiriman ke domain %{target}" - disable_2fa_user_html: "%{name} mematikan syarat dua faktor utk pengguna %{target}" + destroy_user_role_html: "%{name} menghapus peran %{target}" + disable_2fa_user_html: "%{name} mematikan syarat dua faktor untuk pengguna %{target}" disable_custom_emoji_html: "%{name} mematikan emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} menonaktifkan otentikasi token email untuk %{target}" disable_user_html: "%{name} mematikan login untuk pengguna %{target}" @@ -311,6 +263,7 @@ id: reject_user_html: "%{name} menolak pendaftaran dari %{target}" remove_avatar_user_html: "%{name} menghapus avatar %{target}" reopen_report_html: "%{name} membuka ulang laporan %{target}" + resend_user_html: "%{name} mengirim ulang konfirmasi email untuk %{target}" reset_password_user_html: "%{name} mereset kata sandi pengguna %{target}" resolve_report_html: "%{name} menyelesaikan laporan %{target}" sensitive_account_html: "%{name} menandai media %{target} sebagai sensitif" @@ -324,8 +277,10 @@ id: update_announcement_html: "%{name} memperbarui pengumuman %{target}" update_custom_emoji_html: "%{name} memperbarui emoji %{target}" update_domain_block_html: "%{name} memperbarui blokir domain untuk %{target}" + update_ip_block_html: "%{name} mengubah peraturan untuk IP %{target}" update_status_html: "%{name} memperbarui status %{target}" - deleted_status: "(status dihapus)" + update_user_role_html: "%{name} mengubah peran %{target}" + deleted_account: akun yang dihapus empty: Log tidak ditemukan. filter_by_action: Filter berdasarkan tindakan filter_by_user: Filter berdasarkan pengguna @@ -369,6 +324,7 @@ id: listed: Terdaftar new: title: Tambah emoji kustom baru + no_emoji_selected: Tidak ada emoji yang diubah karena tidak ada yang dipilih not_permitted: Anda tidak diizinkan untuk melakukan tindakan ini overwrite: Timpa shortcode: Kode pendek @@ -417,6 +373,7 @@ id: destroyed_msg: Pemblokiran domain telah dibatalkan domain: Domain edit: Edit blok domain + existing_domain_block: Anda sudah menerapkan batasan ketat terhadap %{name}. existing_domain_block_html: Anda telah menerapkan batasan yang lebih ketat pada %{name}, Anda harus membuka blokirnya lebih dulu. new: create: Buat pemblokiran @@ -557,11 +514,11 @@ id: relays: add_new: Tambah relai baru delete: Hapus - description_html: "Relai gabungan adalah server perantara yang menukarkan toot publik dalam jumlah besar antara server yang berlangganan dengan yang menerbitkannya. Ini akan membantu server kecil hingga medium menemukan konten dari fediverse, yang tentu saja mengharuskan pengguna lokal untuk mengikuti orang lain dari server remot." + description_html: "Relai gabungan adalah server perantara yang menukarkan kiriman publik dalam jumlah besar antara server yang berlangganan dengan yang menerbitkannya. Ini akan membantu server kecil hingga medium menemukan konten dari fediverse, yang tentu saja mengharuskan pengguna lokal untuk mengikuti orang lain dari server jarak jauh." disable: Matikan disabled: Dimatikan enable: Aktifkan - enable_hint: Saat diaktifkan, server Anda akan melanggan semua toot publik dari relai ini, dan akan mengirim toot publik server ini ke sana. + enable_hint: Saat diaktifkan, server Anda akan melanggan semua kiriman publik dari relai ini, dan akan mengirim toot publik server ini ke sana. enabled: Diaktifkan inbox_url: URL Relai pending: Menunggu persetujuan relai @@ -632,6 +589,63 @@ id: unresolved: Belum Terseleseikan updated_at: Diperbarui view_profile: Lihat profil + roles: + add_new: Tambahkan peran + assigned_users: + other: "%{count} pengguna" + categories: + administration: Administrasi + invites: Undangan + moderation: Moderasi + special: Khusus + delete: Hapus + description_html: Dengan peran pengguna, Anda dapat mengubah fungsi dan area Mastodon apa pengguna Anda dapat mengakses. + edit: ערכי את התפקיד של '%{name}' + everyone: Izin bawaan + everyone_full_description_html: Ini adalah peran dasaran yang memengaruhi semua pengguna, bahkan tanpa yang memiliki sebuah peran yang diberikan. Semua peran lainnya mendapatkan izin dari ini. + permissions_count: + other: "%{count} izin" + privileges: + administrator: Administrator + administrator_description: Pengguna dengan izin ini akan melewati setiap izin + delete_user_data: Hapus Data Pengguna + delete_user_data_description: Memungkinkan pengguna untuk menghapus data pengguna lain tanpa jeda + invite_users: Undang Pengguna + invite_users_description: Memungkinkan pengguna untuk mengundang orang baru ke server + manage_announcements: Kelola Pengumuman + manage_announcements_description: Memungkinkan pengguna untuk mengelola pengumuman di server + manage_appeals: Kelola Permintaan + manage_appeals_description: Memungkinkan pengguna untuk meninjau permintaan terhadap tindakan moderasi + manage_blocks: Kelola Pemblokiran + manage_blocks_description: Memungkinkan pengguna untuk memblokir penyedia surel dan alamat IP + manage_custom_emojis: Kelola Emoji Kustom + manage_custom_emojis_description: Memungkinkan pengguna untuk mengelola emoji kustom di server + manage_federation: Kelola Federasi + manage_federation_description: Memungkinkan pengguna untuk memblokir atau memperbolehkan federasi dengan domain lain, dan mengatur pengiriman + manage_invites: Kelola Undangan + manage_invites_description: Memungkinkan pengguna untuk menjelajah dan menonaktifkan tautan undangan + manage_reports: Kelola Laporan + manage_reports_description: Memungkinkan pengguna untuk meninjau laporan dan melakukan tindakan moderasi terhadap mereka + manage_roles: Kelola Peran + manage_roles_description: Memungkinkan pengguna untuk mengelola dan memberikan peran di bawah mereka + manage_rules: Kelola Aturan + manage_rules_description: Memungkinkan pengguna untuk mengubah aturan server + manage_settings: Kelola Pengaturan + manage_settings_description: Memungkinkan pengguna untuk mengubah pengaturan situs + manage_taxonomies: Kelola Taksonomi + manage_taxonomies_description: Memungkinkan pengguna untuk meninjau konten tren dan memperbarui pengaturan tagar + manage_user_access: Kelola Akses Pengguna + manage_user_access_description: Memungkinkan pengguna untuk menonaktifkan otentikasi dua faktor, mengubah alamat surel, dan mengatur ulang kata sandi pengguna lain + manage_users: Kelola Pengguna + manage_users_description: Memungkinkan pengguna untuk melihat detail pengguna lain dan melakukan tindakan moderasi terhadap mereka + manage_webhooks: Kelola Webhook + manage_webhooks_description: Memungkinkan pengguna untuk menyiapkan webhook untuk peristiwa administratif + view_audit_log: Lihat Catatan Audit + view_audit_log_description: Memungkinkan pengguna untuk melihat riwayat tindakan administratif di server + view_dashboard: Lihat Dasbor + view_dashboard_description: Memungkinkan pengguna untuk mengakses dasbor dan berbagai metrik + view_devops_description: Memungkinkan pengguna untuk mengakses dasbor Sidekiq dan pgHero + title: Peran rules: add_new: Tambah aturan delete: Hapus @@ -640,108 +654,67 @@ id: empty: Belum ada aturan server yang didefinisikan. title: Aturan server settings: - activity_api_enabled: - desc_html: Hitung status yang dipos scr lokal, pengguna aktif, dan registrasi baru dlm keranjang bulanan - title: Terbitkan statistik keseluruhan tentang aktivitas pengguna - bootstrap_timeline_accounts: - desc_html: Pisahkan nama pengguna dengan koma. Hanya akun lokal dan tak terkunci yang akan bekerja. Isi bawaan jika kosong adalah semua admin lokal. - title: Ikuti scr bawaan untuk pengguna baru - contact_information: - email: Masukkan alamat email - username: Masukkan nama pengguna - custom_css: - desc_html: Ubah tampilan dengan CSS yang dimuat di setiap halaman - title: CSS Kustom - default_noindex: - desc_html: Memengaruhi semua pengguna yang tidak mengubah setelan ini sendiri - title: Singkirkan pengguna dari pengindeksan mesin pencari scr bawaan + about: + manage_rules: Kelola aturan server + preamble: Menyediakan informasi lanjut tentang bagaimana server ini beroperasi, dimoderasi, dan didana. + rules_hint: Ada area yang khusus untuk peraturan yang pengguna Anda seharusnya tahu. + title: Tentang + appearance: + preamble: Ubah antarmuka web Mastodon. + title: Tampilan + branding: + preamble: Merek server Anda membedakannya dari server lain dalam jaringan. Informasi ini dapat ditampilkan dalam berbagai lingkungan, seperti antarmuka web Mastodon, aplikasi asli, dalam tampilan tautan di situs web lain dan dalam aplikasi perpesanan, dan lain-lain. Untuk alasan ini, buat informasi ini jelas, pendek, dan tidak bertele-tele. + title: Merek + content_retention: + preamble: Atur bagaimana konten yang dibuat oleh pengguna disimpan di Mastodon. + title: Retensi konten + discovery: + follow_recommendations: Ikuti rekomendasi + preamble: Menampilkan konten menarik penting dalam memandu pengguna baru yang mungkin tidak tahu siapa pun di Mastodon. Atur bagaimana berbagai fitur penemuan bekerja di server Anda. + profile_directory: Direktori profil + public_timelines: Linimasa publik + title: Penemuan + trends: Tren domain_blocks: all: Kepada semua orang disabled: Tidak kepada siapa pun - title: Lihat blokir domain users: Ke pengguna lokal yang sudah login - domain_blocks_rationale: - title: Tampilkan alasan - hero: - desc_html: Ditampilkan di halaman depan. Direkomendasikan minimal 600x100px. Jika tidak diatur, kembali ke server gambar kecil - title: Gambar pertama - mascot: - desc_html: Ditampilkan di banyak halaman. Direkomendasikan minimal 293x205px. Jika tidak diatur, kembali ke maskot bawaan - title: Gambar maskot - peers_api_enabled: - desc_html: Nama domain server ini dijumpai di fediverse - title: Terbitkan daftar server yang ditemukan - preview_sensitive_media: - desc_html: Pratinjau tautan pada situsweb lain akan menampilkan gambar kecil meski media ditandai sebagai sensitif - title: Tampilkan media sensitif di pratinjau OpenGraph - profile_directory: - desc_html: Izinkan pengguna untuk ditemukan - title: Aktifkan direktori profil registrations: - closed_message: - desc_html: Ditampilkan pada halaman depan saat pendaftaran ditutup
      Anda bisa menggunakan tag HTML - title: Pesan penutupan pendaftaran - deletion: - desc_html: Izinkan siapapun untuk menghapus akun miliknya - title: Buka penghapusan akun - min_invite_role: - disabled: Tidak ada satu pun - title: Izinkan undangan oleh - require_invite_text: - desc_html: Saat pendaftaran harus disetujui manual, buat input teks "Mengapa Anda ingin bergabung?" sebagai hal wajib bukan opsional - title: Pengguna baru harus memasukkan alasan bergabung + preamble: Atur siapa yang dapat membuat akun di server Anda. + title: Pendaftaran registrations_mode: modes: approved: Persetujuan diperlukan untuk mendaftar none: Tidak ada yang dapat mendaftar open: Siapa pun dapat mendaftar - title: Mode registrasi - show_known_fediverse_at_about_page: - desc_html: Ketika dimatikan, batasi linimasa publik yang ditautkan dari halaman landas untuk menampilkan konten lokal saja - title: Masukkan konten gabungan di halaman linimasa publik tanpa autentifikasi - show_staff_badge: - desc_html: Tampilkan lencana staf pada halaman pengguna - title: Tampilkan lencana staf - site_description: - desc_html: Ditampilkan sebagai sebuah paragraf di halaman depan dan digunakan sebagai tag meta.
      Anda bisa menggunakan tag HTML, khususnya <a> dan <em>. - title: Deskripsi situs - site_description_extended: - desc_html: Ditampilkan pada halaman informasi tambahan
      Anda bisa menggunakan tag HTML - title: Deskripsi situs tambahan - site_short_description: - desc_html: Ditampilkan pada bilah samping dan tag meta. Jelaskan apa itu Mastodon dan yang membuat server ini spesial dalam satu paragraf. - title: Deskripsi server pendek - site_terms: - desc_html: Anda dapat menulis kebijakan privasi, ketentuan layanan, atau hal legal lainnya sendiri. Anda dapat menggunakan tag HTML - title: Ketentuan layanan kustom - site_title: Judul Situs - thumbnail: - desc_html: Dipakai sebagai pratinjau via OpenGraph dan API. Direkomendasikan 1200x630px - title: Server gambar kecil - timeline_preview: - desc_html: Tampilkan tautan ke linimasa publik pada halaman landas dan izinkan API mengakses linimasa publik tanpa autentifikasi - title: Izinkan akses linimasa publik tanpa autentifikasi - title: Pengaturan situs - trendable_by_default: - desc_html: Memengaruhi tagar yang belum pernah diizinkan - title: Izinkan tagar masuk tren tanpa peninjauan - trends: - desc_html: Tampilkan secara publik tagar tertinjau yang kini sedang tren - title: Tagar sedang tren + title: Pengaturan Server site_uploads: delete: Hapus berkas yang diunggah destroyed_msg: Situs yang diunggah berhasil dihapus! statuses: + account: Penulis + application: Aplikasi back_to_account: Kembali ke halaman akun back_to_report: Kembali ke halaman laporan batch: remove_from_report: Hapus dari laporan report: Laporan deleted: Dihapus + favourites: Favorit + history: Riwayat versi + in_reply_to: Membalas ke + language: Bahasa media: title: Media + metadata: Metadata no_status_selected: Tak ada status yang berubah karena tak ada yang dipilih + open: Buka kiriman + original_status: Kiriman asli + reblogs: Reblog + status_changed: Kiriman diubah title: Status akun + trending: Sedang tren + visibility: Visibilitas with_media: Dengan media strikes: actions: @@ -781,6 +754,9 @@ id: description_html: Ini adalah tautan yang saat ini dibagikan oleh banyak akun yang dapat dilihat dari server Anda. Ini dapat membantu pengguna Anda menemukan apa yang sedang terjadi di dunia. Tidak ada tautan yang ditampilkan secara publik kecuali Anda sudah menyetujui pengirimnya. Anda juga dapat mengizinkan atau menolak tautan individu. disallow: Batalkan izin tautan disallow_provider: Batalkan izin penerbit + no_link_selected: Tidak ada tautan yang diubah karena tidak ada yang dipilih + publishers: + no_publisher_selected: Tidak ada penerbit yang diubah karena tidak ada yang dipilih shared_by_over_week: other: Dibagikan oleh %{count} orang selama seminggu terakhir title: Tautan sedang tren @@ -799,6 +775,7 @@ id: description_html: Ini adalah kiriman yang diketahui server Anda yang kini sedang dibagikan dan difavoritkan banyak akun. Ini akan membantu pengguna baru dan lama Anda menemukan lebih banyak orang untuk diikuti. Tidak ada kiriman yang ditampilkan secara publik kecuali jika sudah disetujui pemilik akun, dan pemilik akun mengizinkan akun mereka disarankan untuk orang lain. Anda juga dapat mengizinkan atau menolak kiriman individu. disallow: Jangan beri izin kiriman disallow_account: Jangan beri izin penulis + no_status_selected: Tidak ada kiriman yang sedang tren karena tidak ada yang dipilih not_discoverable: Pemilik akun memilih untuk tidak dapat ditemukan shared_by: other: Dibagikan dan difavoritkan %{friendly_count} kali @@ -813,6 +790,7 @@ id: tag_uses_measure: kegunaan total description_html: Ini adalah tagar yang kini sedang muncul di banyak kiriman yang dapat dilihat server Anda. Ini dapat membantu pengguna Anda menemukan apa yang sedang dibicarakan banyak orang. Tagar tidak akan ditampilkan secara publik kecuali jika Anda mengizinkannya. listable: Dapat disarankan + no_tag_selected: Tidak ada tag yang diubah karena tidak ada yang dipilih not_listable: Tidak akan disarankan not_trendable: Tidak akan muncul di bawah tren not_usable: Tidak dapat digunakan @@ -832,6 +810,25 @@ id: edit_preset: Sunting preset peringatan empty: Anda belum mendefinisikan peringatan apapun. title: Kelola preset peringatan + webhooks: + add_new: Tambah titik akhir + delete: Hapus + description_html: Sebuah webhook memungkinkan Mastodon untuk mengirim notifikasi dalam waktu nyata tentang peristiwa yang dipilih ke aplikasi Anda sendiri, sehingga aplikasi Anda dapat memicu reaksi secara otomatis. + disable: Matikan + disabled: Nonaktif + edit: Edit titik akhir + empty: Anda belum memiliki titik akhir webhook yang diatur. + enable: Aktifkan + enabled: Aktif + enabled_events: + other: "%{count} acara aktif" + events: Acara + new: Webhook baru + rotate_secret: Buat ulang rahasia + secret: Rahasia penandatanganan + status: Status + title: Webhook + webhook: Webhook admin_mailer: new_appeal: actions: @@ -855,12 +852,8 @@ id: new_trends: body: 'Item berikut harus ditinjau sebelum ditampilkan secara publik:' new_trending_links: - no_approved_links: Saat ini tidak ada tautan tren yang disetujui. - requirements: 'Kandidat yang ada di sini bisa saja melewati peringkat #%{rank} tautan tren yang disetujui, yang kini "%{lowest_link_title}" memiliki nilai %{lowest_link_score}.' title: Tautan sedang tren new_trending_statuses: - no_approved_statuses: Tidak ada kiriman sedang tren yang disetujui. - requirements: 'Kandidat yang ada di sini bisa saja melewati peringkat #%{rank} kiriman tren yang disetujui, yang kini %{lowest_status_url} memiliki nilai %{lowest_status_score}.' title: Kiriman yang sedang tren new_trending_tags: no_approved_tags: Saat ini tidak ada tagar tren yang disetujui. @@ -875,8 +868,8 @@ id: hint_html: Jika Anda ingin pindah dari akun lain ke sini, Anda dapat membuat alias, yang dilakukan sebelum Anda setuju dengan memindah pengikut dari akun lama ke akun sini. Aksi ini tidak berbahaya dan tidak bisa dikembalikan. Pemindahan akun dimulai dari akun lama. remove: Hapus tautan alias appearance: - advanced_web_interface: Antar muka web tingkat lanjut - advanced_web_interface_hint: 'Jika Anda ingin memanfaatkan seluruh lebar layar Anda, antar muka web tingkat lanjut mengizinkan Anda mengonfigurasi beragam kolom untuk menampilkan informasi sebanyak yang Anda mau: Beranda, notifikasi, linimasa gabungan, daftar, dan tagar.' + advanced_web_interface: Antarmuka web tingkat lanjut + advanced_web_interface_hint: 'Jika Anda ingin memanfaatkan seluruh lebar layar Anda, antarmuka web tingkat lanjut memungkinkan Anda mengonfigurasi beragam kolom untuk menampilkan informasi sebanyak yang Anda inginkan: Beranda, notifikasi, linimasa gabungan, daftar, dan tagar.' animations_and_accessibility: Animasi dan aksesibilitas confirmation_dialogs: Dialog konfirmasi discovery: Jelajah @@ -885,7 +878,7 @@ id: guide_link: https://crowdin.com/project/mastodon guide_link_text: Siapa saja bisa berkontribusi. sensitive_content: Konten sensitif - toot_layout: Tata letak toot + toot_layout: Tata letak kiriman application_mailer: notification_preferences: Ubah pilihan email salutation: "%{name}," @@ -896,16 +889,13 @@ id: applications: created: Aplikasi berhasil dibuat destroyed: Aplikasi berhasil dihapus - invalid_url: URL tidak sesuai regenerate_token: Buat ulang token akses token_regenerated: Token akses berhasil dibuat ulang warning: Hati-hati dengan data ini. Jangan bagikan kepada siapapun! your_token: Token akses Anda auth: - apply_for_account: Meminta undangan + apply_for_account: Masuk ke daftar tunggu change_password: Kata sandi - checkbox_agreement_html: Saya setuju dengan peraturan server dan ketentuan layanan - checkbox_agreement_without_rules_html: Saya setuju dengan ketentuan layanan delete_account: Hapus akun delete_account_html: Jika Anda ingin menghapus akun Anda, Anda dapat memproses ini. Anda akan dikonfirmasi. description: @@ -924,6 +914,7 @@ id: migrate_account: Pindah ke akun berbeda migrate_account_html: Jika Anda ingin mengalihkan akun ini ke akun lain, Anda dapat mengaturnya di sini. or_log_in_with: Atau masuk dengan + privacy_policy_agreement_html: Saya telah membaca dan menerima kebijakan privasi providers: cas: CAS saml: SAML @@ -931,12 +922,18 @@ id: registration_closed: "%{instance} tidak menerima anggota baru" resend_confirmation: Kirim ulang email konfirmasi reset_password: Reset kata sandi + rules: + preamble: Ini diatur dan ditetapkan oleh moderator %{domain}. + title: Beberapa aturan dasar. security: Identitas set_new_password: Tentukan kata sandi baru setup: email_below_hint_html: Jika alamat email di bawah tidak benar, Anda dapat menggantinya di sini dan menerima email konfirmasi baru. email_settings_hint_html: Email konfirmasi telah dikirim ke %{email}. Jika alamat email tidak benar, Anda dapat mengubahnya di pengaturan akun. title: Atur + sign_up: + preamble: Dengan sebuah akun di server Mastodon ini, Anda akan dapat mengikuti orang lain dalam jaringan, di mana pun akun mereka berada. + title: Mari kita siapkan Anda di %{domain}. status: account_status: Status akun confirming: Menunggu konfirmasi email diselesaikan. @@ -945,7 +942,6 @@ id: redirecting_to: Akun Anda tidak aktif karena sekarang dialihkan ke %{acct}. view_strikes: Lihat hukuman lalu yang pernah terjadi kepada akun Anda too_fast: Formulir dikirim terlalu cepat, coba lagi. - trouble_logging_in: Kesulitan masuk? use_security_key: Gunakan kunci keamanan authorize_follow: already_following: Anda sudah mengikuti akun ini @@ -1003,10 +999,6 @@ id: more_details_html: Lebih detailnya, lihat kebijakan privasi. username_available: Nama pengguna Anda akan tersedia lagi username_unavailable: Nama pengguna Anda tetap tidak akan tersedia - directories: - directory: Direktori profil - explanation: Temukan pengguna berdasarkan minatnya - explore_mastodon: Jelajahi %{title} disputes: strikes: action_taken: Tindakan dilaksanakan @@ -1061,7 +1053,7 @@ id: archive_takeout: date: Tanggal download: Unduh arsip Anda - hint_html: Anda dapat meminta arsip toot dan media yang Anda unggah. Data yang terekspor akan berformat ActivityPub, dapat dibaca dengan perangkat lunak yang mendukungnya. Anda dapat meminta arsip akun setiap 7 hari. + hint_html: Anda dapat meminta arsip kiriman dan media yang Anda unggah. Data yang terekspor akan berformat ActivityPub, yang dapat dibaca dengan perangkat lunak yang mendukungnya. Anda dapat meminta arsip akun setiap 7 hari. in_progress: Mengompilasi arsip Anda... request: Meminta arsip Anda size: Ukuran @@ -1085,29 +1077,54 @@ id: public: Linimasa publik thread: Percakapan edit: + add_keyword: Tambahkan kata kunci + keywords: Kata kunci + statuses: Kiriman individu + statuses_hint_html: Saringan ini diterapkan beberapa kiriman individu jika mereka cocok atau tidak dengan kata kunci di bawah. Tinjau atau hapus kiriman dari saringan. title: Ubah saringan errors: + deprecated_api_multiple_keywords: Parameter ini tidak dapat diubah dari aplikasi ini karena mereka diterapkan ke lebih dari satu kata kunci saringan. Gunakan aplikasi yang lebih baru atau antarmuka web. invalid_context: Konteks tidak ada atau invalid - invalid_irreversible: Penyaringan yang tidak dapat dipulihkan hanya bekerja di beranda atau konteks notifikasi index: + contexts: Saringan dalam %{contexts} delete: Hapus empty: Anda tidak memiliki filter. + expires_in: Kedaluwarsa dalam %{distance} + expires_on: Kedaluwarsa pada %{date} + keywords: + other: "%{count} kata kunci" + statuses: + other: "%{count} kiriman" + statuses_long: + other: "%{count} kiriman individu disembunyikan" title: Saringan new: + save: Simpan saringan baru title: Tambah saringan baru + statuses: + back_to_filter: Kembali ke saringan + batch: + remove: Hapus dari saringan + index: + hint: Saringan ini diterapkan ke beberapa kiriman individu tanpa memengaruhi oleh kriteria lain. Anda dapat menambahkan lebih banyak kiriman ke saringan ini dari antarmuka web. + title: Kiriman yang disaring footer: - developers: Pengembang - more: Lainnya… - resources: Sumber daya trending_now: Sedang tren generic: all: Semua + all_items_on_page_selected_html: + other: "%{count} item di laman ini dipilih." + all_matching_items_selected_html: + other: "%{count} item yang cocok dengan pencarian Anda dipilih." changes_saved_msg: Perubahan berhasil disimpan! copy: Salin delete: Hapus + deselect: Batalkan semua pilihan none: Tidak ada order_by: Urut berdasarkan save_changes: Simpan perubahan + select_all_matching_items: + other: Pilih %{count} item yang cocok dengan pencarian Anda. today: hari ini validation_errors: other: Ada yang belum benar! Silakan tinjau %{count} kesalahan di bawah ini @@ -1130,7 +1147,6 @@ id: following: Daftar diikuti muting: Daftar didiamkan upload: Unggah - in_memoriam_html: Dalam memori. invites: delete: Nonaktifkan expired: Kedaluwarsa @@ -1208,19 +1224,14 @@ id: carry_blocks_over_text: Pengguna ini pindah dari %{acct}, yang telah Anda blokir sebelumnya. carry_mutes_over_text: Pengguna ini pindah dari %{acct}, yang telah Anda bisukan sebelumnya. copy_account_note_text: 'Pengguna ini pindah dari %{acct}, ini dia pesan Anda sebelumnya tentang mereka:' + navigation: + toggle_menu: Saklar menu notification_mailer: admin: + report: + subject: "%{name} mengirim sebuah laporan" sign_up: subject: "%{name} mendaftar" - digest: - action: Lihat semua notifikasi - body: Ini adalah ringkasan singkat yang anda lewatkan pada sejak kunjungan terakhir anda pada %{since} - mention: "%{name} menyebut anda di:" - new_followers_summary: - other: Anda mendapatkan %{count} pengikut baru! Luar biasa! - subject: - other: "%{count} notifikasi baru sejak kunjungan Anda terakhir 🐘" - title: Saat Anda tidak muncul... favourite: body: 'Status anda disukai oleh %{name}:' subject: "%{name} menyukai status anda" @@ -1292,6 +1303,8 @@ id: other: Lainnya posting_defaults: Kiriman bawaan public_timelines: Linimasa publik + privacy_policy: + title: Kebijakan Privasi reactions: errors: limit_reached: Batas reaksi yang berbeda terpenuhi @@ -1314,22 +1327,7 @@ id: remove_selected_follows: Batal ikuti pengguna terpilih status: Status akun remote_follow: - acct: Masukkan namapengguna@domain yang akan anda ikuti missing_resource: Tidak dapat menemukan URL redirect dari akun anda - no_account_html: Tidak memiliki akun? Anda dapat mendaftar di sini - proceed: Lanjutkan untuk mengikuti - prompt: 'Anda akan mengikuti:' - reason_html: "Mengapa langkah ini penting? %{instance} mungkin saja bukan tempat Anda mendaftar, sehingga kami perlu mengalihkan Anda ke server beranda lebih dahulu." - remote_interaction: - favourite: - proceed: Lanjutkan ke favorit - prompt: 'Anda ingin memfavoritkan toot ini:' - reblog: - proceed: Lanjutkan ke boost - prompt: 'Anda ingin mem-boost toot ini:' - reply: - proceed: Lanjutkan ke balasan - prompt: 'Anda ingin membalas toot ini:' reports: errors: invalid_rules: tidak mereferensikan aturan yang valid @@ -1339,15 +1337,14 @@ id: account: Kiriman publik dari @%{acct} tag: 'Kiriman publik ditagari #%{hashtag}' scheduled_statuses: - over_daily_limit: Anda telah melampaui batas %{limit} toot terjadwal untuk sehari - over_total_limit: Anda telah melampaui batas %{limit} toot terjadwal + over_daily_limit: Anda telah melampaui batas %{limit} kiriman terjadwal untuk sehari + over_total_limit: Anda telah melampaui batas %{limit} kiriman terjadwal too_soon: Tanggal terjadwal haruslah pada hari yang akan datang sessions: activity: Aktivitas terakhir browser: Peramban browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1361,7 +1358,6 @@ id: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Sesi sekarang description: "%{browser} di %{platform}" @@ -1370,8 +1366,6 @@ id: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1428,15 +1422,15 @@ id: over_character_limit: melebihi %{max} karakter pin_errors: direct: Kiriman yang hanya terlihat oleh pengguna yang disebutkan tidak dapat disematkan - limit: Anda sudah mencapai jumlah maksimum toot yang dapat disematkan - ownership: Toot orang lain tidak bisa disematkan + limit: Anda sudah mencapai jumlah maksimum kiriman yang dapat disematkan + ownership: Kiriman orang lain tidak bisa disematkan reblog: Boost tidak bisa disematkan poll: total_people: other: "%{count} orang" total_votes: other: "%{count} memilih" - vote: Memilih + vote: Pilih show_more: Tampilkan selengkapnya show_newer: Tampilkan lebih baru show_older: Tampilkan lebih lama @@ -1487,7 +1481,7 @@ id: min_reblogs: Simpan kiriman yang di-boost lebih dari min_reblogs_hint: Tidak menghapus kiriman Anda yang di-boost lebih dari sekian kali. Kosongkan bila ingin menghapus kiriman tanpa peduli jumlah boost-nya stream_entries: - pinned: Toot tersemat + pinned: Kiriman tersemat reblogged: di-boost-kan sensitive_content: Konten sensitif strikes: @@ -1495,89 +1489,6 @@ id: too_late: Terlambat untuk mengajukan banding hukuman ini tags: does_not_match_previous_name: tidak cocok dengan nama sebelumnya - terms: - body_html: | -

      Privacy Policy

      -

      What information do we collect?

      - -
        -
      • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
      • -
      • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
      • -
      • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
      • -
      • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
      • -
      - -
      - -

      What do we use your information for?

      - -

      Any of the information we collect from you may be used in the following ways:

      - -
        -
      • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
      • -
      • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
      • -
      • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
      • -
      - -
      - -

      How do we protect your information?

      - -

      We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

      - -
      - -

      What is our data retention policy?

      - -

      We will make a good faith effort to:

      - -
        -
      • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
      • -
      • Retain the IP addresses associated with registered users no more than 12 months.
      • -
      - -

      You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

      - -

      You may irreversibly delete your account at any time.

      - -
      - -

      Do we use cookies?

      - -

      Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

      - -

      We use cookies to understand and save your preferences for future visits.

      - -
      - -

      Do we disclose any information to outside parties?

      - -

      We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

      - -

      Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

      - -

      When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

      - -
      - -

      Site usage by children

      - -

      If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

      - -

      If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

      - -

      Law requirements can be different if this server is in another jurisdiction.

      - -
      - -

      Changes to our Privacy Policy

      - -

      If we decide to change our privacy policy, we will post those changes on this page.

      - -

      This document is CC-BY-SA. It was last updated March 7, 2018.

      - -

      Originally adapted from the Discourse privacy policy.

      - title: "%{instance} Ketentuan Layanan dan Kebijakan Privasi" themes: contrast: Mastodon (Kontras tinggi) default: Mastodon (Gelap) @@ -1656,20 +1567,13 @@ id: suspend: Akun ditangguhkan welcome: edit_profile_action: Siapkan profil - edit_profile_step: Anda dapat menyesuaikan profil Anda dengan mengunggah avatar, kepala, mengubah tampilan nama dan lainnya. Jika Anda ingin meninjau pengikut baru sebelum Anda terima sebagai pengikut, Anda dapat mengunci akun Anda. + edit_profile_step: Anda dapat mengubah profil Anda dengan mengunggah sebuah foto profil, mengubah nama tampilan Anda dan lain-lain. Anda dapat memilih untuk meninjau pengikut baru sebelum mereka diperbolehkan untuk mengikuti Anda. explanation: Beberapa tips sebelum Anda memulai final_action: Mulai mengirim - final_step: 'Mulai mengirim! Tanpa pengikut, pesan publik Anda akan tetap dapat dilihat oleh akun lain, contohnya di linimasa lokal atau di tagar. Anda mungkin ingin memperkenalkan diri dengan tagar #introductions.' + final_step: 'Mulai mengirim! Bahkan tanpa pengikut, kiriman publik Anda dapat dilihat oleh orang lain, misalkan di linimasa lokal atau dalam tagar. Anda dapat memperkenalkan diri Anda dalam tagar #introductions.' full_handle: Penanganan penuh Anda full_handle_hint: Ini yang dapat Anda sampaikan kepada teman agar mereka dapat mengirim pesan atau mengikuti Anda dari server lain. - review_preferences_action: Ubah preferensi - review_preferences_step: Pastikan Anda telah mengatur preferensi Anda, seperti email untuk menerima pesan, atau tingkat privasi bawaan untuk postingan Anda. Jika Anda tidak alergi dengan gerakan gambar, Anda dapat mengaktifkan opsi mainkan otomatis GIF. subject: Selamat datang di Mastodon - tip_federated_timeline: Linimasa gabungan adalah ruang yang menampilkan jaringan Mastodon. Tapi ini hanya berisi tetangga orang-orang yang Anda ikuti, jadi tidak sepenuhnya komplet. - tip_following: Anda secara otomatis mengikuti admin server. Untuk mencari akun-akun yang menarik, silakan periksa linimasa lokal dan gabungan. - tip_local_timeline: Linimasa lokal adalah ruang yang menampilkan orang-orang di %{instance}. Mereka adalah tetangga dekat! - tip_mobile_webapp: Jika peramban mobile Anda ingin menambahkan Mastodon ke layar utama, Anda dapat menerima notifikasi dorong. Ia akan berjalan seperti aplikasi asli! - tips: Tips title: Selamat datang, %{name}! users: follow_limit_reached: Anda tidak dapat mengikuti lebih dari %{limit} orang diff --git a/config/locales/ig.yml b/config/locales/ig.yml new file mode 100644 index 00000000000000..c32706518360fb --- /dev/null +++ b/config/locales/ig.yml @@ -0,0 +1,12 @@ +--- +ig: + errors: + '400': The request you submitted was invalid or malformed. + '403': You don't have permission to view this page. + '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. + '410': The page you were looking for doesn't exist here anymore. + '422': + '429': Too many requests + '500': + '503': The page could not be served due to a temporary server failure. diff --git a/config/locales/io.yml b/config/locales/io.yml index 1d0304d0906452..f8d233475daaf4 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1,94 +1,27 @@ --- io: about: - about_hashtag_html: Co esas publika posti quo etiketigesis kun #%{hashtag}. Vu povas interagar kun oli se vu havas konto irgaloke en fediverso. about_mastodon_html: Mastodon esas gratuita, apertitkodexa sociala reto. Ol esas sencentra altra alternativo a komercala servadi. Ol evitigas, ke sola firmo guvernez tua tota komunikadol. Selektez servero, quan tu fidas. Irge qua esas tua selekto, tu povas komunikar kun omna altra uzeri. Irgu povas krear sua propra instaluro di Mastodon en sua servero, e partoprenar en la sociala reto tote glate. - about_this: Pri ta instaluro - active_count_after: aktiva - active_footnote: Monade Aktiva Uzanti (MAU) - administered_by: 'Administresis da:' - api: API - apps: Smartfonsoftwari - apps_platforms: Uzez Mastodon de iOS, Android e altra platformi - browse_directory: Videz profilcheflisto e filtrez segun interesi - browse_local_posts: Videz samtempa video di publika posti de ca servilo - browse_public_posts: Videz samtempa video di publika posti che Mastodon - contact: Kontaktar contact_missing: Ne fixigita contact_unavailable: Nula - continue_to_web: Durez a retsoftwaro - discover_users: Deskovrez uzanti - documentation: Dokumentajo - federation_hint_html: Per konto che %{instance}, vu povas sequar persono che irga servilo di Mastodon e altra siti. - get_apps: Probez smartfonsoftwaro hosted_on: Mastodon hostigesas che %{domain} - instance_actor_flash: 'Ca konto esas virtuala aganto quo uzesas por reprezentar la servilo e ne irga individuala uzanto. Ol uzesas por federskopo e ne debas restriktesar se vu ne volas obstruktar tota instanco, se ol esas la kaso, do vu debas uzar domenobstrukto. - - ' - learn_more: Lernez pluse - logged_in_as_html: Vu nun eniras quale %{username}. - logout_before_registering: Vu ja eniris. - privacy_policy: Privatesguidilo - rules: Servilreguli - rules_html: 'La subo montras rezumo di reguli quon vu bezonas sequar se vu volas havar konto che ca servilo di Mastodon:' - see_whats_happening: Videz quo eventas - server_stats: 'Servilstatistiko:' - source_code: Fontkodexo - status_count_after: - one: posto - other: posti - status_count_before: Qua publikigis - tagline: Sequez amiki e deskovrez nova personi - terms: Serveskondicioni - unavailable_content: Jerata servili - unavailable_content_description: - domain: Servilo - reason: Motivo - rejecting_media: 'Mediifaili de ca servili ne procedagesas o retenesos, e imajeti ne montresos, do manuala klikto bezonesas a originala failo:' - rejecting_media_title: Filtrita medii - silenced: 'Posti de ca servili celesos en publika tempolinei e konversi, e notifiki ne facesos de oli uzantinteragi, se vu ne sequas oli:' - silenced_title: Limitizita servili - suspended: 'Informi de ca servili procedagesos o retenesos o interchanjesos, do irga interago o komuniko kun uzanti de ca servili esas neposibla:' - suspended_title: Restriktita servili - unavailable_content_html: Mastodon generale permisas on vidar kontenajo e interagar kun uzanti de irga altra servilo en fediverso. Existas eceptioni quo facesis che ca partikulara servilo. - user_count_after: - one: uzanto - other: uzanti - user_count_before: Hemo di - what_is_mastodon: Quo esas Mastodon? + title: Pri co accounts: - choices_html: 'Selektaji di %{name}:' - endorsements_hint: Vu povas rekomendar personi quon vu sequas de retintervizajo, e oli montresos hike. - featured_tags_hint: Vu povas estalar partikulara hashtagi quo montresos hike. follow: Sequar followers: one: Sequanto other: Sequanti following: Sequati instance_actor_flash: Ca konto esas virtuala aganto quo uzesas por reprezentar la servilo e ne irga individuala uzanto. Ol uzesas por federskopo e ne debas restriktesar. - joined: Juntis ye %{date} last_active: lasta aktiva tempo link_verified_on: Proprieteso di ca ligilo kontrolesis ye %{date} - media: Medii - moved_html: "%{name} transferesis a %{new_profile_link}:" - network_hidden: Ca informi ne esas disponebla nothing_here: Esas nulo hike! - people_followed_by: Sequati da %{name} - people_who_follow: Sequanti di %{name} pin_errors: following: Vu mustas ja sequar persono quon vu volas estalar posts: one: Posto other: Posti posts_tab_heading: Posti - posts_with_replies: Posti e respondi - roles: - admin: Administrero - bot: Boto - group: Grupo - moderator: Jerero - unavailable: Profilo esas nedisponebla - unfollow: Dessequar admin: account_actions: action: Agez @@ -111,6 +44,11 @@ io: new_email: Nova retposto submit: Chanjez retposto title: Chanjez retposto por %{username} + change_role: + changed_msg: Rolo sucesoze chanjesis! + label: Chanjez rolo + no_role: Nula rolo + title: Chanjez rolo por %{username} confirm: Konfirmez confirmed: Konfirmita confirming: Ankore konfirmesas @@ -154,6 +92,7 @@ io: active: Aktiva all: Omna pending: Vartanta + silenced: Limitizita suspended: Restriktita title: Jero moderation_notes: Jernoti @@ -161,6 +100,7 @@ io: most_recent_ip: Maxim recenta IP no_account_selected: Nula konti chanjesis pro ke nulo selektesis no_limits_imposed: Limiti ne fixesis + no_role_assigned: Nula rolo not_subscribed: Ne abonita pending: Vartar kontrolo perform_full_suspension: Perform full suspension @@ -187,12 +127,7 @@ io: reset: Richanjez reset_password: Richanjez pasvorto resubscribe: Riabonez - role: Permisi - roles: - admin: Administrero - moderator: Jerero - staff: Laborero - user: Uzanto + role: Rolo search: Trovez search_same_email_domain: Altra uzanti kun sama retpostodomeno search_same_ip: Altra uzanti kun sama IP @@ -235,17 +170,21 @@ io: approve_user: Aprobez uzanto assigned_to_self_report: Taskigez raporto change_email_user: Chanjez retposto por uzanto + change_role_user: Chanjez rolo di uzanto confirm_user: Konfirmez uzanto create_account_warning: Kreez averto create_announcement: Kreez anunco + create_canonical_email_block: Kreez domenobstrukto create_custom_emoji: Kreez kustumizita emocimajo create_domain_allow: Kreez domenpermiso create_domain_block: Kreez domenobstrukto create_email_domain_block: Kreez retpostodomenobstrukto create_ip_block: Kreez IP-regulo create_unavailable_domain: Kreez nedisponebla domeno + create_user_role: Kreez rolo demote_user: Despromocez uzanto destroy_announcement: Efacez anunco + destroy_canonical_email_block: Efacez domenobstrukto destroy_custom_emoji: Efacez kustumizita emocimajo destroy_domain_allow: Efacez domenpermiso destroy_domain_block: Efacez domenobstrukto @@ -254,6 +193,7 @@ io: destroy_ip_block: Efacez IP-regulo destroy_status: Efacez posto destroy_unavailable_domain: Efacez nedisponebla domeno + destroy_user_role: Destruktez rolo disable_2fa_user: Desaktivigez 2FA disable_custom_emoji: Desaktivigez kustumizita emocimajo disable_sign_in_token_auth_user: Desaktivigez retpostofichyurizo por uzanto @@ -280,24 +220,30 @@ io: update_announcement: Novigez anunco update_custom_emoji: Novigez kustumizita emocimajo update_domain_block: Novigez domenobstrukto + update_ip_block: Kreez IP-regulo update_status: Novigez posto + update_user_role: Novigez rolo actions: approve_appeal_html: "%{name} aprobis jerdecidapelo de %{target}" approve_user_html: "%{name} aprobis registro de %{target}" assigned_to_self_report_html: "%{name} taskigis raporto %{target} a su" change_email_user_html: "%{name} chanjis retpostoadreso di uzanto %{target}" + change_role_user_html: "%{name} chanjis rolo di %{target}" confirm_user_html: "%{name} konfirmis retpostoadreso di uzanto %{target}" create_account_warning_html: "%{name} sendis averto a %{target}" create_announcement_html: "%{name} kreis nova anunco %{target}" + create_canonical_email_block_html: "%{name} obstruktis retpostodomeno %{target}" create_custom_emoji_html: "%{name} adchargis nova emocimajo %{target}" create_domain_allow_html: "%{name} permisis federato kun domeno %{target}" create_domain_block_html: "%{name} obstruktis domeno %{target}" create_email_domain_block_html: "%{name} obstruktis retpostodomeno %{target}" create_ip_block_html: "%{name} kreis regulo por IP %{target}" create_unavailable_domain_html: "%{name} cesis sendo a domeno %{target}" + create_user_role_html: "%{name} kreis rolo di %{target}" demote_user_html: "%{name} despromocis uzanto %{target}" destroy_announcement_html: "%{name} efacis anunco %{target}" - destroy_custom_emoji_html: "%{name} destruktis emocimajo %{target}" + destroy_canonical_email_block_html: "%{name} obstruktis retpostodomeno %{target}" + destroy_custom_emoji_html: "%{name} efacis emocimajo %{target}" destroy_domain_allow_html: "%{name} despermisis federato kun domeno %{target}" destroy_domain_block_html: "%{name} deobstruktis domeno %{target}" destroy_email_domain_block_html: "%{name} deobstruktis retpostodomeno %{target}" @@ -305,6 +251,7 @@ io: destroy_ip_block_html: "%{name} efacis regulo por IP %{target}" destroy_status_html: "%{name} efacis posto da %{target}" destroy_unavailable_domain_html: "%{name} durigis sendo a domeno %{target}" + destroy_user_role_html: "%{name} efacis rolo di %{target}" disable_2fa_user_html: "%{name} desaktivigis 2-faktorbezono por uzanto %{target}" disable_custom_emoji_html: "%{name} desaktivigis emocimajo %{target}" disable_sign_in_token_auth_user_html: "%{name} desaktivigis retpostofichyurizo por %{target}" @@ -331,8 +278,9 @@ io: update_announcement_html: "%{name} novigis anunco %{target}" update_custom_emoji_html: "%{name} novigis emocimajo %{target}" update_domain_block_html: "%{name} novigis domenobstrukto por %{target}" + update_ip_block_html: "%{name} kreis regulo por IP %{target}" update_status_html: "%{name} novigis posto da %{target}" - deleted_status: "(efacita posto)" + update_user_role_html: "%{name} chanjis rolo di %{target}" empty: Nula logi. filter_by_action: Filtrez segun ago filter_by_user: Filtrez segun uzanto @@ -376,6 +324,7 @@ io: listed: Listita new: title: Insertez nova kustumizita emocimajo + no_emoji_selected: Nula emocimaji chanjesis pro ke nulo selektesis not_permitted: Vu ne permisesis agar co overwrite: Remplasez shortcode: Kurtkodexo @@ -428,6 +377,7 @@ io: destroyed_msg: Domenobstrukto desagesis domain: Domeno edit: Modifikez domenobstrukto + existing_domain_block: Vu ja exekutis plu rigoroza limiti a %{name}. existing_domain_block_html: Vu ja povis plu rigoroza limiti a %{name}, vu bezonas deobstruktar unesme. new: create: Kreez obstrukto @@ -648,6 +598,65 @@ io: unresolved: Nerezolvita updated_at: Novigesis view_profile: Videz profilo + roles: + add_new: Insertez rolo + assigned_users: + one: "%{count} uzanto" + other: "%{count} uzanti" + categories: + administration: Administro + invites: Inviti + moderation: Jero + special: Specala + delete: Efacez + description_html: Per uzantoroli, vu povas kustumizar funciono e siti di Mastodon quon vua uzanti povas uzar. + edit: Modifikez rolo di '%{name}' + everyone: Originala permisi + everyone_full_description_html: Co esas bazrolo quo efektigas omna uzanti, mem personi sen rolo. Omna altra roli ganas sama permisi de ol. + permissions_count: + one: "%{count} permiso" + other: "%{count} permisi" + privileges: + administrator: Administrero + administrator_description: Uzanti kun ca permiso ignoros singla permiso + delete_user_data: Efacez uzantinformi + delete_user_data_description: Permisez uzanti efacar informi di altra uzanti sen varto + invite_users: Invitez uzanti + invite_users_description: Permisez uzanti invitar nova personi a la servilo + manage_announcements: Jerez anunci + manage_announcements_description: Permisez uzanti jerar anunci en la servilo + manage_appeals: Jerez apeli + manage_appeals_description: Permisez uzanti kontrolar apeli kontra jero + manage_blocks: Jerez obstrukti + manage_blocks_description: Permisez uzanti obstruktar retpostoservilo e adresi di IP + manage_custom_emojis: Jerez kustumizita emocimaji + manage_custom_emojis_description: Permisez uzanti jerar kustumizita emocimaji en la servilo + manage_federation: Jerez federo + manage_federation_description: Permisez uzanti obstruktar o permisez federo kun altra domeni, e dominacar sendebleso + manage_invites: Jerez inviti + manage_invites_description: Permisez uzanti vidar e desaktivigar invitligili + manage_reports: Jerez raporti + manage_reports_description: Permisez uzanti kontrolar raporti e jerez kontra oli + manage_roles: Jerez roli + manage_roles_description: Permisez uzanti jerar e ajustar plu basa roli di olia + manage_rules: Jerez reguli + manage_rules_description: Permisez uzanti chanjar servilreguli + manage_settings: Jerez opcioni + manage_settings_description: Permisez uzanti chanjar sitopcioni + manage_taxonomies: Jerez nomkategorii + manage_taxonomies_description: Permisez uzanti kontrolar tendencoza kontenajo e novigar hashtagopcioni + manage_user_access: Jerez uzantoeniro + manage_user_access_description: Permisez uzanti desaktivigar 2-faktoryurizeso di altra uzanti, chanjar olia retpostoadreso e richanjar olia pasvorto + manage_users: Jerez uzanti + manage_users_description: Permisez uzanti vidar detali di altra uzanti e jerar kontra oli + manage_webhooks: Jerez interrethoki + manage_webhooks_description: Permisez uzanti igas interrethoki por administrala eventi + view_audit_log: Videz kontrollogo + view_audit_log_description: Permisez uzanti vidar historio di administrala agi en la servilo + view_dashboard: Videz chefpanelo + view_dashboard_description: Permisez uzanti uzar chefpanelo e diversa opcioni + view_devops_description: Permisez uzanti uzar chefpaneli Sidekiq e pgHero + title: Roli rules: add_new: Insertez regulo delete: Efacez @@ -656,94 +665,40 @@ io: empty: Nula servilreguli fixesis til nun. title: Servilreguli settings: - activity_api_enabled: - desc_html: Quanto de lokale publikigita posti, aktiva uzanti e nova registri quale semane faski - title: Publikigez rezumstatistiko pri uzantoaktiveso en API - bootstrap_timeline_accounts: - desc_html: Separez multopla uzantonomi kun komo. Ca konti garantiesos montresar en sequorekomendi - title: Rekomendez ca konti a nova uzanti - contact_information: - email: Enter a public e-mail address - username: Enter a username - custom_css: - desc_html: Modifikez aspekto kun CSS chargasas che singla pagino - title: Kustumizita CSS - default_noindex: - desc_html: Efektigar omna uzanti quo ne chanjis ca opciono per su - title: Despartoprenigez uzanti de trovmotorindexo quale originala stando + about: + manage_rules: Jerez servilreguli + preamble: Donez detaloza informi pri quale la servilo funcionar, jeresar e moyenigesar. + rules_hint: Havas partikulara areo por reguli quo uzanti expektesar sequar. + title: Pri co + appearance: + preamble: Kustumizitez retintervizajo di Mastodon. + title: Aspekto + branding: + preamble: Fabrikmarko di ca servilo diferentigas lu de altra servili en la reto. Ca informi forsan montresas che diversa loki. Do, ca informi debas esar klara. + title: Fabrikmarkeso + content_retention: + preamble: Dominacez quale uzantigita kontenajo retenesar en Mastodon. + title: Kontenajreteneso + discovery: + follow_recommendations: Sequez rekomendaji + preamble: Montrar interesanta kontenajo esas importanta ye voligar nova uzanti quo forsan ne savas irgu. Dominacez quale ca deskovrotraiti funcionar en ca servilo. + profile_directory: Profilcheflisto + public_timelines: Publika tempolinei + title: Deskovro + trends: Tendenci domain_blocks: all: A omnu disabled: A nulu - title: Montrez domenobstrukti users: A enirinta lokala uzanti - domain_blocks_rationale: - title: Montrez motivo - hero: - desc_html: Montresas che chefpagino. Minime 600x100px rekomendesas. Se ne fixesis, ol retrouzas servilimajeto - title: Heroimajo - mascot: - desc_html: Montresas che multa chefpagino. Minime 293x205px rekomendesas. Se ne fixesis, ol retrouzas reprezentanto - title: Reprezenterimajo - peers_api_enabled: - desc_html: Domennomo quon ca servilo renkontris en fediverso - title: Publikigez listo di deskovrita servili en API - preview_sensitive_media: - desc_html: Ligilprevidi che altra retsiti montros imajeto mem se medii markizesas quale sentoza - title: Montrez sentoza medii e OpenGraph previdi - profile_directory: - desc_html: Permisez uzanti deskovresar - title: Aktivigez profilcheflisto registrations: - closed_message: - desc_html: Displayed on frontpage when registrations are closed
      You can use HTML tags - title: Mesajo di klozita registro - deletion: - desc_html: Permisez irgu efacar sua konto - title: Apertez kontoefaco - min_invite_role: - disabled: Nulu - title: Permisez inviti da - require_invite_text: - desc_html: Se registri bezonas manuala aprobo, kauzigar "Por quo vu volas juntar?" textoenpoz divenar obligata - title: Bezonez nova uzanti insertar motivo por juntar + preamble: Dominacez qua povas krear konto en ca servilo. + title: Registragi registrations_mode: modes: approved: Aprobo bezonesas por registro none: Nulu povas registrar open: Irgu povas registrar - title: Registromodo - show_known_fediverse_at_about_page: - desc_html: Se desaktivigesis, co permisas publika tempolineo quo ligesas de atingopagino montrar nur lokala kontenajo - title: Inkluzez federatita kontenajo che neyurizita publika tempolineopagino - show_staff_badge: - desc_html: Montrez laborerinsigno che uzantopagino - title: Montrez laborerinsigno - site_description: - desc_html: Displayed as a paragraph on the frontpage and used as a meta tag.
      You can use HTML tags, in particular <a> and <em>. - title: Site description - site_description_extended: - desc_html: Displayed on extended information page
      You can use HTML tags - title: Extended site description - site_short_description: - desc_html: Montresas en flankobaro e metatagi. Deskriptez Mastodon e por quo ca servilo esas specala per 1 paragrafo. - title: Kurta servildeskripto - site_terms: - desc_html: Vu povas skribar sua privatesguidilo, serveskondicioni e altra legi. Vu povas uzar HTML-tagi - title: Kustumizita serveskondicioni - site_title: Site title - thumbnail: - desc_html: Uzesis por previdi tra OpenGraph e API. 1200x630px rekomendesas - title: Servilimajeto - timeline_preview: - desc_html: Montrez ligilo e publika tempolineo che atingopagino e permisez API acesar publika tempolineo sen yurizo - title: Permisez neyurizita aceso a publika tempolineo - title: Site Settings - trendable_by_default: - desc_html: Efektigas hashtagi quo ante nepermisesis - title: Permisez hashtagi divenies tendencoza sen bezonata kontrolo - trends: - desc_html: Publika montrez antee kontrolita kontenajo quo nun esas tendencoza - title: Tendenci + title: Servilopcioni site_uploads: delete: Efacez adchargita failo destroyed_msg: Sitadchargito sucesoze efacesis! @@ -797,6 +752,9 @@ io: description_html: Co esas ligili quo nun multe partigesas da konti kun posti quon vua servilo vidas. Ol povas helpar vua uzanti lernar quo eventas en mondo. Ligili ne publike montresas til vu aprobar publikiganto. Vu povas anke permisar o refuzar individuala ligili. disallow: Despermisez ligilo disallow_provider: Despermisez publikiganto + no_link_selected: Nula ligili chanjesis pro ke nulo selektesis + publishers: + no_publisher_selected: Nula publikiganti chanjesis pro ke nulo selektesis shared_by_over_week: one: Partigesis da 1 persono de pos antea semano other: Partigesis da %{count} personi de pos antea semano @@ -816,6 +774,7 @@ io: description_html: Co esas posti quon vua servilo savas quale nun partigesas e favorizesas multe nun. Ol povas helpar vua nova e retrovenanta uzanti trovar plu multa personi por sequar. Posti ne publike montresas til vu aprobar la skribanto, e la skribanto permisas sua konto sugestesas a altra personi. Vu povas anke permisar o refuzar individuala posti. disallow: Despermisez posto disallow_account: Despermisez skribanto + no_status_selected: Nula tendencoza posti chanjesis pro ke nulo selektesis not_discoverable: Skribanto ne konsentis pri esar deskovrebla shared_by: one: Partigesis o favorizesis 1 foye @@ -831,6 +790,7 @@ io: tag_uses_measure: uzsumo description_html: Co esas hashtagi quo nun aparas en multa posti quon vua servilo vidas. Ol povas helpar vua uzanti lernar quon personi parolas frequente nun. Hashtagi ne montresas publike til vu aprobar. listable: Povas sugestesar + no_tag_selected: Nula tagi chanjesis pro ke nulo selektesis not_listable: Ne sugestesar not_trendable: Ne aparas che tendenci not_usable: Ne povas uzesar @@ -851,6 +811,26 @@ io: edit_preset: Modifikez avertfixito empty: Vu ne fixis irga avertfixito til nun. title: Jerez avertfixiti + webhooks: + add_new: Insertez finpunto + delete: Efacez + description_html: "Rethoko povigas Mastodon sendar samtempoavizi pri selektita eventi a vua sua apliko, por ke vua apliko povas automate kauzigar reakti." + disable: Desaktivigez + disabled: Desaktivigita + edit: Modifikez finpunto + empty: Vu ne havas irga ajustita finpunti ankore. + enable: Aktivigez + enabled: Aktiva + enabled_events: + one: 1 aktivigita evento + other: "%{count} aktivigita eventi" + events: Eventi + new: Nova rethoko + rotate_secret: Rotacigez sekreto + secret: Signosekreto + status: Stando + title: Rethoki + webhook: Rethok admin_mailer: new_appeal: actions: @@ -874,12 +854,8 @@ io: new_trends: body: 'Ca kozi bezonas kontrol ante ol povas montresar publike:' new_trending_links: - no_approved_links: Nun no existas aprobita tendencoza ligili. - requirements: 'Irga ca probanti povas ecesar la #%{rank} aprobita tendencoligilo, quale nun esas %{lowest_link_title} kun punto %{lowest_link_score}.' title: Tendencoza ligili new_trending_statuses: - no_approved_statuses: Nun ne existas aprobita tendencoza posti. - requirements: 'Irga ca probanti povas ecesar la #%{rank} aprobita tendencoligilo, quale nun esas %{lowest_status_url} kun punto %{lowest_status_score}.' title: Tendencoza posti new_trending_tags: no_approved_tags: Nun ne existas aprobita tendencoza hashtagi. @@ -915,16 +891,13 @@ io: applications: created: Apliko sucesoze kreesas destroyed: Apliko sucesoze efacesas - invalid_url: La URL donita ne esas valida regenerate_token: Rifacez acesficho token_regenerated: Acesficho sucesoze riganesas warning: Sorgemez per ca informi. Ne partigez kun irgu! your_token: Vua acesficho auth: - apply_for_account: Demandez invito + apply_for_account: Esez sur vartlisto change_password: Pasvorto - checkbox_agreement_html: Se konsentas servilreguli e serveskondiconi - checkbox_agreement_without_rules_html: Me konsentar serveskondicioni delete_account: Efacez konto delete_account_html: Se vu volas efacar vua konto, vu povas irar hike. Vu demandesos konfirmar. description: @@ -943,6 +916,7 @@ io: migrate_account: Transferez a diferanta konto migrate_account_html: Se vu volas ridirektar ca konto a diferanto, vu povas ajustar hike. or_log_in_with: O eniras per + privacy_policy_agreement_html: Me lektis e konsentis privatesguidilo providers: cas: CAS saml: SAML @@ -950,12 +924,18 @@ io: registration_closed: "%{instance} ne aceptas nova membri" resend_confirmation: Risendar la instrucioni por konfirmar reset_password: Chanjar la pasvorto + rules: + preamble: Co igesas e exekutesas da jereri di %{domain}. + title: Kelka bazala reguli. security: Chanjar pasvorto set_new_password: Selektar nova pasvorto setup: email_below_hint_html: Se suba retpostoadreso esas nekorekta, vu povas chanjar hike e ganar nova konfirmretposto. email_settings_hint_html: Konfirmretposto sendesis a %{email}. Se ta retpostoadreso ne esas korekta, vu povas chanjar en kontoopcioni. title: Komencoprocedo + sign_up: + preamble: Per konto en ca servilo di Mastodon, on povas sequar irga persono en ca reto, ne ye ube ona konto hostagisas. + title: Ni komencigez vu en %{domain}. status: account_status: Kontostando confirming: Vartas retpostokonfirmo finar. @@ -964,7 +944,6 @@ io: redirecting_to: Vua konto esas neaktiva pro ke ol nun ridirektesos a %{acct}. view_strikes: Videz antea streki kontre vua konto too_fast: Formulario sendesis tro rapide, probez itere. - trouble_logging_in: Ka ne povas enirar? use_security_key: Uzes sekuresklefo authorize_follow: already_following: Vu ja sequis ca konto @@ -1022,10 +1001,6 @@ io: more_details_html: Por plu multa detali, videz privatesguidilo. username_available: Vua uzantonomo divenos disponebla itere username_unavailable: Vua uzantonomo restos nedisponebla - directories: - directory: Profilcheflisto - explanation: Deskovrez uzanti segun olia intereso - explore_mastodon: Explorez %{title} disputes: strikes: action_taken: Agesis @@ -1104,29 +1079,60 @@ io: public: Publika tempolinei thread: Konversi edit: + add_keyword: Insertez klefvorto + keywords: Klefvorti + statuses: Individuala posti + statuses_hint_html: Ca filtrilo aplikesas a selektita posti ne segun kad oli parigesas kun basa klefvorti. Kontrolez o efacez posti de la filtrilo. title: Modifikez filtrilo errors: + deprecated_api_multiple_keywords: Ca parametri ne povas chanjesar per ca softwaro pro quo oli efektigas plu kam 1 filtrilklefvorto. Uzez plu recenta softwaro o interretintervizajo. invalid_context: Nula o nevalida kuntexto donesis - invalid_irreversible: Neinversigebla filtro nur funcionas kun hemo- e aviz- kuntexto index: + contexts: Filtrili kun %{contexts} delete: Efacez empty: Vu ne havas filtrili. + expires_in: Expiras ye %{distance} + expires_on: Expiras ye %{date} + keywords: + one: "%{count} klefvorto" + other: "%{count} klefvorti" + statuses: + one: "%{count} posto" + other: "%{count} posti" + statuses_long: + one: "%{count} posto celesas" + other: "%{count} posti celesas" title: Filtrili new: + save: Salvez nova filtrilo title: Insertez nova filtrilo + statuses: + back_to_filter: Retrovenez a filtrilo + batch: + remove: Efacez de filtrilo + index: + hint: Ca filtrilo aplikesas a selektita posti ne segun altra kriterio. Vu povas pozar plu multa posti a ca filtrilo de retintervizajo. + title: Filtrita posti footer: - developers: Developeri - more: Pluse… - resources: Moyeni trending_now: Nuna tendenco generic: all: Omna + all_items_on_page_selected_html: + one: "%{count} kozo sur ca sito selektesas." + other: Omna %{count} kozi sur ca sito selektesas. + all_matching_items_selected_html: + one: "%{count} kozo quo parigesas kun vua trovato selektesas." + other: Omna %{count} kozi quo parigesas kun vua trovato selektesas. changes_saved_msg: Chanji senprobleme konservita! copy: Kopiez delete: Efacez + deselect: Deselektez omno none: Nulo order_by: Asortez quale save_changes: Konservar la chanji + select_all_matching_items: + one: Selektez %{count} kozo quo parigesas kun vua trovato. + other: Selektez omna %{count} kozi quo parigesas kun vua trovato. today: hodie validation_errors: one: Ulo ne eventis senprobleme! Voluntez konsultar la suba eror-raporto @@ -1150,7 +1156,6 @@ io: following: Listo de sequati muting: Silenciglisto upload: Kargar - in_memoriam_html: Memorialo. invites: delete: Deaktivigez expired: Expiris @@ -1231,19 +1236,10 @@ io: copy_account_note_text: 'Ca uzanti transferesis de %{acct}, co esas vua antea noti pri ol:' notification_mailer: admin: + report: + subject: "%{name} sendis raporto" sign_up: subject: "%{name} registris" - digest: - action: Videz omna avizi - body: Yen mikra rezumo di to, depos ke tu laste vizitis en %{since} - mention: "%{name} mencionis tu en:" - new_followers_summary: - one: Tu obtenis nova sequanto! Yey! - other: Tu obtenis %{count} nova sequanti! Astonive! - subject: - one: "1 nova avizo de pos vua antea vizito 🐘" - other: "%{count} nova avizi de pos vua antea vizito 🐘" - title: Dum vua neprezenteso... favourite: body: "%{name} favoris tua mesajo:" subject: "%{name} favoris tua mesajo" @@ -1315,6 +1311,8 @@ io: other: Altra posting_defaults: Originala postoopcioni public_timelines: Publika tempolinei + privacy_policy: + title: Privatesguidilo reactions: errors: limit_reached: Limito di diferanta reakto atingesis @@ -1337,22 +1335,7 @@ io: remove_selected_follows: Desequez selektita uzanti status: Kontostando remote_follow: - acct: Enpozez tua uzernomo@instaluro de ube tu volas sequar ta uzero missing_resource: La URL di plussendado ne povis esar trovita - no_account_html: Ka vu ne havas konto? Vu povas registrar hike - proceed: Durar por plussendar - prompt: 'Tu sequeskos:' - reason_html: "Por quo ca demarsho bezonesas? %{instance} forsan ne esas servilo ube vu registris, do ni bezonas ridirektar vu a vua hemservilo unesme." - remote_interaction: - favourite: - proceed: Durez favorizar - prompt: 'Vu povas favorizar ca posto:' - reblog: - proceed: Durez bustar - prompt: 'Vu volas bustar ca posto:' - reply: - proceed: Durez respondar - prompt: 'Vu volas respondar ca posto:' reports: errors: invalid_rules: ne refera valida reguli @@ -1370,7 +1353,6 @@ io: browser: Vidilo browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1384,7 +1366,6 @@ io: phantom_js: PhantomJS qq: Vidilo QQ safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Nuna sesiono description: "%{browser} che %{platform}" @@ -1393,8 +1374,6 @@ io: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1524,90 +1503,6 @@ io: too_late: Ol esas tro tarda ye apelar ca strekizo tags: does_not_match_previous_name: ne parigesas a antea nomo - terms: - body_html: | -

      Privatesguidilo

      -

      Quo informi kolektesas da ni?

      - -
        -
      • Bazala kontoinformo
      • -
      • Posti, sequo e altra publika informo
      • -
      • Direta e sequantinura posti: Noto, operacero di servilo e gananta servilo povas vidar tala mesaji. Ne partigez irga privata informi che Mastodon.
      • -
      • IP e altra metainformi
      • -
      - -
      - -

      Por quo ni uzas vua informi?

      - -

      - Irga informi quon ni kolektas de vu forsan uzesas per ca metodi:

      - -
        -
      • Por donar precipua funciono di Mastodon.
      • -
      • Por helpar jero di komunitato.
      • -
      • Retpostoadreso quon vu donas forsan uzesas por sendar informi a vu.
      • -
      - -
      - -

      Quale ni protektas vua informi?

      - -

      Ni facar diversa sekuresdemarsh por mmantenar sekureso di vua personala informi kande vu enirar, sendar o acesar vua personala informi.

      - -
      - -

      Quo esas nia informiretenguidilo?

      - -

      Ni esforcive proba:

      - -
        -
      • Retenar servillogi quo kontenar IP-adreso di omna demandi a ca servilo.
      • -
      • Retenar IP-adresi quo relatata kun registrinta uzanti til 12 monati.
      • -
      - -

      Vu povas demandar e deschargar arkivo di vua kontenajo.

      - -

      Vu povas inversigebla efacar vua konto irgatempe.

      - -
      - -

      Ka ni uzas kukii?

      - -

      Yes. (Se vu permisas)

      - -

      Ni uzas kukii por komprenar e sparar vua preferaji por viziti en futuro.

      - -
      - -

      Ka ni revelas irga informi a externe grupi?

      - -

      Ni ne vendas, komercar e transferar a externe grupi vua personala identigebla informi.

      - -

      Vua publika kontenajo forsan deschargesas da altra servili en reto.

      - -

      Kande vu yurizas softwaro uzar vua konto, ol forsan ganar vua publika profilinformi.

      - -
      - -

      Situzo da pueri

      - -

      Se ca servilo esas en EU o EEA: Minimo esas 16 yari. (General Data Protection Regulation)

      - -

      Se ca servilo esas en USA: Minimo esas 13 yari. (Children's Online Privacy Protection Act)

      - -

      Legalbezonaji forsan esas diferanta se ca servilo esas en altra regiono.

      - -
      - -

      Chanji di privatesguidilo

      - -

      Se ni decidas chanjar nia privatesguidilo, ni postigos ta chanji a ca pagino.

      - -

      Ca dokumento esas CC-BY-SA.

      - -

      Tradukesis e modifikesis de Angla de Discourse privacy policy.

      - title: Serveskondiconi e Privatesguidilo di %{instance} themes: contrast: Mastodon (Alta kontrasteso) default: Mastodon (Obskura) @@ -1686,20 +1581,13 @@ io: suspend: Konto restriktigesis welcome: edit_profile_action: Facez profilo - edit_profile_step: Vu povas kustumizar vua profilo per adchargar profilimajo, kapimajo, chanjar vua montronomo e pluse. Se vu volas kontrolar nova sequanti ante oli permisesar sequantar vu, vu povas klefklozar vua konto. + edit_profile_step: Vu povas kustumizar vua profilo per adchargar profilimajo, chanjesar vua montronomo e plue. Vu povas selektas kontrolar nova sequanti ante oli permisesas sequar vu. explanation: Subo esas guidilo por helpar vu komencar final_action: Komencez postigar final_step: 'Jus postigez! Mem sen sequanti, vua publika posti povas videsar da altra personi, exemplo es en lokala tempolineo e en hashtagi. Vu povas anke introduktar su en #introductions hashtagi.' full_handle: Vua kompleta profilnomo full_handle_hint: Co esas quon vu dicos a amiki por ke oli povas mesajigar o sequar vu de altra servilo. - review_preferences_action: Chanjez preferaji - review_preferences_step: Certigez ke vu fixas vua preferaji, tale quala retposto quon vu volas ganar, o privatesnivelo quo vu volas vua posti normale uzar. Se vu ne havas movmalado, vu povas selektar aktivigar GIF-autopleo. subject: Bonveno a Mastodon - tip_federated_timeline: Federatata tempolineo esas generala vido di reto di Mastodon. Ma, ol nur inkluzas personi quon vua vicini abonis, do ol ne esas kompleta. - tip_following: Vu sequas vua administrer(o) di servilo quale originala stando. Por sequar plu multa interesanta personi, videz lokala e federatata tempolinei. - tip_local_timeline: Lokala tempolineo esas generala vido di personi che %{instance}. Co esas vua apuda vicini! - tip_mobile_webapp: Se vua smartfonvidilo povigas vu pozar Mastodon a vua hemskreno, vu povas ganar pulsavizi. Ol funcionas tale traiti di smartfonsoftwaro! - tips: Guidili title: Bonveno, %{name}! users: follow_limit_reached: Vu ne povas sequar plu kam %{limit} personi diff --git a/config/locales/is.yml b/config/locales/is.yml index 63d3809a3bfe21..3aa43ac228e314 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1,94 +1,27 @@ --- is: about: - about_hashtag_html: Þetta eru opinberar færslur sem merkt eru með #%{hashtag}. Þú getur unnið með þau ef þú ert með skráðan aðgang einhversstaðar í skýjasambandinu. about_mastodon_html: 'Samfélagsnet framtíðarinnar: Engar auglýsingar, ekkert eftirlit stórfyrirtækja, siðleg hönnun og engin miðstýring! Þú átt þín eigin gögn í Mastodon!' - about_this: Um hugbúnaðinn - active_count_after: virkt - active_footnote: Mánaðarlega virkir notendur (MAU) - administered_by: 'Stýrt af:' - api: API-kerfisviðmót - apps: Farsímaforrit - apps_platforms: Notaðu Mastodon frá iOS, Android og öðrum stýrikerfum - browse_directory: Skoða notendur og sía eftir áhugamálum - browse_local_posts: Skoðaðu kvikt streymi af opinberum færslum á þessum vefþjóni - browse_public_posts: Skoðaðu kvikt streymi af opinberum færslum á Mastodon - contact: Hafa samband contact_missing: Ekki skilgreint contact_unavailable: Ekki til staðar - continue_to_web: Halda áfram í vefforritið - discover_users: Uppgötva notendur - documentation: Hjálparskjöl - federation_hint_html: Með notandaaðgangi á %{instance} geturðu fylgst með fólki á hvaða Mastodon-þjóni sem er og reyndar víðar. - get_apps: Prófaðu farsímaforrit hosted_on: Mastodon hýst á %{domain} - instance_actor_flash: | - Þessi aðgangur er sýndarnotandi sem er notaður til að tákna sjálfan vefþjóninn en ekki neinn einstakan notanda. - Tilgangur hans tengist virkni vefþjónasambandsins og ætti alls ekki að loka á hann nema að þú viljir útiloka allan viðkomandi vefþjón, en þá ætti frekar að útiloka sjálft lénið. - learn_more: Kanna nánar - logged_in_as_html: Þú ert núna skráð/ur inn sem %{username}. - logout_before_registering: Þú ert þegar skráð/ur inn. - privacy_policy: Persónuverndarstefna - rules: Reglur netþjónsins - rules_html: 'Hér fyrir neðan er yfirlit yfir þær reglur sem þú þarft að fara eftir ef þú ætlar að vera með notandaaðgang á þessum Mastodon-netþjóni:' - see_whats_happening: Sjáðu hvað er í gangi - server_stats: 'Tölfræði þjóns:' - source_code: Grunnkóði - status_count_after: - one: færsla - other: færslur - status_count_before: Sem stóðu fyrir - tagline: Fylgstu með vinum og uppgötvaðu nýja - terms: Þjónustuskilmálar - unavailable_content: Ekki tiltækt efni - unavailable_content_description: - domain: Vefþjónn - reason: Ástæða - rejecting_media: 'Myndefnisskrár frá þessum vefþjónum verða hvorki birtar né geymdar og engar smámyndir frá þeim birtar, sem krefst þess að smellt sé handvirkt til að nálgast upprunalegu skrárnar:' - rejecting_media_title: Síuð gögn - silenced: 'Færslur frá þessum vefþjónum verða faldar í opinberum tímalínum og samtölum, auk þess sem engar tilkynningar verða til þvið aðgerðir notendanna, nema ef þú fylgist með þeim:' - silenced_title: Þaggaðir netþjónar - suspended: 'Engin gögn frá þessum vefþjónum verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjónum ómöguleg:' - suspended_title: Netþjónar í frysti - unavailable_content_html: Mastodon leyfir þér almennt að skoða og eiga við efni frá notendum frá hvaða vefþjóni sem er í vefþjónasambandinu. Þetta eru þær undantekningar sem hafa verið gerðar á þessum tiltekna vefþjóni. - user_count_after: - one: notanda - other: notendur - user_count_before: Hýsir - what_is_mastodon: Hvað er Mastodon? + title: Um hugbúnaðinn accounts: - choices_html: "%{name} hefur valið:" - endorsements_hint: Þú getur auglýst efni frá fólki sem þú fylgir í vefviðmótinu og mun það birtast hér. - featured_tags_hint: Þú getur gefið sérstökum myllumerkjum aukið vægi og birtast þau þá hér. follow: Fylgjast með followers: one: fylgjandi other: fylgjendur following: Fylgist með instance_actor_flash: Þessi notandaaðgangur er sýndarnotandi sem stendur fyrir sjálfan netþjóninn en ekki neinn einstakling. Hann er notaður við skýjasambandsmiðlun og ætti ekki að setja hann í bið eða banna. - joined: Gerðist þátttakandi %{date} last_active: síðasta virkni link_verified_on: Eignarhald á þessum tengli var athugað þann %{date} - media: Myndefni - moved_html: "%{name} hefur verið færður í %{new_profile_link}:" - network_hidden: Þessar upplýsingar ekki tiltækar nothing_here: Það er ekkert hér! - people_followed_by: Fólk sem %{name} fylgist með - people_who_follow: Fólk sem fylgist með %{name} pin_errors: following: Þú þarft að vera þegar að fylgjast með þeim sem þú ætlar að mæla með posts: one: Færsla other: Færslur posts_tab_heading: Færslur - posts_with_replies: Færslur og svör - roles: - admin: Stjóri - bot: Róbót - group: Hópur - moderator: Umsjón - unavailable: Notandasnið ekki tiltækt - unfollow: Hætta að fylgja admin: account_actions: action: Framkvæma aðgerð @@ -105,12 +38,17 @@ is: avatar: Auðkennismynd by_domain: Lén change_email: - changed_msg: Tölvupóstfangi notandaaðgangsins hefur verið breytt! + changed_msg: Tókst að breyta tölvupóstfangi! current_email: Núverandi tölvupóstfang label: Breyta tölvupóstfangi new_email: Nýr tölvupóstur submit: Breyta tölvupóstfangi title: Breyta tölvupóstfangi fyrir %{username} + change_role: + changed_msg: Tókst að breyta hlutverki! + label: Breyta hlutverki + no_role: Ekkert hlutverk + title: Breyta hlutverki fyrir %{username} confirm: Staðfesta confirmed: Staðfest confirming: Staðfesti @@ -154,6 +92,7 @@ is: active: Virkur all: Allt pending: Í bið + silenced: Takmarkað suspended: Í bið title: Umsjón moderation_notes: Minnispunktar umsjónarmanna @@ -161,6 +100,7 @@ is: most_recent_ip: Nýjasta IP-vistfang no_account_selected: Engum aðgöngum var breytt þar sem engir voru valdir no_limits_imposed: Engra takmarka krafist + no_role_assigned: Engu hlutverki úthlutað not_subscribed: Ekki í áskrift pending: Bíður eftir yfirlestri perform_full_suspension: Setja í bið @@ -187,12 +127,7 @@ is: reset: Endurstilla reset_password: Endurstilla lykilorð resubscribe: Gerast áskrifandi aftur - role: Heimildir - roles: - admin: Stjórnandi - moderator: Umsjónarmaður - staff: Starfsmaður - user: Notandi + role: Hlutverk search: Leita search_same_email_domain: Aðra notendur með sama tölvupóstlén search_same_ip: Aðrir notendur með sama IP-vistfang @@ -235,17 +170,21 @@ is: approve_user: Samþykkja notanda assigned_to_self_report: Úthluta kæru change_email_user: Skipta um tölvupóstfang notanda + change_role_user: Breyta hlutverki notanda confirm_user: Staðfesta notanda create_account_warning: Útbúa aðvörun create_announcement: Búa til tilkynningu + create_canonical_email_block: Búa til útilokunarblokk tölvupósts create_custom_emoji: Búa til sérsniðið tjáningartákn create_domain_allow: Búa til lén leyft create_domain_block: Búa til útilokun léns create_email_domain_block: Búa til útilokun tölvupóstléns create_ip_block: Búa til IP-reglu create_unavailable_domain: Útbúa lén sem ekki er tiltækt + create_user_role: Útbúa hlutverk demote_user: Lækka notanda í tign destroy_announcement: Eyða tilkynningu + destroy_canonical_email_block: Eyða útilokunarblokk tölvupósts destroy_custom_emoji: Eyða sérsniðnu tjáningartákni destroy_domain_allow: Eyða léni leyft destroy_domain_block: Eyða útilokun léns @@ -254,6 +193,7 @@ is: destroy_ip_block: Eyða IP-reglu destroy_status: Eyða færslu destroy_unavailable_domain: Eyða léni sem ekki er tiltækt + destroy_user_role: Eyða hlutverki disable_2fa_user: Gera tveggja-þátta auðkenningu óvirka disable_custom_emoji: Gera sérsniðið tjáningartákn óvirkt disable_sign_in_token_auth_user: Gera óvirka auðkenningu með teikni í tölvupósti fyrir notandann @@ -267,6 +207,7 @@ is: reject_user: Hafna notanda remove_avatar_user: Fjarlægja auðkennismynd reopen_report: Enduropna kæru + resend_user: Endursenda staðfestingarpóst reset_password_user: Endurstilla lykilorð resolve_report: Leysa kæru sensitive_account: Merkja myndefni á aðgangnum þínum sem viðkvæmt @@ -280,24 +221,30 @@ is: update_announcement: Uppfæra tilkynningu update_custom_emoji: Uppfæra sérsniðið tjáningartákn update_domain_block: Uppfæra útilokun léns + update_ip_block: Uppfæra reglu IP-vistfangs update_status: Uppfæra færslu + update_user_role: Uppfæra hlutverk actions: approve_appeal_html: "%{name} samþykkti áfrýjun á ákvörðun umsjónarmanns frá %{target}" approve_user_html: "%{name} samþykkti nýskráningu frá %{target}" assigned_to_self_report_html: "%{name} úthlutaði kæru %{target} til sín" change_email_user_html: "%{name} breytti tölvupóstfangi fyrir notandann %{target}" + change_role_user_html: "%{name} breytti hlutverki %{target}" confirm_user_html: "%{name} staðfesti tölvupóstfang fyrir notandann %{target}" create_account_warning_html: "%{name} sendi aðvörun til %{target}" create_announcement_html: "%{name} útbjó nýja tilkynningu %{target}" + create_canonical_email_block_html: "%{name} útilokaði tölvupóst með tætigildið %{target}" create_custom_emoji_html: "%{name} sendi inn nýtt tjáningartákn %{target}" create_domain_allow_html: "%{name} leyfði skýjasamband með léninu %{target}" create_domain_block_html: "%{name} útilokaði lénið %{target}" create_email_domain_block_html: "%{name} útilokaði póstlénið %{target}" create_ip_block_html: "%{name} útbjó reglu fyrir IP-vistfangið %{target}" create_unavailable_domain_html: "%{name} stöðvaði afhendingu til lénsins %{target}" + create_user_role_html: "%{name} útbjó %{target} hlutverk" demote_user_html: "%{name} lækkaði notandann %{target} í tign" destroy_announcement_html: "%{name} eyddi tilkynninguni %{target}" - destroy_custom_emoji_html: "%{name} henti út tjáningartákninu %{target}" + destroy_canonical_email_block_html: "%{name} tók af útilokun á tölvupósti með tætigildið %{target}" + destroy_custom_emoji_html: "%{name} eyddi emoji-tákni %{target}" destroy_domain_allow_html: "%{name} bannaði skýjasamband með léninu %{target}" destroy_domain_block_html: "%{name} aflétti útilokun af léninu %{target}" destroy_email_domain_block_html: "%{name} aflétti útilokun af póstléninu %{target}" @@ -305,6 +252,7 @@ is: destroy_ip_block_html: "%{name} eyddi reglu fyrir IP-vistfangið %{target}" destroy_status_html: "%{name} fjarlægði færslu frá %{target}" destroy_unavailable_domain_html: "%{name} hóf aftur afhendingu til lénsins %{target}" + destroy_user_role_html: "%{name} eyddi hlutverki %{target}" disable_2fa_user_html: "%{name} gerði kröfu um tveggja-þátta innskráningu óvirka fyrir notandann %{target}" disable_custom_emoji_html: "%{name} gerði tjáningartáknið %{target} óvirkt" disable_sign_in_token_auth_user_html: "%{name} gerði óvirka auðkenningu með teikni í tölvupósti fyrir %{target}" @@ -318,6 +266,7 @@ is: reject_user_html: "%{name} hafnaði nýskráningu frá %{target}" remove_avatar_user_html: "%{name} fjarlægði auðkennismynd af %{target}" reopen_report_html: "%{name} enduropnaði kæru %{target}" + resend_user_html: "%{name} endursendi staðfestingarpóst vegna %{target}" reset_password_user_html: "%{name} endurstillti lykilorð fyrir notandann %{target}" resolve_report_html: "%{name} leysti kæru %{target}" sensitive_account_html: "%{name} merkti myndefni frá %{target} sem viðkvæmt" @@ -331,8 +280,10 @@ is: update_announcement_html: "%{name} uppfærði tilkynningu %{target}" update_custom_emoji_html: "%{name} uppfærði tjáningartáknið %{target}" update_domain_block_html: "%{name} uppfærði útilokun lénsins %{target}" + update_ip_block_html: "%{name} breytti reglu fyrir IP-vistfangið %{target}" update_status_html: "%{name} uppfærði færslu frá %{target}" - deleted_status: "(eydd færsla)" + update_user_role_html: "%{name} breytti hlutverki %{target}" + deleted_account: eyddur notandaaðgangur empty: Engar atvikaskrár fundust. filter_by_action: Sía eftir aðgerð filter_by_user: Sía eftir notanda @@ -376,6 +327,7 @@ is: listed: Skráð new: title: Bæta við nýju sérsniðnu tjáningartákni + no_emoji_selected: Engum táknum var breytt þar sem engin voru valin not_permitted: Þú hefur ekki réttindi til að framkvæma þessa aðgerð overwrite: Skrifa yfir shortcode: Stuttkóði @@ -428,6 +380,7 @@ is: destroyed_msg: Útilokun léns hefur verið aflétt domain: Lén edit: Breyta útilokun léns + existing_domain_block: Þú hefur þegar gert kröfu um strangari takmörk fyrir %{name}. existing_domain_block_html: Þú ert þegar búin/n að setja strangari takmörk á %{name}, þú þarft fyrst að aflétta útilokun á því. new: create: Búa til útilokun @@ -537,7 +490,7 @@ is: public_comment: Opinber athugasemd purge: Henda purge_description_html: Ef þú heldur að þetta lén sé farið endanlega af netinu, geturðu eytt öllum færslum aðganga og tengdum gögnum frá þessu léni úr gagnageymslum þínum. Þetta gæti tekið þó nokkra stund. - title: Samband + title: Netþjónasambönd total_blocked_by_us: Útilokað af okkur total_followed_by_them: Fylgt af þeim total_followed_by_us: Fylgt af okkur @@ -648,6 +601,67 @@ is: unresolved: Óleyst updated_at: Uppfært view_profile: Skoða notandasnið + roles: + add_new: Bæta við hlutverki + assigned_users: + one: "%{count} notandi" + other: "%{count} notendur" + categories: + administration: Stjórnun + devops: DevOps + invites: Boðsgestir + moderation: Umsjón + special: Sérstakt + delete: Eyða + description_html: Með hlutverkum notenda geturðu sérsniðið að hvaða aðgerðum og hvaða svæðum í Mastodon notendurnir þínir hafa aðgang. + edit: Breyta hlutverki fyrir '%{name}' + everyone: Sjálfgefnar heimildir + everyone_full_description_html: Þetta er grunnhlutverk sem allir notendur fá, líka þeir sem ekki hafa fengið neitt sérstakt hlutverk. Öll önnur hlutverk erfa heimildir frá þessu. + permissions_count: + one: "%{count} heimild" + other: "%{count} heimildir" + privileges: + administrator: Stjórnandi + administrator_description: Notendur með þessa heimild fara framhjá öllum öðrum heimildum + delete_user_data: Eyða gögnum notanda + delete_user_data_description: Leyfir notendum að eyða gögnum annarra notenda án tafar + invite_users: Bjóða notendum + invite_users_description: Leyfir notendum að bjóða nýju fólki inn á netþjóninn + manage_announcements: Sýsla með tilkynningar + manage_announcements_description: Leyfir notendum að sýsla með tilkynningar á netþjóninum + manage_appeals: Sýsla með áfrýanir + manage_appeals_description: Leyfir notendum að yfirfara áfrýjanir vegna aðgerða umsjónarfólks + manage_blocks: Sýsla með útilokanir + manage_blocks_description: Leyfir notendum að loka á tölvupóstþjónustur og IP-vistföng + manage_custom_emojis: Sýsla með sérsniðin tjáningartákn + manage_custom_emojis_description: Leyfir notendum að sýsla með sérsniðin tjáningartákn á netþjóninum + manage_federation: Sýsla með netþjónasambönd + manage_federation_description: Leyfir notendum að loka á eða leyfa samþættingu við önnur lén (federation) og stýra afhendingu skilaboða + manage_invites: Sýsla með boðsgesti + manage_invites_description: Leyfir notendum að vafra um og gera boðstengla óvirka + manage_reports: Sýsla með kærur + manage_reports_description: Leyfir notendum að yfirfara kærur og framkvæma umsýsluaðgerðir sem byggjast á þeim + manage_roles: Sýsla með hlutverk + manage_roles_description: Leyfir notendum að sýsla með hlutverk og úthluta hlutverkum sem eru réttminni en þeirra eigið + manage_rules: Sýsla með reglur + manage_rules_description: Leyfir notendum að breyta reglum á netþjóninum + manage_settings: Sýsla með stillingar + manage_settings_description: Leyfir notendum að breyta stillingum vefsvæðisins + manage_taxonomies: Sýsla með vægi efnis + manage_taxonomies_description: Leyfir notendum að yfirfara vinsælt efni og uppfæra stillingar myllumerkja + manage_user_access: Sýsla með notendaaðgang + manage_user_access_description: Leyfir notendum að gera tveggja-þátta auðkenningu annarra notenda óvirka, breyta tölvupóstfangi þeirra og endurstilla lykilorð + manage_users: Sýsla með notendur + manage_users_description: Leyfir notendum að sýsla með nánari upplýsingar um aðra notendur og framkvæma umsýsluaðgerðir gagnvart þeim + manage_webhooks: Sýsla með Webhook-vefkrækjur + manage_webhooks_description: Leyfir notendum að setja upp webhook-vefkrækjur vagna stjórnunartengdra atburða + view_audit_log: Skoða atvikaskráningu + view_audit_log_description: Leyfir notendum að skoða feril stjórnunaraðgerða á netþjóninum + view_dashboard: Skoða stjórnborð + view_dashboard_description: Leyfir notendum að skoða stjórnborðið og sjá ýmsar mælingar + view_devops: DevOps + view_devops_description: Leyfir notendum að skoða Sidekiq og pgHero stjórnborð + title: Hlutverk rules: add_new: Skrá reglu delete: Eyða @@ -656,108 +670,67 @@ is: empty: Engar reglur fyrir netþjón hafa ennþá verið skilgreindar. title: Reglur netþjónsins settings: - activity_api_enabled: - desc_html: Fjöldi staðvært birtra færslna, virkra notenda og nýskráninga í vikulegum skömmtum - title: Birta samantektartölfræði um virkni notanda - bootstrap_timeline_accounts: - desc_html: Aðskildu mörg notendanöfn með kommum. Einungis staðværir og ólæstir aðgangar virka. Þegar þetta er autt er sjálgefið miðað við alla staðværa stjórnendur. - title: Sjálfgefnar fylgnistillingar fyrir nýja notendur - contact_information: - email: Fyrirtækistölvupóstur - username: Notandanafn tengiliðar - custom_css: - desc_html: Breyttu útlitinu með CSS-skilgreiningum sem hlaðið er inn á hverri síðu - title: Sérsniðið CSS - default_noindex: - desc_html: Hefur áhrif á alla þá notendur sem ekki hafa breytt þessum stillingum sjálfir - title: Sjálfgefið láta notendur afþakka atriðaskráningu í leitarvélum + about: + manage_rules: Sýsla með reglur netþjónsins + preamble: Gefðu nánari upplýsingar um hvernig þessi netþjónn er rekinn, hvernig umsjón fer fram með efni á honum eða hann fjármagnaður. + rules_hint: Það er sérstakt svæði með þeim reglum sem ætlast er til að notendur þínir fari eftir. + title: Um hugbúnaðinn + appearance: + preamble: Sérsníddu vefviðmót Mastodon. + title: Útlit + branding: + preamble: Útlitsleg einkenni aðgreina netþjóninn þinn frá öðrum netþjónum á netkerfinu. Þessar upplýsingar geta birst á margvíslegum stöðum, eins og til dæmis í vefviðmóti Mastodon, einstökum forritum, í forskoðun tengla á öðrum vefsvæðum og innan samskiptaforrita, svo eitthvað sé talið. Þess vegna er vest að þessar upplýsingar séu skýrar, stuttar og tæmandi. + title: Útlitsleg aðgreining + content_retention: + preamble: Stýrðu hvernig efni frá notendum sé geymt í Mastodon. + title: Geymsla efnis + discovery: + follow_recommendations: Meðmæli um að fylgjast með + preamble: Að láta áhugavert efni koma skýrt fram er sérstaklega mikilvægt til að nálgast nýja notendur sem ekki þekkja neinn sem er á Mastodon. Stýrðu því hvernig hinir ýmsu eiginleikar við uppgötvun efnis virka á netþjóninum þínum. + profile_directory: Notendamappa + public_timelines: Opinberar tímalínur + title: Uppgötvun + trends: Vinsælt domain_blocks: all: Til allra disabled: Til engra - title: Birta útilokanir á lénum users: Til innskráðra staðværra notenda - domain_blocks_rationale: - title: Birta röksemdafærslu - hero: - desc_html: Birt á forsíðunni. Mælt með að hún sé a.m.k. 600×100 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins - title: Aðalmynd - mascot: - desc_html: Birt á ýmsum síðum. Mælt með að hún sé a.m.k. 293×205 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins - title: Mynd af lukkudýri - peers_api_enabled: - desc_html: Lénaheiti sem þessi netþjónn hefur rekist á í skýjasambandinu (samtengdum vefþjónum - fediverse) - title: Birta lista yfir uppgötvaða netþjóna - preview_sensitive_media: - desc_html: Forskoðun tengla á önnur vefsvæði mun birta smámynd jafnvel þótt myndefnið sé merkt sem viðkvæmt - title: Birta viðkvæmt myndefni í OpenGraph-forskoðun - profile_directory: - desc_html: Leyfa að hægt sé að finna notendur - title: Virkja notandasniðamöppu registrations: - closed_message: - desc_html: Birt á forsíðu þegar lokað er fyrir nýskráningar. Þú getur notað HTML-einindi - title: Skilaboð vegna lokunar á nýskráningu - deletion: - desc_html: Leyfa öllum að eyða aðgangnum sínum - title: Opna eyðingu á notandaaðgangi - min_invite_role: - disabled: Enginn - title: Leyfa boð frá - require_invite_text: - desc_html: Þegar nýskráningar krefjast handvirks samþykkis, skal gera "Hvers vegna viltu taka þátt?" boðstexta að skyldu fremur en valkvæðan - title: Krefja nýja notendur um að fylla út boðstexta + preamble: Stýrðu því hverjir geta útbúið notandaaðgang á netþjóninum þínum. + title: Nýskráningar registrations_mode: modes: approved: Krafist er samþykkt nýskráningar none: Enginn getur nýskráð sig open: Allir geta nýskráð sig - title: Nýskráningarhamur - show_known_fediverse_at_about_page: - desc_html: Þegar þetta er óvirkt, takmarkast opinbera tímalínan sem tengt er í af upphafssíðunni við að birta einungis staðvært efni (af sama vefþjóni) - title: Hafa með efni úr skýjasambandi á síðu fyrir óauðkennda opinbera tímalínu - show_staff_badge: - desc_html: Sýna starfsmannamerki á síðu notandans - title: Sýna starfsmannamerki - site_description: - desc_html: Kynningarmálsgrein í API. Lýstu því hvað það er sem geri þennan Mastodon-þjón sérstakan, auk annarra mikilvægra upplýsinga. Þú getur notað HTML-einindi, sér í lagi <a> og <em>. - title: Lýsing á vefþjóni - site_description_extended: - desc_html: Góður staður fyrir siðareglur, almennt regluverk, leiðbeiningar og annað sem gerir netþjóninni þinn sérstakann. Þú getur notað HTML-einindi - title: Sérsniðnar ítarlegar upplýsingar - site_short_description: - desc_html: Birt á hliðarspjaldi og í lýsigögnum. Lýstu því hvað Mastodon gerir og hvað það er sem geri þennan vefþjón sérstakan, í einni málsgrein. - title: Stutt lýsing á netþjóninum - site_terms: - desc_html: Þú getur skrifað þína eigin persónuverndarstefnu, þjónustuskilmála eða annað lagatæknilegt. Þú getur notað HTML-einindi - title: Sérsniðnir þjónustuskilmálar - site_title: Heiti vefþjóns - thumbnail: - desc_html: Notað við forskoðun í gegnum OpenGraph og API-kerfisviðmót. Mælt með 1200×630 mynddílum - title: Smámynd vefþjóns - timeline_preview: - desc_html: Birta tengil í opinbera tímalínu á upphafssíðu og leyfa aðgang API-kerfisviðmóts að opinberri tímalínu án auðkenningar - title: Leyfa óauðkenndan aðgang að opinberri tímalínu - title: Stillingar vefsvæðis - trendable_by_default: - desc_html: Hefur áhrif á myllumerki sem ekki hafa áður verið gerð óleyfileg - title: Leyfa myllumerkjum að fara í umræðuna án þess að þau séu fyrst yfirfarin - trends: - desc_html: Birta opinberlega þau áður yfirförnu myllumerki sem eru núna í umræðunni - title: Myllumerki í umræðunni + title: Stillingar netþjóns site_uploads: delete: Eyða innsendri skrá destroyed_msg: Það tókst að eyða innsendingu á vefsvæði! statuses: + account: Höfundur + application: Forrit back_to_account: Fara aftur á síðu notandaaðgangsins back_to_report: Til baka á kærusíðu batch: remove_from_report: Fjarlægja úr kæru report: Kæra deleted: Eytt + favourites: Eftirlæti + history: Útgáfuferill + in_reply_to: Svarar til + language: Tungumál media: title: Myndefni + metadata: Lýsigögn no_status_selected: Engum færslum var breytt þar sem engar voru valdar + open: Opna færslu + original_status: Upprunaleg færsla + reblogs: Endurbirtingar + status_changed: Færslu breytt title: Færslur notandaaðgangs + trending: Vinsælt + visibility: Sýnileiki with_media: Með myndefni strikes: actions: @@ -797,6 +770,9 @@ is: description_html: Þetta eru tenglar/slóðir sem mikið er deilt af notendum sem netþjónninn þinn sér færslur frá. Þeir geta hjálpað notendunum þínu við að finna út hvað sé í gangi í heiminum. Engir tenglar birtast opinberlega fyrr en þú hefur samþykkt útgefanda þeirra. Þú getur líka leyft eða hafnað eintökum tenglum. disallow: Ekki leyfa tengil disallow_provider: Ekki leyfa útgefanda + no_link_selected: Engum tenglum var breytt þar sem engir voru valdir + publishers: + no_publisher_selected: Engum útgefendum var breytt þar sem engir voru valdir shared_by_over_week: one: Deilt af einum aðila síðustu vikuna other: Deilt af %{count} aðilum síðustu vikuna @@ -816,6 +792,7 @@ is: description_html: Þetta eru færslur sem netþjónninn þinn veit að er víða deilt eða eru mikið sett í eftirlæti þessa stundina. Þær geta hjálpað nýjum sem eldri notendum þínum við að finna fleira fólk til að fylgjast með. Engar færslur birtast opinberlega fyrr en þú hefur samþykkt höfund þeirra og að viðkomandi höfundur leyfi að efni frá þeim sé notað í tillögur til annarra. Þú getur líka leyft eða hafnað eintökum færslum. disallow: Ekki leyfa færslu disallow_account: Ekki leyfa höfund + no_status_selected: Engum vinsælum færslum var breytt þar sem engar voru valdar not_discoverable: Höfundur hefur ekki beðið um að vera finnanlegur shared_by: one: ShaDeilt eða gert að eftirlæti einu sinni @@ -831,6 +808,7 @@ is: tag_uses_measure: tilvik alls description_html: Þetta eru myllumerki sem birtast núna í mjög mörgum færslum sem netþjónninn þinn sér. Þau geta hjálpað notendunum þínu við að finna út hvað sé mest í umræðunni hjá öðru fólki. Engin myllumerki birtast opinberlega fyrr en þú hefur samþykkt þau. listable: Má stinga uppá + no_tag_selected: Engum merkjum var breytt þar sem engin voru valin not_listable: Mun ekki vera stungið uppá not_trendable: Mun ekki birtast í vinsældum not_usable: Má ekki nota @@ -851,6 +829,26 @@ is: edit_preset: Breyta forstilltri aðvörun empty: Þú hefur ekki enn skilgreint neinar aðvaranaforstillingar. title: Sýsla með forstilltar aðvaranir + webhooks: + add_new: Bæta við endapunkti + delete: Eyða + description_html: "webhook-vefkrækja gerir Mastodon kleift að ýta rauntíma-tilkynningum um valda atburði til þinna eigin forrita, þannig að þau forrit getir sett sjálfvirk viðbrögð í gang." + disable: Gera óvirkt + disabled: Óvirkt + edit: Breyta endapunkti + empty: Þú ert ekki enn búin/n að stilla neina endapunkta á webhook-vefkrækjum. + enable: Virkja + enabled: Virkt + enabled_events: + one: 1 virkjaður atburður + other: "%{count} virkjaðir atburðir" + events: Atburðir + new: Ný webhook-vefkrækja + rotate_secret: Skipta um leyniteikn + secret: Leyniteikn undirritunar + status: Staða + title: Webhook-vefkrækjur + webhook: Webhook-vefkrækja admin_mailer: new_appeal: actions: @@ -874,12 +872,8 @@ is: new_trends: body: 'Eftirfarandi atriði þarfnast yfirferðar áður en hægt er að birta þau opinberlega:' new_trending_links: - no_approved_links: Það eru í augnablikinu engir samþykktir vinsælir tenglar. - requirements: 'Hver af þessum tillögum gætu farið yfir samþykkta vinsæla tengilinn númer #%{rank}, sem í augnablikinu er "%{lowest_link_title}" með %{lowest_link_score} stig.' title: Vinsælir tenglar new_trending_statuses: - no_approved_statuses: Það eru í augnablikinu engar samþykktar vinsælar færslur. - requirements: 'Hver af þessum tillögum gætu farið yfir samþykktu vinsælu færsluna númer #%{rank}, sem í augnablikinu er %{lowest_status_url} með %{lowest_status_score} stig' title: Vinsælar færslur new_trending_tags: no_approved_tags: Það eru í augnablikinu engin samþykkt vinsæl myllumerki. @@ -915,16 +909,13 @@ is: applications: created: Það tókst að búa til forrit destroyed: Það tókst að eyða forriti - invalid_url: Slóðin sem þú gafst upp er ógild regenerate_token: Endurgera aðgangsteikn token_regenerated: Það tókst að endurgera aðgangsteiknið warning: Farðu mjög varlega með þessi gögn. Þú skalt aldrei deila þeim með neinum! your_token: Aðgangsteiknið þitt auth: - apply_for_account: Beiðni um boð + apply_for_account: Fara á biðlista change_password: Lykilorð - checkbox_agreement_html: Ég samþykki reglur vefþjónsins og þjónustuskilmálana - checkbox_agreement_without_rules_html: Ég samþykki þjónustuskilmálana delete_account: Eyða notandaaðgangi delete_account_html: Ef þú vilt eyða notandaaðgangnum þínum, þá geturðu farið í það hér. Þú verður beðin/n um staðfestingu. description: @@ -943,6 +934,7 @@ is: migrate_account: Færa á annan notandaaðgang migrate_account_html: Ef þú vilt endurbeina þessum aðgangi á einhvern annan, geturðu stillt það hér. or_log_in_with: Eða skráðu inn með + privacy_policy_agreement_html: Ég hef lesið og samþykkt persónuverndarstefnuna providers: cas: CAS saml: SAML @@ -950,12 +942,18 @@ is: registration_closed: "%{instance} samþykkir ekki nýja meðlimi" resend_confirmation: Senda leiðbeiningar vegna staðfestingar aftur reset_password: Endursetja lykilorð + rules: + preamble: Þær eru settar og þeim framfylgt af umsjónarmönnum %{domain}. + title: Nokkrar grunnreglur. security: Öryggi set_new_password: Stilla nýtt lykilorð setup: email_below_hint_html: Ef tölvupóstfangið hér fyrir neðan er rangt, skaltu breyta því hér og fá nýjan staðfestingarpóst. email_settings_hint_html: Staðfestingarpósturinn var sendur til %{email}. Ef það tölvupóstfang er ekki rétt geturðu breytt því í stillingum notandaaðgangsins. title: Uppsetning + sign_up: + preamble: Með notandaaðgangi á þessum Mastodon-þjóni geturðu fylgst með hverjum sem er á netkerfinu, sama hvar notandaaðgangurinn þeirra er hýstur. + title: Förum núna að setja þig upp á %{domain}. status: account_status: Staða notandaaðgangs confirming: Bíð eftir að staðfestingu tölvupósts sé lokið. @@ -964,7 +962,6 @@ is: redirecting_to: Notandaaðgangurinn þinn er óvirkur vegna þess að hann endurbeinist á %{acct}. view_strikes: Skoða fyrri bönn notandaaðgangsins þíns too_fast: Innfyllingarform sent inn of hratt, prófaðu aftur. - trouble_logging_in: Vandræði við að skrá inn? use_security_key: Nota öryggislykil authorize_follow: already_following: Þú ert að þegar fylgjast með þessum aðgangi @@ -1022,10 +1019,6 @@ is: more_details_html: Til að skoða þetta nánar, er gott að líta á persónuverndarstefnuna. username_available: Notandanafnið þitt mun verða tiltækt aftur username_unavailable: Notandanafnið þitt mun verða áfram ótiltækt - directories: - directory: Notandasniðamappa - explanation: Leitaðu að notendum eftir áhugamálum þeirra - explore_mastodon: Kannaðu %{title} disputes: strikes: action_taken: Framkvæmd aðgerð @@ -1104,29 +1097,60 @@ is: public: Opinberar tímalínur thread: Samtöl edit: + add_keyword: Bæta við stikkorði + keywords: Stikkorð + statuses: Einstakar færslur + statuses_hint_html: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Yfirfarðu eða fjarlægðu færslur úr síunni. title: Breyta síu errors: + deprecated_api_multiple_keywords: Þessum viðföngum er ekki hægt að breyta úr þessu forriti, þar sem þau eiga við fleiri en eitt stikkorð síu. Notaðu nýrra forrit eða farðu í vefviðmótið. invalid_context: Ekkert eða ógilt samhengi var gefið - invalid_irreversible: Óendurkræf síun virkar bara í sambandi við heimasvæði eða tilkynningar index: + contexts: Síur í %{contexts} delete: Eyða empty: Þú ert ekki með neinar síur. + expires_in: Rennur út %{distance} + expires_on: Rennur út þann %{date} + keywords: + one: "%{count} stikkorð" + other: "%{count} stikkorð" + statuses: + one: "%{count} færsla" + other: "%{count} færslur" + statuses_long: + one: "%{count} stök færsla falin" + other: "%{count} stakar færslur faldar" title: Síur new: + save: Vista nýja síu title: Bæta við nýrri síu + statuses: + back_to_filter: Til baka í síu + batch: + remove: Fjarlægja úr síu + index: + hint: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Þú getur bætt fleiri færslum í þessa síu í vefviðmótinu. + title: Síaðar færslur footer: - developers: Forritarar - more: Meira… - resources: Tilföng trending_now: Í umræðunni núna generic: all: Allt + all_items_on_page_selected_html: + one: "%{count} atriði á þessari síðu er valið." + other: Öll %{count} atriðin á þessari síðu eru valin. + all_matching_items_selected_html: + one: "%{count} atriði sem samsvarar leitinni þinni er valið." + other: Öll %{count} atriðin sem samsvara leitinni þinni eru valin. changes_saved_msg: Það tókst að vista breytingarnar! copy: Afrita delete: Eyða + deselect: Afvelja allt none: Ekkert order_by: Raða eftir save_changes: Vista breytingar + select_all_matching_items: + one: Veldu %{count} atriði sem samsvarar leitinni þinni. + other: Veldu öll %{count} atriðin sem samsvara leitinni þinni. today: í dag validation_errors: one: Ennþá er ekk alvegi allt í lagi! Skoðaðu vel villuna hér fyrir neðan @@ -1150,7 +1174,6 @@ is: following: Listi yfir þá sem fylgst er með muting: Listi yfir þagganir upload: Senda inn - in_memoriam_html: Minning. invites: delete: Gera óvirkt expired: Útrunnið @@ -1229,21 +1252,14 @@ is: carry_blocks_over_text: Þessi notandi fluttist frá %{acct}, sem þú hafðir útilokað. carry_mutes_over_text: Þessi notandi fluttist frá %{acct}, sem þú hafðir þaggað niður í. copy_account_note_text: 'Þessi notandi fluttist frá %{acct}, hér eru fyrri minnispunktar þínir um hann:' + navigation: + toggle_menu: Víxla valmynd af/á notification_mailer: admin: + report: + subject: "%{name} sendi inn kæru" sign_up: subject: "%{name} nýskráði sig" - digest: - action: Skoða allar tilkynningar - body: Hér er stutt yfirlit yfir þau skilaboð sem þú gætir hafa misst af síðan þú leist inn síðast %{since} - mention: "%{name} minntist á þig í:" - new_followers_summary: - one: Að auki, þú hefur fengið einn nýjan fylgjanda á meðan þú varst fjarverandi! Húh! - other: Að auki, þú hefur fengið %{count} nýja fylgjendur á meðan þú varst fjarverandi! Frábært! - subject: - one: "1 ný tilkynning síðan þú leist inn síðast 🐘" - other: "%{count} nýjar tilkynningar síðan þú leist inn síðast 🐘" - title: Á meðan þú varst fjarverandi... favourite: body: 'Færslan þín var sett í eftirlæti af %{name}:' subject: "%{name} setti færsluna þína í eftirlæti" @@ -1315,6 +1331,8 @@ is: other: Annað posting_defaults: Sjálfgefin gildi við gerð færslna public_timelines: Opinberar tímalínur + privacy_policy: + title: Persónuverndarstefna reactions: errors: limit_reached: Hámarki mismunandi viðbragða náð @@ -1337,22 +1355,7 @@ is: remove_selected_follows: Hætta að fylgjast með völdum notendum status: Staða aðgangs remote_follow: - acct: Settu inn notandanafn@lén þaðan sem þú vilt vera virk/ur missing_resource: Gat ekki fundið endurbeiningarslóðina fyrir notandaaðganginn þinn - no_account_html: Ertu ekki með aðgang? Þú getur nýskráð þig hér - proceed: Halda áfram í að fylgjast með - prompt: 'Þú ætlar að fara að fylgjast með:' - reason_html: "Hvers vegna er þetta skref nauðsynlegt? %{instance} er ekki endilega netþjónninn þar sem þú ert skráð/ur, þannig að við verðum að endurbeina þér á heimaþjóninn þinn fyrst." - remote_interaction: - favourite: - proceed: Halda áfram í að setja í eftirlæti - prompt: 'Þú ætlar að setja þessa færslu í eftirlæti:' - reblog: - proceed: Halda áfram í endurbirtingu - prompt: 'Þú ætlar að endurbirta þessa færslu:' - reply: - proceed: Halda áfram í að svara - prompt: 'Þú ætlar að svara þessari færslu:' reports: errors: invalid_rules: vísar ekki til gildra reglna @@ -1384,7 +1387,7 @@ is: phantom_js: PhantomJS qq: QQ vafri safari: Safari - uc_browser: UCBrowser + uc_browser: UC-vafrinn weibo: Weibo current_session: Núverandi seta description: "%{browser} á %{platform}" @@ -1524,89 +1527,6 @@ is: too_late: Það er orðið of sint að áfrýja þessari refsingu tags: does_not_match_previous_name: samsvarar ekki fyrra nafni - terms: - body_html: | -

      Persónuverndarstefna

      -

      Hvaða upplýsingum söfnum við?

      - -
        -
      • Grunnupplýsingar um notandaaðgang: Ef þú skráir þig á þessum netþjóni gætirðu verið beðinn um að slá inn notandanafn, tölvupóstfang og lykilorð. Þú getur einnig sett inn viðbótarupplýsingar eins og birtingarnafn og æviágrip auk þess að hlaða inn auðkennismynd eða mynd til að birta á síðuhaus. Notandanafn, birtingarnafn, æviágrip, auðkennismynd og hausmynd eru alltaf skráð opinberlega.
      • -
      • Færslur, fylgnigögn og aðrar opinberar upplýsingar: Listinn yfir þá sem þú fylgist með er skráður opinberlega, það sama er að segja um þá sem fylgjast með þér. Þegar þú sendir skilaboð er dagsetning og tími vistaður sem og hvaða forrit þú sendir skilaboðin frá. Skilaboð geta innihaldið viðhengi, svo sem myndir og myndskeið. Opinberar og óskráðar færslur er aðgengilegar opinberlega. Þegar þú birtir færslu á notandasniðinu þínu (forsíðu) eru það einnig opinberar upplýsingar. Færslurnar þínar eru sendar þeim sem fylgjast með þér, í sumum tilvikum þýðir það að þær eru afhentar á aðra netþjóna og afrit geymd þar. Þegar þú eyðir færslum er það sömuleiðis birt fylgjendum þínum. Aðgerðir eins og að endurbirta eða setja færslu í eftirlæti eru ávallt opinberar.
      • -
      • Beinar færslur og eingöngu til fylgjenda: Öll innlegg eru geymd og unnin á netþjóninum. Færslur sem eingöngu eru til fylgjenda berast til fylgjenda þinna og þeirra notenda sem minnst er á í þeim, beinar færslur berast aðeins til notenda sem getið er um í viðkomandi færslu. Í sumum tilvikum þýðir það að færslurnar eru afhentar á aðra netþjóna og afrit geymd þar. Við leggjum mikla áherslu á að takmarka aðgang að þessum færslum einungis við aðila sem til þess hafa heimild, en aðrir utanaðkomandi netþjónar gætu mögulega ekki gert það. Þess vegna er mikilvægt að skoða vel þá netþjóna sem fylgjendur þínir tilheyra. Þú getur valið að þurfa að samþykkja og hafna nýjum fylgjendum handvirkt í stillingunum.Hafðu í huga að rekstraraðilar netþjónsins og allir viðtakendamiðlarar geta skoðað slík skilaboð og að viðtakendur geta tekið skjámyndir, afritað eða á annan hátt deilt þessum gögnum. Ekki deila hættulegum upplýsingum í gegnum Mastodon.
      • -
      • IP-vistföng og önnur lýsigögn: Þegar þú skráir þig inn skráum við IP-töluna sem þú skráir þig inn af, sem og heiti vafraforritsins þíns. Allar innskráðar setur verða tiltækar til skoðunar og afturköllunar í stillingunum. Síðast notaða IP-talan er geymd í allt að 12 mánuði. Við gætum líka haldið eftir atvikaskrám netþjónsins sem gæti innihaldið IP-tölur allra beiðna til netþjónsins.
      • -
      - -
      - -

      Til hvers notum við upplýsingarnar þínar?

      - -

      Hvað sem er af þeim upplýsingum sem við söfnum frá þér má nota á eftirfarandi vegu:

      - -
        -
      • Til að veita grunnvirkni Mastodon. Þú getur aðeins haft samskipti við efni annarra eða sent inn þitt eigið efni þegar þú ert skráð/ur inn. Til dæmis gætirðu fylgst með öðru fólki og skoðað safn færslna þeirra á þinni eigin persónulega sérsniðnu tímalínu.
      • -
      • Til að hjálpa til við umsjón og viðhald samfélags/hóps, til dæmis að bera saman IP-tölu þína við aðrar þekktar til að greina frávik frá bönnum eða öðrum brotum.
      • -
      • Tölvupóstfangið sem þú gefur upp má nota til að senda þér upplýsingar, tilkynningar um annað fólk sem átt hefur við efnið þitt eða til að senda þér skilaboð eða svara fyrirspurnum og/eða öðrum beiðnum eða spurningum.
      • -
      - -
      - -

      Hvernig verndum við upplýsingarnar þínar?

      - -

      Við setjum upp margvíslegar öryggisráðstafanir til að viðhalda öryggi persónuupplýsinganna þinna þegar þú setur inn, sendir eða opnar persónulegar upplýsingar. Meðal annars er vafrasetan þín, svo og umferðin milli forritanna þinna og API-kerfisviðmótsins tryggð með SSL, og lykilorðið þitt er varið með tætigildi (hashed) með sterku einhliða reikniriti. Þú gætir virkjað tveggja-þátta auðkenningu til að tryggja enn frekar aðganginn að notandaaðgangnum þínum.

      - -
      - -

      Hver er stefna okkar varðandi varðveislu gagna?

      - -

      Við munum leggja okkur fram um að:

      - -
        -
      • Halda eftir atvikaskrám netþjóns sem innihalda IP-tölu allra beiðna til þessa netþjóns, að svo miklu leyti sem slíkar skrár eru geymdar, ekki lengur en í en 90 daga.
      • -
      • Halda eftir IP-tölum sem tengjast skráðum notendum ekki lengur en 12 mánuði.
      • -
      - -

      Þú getur beðið um og ná í safnskrá með öllu þínu efni, þar með taldar færslur, margmiðlunarviðhengi, auðkennismynd og mynd á síðuhaus.

      - -

      Þú getur eytt reikningi þínum óafturkræft hvenær sem er.

      - -
      - -

      Notum við vefkökur?

      - -

      Já. Vefkökur eða fótspor eru litlar skrár sem vefsvæði eða þjónustuveitandi setur á harða diskinn í tölvunni þinni í gegnum vafrann þinn (ef þú leyfir það). Þessar vefkökur gera vefsvæðinu kleift að þekkja vafrann þinn og ef þú ert með skráðan notandaaðgang skaltu tengja vafrann við skráða notandaaðganginn þinn.

      - -

      Við notum vafrakökur til að skilja og vista kjörstillingar þínar fyrir næstu heimsóknir.

      - -
      - -

      Veitum við upplýsingar til utanaðkomandi aðila?

      - -

      Við seljum ekki, verslum eða flytjum á annan hátt persónulegar upplýsingar þínar til utanaðkomandi aðila. Þetta nær ekki til traustra þriðja aðila sem aðstoða okkur við að reka síðuna okkar, aðstoða við starfsemi okkar eða við að þjónusta þig, svo framarlega sem þessir aðilar eru sammála um að halda þessum gögnum sem trúnaðarupplýsingum. Við gætum einnig átt það til að gefa upp upplýsingar frá þér þegar við teljum að birting þeirra sé viðeigandi til að fara eftir lögum, framfylgja stefnu okkar á vefnum eða vernda réttindi okkar, eignir eða öryggi okkar eða annarra.

      - -

      Opinberu efni þínu getur verið hlaðið inn af öðrum netþjónum á netinu. Opinberu skilaboðin þín ásamt færslum eingöngu til fylgjenda berast þeim netþjónum þar sem fylgjendur þínir eru skráðir og bein skilaboð eru send til netþjóna viðtakendanna, að svo miklu leyti sem þeir fylgjendur eða viðtakendur eru skráðir á öðrum netþjónum en þessum.

      - -

      Þegar þú leyfir forriti að nota aðganginn þinn, fer það eftir umfangi heimildanna sem þú gefur hvort það getur það fengið aðgang að opinberum notandasniðsupplýsingum þínum, lista yfir þá sem þú fylgist með, lista yfir þá sem fylgjast með þér, öðrum listum þínum, öllum þínum færslum og eftirlætum. Forrit geta aldrei fengið tölvupóstfangið þitt eða lykilorð.

      - -
      - -

      Notkun vefsvæðis fyrir börn

      - -

      Ef þessi netþjónn er innan ESB eða EES: Vefnum okkar, vörum og þjónustu er allri beint að fólki sem er að minnsta kosti 16 ára gamalt. Ef þú ert yngri en 16 ára, þá máttu samkvæmt kröfum GDPR ( Almenn reglugerð um gagnavernd) ekki nota þessa síðu.

      - -

      Ef þessi netþjónn er í Bandaríkjunum: Vefnum okkar, vörum og þjónustu er allri beint að fólki sem er að minnsta kosti 13 ára gamalt. Ef þú ert yngri en 13 ára, þá máttu samkvæmt kröfum COPPA (Lög um persónuvernd barna á netinu) ekki nota þessa síðu.

      - -

      Lagakröfur geta verið aðrar ef þessi netþjónn er í annarri lögsögu.

      - -
      - -

      Breytingar á persónuverndarstefnu okkar

      - -

      Ef við ákveðum að breyta persónuverndarstefnu okkar munum við birta þær breytingar á þessari síðu.

      - -

      Þetta skjal er með CC-BY-SA notkunarleyfi. Það var síðast uppfært 7. mars 2018.

      - -

      Upprunalega aðlagað úr persónuverndarstefnu Discourse.

      - title: "%{instance} - Þjónustuskilmálar og persónuverndarstefna" themes: contrast: Mastodon (mikil birtuskil) default: Mastodon (dökkt) @@ -1685,20 +1605,13 @@ is: suspend: Notandaaðgangur í bið welcome: edit_profile_action: Setja upp notandasnið - edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að senda inn auðkennismynd, síðuhaus, breytt birtingarnafninu þínu og ýmislegt fleira. Ef þú vilt yfirfara nýja fylgjendur áður en þeim er leyft að fylgjast með þér geturðu læst aðgangnum þínum. + edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að setja inn auðkennismynd þína, breyta birtingarnafninu þínu og ýmislegt fleira. Þú getur valið að yfirfara nýja fylgjendur áður en þú leyfir þeim að fylgjast með þér. explanation: Hér eru nokkrar ábendingar til að koma þér í gang final_action: Byrjaðu að skrifa - final_step: 'Byrjaðu að tjá þig! Jafnvel án fylgjenda geta aðrir séð opinberar færslur frá þér, til dæmis á staðværu tímalínunni og í myllumerkjum. Þú gætir jafnvel viljað kynna þig með myllumerkinu #introductions.' + final_step: 'Byrjaðu að tjá þig! Jafnvel án fylgjenda geta aðrir séð opinberar færslur frá þér, til dæmis á staðværu tímalínunni eða í myllumerkjum. Þú gætir jafnvel viljað kynna þig á myllumerkinu #introductions.' full_handle: Fullt auðkenni þitt full_handle_hint: Þetta er það sem þú myndir gefa upp við vini þína svo þeir geti sent þér skilaboð eða fylgst með þér af öðrum netþjóni. - review_preferences_action: Breyta kjörstillingum - review_preferences_step: Gakktu úr skugga um að kjörstillingarnar séu eins og þú vilt hafa þær, eins og t.d. hvaða tölvupóst þú vilt fá, eða hvaða stig friðhelgi þú vilt að færslurnar þínar hafi sjálfgefið. Ef þú hefur ekkert á móti sjónrænu áreiti geturðu virkjað sjálvirka spilun GIF-hreyfimynda. subject: Velkomin í Mastodon - tip_federated_timeline: Sameiginlega tímalínan er færibandasýn á Mastodon netkerfið. En hún inniheldur bara fólk sem nágrannar þínir eru áskrifendur að, þannig að hún er ekki tæmandi. - tip_following: Sjálfgefið er að þú fylgist með stjórnanda eða stjórnendum vefþjónsins. Til að finna fleira áhugavert fólk ættirðu að kíkja á staðværu og sameiginlegu tímalínurnar. - tip_local_timeline: Staðværa tímalínan er færibandasýn á allt fólkið á %{instance}. Þetta eru þínir næstu nágrannar! - tip_mobile_webapp: Ef farsímavafrinn býður þér að bæta Mastodon á heimaskjáinn þinn, muntu geta tekið á móti ýti-tilkynningum. Það virkar á ýmsa vegu eins og um uppsett forrit sé að ræða! - tips: Ábendingar title: Velkomin/n um borð, %{name}! users: follow_limit_reached: Þú getur ekki fylgst með fleiri en %{limit} aðilum diff --git a/config/locales/it.yml b/config/locales/it.yml index c404ea3ac77190..76469eb6a47a31 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1,94 +1,27 @@ --- it: about: - about_hashtag_html: Questi sono i toot pubblici etichettati con #%{hashtag}. Puoi interagire con loro se hai un account nel fediverse. about_mastodon_html: 'Il social network del futuro: niente pubblicità, niente controllo da parte di qualche azienda privata, design etico e decentralizzazione! Con Mastodon il proprietario dei tuoi dati sei tu!' - about_this: A proposito di questo server - active_count_after: attivo - active_footnote: Utenti Attivi Mensili (MAU) - administered_by: 'Amministrato da:' - api: API - apps: Applicazioni per dispositivi mobili - apps_platforms: Usa Mastodon da iOS, Android e altre piattaforme - browse_directory: Sfoglia la directory dei profili e filtra per interessi - browse_local_posts: Sfoglia il flusso di post pubblici in tempo reale su questo server - browse_public_posts: Sfoglia il flusso di post pubblici in tempo reale su Mastodon - contact: Contatti contact_missing: Non impostato contact_unavailable: N/D - continue_to_web: Continua all'app web - discover_users: Scopri utenti - documentation: Documentazione - federation_hint_html: Con un account su %{instance} sarai in grado di seguire persone su qualsiasi server Mastodon e oltre. - get_apps: Prova un'app per smartphone hosted_on: Mastodon ospitato su %{domain} - instance_actor_flash: | - Questo account è un attore virtuale utilizzato per rappresentare il server stesso e non un particolare utente. - È utilizzato per scopi di federazione e non dovrebbe essere bloccato a meno che non si voglia bloccare l'intera istanza: in questo caso si dovrebbe utilizzare un blocco di dominio. - learn_more: Scopri altro - logged_in_as_html: Sei correntemente connesso come %{username}. - logout_before_registering: Hai già effettuato l'accesso. - privacy_policy: Politica della privacy - rules: Regole del server - rules_html: 'Di seguito è riportato un riassunto delle regole che devi seguire se vuoi avere un account su questo server di Mastodon:' - see_whats_happening: Guarda cosa succede - server_stats: 'Statistiche del server:' - source_code: Codice sorgente - status_count_after: - one: stato - other: stati - status_count_before: Che hanno pubblicato - tagline: Segui amici e trovane di nuovi - terms: Termini di Servizio - unavailable_content: Server moderati - unavailable_content_description: - domain: Server - reason: 'Motivo:' - rejecting_media: I file multimediali di questo server non saranno elaborati e non verranno visualizzate miniature, che richiedono clic manuale sull'altro server. - rejecting_media_title: Media filtrati - silenced: 'I messaggi da questi server saranno nascosti nelle timeline e nelle conversazioni pubbliche, e nessuna notifica verrà generata dalle interazioni dei loro utenti, a meno che non li stai seguendo:' - silenced_title: Server silenziati - suspended: 'Nessun dato da questi server sarà elaborato, memorizzato o scambiato, rendendo impossibile qualsiasi interazione o comunicazione con gli utenti di questi server:' - suspended_title: Server sospesi - unavailable_content_html: Mastodon generalmente permette di visualizzare i contenuti e interagire con gli utenti di qualsiasi altro server nel fediverse. Queste sono le eccezioni che sono state create su questo specifico server. - user_count_after: - one: utente - other: utenti - user_count_before: Home di - what_is_mastodon: Che cos'è Mastodon? + title: Info accounts: - choices_html: 'Suggerimenti da %{name}:' - endorsements_hint: 'Puoi segnalare persone che segui e che apprezzi dall''interfaccia web: saranno mostrate qui.' - featured_tags_hint: Puoi mettere in evidenza determinati hashtag che verranno visualizzati qui. follow: Segui followers: one: Seguace other: Seguaci following: Segui instance_actor_flash: Questo account è un attore virtuale usato per rappresentare il server stesso e non un singolo utente. Viene utilizzato per scopi federativi e non dovrebbe essere sospeso. - joined: Dal %{date} last_active: ultima attività link_verified_on: La proprietà di questo link è stata controllata il %{date} - media: Media - moved_html: "%{name} si è spostato su %{new_profile_link}:" - network_hidden: Questa informazione non e' disponibile nothing_here: Qui non c'è nulla! - people_followed_by: Persone seguite da %{name} - people_who_follow: Persone che seguono %{name} pin_errors: following: Devi gia seguire la persona che vuoi promuovere posts: one: Toot other: Toot posts_tab_heading: Toot - posts_with_replies: Toot e risposte - roles: - admin: Amministratore - bot: Bot - group: Gruppo - moderator: Moderatore - unavailable: Profilo non disponibile - unfollow: Non seguire più admin: account_actions: action: Esegui azione @@ -105,12 +38,17 @@ it: avatar: Immagine di profilo by_domain: Dominio change_email: - changed_msg: Account email cambiato con successo! + changed_msg: Email modificata! current_email: Email attuale label: Cambia email new_email: Nuova email submit: Cambia email title: Cambia email per %{username} + change_role: + changed_msg: Ruolo modificato correttamente! + label: Cambia ruolo + no_role: Nessun ruolo + title: Cambia ruolo per %{username} confirm: Conferma confirmed: Confermato confirming: Confermando @@ -154,6 +92,7 @@ it: active: Attivo all: Tutto pending: In attesa + silenced: Limitato suspended: Sospesi title: Moderazione moderation_notes: Note di moderazione @@ -161,6 +100,7 @@ it: most_recent_ip: IP più recente no_account_selected: Nessun account è stato modificato visto che non ne è stato selezionato nessuno no_limits_imposed: Nessun limite imposto + no_role_assigned: Nessun ruolo assegnato not_subscribed: Non sottoscritto pending: Revisioni in attesa perform_full_suspension: Sospendi @@ -187,12 +127,7 @@ it: reset: Reimposta reset_password: Reimposta password resubscribe: Riscriversi - role: Permessi - roles: - admin: Amministratore - moderator: Moderatore - staff: Personale - user: Utente + role: Ruolo search: Cerca search_same_email_domain: Altri utenti con lo stesso dominio e-mail search_same_ip: Altri utenti con lo stesso IP @@ -235,17 +170,21 @@ it: approve_user: Approva Utente assigned_to_self_report: Assegna report change_email_user: Cambia l'e-mail per l'utente + change_role_user: Cambia il Ruolo dell'Utente confirm_user: Conferma utente create_account_warning: Crea avviso create_announcement: Crea un annuncio + create_canonical_email_block: Crea Blocco E-mail create_custom_emoji: Crea emoji personalizzata create_domain_allow: Crea permesso di dominio create_domain_block: Crea blocco di dominio create_email_domain_block: Crea blocco dominio e-mail create_ip_block: Crea regola IP create_unavailable_domain: Crea dominio non disponibile + create_user_role: Crea Ruolo demote_user: Degrada l'utente destroy_announcement: Cancella annuncio + destroy_canonical_email_block: Elimina Blocco E-mail destroy_custom_emoji: Cancella emoji personalizzata destroy_domain_allow: Cancella permesso di dominio destroy_domain_block: Cancella blocco di dominio @@ -254,6 +193,7 @@ it: destroy_ip_block: Elimina regola IP destroy_status: Cancella stato destroy_unavailable_domain: Elimina dominio non disponibile + destroy_user_role: Distruggi Ruolo disable_2fa_user: Disabilita l'autenticazione a due fattori disable_custom_emoji: Disabilita emoji personalizzata disable_sign_in_token_auth_user: Disabilita autenticazione con codice via email per l'utente @@ -267,6 +207,7 @@ it: reject_user: Rifiuta Utente remove_avatar_user: Elimina avatar reopen_report: Riapri report + resend_user: Invia di nuovo l'email di conferma reset_password_user: Reimposta password resolve_report: Risolvi report sensitive_account: Contrassegna il media nel tuo profilo come sensibile @@ -280,24 +221,30 @@ it: update_announcement: Aggiorna annuncio update_custom_emoji: Aggiorna emoji personalizzata update_domain_block: Aggiorna blocco di dominio + update_ip_block: Aggiorna regola IP update_status: Aggiorna stato + update_user_role: Aggiorna Ruolo actions: approve_appeal_html: "%{name} ha approvato il ricorso contro la decisione di moderazione da %{target}" approve_user_html: "%{name} ha approvato la registrazione da %{target}" assigned_to_self_report_html: "%{name} ha assegnato il rapporto %{target} a se stesso" change_email_user_html: "%{name} ha cambiato l'indirizzo e-mail dell'utente %{target}" + change_role_user_html: "%{name} ha cambiato il ruolo di %{target}" confirm_user_html: "%{name} ha confermato l'indirizzo e-mail dell'utente %{target}" create_account_warning_html: "%{name} ha inviato un avviso a %{target}" create_announcement_html: "%{name} ha creato un nuovo annuncio %{target}" + create_canonical_email_block_html: "%{name} ha bloccato l'e-mail con l'hash %{target}" create_custom_emoji_html: "%{name} ha caricato una nuova emoji %{target}" create_domain_allow_html: "%{name} ha consentito alla federazione col dominio %{target}" create_domain_block_html: "%{name} ha bloccato dominio %{target}" create_email_domain_block_html: "%{name} ha bloccato dominio e-mail %{target}" create_ip_block_html: "%{name} ha creato una regola per l'IP %{target}" create_unavailable_domain_html: "%{name} ha interrotto la consegna al dominio %{target}" + create_user_role_html: "%{name} ha creato il ruolo %{target}" demote_user_html: "%{name} ha retrocesso l'utente %{target}" destroy_announcement_html: "%{name} ha eliminato l'annuncio %{target}" - destroy_custom_emoji_html: "%{name} ha eliminato emoji %{target}" + destroy_canonical_email_block_html: "%{name} ha sbloccato l'email con l'hash %{target}" + destroy_custom_emoji_html: "%{name} ha eliminato l'emoji %{target}" destroy_domain_allow_html: "%{name} ha negato la federazione al dominio %{target}" destroy_domain_block_html: "%{name} ha sbloccato dominio %{target}" destroy_email_domain_block_html: "%{name} ha sbloccato il dominio e-mail %{target}" @@ -305,6 +252,7 @@ it: destroy_ip_block_html: "%{name} ha eliminato la regola per l'IP %{target}" destroy_status_html: "%{name} ha eliminato lo status di %{target}" destroy_unavailable_domain_html: "%{name} ha ripreso la consegna al dominio %{target}" + destroy_user_role_html: "%{name} ha eliminato il ruolo %{target}" disable_2fa_user_html: "%{name} ha disabilitato l'autenticazione a due fattori per l'utente %{target}" disable_custom_emoji_html: "%{name} ha disabilitato emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} ha disabilitato l'autenticazione con codice via email per %{target}" @@ -318,6 +266,7 @@ it: reject_user_html: "%{name} ha rifiutato la registrazione da %{target}" remove_avatar_user_html: "%{name} ha rimosso l'immagine profilo di %{target}" reopen_report_html: "%{name} ha riaperto il rapporto %{target}" + resend_user_html: "%{name} inviata nuovamente l'email di conferma per %{target}" reset_password_user_html: "%{name} ha reimpostato la password dell'utente %{target}" resolve_report_html: "%{name} ha risolto il rapporto %{target}" sensitive_account_html: "%{name} ha segnato il media di %{target} come sensibile" @@ -331,8 +280,10 @@ it: update_announcement_html: "%{name} ha aggiornato l'annuncio %{target}" update_custom_emoji_html: "%{name} ha aggiornato emoji %{target}" update_domain_block_html: "%{name} ha aggiornato il blocco dominio per %{target}" + update_ip_block_html: "%{name} ha cambiato la regola per l'IP %{target}" update_status_html: "%{name} ha aggiornato lo status di %{target}" - deleted_status: "(stato cancellato)" + update_user_role_html: "%{name} ha modificato il ruolo %{target}" + deleted_account: account eliminato empty: Nessun log trovato. filter_by_action: Filtra per azione filter_by_user: Filtra per utente @@ -376,6 +327,7 @@ it: listed: Elencato new: title: Aggiungi nuovo emoji personalizzato + no_emoji_selected: Nessuna emoji è stata cambiata in quanto nessuna è stata selezionata not_permitted: Non hai il permesso di eseguire questa azione overwrite: Sovrascrivi shortcode: Scorciatoia @@ -428,6 +380,7 @@ it: destroyed_msg: Il blocco del dominio è stato rimosso domain: Dominio edit: Modifica blocco di dominio + existing_domain_block: Hai già imposto limiti più severi a %{name}. existing_domain_block_html: Hai già impostato limitazioni più stringenti su %{name}, dovresti sbloccarlo prima. new: create: Crea blocco @@ -648,6 +601,67 @@ it: unresolved: Non risolto updated_at: Aggiornato view_profile: Visualizza profilo + roles: + add_new: Aggiungi ruolo + assigned_users: + one: "%{count} utente" + other: "%{count} utenti" + categories: + administration: Amministrazione + devops: DevOps + invites: Inviti + moderation: Moderazione + special: Speciale + delete: Cancella + description_html: Con i ruoli utente, puoi personalizzare a quali funzioni e aree di Mastodon i tuoi utenti possono accedere. + edit: Modifica il ruolo '%{name}' + everyone: Permessi predefiniti + everyone_full_description_html: Questo è il ruolo base che influenza tutti gli utenti, anche quelli senza un ruolo assegnato. Tutti gli altri ruoli ereditano i permessi da esso. + permissions_count: + one: "%{count} permesso" + other: "%{count} permessi" + privileges: + administrator: Amministratore + administrator_description: Gli utenti con questo permesso saranno esentati da ogni permesso + delete_user_data: Cancella dati utente + delete_user_data_description: Consente agli utenti di eliminare subito i dati degli altri utenti + invite_users: Invita Utenti + invite_users_description: Consente agli utenti di invitare nuove persone su questo server + manage_announcements: Gestisci Annunci + manage_announcements_description: Consente agli utenti di gestire gli annunci sul server + manage_appeals: Gestisci appelli + manage_appeals_description: Consente agli utenti di esaminare i ricorsi contro le azioni di moderazione + manage_blocks: Gestisci Blocchi + manage_blocks_description: Consente agli utenti di bloccare provider e-mail e indirizzi IP + manage_custom_emojis: Gestisci emoji personalizzate + manage_custom_emojis_description: Consente agli utenti di gestire emoji personalizzate sul server + manage_federation: Gestisci Federazione + manage_federation_description: Consente agli utenti di bloccare o consentire la federazione con altri domini e controllare la consegnabilità + manage_invites: Gestisci Inviti + manage_invites_description: Consente agli utenti di esaminare e disattivare i link di invito + manage_reports: Gestisci report + manage_reports_description: Consente agli utenti di esaminare i report ed eseguire azioni di moderazione su di essi + manage_roles: Gestisci Ruoli + manage_roles_description: Consente agli utenti di gestire e assegnare i ruoli inferiori al loro + manage_rules: Gestisci Regole + manage_rules_description: Consente agli utenti di modificare le regole del server + manage_settings: Gestisci impostazioni + manage_settings_description: Consente agli utenti di modificare le impostazioni del sito + manage_taxonomies: Gestisci Tassonomie + manage_taxonomies_description: Consente agli utenti di esaminare i contenuti di tendenza e aggiornare le impostazioni degli hashtag + manage_user_access: Gestisci accesso utenti + manage_user_access_description: Consente agli utenti di disabilitare l'autenticazione a due fattori degli altri utenti, modificare il loro indirizzo e-mail e reimpostare la password + manage_users: Gestisci utenti + manage_users_description: Consente agli utenti di visualizzare le informazioni sugli altri utenti ed eseguire azioni di moderazione contro di loro + manage_webhooks: Gestisci Webhook + manage_webhooks_description: Consente agli utenti di impostare webhook per eventi amministrativi + view_audit_log: Visualizza Registro Attività + view_audit_log_description: Consente agli utenti di vedere una cronologia delle azioni amministrative sul server + view_dashboard: Mostra dashboard + view_dashboard_description: Consente agli utenti di accedere alla dashboard e alle varie metriche + view_devops: DevOps + view_devops_description: Consente agli utenti di accedere alle dashboard Sidekiq e pgHero + title: Ruoli rules: add_new: Aggiungi regola delete: Cancella @@ -656,108 +670,67 @@ it: empty: Non sono ancora state definite regole del server. title: Regole del server settings: - activity_api_enabled: - desc_html: Conteggi degli status pubblicati localmente, degli utenti attivi e delle nuove registrazioni in gruppi settimanali - title: Pubblica statistiche aggregate circa l'attività dell'utente - bootstrap_timeline_accounts: - desc_html: Separa i nomi utente con virgola. Funziona solo con account locali e non bloccati. Quando vuoto, valido per tutti gli amministratori locali. - title: Seguiti predefiniti per i nuovi utenti - contact_information: - email: E-mail di lavoro - username: Nome utente del contatto - custom_css: - desc_html: Modifica l'aspetto con il CSS caricato in ogni pagina - title: CSS personalizzato - default_noindex: - desc_html: Influisce su tutti gli utenti che non hanno cambiato questa impostazione - title: Esclude gli utenti dall'indicizzazione dei motori di ricerca per impostazione predefinita + about: + manage_rules: Gestisci le regole del server + preamble: Fornire informazioni approfondite su come, il server, venga gestito, moderato e finanziato. + rules_hint: C'è un'area dedicata per le regole che i tuoi utenti dovrebbero rispettare. + title: Info + appearance: + preamble: Personalizza l'interfaccia web di Mastodon. + title: Aspetto + branding: + preamble: 'Il marchio del tuo server lo differenzia dagli altri server nella rete. Queste informazioni possono essere visualizzate in una varietà di ambienti, come: l''interfaccia web di Mastodon, le applicazioni native, nelle anteprime dei collegamenti su altri siti Web e all''interno delle app di messaggistica e così via. Per questo motivo, è meglio mantenere queste informazioni chiare, brevi e concise.' + title: Marchio + content_retention: + preamble: Controlla come vengono memorizzati i contenuti generati dall'utente in Mastodon. + title: Conservazione dei contenuti + discovery: + follow_recommendations: Segui le raccomandazioni + preamble: La comparsa di contenuti interessanti è determinante per l'arrivo di nuovi utenti che potrebbero non conoscere nessuno su Mastodon. Controlla in che modo varie funzionalità di scoperta funzionano sul tuo server. + profile_directory: Directory del profilo + public_timelines: Timeline pubbliche + title: Scopri + trends: Tendenze domain_blocks: all: A tutti disabled: A nessuno - title: Mostra blocchi di dominio users: Agli utenti locali connessi - domain_blocks_rationale: - title: Mostra motivazione - hero: - desc_html: Mostrata nella pagina iniziale. Almeno 600x100 px consigliati. Se non impostata, sarà usato il thumbnail del server - title: Immagine dell'eroe - mascot: - desc_html: Mostrata su più pagine. Almeno 293×205px consigliati. Se non impostata, sarò usata la mascotte predefinita - title: Immagine della mascotte - peers_api_enabled: - desc_html: Nomi di dominio che questo server ha incontrato nel fediverse - title: Pubblica elenco dei server scoperti - preview_sensitive_media: - desc_html: Le anteprime dei link su altri siti mostreranno un thumbnail anche se il media è segnato come sensibile - title: Mostra media sensibili nella anteprime OpenGraph - profile_directory: - desc_html: Permetti agli utenti di essere trovati - title: Attiva directory dei profili registrations: - closed_message: - desc_html: Mostrato nella pagina iniziale quando le registrazioni sono chiuse. Puoi usare tag HTML - title: Messaggio per registrazioni chiuse - deletion: - desc_html: Consenti a chiunque di cancellare il proprio account - title: Apri la cancellazione dell'account - min_invite_role: - disabled: Nessuno - title: Permetti inviti da - require_invite_text: - desc_html: Quando le iscrizioni richiedono l'approvazione manuale, rendere la richiesta “Perché si desidera iscriversi?” obbligatoria invece che opzionale - title: Richiedi ai nuovi utenti di rispondere alla richiesta di motivazione per l'iscrizione + preamble: Controlla chi può creare un account sul tuo server. + title: Registrazioni registrations_mode: modes: approved: Approvazione richiesta per le iscrizioni none: Nessuno può iscriversi open: Chiunque può iscriversi - title: Modalità di registrazione - show_known_fediverse_at_about_page: - desc_html: Quando attivato, mostra nell'anteprima i toot da tutte le istanze conosciute. Altrimenti mostra solo i toot locali. - title: Mostra la fediverse conosciuta nell'anteprima della timeline - show_staff_badge: - desc_html: Mostra un distintivo dello staff sulla pagina dell'utente - title: Mostra badge staff - site_description: - desc_html: Paragrafo introduttivo nella pagina iniziale. Descrive ciò che rende speciale questo server Mastodon e qualunque altra cosa sia importante dire. Potete usare marcatori HTML, in particolare <a> e <em>. - title: Descrizione del server - site_description_extended: - desc_html: Un posto adatto le regole di comportamento, linee guida e altre cose specifiche del vostro server. Potete usare marcatori HTML - title: Informazioni estese personalizzate - site_short_description: - desc_html: Mostrato nella barra laterale e nei tag meta. Descrive in un paragrafo che cos'è Mastodon e che cosa rende questo server speciale. Se vuoto, sarà usata la descrizione predefinita del server. - title: Breve descrizione del server - site_terms: - desc_html: Potete scrivere la vostra politica sulla privacy, condizioni del servizio o altre informazioni legali. Potete usare tag HTML - title: Termini di servizio personalizzati - site_title: Nome del server - thumbnail: - desc_html: Usato per anteprime tramite OpenGraph e API. 1200x630px consigliati - title: Thumbnail del server - timeline_preview: - desc_html: Mostra la timeline pubblica sulla pagina iniziale - title: Anteprima timeline - title: Impostazioni sito - trendable_by_default: - desc_html: Interessa gli hashtag che non sono stati precedentemente disattivati - title: Permetti agli hashtag di comparire nei trend senza prima controllarli - trends: - desc_html: Visualizza pubblicamente gli hashtag precedentemente esaminati che sono attualmente in tendenza - title: Hashtag di tendenza + title: Impostazioni del server site_uploads: delete: Cancella il file caricato destroyed_msg: Caricamento sito eliminato! statuses: + account: Autore + application: Applicazione back_to_account: Torna alla pagina dell'account back_to_report: Torna alla pagina del report batch: remove_from_report: Rimuovi dal report report: Rapporto deleted: Cancellato + favourites: Preferiti + history: Cronologia delle versioni + in_reply_to: In risposta a + language: Lingua media: title: Media + metadata: Metadati no_status_selected: Nessun status è stato modificato perché nessuno era stato selezionato + open: Apri il post + original_status: Post originale + reblogs: Condivisioni + status_changed: Post modificato title: Gli status dell'account + trending: Di tendenza + visibility: Visibilità with_media: con media strikes: actions: @@ -797,6 +770,9 @@ it: description_html: Questi sono collegamenti che attualmente vengono molto condivisi dagli account di cui il server vede i post. Può aiutare i tuoi utenti a scoprire cosa sta succedendo nel mondo. Nessun link viene visualizzato pubblicamente finché non si approva chi lo pubblica. È anche possibile permettere o rifiutare i singoli collegamenti. disallow: Non consentire link disallow_provider: Non consentire editore + no_link_selected: Nessun collegamento è stato modificato in quanto nessuno è stato selezionato + publishers: + no_publisher_selected: Nessun editore è stato modificato in quanto nessuno è stato selezionato shared_by_over_week: one: Condiviso da una persona nell'ultima settimana other: Condiviso da %{count} persone nell'ultima settimana @@ -816,6 +792,7 @@ it: description_html: Questi sono post noti al tuo server che sono attualmente molto condivisi e preferiti. Può aiutare i tuoi utenti (nuovi e non) a trovare più persone da seguire. Nessun post viene visualizzato pubblicamente fino a quando si approva l'autore, e l'autore permette che il suo account sia suggerito ad altri. È anche possibile permettere o rifiutare singoli post. disallow: Non consentire post disallow_account: Non consentire autore + no_status_selected: Nessun post di tendenza è stato modificato in quanto nessuno è stato selezionato not_discoverable: L'autore non ha optato di essere scopribile shared_by: one: Condiviso o preferito una volta @@ -831,6 +808,7 @@ it: tag_uses_measure: usi totali description_html: Questi sono hashtag che attualmente compaiono in molti post che il tuo server vede. Può aiutare i tuoi utenti a scoprire di cosa le persone stanno parlando di più al momento. Nessun hashtag viene visualizzato pubblicamente finché non lo approvi. listable: Suggeribile + no_tag_selected: Nessun tag è stato modificato in quanto nessuno è stato selezionato not_listable: Non sarà suggerito not_trendable: Non apparirà nelle tendenze not_usable: Inutilizzabile @@ -851,6 +829,26 @@ it: edit_preset: Modifica avviso predefinito empty: Non hai ancora definito alcun avviso preimpostato. title: Gestisci avvisi predefiniti + webhooks: + add_new: Aggiungi endpoint + delete: Elimina + description_html: Un webhook consente a Mastodon di inviare notifiche in tempo reale su determinati eventi alla tua applicazione, così la tua applicazione può attivare automaticamente delle reazioni. + disable: Disabilita + disabled: Disabilitato + edit: Modifica endpoint + empty: Non hai ancora configurato alcun endpoint per webhook. + enable: Abilita + enabled: Attivo + enabled_events: + one: 1 evento abilitato + other: "%{count} eventi abilitati" + events: Eventi + new: Nuovo webhook + rotate_secret: Ruota segreto + secret: Segreto per firma + status: Stato + title: Webhook + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +872,8 @@ it: new_trends: body: 'I seguenti elementi necessitano di un controllo prima che possano essere visualizzati pubblicamente:' new_trending_links: - no_approved_links: Attualmente non ci sono link in tendenza approvati. - requirements: 'Ognuno di questi candidati potrebbe superare il #%{rank} link di tendenza approvato, che è attualmente "%{lowest_link_title}" con un punteggio di %{lowest_link_score}.' title: Link di tendenza new_trending_statuses: - no_approved_statuses: Attualmente non ci sono post di tendenza approvati. - requirements: 'Ognuno di questi candidati potrebbe superare il #%{rank} post di tendenza approvato, che è attualmente "%{lowest_status_url}" con un punteggio di %{lowest_status_score}.' title: Post di tendenza new_trending_tags: no_approved_tags: Attualmente non ci sono hashtag di tendenza approvati. @@ -917,16 +911,13 @@ it: applications: created: Applicazione creata con successo destroyed: Applicazione eliminata con successo - invalid_url: L'URL fornito non è valido regenerate_token: Rigenera il token di accesso token_regenerated: Token di accesso rigenerato warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro! your_token: Il tuo token di accesso auth: - apply_for_account: Chiedi un invito + apply_for_account: Mettiti in lista d'attesa change_password: Password - checkbox_agreement_html: Sono d'accordo con le regole del server ed i termini di servizio - checkbox_agreement_without_rules_html: Accetto i termini di servizio delete_account: Elimina account delete_account_html: Se desideri cancellare il tuo account, puoi farlo qui. Ti sarà chiesta conferma. description: @@ -945,6 +936,7 @@ it: migrate_account: Sposta ad un account differente migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi configurarlo qui. or_log_in_with: Oppure accedi con + privacy_policy_agreement_html: Ho letto e accetto l'informativa sulla privacy providers: cas: CAS saml: SAML @@ -952,12 +944,18 @@ it: registration_closed: "%{instance} non accetta nuovi membri" resend_confirmation: Invia di nuovo le istruzioni di conferma reset_password: Resetta la password + rules: + preamble: Questi sono impostati e applicati dai moderatori di %{domain}. + title: Alcune regole di base. security: Credenziali set_new_password: Imposta una nuova password setup: email_below_hint_html: Se l'indirizzo e-mail sottostante non è corretto, puoi cambiarlo qui e ricevere una nuova e-mail di conferma. email_settings_hint_html: L'email di conferma è stata inviata a %{email}. Se l'indirizzo e-mail non è corretto, puoi modificarlo nelle impostazioni dell'account. title: Configurazione + sign_up: + preamble: Con un account su questo server Mastodon, sarai in grado di seguire qualsiasi altra persona sulla rete, indipendentemente da dove sia ospitato il suo account. + title: Lascia che ti configuriamo su %{domain}. status: account_status: Stato dell'account confirming: In attesa che la conferma e-mail sia completata. @@ -966,7 +964,6 @@ it: redirecting_to: Il tuo account è inattivo perché attualmente reindirizza a %{acct}. view_strikes: Visualizza le sanzioni precedenti prese nei confronti del tuo account too_fast: Modulo inviato troppo velocemente, riprova. - trouble_logging_in: Problemi di accesso? use_security_key: Usa la chiave di sicurezza authorize_follow: already_following: Stai già seguendo questo account @@ -1024,10 +1021,6 @@ it: more_details_html: Per maggiori dettagli, vedi la politica di privacy. username_available: Il tuo nome utente sarà nuovamente disponibile username_unavailable: Il tuo nome utente rimarrà non disponibile - directories: - directory: Directory dei profili - explanation: Scopri utenti in base ai loro interessi - explore_mastodon: Esplora %{title} disputes: strikes: action_taken: Azione intrapresa @@ -1106,29 +1099,60 @@ it: public: Timeline pubbliche thread: Conversazioni edit: + add_keyword: Aggiungi parola chiave + keywords: Parole chiave + statuses: Post singoli + statuses_hint_html: Questo filtro si applica a singoli post indipendentemente dal fatto che corrispondano alle parole chiave qui sotto. Rivedi o rimuovi i post dal filtro. title: Modifica filtro errors: + deprecated_api_multiple_keywords: Questi parametri non possono essere modificati da questa applicazione perché si applicano a più di una parola chiave che fa da filtro. Utilizzare un'applicazione più recente o l'interfaccia web. invalid_context: Contesto mancante o non valido - invalid_irreversible: Il filtraggio irreversibile funziona solo nei contesti di home o notifiche index: + contexts: Filtri in %{contexts} delete: Cancella empty: Non hai alcun filtro. + expires_in: Scade tra %{distance} + expires_on: Scade il %{date} + keywords: + one: "%{count} parola chiave" + other: "%{count} parole chiave" + statuses: + one: "%{count} post" + other: "%{count} post" + statuses_long: + one: "%{count} singolo post nascosto" + other: "%{count} singoli post nascosti" title: Filtri new: + save: Salva nuovo filtro title: Aggiungi filtro + statuses: + back_to_filter: Torna al filtro + batch: + remove: Togli dal filtro + index: + hint: Questo filtro si applica a singoli post indipendentemente da altri criteri. Puoi aggiungere più post a questo filtro dall'interfaccia Web. + title: Post filtrati footer: - developers: Sviluppatori - more: Altro… - resources: Risorse trending_now: Di tendenza ora generic: all: Tutto + all_items_on_page_selected_html: + one: "%{count} elemento su questa pagina è selezionato." + other: Tutti i %{count} elementi su questa pagina sono selezionati. + all_matching_items_selected_html: + one: "%{count} elemento corrispondente alla tua ricerca è selezionato." + other: Tutti i %{count} elementi corrispondenti alla tua ricerca sono selezionati. changes_saved_msg: Modifiche effettuate con successo! copy: Copia delete: Cancella + deselect: Deseleziona tutto none: Nessuno order_by: Ordina per save_changes: Salva modifiche + select_all_matching_items: + one: Seleziona %{count} elemento corrispondente alla tua ricerca. + other: Seleziona tutti gli elementi %{count} corrispondenti alla tua ricerca. today: oggi validation_errors: one: Qualcosa ancora non va bene! Per favore, controlla l'errore qui sotto @@ -1152,7 +1176,6 @@ it: following: Lista dei seguiti muting: Lista dei silenziati upload: Carica - in_memoriam_html: In Memoriam. invites: delete: Disattiva expired: Scaduto @@ -1231,21 +1254,14 @@ it: carry_blocks_over_text: Questo utente si è spostato da %{acct} che hai bloccato. carry_mutes_over_text: Questo utente si è spostato da %{acct} che hai silenziato. copy_account_note_text: 'Questo utente si è spostato da %{acct}, ecco le tue note precedenti su di loro:' + navigation: + toggle_menu: Cambia menu notification_mailer: admin: + report: + subject: "%{name} ha inviato una segnalazione" sign_up: subject: "%{name} si è iscritto" - digest: - action: Vedi tutte le notifiche - body: Ecco un breve riassunto di quello che ti sei perso dalla tua ultima visita del %{since} - mention: "%{name} ti ha menzionato:" - new_followers_summary: - one: E inoltre hai ricevuto un nuovo seguace mentre eri assente! Urrà! - other: Inoltre, hai acquisito %{count} nuovi seguaci mentre eri assente! Incredibile! - subject: - one: "1 nuova notifica dalla tua ultima visita 🐘" - other: "%{count} nuove notifiche dalla tua ultima visita 🐘" - title: In tua assenza… favourite: body: 'Il tuo status è stato apprezzato da %{name}:' subject: "%{name} ha apprezzato il tuo status" @@ -1317,6 +1333,8 @@ it: other: Altro posting_defaults: Predefinite di pubblicazione public_timelines: Timeline pubbliche + privacy_policy: + title: Politica sulla privacy reactions: errors: limit_reached: Raggiunto il limite di reazioni diverse @@ -1339,22 +1357,7 @@ it: remove_selected_follows: Smetti di seguire gli utenti selezionati status: Stato dell'account remote_follow: - acct: Inserisci il tuo username@dominio da cui vuoi seguire questo utente missing_resource: Impossibile trovare l'URL di reindirizzamento richiesto per il tuo account - no_account_html: Non hai un account? Puoi iscriverti qui - proceed: Conferma - prompt: 'Stai per seguire:' - reason_html: "Perchè questo passo è necessario? %{instance} potrebbe non essere il server nel quale tu sei registrato, quindi dobbiamo reindirizzarti prima al tuo server." - remote_interaction: - favourite: - proceed: Continua per segnare come apprezzato - prompt: 'Vuoi segnare questo post come apprezzato:' - reblog: - proceed: Continua per condividere - prompt: 'Vuoi condividere questo post:' - reply: - proceed: Continua per rispondere - prompt: 'Vuoi rispondere a questo post:' reports: errors: invalid_rules: non fa riferimento a regole valide @@ -1372,7 +1375,7 @@ it: browser: Browser browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1386,7 +1389,7 @@ it: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Sessione corrente description: "%{browser} su %{platform}" @@ -1395,7 +1398,7 @@ it: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry + blackberry: BlackBerry chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS @@ -1526,92 +1529,6 @@ it: too_late: È troppo tardi per fare appello contro questa sanzione tags: does_not_match_previous_name: non corrisponde al nome precedente - terms: - body_html: | -

      Politica della Privacy

      -

      Che informazioni raccogliamo?

      - -
        -
      • Informazioni di base del profilo: Se ti registri su questo server, ti potrebbe venir chiesto di inserire un nome utente, un indirizzo e-mail ed una password. Potresti anche inserire informazioni aggiuntive del profilo come un nome a schermo ed una biografia e caricare una foto profilo ed un'immagine di intestazione. Il nome utente, il nome a schermo, la biografia, la foto profilo e l'immagine di intestazione, sono sempre elencati pubblicamente.
      • -
      • I post, i seguiti ed altre informazioni pubbliche: L'elenco di persone che segui viene elencata pubblicamente, la stessa cosa è vera per i tuoi seguaci. Quando invii un messaggio, la data e l'orario sono memorizzati così come l'applicazione da cui hai inviato il messaggio. - I messaggi potrebbero contenere allegati media, come immagini e video. I post pubblici e non elencati sono disponibili pubblicamente. Quando mostri un post sul tuo profilo, anche questo diventa disponibile pubblicamente. I tuoi post sono consegnati ai tuoi seguaci, in alcuni casi significa che sono consegnati a server differenti e che lì sono memorizzate delle copie. Quando elimini i post, anche questo viene notificato ai tuoi seguaci. L'azione di ripubblicare o preferire un altro post è sempre pubblica.
      • -
      • Post diretti e solo per i seguaci: Tutti i post sono archiviati ed elaborati sul server. I post solo per seguaci sono consegnati ai tuoi seguaci ed agli utenti che vi hai menzionato, ed i post diretti sono consegnati solo agli utenti in essi menzionati. In alcuni casi significa che sono consegnati a server differenti e che lì sono memorizzate delle copie. Compiamo uno sforzo in buona fede per limitare l'accesso a questi post solo a persone autorizzate, ma gli altri server potrebbero non riuscire a fare ciò. Dunque, è importante rivedere i server a cui appartengono i tuoi seguaci. Potresti attivare/disattivare un'opzione per approvare e rifiutare i nuovi seguaci manualmente nelle impostazioni. - Sei pregato di tenere a mente che gli operatori del server e di ogni server ricevente potrebbero visualizzare tali messaggi e che i riceventi potrebbero fotografarli, copiarlo o altrimenti ricondividerli. Non condividere alcuna informazione pericolosa su Mastodon.
      • -
      • IP ed altri metadati: Quando accedi, registriamo l'indirizzo IP da cui accedi, così come il nome della tua applicazione browser. Tutte le sessioni accedute sono disponibili per la tua revisione e revoca nelle impostazioni. L'ultimo indirizzo IP usato è memorizzato anche fino a 12 mesi. Potremmo anche trattenere i registri del server che includono l'indirizzo IP di ogni richiesta al nostro server.
      • -
      - -
      - -

      Per cosa usiamo le tue informazioni

      - -

      Ogni informazioni che raccogliamo da te potrebbe essere usata nei modi seguenti:

      - -
        -
      • Per fornire la funzionalità principale di Mastodon. Puoi interagire solo con il contenuto di altre persone ed postare i tuoi contenuti quando sei acceduto. Per esempio, potresti seguire altre persone per vedere i loro post combinati nella timeline principale personalizzata e tua.
      • -
      • Per aiutare a moderare la comunità, per esempio comparando il tuo indirizzo IP con altri noti per determinare evasioni dei ban o altre violazioni.
      • -
      • L'indirizzo email che fornisci potrebbe essere usato per inviarti informazioni, notifiche sull'interazione di altre persone con i tuoi contenuti o inviarti messaggi e per rispondere a interrogativi e/o altre richieste o domande.
      • -
      - -
      - -

      Come proteggiamo le tue informazioni

      - -

      Implementiamo una varietà di misure di sicurezza per mantenere la sicurezza delle tue informazioni personali quando inserisci, invii o accedi alle tue informazioni personali. Tra le altre cose, la tua sessione del browser, così come il tuo traffico tra le tue applicazioni e le API, sono assicurate con SSL e la tua password è in hash usando un forte algoritmo a singolo metodo. Puoi abilitare l'autenticazione a due fattori per assicurare ulteriormente il tuo profilo.

      - -
      - -

      Qual è la nostra politica di ritenzione dei dati?

      - -

      Faremo un grande sforzo in buona fede per:

      - -
        -
      • Tratteniamo i registri del server contenenti l'indirizzo IP di tutte le richieste in questo server, in cui i registri sono mantenuti, per non più di 90 giorni.
      • -
      • Tratteniamo gli indirizzi IP associati con utenti registrati da non oltre 12 mesi.
      • -
      - -

      Puoi richiedere e scaricare un archivio del tuo contenuto, inclusi i tuoi post, allegati media, foto profilo ed immagine di intestazione.

      - -

      Puoi eliminare irreversibilmente il tuo profilo in ogni momento.

      - -
      - -

      Usiamo i cookie

      - -

      Sì. I cookie sono piccoli file che un sito o il suo fornitore dei servizi trasferisce all'hard drive del tuo computer tramite il tuo browser web (se acconsenti). Questi cookie abilitano il sito a riconoscere il tuo browser e, se hai un profilo registrato, lo associano con il tuo profilo registrato.

      - -

      Usiamo i cookie per comprendere e salvare le vostre preferenze per visite future.

      - -
      - -

      Diffondiamo alcuna informazione a terze parti?

      - -

      Non vendiamo, non scambiamo o trasferiamo altrimenti a terze parti le tue informazioni personalmente identificabili. Questo non include terze parti fidate che ci assistono nell'operare il nostro sito, nel condurre il nostro business o nel servirti, finché queste parti acconsentono a mantenere queste informazioni confidenziali. potremmo anche rilasciare le tue informazioni quando crediamo che il rilascio sia appropriato e soddisfi la legge, si applichi alle nostre politiche del sito o protegga noi o i diritti, la proprietà o la sicurezza di altri.

      - -

      Il tuo contenuto pubblico potrebbe essere scaricato da altri server nella rete. I tuoi post pubblici e per soli seguaci sono consegnati ai server dove risiedono i seguaci ed i messaggi diretti sono consegnati ai server dei destinatari, finché questi seguaci o destinatari risiedono su un server differente da questo.

      - -

      Quando autorizzi un'applicazione ad usare il tuo profilo, in base allo scopo dei permessi che approvi, potrebbe accedere alle tue informazioni del profilo pubbliche, l'elenco di chi segui, i tuoi seguaci, i tuoi elenchi, tutti i tuoi post ed i tuoi preferiti. Le applicazioni non possono mai accedere al tuo indirizzo e-mail o alla tua password.

      - -
      - -

      Uso del sito da bambini

      - -

      Se questo server è in UE o nell'EEA: Il nostro sito, i prodotti ed i servizi sono tutti diretti a persone che abbiano almeno 16 anni. Se hai meno di 16 anni, per i requisiti del GDPR - (General Data Protection Regulation) non usare questo sito.

      - -

      Se questo server è negli USA: Il nostro sito, i prodotti ed i servizi sono tutti diretti a persone che abbiano almeno 13 anni. Se hai meno di 13 anni, per i requisiti del COPPA (Children's Online Privacy Protection Act) non usare questo sito.

      - -

      I requisiti di legge possono essere diversi se questo server è in un'altra giurisdizione.

      - -
      - -

      Modifiche alla nostra Politica della Privacy

      - -

      Se decidiamo di modificare la nostra politica della privacy, posteremo queste modifiche su questa pagina.

      - -

      Questo documento è CC-BY-SA. L'ultimo aggiornamento è del 7 Marzo, 2018.

      - -

      Adattato originalmente dal Discorso Politica della Privacy.

      - title: "%{instance} Termini di servizio e politica della privacy" themes: contrast: Mastodon (contrasto elevato) default: Mastodon (scuro) @@ -1690,20 +1607,13 @@ it: suspend: Account sospeso welcome: edit_profile_action: Configura profilo - edit_profile_step: Puoi personalizzare il tuo profilo caricando un avatar, un'intestazione, modificando il tuo nome visualizzato e così via. Se vuoi controllare i tuoi nuovi seguaci prima di autorizzarli a seguirti, puoi bloccare il tuo account. + edit_profile_step: Puoi personalizzare il tuo profilo caricando un'immagine del profilo, cambiare il tuo nome e altro ancora. Puoi scegliere di esaminare i nuovi seguaci prima che loro siano autorizzati a seguirti. explanation: Ecco alcuni suggerimenti per iniziare final_action: Inizia a postare - final_step: 'Inizia a postare! Anche se non hai seguaci, i tuoi messaggi pubblici possono essere visti da altri, ad esempio nelle timeline locali e negli hashtag. Se vuoi puoi presentarti con l''hashtag #introductions.' + final_step: 'Inizia a pubblicare! Anche senza seguaci, i tuoi post pubblici possono essere visti da altri, ad esempio sulla timeline locale o negli hashtag. Potresti presentarti con l''hashtag #presentazione.' full_handle: Il tuo nome utente completo full_handle_hint: Questo è ciò che diresti ai tuoi amici in modo che possano seguirti o contattarti da un altro server. - review_preferences_action: Cambia preferenze - review_preferences_step: Dovresti impostare le tue preferenze, ad esempio quali email vuoi ricevere oppure il livello predefinito di privacy per i tuoi post. Se le immagini in movimento non ti danno fastidio, puoi abilitare l'animazione automatica delle GIF. subject: Benvenuto/a su Mastodon - tip_federated_timeline: La timeline federata visualizza uno dopo l'altro i messaggi pubblicati su Mastodon. Ma comprende solo gli utenti seguiti dai tuoi vicini, quindi non è completa. - tip_following: Per impostazione predefinita, segui gli amministratori del tuo server. Per trovare utenti più interessanti, dà un'occhiata alle timeline locale e federata. - tip_local_timeline: La timeline locale visualizza uno dopo l'altro i messaggi degli utenti di %{instance}. Questi sono i tuoi vicini! - tip_mobile_webapp: Se il tuo browser mobile ti dà la possibilità di aggiungere Mastodon allo schermo, puoi ricevere le notifiche. Funziona un po' come un'app natova! - tips: Suggerimenti title: Benvenuto a bordo, %{name}! users: follow_limit_reached: Non puoi seguire più di %{limit} persone diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 54dcbc9fa6d087..a60f0298bc8b2e 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1,88 +1,25 @@ --- ja: about: - about_hashtag_html: ハッシュタグ #%{hashtag} の公開投稿です。どこか連合に参加しているSNS上にアカウントを作れば、会話に参加することができます。 about_mastodon_html: Mastodonは、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。 - about_this: 詳細情報 - active_count_after: 人がアクティブ - active_footnote: 月間アクティブユーザー数 (MAU) - administered_by: '管理者:' - api: API - apps: アプリ - apps_platforms: iOSやAndroidなど、各種環境から利用できます - browse_directory: ディレクトリから気になる人を探しましょう - browse_local_posts: このサーバーの公開タイムラインをご覧ください - browse_public_posts: Mastodonの公開ライブストリームをご覧ください - contact: 連絡先 contact_missing: 未設定 contact_unavailable: N/A - continue_to_web: アプリで続ける - discover_users: ユーザーを見つける - documentation: ドキュメント - federation_hint_html: "%{instance}のアカウントひとつでどんなMastodon互換サーバーのユーザーでもフォローできるでしょう。" - get_apps: モバイルアプリを試す hosted_on: Mastodon hosted on %{domain} - instance_actor_flash: "このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。 \n" - learn_more: もっと詳しく - logged_in_as_html: "%{username}としてログインしています。" - logout_before_registering: 既にログインしています。 - privacy_policy: プライバシーポリシー - rules: サーバーのルール - rules_html: 'このMastodonサーバーには、アカウントの所持にあたって従うべきルールが設定されています。概要は以下の通りです:' - see_whats_happening: やりとりを見てみる - server_stats: 'サーバー統計:' - source_code: ソースコード - status_count_after: - other: 投稿 - status_count_before: 投稿数 - tagline: Follow friends and discover new ones - terms: 利用規約 - unavailable_content: 制限中のサーバー - unavailable_content_description: - domain: サーバー - reason: 制限理由 - rejecting_media: 'これらのサーバーからのメディアファイルは処理されず、保存や変換もされません。サムネイルも表示されません。表示するにはクリックしてそのサーバーに直接アクセスする必要があります:' - rejecting_media_title: メディアを拒否しているサーバー - silenced: 'これらのサーバーからの投稿は公開タイムラインと会話から隠されます。また該当するユーザーからの通知は相手をフォローしている場合を除き表示されません:' - silenced_title: サイレンス済みのサーバー - suspended: 'これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません:' - suspended_title: 停止済みのサーバー - unavailable_content_html: 通常Mastodonでは連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。 - user_count_after: - other: 人 - user_count_before: ユーザー数 - what_is_mastodon: Mastodonとは? + title: このサーバーについて accounts: - choices_html: "%{name}によるおすすめ:" - endorsements_hint: あなたがフォローしている中でおすすめしたい人をここで紹介できます。 - featured_tags_hint: 特定のハッシュタグをここに表示できます。 follow: フォロー followers: other: フォロワー following: フォロー中 instance_actor_flash: このアカウントは、個々のユーザーではなく、サーバー自体を表すために使用される仮想のユーザーです。 連合のために使用されるため、停止しないで下さい。 - joined: "%{date}に登録" last_active: 最後の活動 link_verified_on: このリンクの所有権は%{date}に確認されました - media: メディア - moved_html: "%{name}さんは%{new_profile_link}に引っ越しました:" - network_hidden: この情報は利用できません nothing_here: 何もありません! - people_followed_by: "%{name}さんがフォロー中のアカウント" - people_who_follow: "%{name}さんをフォロー中のアカウント" pin_errors: following: おすすめしたい人はあなたが既にフォローしている必要があります posts: other: 投稿 posts_tab_heading: 投稿 - posts_with_replies: 投稿と返信 - roles: - admin: Admin - bot: Bot - group: Group - moderator: Mod - unavailable: プロフィールは利用できません - unfollow: フォロー解除 admin: account_actions: action: アクションを実行 @@ -99,12 +36,17 @@ ja: avatar: アイコン by_domain: ドメイン change_email: - changed_msg: メールアドレスの変更に成功しました! + changed_msg: メールアドレスを変更しました! current_email: 現在のメールアドレス label: メールアドレスを変更 new_email: 新しいメールアドレス submit: メールアドレスの変更 title: "%{username}さんのメールアドレスを変更" + change_role: + changed_msg: ロールを変更しました! + label: ロールを変更 + no_role: ロールがありません + title: "%{username}さんのロールを変更" confirm: 確認 confirmed: 確認済み confirming: 確認中 @@ -148,6 +90,7 @@ ja: active: アクティブ all: すべて pending: 承認待ち + silenced: 制限 suspended: 停止済み title: モデレーション moderation_notes: モデレーションメモ @@ -155,6 +98,7 @@ ja: most_recent_ip: 直近のIP no_account_selected: 何も選択されていないため、変更されていません no_limits_imposed: 制限なし + no_role_assigned: ロールが割り当てられていません not_subscribed: 購読していない pending: 承認待ち perform_full_suspension: 活動を完全に停止させる @@ -180,12 +124,7 @@ ja: reset: リセット reset_password: パスワード再設定 resubscribe: 再講読 - role: 役割 - roles: - admin: 管理者 - moderator: モデレーター - staff: スタッフ - user: ユーザー + role: ロール search: 検索 search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー search_same_ip: 同じIPのユーザーを検索 @@ -228,17 +167,21 @@ ja: approve_user: ユーザーの承認 assigned_to_self_report: 通報の担当者に設定 change_email_user: ユーザーのメールアドレスを変更 + change_role_user: ユーザーのロールを変更 confirm_user: ユーザーの確認 create_account_warning: 警告を作成 create_announcement: お知らせを作成 + create_canonical_email_block: メールブロックを作成 create_custom_emoji: カスタム絵文字を作成 create_domain_allow: 連合を許可 create_domain_block: ドメインブロックを作成 create_email_domain_block: メールドメインブロックを作成 create_ip_block: IPルールを作成 create_unavailable_domain: 配送できないドメインを作成 + create_user_role: ロールを作成 demote_user: ユーザーを降格 destroy_announcement: お知らせを削除 + destroy_canonical_email_block: メールブロックを削除 destroy_custom_emoji: カスタム絵文字を削除 destroy_domain_allow: 連合許可を外す destroy_domain_block: ドメインブロックを削除 @@ -247,6 +190,7 @@ ja: destroy_ip_block: IPルールを削除 destroy_status: 投稿を削除 destroy_unavailable_domain: 配送できないドメインを削除 + destroy_user_role: ロールを削除 disable_2fa_user: 二要素認証を無効化 disable_custom_emoji: カスタム絵文字を無効化 disable_sign_in_token_auth_user: ユーザーのメールトークン認証を無効にする @@ -260,6 +204,7 @@ ja: reject_user: ユーザーを拒否 remove_avatar_user: アイコンを削除 reopen_report: 未解決に戻す + resend_user: 確認メールを再送信する reset_password_user: パスワードをリセット resolve_report: 通報を解決済みにする sensitive_account: アカウントのメディアを閲覧注意にマーク @@ -273,24 +218,30 @@ ja: update_announcement: お知らせを更新 update_custom_emoji: カスタム絵文字を更新 update_domain_block: ドメインブロックを更新 + update_ip_block: IPルールを更新 update_status: 投稿を更新 + update_user_role: ロールを更新 actions: approve_appeal_html: "%{name}さんが%{target}さんからの抗議を承認しました" approve_user_html: "%{target}から登録された%{name}さんを承認しました" assigned_to_self_report_html: "%{name}さんが通報 %{target}を自身の担当に割り当てました" change_email_user_html: "%{name}さんが%{target}さんのメールアドレスを変更しました" + change_role_user_html: "%{name}さんが%{target}さんのロールを変更しました" confirm_user_html: "%{name}さんが%{target}さんのメールアドレスを確認済みにしました" create_account_warning_html: "%{name}さんが%{target}さんに警告メールを送信しました" create_announcement_html: "%{name}さんが新しいお知らせ %{target}を作成しました" + create_canonical_email_block_html: "%{name} さんがハッシュ %{target} を持つメールをブロックしました。" create_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を追加しました" create_domain_allow_html: "%{name}さんが%{target}の連合を許可しました" create_domain_block_html: "%{name}さんがドメイン %{target}をブロックしました" create_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックに追加しました" create_ip_block_html: "%{name}さんがIP %{target}のルールを作成しました" create_unavailable_domain_html: "%{name}がドメイン %{target}への配送を停止しました" + create_user_role_html: "%{name}さんがロール『%{target}』を作成しました" demote_user_html: "%{name}さんが%{target}さんを降格しました" destroy_announcement_html: "%{name}さんがお知らせ %{target}を削除しました" - destroy_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を削除しました" + destroy_canonical_email_block_html: "%{name} さんがハッシュ %{target} を持つメールのブロックを解除しました。" + destroy_custom_emoji_html: "%{name}さんがカスタム絵文字『%{target}』を削除しました" destroy_domain_allow_html: "%{name}さんが%{target}の連合許可を外しました" destroy_domain_block_html: "%{name}さんがドメイン %{target}のブロックを外しました" destroy_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックから外しました" @@ -298,6 +249,7 @@ ja: destroy_ip_block_html: "%{name}さんが IP %{target}のルールを削除しました" destroy_status_html: "%{name}さんが%{target}さんの投稿を削除しました" destroy_unavailable_domain_html: "%{name}がドメイン %{target}への配送を再開しました" + destroy_user_role_html: "%{name}さんがロール『%{target}』を削除しました" disable_2fa_user_html: "%{name}さんが%{target}さんの二要素認証を無効化しました" disable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を無効化しました" disable_sign_in_token_auth_user_html: "%{name}さんが%{target}さんのメールトークン認証を無効にしました" @@ -311,6 +263,7 @@ ja: reject_user_html: "%{target}から登録された%{name}さんを拒否しました" remove_avatar_user_html: "%{name}さんが%{target}さんのアイコンを削除しました" reopen_report_html: "%{name}さんが通報 %{target}を未解決に戻しました" + resend_user_html: "%{name} が %{target} の確認メールを再送信しました" reset_password_user_html: "%{name}さんが%{target}さんのパスワードをリセットしました" resolve_report_html: "%{name}さんが通報 %{target}を解決済みにしました" sensitive_account_html: "%{name}さんが%{target}さんのメディアを閲覧注意にマークしました" @@ -324,8 +277,10 @@ ja: update_announcement_html: "%{name}さんがお知らせ %{target}を更新しました" update_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を更新しました" update_domain_block_html: "%{name}さんが%{target}のドメインブロックを更新しました" + update_ip_block_html: "%{name} さんがIP %{target} のルールを更新しました" update_status_html: "%{name}さんが%{target}さんの投稿を更新しました" - deleted_status: "(削除済)" + update_user_role_html: "%{name}さんがロール『%{target}』を変更しました" + deleted_account: 削除されたアカウント empty: ログが見つかりませんでした filter_by_action: アクションでフィルター filter_by_user: ユーザーでフィルター @@ -369,6 +324,7 @@ ja: listed: 表示 new: title: 新規カスタム絵文字の追加 + no_emoji_selected: 何も選択されていないため、変更されていません not_permitted: この操作を実行する権限がありません。 overwrite: 上書き shortcode: ショートコード @@ -417,6 +373,7 @@ ja: destroyed_msg: ドメインブロックを外しました domain: ドメイン edit: ドメインブロックを編集 + existing_domain_block: あなたは既に%{name}さんに厳しい制限を課しています。 existing_domain_block_html: 既に%{name}に対して、より厳しい制限を課しています。先にその制限を解除する必要があります。 new: create: ブロックを作成 @@ -467,6 +424,8 @@ ja: unsuppress: おすすめフォローを復元 instances: availability: + description_html: + other: ドメインへの配信が %{count} 日失敗した場合、そのドメインからの配信を受信しない限り、それ以上の配信を行いません。 failure_threshold_reached: "%{date}に失敗のしきい値に達しました。" failures_recorded: other: "%{count}日間試行に失敗しました。" @@ -526,6 +485,7 @@ ja: total_followed_by_us: フォロー合計 total_reported: 通報合計 total_storage: 添付されたメディア + totals_time_period_hint_html: 以下に表示される合計には、すべての時間のデータが含まれています。 invites: deactivate_all: すべて無効化 filter: @@ -629,6 +589,65 @@ ja: unresolved: 未解決 updated_at: 更新日時 view_profile: プロフィールを表示 + roles: + add_new: ロールを追加 + assigned_users: + other: "%{count}人" + categories: + administration: 管理 + devops: 開発者 + invites: 招待 + moderation: モデレーション + special: スペシャル + delete: 削除 + description_html: "ユーザー ロールを使用すると、ユーザーがアクセスできる Mastodon の機能や領域をカスタマイズできます。" + edit: "『%{name}』のロールを編集" + everyone: デフォルトの権限 + everyone_full_description_html: これは、割り当てられたロールを持っていないものであっても、 すべてのユーザー に影響を与える 基本ロールです。 他のすべてのロールは、そこから権限を継承します。 + permissions_count: + other: "%{count}件の権限" + privileges: + administrator: 管理者 + administrator_description: この権限を持つユーザーはすべての権限をバイパスします + delete_user_data: ユーザーデータの削除 + delete_user_data_description: ユーザーは、遅滞なく他のユーザーのデータを削除することができます + invite_users: ユーザーを招待 + invite_users_description: ユーザーが新しい人を招待できるようにします + manage_announcements: お知らせの管理 + manage_announcements_description: ユーザーがアナウンスを管理できるようにします + manage_appeals: 抗議の管理 + manage_appeals_description: ユーザーはモデレーションアクションに対する抗議を確認できます + manage_blocks: ブロックの管理 + manage_blocks_description: ユーザーがメールプロバイダとIPアドレスをブロックできるようにします + manage_custom_emojis: カスタム絵文字を管理 + manage_custom_emojis_description: ユーザーがサーバー上のカスタム絵文字を管理できるようにします + manage_federation: 連合の管理 + manage_federation_description: ユーザーが他のドメインとの連合をブロックまたは許可したり、配信を制御したりできます。 + manage_invites: 招待を管理 + manage_invites_description: 招待リンクの閲覧・解除を可能にする。 + manage_reports: レポートの管理 + manage_reports_description: ユーザーがレポートを確認したり、モデレーションアクションを実行したりできます。 + manage_roles: ロールの管理 + manage_roles_description: ユーザーが自分より下の役割を管理し、割り当てることができます。 + manage_rules: ルールの管理 + manage_rules_description: ユーザーがサーバールールを変更できるようにします + manage_settings: 設定の管理 + manage_settings_description: ユーザーがサイト設定を変更できるようにします + manage_taxonomies: 分類の管理 + manage_taxonomies_description: トレンドコンテンツの確認とハッシュタグの設定の更新 + manage_user_access: アクセス権を管理 + manage_user_access_description: 他のユーザーの2段階認証を無効にしたり、メールアドレスを変更したり、パスワードをリセットしたりすることができます。 + manage_users: ユーザーの管理 + manage_users_description: 他のユーザーの詳細情報を閲覧し、モデレーションを行うことができます。 + manage_webhooks: Webhookの管理 + manage_webhooks_description: 管理者イベントのWebhookを設定できます。 + view_audit_log: 監査ログの表示 + view_audit_log_description: ユーザーがサーバー上で管理アクションの履歴を表示できるようにします + view_dashboard: ダッシュボードの表示 + view_dashboard_description: ユーザーがダッシュボードやさまざまなメトリクスにアクセスできるようにします + view_devops: 開発者 + view_devops_description: Sidekiq と pgHero ダッシュボードにアクセスできるようにします + title: ロール rules: add_new: ルールを追加 delete: 削除 @@ -637,108 +656,67 @@ ja: empty: サーバーのルールが定義されていません。 title: サーバーのルール settings: - activity_api_enabled: - desc_html: 週ごとのローカルに投稿された投稿数、アクティブなユーザー数、新規登録者数 - title: ユーザーアクティビティに関する統計を公開する - bootstrap_timeline_accounts: - desc_html: 複数のユーザー名を指定する場合コンマで区切ります。おすすめに表示されます。 - title: 新規ユーザーにおすすめするアカウント - contact_information: - email: ビジネスメールアドレス - username: 連絡先ユーザー名 - custom_css: - desc_html: 全ページに適用されるCSSの編集 - title: カスタムCSS - default_noindex: - desc_html: この設定を変更していない全ユーザーに影響します - title: デフォルトで検索エンジンによるインデックスを拒否する + about: + manage_rules: サーバーのルールを管理 + preamble: サーバーの運営、管理、資金調達の方法について、詳細な情報を提供します。 + rules_hint: ユーザーが守るべきルールのための専用エリアがあります。 + title: このサーバーについて + appearance: + preamble: ウェブインターフェースをカスタマイズします。 + title: 外観 + branding: + preamble: サーバーのブランディングは、ネットワーク上の他のサーバーと区別するためのものです。この情報は、Mastodon の Web インターフェース、ネイティブアプリケーション、他の Web サイトやメッセージングアプリのリンクプレビューなど、様々な所で表示される可能性があります。このため、明確で短く、簡潔に記載することをおすすめします。 + title: ブランディング + content_retention: + preamble: ユーザーが生成したコンテンツがどのように Mastodon に保存されるかを管理します。 + title: コンテンツの保持 + discovery: + follow_recommendations: おすすめフォロー + preamble: Mastodon を知らないユーザーを取り込むには、興味深いコンテンツを浮上させることが重要です。サーバー上で様々なディスカバリー機能がどのように機能するかを制御します。 + profile_directory: ディレクトリ + public_timelines: 公開タイムライン + title: 見つける + trends: トレンド domain_blocks: all: 誰にでも許可 disabled: 誰にも許可しない - title: ドメインブロックを表示 users: ログイン済みローカルユーザーのみ許可 - domain_blocks_rationale: - title: コメントを表示 - hero: - desc_html: フロントページに表示されます。サイズは600x100px以上推奨です。未設定の場合、標準のサムネイルが使用されます - title: ヒーローイメージ - mascot: - desc_html: 複数のページに表示されます。サイズは293x205px以上推奨です。未設定の場合、標準のマスコットが使用されます - title: マスコットイメージ - peers_api_enabled: - desc_html: 連合内でこのサーバーが遭遇したドメインの名前 - title: 接続しているサーバーのリストを公開する - preview_sensitive_media: - desc_html: 他のウェブサイトにリンクを貼った際、メディアが閲覧注意としてマークされていてもサムネイルが表示されます - title: OpenGraphによるプレビューで閲覧注意のメディアも表示する - profile_directory: - desc_html: ユーザーが見つかりやすくできるようになります - title: ディレクトリを有効にする registrations: - closed_message: - desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます - title: 新規登録停止時のメッセージ - deletion: - desc_html: 誰でも自分のアカウントを削除できるようにします - title: アカウント削除を受け付ける - min_invite_role: - disabled: 誰にも許可しない - title: 招待の作成を許可 - require_invite_text: - desc_html: アカウント登録が承認制の場合、「意気込みをお聞かせください」のテキストを必須入力にする - title: 新規ユーザー登録時の理由を必須入力にする + preamble: あなたのサーバー上でアカウントを作成できるユーザーを制御します。 + title: アカウント作成 registrations_mode: modes: approved: 登録には承認が必要 none: 誰にも許可しない open: 誰でも登録可 - title: 新規登録 - show_known_fediverse_at_about_page: - desc_html: チェックを外すと、ランディングページからリンクされた公開タイムラインにローカルの公開投稿のみ表示します。 - title: 公開タイムラインに連合先のコンテンツも表示する - show_staff_badge: - desc_html: ユーザーページにスタッフのバッジを表示します - title: スタッフバッジを表示する - site_description: - desc_html: フロントページへの表示に使用される紹介文です。このMastodonサーバーを特徴付けることやその他重要なことを記述してください。HTMLタグ、特に<a><em>が使えます。 - title: サーバーの説明 - site_description_extended: - desc_html: あなたのサーバーにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます - title: カスタム詳細説明 - site_short_description: - desc_html: サイドバーとmetaタグに表示されます。Mastodonとは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。 - title: 短いサーバーの説明 - site_terms: - desc_html: 独自のプライバシーポリシーや利用規約、その他の法的根拠を記述できます。HTMLタグが使えます - title: カスタム利用規約 - site_title: サーバーの名前 - thumbnail: - desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です - title: サーバーのサムネイル - timeline_preview: - desc_html: ランディングページに公開タイムラインへのリンクを表示し、認証なしでの公開タイムラインへのAPIアクセスを許可します - title: 公開タイムラインへの未認証のアクセスを許可する - title: サイト設定 - trendable_by_default: - desc_html: 表示を拒否していないハッシュタグに影響します - title: 審査前のハッシュタグのトレンドへの表示を許可する - trends: - desc_html: 現在トレンドになっている承認済みのハッシュタグを公開します - title: トレンドタグを有効にする + title: サーバー設定 site_uploads: delete: ファイルを削除 destroyed_msg: ファイルを削除しました! statuses: + account: 作成者 + application: アプリ back_to_account: アカウントページに戻る back_to_report: 通報ページに戻る batch: remove_from_report: 通報から削除 report: 通報 deleted: 削除済み + favourites: お気に入り + history: 更新履歴 + in_reply_to: 返信先 + language: 言語 media: title: メディア + metadata: メタデータ no_status_selected: 何も選択されていないため、変更されていません + open: 投稿を開く + original_status: オリジナルの投稿 + reblogs: ブースト + status_changed: 投稿を変更しました title: 投稿一覧 + trending: トレンド + visibility: 公開範囲 with_media: メディアあり strikes: actions: @@ -778,6 +756,9 @@ ja: description_html: これらは、多くのユーザーに共有されているリンクです。あなたのユーザーが世の中の動きを知るのに役立ちます。あなたが公開者を承認するまで、リンクは一般に表示されません。また、個別のリンクの許可・拒否も可能です。 disallow: リンクの拒否 disallow_provider: 発行者の拒否 + no_link_selected: 何も選択されていないため、変更されていません + publishers: + no_publisher_selected: 何も選択されていないため、変更されていません shared_by_over_week: other: 週間%{count}人に共有されました title: トレンドリンク @@ -793,8 +774,13 @@ ja: statuses: allow: 掲載を許可 allow_account: 投稿者を許可 + description_html: これらは、このサーバーが知っている、たくさんシェアされ、お気に入り登録されている投稿です。新しいユーザーや久しぶりにアクセスするユーザーがフォローする人を探すのに役立ちます。あなたが投稿者を承認し、投稿者が許可するまで、表示されることはありません。また、個別の投稿を許可または拒否することもできます。 disallow: 掲載を拒否 disallow_account: 投稿者を拒否 + no_status_selected: 何も選択されていないため、変更されていません + not_discoverable: 投稿者は発見可能であることに同意していません + shared_by: + other: "%{friendly_count} 回の共有、お気に入り" title: トレンド投稿 tags: current_score: 現在のスコア %{score} @@ -806,6 +792,7 @@ ja: tag_uses_measure: 合計利用数 description_html: これらは、多くの投稿に使用されているハッシュタグです。あなたのユーザーが、人々が今一番話題にしていることを知るのに役立ちます。あなたが承認するまで、ハッシュタグは一般に表示されません。 listable: おすすめに表示する + no_tag_selected: 何も選択されていないため、変更されていません not_listable: おすすめに表示しない not_trendable: トレンドに表示しない not_usable: 使用を禁止 @@ -825,6 +812,25 @@ ja: edit_preset: プリセット警告文を編集 empty: まだプリセット警告文が作成されていません。 title: プリセット警告文を管理 + webhooks: + add_new: エンドポイントを追加 + delete: 削除 + description_html: "Webhook により、Mastodon は選択されたイベントのリアルタイム通知をアプリケーションにプッシュします。これにより、アプリケーションは自動的に処理を行うことができます。" + disable: 無効化 + disabled: 無効 + edit: エンドポイントを編集 + empty: まだWebhookエンドポイントが設定されていません。 + enable: 有効化 + enabled: アクティブ + enabled_events: + other: "%{count}件の有効なイベント" + events: イベント + new: 新しいwebhook + rotate_secret: シークレットをローテートする + secret: シークレットに署名 + status: 投稿 + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -835,6 +841,7 @@ ja: sensitive: アカウントを閲覧注意にする silence: アカウントを制限する suspend: アカウントを停止する + body: "%{target} は %{date} に行われた %{action_taken_by} による %{type} のモデレーション判定に不服を申し立てています。内容は次の通りです:" next_steps: モデレーションの決定を取り消すために申し立てを承認するか、無視することができます。 subject: "%{instance}で%{username}さんからモデレーションへの申し立てが届きました。" new_pending_account: @@ -847,13 +854,12 @@ ja: new_trends: body: 以下の項目は、公開する前に審査が必要です。 new_trending_links: - no_approved_links: 承認されたトレンドリンクはありません。 title: トレンドリンク new_trending_statuses: - no_approved_statuses: 承認されたトレンド投稿はありません。 title: トレンド投稿 new_trending_tags: no_approved_tags: 承認されたトレンドハッシュタグはありません。 + requirements: 'これらの候補はいずれも %{rank} 位の承認済みトレンドハッシュタグのスコアを上回ります。現在 #%{lowest_tag_name} のスコアは %{lowest_tag_score} です。' title: トレンドハッシュタグ subject: "%{instance}で新しいトレンドが審査待ちです" aliases: @@ -885,16 +891,13 @@ ja: applications: created: アプリが作成されました destroyed: アプリが削除されました - invalid_url: URLが無効です regenerate_token: アクセストークンの再生成 token_regenerated: アクセストークンが再生成されました warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください! your_token: アクセストークン auth: - apply_for_account: 登録を申請する + apply_for_account: ウェイトリストを取得する change_password: パスワード - checkbox_agreement_html: サーバーのルールプライバシーポリシーに同意します - checkbox_agreement_without_rules_html: 利用規約に同意します delete_account: アカウントの削除 delete_account_html: アカウントを削除したい場合、こちらから手続きが行えます。削除する前に、確認画面があります。 description: @@ -913,6 +916,7 @@ ja: migrate_account: 別のアカウントに引っ越す migrate_account_html: 引っ越し先を明記したい場合はこちらで設定できます。 or_log_in_with: または次のサービスでログイン + privacy_policy_agreement_html: プライバシーポリシーを読み、同意します providers: cas: CAS saml: SAML @@ -920,12 +924,18 @@ ja: registration_closed: "%{instance}は現在、新規登録停止中です" resend_confirmation: 確認メールを再送する reset_password: パスワードを再発行 + rules: + preamble: これらは %{domain} モデレータによって設定され、実施されます。 + title: いくつかのルールがあります。 security: セキュリティ set_new_password: 新しいパスワード setup: email_below_hint_html: 下記のメールアドレスが間違っている場合、ここで変更することで新たに確認メールを受信できます。 email_settings_hint_html: 確認用のメールを%{email}に送信しました。メールアドレスが正しくない場合、以下より変更することができます。 title: セットアップ + sign_up: + preamble: この Mastodon サーバーのアカウントがあれば、ネットワーク上の他の人のアカウントがどこでホストされているかに関係なく、その人をフォローすることができます。 + title: さあ %{domain} でセットアップしましょう. status: account_status: アカウントの状態 confirming: メールアドレスの確認が完了するのを待っています。 @@ -934,7 +944,6 @@ ja: redirecting_to: アカウントは%{acct}に引っ越し設定されているため非アクティブになっています。 view_strikes: 過去のストライクを表示 too_fast: フォームの送信が速すぎます。もう一度やり直してください。 - trouble_logging_in: ログインできませんか? use_security_key: セキュリティキーを使用 authorize_follow: already_following: あなたは既にこのアカウントをフォローしています @@ -992,10 +1001,6 @@ ja: more_details_html: 詳しくはプライバシーポリシーをご覧ください。 username_available: あなたのユーザー名は再利用できるようになります username_unavailable: あなたのユーザー名は引き続き利用できません - directories: - directory: ディレクトリ - explanation: 関心を軸にユーザーを発見しよう - explore_mastodon: "%{title}を探索" disputes: strikes: action_taken: 取られた措置 @@ -1074,29 +1079,54 @@ ja: public: 公開タイムライン thread: 会話 edit: + add_keyword: キーワードを追加 + keywords: キーワード + statuses: 個別の投稿 + statuses_hint_html: このフィルタは、以下のキーワードにマッチするかどうかに関わらず、個々の投稿を選択して適用されます。 フィルターを確認または投稿を削除。 title: フィルターを編集 errors: + deprecated_api_multiple_keywords: これらのパラメータは複数のフィルタキーワードに適用されるため、このアプリケーションから変更できません。 最新のアプリケーションまたはWebインターフェースを使用してください。 invalid_context: 対象がないか無効です - invalid_irreversible: この機能はホームタイムラインまたは通知と一緒に指定する場合のみ機能します index: + contexts: "%{contexts}のフィルター" delete: 削除 empty: フィルターはありません。 + expires_in: "%{distance}で期限切れ" + expires_on: 有効期限 %{date} + keywords: + other: "%{count}件のキーワード" + statuses: + other: "%{count}件の投稿" + statuses_long: + other: "%{count}件の投稿を非表示にしました" title: フィルター new: + save: 新規フィルターを保存 title: 新規フィルターを追加 + statuses: + back_to_filter: フィルタに戻る + batch: + remove: フィルターから削除する + index: + hint: このフィルターは、他の条件に関係なく個々の投稿を選択する場合に適用されます。Webインターフェースからこのフィルターにさらに投稿を追加できます。 + title: フィルターされた投稿 footer: - developers: 開発者向け - more: さらに… - resources: リソース trending_now: トレンドタグ generic: all: すべて + all_items_on_page_selected_html: + other: このページの %{count} 件すべてが選択されています。 + all_matching_items_selected_html: + other: 検索条件に一致する %{count} 件すべてが選択されています。 changes_saved_msg: 正常に変更されました! copy: コピー delete: 削除 + deselect: 選択解除 none: なし order_by: 並び順 save_changes: 変更を保存 + select_all_matching_items: + other: 検索条件に一致する %{count} 件をすべて選択 today: 今日 validation_errors: other: エラーが発生しました! 以下の%{count}件のエラーを確認してください @@ -1119,7 +1149,6 @@ ja: following: フォロー中のアカウントリスト muting: ミュートしたアカウントリスト upload: アップロード - in_memoriam_html: 故人を偲んで。 invites: delete: 無効化 expired: 期限切れ @@ -1197,19 +1226,14 @@ ja: carry_blocks_over_text: このユーザーは、あなたがブロックしていた%{acct}から引っ越しました。 carry_mutes_over_text: このユーザーは、あなたがミュートしていた%{acct}から引っ越しました。 copy_account_note_text: このユーザーは%{acct}から引っ越しました。これは以前のメモです。 + navigation: + toggle_menu: メニューを表示 / 非表示 notification_mailer: admin: + report: + subject: "%{name}さんがレポートを送信しました" sign_up: subject: "%{name}さんがサインアップしました" - digest: - action: 全ての通知を表示 - body: '最後のログイン(%{since})からの出来事:' - mention: "%{name}さんがあなたに返信しました:" - new_followers_summary: - other: また、離れている間に%{count}人の新たなフォロワーを獲得しました! - subject: - other: "前回の訪問から%{count}件の新しい通知 🐘" - title: 不在の間に… favourite: body: "%{name}さんにお気に入り登録された、あなたの投稿があります:" subject: "%{name}さんにお気に入りに登録されました" @@ -1281,6 +1305,8 @@ ja: other: その他 posting_defaults: デフォルトの投稿設定 public_timelines: 公開タイムライン + privacy_policy: + title: プライバシーポリシー reactions: errors: limit_reached: リアクションの種類が上限に達しました @@ -1303,22 +1329,7 @@ ja: remove_selected_follows: 選択したユーザーをフォロー解除 status: 状態 remote_follow: - acct: あなたの ユーザー名@ドメイン を入力してください missing_resource: リダイレクト先が見つかりませんでした - no_account_html: アカウントをお持ちではないですか?こちらからサインアップできます - proceed: フォローする - prompt: 'フォローしようとしています:' - reason_html: "なぜこの手順が必要でしょうか? %{instance}はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。" - remote_interaction: - favourite: - proceed: お気に入り登録する - prompt: 'お気に入り登録しようとしています:' - reblog: - proceed: ブーストする - prompt: 'ブーストしようとしています:' - reply: - proceed: 返信する - prompt: '返信しようとしています:' reports: errors: invalid_rules: 有効なルールを参照していません @@ -1336,7 +1347,7 @@ ja: browser: ブラウザ browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1350,7 +1361,7 @@ ja: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: 現在のセッション description: "%{platform}上の%{browser}" @@ -1359,7 +1370,7 @@ ja: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry + blackberry: BlackBerry chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS @@ -1479,91 +1490,11 @@ ja: pinned: 固定された投稿 reblogged: さんがブースト sensitive_content: 閲覧注意 + strikes: + errors: + too_late: このストライクに抗議するには遅すぎます tags: does_not_match_previous_name: 以前の名前と一致しません - terms: - body_html: | -

      プライバシーポリシー

      -

      どのような情報を収集しますか?

      - -
        -
      • 基本的なアカウント情報: 当サイトに登録すると、ユーザー名・メールアドレス・パスワードの入力を求められることがあります。また表示名や自己紹介・プロフィール画像・ヘッダー画像といった追加のプロフィールを登録できます。ユーザー名・表示名・自己紹介・プロフィール画像・ヘッダー画像は常に公開されます。
      • -
      • 投稿・フォロー・その他公開情報: フォローしているユーザーの一覧は一般公開されます。フォロワーも同様です。メッセージを投稿する際、日時だけでなく投稿に使用したアプリケーション名も記録されます。メッセージには写真や動画といった添付メディアを含むことがあります。「公開」や「未収載」の投稿は一般公開されます。プロフィールに投稿を載せるとそれもまた公開情報となります。投稿はフォロワーに配信されます。場合によっては他のサーバーに配信され、そこにコピーが保存されることを意味します。投稿を削除した場合も同様にフォロワーに配信されます。他の投稿をリブログやお気に入り登録する行動は常に公開されます。
      • -
      • 「ダイレクト」と「フォロワー限定」投稿: すべての投稿はサーバーに保存され、処理されます。「フォロワー限定」投稿はフォロワーと投稿に書かれたユーザーに配信されます。「ダイレクト」投稿は投稿に書かれたユーザーにのみ配信されます。場合によっては他のサーバーに配信され、そこにコピーが保存されることを意味します。私たちはこれらの閲覧を一部の許可された者に限定するよう誠意を持って努めます。しかし他のサーバーにおいても同様に扱われるとは限りません。したがって、相手の所属するサーバーを吟味することが重要です。設定で新しいフォロワーの承認または拒否を手動で行うよう切り替えることもできます。サーバー管理者は「ダイレクト」や「フォロワー限定」投稿も閲覧する可能性があることを忘れないでください。また受信者がスクリーンショットやコピー、もしくは共有する可能性があることを忘れないでください。いかなる危険な情報もMastodon上で共有しないでください。
      • -
      • IPアドレスやその他メタデータ: ログインする際IPアドレスだけでなくブラウザーアプリケーション名を記録します。ログインしたセッションはすべてユーザー設定で見直し、取り消すことができます。使用されている最新のIPアドレスは最大12ヵ月間保存されます。またサーバーへのIPアドレスを含むすべてのリクエストのログを保持することがあります。
      • -
      - -
      - -

      情報を何に使用しますか?

      - -

      収集した情報は次の用途に使用されることがあります:

      - -
        -
      • Mastodonのコア機能の提供: ログインしている間にかぎり他の人たちと投稿を通じて交流することができます。例えば自分専用のホームタイムラインで投稿をまとめて読むために他の人たちをフォローできます。
      • -
      • コミュニティ維持の補助: 例えばIPアドレスを既知のものと比較し、BAN回避目的の複数登録者やその他違反者を判別します。
      • -
      • 提供されたメールアドレスはお知らせの送信・投稿に対するリアクションやメッセージ送信の通知・お問い合わせやその他要求や質問への返信に使用されることがあります。
      • -
      - -
      - -

      情報をどのように保護しますか?

      - -

      私たちはあなたが入力・送信する際や自身の情報にアクセスする際に個人情報を安全に保つため、さまざまなセキュリティ上の対策を実施します。特にブラウザーセッションだけでなくアプリケーションとAPI間の通信もSSLによって保護されます。またパスワードは強力な不可逆アルゴリズムでハッシュ化されます。二要素認証を有効にし、アカウントへのアクセスをさらに安全にすることができます。

      - -
      - -

      データ保持方針はどうなっていますか?

      - -

      私たちは次のように誠意を持って努めます:

      - -
        -
      • 当サイトへのIPアドレスを含むすべての要求に対するサーバーログを90日以内のできるかぎりの間保持します。
      • -
      • 登録されたユーザーに関連付けられたIPアドレスを12ヵ月以内の間保持します。
      • -
      - -

      あなたは投稿・添付メディア・プロフィール画像・ヘッダー画像を含む自身のデータのアーカイブを要求し、ダウンロードすることができます。

      - -

      あなたはいつでもアカウントの削除を要求できます。削除は取り消すことができません。

      - -
      - -

      クッキーを使用していますか?

      - -

      はい。クッキーは (あなたが許可した場合に) WebサイトやサービスがWebブラウザーを介してコンピューターに保存する小さなファイルです。使用することでWebサイトがブラウザーを識別し、登録済みのアカウントがある場合関連付けます。

      - -

      私たちはクッキーを将来の訪問のために設定を保存し呼び出す用途に使用します。

      - -
      - -

      なんらかの情報を外部に提供していますか?

      - -

      私たちは個人を特定できる情報を外部へ販売・取引・その他方法で渡すことはありません。これには当サイトの運営・業務遂行・サービス提供を行ううえで補助する信頼できる第三者をこの機密情報の保護に同意するかぎり含みません。法令の遵守やサイトポリシーの施行、権利・財産・安全の保護に適切と判断した場合、あなたの情報を公開することがあります。

      - -

      あなたの公開情報はネットワーク上の他のサーバーにダウンロードされることがあります。相手が異なるサーバーに所属する場合、「公開」と「フォロワー限定」投稿はフォロワーの所属するサーバーに配信され、「ダイレクト」投稿は受信者の所属するサーバーに配信されます。

      - -

      あなたがアカウントの使用をアプリケーションに許可すると、承認した権限の範囲内で公開プロフィール情報・フォローリスト・フォロワー・リスト・すべての投稿・お気に入り登録にアクセスできます。アプリケーションはメールアドレスやパスワードに決してアクセスできません。

      - -
      - -

      児童によるサイト利用について

      - -

      サーバーがEUまたはEEA圏内にある場合: 当サイト・製品・サービスは16歳以上の人を対象としています。あなたが16歳未満の場合、GDPR (General Data Protection Regulation - EU一般データ保護規則) により当サイトを使用できません。

      - -

      サーバーが米国にある場合: 当サイト・製品・サービスは13歳以上の人を対象としています。あなたが13歳未満の場合、COPPA (Children's Online Privacy Protection Act - 児童オンラインプライバシー保護法) により当サイトを使用できません。

      - -

      サーバーが別の管轄区域にある場合、法的要件は異なることがあります。

      - -
      - -

      プライバシーポリシーの変更

      - -

      プライバシーポリシーの変更を決定した場合、このページに変更点を掲載します。

      - -

      この文章のライセンスはCC-BY-SAです。最終更新日は2018年3月7日です。

      - -

      オリジナルの出典: Discourse privacy policy

      - title: "%{instance} 利用規約・プライバシーポリシー" themes: contrast: Mastodon (ハイコントラスト) default: Mastodon (ダーク) @@ -1603,7 +1534,7 @@ ja: subject: アーカイブの準備ができました title: アーカイブの取り出し suspicious_sign_in: - change_password: パスワードを変更する + change_password: パスワードを変更 details: 'ログインの詳細は以下のとおりです:' explanation: 新しいIPアドレスからあなたのアカウントへのサインインが検出されました。 further_actions_html: あなたがログインしていない場合は、すぐに%{action}し、アカウントを安全に保つために二要素認証を有効にすることをお勧めします。 @@ -1642,20 +1573,15 @@ ja: suspend: アカウントが停止されました welcome: edit_profile_action: プロフィールを設定 - edit_profile_step: アイコンやヘッダーの画像をアップロードしたり、表示名を変更したりして、自分のプロフィールをカスタマイズすることができます。また、誰かからの新規フォローを許可する前にその人の様子を見ておきたい場合、アカウントを承認制にすることもできます。 + edit_profile_step: |- + プロフィール画像をアップロードしたり、表示名を変更したりして、プロフィールをカスタマイズできます。 + 新しいフォロワーからフォローリクエストを承認する前に、オプトインで確認できます。 explanation: 始めるにあたってのアドバイスです final_action: 始めましょう final_step: 'さあ、始めましょう! たとえフォロワーがまだいなくても、あなたの公開した投稿はローカルタイムラインやハッシュタグなどを通じて誰かの目にとまるはずです。自己紹介をしたいときには #introductions ハッシュタグが便利かもしれません。' full_handle: あなたの正式なユーザーID full_handle_hint: 別のサーバーの友達とフォローやメッセージをやり取りする際には、これを伝えることになります。 - review_preferences_action: 設定の変更 - review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーションGIFを自動再生する設定もご検討ください。 subject: Mastodonへようこそ - tip_federated_timeline: 連合タイムラインはMastodonネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。 - tip_following: 最初は、サーバーの管理者をフォローした状態になっています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してみましょう。 - tip_local_timeline: ローカルタイムラインは%{instance}にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです! - tip_mobile_webapp: お使いのモバイル端末で、ブラウザからMastodonをホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます! - tips: 豆知識 title: ようこそ、%{name}さん! users: follow_limit_reached: あなたは現在 %{limit}人以上フォローできません diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 151817ef4c5a2e..464e8826885b1b 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -1,43 +1,16 @@ --- ka: about: - about_hashtag_html: ეს საჯარო ტუტებია, რომლებიც ატარებენ #%{hashtag} ტეგს. მათთან ინტერაქციას შეძლებთ, თუ ფედივერსში გაქვთ რაიმე ანგარიში. about_mastodon_html: მასტოდონი ღია ვებ პროტოკოლებზე და უფასო, ღია პროგრამებზე დაფუძნებული სოციალური ქსელია. ის ისეთი დეცენტრალიზებულია როგორც ელ-ფოსტა. - about_this: შესახებ - administered_by: 'ადმინისტრატორი:' - api: აპი - apps: მობილური აპლიკაციები - contact: კონტაქტი contact_missing: არაა დაყენებული contact_unavailable: მიუწ. - documentation: დოკუმენტაცია hosted_on: მასტოდონს მასპინძლობს %{domain} - learn_more: გაიგე მეტი - privacy_policy: კონფიდენციალურობის პოლიტიკა - source_code: კოდი - status_count_before: ვინც უავტორა - terms: მომსახურების პირობები - user_count_before: სახლი - what_is_mastodon: რა არის მასტოდონი? accounts: - choices_html: "%{name}-ის არჩევნები:" follow: გაყევი following: მიჰყვება - joined: გაწევრიანდა %{date} - media: მედია - moved_html: "%{name} გადავიდა %{new_profile_link}:" - network_hidden: ეს ინფორმაცია ხელმიუწვდომელია nothing_here: აქ არაფერია! - people_followed_by: ხალხი ვისაც %{name} მიჰყვება - people_who_follow: ხალხი ვინც მიჰყვება %{name}-ს pin_errors: following: იმ ადამიანს, ვინც მოგწონთ, უკვე უნდა მიჰყვებოდეთ - posts_with_replies: ტუტები და პასუხები - roles: - admin: ადმინისტრატორი - bot: ბოტი - moderator: მოდერატორი - unfollow: ნუღარ მიჰყვები admin: account_moderation_notes: create: დატოვეთ ჩანაწერი @@ -48,7 +21,6 @@ ka: avatar: ავატარი by_domain: დომენი change_email: - changed_msg: ანგარიშის ელ-ფოსტა წარმატებით შეიცვალა! current_email: მიმდინარე ელ-ფოსტა label: ელ-ფოსტის შეცვლა new_email: ახალი ელ-ფოსტა @@ -102,12 +74,6 @@ ka: reset: გადატვირთვა reset_password: პაროლის გადატვირთვა resubscribe: ხელახალი გამოწერა - role: უფლებები - roles: - admin: ადმინისტრატორი - moderator: მოდერატორი - staff: სტაფი - user: მომხმარებელი search: ძებნა shared_inbox_url: გაზიარებული ინბოქსის ურლ show: @@ -124,7 +90,6 @@ ka: username: მომხმარებლის სახელი web: ვები action_logs: - deleted_status: "(გაუქმებული სტატუსი)" title: აუდიტის ლოგი custom_emojis: by_domain: დომენი @@ -228,61 +193,6 @@ ka: unassign: გადაყენება unresolved: გადაუწყვეტელი updated_at: განახების დრო - settings: - activity_api_enabled: - desc_html: ლოკალურად გამოქვეყნებული სტატუსების, აქტიური მომხმარებლების და ყოველკვირეული რეგისტრაციების მთვლელი - title: გამოაქვეყნე აგრეგატი სტატისტიკები მომხმარებლის აქტივობაზე - bootstrap_timeline_accounts: - desc_html: გამოჰყავი მომხმარებლები მძიმით. იმუშავებს მხოლოდ ლოკალური და "ბლოკ-მოხსნილ" ანგარიშები. საწყისი როდესაც ცარიელია ყველა ლოკალური ადმინი. - title: საწყისი მიდევნებები ახლა მომხმარებლებზე - contact_information: - email: ბიზნეს ელ-ფოსტა - username: საკონტაქტო მომხმარებლის სახელი - hero: - desc_html: წინა გვერდზე გამოჩენილი. მინ. 600/100პიქს. რეკომენდირებული. როდესაც არაა დაყენებული, ჩნდება ინსტანციის პიქტოგრამა - title: გმირი სურათი - peers_api_enabled: - desc_html: დომენების სახელები რომლებსაც შეხვდა ეს ინსტანცია ფედივერსში - title: გამოაქვეყნე აღმოჩენილი ინსტანციების სია - preview_sensitive_media: - desc_html: ბმულის პრევიუები სხვა ვებ-საიტებზე გამოაჩენენ პიქტოგრამას, მაშინაც კი თუ მედია მონიშნულია მგრძნობიარედ - title: გამოაჩინე მგრძნობიარე მედია ოუფენ-გრეფ პრევიუებში - registrations: - closed_message: - desc_html: გამოჩნდება წინა გვერდზე, როდესაც რეგისტრაციები დახურულია. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები - title: დახურული რეგისტრაციის წერილი - deletion: - desc_html: უფლება მიეცით ყველას, გააუქმონ თავიანთი ანგარიში - title: ღია ანგარიშის გაუქმება - min_invite_role: - disabled: არავინ - title: ნება დაერთოს მოწვეევებს - show_known_fediverse_at_about_page: - desc_html: ჩართვისას, ეს გამოაჩენს ტუტებს ყველა ცნობილი ფედივერსისგან პრევიუზე. სხვა შემთხვევაში, გამოაჩენს მხოლოდ ლოკალურ ტუტებს. - title: გამოჩნდეს ცნობილი ვედივერსი თაიმლაინ პრევიუში - show_staff_badge: - desc_html: გამოჩნდეს სტაფის ნიშანი მომხმარებლის გვერდზე - title: სტაფის ნიშნის გამოჩენა - site_description: - desc_html: საშესავლო პარაგრაფი წინა გვერდზე. აღწერეთ თუ რა ხდის ამ მასტოდონის სერვერს განსაკუთრებულს და სხვა მნიშვნელოვანი. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები, კერძოდ <a> და <em>. - title: ინსტანციის აღწერილობა - site_description_extended: - desc_html: კარგი ადგილი მოქცევის კოდექსისთვის, წესები, სახელმძღვანელოები და სხვა რაც გამოარჩევს თქვენს ინსტანციას. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები - title: პერსონალიზირებული განვრცობილი ინფორმაცია - site_short_description: - desc_html: გამოჩნდება გვერდით ბარში და მეტა ტეგებში. აღწერეთ თუ რა არის მასტოდონი და რა ხდის ამ სერვერს უნიკალურს ერთ პარაგრაფში. თუ ცარიელია, გამოჩნდება ინსტანციის აღწერილობა. - title: აჩვენეთ ინსტანციის აღწერილობა - site_terms: - desc_html: შეგიძლიათ დაწეროთ საკუთარი კონფიდენციალურობის პოლიტიკა, მომსახურების პირობები ან სხვა იურიდიული დოკუმენტი. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები - title: პერსონალიზირებული მომსახურების პირობები - site_title: ინსტანციის სახელი - thumbnail: - desc_html: გამოიყენება პრევიუებისთვის ოუფენ-გრეფში და აპი-ში. 1200/630პიქს. რეკომენდირებული - title: ინსტანციის პიქტოგრამა - timeline_preview: - desc_html: აჩვენეთ საჯარო თაიმლაინი ლენდინგ გვერდზე - title: თაიმლაინ პრევიუ - title: საიტის პარამეტრები statuses: back_to_account: უკან ანგარიშის გვერდისკენ media: @@ -305,7 +215,6 @@ ka: applications: created: აპლიკაცია წარმატებით შეიქმნა destroyed: აპლიკაცია წარმატებით გაუქმდა - invalid_url: მოწოდებული ურლ არასწორია regenerate_token: წვდომის ტოკენის რეგენერაცია token_regenerated: წვდომის ტოკენის რეგენერაცია მოხერხდა warning: იყავით ძალიან ფრთხილად ამ მონაცემთან. არასდროს გააზიაროთ ეს! @@ -396,16 +305,11 @@ ka: title: ფილტრის ცვლილება errors: invalid_context: მოწოდებულია არასწორი ან ცარიელი კონტექსტი - invalid_irreversible: დაუბრუნებელი ფილტრაცია მუშაობს მხოლოდ სახლის ან ნოტიფიკაციის კონტექსტში index: delete: გაუქმება title: ფილტრები new: title: ახალი ფილტრის დამატება - footer: - developers: დეველოპერები - more: მეტი… - resources: რესურსები generic: changes_saved_msg: ცვლილებები წარმატებით დამახსოვრდა! save_changes: ცვლილებების შენახვა @@ -420,7 +324,6 @@ ka: following: დადევნების სია muting: გაჩუმების სია upload: ატვირთვა - in_memoriam_html: მემორანდუმში. invites: delete: დეაქტივაცია expired: ვადა გაუვიდა @@ -455,14 +358,6 @@ ka: moderation: title: მოდერაცია notification_mailer: - digest: - action: ყველა შეტყობინების ჩვენება - body: 'აქ მოკლე შინაარსია წერილების, რომლებიც გამოგეპარათ წინა სტუმრობის შემდეგ: %{since}' - mention: "%{name}-მა დაგასახელათ:" - new_followers_summary: - one: ასევე, არყოფნისას შეგეძინათ ერთი ახალი მიმდევარი! იეი! - other: ასევე, არყოფნისას შეგეძინათ %{count} ახალი მიმდევარი! შესანიშნავია! - title: თქვენს არყოფნაში... favourite: body: 'თქვენი სტატუსი ფავორიტი გახადა %{name}-მა:' subject: "%{name}-მა თქვენი სტატუსი გახადა ფავორიტი" @@ -502,17 +397,12 @@ ka: preferences: other: სხვა remote_follow: - acct: შეიყვანეთ თქვენი username@domain საიდანაც გსურთ გაჰყვეთ missing_resource: საჭირო გადამისამართების ურლ თქვენი ანგარიშისთვის ვერ მოიძებნა - no_account_html: არ გაქვთ ანგარიში? შეგიძლიათ დარეგისტრირდეთ აქ - proceed: გააგრძელეთ გასაყოლად - prompt: 'თქვენ გაჰყვებით:' sessions: activity: ბოლო აქტივობა browser: ბრაუზერი browsers: alipay: ალიფეი - blackberry: ბლექბერი chrome: ქრომი edge: მაიკროსოფთ ედჯი electron: ელექტრონი @@ -526,7 +416,6 @@ ka: phantom_js: ფანტომჯეიესი qq: ქქ ბრაუზერი safari: საფარი - uc_browser: იუსიბიბრაუზერი weibo: ვეიბო current_session: მიმდინარე სესია description: "%{browser} %{platform}-ზე" @@ -535,8 +424,6 @@ ka: platforms: adobe_air: ედობ ეარი android: ანდროიდი - blackberry: ბლექბერი - chrome_os: ქრომო-ოსი firefox_os: ფაირფოქს-ოსი ios: აი-ოსი linux: ლინუქსი @@ -593,89 +480,6 @@ ka: pinned: აპინული ტუტი reblogged: გაზრდილი sensitive_content: მგრძნობიარე კონტენტი - terms: - body_html: | -

      კონფიდენციალურობის პოლიტიკა

      -

      რა ინფორმაციას ვაგროვებთ?

      - -
        -
      • ძირითადი ანგარიშის ინფორმაცია: თუ დარეგისტრირდებით ამ სერვერზე, შესაძლოა მოგთხოვოთ მომხმარებლის სახელი, ელ-ფოსტის მისამართი და პაროლი. შესაძლებელია, ასევე შეიყვანოთ დამატებითი პროფილის ინორმაცია, როგორიცაა დისპლეის სახელი და ბიოგრაფია, ასევე ატვირთოთ პროფილის და დასათაურების სურათი. მომხმარებლის სახელი, დისპლეის სახელი, ბიოგრაფია, პროფილის სურათი, დასათაურების სურათი ყოველთვის ღიადაა ჩამოთვლილი.
      • -
      • პოსტები, დადევნებები და სხვა საჯარო ინფორმაცია: ადამიანების სია, რომლებსაც მიჰყვებით საჯაროდაა ჩამოთვლილი, იგივე ეხება თქვენს მიდევრებსაც. როდესაც აგზავნით წერილს, თარიღი, დრო და აპლიკაცია თუ საიდანაც განათავსეთ წერილი ინახება. წერილები შესაძლოა შეიცავდნენ მედია ფაილებს, როგორებიცაა სურათები და ვიდეოები. ღია და ჩამოუთვლელი პოსტები ხელმისაწვდომია საჯაროდ. როდესაც ათავსებთ პოსტს თქვენს პროფილზე, ის ასევე საჟაროდ წვდომადი ხდება. თქვენი პოსტები ეგზავნებათ თქვენს მიმდევრებს, ზოგიერთ შემთხვევაში ეს ნიშნავს, რომ ისინი იგზავნება სხვა სერვერებზე და მათი ასლები იქვე ინახება. როდესაც აუქმებთ პოსტს, ეს მოქმედება ეგზავნებათ თქვენს მიმდევრებს. რე-ბლოგირების ან ფავორიტად ქცევის ქმედებები ასევე საქვეყნოა.
      • -
      • პირდაპირი და პოსტები მხოლოდ-მიმდევრებისთვის: ყველა პოსტი ინახება და მათი პროცესირება ხდება სერვერზე. პოსტები რომლებიც განეკუთვნება მხოლოდ მიმდევრებს მიეწოდებათ მათ, მომხმარებლები, რომლებიც დასახელებულია პოსტებში და პირდაპირი პოსტები ეგზავნებათ მხოლოდ ჩამოთვლილ მომხმარებლებს. ზოგიერთ შემთხვევაში, ეს ნიშნავს, რომ გადაგზავნა ხდება გარე სერვერებზე და ასლებიც იქ ინახება. ჩვენ დიდ ძალისხმევას ვუწევთ წვდომის ლიმიტს მხოლოდ აუტორიზირებული ადამიანებისთვის, თუმცა სხვა სერვერებმა შეიძლება ეს არ აწარმოონ. აქედან გამომდინარე, მნიშვნელოვანია განიხილოთ სერვერები, საიდანაც მოდიან თქვენი მიმდევრები. შეგიძლიათ ჩართოთ ან გამორთოთ პარამეტრი, დაადასტუროთ ან უარყოთ ახალი მიმდევარი. გთხოვთ გაითვალისწინოთ, რომ სერვერის ოპერაციები და სხვა მიმღები სერვერები შესაძლოა კითხულობდნენ ამგვარ წერილებს, მიმღებებს შეუძლიათ შექმნან სქრინშოთი, დააკოპირონ ან ხელახლა გააზიარონ ისინი. არ გააზიაროთ საშიში ინფორმაცია მასტოდონით.
      • -
      • აი-პიები და სხვა მეტა-მონაცემები: როდესაც გაივლით აუტენტიფიკაციას, ჩვენ ვინახავთ აი-პი მისამართს საიდანაც შემოხვედით, ასევე ბრაუზერის აპლიკაციას. ყველა ავტორიზირებული სესია თქვენთვის განსახილველად და გასაუქმებლად ხელმისაწვდომია პარამეტრებში. ბოლო შენახული აი-პი მისამართი ინახება მაქსიმუმ 12 თვით. ჩვენ ასევე შეიძლება გაგვაჩნდეს სერვერის ლოგი, რომელიც ინახავს თითოეული მოთხოვნის IP მისამართს.
      • -
      - -
      - -

      რაში ვიყენებთ ინფორმაციას?

      - -

      ნებისმიერი სხვა ინფორმაცია, რომელსაც ვაგროვებთ თქვენგან შესაძლოა გამოყენებულ იქნას შემდეგი გზებით:

      - -
        -
      • რომ უზრუნველვყოთ მასტოდონის მთავარი ფუნქციონალი. შეგიძლიათ ინტერაქცია გაუწიოთ მხოლოდ სხვის კონტენტს და შექმნათ პოსტები მაშინ როდესაც ავტორიზებული ხართ. მაგალითად, შესაძლოა გაჰყვეთ სხვა ადამიანებს, რათა იხილოთ მათი ჯამური პოსტები საკუთარ პერსონალიზებულ სახლის თაიმლაინზე.
      • -
      • რომ შევუწყვოთ ხელი საზოგადოების მოდერაციას, მაგალითად შევადაროთ თქვენი აი-პი მისამართი სხვა ცნობილ მისამართებს, რათა ამოვიცნოთ ბანის გადაუხდელობა ან სხვა დარღვევები.
      • -
      • ელ-ფოსტის მისამართი რომელსაც გვაწვდით, შესაძლოა გამოვიყენოთ თქვენთვის ინფორმაციის გამოსაგძავნად, შეგატყობინოთ სხვა ადამიანების ინტერაქციაზე თქვენს კონტენტთან ან თქვენთვის გამოგზავნილ წერილებზე, ასევე რომ გიპასუხოთ მოთხოვნებზე და/ან სხვა საკითხებზე.
      • -
      - -
      - -

      როგორ ვიცავთ თქვენს ინფორმაციას?

      - -

      მიღებული გვაქვს სხვადასხვა ზომა, შევინარჩუნოთ თქვენი პირადი ინფორმაციის უსაფრთხოება, რომელსაც აგზავნით, შეგყავთ ან კითხულობთ. ამ ყველაფერთან ერთად თქვენი ბრაუზერის სესია, ტრეფიკი თქვენს აპლიკაციასა და აპის შორის დაცულია სსლ-ით, თქვენი პაროლი იშიფრება ძლიერი ალგორითმით. შეგიძლიათ ჩართოთ მეორე-ფაქტორის აუტენტიფიკაცია, რათა გააღმაოთ თქვენი ანგარიშის თავდაცვა.

      - -
      - -

      რა არის ჩვენი მონაცემის უარყოფის პოლიტიკა?

      - -

      ჩვენ არ დავიშურებთ ძალისხმევას რომ:

      - -
        -
      • შევინარჩუნოთ სერვერის ლოგები, რომლებიც მოიცავენ ყველა მოთხოვნის აი-პი მისამართს, თუმცა ესეთი ლოგები არ ინახება 90 დღეზე მეტ ხანს.
      • -
      • შევინარჩუნოთ რეგისტრირებული მომხმარებლების აი-პი მისამართები მაქსიმუმ 12 თვით.
      • -
      - -

      შეგიძლიათ მოითხოვოთ და ჩამოტვირთოთ თქვენი კონტენტის არქივი, რომელიც მოიცავს თქვენს პოსტებს, მედია ფაილებს, პროფილის და დასათაურების სურათს.

      - -

      შეგიძლიათ დაუბრუნებლად გააუქმოთ თქვენი ანგარიში ნებისმიერ დროს.

      - -
      - -

      ვიყენებთ თუ არა ქუქის?

      - -

      დიახ. ქუქიები წარმოადგენენ პატარა ფაილებს, რომელთაც, საიტი ან სერვის-პროვაიდერი, ათავსებს თქვენი კომპიუტერის მყარ დისკზე, ვებ-ბრაუზერის (თუ ნებას რთავთ) მეშვეობით. ქუქიები საშუალებას აძლევს საიტს ამოიცნონ თქვენი ბრაუზზერი და თუ გაქვთ რეგისტრირებული ანგარიში მისი ასოციაცია მოახდინონ თქვენს ანგარიშთან.

      - -

      ჩვენ ვიყენებთ ქუქის, ვიცოდეთ და შევინახოთ თქვენი პრეფერენსიები სამომავლო სტუმრობებისთვის.

      - -
      - -

      ვამჟღავნებთ თუ არა ინფორმაციას გარე მხარეებისთვის?

      - -

      ჩვენ არ ვყიდით, ვვაჭრობთ ან გადაქვაქ თქვენთვის პირადად იდენტიფიცირებადი ინფორმაცია სხვა მხარეებისთვის. ეს არ მოიცავს სანდო მხარეებს, რომლებიც გვეხმარება საიტის ოპერირებაში, ჩვენი საქმიანობის ჩატარებაში, ან თქვენთვის მომსახურების გაწევაში, წინაპირობით კონფიდენციალურად შეინახონ თქვენი ინფორმაცია. ჩვენ შესაძლოა გამოვაქვეყნოთ თქვენი ინფორმაცია, რომელიც შესაბამისად შეიძლება ჩავთვალოთ კანონმდებლობასთან შეთავსებისთვის, აღვასრულოთ პოლიტიკა ან დავიცვათ ჩვენი ან სხვისი უფლებები, კუთვნილება ან უსაფრთხოება.

      - -

      თქვენი საჯარო ინფორმაცია შესაძლოა ჩამოტვირთულ იქნას სხვა სერვერების მიერ ქსელში. თქვენი ღია და მიმდევრებზე გათვლილი პოსტები მიეწოდება სერვერებს სადაც თქვენი მიმდევრები მოღვაწეობენ, იმ შემთხვევაში თუ მიმღებები მომდინარეობენ სხვა სერვერიდან, პირდაპირი წერილები მიეწოდებათ მიმღებების სერვერებს.

      - -

      როდესაც უფლებას მისცემთ აპლიკაციას გამოიყენოს თქვენი ანგარიში, უფლებებისგან გამომდინარე, მან შესაძლოა მოიპოვოს თქვენი საჯარო ინფორმაცია, თქვენი დადევნების სიები, თქვენი მიმდევრები, თქვენი სიები, ყველა პოსტი და თქვენი ფავორიტები. აპლიკაციები ვერასდროს იქონიებენ წვდომას თქვენი ელ-ფოსტის მისამართზე ან პაროლზე.

      - -
      - -

      საიტის მოხმარებს ბავშვების მიერ

      - -

      თუ ეს სერვერი მდებარეობს ეუ-ში ან ეეა-ში: ჩვენი საიტი, პროდუქტები და სერვისები მიმართულია ადამიანებისთვის, რომელთაც შეუსრულდათ 16 წელი. თუ თქვენი ასაკი 16 წელიწადზე ნაკლებია, ჯიდიფიარის (ზოგადი მონაცემების დაცვის რეგულაცია/a>) მოთხოვნის მიხედვით არ გამოიყენოთ ეს საიტი.

      - -

      თუ ეს სერვერი მდებარეობს ა.შ.შ.-ში: ჩვენი საიტი პროდუქტი და სერვისები მიმართულია ადამიანებისთვის, რომელთაც შეუსრულდათ 13 წელი. თუ თქვენი ასაკი 13 წელიწადზე ნაკლებია, კოპპას (ბავშვთა ონლაინ კონფიდენციალურობის დაცვის აქტი) მოთხოვნების მიხედვით არ გამოიყენოთ ეს საიტი.

      - -

      იურიდიული მოთხოვნილებები შეიძლება განსხვავდებოდეს, თუ ეს სერვერი იმყოფება სხვა იურისდიქციის ქვეშ.

      - -
      - -

      ცვლილებები კონფიდენციალურობის პოლიტიკაში

      - -

      თუ გადავწყვეტთ შევცვალოთ კონფიდენციალურობის პოლიტიკა, გამოვაქვეყნებთ ამ გვერდზე.

      - -

      ეს დოკუმენტი არის ცც-ბაი-სა. ეს ბოლოს განახლდა 2018 წლის, 17 აგვისტოს.

      - -

      საწყისად ადაპტირებულია გამჟღავნების კონფიდენციალური პოლიტიკისგან.

      - title: "%{instance} მომსახურების პირობები და კონფიდენციალურობის პოლიტიკა" themes: contrast: მაღალი კონტრასტი default: მასტოდონი @@ -696,20 +500,11 @@ ka: title: არქივის მიღება welcome: edit_profile_action: პროფილის მოწყობა - edit_profile_step: შეგიძლიათ მოაწყოთ თქვენი პროფილი ავატარის ატვირთვით, დასათაურების სურათით, თქვენი დისპლეი სახელის შეცვლით და სხვა. თუ გსურთ გაუწიოთ ახალ მიმდევრებს რევიუ, სანამ რეალურად გამოგყვებიან, შეგიძლიათ ჩაკეტოთ თქვენი ანგარიში. explanation: აქ რამდენიმე რჩევაა დასაწყისისთვის final_action: დაიწყე პოსტვა - final_step: 'დაიწყე პოსტვა! თქვენი ღია წერილები შესაძლოა ნახონ სხვებმა მიმდევრების გარეშეც კი, მაგალითად თქვენს ლოკალურ თაიმლაინზე ან ჰეშტეგებში. შეგიძლიათ წარადგინოთ თქვენი თავი #introductions ჰეშტეგით.' full_handle: თქვენი სრული სახელური full_handle_hint: ეს არის ის რასაც ეტყვით თქვენს მეგობრებს, რათა მოგწერონ ან გამოგყვნენ სხვა ინსტანციიდან. - review_preferences_action: შეცვალეთ პრეფერენსიები - review_preferences_step: დარწმუნდით რომ აყენებთ თქვენს პრეფერენსიებს, მაგალითად რა ელ-ფოსტის წერილების მიღება გსურთ, ან კონფიდენციალურობის რა დონე გსურთ ჰქონდეთ თქვენს პოსტებს საწყისად. თუ არ გაღიზიანებთ მოძრაობა, შეგიძლიათ ჩართოთ გიფის ავტო-დაკვრა. subject: კეთილი იყოს თქვენი მობრძანება მასტოდონში - tip_federated_timeline: ფედერალური თაიმლაინი მასტოდონის ქსელის ცეცხლოვანი ხედია. ის მოიცავს მხოლოდ იმ ადამიანებს, რომელთაგანაც გამოიწერეს თქვენმა მეზობლებმა, ასე რომ ეს არაა სრული. - tip_following: თქვენ საწყისად მიჰყვებით თქვენი სერვერის ადმინისტრატორ(ებ)ს. უფრო საინტერესო ადამიანების მოსაძებნად იხილეთ ლოკალური და ფედერალური თაიმლაინები. - tip_local_timeline: ლოკალური თაიმლაინი ცეცხლოვანი ხედია ადამიანებისთვის %{instance}-ზე. ისინი არიან თქვენი უსიტყვო მეზობლები! - tip_mobile_webapp: თუ თქვენი მობილური ბრაუზერი გთავაზობთ მასტოდონის სახლის-ეკრანზე დამატებას, შეძლებთ ფუშ შეტყობინებების მიღებას. ეს მრავალმხრივ მოქმედებს როგორც მშობლიური აპლიკაცია! - tips: რჩევები title: კეთილი იყოს თქვენი მობრძანება, %{name}! users: invalid_otp_token: არასწორი მეორე ფაქტორის კოდი diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 66d029d7a9ba24..9c2539ce7c1e2b 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -1,75 +1,23 @@ --- kab: about: - about_hashtag_html: Tigi d tijewwiqin tizuyaz, ɣur-sent #%{hashtag}. Tzemreḍ ad tesdemreḍ akked yid-sent ma tesɛiḍ amiḍan deg kra n umḍiq deg fedivers. about_mastodon_html: 'Azeṭṭa ametti n uzekka: Ulac deg-s asussen, ulac taɛessast n tsuddiwin fell-ak, yebna ɣef leqder d ttrebga, daɣen d akeslemmas! Akked Maṣṭudun, isefka-inek ad qimen inek!' - about_this: Γef - active_count_after: d urmid - active_footnote: Imseqdacen yekkren s wayyur (MAU) - administered_by: 'Yettwadbel sɣur:' - api: API - apps: Isnasen izirazen - apps_platforms: Seqdec Maṣṭudun deg iOS, Android d tɣeṛγṛin-nniḍen - browse_directory: Qelleb deg ukaram n imaɣnuten teǧǧeḍ-d gar-asen widak tebɣiḍ - contact: Anermis contact_missing: Ur yettusbadu ara contact_unavailable: Wlac - discover_users: Af-d imseqdacen - documentation: Amnir - federation_hint_html: S umiḍan deg %{instance} tzemreḍ ad tḍefṛeḍ imdanen deg yal aqeddac Maṣṭudun d wugar n waya. - get_apps: Ɛreḍ asnas aziraz hosted_on: Maṣṭudun yersen deg %{domain} - learn_more: Issin ugar - privacy_policy: Tasertit tabaḍnit - rules: Ilugan n uqeddac - see_whats_happening: Ẓer d acu i iḍerrun - server_stats: 'Tidaddanin n uqeddac:' - source_code: Tangalt Taɣbalut - status_count_after: - one: n tsuffeɣt - other: n tsuffiɣin - status_count_before: I d-yessuffɣen - tagline: Ḍfeṛ imddukkal-ik tissineḍ-d wiyaḍ - terms: Tiwetlin n useqdec - unavailable_content: Ulac agbur - unavailable_content_description: - domain: Aqeddac - reason: Taɣzent - silenced: 'Tisuffɣin ara d-yekken seg yiqeddacen-agi ad ttwaffrent deg tsuddmin tizuyaz d yidiwenniten, daɣen ur ttilin ara telɣa ɣef usedmer n yimseqdacen-nsen, skud ur ten-teḍfiṛeḍ ara:' - silenced_title: Imeẓla yeggugmen - unavailable_content_html: Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi. - user_count_after: - one: amseqdac - other: imseqdacen - user_count_before: Amagger n - what_is_mastodon: D acu-t Maṣṭudun? + title: Γef accounts: - choices_html: 'Afranen n %{name}:' follow: Ḍfeṛ followers: one: Umeḍfaṛ other: Imeḍfaṛen following: Yeṭafaṛ - joined: Ikcemed deg %{date} last_active: armud aneggaru - media: Taɣwalt - moved_html: 'ibeddel %{name} amiḍan ɣer %{new_profile_link}:' - network_hidden: Ulac isalli-agi nothing_here: Ulac kra da! - people_followed_by: Imdanen i yeṭṭafaṛ %{name} - people_who_follow: Imdanen yeṭṭafaṛen %{name} posts: one: Tajewwiqt other: Tijewwiqin posts_tab_heading: Tijewwiqin - posts_with_replies: Tijewwaqin akked tririyin - roles: - admin: Anedbal - bot: Aṛubut - group: Agraw - moderator: Atrar - unavailable: Ur nufi ara amaɣnu-a - unfollow: Ur ṭṭafaṛ ara admin: account_actions: action: Eg tigawt @@ -82,7 +30,6 @@ kab: avatar: Tugna n umaɣnu by_domain: Taɣult change_email: - changed_msg: Imayl n umiḍan yettwabeddel mebla ugur! current_email: Imayl n tura label: Beddel imayl new_email: Imayl amaynut @@ -153,12 +100,6 @@ kab: reset: Wennez reset_password: Beddel awal uffir resubscribe: Ales ajerred - role: Tisirag - roles: - admin: Anedbal - moderator: Aseɣyad - staff: Tarbaɛt - user: Amseqdac search: Nadi search_same_email_domain: Iseqdacen-nniḍen s yiwet n taɣult n yimayl search_same_ip: Imseqdacen-nniḍen s tansa IP am tinn-ik @@ -233,7 +174,6 @@ kab: create_unavailable_domain_html: "%{name} iseḥbes asiweḍ ɣer taɣult %{target}" demote_user_html: "%{name} iṣubb-d deg usellun aseqdac %{target}" destroy_announcement_html: "%{name} yekkes taselɣut %{target}" - destroy_custom_emoji_html: "%{name} ihudd imuji %{target}" destroy_domain_allow_html: "%{name} yekkes taɣult %{target} seg tebdart tamellalt" destroy_domain_block_html: "%{name} yekkes aseḥbes n taɣult %{target}" destroy_email_domain_block_html: "%{name} yekkes asewḥel i taɣult n imayl %{target}" @@ -257,7 +197,6 @@ kab: update_custom_emoji_html: "%{name} ileqqem imuji %{target}" update_domain_block_html: "%{name} ileqqem iḥder n taɣult i %{target}" update_status_html: "%{name} ileqqem tasufeɣt n %{target}" - deleted_status: "(tasuffeɣt tettwakkes)" empty: Ulac iɣmisen i yellan. filter_by_action: Fren s tigawt filter_by_user: Sizdeg s useqdac @@ -431,6 +370,11 @@ kab: unresolved: Ur yefra ara updated_at: Yettwaleqqem view_profile: Wali amaɣnu + roles: + categories: + administration: Tadbelt + privileges: + administrator: Anedbal rules: add_new: Rnu alugen delete: Kkes @@ -438,26 +382,14 @@ kab: empty: Mazal ur ttwasbadun ara yilugan n uqeddac. title: Ilugan n uqeddac settings: - custom_css: - desc_html: Beddel aγan s CSS ara d-yettwasalayen deg yal asebter - title: CSS udmawan domain_blocks: all: I medden akk disabled: Γef ula yiwen users: Γef yimseqdacen idiganen i yeqqnen - profile_directory: - title: Rmed akaram n imaγnuten - registrations: - min_invite_role: - disabled: Ula yiwen·t registrations_mode: modes: none: Yiwen·t ur yzmir ad izeddi open: Zemren akk ad jerden - site_description: - title: Aglam n uqeddac - site_title: Isem n uqeddac - title: Iγewwaṛen n usmel site_uploads: delete: Kkes afaylu yulin statuses: @@ -492,10 +424,7 @@ kab: token_regenerated: Ajuṭu n unekcum yettusirew i tikkelt-nniḍen akken iwata your_token: Ajiṭun-ik·im n unekcum auth: - apply_for_account: Suter asnebgi change_password: Awal uffir - checkbox_agreement_html: Qebleγ ilugan n uqeddac-a akked tiwtilin n useqdec - checkbox_agreement_without_rules_html: Qebleγ tiwtilin n useqdec delete_account: Kkes amiḍan description: prefix_invited_by_user: "@%{name} inced-ik·ikem ad ternuḍ ɣer uqeddac-a n Mastodon!" @@ -518,7 +447,6 @@ kab: title: Sbadu status: account_status: Addad n umiḍan - trouble_logging_in: Γur-k uguren n tuqqna? use_security_key: Seqdec tasarut n teɣlist authorize_follow: already_following: Teṭafareḍ ya kan amiḍan-a @@ -555,9 +483,6 @@ kab: warning: username_available: Isem-ik·im n useqdac ad yuɣal yella i tikkelt-nniḍen username_unavailable: Isem-ik·im n useqdac ad yeqqim ulac-it - directories: - directory: Akaram n imaγnuten - explore_mastodon: Snirem %{title} errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -595,9 +520,7 @@ kab: new: title: Rnu yiwen umzizdig amaynut footer: - developers: Ineflayen - more: Ugar… - resources: Iɣbula + trending_now: Ayen mucaɛen tura generic: all: Akk changes_saved_msg: Ttwaskelsen ibelliden-ik·im akken ilaq! @@ -645,9 +568,6 @@ kab: incoming_migrations: Tusiḍ-d seg umiḍan nniḍen proceed_with_move: Awid imeḍfaṛen-ik notification_mailer: - digest: - action: Wali akk tilγa - mention: 'Yuder-ik-id %{name} deg:' favourite: subject: "%{name} yesmenyaf addad-ik·im" follow: @@ -678,11 +598,13 @@ kab: setup: Sbadu pagination: newer: Amaynut - next: Wayed + next: Γer zdat older: Aqbuṛ prev: Win iɛeddan preferences: other: Wiyaḍ + privacy_policy: + title: Tasertit tabaḍnit relationships: activity: Armud n umiḍan followers: Imeḍfaṛen @@ -694,22 +616,11 @@ kab: primary: Agejdan relationship: Assaɣ status: Addad n umiḍan - remote_follow: - no_account_html: Ur tesɛid ara amiḍan? Tzmreḍ ad jerdeḍ da - proceed: Kemmel taḍfart - remote_interaction: - favourite: - proceed: Kemmel asmenyef - reblog: - proceed: Sentem beṭṭu - reply: - proceed: Kemmel tiririt sessions: activity: Armud aneggaru browser: Iminig browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -723,7 +634,6 @@ kab: phantom_js: PhantomJS qq: Iminig QQ safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Tiγimit tamirant description: "%{browser} s %{platform}" @@ -731,8 +641,6 @@ kab: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: Linux @@ -760,6 +668,7 @@ kab: preferences: Imenyafen profile: Ameγnu relationships: Imeḍfaṛen akked wid i teṭṭafaṛeḍ + statuses_cleanup: Tukksa tawurmant n tsuffaɣ two_factor_authentication: Asesteb s snat n tarrayin webauthn_authentication: Tisura n teɣlist statuses: @@ -773,6 +682,7 @@ kab: video: one: "%{count} n tbidyutt" other: "%{count} n tbidyutin" + edited_at_html: Tettwaẓreg %{date} open_in_web: Ldi deg Web poll: total_people: @@ -801,14 +711,12 @@ kab: '2629746': 1 n wayyur '31556952': 1 n useggas '5259492': 2 n wayyuren - '604800': 1 week + '604800': 1 umalas '63113904': 2 n yiseggasen '7889238': 3 n wayyuren stream_entries: pinned: Tijewwiqt yettwasentḍen sensitive_content: Agbur amḥulfu - terms: - title: Tiwtilin n useqdec akked tsertit tabaḍnit n %{instance} themes: contrast: Maṣṭudun (agnil awriran) default: Maṣṭudun (Aberkan) @@ -827,6 +735,8 @@ kab: otp: Asnas n usesteb webauthn: Tisura n teɣlist user_mailer: + appeal_approved: + action: Ddu ɣer umiḍan-ik·im warning: categories: spam: Aspam @@ -837,9 +747,7 @@ kab: suspend: Amiḍan yettwaḥebsen welcome: full_handle: Tansa umiḍan-ik takemmalit - review_preferences_action: Beddel imenyafen subject: Ansuf γer Maṣṭudun - tips: Tixbaluyin title: Ansuf yessek·em, %{name}! users: signed_in_as: 'Teqqneḍ amzun d:' diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 1cf4b3ccf35971..a487070975c03c 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -1,84 +1,25 @@ --- kk: about: - about_hashtag_html: Бұл жерде #%{hashtag} хэштегімен жинақталған жазбалар. Желіге тіркеліп, сіз де қосыла аласыз бұл ортаға. about_mastodon_html: Mastodon - әлеуметтік желіге негізделген, тегін және веб протоколды, ашық кодты бағдарлама. Ол email сияқты орталығы жоқ құрылым. - about_this: Туралы - active_count_after: актив - active_footnote: Соңғы айдағы актив қолданушылар (MAU) - administered_by: 'Админ:' - apps: Мобиль қосымшалар - apps_platforms: iOS, Android және басқа платформалардағы Mastodon қолданыңыз - browse_directory: Профильдер каталогын қажет фильтрлер арқылы қараңыз - browse_local_posts: Осы желідегі ашық посттар стримын қараңыз - browse_public_posts: Mastodon-дағы ашық посттар стримын қараңыз - contact: Байланыс contact_missing: Бапталмаған contact_unavailable: Белгісіз - discover_users: Қолданушыларды іздеңіз - documentation: Құжаттама - federation_hint_html: "%{instance} платформасындағы аккаунтыңыз арқылы Mastodon желісіндегі кез келген сервердегі қолданушыларға жазыла аласыз." - get_apps: Мобиль қосымшаны қолданып көріңіз hosted_on: Mastodon орнатылған %{domain} доменінде - instance_actor_flash: | - Бұл аккаунт кез-келген жеке пайдаланушыны емес, сервердің өзін көрсету үшін қолданылатын виртуалды актер. - Ол федерация мақсаттарында қолданылады және сіз барлығын бұғаттағыңыз келмейінше, бұғатталмауы керек, бұл жағдайда сіз домен блогын қолданған жөн. - learn_more: Көбірек білу - privacy_policy: Құпиялылық саясаты - see_whats_happening: Не болып жатқанын қараңыз - server_stats: 'Сервер статистикасы:' - source_code: Ашық коды - status_count_after: - one: жазба - other: жазба - status_count_before: Барлығы - tagline: Достарыңызды оқыңыз және жаңа авторларды табыңыз - terms: Қолдану шарттары - unavailable_content: Қолжетімсіз контент - unavailable_content_description: - domain: Сервер - reason: Себеп - rejecting_media: 'Бұл серверлердегі медиа файлдар өңделмейді немесе сақталмайды және түпнұсқаға қолмен басуды қажет ететін нобайлар көрсетілмейді:' - silenced: 'Осы серверлердегі жазбалар жалпы уақыт кестесінде және сөйлесулерде жасырын болады және егер сіз оларды бақыламасаңыз, олардың пайдаланушыларының өзара әрекеттестігі туралы ешқандай хабарламалар жасалмайды:' - suspended: 'Бұл серверлерден ешқандай дерек өңделмейді, сақталмайды немесе алмаспайды, бұл серверлердегі пайдаланушылармен өзара әрекеттесуді немесе байланыс орнатуды мүмкін етпейді:' - unavailable_content_html: Мастодон, әдетте, мазмұнды көруге және кез-келген басқа сервердегі пайдаланушылармен қарым-қатынас жасауға мүмкіндік береді. Бұл нақты серверде жасалған ерекше жағдайлар. - user_count_after: - one: қолданушы - other: қолданушы - user_count_before: Желіде - what_is_mastodon: Mastodon деген не? accounts: - choices_html: "%{name} таңдаулары:" - endorsements_hint: Сіз веб-интерфейстен адамдарға қолдау көрсете аласыз және олар осында көрсетіледі. - featured_tags_hint: Мұнда көрсетілетін нақты хэштегтерді ұсына аласыз. follow: Жазылу followers: one: Оқырман other: Оқырман following: Жазылғандары - joined: Тіркелген күні %{date} last_active: соңғы әрекеті link_verified_on: Сілтеме меншігі расталған күн %{date} - media: Медиа - moved_html: "%{name} мына жерге көшті %{new_profile_link}:" - network_hidden: Бұл ақпарат қолжетімді емес nothing_here: Бұл жерде ештеңе жоқ! - people_followed_by: "%{name} жазылған адамдар" - people_who_follow: "%{name} атты қолданушының оқырмандары" pin_errors: following: Оқығыңыз келген адамға жазылуыңыз керек posts: one: Жазба other: Жазба posts_tab_heading: Жазба - posts_with_replies: Жазбалар және жауаптар - roles: - admin: Админ - bot: Бот - group: Топ - moderator: Мод - unavailable: Профиль қолжетімді емес - unfollow: Оқымау admin: account_actions: action: Әрекетті орындаңыз @@ -93,7 +34,6 @@ kk: avatar: Аватар by_domain: Домен change_email: - changed_msg: Аккаунт email-і сәтті өзгертілді! current_email: Қазіргі email label: email өзгерту new_email: Жаңа email @@ -158,12 +98,6 @@ kk: reset: Қалпына келтіру reset_password: Құпиясөзді қалпына келтіру resubscribe: Resubscribе - role: Рұқсаттар - roles: - admin: Админ - moderator: Модератор - staff: Қызметкерлер - user: Қолданушы search: Іздеу search_same_ip: Осы ІРмен кірген басқа қолданушылар shared_inbox_url: Бөлісілген инбокс URL @@ -185,7 +119,6 @@ kk: web: Веб whitelisted: Рұқсат тізімі action_logs: - deleted_status: "(өшірілген жазба)" title: Аудит логы announcements: destroyed_msg: Анонс сәтті өшірілді! @@ -342,91 +275,15 @@ kk: unresolved: Шешілмеген updated_at: Жаңартылды settings: - activity_api_enabled: - desc_html: Соңғы аптада жазылған жазбалар, белсенді қолданушылар, жаңа тіркелімдер - title: Пайдаланушы әрекеті туралы жиынтық статистиканы жариялау - bootstrap_timeline_accounts: - desc_html: Бірнеше пайдаланушы атын үтірмен бөліңіз. Тек жергілікті және бұғатталмаған аккаунттар. Барлық жергілікті админдер бос болғанда. - title: Жаңа қолданушыларға жазылғандар - contact_information: - email: Бизнес e-mail - username: Қолданушымен байланыс - custom_css: - desc_html: Әр беттегі өзгерістерді CSS жаңаруымен қарау - title: Жеке CSS - default_noindex: - desc_html: Бұл параметрді өзгертпеген барлық пайдаланушыларға әсер етеді - title: Әдепкі бойынша іздеу жүйелерін индекстеуден бас тарту domain_blocks: all: Бәріне disabled: Ешкімге - title: Домен блоктарын көрсету users: Жергілікті қолданушыларға - domain_blocks_rationale: - title: Дәлелді көрсету - hero: - desc_html: Бастапқы бетінде көрсетіледі. Кем дегенде 600x100px ұсынылады. Орнатылмаған кезде, сервердің нобайына оралады - title: Қаһарман суреті - mascot: - desc_html: Displayed on multiple pages. Кем дегенде 293×205px рекоменделеді. When not set, falls back to default mascot - title: Маскот суреті - peers_api_enabled: - desc_html: Домен names this server has encountered in the fediverse - title: Publish list of discovered серверлер - preview_sensitive_media: - desc_html: Link previews on other websites will display a thumbnail even if the media is marked as сезімтал - title: Show sensitive media in OpenGraph превью - profile_directory: - desc_html: Рұқсат users to be discoverable - title: Enable профиль directory - registrations: - closed_message: - desc_html: Displayed on frontpage when registrations are closed. You can use HTML тег - title: Closed registration мессадж - deletion: - desc_html: Allow anyone to delete their аккаунт - title: Open аккаунт deletion - min_invite_role: - disabled: Ешкім - title: Allow шақырулар by registrations_mode: modes: approved: Тіркелу үшін мақұлдау қажет none: Ешкім тіркеле алмайды open: Бәрі тіркеле алады - title: Тіркелулер - show_known_fediverse_at_about_page: - desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show жергілікті toots. - title: Show known fediverse on timeline превью - show_staff_badge: - desc_html: Show a staff badge on a user бет - title: Көрсет staff badge - site_description: - desc_html: Introductory paragraph on the басты бет. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a> and <em>. - title: Сервер туралы - site_description_extended: - desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML тег - title: Custom extended ақпарат - site_short_description: - desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to сервер description. - title: Short сервер description - site_terms: - desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML тег - title: Қолдану шарттары мен ережелер - site_title: Сервер аты - thumbnail: - desc_html: Used for previews via OpenGraph and API. 1200x630px рекоменделеді - title: Сервер суреті - timeline_preview: - desc_html: Display public timeline on лендинг пейдж - title: Таймлайн превьюі - title: Сайт баптаулары - trendable_by_default: - desc_html: Бұрын тыйым салынбаған хэштегтерге әсер етеді - title: Хэштегтерге алдын-ала шолусыз тренд беруге рұқсат етіңіз - trends: - desc_html: Бұрын қарастырылған хэштегтерді қазіргі уақытта трендте көпшілікке көрсету - title: Тренд хештегтер site_uploads: delete: Жүктелген файлды өшір destroyed_msg: Жүктелген файл сәтті өшірілді! @@ -477,16 +334,12 @@ kk: applications: created: Application succеssfully created destroyed: Application succеssfully deleted - invalid_url: The providеd URL is invalid regenerate_token: Regenerate accеss token token_regenerated: Access token succеssfully regenerated warning: Be very carеful with this data. Never share it with anyone! your_token: Your access tokеn auth: - apply_for_account: Шақыруды сұрау change_password: Құпиясөз - checkbox_agreement_html: Мен ережелер мен шарттарды қабылдаймын - checkbox_agreement_without_rules_html: Мен шарттармен келісемін delete_account: Аккаунт өшіру delete_account_html: Аккаунтыңызды жойғыңыз келсе, мына жерді басыңыз. Сізден растау сұралатын болады. description: @@ -519,7 +372,6 @@ kk: confirming: Электрондық поштаны растау аяқталуын күтуде. pending: Сіздің өтінішіңіз біздің қызметкерлеріміздің қарауында. Бұл біраз уақыт алуы мүмкін. Өтінішіңіз мақұлданса, сізге электрондық пошта хабарламасы келеді. redirecting_to: Сіздің есептік жазбаңыз белсенді емес, себебі ол %{acct} жүйесіне қайта бағытталуда. - trouble_logging_in: Кіру қиын ба? authorize_follow: already_following: Бұл аккаунтқа жазылғансыз error: Өкінішке орай, қашықтағы тіркелгіні іздеуде қате пайда болды @@ -567,10 +419,6 @@ kk: more_details_html: Қосымша мәліметтер алу үшін құпиялылық саясатын қараңыз. username_available: Аккаунтыңыз қайтадан қолжетімді болады username_unavailable: Логиніңіз қолжетімді болмайды - directories: - directory: Профильдер каталогы - explanation: Қолданушыларды қызығушылықтарына қарай реттеу - explore_mastodon: "%{title} шарлау" domain_validator: invalid_domain: жарамды домен атауы емес errors: @@ -620,7 +468,6 @@ kk: title: Фильтр өңдеу errors: invalid_context: Жоқ немесе жарамсыз контекст берілген - invalid_irreversible: Қайтарылмайтын сүзгі тек ішкі немесе ескертпелер контекстімен жұмыс істейді index: delete: Өшіру empty: Сізде ешқандай фильтр жоқ. @@ -628,9 +475,6 @@ kk: new: title: Жаңа фильтр қосу footer: - developers: Жасаушылар - more: Тағы… - resources: Ресурстар trending_now: Бүгінгі трендтер generic: all: Барлығы @@ -657,7 +501,6 @@ kk: following: Жазылғандар тізімі muting: Үнсіздер тізімі upload: Жүктеу - in_memoriam_html: Естеліктерде. invites: delete: Ажырату expired: Мерзімі өткен @@ -703,14 +546,6 @@ kk: moderation: title: Модерация notification_mailer: - digest: - action: Барлық ескертпелер - body: Міне, соңғы кірген уақыттан кейін келген хаттардың қысқаша мазмұны %{since} - mention: "%{name} сізді атап өтіпті:" - new_followers_summary: - one: Сондай-ақ, сіз бір жаңа оқырман таптыңыз! Алақай! - other: Сондай-ақ, сіз %{count} жаңа оқырман таптыңыз! Керемет! - title: Сіз жоқ кезде... favourite: body: 'Жазбаңызды ұнатып, таңдаулыға қосты %{name}:' subject: "%{name} жазбаңызды таңдаулыға қосты" @@ -785,22 +620,7 @@ kk: remove_selected_follows: Таңдалған қолданушыларды оқымау status: Аккаунт статусы remote_follow: - acct: Өзіңіздің username@domain теріңіз missing_resource: Аккаунтыңызға байланған URL табылмады - no_account_html: Әлі тіркелмегенсіз бе? Мына жерден тіркеліп алыңыз - proceed: Жазылу - prompt: 'Жазылғыңыз келеді:' - reason_html: "Неліктен бұл қадам қажет? %{instance} тіркелгіңіз келген сервер болмауы мүмкін, сондықтан сізді алдымен ішкі серверіңізге қайта бағыттау қажет." - remote_interaction: - favourite: - proceed: Таңдаулыға қосу - prompt: 'Мына жазбаны таңдаулыға қосасыз:' - reblog: - proceed: Жазба бөлісу - prompt: 'Сіз мына жазбаны бөлісесіз:' - reply: - proceed: Жауап жазу - prompt: 'Сіз мына жазбаға жауап жазасыз:' scheduled_statuses: over_daily_limit: Сіз бір күндік %{limit} жазба лимитін тауыстыңыз over_total_limit: Сіз %{limit} жазба лимитін тауыстыңыз @@ -810,7 +630,6 @@ kk: browser: Браузер browsers: alipay: Аlipay - blackberry: Blаckberry chrome: Chrоme edge: Microsоft Edge electron: Electrоn @@ -824,7 +643,6 @@ kk: phantom_js: PhаntomJS qq: QQ Brоwser safari: Safаri - uc_browser: UCBrоwser weibo: Weibо current_session: Қазіргі сессия description: "%{browser} - %{platform}" @@ -833,8 +651,6 @@ kk: platforms: adobe_air: Adobе Air android: Andrоid - blackberry: Blackbеrry - chrome_os: ChromеOS firefox_os: Firefоx OS ios: iОS linux: Lіnux @@ -910,89 +726,6 @@ kk: sensitive_content: Нәзік мазмұн tags: does_not_match_previous_name: алдыңғы атқа сәйкес келмейді - terms: - body_html: | -

      Құпиялылық шарттары

      -

      What information do we collect?

      - -
        -
      • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
      • -
      • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
      • -
      • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
      • -
      • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
      • -
      - -
      - -

      What do we use your information for?

      - -

      Any of the information we collect from you may be used in the following ways:

      - -
        -
      • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
      • -
      • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
      • -
      • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
      • -
      - -
      - -

      How do we protect your information?

      - -

      We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

      - -
      - -

      What is our data retention policy?

      - -

      We will make a good faith effort to:

      - -
        -
      • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
      • -
      • Retain the IP addresses associated with registered users no more than 12 months.
      • -
      - -

      You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

      - -

      You may irreversibly delete your account at any time.

      - -
      - -

      Do we use cookies?

      - -

      Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

      - -

      We use cookies to understand and save your preferences for future visits.

      - -
      - -

      Do we disclose any information to outside parties?

      - -

      We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

      - -

      Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

      - -

      When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

      - -
      - -

      Site usage by children

      - -

      If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

      - -

      If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

      - -

      Law requirements can be different if this server is in another jurisdiction.

      - -
      - -

      Changes to our Privacy Policy

      - -

      If we decide to change our privacy policy, we will post those changes on this page.

      - -

      This document is CC-BY-SA. It was last updated March 7, 2018.

      - -

      Originally adapted from the Discourse privacy policy.

      - title: "%{instance} Қызмет көрсету шарттары және Құпиялылық саясаты" themes: contrast: Mastodon (Жоғары контраст) default: Mastodon (Қою) @@ -1024,20 +757,11 @@ kk: suspend: Аккаунт тоқтатылды welcome: edit_profile_action: Профиль өңдеу - edit_profile_step: Профиліңізге аватар, мұқаба сурет жүктей аласыз, аты-жөніңізді көрсете аласыз. Оқырмандарыңызға сізбен танысуға рұқсат бермес бұрын аккаунтыңызды уақытша құлыптап қоюға болады. explanation: Мына кеңестерді шолып өтіңіз final_action: Жазба жазу - final_step: 'Жазуды бастаңыз! Тіпті оқырмандарыңыз болмаса да, сіздің жалпы жазбаларыңызды басқа адамдар көре алады, мысалы, жергілікті желіде және хэштегтерде. Жазбаларыңызға # протоколды хэштег қоссаңыз болады.' full_handle: Желі тұтқасы full_handle_hint: This is what you would tell your friends so they can message or follow you frоm another server. - review_preferences_action: Таңдауларды өзгерту - review_preferences_step: Қандай хат-хабарларын алуды қалайтыныңызды немесе сіздің хабарламаларыңыздың қандай құпиялылық деңгейін алғыңыз келетінін анықтаңыз. Сондай-ақ, сіз GIF автоматты түрде ойнату мүмкіндігін қосуды таңдай аласыз. subject: Mastodon Желісіне қош келдіңіз - tip_federated_timeline: Жаһандық желі - Mastodon желісінің негізгі құндылығы. - tip_following: Сіз бірден желі админіне жазылған болып саналасыз. Басқа адамдарға жазылу үшін жергілікті және жаһандық желіні шолып шығыңыз. - tip_local_timeline: Жерігілкті желіде маңайыздағы адамдардың белсенділігін көре аласыз %{instance}. Олар - негізгі көршілеріңіз! - tip_mobile_webapp: Мобиль браузеріңіз Mastodon желісін бастапқы бетке қосуды ұсынса, қабылдаңыз. Ескертпелер де шығатын болады. Арнайы қосымша сияқты бұл! - tips: Кеңестер title: Ортаға қош келдің, %{name}! users: follow_limit_reached: Сіз %{limit} лимитінен көп адамға жазыла алмайсыз diff --git a/config/locales/ko.yml b/config/locales/ko.yml index c16c4f3241e1fd..74f6f56a827c5b 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1,90 +1,25 @@ --- ko: about: - about_hashtag_html: "#%{hashtag} 해시태그가 붙은 공개 게시물입니다. 같은 연합에 속한 임의의 인스턴스에 계정을 생성하면 당신도 대화에 참여할 수 있습니다." about_mastodon_html: 마스토돈은 오픈 소스 기반의 소셜 네트워크 서비스 입니다. 상용 플랫폼의 대체로서 분산형 구조를 채택해, 여러분의 대화가 한 회사에 독점되는 것을 방지합니다. 신뢰할 수 있는 인스턴스를 선택하세요 — 어떤 인스턴스를 고르더라도, 누구와도 대화할 수 있습니다. 누구나 자신만의 마스토돈 인스턴스를 만들 수 있으며, 아주 매끄럽게 소셜 네트워크에 참가할 수 있습니다. - about_this: 이 인스턴스에 대해서 - active_count_after: 활성 사용자 - active_footnote: 월간 활성 사용자 - administered_by: '관리자:' - api: API - apps: 모바일 앱 - apps_platforms: 마스토돈을 iOS, 안드로이드, 다른 플랫폼들에서도 사용하세요 - browse_directory: 프로필 책자를 둘러보고 관심사 찾기 - browse_local_posts: 이 서버의 공개글 실시간 스트림을 둘러보기 - browse_public_posts: 마스토돈의 공개 라이브 스트림을 둘러보기 - contact: 연락처 contact_missing: 미설정 contact_unavailable: 없음 - continue_to_web: 웹앱에서 계속하기 - discover_users: 사용자 발견하기 - documentation: 문서 - federation_hint_html: "%{instance}에 계정을 만드는 것으로 모든 마스토돈 서버, 그리고 호환 되는 모든 서버의 사용자를 팔로우 할 수 있습니다." - get_apps: 모바일 앱 사용해 보기 hosted_on: "%{domain}에서 호스팅 되는 마스토돈" - instance_actor_flash: | - 이 계정은 가상의 actor로서 개인 사용자가 아닌 서버 자체를 나타냅니다. - 이것은 페더레이션을 목적으로 사용 되며 인스턴스 전체를 차단하려 하지 않는 이상 차단하지 않아야 합니다, 그 경우에는 도메인 차단을 사용하세요. - learn_more: 자세히 - logged_in_as_html: 현재 %{username}으로 로그인 했습니다. - logout_before_registering: 이미 로그인 했습니다. - privacy_policy: 개인정보 정책 - rules: 서버 규칙 - rules_html: '아래의 글은 이 마스토돈 서버에 계정이 있다면 따라야 할 규칙의 요약입니다:' - see_whats_happening: 무슨 일이 일어나는 지 보기 - server_stats: '서버 통계:' - source_code: 소스 코드 - status_count_after: - other: 개 - status_count_before: 게시물 수 - tagline: 친구들을 팔로우 하고 새로운 사람들도 만나기 - terms: 이용약관 - unavailable_content: 이용 불가능한 컨텐츠 - unavailable_content_description: - domain: 서버 - reason: 이유 - rejecting_media: 이 서버의 미디어 파일들은 처리되지 않고 썸네일또한 보이지 않게 됩니다. 수동으로 클릭하여 해당 서버로 가게 됩니다. - rejecting_media_title: 필터링 된 미디어 - silenced: 이 서버의 게시물은 작성자를 팔로우 한 경우에만 홈 피드에 나타나며 이를 제외한 어디에도 나타나지 않습니다. - silenced_title: 침묵 된 서버들 - suspended: 이 서버의 아무도 팔로우 할 수 없으며, 어떤 데이터도 처리되거나 저장 되지 않고 데이터가 교환 되지도 않습니다. - suspended_title: 금지된 서버들 - unavailable_content_html: 마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다. - user_count_after: - other: 명 - user_count_before: 사용자 수 - what_is_mastodon: 마스토돈이란? + title: 정보 accounts: - choices_html: "%{name}의 추천:" - endorsements_hint: 내가 팔로우 하고 있는 사람들을 여기에 추천 할 수 있습니다. - featured_tags_hint: 특정한 해시태그들을 여기에 표시되도록 할 수 있습니다. follow: 팔로우 followers: other: 팔로워 following: 팔로잉 instance_actor_flash: 이 계정은 서버 자신을 나타내기 위한 가상의 계정이며 개인 사용자가 아닙니다. 이 계정은 연합을 위해 사용되며 정지되지 않아야 합니다. - joined: "%{date}에 가입함" last_active: 최근 활동 link_verified_on: "%{date}에 이 링크의 소유가 확인되었습니다" - media: 미디어 - moved_html: "%{name}은 %{new_profile_link}으로 이동되었습니다:" - network_hidden: 이 정보는 사용할 수 없습니다 nothing_here: 아무 것도 없습니다! - people_followed_by: "%{name} 님이 팔로우 중인 계정" - people_who_follow: "%{name} 님을 팔로우 중인 계정" pin_errors: following: 추천하려는 사람을 팔로우 하고 있어야 합니다 posts: other: 게시물 posts_tab_heading: 게시물 - posts_with_replies: 게시물과 답장 - roles: - admin: 관리자 - bot: 봇 - group: 그룹 - moderator: 중재자 - unavailable: 프로필 사용 불가 - unfollow: 팔로우 해제 admin: account_actions: action: 조치 취하기 @@ -101,12 +36,17 @@ ko: avatar: 아바타 by_domain: 도메인 change_email: - changed_msg: 이메일이 성공적으로 바뀌었습니다! + changed_msg: 이메일이 성공적으로 변경되었습니다! current_email: 현재 이메일 주소 label: 이메일 주소 변경 new_email: 새 이메일 주소 submit: 이메일 주소 변경 title: "%{username}의 이메일 주소 변경" + change_role: + changed_msg: 역할이 성공적으로 변경되었습니다! + label: 역할 변경 + no_role: 역할 없음 + title: "%{username}의 역할 변경" confirm: 확인 confirmed: 확인됨 confirming: 확인 중 @@ -119,7 +59,7 @@ ko: disable_sign_in_token_auth: 이메일 토큰 인증 비활성화 disable_two_factor_authentication: 2단계 인증을 비활성화 disabled: 비활성화된 - display_name: 이름 + display_name: 표시되는 이름 domain: 도메인 edit: 편집 email: 이메일 @@ -149,20 +89,22 @@ ko: moderation: active: 활동 all: 전체 - pending: 대기중 + pending: 대기 중 + silenced: 제한됨 suspended: 정지 중 title: 중재 moderation_notes: 중재 기록 - most_recent_activity: 최근 활동 + most_recent_activity: 최근 활동순 most_recent_ip: 최근 IP - no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다 + no_account_selected: 아무 것도 선택 되지 않아 어떤 계정도 변경 되지 않았습니다 no_limits_imposed: 제한 없음 + no_role_assigned: 할당된 역할 없음 not_subscribed: 구독하지 않음 pending: 심사 대기 - perform_full_suspension: 정지시키기 + perform_full_suspension: 정지 previous_strikes: 이전의 처벌들 previous_strikes_description_html: - other: 이 계정은 %{count} 번의 처벌이 있었습니다. + other: 이 계정에는 %{count}번의 처벌이 있었습니다. promote: 승급 protocol: 프로토콜 public: 공개 @@ -182,19 +124,14 @@ ko: reset: 초기화 reset_password: 암호 초기화 resubscribe: 다시 구독 - role: 권한 - roles: - admin: 관리자 - moderator: 중재자 - staff: 스태프 - user: 사용자 + role: 역할 search: 검색 search_same_email_domain: 같은 이메일 도메인을 가진 다른 사용자들 search_same_ip: 같은 IP의 다른 사용자들 security_measures: only_password: 암호만 password_and_2fa: 암호와 2단계 인증 - sensitive: 민감함 + sensitive: 민감함 강제 sensitized: 민감함으로 설정됨 shared_inbox_url: 공유된 inbox URL show: @@ -212,7 +149,7 @@ ko: title: 계정 unblock_email: 이메일 주소 차단 해제 unblocked_email_msg: "%{username}의 이메일 주소를 성공적으로 차단 해제했습니다" - unconfirmed_email: 미확인 된 이메일 주소 + unconfirmed_email: 확인되지 않은 이메일 주소 undo_sensitized: 민감함으로 설정 취소 undo_silenced: 침묵 해제 undo_suspension: 정지 해제 @@ -230,17 +167,21 @@ ko: approve_user: 사용자 승인 assigned_to_self_report: 신고 맡기 change_email_user: 사용자의 이메일 변경 + change_role_user: 사용자 역할 변경 confirm_user: 사용자 확인 create_account_warning: 경고 생성 create_announcement: 공지사항 생성 + create_canonical_email_block: 이메일 차단 생성 create_custom_emoji: 커스텀 에모지 생성 create_domain_allow: 도메인 허용 생성 create_domain_block: 도메인 차단 추가 create_email_domain_block: 이메일 도메인 차단 생성 create_ip_block: IP 규칙 만들기 create_unavailable_domain: 사용 불가능한 도메인 생성 + create_user_role: 역할 생성 demote_user: 사용자 강등 destroy_announcement: 공지사항 삭제 + destroy_canonical_email_block: 이메일 차단 삭제 destroy_custom_emoji: 커스텀 에모지 삭제 destroy_domain_allow: 도메인 허용 삭제 destroy_domain_block: 도메인 차단 삭제 @@ -249,6 +190,7 @@ ko: destroy_ip_block: IP 규칙 삭제 destroy_status: 게시물 삭제 destroy_unavailable_domain: 사용 불가능한 도메인 제거 + destroy_user_role: 역할 삭제 disable_2fa_user: 2단계 인증 비활성화 disable_custom_emoji: 커스텀 에모지 비활성화 disable_sign_in_token_auth_user: 사용자에 대한 이메일 토큰 인증 비활성화 @@ -258,10 +200,11 @@ ko: enable_user: 사용자 활성화 memorialize_account: 추모계정으로 전환 promote_user: 사용자 승급 - reject_appeal: 이의제기 거절 + reject_appeal: 이의 제기 거절 reject_user: 사용자 거부 remove_avatar_user: 아바타 지우기 reopen_report: 신고 다시 열기 + resend_user: 확인 메일 다시 보내기 reset_password_user: 암호 재설정 resolve_report: 신고 처리 sensitive_account: 당신의 계정의 미디어를 민감함으로 표시 @@ -275,24 +218,30 @@ ko: update_announcement: 공지사항 업데이트 update_custom_emoji: 커스텀 에모지 업데이트 update_domain_block: 도메인 차단 갱신 + update_ip_block: IP 규칙 수정 update_status: 게시물 게시 + update_user_role: 역할 수정 actions: - approve_appeal_html: "%{name} 님이 %{target}의 중재 결정에 대한 이의제기를 승인했습니다" + approve_appeal_html: "%{name} 님이 %{target}의 중재 결정에 대한 이의 제기를 승인했습니다" approve_user_html: "%{name} 님이 %{target}의 가입을 승인했습니다" assigned_to_self_report_html: "%{name} 님이 신고 %{target}을 자신에게 할당했습니다" change_email_user_html: "%{name} 님이 사용자 %{target}의 이메일 주소를 변경했습니다" + change_role_user_html: "%{name} 님이 %{target} 님의 역할을 수정했습니다" confirm_user_html: "%{name} 님이 사용자 %{target}의 이메일 주소를 승인했습니다" create_account_warning_html: "%{name} 님이 %{target}에게 경고를 보냈습니다" create_announcement_html: "%{name} 님이 새 공지 %{target}을 만들었습니다" + create_canonical_email_block_html: "%{name} 님이 %{target} 해시를 가진 이메일을 차단했습니다" create_custom_emoji_html: "%{name} 님이 새로운 에모지 %{target}를 업로드 했습니다" create_domain_allow_html: "%{name} 님이 %{target} 도메인을 허용리스트에 넣었습니다" create_domain_block_html: "%{name} 님이 도메인 %{target}를 차단했습니다" create_email_domain_block_html: "%{name} 님이 이메일 도메인 %{target}를 차단했습니다" create_ip_block_html: "%{name} 님이 IP 규칙 %{target}을 만들었습니다" create_unavailable_domain_html: "%{name} 님이 도메인 %{target}에 대한 전달을 중지했습니다" + create_user_role_html: "%{name} 님이 %{target} 역할을 생성했습니다" demote_user_html: "%{name} 님이 사용자 %{target} 님을 강등했습니다" destroy_announcement_html: "%{name} 님이 공지 %{target}을 삭제했습니다" - destroy_custom_emoji_html: "%{name} 님이 %{target} 에모지를 삭제했습니다" + destroy_canonical_email_block_html: "%{name} 님이 %{target} 해시를 가진 이메일을 차단 해제했습니다" + destroy_custom_emoji_html: "%{name} 님이 에모지 %{target}를 삭제했습니다" destroy_domain_allow_html: "%{name} 님이 %{target} 도메인과의 연합을 금지했습니다" destroy_domain_block_html: "%{name} 님이 도메인 %{target}의 차단을 해제했습니다" destroy_email_domain_block_html: "%{name} 님이 이메일 도메인 %{target}을 차단 해제하였습니다" @@ -300,34 +249,38 @@ ko: destroy_ip_block_html: "%{name} 님이 IP 규칙 %{target}을 삭제하였습니다" destroy_status_html: "%{name} 님이 %{target}의 게시물을 삭제했습니다" destroy_unavailable_domain_html: "%{name} 님이 도메인 %{target}에 대한 전달을 재개" + destroy_user_role_html: "%{name} 님이 %{target} 역할을 삭제했습니다" disable_2fa_user_html: "%{name} 님이 사용자 %{target}의 2FA를 비활성화 했습니다" - disable_custom_emoji_html: "%{name} 님이 에모지 %{target}를 비활성화 했습니다" - disable_sign_in_token_auth_user_html: "%{name} 님이 %{target} 님의 이메일 토큰 인증을 비활성화 했습니다" - disable_user_html: "%{name} 님이 사용자 %{target}의 로그인을 비활성화 했습니다" - enable_custom_emoji_html: "%{name} 님이 에모지 %{target}를 활성화 했습니다" - enable_sign_in_token_auth_user_html: "%{name} 님이 %{target} 님의 이메일 토큰 인증을 활성화 했습니다" - enable_user_html: "%{name} 님이 사용자 %{target}의 로그인을 활성화 했습니다" + disable_custom_emoji_html: "%{name} 님이 에모지 %{target}를 비활성화했습니다" + disable_sign_in_token_auth_user_html: "%{name} 님이 %{target} 님의 이메일 토큰 인증을 비활성화했습니다" + disable_user_html: "%{name} 님이 사용자 %{target}의 로그인을 비활성화했습니다" + enable_custom_emoji_html: "%{name} 님이 에모지 %{target}를 활성화했습니다" + enable_sign_in_token_auth_user_html: "%{name} 님이 %{target} 님의 이메일 토큰 인증을 활성화했습니다" + enable_user_html: "%{name} 님이 사용자 %{target}의 로그인을 활성화했습니다" memorialize_account_html: "%{name} 님이 %{target}의 계정을 추모비 페이지로 전환했습니다" promote_user_html: "%{name} 님이 사용자 %{target}를 승급시켰습니다" - reject_appeal_html: "%{name} 님이 %{target}의 중재 결정에 대한 이의제기를 거절했습니다" + reject_appeal_html: "%{name} 님이 %{target}의 중재 결정에 대한 이의 제기를 거절했습니다" reject_user_html: "%{name} 님이 %{target}의 가입을 거부했습니다" remove_avatar_user_html: "%{name} 님이 %{target}의 아바타를 지웠습니다" reopen_report_html: "%{name} 님이 신고 %{target}을 다시 열었습니다" + resend_user_html: "%{name} 님이 %{target} 님에 대한 확인 메일을 다시 보냈습니다" reset_password_user_html: "%{name} 님이 사용자 %{target}의 암호를 초기화했습니다" resolve_report_html: "%{name} 님이 신고 %{target}를 처리됨으로 변경하였습니다" sensitive_account_html: "%{name} 님이 %{target}의 미디어를 민감함으로 표시했습니다" silence_account_html: "%{name} 님이 %{target}의 계정을 침묵시켰습니다" suspend_account_html: "%{name} 님이 %{target}의 계정을 정지시켰습니다" unassigned_report_html: "%{name} 님이 신고 %{target}을 할당 해제했습니다" - unblock_email_account_html: "%{name} 님이 %{target}의 이메일 주소를 차단 해제했습니다." + unblock_email_account_html: "%{name} 님이 %{target}의 이메일 주소를 차단 해제했습니다" unsensitive_account_html: "%{name} 님이 %{target}의 미디어를 민감하지 않음으로 표시했습니다" unsilence_account_html: "%{name} 님이 %{target}의 계정에 대한 침묵을 해제했습니다" unsuspend_account_html: "%{name} 님이 %{target}의 계정에 대한 정지를 해제했습니다" update_announcement_html: "%{name} 님이 공지사항 %{target}을 갱신했습니다" update_custom_emoji_html: "%{name} 님이 에모지 %{target}를 업데이트 했습니다" update_domain_block_html: "%{name} 님이 %{target}에 대한 도메인 차단을 갱신했습니다" - update_status_html: "%{name} 님이 %{target}의 게시물을 업데이트 했습니다" - deleted_status: "(삭제된 게시물)" + update_ip_block_html: "%{name} 님이 IP 규칙 %{target}을 수정했습니다" + update_status_html: "%{name} 님이 %{target}의 게시물을 업데이트했습니다" + update_user_role_html: "%{name} 님이 %{target} 역할을 수정했습니다" + deleted_account: 계정을 삭제했습니다 empty: 로그를 찾을 수 없습니다 filter_by_action: 행동으로 거르기 filter_by_user: 사용자로 거르기 @@ -364,13 +317,14 @@ ko: disabled_msg: 성공적으로 비활성화하였습니다 emoji: 에모지 enable: 활성화 - enabled: 활성됨 + enabled: 활성화됨 enabled_msg: 성공적으로 활성화하였습니다 image_hint: "%{size} 이하의 PNG 또는 GIF" list: 목록에 추가 listed: 목록에 실림 new: title: 새 커스텀 에모지 추가 + no_emoji_selected: 아무 것도 선택 되지 않아 어떤 에모지도 바뀌지 않았습니다 not_permitted: 이 작업을 수행할 권한이 없습니다 overwrite: 덮어쓰기 shortcode: 짧은 코드 @@ -389,13 +343,13 @@ ko: new_users: 새로운 사용자 opened_reports: 신고 열림 pending_appeals_html: - other: "%{count} 개의 대기 중인 이의제기" + other: "%{count}개의 대기 중인 이의 제기" pending_reports_html: - other: "%{count} 건의 대기 중인 신고" + other: "%{count}건의 대기 중인 신고" pending_tags_html: - other: "%{count} 개의 대기 중인 해시태그" + other: "%{count}개의 대기 중인 해시태그" pending_users_html: - other: "%{count} 명의 대기 중인 사용자" + other: "%{count}명의 대기 중인 사용자" resolved_reports: 신고 해결됨 software: 소프트웨어 sources: 가입 출처 @@ -419,13 +373,14 @@ ko: destroyed_msg: 도메인 차단이 해제되었습니다 domain: 도메인 edit: 도메인 차단 수정 + existing_domain_block: 이미 %{name}에 대한 더 강력한 제한이 있습니다. existing_domain_block_html: 이미 %{name}에 대한 더 강력한 제한이 걸려 있습니다, 차단 해제를 먼저 해야 합니다. new: create: 차단 추가 hint: 도메인 차단은 내부 데이터베이스에 계정이 생성되는 것까지는 막을 수 없지만, 그 도메인에서 생성된 계정에 자동적으로 특정한 중재 규칙을 적용하게 할 수 있습니다. severity: desc_html: |- - 침묵은 계정을 팔로우 하지 않고 있는 사람들에겐 계정의 게시물을 보이지 않게 합니다. 정지는 계정의 컨텐츠, 미디어, 프로필 데이터를 삭제합니다. + 침묵은 계정을 팔로우 하지 않고 있는 사람들에겐 계정의 게시물을 보이지 않게 합니다. 정지는 계정의 콘텐츠, 미디어, 프로필 데이터를 삭제합니다. 미디어 파일만을 거부하고 싶다면 없음으로 두세요. noop: 없음 silence: 침묵 @@ -446,7 +401,7 @@ ko: email_domain_blocks: add_new: 새로 추가 attempts_over_week: - other: 지난 주 동안 %{count} 건의 가입 시도가 있었습니다 + other: 지난 주 동안 %{count}건의 가입 시도가 있었습니다 created_msg: 이메일 도메인 차단 규칙을 생성했습니다 delete: 삭제 dns: @@ -513,11 +468,11 @@ ko: unavailable: 사용불가 delivery_available: 전송 가능 delivery_error_days: 전달 에러가 난 날짜들 - delivery_error_hint: 만약 %{count}일동안 전달이 불가능하다면, 자동으로 전달불가로 표시됩니다. + delivery_error_hint: 만약 %{count}일 동안 전달이 불가능하다면, 자동으로 전달 불가로 표시됩니다. destroyed_msg: "%{domain}의 데이터는 곧바로 지워지도록 대기열에 들어갔습니다." empty: 도메인이 하나도 없습니다. known_accounts: - other: "%{count} 개의 알려진 계정" + other: "%{count}개의 알려진 계정" moderation: all: 모두 limited: 제한됨 @@ -525,7 +480,7 @@ ko: private_comment: 비공개 주석 public_comment: 공개 주석 purge: 제거 - purge_description_html: 이 도메인이 영구적으로 오프라인 상태라고 생각되면 스토리지에서 이 도메인의 모든 계정 레코드와 관련 데이터를 삭제할 수 있습니다. 이 작업은 시간이 좀 걸릴 수 있습니다. + purge_description_html: 이 도메인이 영구적으로 오프라인 상태라고 생각되면, 스토리지에서 이 도메인의 모든 계정 레코드와 관련 데이터를 삭제할 수 있습니다. 이 작업은 시간이 좀 걸릴 수 있습니다. title: 연합 total_blocked_by_us: 우리에게 차단 됨 total_followed_by_them: 우리를 팔로우 @@ -568,7 +523,7 @@ ko: enable_hint: 활성화 되면, 이 릴레이의 모든 공개 게시물을 구독하고 이 서버의 공개 게시물을 전송하게 됩니다. enabled: 활성화 됨 inbox_url: 릴레이 URL - pending: 릴레이의 승인 대기중 + pending: 릴레이의 승인 대기 중 save_and_enable: 저장하고 활성화 setup: 릴레이 연결 설정 signatures_not_enabled: 시큐어모드나 제한된 페더레이션 모드를 사용하고 있다면 릴레이는 제대로 동작하지 않을 것입니다 @@ -590,12 +545,12 @@ ko: other_description_html: 계정 동작을 제어하고 신고된 계정과의 의사소통을 사용자 지정하기 위한 추가 옵션을 봅니다. resolve_description_html: 신고된 계정에 대해 아무런 동작도 취하지 않으며, 처벌기록이 남지 않으며, 신고는 처리됨으로 변경됩니다. silence_description_html: 이미 팔로우 하고 있는 사람이나 수동으로 찾아보는 사람에게만 프로필이 보여지고, 도달 범위를 엄격하게 제한합니다. 언제든지 되돌릴 수 있습니다. - suspend_description_html: 프로필과 모든 컨텐츠가 최종적으로 삭제될 때까지 접근 불가상태가 됩니다. 이 계정과의 상호작용은 불가능해집니다. 30일 이내에 되돌릴 수 있습니다. - actions_description_html: 이 보고서를 해결하기 위해 취해야 할 조치를 지정해주세요. 신고된 계정에 대해 처벌 조치를 취하면 스팸 카테고리가 선택된 경우를 제외하고 이메일 알림이 해당 계정으로 전송됩니다. + suspend_description_html: 프로필과 모든 콘텐츠가 최종적으로 삭제될 때까지 접근 불가상태가 됩니다. 이 계정과의 상호작용은 불가능해집니다. 30일 이내에 되돌릴 수 있습니다. + actions_description_html: 이 신고를 해결하기 위해 취해야 할 조치를 지정해주세요. 신고된 계정에 대해 처벌 조치를 취하면, 스팸 카테고리가 선택된 경우를 제외하고 해당 계정으로 이메일 알림이 전송됩니다. add_to_report: 신고에 더 추가하기 are_you_sure: 정말로 실행하시겠습니까? assign_to_self: 나에게 할당하기 - assigned: 할당 된 중재자 + assigned: 할당된 중재자 by_target_domain: 신고된 계정의 도메인 category: 카테고리 category_description_html: 이 계정 또는 게시물이 신고된 이유는 신고된 계정과의 의사소통 과정에 인용됩니다 @@ -617,8 +572,8 @@ ko: delete: 삭제 placeholder: 이 리포트에 대한 조치, 기타 관련 된 사항에 대해 설명합니다… title: 노트 - notes_description_html: 확인하고 다른 중재자나 미래의 자신을 위해 기록을 작성합니다 - quick_actions_description_html: '보고된 콘텐츠를 보려면 빠른 조치를 취하거나 아래로 스크롤하세요:' + notes_description_html: 확인하고 다른 중재자나 미래의 자신을 위해 노트를 작성합니다 + quick_actions_description_html: '빠른 조치를 취하거나 아래로 스크롤해서 신고된 콘텐츠를 확인하세요:' remote_user_placeholder: "%{instance}의 리모트 사용자" reopen: 리포트 다시 열기 report: '신고 #%{id}' @@ -628,14 +583,73 @@ ko: resolved_msg: 리포트가 성공적으로 해결되었습니다! skip_to_actions: 작업으로 건너뛰기 status: 상태 - statuses: 신고된 컨텐츠 - statuses_description_html: 문제가 되는 컨텐츠는 신고된 계정에게 인용되어 전달됩니다 + statuses: 신고된 콘텐츠 + statuses_description_html: 문제가 되는 콘텐츠는 신고된 계정에게 인용되어 전달됩니다 target_origin: 신고된 계정의 소속 title: 신고 unassign: 할당 해제 unresolved: 미해결 updated_at: 업데이트 시각 view_profile: 프로필 보기 + roles: + add_new: 역할 추가 + assigned_users: + other: "%{count}명의 사용자" + categories: + administration: 관리 + devops: 데브옵스 + invites: 초대 + moderation: 중재 + special: 특수 + delete: 삭제 + description_html: "사용자 역할을 통해, 사용자들이 마스토돈의 어떤 기능과 영역에 접근할 수 있을지 설정할 수 있습니다." + edit: "%{name} 역할 수정" + everyone: 기본 권한 + everyone_full_description_html: 이것은 모든 사용자에게 적용될 기본 역할이며, 역할을 지정하지 않아도 적용됩니다. 다른 모든 역할들은 여기에서 권한을 상속합니다. + permissions_count: + other: "%{count}개의 권한" + privileges: + administrator: 관리자 + administrator_description: 이 권한을 가진 사용자는 모든 권한을 우회합니다 + delete_user_data: 사용자 데이터 삭제 + delete_user_data_description: 사용자가 다른 사용자의 데이터를 지체 없이 삭제할 수 있도록 허용 + invite_users: 사용자 초대 + invite_users_description: 사용자가 다른 사람들을 서버에 초대할 수 있도록 허용 + manage_announcements: 공지 관리 + manage_announcements_description: 사용자가 서버의 공지사항을 관리할 수 있도록 허용 + manage_appeals: 이의제기 관리 + manage_appeals_description: 사용자가 중재에 대한 이의제기를 리뷰할 수 있도록 허용 + manage_blocks: 차단 관리 + manage_blocks_description: 사용자가 이메일 제공자와 IP 주소를 차단할 수 있도록 허용 + manage_custom_emojis: 커스텀 에모지 관리 + manage_custom_emojis_description: 사용자가 서버의 커스텀 에모지를 관리할 수 있도록 허용 + manage_federation: 연합 관리 + manage_federation_description: 사용자가 다른 도메인과의 연합을 차단하거나 허용할 수 있도록 하고, 전달 가능 여부를 조정할 수 있도록 허용 + manage_invites: 초대 관리 + manage_invites_description: 사용자가 초대 링크를 보고 비활성화 할 수 있도록 허용 + manage_reports: 신고 관리 + manage_reports_description: 사용자가 신고를 리뷰하고 해당 사용자에 대한 중재활동을 수행할 수 있도록 허용 + manage_roles: 역할 관리 + manage_roles_description: 사용자가 그들 이하의 권한에 대해 관리하고 할당할 수 있도록 허용 + manage_rules: 규칙 관리 + manage_rules_description: 사용자가 서버 규칙을 수정할 수 있도록 허용합니다 + manage_settings: 설정 관리 + manage_settings_description: 사용자가 서버 설정을 수정할 수 있도록 허용합니다 + manage_taxonomies: 분류 관리 + manage_taxonomies_description: 사용자가 트렌드를 리뷰하고 해시태그 설정을 수정할 수 있도록 허용합니다 + manage_user_access: 사용자 접근 관리 + manage_user_access_description: 사용자가 다른 사용자의 2차 인증을 비활성화 하거나, 이메일 주소를 바꾸거나, 암호를 초기화 할 수 있도록 허용 + manage_users: 사용자 관리 + manage_users_description: 사용자가 다른 사용자의 상세정보를 보고 해당 사용자에 대한 중재활동을 할 수 있도록 허용 + manage_webhooks: 웹훅 관리 + manage_webhooks_description: 사용자가 관리용 웹훅을 설정할 수 있도록 허용 + view_audit_log: 감사 기록 보기 + view_audit_log_description: 사용자가 서버의 감사 기록을 볼 수 있도록 허용 + view_dashboard: 대시보드 보기 + view_dashboard_description: 사용자가 여러 통계정보를 볼 수 있는 대시보드에 접근할 수 있도록 허용 + view_devops: 데브옵스 + view_devops_description: Sidekiq과 pgHero 대시보드에 접근할 수 있도록 허용 + title: 역할 rules: add_new: 규칙 추가 delete: 삭제 @@ -644,108 +658,67 @@ ko: empty: 아직 정의된 서버 규칙이 없습니다. title: 서버 규칙 settings: - activity_api_enabled: - desc_html: 주별 로컬에 게시 된 글, 활성 사용자 및 새로운 가입자 수 - title: 사용자 활동에 대한 통계 발행 - bootstrap_timeline_accounts: - desc_html: 콤마로 여러 사용자명을 구분. 이 계정들은 팔로우 추천에 반드시 나타나게 됩니다 - title: 새로운 사용자들에게 추천할 계정들 - contact_information: - email: 공개할 메일 주소를 입력 - username: 연락 받을 관리자 사용자명 - custom_css: - desc_html: 모든 페이지에 적용할 CSS - title: 커스텀 CSS - default_noindex: - desc_html: 이 설정을 바꾸지 않은 모든 사용자들에게 적용 됩니다 - title: 사용자들이 기본적으로 검색엔진에 인덱싱 되지 않도록 합니다 + about: + manage_rules: 서버 규칙 관리 + preamble: 이 서버가 어떻게 운영되고, 중재되고, 자금을 조달하는지 등에 관한 자세한 정보를 기입하세요. + rules_hint: 사용자들이 준수해야 할 규칙들을 위한 전용 공간입니다. + title: 정보 + appearance: + preamble: 마스토돈의 웹 인터페이스를 변경 + title: 외관 + branding: + preamble: 이 서버의 브랜딩은 네트워크의 다른 서버와 차별점을 부여합니다. 이 정보는 여러 환경에서 보여질 수 있는데, 예를 들면 마스토돈 인터페이스, 네이티브 앱, 다른 웹사이트나 메시지 앱에서 보이는 링크 미리보기, 기타 등등이 있습니다. 이러한 이유로 인해, 이 정보를 명확하고 짧고 간결하게 유지하는 것이 가장 좋습니다. + title: 브랜딩 + content_retention: + preamble: 마스토돈에 저장된 사용자 콘텐츠를 어떻게 다룰지 제어합니다. + title: 콘텐츠 보존기한 + discovery: + follow_recommendations: 팔로우 추천 + preamble: 흥미로운 콘텐츠를 노출하는 것은 마스토돈을 알지 못할 수도 있는 신규 사용자를 유입시키는 데 중요합니다. 이 서버에서 작동하는 다양한 발견하기 기능을 제어합니다. + profile_directory: 프로필 책자 + public_timelines: 공개 타임라인 + title: 발견하기 + trends: 유행 domain_blocks: all: 모두에게 disabled: 아무에게도 안 함 - title: 도메인 차단 보여주기 users: 로그인 한 사용자에게 - domain_blocks_rationale: - title: 사유 보여주기 - hero: - desc_html: 프론트페이지에 표시 됩니다. 최소 600x100픽셀을 권장합니다. 만약 설정되지 않았다면, 서버의 썸네일이 사용 됩니다 - title: 히어로 이미지 - mascot: - desc_html: 여러 페이지에서 보여집니다. 최소 293x205px을 추천합니다. 설정 되지 않은 경우, 기본 마스코트가 사용 됩니다 - title: 마스코트 이미지 - peers_api_enabled: - desc_html: 이 서버가 페디버스에서 만났던 도메인 네임들 - title: 발견 된 서버들의 리스트 발행 - preview_sensitive_media: - desc_html: 민감한 미디어로 설정되었더라도 다른 웹사이트에서 링크 미리보기에 썸네일을 보여줍니다 - title: 민감한 미디어를 오픈그래프 미리보기에 보여주기 - profile_directory: - desc_html: 사용자들이 발견 될 수 있도록 허용 - title: 프로필 책자 활성화 registrations: - closed_message: - desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다. HTML 태그를 사용할 수 있습니다 - title: 신규 등록 정지 시 메시지 - deletion: - desc_html: 사용자가 자신의 계정을 삭제할 수 있도록 허용합니다 - title: 계정 삭제를 허가함 - min_invite_role: - disabled: 아무도 못 하게 - title: 초대링크를 만들 수 있는 권한 - require_invite_text: - desc_html: 가입이 수동 승인을 필요로 할 때, "왜 가입하려고 하나요?" 항목을 선택사항으로 두는 것보다는 필수로 두는 것이 낫습니다 - title: 새 사용자가 초대 요청 글을 작성해야 하도록 + preamble: 누가 이 서버에 계정을 만들 수 있는 지 제어합니다. + title: 가입 registrations_mode: modes: approved: 가입하려면 승인이 필요함 none: 아무도 가입 할 수 없음 open: 누구나 가입 할 수 있음 - title: 가입 모드 - show_known_fediverse_at_about_page: - desc_html: 활성화 되면 프리뷰 페이지에서 페디버스의 모든 게시물을 표시합니다. 비활성화시 로컬에 있는 게시물만 표시 됩니다. - title: 타임라인 프리뷰에 알려진 페디버스 표시하기 - show_staff_badge: - desc_html: 사용자 페이지에 스태프 배지를 표시합니다 - title: 스태프 배지 표시 - site_description: - desc_html: API의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로 <a>, <em> 같은 것을 사용 가능합니다. - title: 서버 설명 - site_description_extended: - desc_html: 규칙, 가이드라인 등을 작성하기 좋은 곳입니다. HTML 태그를 사용할 수 있습니다 - title: 사이트 상세 설명 - site_short_description: - desc_html: 사이드바와 메타 태그에 나타납니다. 마스토돈이 무엇이고 이 서버의 특징은 무엇인지 한 문장으로 설명하세요. - title: 짧은 서버 설명 - site_terms: - desc_html: 당신은 독자적인 개인정보 취급 방침이나 이용약관, 그 외의 법적 근거를 작성할 수 있습니다. HTML태그를 사용할 수 있습니다 - title: 커스텀 서비스 이용 약관 - site_title: 서버 이름 - thumbnail: - desc_html: OpenGraph와 API의 미리보기로 사용 됩니다. 1200x630px을 권장합니다 - title: 서버 썸네일 - timeline_preview: - desc_html: 랜딩 페이지에 공개 타임라인을 표시합니다 - title: 타임라인 프리뷰 - title: 사이트 설정 - trendable_by_default: - desc_html: 이전에 거부되지 않은 해시태그들에 영향을 미칩니다 - title: 해시태그가 사전 리뷰 없이 트렌드에 올라갈 수 있도록 허용 - trends: - desc_html: 리뷰를 거친 해시태그를 유행하는 해시태그에 공개적으로 보여줍니다 - title: 유행하는 해시태그 + title: 서버 설정 site_uploads: delete: 업로드한 파일 삭제 destroyed_msg: 사이트 업로드를 성공적으로 삭제했습니다! statuses: + account: 작성자 + application: 애플리케이션 back_to_account: 계정으로 돌아가기 back_to_report: 신고 페이지로 돌아가기 batch: remove_from_report: 신고에서 제거 report: 신고 deleted: 삭제됨 + favourites: 좋아요 + history: 버전 이력 + in_reply_to: '회신 대상:' + language: 언어 media: title: 미디어 - no_status_selected: 아무 게시물도 선택 되지 않아 아무 것도 바뀌지 않았습니다 + metadata: 메타데이터 + no_status_selected: 아무 것도 선택 되지 않아 어떤 게시물도 바뀌지 않았습니다 + open: 게시물 열기 + original_status: 원본 게시물 + reblogs: 리블로그 + status_changed: 게시물 변경됨 title: 계정 게시물 + trending: 유행중 + visibility: 공개 설정 with_media: 미디어 있음 strikes: actions: @@ -760,7 +733,7 @@ ko: appeal_pending: 이의제기 대기중 system_checks: database_schema_check: - message_html: 데이터베이스 마이그레이션이 대기중입니다. 응용프로그램이 예상한대로 동작할 수 있도록 마이그레이션을 실행해 주세요 + message_html: 대기 중인 데이터베이스 마이그레이션이 있습니다. 애플리케이션이 예상대로 동작할 수 있도록 마이그레이션을 실행해 주세요 elasticsearch_running_check: message_html: Elasticsearch에 연결할 수 없습니다. 실행중인지 확인하거나, 전문검색을 비활성화하세요 elasticsearch_version_check: @@ -785,6 +758,9 @@ ko: description_html: 현재 서버에서 게시물을 볼 수 있는 계정에서 많이 공유되고 있는 링크들입니다. 사용자가 세상 돌아가는 상황을 파악하는 데 도움이 됩니다. 출처를 승인할 때까지 링크는 공개적으로 게시되지 않습니다. 각각의 링크를 개별적으로 허용하거나 거부할 수도 있습니다. disallow: 링크 거부하기 disallow_provider: 출처 거부하기 + no_link_selected: 아무 것도 선택 되지 않아 어떤 링크도 바뀌지 않았습니다 + publishers: + no_publisher_selected: 아무 것도 선택 되지 않아 어떤 게시자도 바뀌지 않았습니다 shared_by_over_week: other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다 title: 유행하는 링크 @@ -803,6 +779,7 @@ ko: description_html: 당신의 서버가 알기로 현재 많은 수의 공유와 좋아요가 되고 있는 게시물들입니다. 새로운 사용자나 돌아오는 사용자들이 팔로우 할 사람들을 찾는 데 도움이 될 수 있습니다. 작성자를 승인하고, 작성자가 그들의 계정이 다른 계정에게 탐색되도록 설정하지 않는 한 게시물들은 공개적으로 표시되지 않습니다. 또한 각각의 게시물을 별개로 거절할 수도 있습니다. disallow: 게시물 불허 disallow_account: 작성자 불허 + no_status_selected: 아무 것도 선택 되지 않아 어떤 유행중인 게시물도 바뀌지 않았습니다 not_discoverable: 작성자가 발견되기를 원치 않습니다 shared_by: other: "%{friendly_count} 번 공유되고 마음에 들어했습니다" @@ -817,6 +794,7 @@ ko: tag_uses_measure: 총 사용 description_html: 현재 서버에서 볼 수 있는 게시물에서 많이 공유되고 있는 해시태그들입니다. 현재 사람들이 무슨 이야기를 하고 있는지 사용자들이 파악할 수 있도록 도움이 됩니다. 승인하지 않는 한 해시태그는 공개적으로 게시되지 않습니다. listable: 추천될 수 있습니다 + no_tag_selected: 아무 것도 선택 되지 않아 어떤 태그도 바뀌지 않았습니다 not_listable: 추천될 수 없습니다 not_trendable: 유행 목록에 나타나지 않습니다 not_usable: 사용불가 @@ -836,6 +814,25 @@ ko: edit_preset: 경고 틀 수정 empty: 아직 어떤 경고 틀도 정의되지 않았습니다. title: 경고 틀 관리 + webhooks: + add_new: 엔드포인트 추가 + delete: 삭제 + description_html: "웹훅은 선택한 이벤트에 대해 마스토돈이 실시간 알림을 각자의 응용프로그램에게 보냄으로서, 당신의 응용프로그램이 자동으로 반응을 할 수 있도록 만듧니다." + disable: 비활성화 + disabled: 비활성화됨 + edit: 엔드포인트 수정 + empty: 아직 설정한 웹훅 엔드포인트가 없습니다. + enable: 활성화 + enabled: 활성화됨 + enabled_events: + other: "%{count}개의 이벤트가 활성화되어 있습니다" + events: 이벤트 + new: 새 웹훅 + rotate_secret: 비밀키 회전 + secret: 비밀키 서명 + status: 상태 + title: 웹훅 + webhook: 웹훅 admin_mailer: new_appeal: actions: @@ -853,18 +850,14 @@ ko: body: 아래에 새 계정에 대한 상세정보가 있습니다. 이 가입을 승인하거나 거부할 수 있습니다. subject: "%{instance}의 새 계정(%{username})에 대한 심사가 대기중입니다" new_report: - body: "%{reporter} 가 %{target} 를 신고했습니다" + body: "%{reporter} 님이 %{target}를 신고했습니다" body_remote: "%{domain}의 누군가가 %{target}을 신고했습니다" subject: "%{instance} 에 새 신고 등록됨 (#%{id})" new_trends: body: '아래에 있는 항목들은 공개적으로 보여지기 전에 검토를 거쳐야 합니다:' new_trending_links: - no_approved_links: 현재 승인된 유행 중인 링크가 없습니다. - requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 링크를 앞지를 수 있으며, 이것은 현재 "%{lowest_link_title}"이고 %{lowest_link_score}점을 기록하고 있습니다.' title: 유행하는 링크 new_trending_statuses: - no_approved_statuses: 현재 승인된 유행 중인 게시물이 없습니다. - requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 게시물을 앞지를 수 있으며, 이것은 현재 %{lowest_status_url}이고 %{lowest_status_score}점을 기록하고 있습니다.' title: 유행하는 게시물 new_trending_tags: no_approved_tags: 현재 승인된 유행 중인 해시태그가 없습니다. @@ -900,16 +893,13 @@ ko: applications: created: 애플리케이션이 성공적으로 생성되었습니다 destroyed: 애플리케이션이 성공적으로 삭제되었습니다 - invalid_url: 올바르지 않은 URL입니다 regenerate_token: 토큰 재생성 token_regenerated: 액세스 토큰이 성공적으로 재생성되었습니다 warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요! your_token: 액세스 토큰 auth: - apply_for_account: 가입 요청하기 + apply_for_account: 대기자 명단에 들어가기 change_password: 패스워드 - checkbox_agreement_html: 서버 규칙이용약관에 동의합니다 - checkbox_agreement_without_rules_html: 이용 약관에 동의합니다 delete_account: 계정 삭제 delete_account_html: 계정을 삭제하고 싶은 경우, 여기서 삭제할 수 있습니다. 삭제 전 확인 화면이 표시됩니다. description: @@ -928,6 +918,7 @@ ko: migrate_account: 계정 옮기기 migrate_account_html: 이 계정을 다른 계정으로 리디렉션 하길 원하는 경우 여기에서 설정할 수 있습니다. or_log_in_with: 다른 방법으로 로그인 하려면 + privacy_policy_agreement_html: 개인정보 보호정책을 읽었고 동의합니다 providers: cas: CAS saml: SAML @@ -935,21 +926,26 @@ ko: registration_closed: "%{instance}는 새로운 가입을 받지 않고 있습니다" resend_confirmation: 확인 메일을 다시 보내기 reset_password: 암호 재설정 + rules: + preamble: 다음은 %{domain}의 중재자들에 의해 설정되고 적용되는 규칙들입니다. + title: 몇 개의 규칙이 있습니다. security: 보안 set_new_password: 새 암호 setup: email_below_hint_html: 아래의 이메일 계정이 올바르지 않을 경우, 여기서 변경하고 새 확인 메일을 받을 수 있습니다. email_settings_hint_html: 확인 메일이 %{email}로 보내졌습니다. 이메일 주소가 올바르지 않은 경우, 계정 설정에서 변경하세요. title: 설정 + sign_up: + preamble: 이 마스토돈 서버의 계정을 통해, 네트워크에 속한 다른 사람들을, 그들이 어떤 서버에 있든 팔로우 할 수 있습니다. + title: "%{domain}에 가입하기 위한 정보들을 입력하세요." status: account_status: 계정 상태 confirming: 이메일 확인 과정이 완료되기를 기다리는 중. functional: 계정이 완벽히 작동합니다. - pending: 당신의 가입 신청은 스태프의 검사를 위해 대기중입니다. 이것은 시간이 다소 소요됩니다. 가입 신청이 승인 될 경우 이메일을 받게 됩니다. + pending: 당신의 가입 신청은 스태프의 검사를 위해 대기 중입니다. 시간이 조금 걸릴 수 있습니다. 가입 신청이 승인되면 이메일을 받게 됩니다. redirecting_to: 계정이 %{acct}로 리다이렉트 중이기 때문에 비활성 상태입니다. view_strikes: 내 계정에 대한 과거 중재 기록 보기 too_fast: 너무 빠르게 양식이 제출되었습니다, 다시 시도하세요. - trouble_logging_in: 로그인 하는데 문제가 있나요? use_security_key: 보안 키 사용 authorize_follow: already_following: 이미 이 계정을 팔로우 하고 있습니다 @@ -998,7 +994,7 @@ ko: success_msg: 계정이 성공적으로 삭제되었습니다 warning: before: '진행하기 전, 주의사항을 꼼꼼히 읽어보세요:' - caches: 다른 서버에 캐싱 된 정보들은 남아있을 수 있습니다 + caches: 다른 서버에 캐싱된 정보들은 남아있을 수 있습니다 data_removal: 당신의 게시물과 다른 정보들은 영구적으로 삭제 됩니다 email_change_html: 계정을 지우지 않고도 이메일 주소를 수정할 수 있습니다 email_contact_html: 아직 도착하지 않았다면, %{email}에 메일을 보내 도움을 요청할 수 있습니다 @@ -1007,10 +1003,6 @@ ko: more_details_html: 더 자세한 정보는, 개인정보 정책을 참고하세요. username_available: 당신의 계정명은 다시 사용할 수 있게 됩니다 username_unavailable: 당신의 계정명은 앞으로 사용할 수 없습니다 - directories: - directory: 프로필 책자 - explanation: 관심사에 대한 사용자들을 발견합니다 - explore_mastodon: "%{title} 탐사하기" disputes: strikes: action_taken: 내려진 징계 @@ -1026,7 +1018,7 @@ ko: created_at: 날짜 description_html: 이 결정사항들은 당신에 계정에 대해 행해졌고 %{instance}의 스태프에 의해 경고가 발송되었습니다. recipient: 수신자 - reject_appeal: 이의제기 거절 + reject_appeal: 이의 제기 거절 status: '게시물 #%{id}' status_removed: 게시물이 이미 시스템에서 지워졌습니다 title: "%{action} (%{date}에)" @@ -1089,29 +1081,54 @@ ko: public: 퍼블릭 타임라인 thread: 대화 edit: + add_keyword: 키워드 추가 + keywords: 키워드 + statuses: 개별 게시물 + statuses_hint_html: 이 필터는 아래의 키워드에 매칭되는지 여부와 관계 없이 몇몇개의 게시물들에 별개로 적용되었습니다. 검토하거나 필터에서 삭제하세요 title: 필터 편집 errors: + deprecated_api_multiple_keywords: 이 파라미터들은 하나를 초과하는 필터 키워드에 적용되기 때문에 이 응용프로그램에서 수정될 수 없습니다. 더 최신의 응용프로그램이나 웹 인터페이스를 사용하세요. invalid_context: 컨텍스트가 없거나 올바르지 않습니다 - invalid_irreversible: 되돌릴 수 없는 필터링은 홈 타임라인과 알림에서만 동작합니다 index: + contexts: "%{contexts}에 대한 필터" delete: 삭제 empty: 필터가 없습니다. + expires_in: "%{distance} 안에 만료됨" + expires_on: "%{date}에 만료됨" + keywords: + other: "%{count}개의 키워드" + statuses: + other: "%{count}개의 게시물" + statuses_long: + other: "%{count}개의 개별적인 게시물 숨겨짐" title: 필터 new: + save: 새 필터 저장 title: 필터 추가 + statuses: + back_to_filter: 필터로 돌아가기 + batch: + remove: 필터에서 제거 + index: + hint: 이 필터는 다른 기준에 관계 없이 선택된 개별적인 게시물들에 적용됩니다. 웹 인터페이스에서 더 많은 게시물들을 이 필터에 추가할 수 있습니다. + title: 필터링된 게시물 footer: - developers: 개발자 - more: 더 보기… - resources: 리소스 trending_now: 지금 유행중 generic: all: 모두 + all_items_on_page_selected_html: + other: 현재 페이지에서 %{count}개의 항목이 선택되었습니다 + all_matching_items_selected_html: + other: 검색에 잡힌 %{count}개의 항목이 모두 선택되었습니다 changes_saved_msg: 정상적으로 변경되었습니다! copy: 복사 delete: 삭제 + deselect: 전체 선택 해제 none: 없음 order_by: 순서 save_changes: 변경 사항을 저장 + select_all_matching_items: + other: 검색에 잡힌 %{count}개의 항목을 모두 선택하기 today: 오늘 validation_errors: other: 오류가 발생했습니다. 아래 %{count}개 오류를 확인해 주십시오 @@ -1126,7 +1143,7 @@ ko: overwrite: 덮어쓰기 overwrite_long: 기존 것을 모두 지우고 새로 추가 preface: 다른 서버에서 내보내기 한 파일에서 팔로우 / 차단 정보를 이 계정으로 불러올 수 있습니다. - success: 파일이 정상적으로 업로드 되었으며, 현재 처리 중입니다 + success: 파일이 정상적으로 업로드되었으며, 현재 처리 중입니다 types: blocking: 차단한 계정 목록 bookmarks: 보관함 @@ -1134,7 +1151,6 @@ ko: following: 팔로우 중인 계정 목록 muting: 뮤트 중인 계정 목록 upload: 업로드 - in_memoriam_html: 고인의 계정입니다. invites: delete: 비활성화 expired: 만료됨 @@ -1149,7 +1165,7 @@ ko: generate: 생성 invited_by: '당신을 초대한 사람:' max_uses: - other: "%{count} 회" + other: "%{count}회" max_uses_prompt: 제한 없음 prompt: 이 서버에 대한 초대 링크를 만들고 공유합니다 table: @@ -1212,26 +1228,21 @@ ko: carry_blocks_over_text: 이 사용자는 당신이 차단한 %{acct}로부터 이주 했습니다. carry_mutes_over_text: 이 사용자는 당신이 뮤트한 %{acct}로부터 이주 했습니다. copy_account_note_text: '이 사용자는 %{acct}로부터 이동하였습니다. 당신의 이전 노트는 이렇습니다:' + navigation: + toggle_menu: 토글 메뉴 notification_mailer: admin: + report: + subject: "%{name} 님이 신고를 제출했습니다" sign_up: subject: "%{name} 님이 가입했습니다" - digest: - action: 모든 알림 보기 - body: 마지막 로그인(%{since}) 이후로 일어난 일들에 관한 요약 - mention: "%{name} 님이 나를 언급했습니다:" - new_followers_summary: - other: 게다가, 접속하지 않은 동안 %{count} 명의 팔로워가 생겼습니다! - subject: - other: 마지막 방문 이후로 %{count} 건의 새로운 알림 - title: 당신이 없는 동안에... favourite: body: '당신의 게시물을 %{name} 님이 마음에 들어했습니다:' subject: "%{name} 님이 내 게시물을 마음에 들어했습니다" title: 새 좋아요 follow: - body: "%{name} 님이 나를 팔로우 했습니다!" - subject: "%{name} 님이 나를 팔로우 했습니다" + body: "%{name} 님이 나를 팔로우했습니다!" + subject: "%{name} 님이 나를 팔로우했습니다" title: 새 팔로워 follow_request: action: 팔로우 요청 관리 @@ -1296,9 +1307,11 @@ ko: other: 기타 posting_defaults: 게시물 기본설정 public_timelines: 공개 타임라인 + privacy_policy: + title: 개인정보 정책 reactions: errors: - limit_reached: 다른 리액션 제한에 도달했습니다 + limit_reached: 리액션 갯수 제한에 도달했습니다 unrecognized_emoji: 인식 되지 않은 에모지입니다 relationships: activity: 계정 활동 @@ -1318,22 +1331,7 @@ ko: remove_selected_follows: 선택한 사용자들을 팔로우 해제 status: 계정 상태 remote_follow: - acct: 당신이 사용하는 아이디@도메인을 입력해 주십시오 missing_resource: 리디렉션 대상을 찾을 수 없습니다 - no_account_html: 계정이 없나요? 여기에서 가입 할 수 있습니다 - proceed: 팔로우 하기 - prompt: '팔로우 하려 하고 있습니다:' - reason_html: "왜 이 과정이 필요하죠?%{instance}는 당신이 가입한 서버가 아닐 것입니다, 당신의 홈 서버로 먼저 가야 합니다." - remote_interaction: - favourite: - proceed: 좋아요 진행 - prompt: '이 게시물을 좋아요 하려고 합니다:' - reblog: - proceed: 부스트 진행 - prompt: '이 게시물을 부스트 하려 합니다:' - reply: - proceed: 답장 진행 - prompt: '이 게시물에 답장을 하려 합니다:' reports: errors: invalid_rules: 올바른 규칙을 포함하지 않습니다 @@ -1365,11 +1363,11 @@ ko: phantom_js: 팬텀JS qq: QQ 브라우저 safari: 사파리 - uc_browser: UC브라우저 + uc_browser: UC 브라우저 weibo: 웨이보 current_session: 현재 세션 description: "%{platform}의 %{browser}" - explanation: 내 마스토돈 계정에 현재 로그인 중인 웹 브라우저 목록입니다. + explanation: 내 마스토돈 계정에 로그인되어 있는 웹 브라우저 목록입니다. ip: IP platforms: adobe_air: 어도비 Air @@ -1381,9 +1379,9 @@ ko: linux: 리눅스 mac: 맥OS other: 알 수 없는 플랫폼 - windows: 윈도우즈 - windows_mobile: 윈도우즈 모바일 - windows_phone: 윈도우즈 폰 + windows: 윈도우 + windows_mobile: 윈도우 모바일 + windows_phone: 윈도우 폰 revoke: 삭제 revoke_success: 세션이 성공적으로 삭제되었습니다 title: 세션 @@ -1417,7 +1415,7 @@ ko: other: "%{count}개의 오디오" description: '첨부: %{attached}' image: - other: "%{count} 이미지" + other: "%{count}장의 이미지" video: other: "%{count}개의 영상" boosted_from_html: "%{acct_link}의 글을 부스트" @@ -1493,95 +1491,12 @@ ko: stream_entries: pinned: 고정된 게시물 reblogged: 님이 부스트 했습니다 - sensitive_content: 민감한 컨텐츠 + sensitive_content: 민감한 콘텐츠 strikes: errors: too_late: 이의를 제기하기에 너무 늦었습니다 tags: does_not_match_previous_name: 이전 이름과 맞지 않습니다 - terms: - body_html: | -

      개인정보 정책

      -

      우리가 어떤 정보를 수집하나요?

      - -
        -
      • 기본 계정 정보: 이 서버에 가입하실 때 사용자명, 이메일 주소, 패스워드 등을 입력 받게 됩니다. 추가적으로 표시되는 이름이나 자기소개, 프로필 이미지, 헤더 이미지 등의 프로필 정보를 입력하게 됩니다. 사용자명, 표시되는 이름, 자기소개, 프로필 이미지와 헤더 이미지는 언제나 공개적으로 게시됩니다.
      • -
      • 게시물, 팔로잉, 기타 공개된 정보: 당신이 팔로우 하는 사람들의 리스트는 공개됩니다. 당신을 팔로우 하는 사람들도 마찬가지입니다. 당신이 게시물을 작성하는 경우, 응용프로그램이 메시지를 받았을 때의 날짜와 시간이 기록 됩니다. 게시물은 그림이나 영상 등의 미디어를 포함할 수 있습니다. 퍼블릭과 미표시(unlisted) 게시물은 공개적으로 접근이 가능합니다. 프로필에 게시물을 고정하는 경우 마찬가지로 공개적으로 접근 가능한 정보가 됩니다. 당신의 게시물들은 당신의 팔로워들에게 전송 됩니다. 몇몇 경우 이것은 다른 서버에 전송되고 그곳에 사본이 저장 됩니다. 당신이 게시물을 삭제하는 경우 이 또한 당신의 팔로워들에게 전송 됩니다. 다른 게시물을 리블로깅 하거나 좋아요 하는 경우 이는 언제나 공개적으로 제공 됩니다.
      • -
      • DM, 팔로워 공개 게시물: 모든 게시물들은 서버에서 처리되고 저장됩니다. 팔로워 공개 게시물은 당신의 팔로워와 멘션 된 사람들에게 전달이 됩니다. 다이렉트 메시지는 멘션 된 사람들에게만 전송 됩니다. 몇몇 경우 이것은 다른 서버에 전송 되고 그곳에 사본이 저장됨을 의미합니다. 우리는 이 게시물들이 권한을 가진 사람들만 열람이 가능하도록 노력을 할 것이지만 다른 서버에서는 이것이 실패할 수도 있습니다. 그러므로 당신의 팔로워들이 속한 서버를 재확인하는 것이 중요합니다. 당신은 새 팔로워를 수동으로 승인하거나 거절하도록 설정을 변경할 수 있습니다. 해당 서버의 운영자는 서버가 받는 메시지를 열람할 수 있다는 것을 항상 염두해 두세요, 그리고 수신자들은 스크린샷을 찍거나 복사하는 등의 방법으로 다시 공유할 수 있습니다. 위험한 정보를 마스토돈을 통해 공유하지 마세요.
      • -
      • IP와 기타 메타데이터: 당신이 로그인 하는 경우 IP 주소와 브라우저의 이름을 저장합니다. 모든 세션은 당신이 검토하고 취소할 수 있도록 설정에서 제공 됩니다. 마지막으로 사용 된 IP 주소는 최대 12개월 간 저장됩니다. 또한, 모든 요청에 대해 IP주소를 포함한 정보를 로그에 저장할 수 있습니다.
      • -
      - -
      - -

      우리가 당신의 정보를 어디에 쓰나요?

      - -

      당신에게서 수집한 정보는 다음과 같은 곳에 사용 됩니다:

      - -
        -
      • 마스토돈의 주요 기능 제공. 다른 사람의 게시물에 상호작용 하거나 자신의 게시물을 작성하기 위해서는 로그인을 해야 합니다. 예를 들어, 다른 사람의 게시물을 자신만의 홈 타임라인에서 모아 보기 위해 팔로우를 할 수 있습니다.
      • -
      • 커뮤니티의 중재를 위해, 예를 들어 당신의 IP 주소와 기타 사항을 비교하여 금지를 우회하거나 다른 규칙을 위반하는지 판단하는 데에 사용할 수 있습니다.
      • -
      • 당신이 제공한 이메일 주소를 통해 정보, 다른 사람들의 반응이나 받은 메시지에 대한 알림, 기타 요청 등에 관한 응답 요청 등을 보내는 데에 활용됩니다.
      • -
      - -
      - -

      어떻게 당신의 정보를 보호하나요?

      - -

      우리는 당신이 입력, 전송, 접근하는 개인정보를 보호하기 위해 다양한 보안 대책을 적용합니다. 당신의 브라우저 세션, 당신의 응용프로그램과의 통신, API는 SSL로 보호 되며 패스워드는 강력한 단방향 해시 알고리즘을 사용합니다. 계정의 더 나은 보안을 위해 2단계 인증을 활성화 할 수 있습니다.

      - -
      - -

      자료 저장 정책은 무엇이죠?

      - -

      우리는 다음을 위해 노력을 할 것입니다:

      - -
        -
      • IP를 포함해 이 서버에 전송 되는 모든 요청에 대한 로그는 90일을 초과하여 저장되지 않습니다.
      • -
      • 가입 된 사용자의 IP 정보는 12개월을 초과하여 저장 되지 않습니다.
      • -
      - -

      당신은 언제든지 게시물, 미디어 첨부, 프로필 이미지, 헤더 이미지를 포함한 당신의 컨텐트에 대한 아카이브를 요청하고 다운로드 할 수 있습니다.

      - -

      언제든지 계정을 완전히 삭제할 수 있습니다.

      - -
      - -

      쿠키를 사용하나요?

      - -

      네. 쿠키는 (당신이 허용한다면) 당신의 웹 브라우저를 통해 서버에서 당신의 하드드라이브에 저장하도록 전송하는 작은 파일들입니다. 이 쿠키들은 당신의 브라우저를 인식하고, 계정이 있는 경우 이와 연결하는 것을 가능하게 합니다.

      - -

      당신의 환경설정을 저장하고 다음 방문에 활용하기 위해 쿠키를 사용합니다.

      - -
      - -

      외부에 정보를 공개하나요?

      - -

      우리는 당신을 식별 가능한 개인정보를 외부에 팔거나 제공하거나 전송하지 않습니다. 이는 당사의 사이트를 운영하기 위한, 기밀 유지에 동의하는, 신뢰 가능한 서드파티를 포함하지 않습니다. 또한 법률 준수, 사이트 정책 시행, 또는 당사나 타인에 대한 권리, 재산, 또는 안전보호를 위해 적절하다고 판단되는 경우 당신의 정보를 공개할 수 있습니다.

      - -

      당신의 공개 게시물은 네트워크에 속한 다른 서버가 다운로드 할 수 있습니다. 당신의 팔로워나 수신자가 이 서버가 아닌 다른 곳에 존재하는 경우 당신의 공개, 팔로워 공개 게시물은 당신의 팔로워가 존재하는 서버로 전송되며, 다이렉트메시지는 수신자가 존재하는 서버로 전송 됩니다.

      - -

      당신이 계정을 사용하기 위해 응용프로그램을 승인하는 경우 당신이 허용한 권한에 따라 응용프로그램은 당신의 공개 계정정보, 팔로잉 리스트, 팔로워 리스트, 게시물, 좋아요 등에 접근이 가능해집니다. 응용프로그램은 절대로 당신의 이메일 주소나 패스워드에 접근할 수 없습니다.

      - -
      - -

      어린이의 사이트 사용

      - -

      이 서버가 EU나 EEA에 속해 있다면: 당사의 사이트, 제품과 서비스는 16세 이상인 사람들을 위해 제공됩니다. 당신이 16세 미만이라면 GDPR(General Data Protection Regulation)의 요건에 따라 이 사이트를 사용할 수 없습니다.

      - -

      이 서버가 미국에 속해 있다면: 당사의 사이트, 제품과 서비스는 13세 이상인 사람들을 위해 제공됩니다. 당신이 13세 미만이라면 COPPA (Children's Online Privacy Protection Act)의 요건에 따라 이 사이트를 사용할 수 없습니다.

      - -

      이 서버가 있는 관할권에 따라 법적 요구가 달라질 수 있습니다.

      - -
      - -

      개인정보 정책의 변경

      - -

      만약 우리의 개인정보 정책이 바뀐다면, 이 페이지에 바뀐 정책이 게시됩니다.

      - -

      이 문서는 CC-BY-SA 라이센스입니다. 마지막 업데이트는 2018년 3월 7일입니다.

      - -

      Originally adapted from the Discourse privacy policy.

      - title: "%{instance} 이용약관과 개인정보 취급 방침" themes: contrast: 마스토돈 (고대비) default: 마스토돈 (어두움) @@ -1615,7 +1530,7 @@ ko: appeal_rejected: explanation: "%{strike_date}에 일어난 중재결정에 대한 소명을 %{appeal_date}에 작성했지만 거절되었습니다." subject: "%{date}에 작성한 소명이 거절되었습니다" - title: 이의제기가 거절되었습니다 + title: 이의 제기가 거절되었습니다 backup_ready: explanation: 당신이 요청한 계정의 풀 백업이 이제 다운로드 가능합니다! subject: 당신의 아카이브를 다운로드 가능합니다 @@ -1632,9 +1547,9 @@ ko: appeal_description: 이것이 오류라고 생각한다면, %{instance}의 중재자에게 이의신청을 할 수 있습니다. categories: spam: 스팸 - violation: 컨텐츠가 다음의 커뮤니티 규정을 위반합니다 + violation: 콘텐츠가 다음의 커뮤니티 규정을 위반합니다 explanation: - delete_statuses: 귀하의 게시물 중 일부가 하나 이상의 커뮤니티 가이드라인을 위반한 것으로 확인되어 %{instance} 모더레이터에 의해 삭제되었습니다. + delete_statuses: 귀하의 게시물 중 일부가 하나 이상의 커뮤니티 가이드라인을 위반한 것으로 확인되어 %{instance}의 중재자에 의해 삭제되었습니다. disable: 당신은 더이상 당신의 계정을 사용할 수 없습니다, 하지만 프로필과 다른 데이터들은 여전히 그대로 남아있습니다. 당신의 데이터에 대한 백업을 요청하거나, 계정 설정을 변경 또는 계정을 삭제할 수 있습니다. mark_statuses_as_sensitive: 당신의 몇몇 게시물들은 %{instance}의 중재자에 의해 민감함으로 설정되었습니다. 이것은 사람들이 미리보기를 보기 전에 미디어를 한번 눌러야 함을 의미합니다. 당신은 스스로도 자신의 게시물을 작성할 때 미디어를 민감함으로 설정할 수 있습니다. sensitive: 지금부터는, 당신이 업로드한 미디어 파일들은 민감함 표시가 뜨게 되고 클릭해야만 볼 수 있다는 경고문 뒤에 가려지게 됩니다. @@ -1660,26 +1575,19 @@ ko: suspend: 계정 정지 됨 welcome: edit_profile_action: 프로필 설정 - edit_profile_step: 아바타, 헤더를 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 하고 싶다면 계정을 잠그면 됩니다. + edit_profile_step: 프로필 사진을 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것 등으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 할 수도 있습니다. explanation: 시작하기 전에 몇가지 팁들을 준비했습니다 final_action: 포스팅 시작하기 - final_step: '포스팅을 시작하세요! 팔로워가 없더라도 퍼블릭 메시지는 다른 사람들이 볼 수 있습니다, 예를 들면 로컬 타임라인이나 해시태그에서요. 사람들에게 자신을 소개하고 싶다면 #introductions 해시태그를 이용해보세요.' - full_handle: 당신의 풀 핸들 + final_step: '게시물을 올리세요! 팔로워가 없더라도, 공개 게시물들은 다른 사람에게 보여질 수 있습니다, 예를 들자면 로컬이나 연합 타임라인 등이 있습니다. 사람들에게 자신을 소개하고 싶다면 #툿친소 해시태그를 이용해보세요.' + full_handle: 내 전체 핸들 full_handle_hint: 이것을 당신의 친구들에게 알려주면 다른 서버에서 팔로우 하거나 메시지를 보낼 수 있습니다. - review_preferences_action: 설정 바꾸기 - review_preferences_step: 당신의 설정을 확인하세요. 어떤 이메일로 알림을 받을 것인지, 기본적으로 어떤 프라이버시 설정을 사용할 것인지, 멀미가 없다면 GIF를 자동 재생하도록 설정할 수도 있습니다. subject: 마스토돈에 오신 것을 환영합니다 - tip_federated_timeline: 연합 타임라인은 마스토돈 네트워크의 소방호스입니다. 다만 여기엔 당신의 이웃들이 구독 중인 것만 뜹니다, 모든 것이 다 오는 것은 아니예요. - tip_following: 기본적으로 서버의 관리자를 팔로우 하도록 되어 있습니다. 흥미로운 사람들을 더 찾으려면 로컬과 연합 타임라인을 확인해 보세요. - tip_local_timeline: 로컬 타임라인은 %{instance}의 소방호스입니다. 여기 있는 사람들은 당신의 이웃들이에요! - tip_mobile_webapp: 모바일 브라우저가 홈 스크린에 바로가기를 추가해 줬다면 푸시 알림도 받을 수 있습니다. 이건 거의 네이티브 앱처럼 작동해요! - tips: 팁 title: 환영합니다 %{name} 님! users: follow_limit_reached: 당신은 %{limit}명의 사람을 넘어서 팔로우 할 수 없습니다 invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다 otp_lost_help_html: 만약 양쪽 모두를 잃어버렸다면 %{email}을 통해 복구할 수 있습니다 - seamless_external_login: 외부 서비스를 이용해 로그인 했습니다, 패스워드와 이메일 설정을 할 수 없습니다. + seamless_external_login: 외부 서비스를 이용해 로그인했으므로 이메일과 암호는 설정할 수 없습니다. signed_in_as: '다음과 같이 로그인 중:' verification: explanation_html: '당신은 프로필 메타데이터의 링크 소유자임을 검증할 수 있습니다. 이것을 하기 위해서는, 링크 된 웹사이트에서 당신의 마스토돈 프로필을 역으로 링크해야 합니다. 역링크는 반드시 rel="me" 속성을 가지고 있어야 합니다. 링크의 텍스트는 상관이 없습니다. 여기 예시가 있습니다:' @@ -1687,13 +1595,13 @@ ko: webauthn_credentials: add: 보안 키 추가 create: - error: 보안 키를 추가하는데 문제가 발생했습니다. 다시 시도해보십시오. + error: 보안 키를 추가하는 데 문제가 발생했습니다. 다시 시도해보십시오. success: 보안 키가 성공적으로 추가되었습니다. delete: 삭제 delete_confirmation: 정말로 이 보안 키를 삭제하시겠습니까? description_html: "보안 키 인증을 활성화 하면, 로그인 시 보안 키 중 하나가 필요합니다." destroy: - error: 보안 키를 삭제하는데 문제가 발생했습니다. 다시 시도해보십시오. + error: 보안 키를 삭제하는 데 문제가 발생했습니다. 다시 시도해보십시오. success: 보안 키가 성공적으로 삭제되었습니다. invalid_credential: 올바르지 않은 보안 키 nickname_hint: 새 보안 키의 별명을 입력해 주세요 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 3b4ab87c2b8a44..1c1271c5d18581 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1,94 +1,27 @@ --- ku: about: - about_hashtag_html: Ev şandiyeke gelemperî ye bi #%{hashtag} re nîşankirî ye. Tu dikarî pê re çalak bibî heke ajimêreke te heye li ser fediverse. about_mastodon_html: 'Tora civakî ya pêşerojê: Ne reklam, ne çavdêriya pargîdanî, sêwirana exlaqî, û desentralîzasyon! Bi Mastodon re bibe xwediyê daneyên xwe!' - about_this: Derbar - active_count_after: çalak - active_footnote: Mehane bikarhênerên çalak (MBÇ) - administered_by: 'Tê bi rêvebirin ji aliyê:' - api: API - apps: Sepana mobîl - apps_platforms: Mastodon ji iOS, Android û platformên din bi kar bîne - browse_directory: Li riya profîlê bigere û li gorî berjewendiyan parzûn bike - browse_local_posts: Ji vî rajekarê weşaneke zindî ya şandiyên giştî bigere - browse_public_posts: Weşaneke zindî ya şandiyên giştî bigere li ser Mastodon - contact: Têkilî contact_missing: Nehate sazkirin contact_unavailable: N/A - continue_to_web: Bo malpera sepanê bidomîne - discover_users: Bikarhêneran keşf bike - documentation: Pelbend - federation_hint_html: Bi ajimêrê xwe %{instance} re tu dikarî kesên rajekar û li derveyî mastodonê bişopînî. - get_apps: Sepaneke mobîl bicerbîne hosted_on: Mastodon li ser %{domain} tê pêşkêşkirin - instance_actor_flash: 'Ev ajimêr aktorekî aşopî ye ji bo rajekar were temsîl kirin tê bikaranîn ne ajimêra kesî ye. Ji bo armanca federasyonê dixebite û divê ney asteng kirin heta ku te xwest hemû nimûneyan asteng bikî, di vir de ger tu blogek navper bikarbînî. - - ' - learn_more: Bêtir fêr bibe - logged_in_as_html: Tu niha wekî %{username} têketî ye. - logout_before_registering: Jixwe te berê têketin kiriye. - privacy_policy: Polîtikaya nihêniyê - rules: Rêbazên rajekar - rules_html: 'Heger tu bixwazî ajimêrekî li ser rajekarê mastodon vebikî, li jêrê de kurtasî ya qaîdeyên ku tu guh bidî heye:' - see_whats_happening: Binêre ka çi diqewime - server_stats: 'Statîstîkên rajekar:' - source_code: Çavkaniya Kodî - status_count_after: - one: şandî - other: şandî - status_count_before: Hatin weşan - tagline: Hevalên xwe bişopîne û yên nû bibîne - terms: Peyama mercan - unavailable_content: Rajekarên li hev kirî - unavailable_content_description: - domain: Rajekar - reason: Sedem - rejecting_media: 'Pelên medyayê yên ji van rajekaran nayên pêvajoyî kirin an tomarkirin, û tu dîmenek nayên xuyakirin, ku pêdivî ye ku bi desta pêlêkirina pelika rasteqîn hebe:' - rejecting_media_title: Medyayên parzûnkirî - silenced: 'Şandiyên ji van rajekaran dê di demnameyên û axaftinên gelemperî de bêne veşartin, û heya ku tu wan neşopînî dê ji çalakiyên bikarhênerên wan agahdariyek çênebe:' - silenced_title: Rajekarên sînor kirî - suspended: 'Dê tu daneya ji van rajekaran neyê berhev kirin, tomarkirin an jî guhertin, ku têkilî an danûstendinek bi bikarhênerên van rajekaran re tune dike:' - suspended_title: Rajekarên rawestî - unavailable_content_html: Mastodon bi gelemperî dihêle ku tu naverokê bibînî û bi bikarhênerên ji rajekareke din a li fendiverse re têkilî dayne. Ev awaretyên ku li ser vê rajekara taybetî hatine çêkirin ev in. - user_count_after: - one: bikarhêner - other: bikarhêner - user_count_before: Serrûpel - what_is_mastodon: Mastodon çi ye? + title: Derbar accounts: - choices_html: 'Hilbijartina %{name}:' - endorsements_hint: Tu dikarî kesên ku di navrûyê wep de dişopînî bipejirînî û ew li vir were nîşan kirin. - featured_tags_hint: Tu dikarî hashtagên teybetî li vir tê nîşan kirin di pê de derxî. follow: Bişopîne followers: one: Şopîner other: Şopîner following: Dişopîne - instance_actor_flash: Ev ajimêr listikvaneke rastkî ye ku ji bo wek nûnerê rajekar bixwe tê bikaranîn û ne bikarhênerek kesane. Ew ji bo mebestên yekbûyî tê bikaranîn û divê neyê rawestandin. - joined: Di %{date} de tevlî bû + instance_actor_flash: Ev ajimêr listikvaneke rastkî ye ku ji bo wek nûnerê rajekar bixwe tê bikaranîn û ne bikarhênerek kesane. Ew ji bo mebestên giştî tê bikaranîn û divê neyê rawestandin. last_active: çalakiya dawî link_verified_on: Xwedaniya li vê girêdanê di %{date} de hatiye kontrolkirin - media: Medya - moved_html: "%{name} bar kire %{new_profile_link}:" - network_hidden: Ev zanyarî berdest nîne nothing_here: Li vir tiştek tune ye! - people_followed_by: Kesên ku%{name} wan dişopîne - people_who_follow: Kesên%{name} dişopîne pin_errors: following: Kesê ku tu dixwazî bipejirînî jixwe tu vê dişopînî posts: one: Şandî other: Şandî posts_tab_heading: Şandî - posts_with_replies: Şandî û bersiv - roles: - admin: Rêvebir - bot: Bot - group: Kom - moderator: Moderator - unavailable: Profîl nay bikaranîn - unfollow: Neşopîne admin: account_actions: action: Çalakî yê bike @@ -105,12 +38,17 @@ ku: avatar: Wêne by_domain: Navper change_email: - changed_msg: E-nameya ajimêr bi awayekî serkeftî hate guhertin! + changed_msg: E-name bi awayekî serkeftî hate guhertin! current_email: E-nameya heyî label: E-nameyê biguherîne new_email: E-nameya nû submit: E-nameyê biguherîne title: E-nameyê biguherîne bo %{username} + change_role: + changed_msg: Rol bi awayekî serkeftî hate guhertin! + label: Rolê biguherîne + no_role: Rol tune + title: Rolê biguherîne ji bo %{username} confirm: Bipejirîne confirmed: Hate pejirandin confirming: Tê pejirandin @@ -131,7 +69,7 @@ ku: enable: Çalak bike enable_sign_in_token_auth: E-name ya rastandina token çalak bike enabled: Çalakkirî - enabled_msg: Ajimêra %{username} bi serkeftî hat çalak kirin + enabled_msg: Hesabê %{username} bi serkeftî hat çalakkirin followers: Şopîner follows: Dişopîne header: Jormalper @@ -149,18 +87,20 @@ ku: media_attachments: Pêvekên medya memorialize: Vegerîne bîranînê memorialized: Bû bîranîn - memorialized_msg: "%{username} bi serkeftî veguherî ajimêra bîranînê" + memorialized_msg: "%{username} bi serkeftî veguherî hesabê bîranînê" moderation: active: Çalak all: Hemû pending: Tê nirxandin + silenced: Sînorkirî suspended: Sekinandî title: Çavdêrî moderation_notes: Nîşeyên Rêvebirinê most_recent_activity: Çalakîyên dawî most_recent_ip: IP' a dawî - no_account_selected: Tu ajimêr nehat hilbijartin ji ber vê tu ajimêr nehat guhertin + no_account_selected: Tu hesab nehat hilbijartin ji ber vê tu hesab nehat guhertin no_limits_imposed: Sînor nay danîn + no_role_assigned: Ti rol nehatin diyarkirin not_subscribed: Beşdar nebû pending: Li benda nirxandinê ye perform_full_suspension: Sekinî @@ -187,12 +127,7 @@ ku: reset: Ji nû ve saz bike reset_password: Borînpeyvê ji nû ve saz bike resubscribe: Dîsa beşdar bibe - role: Maf - roles: - admin: Rêvebir - moderator: Çavdêr - staff: Xebatkar - user: Bikarhêner + role: Rol search: Bigere search_same_email_domain: Bikarhênerên din ên bi heman navpera e-nameyê search_same_ip: Bikarhênerên din ên xwedî heman IP @@ -214,7 +149,7 @@ ku: suspended: Hatiye rawestandin suspension_irreversible: Daneyên vê ajimêrê bêveger hatine jêbirin. Tu dikarî ajimêra xwe ji rawestandinê vegerinî da ku ew bi kar bînî lê ew ê tu daneya ku berê hebû venegere. suspension_reversible_hint_html: Ajimêr hat qerisandin, û daneyên di %{date} de hemû were rakirin. Hetta vê demê, ajimêr bê bandorên nebaş dikare dîsa vegere. Heke tu dixwazî hemû daneyan ajimêrê niha rakî, tu dikarî li jêrê bikî. - title: Ajimêr + title: Hesab unblock_email: Astengiyê li ser navnîşana e-nameyê rake unblocked_email_msg: Bi serkeftî astengiya li ser navnîşana e-nameyê %{username} hate rakirin unconfirmed_email: E-nameya nepejirandî @@ -228,24 +163,28 @@ ku: view_domain: Kurte ji bo navperê bide nîşan warn: Hişyarî web: Tevn - whitelisted: Ji bona yekbûyînê maf tê dayîn + whitelisted: Ji bo demnameya giştî maf hate dayin action_logs: action_types: approve_appeal: Îtîrazê bipejirîne approve_user: Bikarhêner bipejirîne assigned_to_self_report: Ragihandinê diyar bike change_email_user: E-nameya bikarhêner biguherîne + change_role_user: Rola bikarhêner biguherîne confirm_user: Bikarhêner bipejirîne create_account_warning: Hişyariyekê çê bike create_announcement: Daxûyaniyekê çê bike + create_canonical_email_block: Astengkirina e-nameyê biafirîne create_custom_emoji: Emojiyên kesanekirî çê bike create_domain_allow: Navpera ku destûr standiye peyda bike create_domain_block: Navpera ku asteng bûye ava bike create_email_domain_block: Navpera e-name yê de asteng kirinê peyda bike create_ip_block: Rêziknameya IPyê saz bike create_unavailable_domain: Navpera ku nayê bikaranîn pêk bîne + create_user_role: Rolê biafirîne demote_user: Bikarhênerê kaşê jêr bike destroy_announcement: Daxûyanîyê jê bibe + destroy_canonical_email_block: Astengkirina e-nameyê jê bibe destroy_custom_emoji: Emojîya kesanekirî jê bibe destroy_domain_allow: Navperên mafdayî jê bibe destroy_domain_block: Navperên astengkirî jê bibe @@ -254,6 +193,7 @@ ku: destroy_ip_block: Tomara IPyê jêbibe destroy_status: Şandiyê jê bibe destroy_unavailable_domain: Navperên tuneyî jê bibe + destroy_user_role: Rolê hilweşîne disable_2fa_user: 2FA neçalak bike disable_custom_emoji: Emojîya kesanekirî neçalak bike disable_sign_in_token_auth_user: Ji bo bikarhênerê piştrastkirina navnîşana e-name yê ya token neçalak bike @@ -267,11 +207,12 @@ ku: reject_user: Bikarhêner nepejirîne remove_avatar_user: Avatarê rake reopen_report: Ragihandina ji nû ve veke + resend_user: E-nameya pejirandinê dîsa bişîne reset_password_user: Borînpeyvê ji nû ve saz bike resolve_report: Ragihandinê çareser bike sensitive_account: Ajimêra hêz-hestiyar - silence_account: Ajimêrê bi sînor bike - suspend_account: Ajimêr rawestîne + silence_account: Hesab bi sînor bike + suspend_account: Hesab rawestîne unassigned_report: Ragihandinê diyar neke unblock_email_account: Astengiyê li ser navnîşana e-nameyê rake unsensitive_account: Medyayên di ajimêrê te de wek hestyarî nepejirîne @@ -280,31 +221,38 @@ ku: update_announcement: Daxûyaniyê rojane bike update_custom_emoji: Emojîya kesanekirî rojane bike update_domain_block: Navperên astengkirî rojane bike + update_ip_block: Rolê IP rojane bike update_status: Şandiyê rojane bike + update_user_role: Rolê rojane bike actions: approve_appeal_html: "%{name} îtiraza biryara çavdêriyê ji %{target} pejirand" approve_user_html: "%{name} tomarkirina ji %{target} pejirand" assigned_to_self_report_html: "%{name} ji xwe re ragihandinek %{target} hilda" change_email_user_html: "%{name} navnîşana e-nameya bikarhêner %{target} guherand" + change_role_user_html: "%{name} rolê %{target} guhert" confirm_user_html: "%{name} navnîşana e-nameya bikarhêner %{target} piştrast kir" create_account_warning_html: "%{name} ji bo %{target} hişyariyek şand" create_announcement_html: "%{name} agahdarkirineke nû çêkir %{target}" + create_canonical_email_block_html: "%{name} bi riya dabeşkirinê e-nameya %{target} asteng kir" create_custom_emoji_html: "%{name} emojîyeke nû ya %{target} bar kir" - create_domain_allow_html: "%{name} bi navperê %{target} re maf da federeyê" + create_domain_allow_html: "%{name} bi navperê %{target} re maf da demnameya giştî" create_domain_block_html: "%{name} navpera %{target} asteng kir" create_email_domain_block_html: "%{name} e-nameya navperê %{target} asteng kir" create_ip_block_html: "%{name} ji bo IPya %{target} rêzikname saz kir" create_unavailable_domain_html: "%{name} bi navperê %{target} re gihandinê rawestand" + create_user_role_html: "%{name} rola %{target} afirand" demote_user_html: "%{name} bikarhênerê %{target} kaşê jêr kir" destroy_announcement_html: "%{name} daxûyaniyeke %{target} jê bir" - destroy_custom_emoji_html: "%{name} emojiya %{target} tune kir" - destroy_domain_allow_html: "%{name} bi navperê %{target} re maf neda federeyê" + destroy_canonical_email_block_html: "%{name} bi riya dabeşkirinê astengiya li ser e-nameya %{target} rakir" + destroy_custom_emoji_html: "%{name} emojiya %{target} jê bir" + destroy_domain_allow_html: "%{name} bi navperê %{target} re maf neda demnameya giştî" destroy_domain_block_html: "%{name} navpera %{target} asteng kir" destroy_email_domain_block_html: "%{name} astengiya li ser navpera e-nameyê %{target} rakir" destroy_instance_html: "%{name} navpera %{target} asteng kir" destroy_ip_block_html: "%{name}, ji bo IPya %{target} rêziknameyê jêbir" destroy_status_html: "%{name} ji alîyê %{target} ve şandiyê rakir" destroy_unavailable_domain_html: "%{name} bi navperê %{target} re gihandinê berdewam kir" + destroy_user_role_html: "%{name} rola %{target} jê bir" disable_2fa_user_html: "%{name} ji bo bikarhênerê %{target} du faktorî neçalak kir" disable_custom_emoji_html: "%{name} emojiya %{target} neçalak kir" disable_sign_in_token_auth_user_html: "%{name} ji bo %{target} nîşana mafdayîna e-nameya ne çalak kir" @@ -318,6 +266,7 @@ ku: reject_user_html: "%{name} tomarkirina ji %{target} nepejirand" remove_avatar_user_html: "%{name} avatara bikarhêner %{target} rakir" reopen_report_html: "%{name} ragihandina %{target} ji nû ve vekir" + resend_user_html: "%{name} e-nameya pejirandinê dîsa bişîne ji bo %{target}" reset_password_user_html: "%{name} borînpeyva bikarhêner %{target} ji nû ve saz kir" resolve_report_html: "%{name} ragihandina %{target} çareser kir" sensitive_account_html: "%{name} medyayê %{target} wekî hestiyarî nîşan kir" @@ -331,8 +280,10 @@ ku: update_announcement_html: "%{name} daxûyaniya %{target} rojane kir" update_custom_emoji_html: "%{name} emojiya %{target} rojane kir" update_domain_block_html: "%{name} ji bo navpera %{target} astengkirin rojane kir" + update_ip_block_html: "%{name} rolê %{target} guhert ji bo IP" update_status_html: "%{name} şandiya bikarhêner %{target} rojane kir" - deleted_status: "(şandiyeke jêbirî)" + update_user_role_html: "%{name} rola %{target} guherand" + deleted_account: ajimêrê jêbirî empty: Tomarkirin nehate dîtin. filter_by_action: Li gorî çalakiyê biparzinîne filter_by_user: Li gorî bikarhênerê biparzinîne @@ -376,6 +327,7 @@ ku: listed: Rêzokkirî new: title: Hestokên kesane yên nû lê zêde bike + no_emoji_selected: Tu emojî nehatin hilbijartin ji ber vê tu şandî jî nehatin guhertin not_permitted: Mafê te tune ku tu vê çalakiyê bikî overwrite: Bi ser de binivsîne shortcode: Kurtekod @@ -418,16 +370,17 @@ ku: empty: Îtîraz nehatin dîtin. title: Îtîraz domain_allows: - add_new: Maf bide navpera federasyonê - created_msg: Ji bo federasyonê maf dayîna navperê bi serkeftî hate dayîn - destroyed_msg: Ji bo federasyonê maf dayîna navperê nehat dayîn - undo: Maf nede navpera federasyonê + add_new: Mafê bide navpera demnameya giştî + created_msg: Ji bo demnameya giştî mafdayîna navperê bi serkeftî hate dayîn + destroyed_msg: Ji bo demnameya giştî mafdayîna navperê nehat dayîn + undo: Mafê nede navpera demnameya giştî domain_blocks: add_new: Astengkirina navpera nû created_msg: Navpera asteng kirinê nû hat şixulandin destroyed_msg: Navpera asteng kirinê hat rakirin domain: Navper edit: Astengkirina navperê serrast bike + existing_domain_block: Jixwe te sînorên tundtir li ser %{name} daye kirine. existing_domain_block_html: Te bi bandorê mezin sînor danî ser %{name}, Divê tu asteng kirinê rabikî, pêşî ya . new: create: Astengkirinekê çê bike @@ -514,7 +467,7 @@ ku: instance_follows_measure: şopînerên wan li vir instance_languages_dimension: Zimanên pir tên bikaranîn instance_media_attachments_measure: pêvekên medyayê tomarkirî - instance_reports_measure: giliyên derbarê wan de + instance_reports_measure: ragehandinên di derbarê wan de instance_statuses_measure: şandiyên tomarkirî delivery: all: Hemû @@ -543,7 +496,7 @@ ku: total_blocked_by_us: Ji aliyê me ve hatiye astengkirin total_followed_by_them: Ji aliyê wan ve hatiye şopandin total_followed_by_us: Ji aliyê me ve hatiye şopandin - total_reported: Giliyên derheqê wan de + total_reported: Ragehandinên di derbarê wan de total_storage: Pêvekên medyayê totals_time_period_hint_html: Tevahiyên ku li jêr têne xuyakirin daneyên hemû deman dihewîne. invites: @@ -574,7 +527,7 @@ ku: relays: add_new: Guhêrkerê nû tevlê bike delete: Jê bibe - description_html: "Guhêrkerê giştî rajekareke navberkar e ku hejmareke mezin ji şandiyan di navbera rajekaran ku jê re dibin endam û weşanê dikin diguherîne. Ew dikare ji rajekarên piçûk û navîn re bibe alîkar ku naveroka ji fendiverse ê bibîne, ku bi rengeke din pêdivî dike ku bikarhênerên herêmî bi desta li dû kesên din ên li rajekarên ji dûr be bişopînin." + description_html: "Guhêrkerê giştî rajekareke navberkar e ku hejmareke mezin ji şandiyan di navbera rajekaran ku jê re dibin endam û weşanê dikin diguherîne. Ew dikare ji rajekarên piçûk û navîn re bibe alîkar ku naveroka ji fediverse ê bibîne, ku bi rengeke din pêdivî dike ku bikarhênerên herêmî bi desta li dû kesên din ên li rajekarên ji dûr be bişopînin." disable: Neçalak bike disabled: Neçalakkirî enable: Çalak bike @@ -584,7 +537,7 @@ ku: pending: Li benda pêjirandina guhêrker e save_and_enable: Tomar û çalak bike setup: Girêdanekê guhêrker saz bike - signatures_not_enabled: Dema ku moda ewle ya jî moda rêzoka spî çalak be guhêrker wê birêkûpêk nexebite + signatures_not_enabled: Dema ku moda ewle yan jî moda demnameya giştî çalak be guhêrker wê birêkûpêk nexebite status: Rewş title: Guhêrker report_notes: @@ -650,6 +603,65 @@ ku: unresolved: Neçareserkirî updated_at: Rojanekirî view_profile: Profîlê nîşan bide + roles: + add_new: Rolê tevlî bike + assigned_users: + one: "%{count} bikarhêner" + other: "%{count} bikarhêner" + categories: + administration: Rêvebirî + invites: Vexwendin + moderation: Çavdêrî + special: Taybet + delete: Jê bibe + description_html: Bi rolên bikarhêner, tu dikarî fonksiyon û deverên Mastodon ku bikarhênerên wê dikarin xwe bigihînin kesane bikî. + edit: Rolê '%{name}' serrast bike + everyone: Mafdayînên berdest + everyone_full_description_html: Ev rola bingehîn bandorê li hemû bikarhêneran dike, tevî yên bêyî rolek diyarkirî jî. Hemû rolên din mafdayînan jê digirin. + permissions_count: + one: "%{count} mafdayîn" + other: "%{count} mafdayîn" + privileges: + administrator: Rêvebir + administrator_description: Bikarhênerên xwediyê vê mafdayînan wê her mafdayîn derbas bike + delete_user_data: Daneyên bikarhêner jê bibe + delete_user_data_description: Mafê dide bikarhêneran ku daneyên bikarhênerên din bêyî derengxisitn jê bibin + invite_users: Bikarhêneran vexwîne + invite_users_description: Mafê dide bikarhêneran ku mirovên nû vexwîne bo rajekarê + manage_announcements: Reklaman bi rê be bibe + manage_announcements_description: Mafê dide bikarhêneran ku reklaman bi rê ve bibin li ser vê rajekarê + manage_appeals: Îtîrazan bi rê ve bibe + manage_appeals_description: Mafê dide bikarhêneran ku îtîrazan binirxînin li dijî çalakiyên çavdêriyê + manage_blocks: Astengkirinan bi rê ve bibe + manage_blocks_description: Mafê dide bikarhêneran ku peydakarê e-nameyê û navnîşanên IP asteng bike + manage_custom_emojis: Emojiyên kesane bi rêve bibe + manage_custom_emojis_description: Mafê dide bikarhêneran ku îmojî kesane bikin li ser vê rajekarê + manage_federation: Demnameya giştî bi rê ve bibe + manage_federation_description: Mafê dide bikarhêneran ku demnameya giştî bi navparên din re asteng bikin û radestkirinê kontrol bikin + manage_invites: Vexwendinan bi rêve bibe + manage_invites_description: Mafê dide bikarhêneran ku li girêdanên vexwendinê bigerin û neçalak bikin + manage_reports: Ragihandinan bi rê ve bibe + manage_reports_description: Mafê dide bikarhêneran ku ragihandinan binirxînin û li dijî wan kiryarên çavdêriyê çalakiyan pêk bînin + manage_roles: Rolan bi rêve bibe + manage_roles_description: Mafê dide bikarhêneran ku rolên li jêr ên xwe birêve bibin û nîşan bikin + manage_rules: Rolan bi rêve bibe + manage_rules_description: Mafê dide bikarhêneran ku rêzikên rajekarê biguherînin + manage_settings: Sazkariyan bi rê ve bibe + manage_settings_description: Mafê dide bikarhêneran ku sazkariyên malperê biguherînin + manage_taxonomies: Beşan bi rê ve bibe + manage_taxonomies_description: Mafê dide bikarhêneran ku naveroka rojevê binirxînin û sazkariyên hashtagê rojane bikin + manage_user_access: Gihiştinê bikarhêner bi rê ve bibe + manage_user_access_description: Mafê dide bikarhêneran ku piştrastkirina du-gavî ya bikarhênerên din neçalak bikin, navnîşana e-nameya xwe biguherînin û borînpeyva xwe ji nû ve bikin + manage_users: Bikarhêneran bi rêve bibe + manage_users_description: Mafê dide bikarhêneran ku hûrguliyên bikarhênerên din bibînin û li dijî wan kiryarên çavdêriyê çalakiyan pêk bînin + manage_webhooks: Webhook bi rê ve bibe + manage_webhooks_description: Mafê dide bikarhêneran ku ji bo bûyerên rêveberî yên webhook saz bikin + view_audit_log: Têketinên kontrolê nîşan bide + view_audit_log_description: Mafê dide bikarhêneran ku dîroka çalakiyên rêveberî yên li ser rajekarê bibînin + view_dashboard: Destgehê nîşan bide + view_dashboard_description: Mafê dide bikarhêneran ku bigihîjin destgehê û pîvanên cuda + view_devops_description: Mafê dide bikarhêneran ku bigihîjin destgehên Sidekiq û pgHero + title: Rol rules: add_new: Rêbazekê tevlî bike delete: Jê bibe @@ -658,108 +670,60 @@ ku: empty: Tu rêbazên rajekar hê nehatine dîyarkirin. title: Rêbazên rajekar settings: - activity_api_enabled: - desc_html: Hejmara şandiyên weşandî yên herêmî, bikarhênerên çalak, û tomarkirin ên nû heftane - title: Tevahî amarên ên di derbarê çalakiya bikarhêneran de biweşîne - bootstrap_timeline_accounts: - desc_html: Navên bikarhênerên pir bi xalîçê veqetîne. Dê van ajimêran di pêşnîyarên jêrîn de werin xuyakirin - title: Van ajimêran ji bikarhênerên nû re pêşniyar bike - contact_information: - email: E-nameya karsazî - username: Bi bikarhêner re têkeve têkiliyê - custom_css: - desc_html: Bi CSS a ku li her rûpelê hatiye barkirin, awayê dîmenê biguherîne - title: CSS a kesanekirî - default_noindex: - desc_html: Hemû bikarhênerên ku ev sazkarî bi xwe neguhertiye bandor dike - title: Pêlrêçkirna bikarhêneran ji motorê lêgerînê dûr bixe + about: + manage_rules: Rêzikên rajekaran bi rê ve bibe + preamble: Zanyariyên kûr peyda bike li ser ka rajekar çawa tê xebitandin, çavdêrîkirin, fînansekirin. + rules_hint: Ji bo rêbazên ku ji bikarhênerên ve tê hêvîkirin ku pê ve girêdayî bin deverek veqetandî heye. + title: Derbar + appearance: + preamble: Navrûya tevnê ya Mastodon kesane bike. + title: Xuyang + content_retention: + title: Parastina naverokê + discovery: + follow_recommendations: Pêşniyarên şopandinê + title: Vekolîne + trends: Rojev domain_blocks: all: Bo herkesî disabled: Bo tu kesî - title: Astengkirinên navperê nîşan bide users: Ji bo bikarhênerên herêmî yên xwe tomar kirine - domain_blocks_rationale: - title: Sedemê nîşan bike - hero: - desc_html: Li ser rûpela pêşîn tê xuyakirin. Bi kêmanî 600x100px tê pêşniyarkirin. Dema ku neyê sazkirin, vedigere ser dîmena wêneya piçûk a rajekar - title: Wêneya lehengê - mascot: - desc_html: Li ser rûpela pêşîn tê xuyakirin. Bi kêmanî 293×205px tê pêşniyarkirin. Dema ku neyê sazkirin, vedigere ser dîmena wêneya piçûk a maskot ya heyî - title: Wêneya maskot - peers_api_enabled: - desc_html: Navê navperên ku ev rajekar di fendiverse de rastî wan hatiye - title: Rêzoka rajekarên hatiye dîtin di API-yê de biweşîne - preview_sensitive_media: - desc_html: Pêşdîtinên girêdanê yên li ser malperên din tevlî ku medya wekî hestyar hatiye nîşandan wê wekî wêneyekî piçûk nîşan bide - title: Medyayê hestyar nîşan bide di pêşdîtinên OpenGraph de - profile_directory: - desc_html: Mafê bide bikarhêneran ku bêne vedîtin - title: Pelrêçên profilê çalak bike registrations: - closed_message: - desc_html: Gava ku tomarkirin têne girtin li ser rûpelê pêşîn têne xuyang kirin. Tu dikarî nîşanên HTML-ê bi kar bîne - title: Tomarkirinê girtî ya peyaman - deletion: - desc_html: Maf bide ku herkes bikaribe ajimêrê te jê bibe - title: Jê birina ajimêrê vekek - min_invite_role: - disabled: Ne yek - title: Maf bide vexwendinên ji alîyê - require_invite_text: - desc_html: Gava ku tomarkirin pêdiviya pejirandina destan dike, Têketina nivîsê "Tu çima dixwazî beşdar bibî?" Bibe sereke ji devla vebijêrkî be - title: Ji bo bikarhênerên nû divê ku sedemek tevlêbûnê binivîsinin + preamble: Kontrol bike ka kî dikare li ser rajekarê te ajimêrekê biafirîne. + title: Tomarkirin registrations_mode: modes: approved: Ji bo têketinê erêkirin pêwîste none: Kesek nikare tomar bibe open: Herkes dikare tomar bibe - title: Awayê tomarkirinê - show_known_fediverse_at_about_page: - desc_html: Dema ku neçalak be, demnameya gerdûnî ya ku ji rûpela zeviyê ve hatî girêdan tenê bi nîşandana naveroka herêmî tên sînorkirin - title: Li ser rûpela demnameya ne naskirî naveroka giştî nîşan bide - show_staff_badge: - desc_html: Di rûpela bikarhêner da rozeta xebatkaran nîşan bike - title: Rozeta xebatkara nîşan bike - site_description: - desc_html: Paragrafa destpêkê li ser API. Dide nasîn ka çi ev rajekarê Mastodon taybet dike û tiştên din ên girîn. Tu dikarî hashtagên HTML-ê, bi kar bîne di <a> û <em> de. - title: Danasîna rajekar - site_description_extended: - desc_html: Ji bo kodê perwerdetî, rêzik, rêbername û tiştên din ên ku rajekara te ji hev cihê dike cîhekî baş e. Tu dikarî hashtagên HTML-ê bi kar bîne - title: Zanyarên berfirehkirî ya rajekar - site_short_description: - desc_html: Ew di alavdanka kêlekê û tagên meta de tên xuyakirin. Di yek paragrafê de rave bike ka Mastodon çi ye û ya ku ev rajekar taybetî dike. - title: Danasîna rajekarê kurt - site_terms: - desc_html: Tu dikarî polîtika nihêniyê xwe, mercên karûbar an nameyên din binvisîne. Tu dikarî nîşanên HTML-ê bi kar bîne - title: Mercên bikaranîn a kesanekirî - site_title: Navê rajekar - thumbnail: - desc_html: Ji bo pêşdîtinên bi riya OpenGraph û API-yê têne bikaranîn. 1200x630px tê pêşniyar kirin - title: Wêneya piçûk a rajekar - timeline_preview: - desc_html: Girêdana demnameya gelemperî li ser rûpela daxistinê nîşan bide û mafê bide ku API bêyî rastandinê bigihîje damnameya gelemperî - title: Mafê bide gihîştina ne naskirî bo demnameya gelemperî - title: Sazkariyên malperê - trendable_by_default: - desc_html: Hashtagên ku berê hatibûn qedexekirin bandor dike - title: Bihêle ku hashtag bêyî nirxandinek pêşîn bibe rojev - trends: - desc_html: Hashtagên ku berê hatibûn nirxandin ên ku niha rojev in bi gelemperî bide xuyakirin - title: Hashtagên rojevê + title: Sazkariyên rajekarê site_uploads: delete: Pela barkirî jê bibe destroyed_msg: Barkirina malperê bi serkeftî hate jêbirin! statuses: + account: Nivîskar + application: Sepan back_to_account: Vegere bo rûpela ajimêr back_to_report: Vegere rûpela ragihandinê batch: remove_from_report: Ji ragihandinê rake report: Ragihîne deleted: Hate jêbirin + favourites: Bijarte + history: Dîroka guhertoyê + in_reply_to: Bersiv bide + language: Ziman media: title: Medya + metadata: Metadata no_status_selected: Tu şandî nehat hilbijartin ji ber vê tu şandî jî nehat guhertin + open: Şandiyê veke + original_status: Şandiyê resen + reblogs: Ji nû ve nivîsandin + status_changed: Şandî hate guhertin title: Şandiyên ajimêr + trending: Rojev + visibility: Xuyabarî with_media: Bi medya yê re strikes: actions: @@ -799,6 +763,9 @@ ku: description_html: Van girêdanên ku niha ji hêla ajimêrên ku rajekarê te ji wan peyaman dibîne pir têne parvekirin. Ew dikare ji bikarhênerên te re bibe alîkar ku fêr bibin ka li cîhanê çi diqewime. Heya ku tu weşanger nepejirînin, ti girêdan bi gelemperî nayê xuyangkirin. Her weha tu dikarî mafê bidî girêdanên kesane an jî nedî. disallow: Mafê nede girêdanê disallow_provider: Mafê nede weşanger + no_link_selected: Tu girêdan nehatin hilbijartin ji ber vê tu girêdan jî nehatin guhertin + publishers: + no_publisher_selected: Tu weşan nehatin hilbijartin ji ber vê tu weşan jî nehatin guhertin shared_by_over_week: one: Di nava hefteya dawî de ji aliyê keskekî ve hate parvekirin other: Di nava hefteya dawî de ji aliyê %{count} ve hate parvekirin @@ -818,6 +785,7 @@ ku: description_html: Van şandiyên ku rajekarê te pê dizane ku niha pir têne parvekirin û bijartekirin. Ew dikare ji bikarhênerên te yên nû û yên vedigerin re bibe alîkar ku bêtir mirovên ku bişopînin bibînin. Heya ku tu nivîskar nepejirînî, tu şandî bi gelemperî nayên xuyangkirin, û nivîskar mafê dide ku ajimêrê xwe ji kesên din re were pêşniyarkirin. Her weha tu dikarî mafê bidî şandiyên kesane an jî nedî. disallow: Mafê nede şandiyê disallow_account: Mafê nede nivîskar + no_status_selected: Tu şandiyên rojevê nehatin hilbijartin ji ber vê tu şandî jî nehatin guhertin not_discoverable: Nivîskar nejilbijartiye ji bo ku were kifşkirin shared_by: one: Yek carî parvekirî an bijartî @@ -833,6 +801,7 @@ ku: tag_uses_measure: bikaranîna giştî description_html: Ev hashtag in ku niha di gelek şandiyên ku rajekarê te dibîne de xuya dibin. Ew dikare ji bikarhênerên te re bibe alîkar ku fêr bibin ka mirov di vê demê de herî pir li ser çi diaxive. Heya ku tu wan nepejirînî, tu hashtag bi gelemperî nayê xuyangkirin. listable: Dikare were pêşniyarkirin + no_tag_selected: Tu hashtag nehatin hilbijartin ji ber vê tu hashtag jî nehatin guhertin not_listable: Nikare wer pêşniyarkirin not_trendable: Wê di bin rojevan de xuya neke not_usable: Nikare were bikaranîn @@ -853,6 +822,26 @@ ku: edit_preset: Hişyariyên pêşsazkirî serrast bike empty: Te hin tu hişyariyên pêşsazkirî destnîşan nekirine. title: Hişyariyên pêşsazkirî bi rêve bibe + webhooks: + add_new: Xala dawîbûnê tevlî bike + delete: Jê bibe + description_html: "çengeleke tevnê dihêle ku Mastodon agahdariyên dema-rastîn ên derbarê çalakiyên hilbijartî de bisepîne ser sepana te, bi vî awayî sepana te dikare reaksiyonan bi awayekî bixweber nîşan bide." + disable: Neçalak bike + disabled: Neçalakkirî + edit: Xala dawîbûnê serrast bike + empty: Hîn çengela tevnê ya xala dawîbûnê ya te ku hatiye pevesazkirin tune ne. + enable: Çalak bike + enabled: Çalak + enabled_events: + one: 1 bûyer çalakkirî + other: "%{count} bûyer çalakkirî" + events: Bûyer + new: Çengela tevnê ya nû + rotate_secret: Veşartî bizivirîne + secret: Îmzekirina veşartî + status: Rewş + title: Çengelên tevnê + webhook: Çengela tevnê admin_mailer: new_appeal: actions: @@ -876,12 +865,8 @@ ku: new_trends: body: 'Tiştên jêrîn berî ku ew bi gelemperî werin xuyakirin divê werin nirxandin:' new_trending_links: - no_approved_links: Niha tu girêdanên rojeva pejirandî tune ne. - requirements: 'Yek ji namzedên li jêr dikare ji #%{rank} girêdana diyarkirî ya pejirandî derbas bibe, niha ku "%{lowest_link_title}" bi %{lowest_link_score} puan e.' title: Girêdanên rojevê new_trending_statuses: - no_approved_statuses: Niha tu şandiyên rojeva pejirandî tune ne. - requirements: 'Yek ji namzedên li jêr dikare ji #%{rank} şandiyaa diyarkirî ya pejirandî derbas bibe, niha ku %{lowest_status_url} bi %{lowest_status_score} puan e.' title: Şandiyên rojevê new_trending_tags: no_approved_tags: Niha hashtagên rojevê pejirandî tune ne. @@ -897,7 +882,7 @@ ku: remove: Girêdana nûçikê rake appearance: advanced_web_interface: Navrûya tevnê yê pêşketî - advanced_web_interface_hint: 'Heke tu bixwazin tevahiya ferehiya dîmendera xwe bi kar bînî, navrûya pêşketî ya tevnê dihêle ku tu gelek stûnên cihêreng saz bikî da ku di heman demê de bi qasî ku tu dixwazî zanyariyan bibînî: Serrûpel, agahdarî, demnameya giştî, her hejmarek ji rêzik û hashtagan.' + advanced_web_interface_hint: 'Ku tu bixwazî tevahiya ferehiya dîmendera xwe bi kar bînî, navrûya pêşketî ya tevnê dihêle ku tu gelek stûnên cihêreng saz bikî da ku di heman demê de bi qasî ku tu dixwazî zanyariyan bibînî: Serrûpel, agahdarî, demnameya giştî, her hejmarek ji rêzik û hashtagan.' animations_and_accessibility: Anîmasyon û gihînî confirmation_dialogs: Gotûbêjên piştrastkirî discovery: Vedîtin @@ -917,16 +902,13 @@ ku: applications: created: Sepan bi awayekî serkeftî hat çêkirin destroyed: Sepan bi awayekî serkeftî hat jêbirin - invalid_url: URL ya hatiye dayîn ne derbasdar e regenerate_token: Nîşandera gihandinê bi nûve çêbike token_regenerated: Nîşandera gihandinê bi serkeftî nû ve hat çêkirin warning: Bi van daneyan re pir baldar be. Tu caran bi kesî re parve neke! your_token: Nîşana gihîştina te auth: - apply_for_account: Daxwaza vexwendinekê bike + apply_for_account: Li ser lîsteya bendemayînê bistîne change_password: Borînpeyv - checkbox_agreement_html: Ez rêbazên rajeker û hêmanên karûbaran dipejirînim - checkbox_agreement_without_rules_html: Ez hêmanên karûbaran rêbazên rajeker dipejirînim delete_account: Ajimêr jê bibe delete_account_html: Heke tu dixwazî ajimêra xwe jê bibe, tu dikarî li vir bidomîne. Ji te tê xwestin ku were pejirandin. description: @@ -945,6 +927,7 @@ ku: migrate_account: Derbasî ajimêreke din bibe migrate_account_html: Heke tu dixwazî ev ajimêr li ajimêreke cuda beralî bikî, tu dikarî ji vir de saz bike. or_log_in_with: An têketinê bike bi riya + privacy_policy_agreement_html: Min Politîka taybetiyê xwend û dipejirînim providers: cas: CAS saml: SAML @@ -952,12 +935,18 @@ ku: registration_closed: "%{instance} endamên nû napejirîne" resend_confirmation: Rêwerên pejirandinê ji nû ve bişîne reset_password: Borînpeyvê ji nû ve saz bike + rules: + preamble: Ev rêzik ji aliyê çavdêrên %{domain} ve tên sazkirin. + title: Hinek rêzikên bingehîn. security: Ewlehî set_new_password: Borînpeyveke nû ji nû ve saz bike setup: email_below_hint_html: Heke navnîşana e-nameya jêrîn ne rast be, tu dikarî wê li vir biguherîne û e-nameyeke pejirandinê ya nû bistîne. email_settings_hint_html: E-nameya pejirandinê ji %{email} re hate şandin. Heke ew navnîşana e-nameyê ne rast be, tu dikarî wê di sazkariyên ajimêr de biguherîne. title: Damezirandin + sign_up: + preamble: Bi ajimêrekê li ser vê rajekarê Mastodon re, tu yê karîbî her keseke din li ser torê bişopînî, her ku ajimêrê wan li ku derê tê pêşkêşkirin. + title: Ka em te bi rê bixin li ser %{domain}. status: account_status: Rewşa ajimêr confirming: Li benda pejirandina e-nameyê ne da ku biqede. @@ -966,7 +955,6 @@ ku: redirecting_to: Ajimêra te neçalak e ji ber ku niha ber bi %{acct} ve tê beralîkirin. view_strikes: Binpêkirinên berê yên dijî ajimêrê xwe bibîne too_fast: Form pir zû hat şandin, dîsa biceribîne. - trouble_logging_in: Têketina te de pirsgirêk çêdibe? use_security_key: Kilîteke ewlehiyê bi kar bîne authorize_follow: already_following: Jixwe tu vê ajimêrê dişopînî @@ -1024,10 +1012,6 @@ ku: more_details_html: Bo bêhtir zanyarî, polîtika nihêniyê binêre. username_available: Navê bikarhêneriyê te wê dîsa peyda bibe username_unavailable: Navê bikarhêneriyê ye wê tuneyî bimîne - directories: - directory: Rêgeha profîlê - explanation: Bikarhêneran li gorî berjewendiyên wan bibîne - explore_mastodon: Vekole %{title} disputes: strikes: action_taken: Çalakî hatin kirin @@ -1106,29 +1090,60 @@ ku: public: Demnameya gelemperî thread: Axaftin edit: + add_keyword: Kilîtpeyv tevî bike + keywords: Peyvkilît + statuses: Şandiyên kesane + statuses_hint_html: Ev parzûn ji bo hibijartina şandiyên kesane tê sepandin bêyî ku ew bi peyvkilîtên jêrîn re lihevhatî bin. Şandiyan binirxîne an jî ji parzûnê rake. title: Parzûnê serrast bike errors: + deprecated_api_multiple_keywords: Van parameteran ji vê sepanê nayên guhertin ji ber ku ew li ser bêtirî yek kilîtpeyvên parzûnkirî têne sepandin. Sepaneke nûtir an navrûya bikarhêneriyê ya malperê bi kar bîne. invalid_context: Naverok tune ye yan jî nederbasdar tê peydakirin - invalid_irreversible: Tenê qadên agahdarkirinê û serrûpel bi parzûna bêveger re dixebitin index: + contexts: Parzûnên di %{contexts} de delete: Jê bibe empty: Parzûnên te tune ne. + expires_in: Di %{distance} de diqede + expires_on: Di %{date} de diqede + keywords: + one: "%{count} kilîtpeyv" + other: "%{count} kilîtpeyv" + statuses: + one: "%{count} şandî" + other: "%{count} şandî" + statuses_long: + one: "%{count} şandiyê kesane yê veşartî" + other: "%{count} şandiyê kesane yê veşartî" title: Parzûn new: + save: Parzûna nû tomar bike title: Parzûnek nû li zêde bike + statuses: + back_to_filter: Vegere bo parzûnê + batch: + remove: Ji parzûnê rake + index: + hint: Ev parzûn bêyî pîvanên din ji bo hilbijartina şandiyên kesane tê sepandin. Tu dikarî ji navrûya tevnê bêtir şandiyan tevlî vê parzûnê bikî. + title: Şandiyên parzûnkirî footer: - developers: Pêşdebir - more: Bêtir… - resources: Çavkanî trending_now: Niha rojevê de generic: all: Hemû + all_items_on_page_selected_html: + one: Berhemê %{count} li ser vê rûpelê hatiye hilbijartin. + other: Hemû berhemên %{count} li ser vê rûpelê hatine hilbijartin. + all_matching_items_selected_html: + one: Berhemê %{count} ku bi lêgerîna te re lihevhatî ye hatiye hilbijartin. + other: Hemû berhemên %{count} ku bi lêgerîna te re lihevhatî ne hatine hilbijartin. changes_saved_msg: Guhertin bi serkeftî tomar bû! copy: Jê bigire delete: Jê bibe + deselect: Hemûyan hilnebijêre none: Ne yek order_by: Rêz bike bi save_changes: Guhertinan tomar bike + select_all_matching_items: + one: Berhemê %{count} ku bi lêgerîna te re lihevhatî ye hilbijêre. + other: Hemû berhemên %{count} ku bi lêgerîna te re lihevhatî ne hilbijêre. today: îro validation_errors: one: Tiştek hîn ne rast e! Ji kerema xwe çewtiya li jêr di ber çavan re derbas bike @@ -1152,7 +1167,6 @@ ku: following: Rêzoka yên dişopînin muting: Rêzoka bêdengiyê upload: Bar bike - in_memoriam_html: Di bîranînê de. invites: delete: Neçalak bike expired: Dema wê qediya @@ -1184,7 +1198,7 @@ ku: password: borînpeyv sign_in_token: koda ewlehiyê bo e-nameyê webauthn: kilîtên ewlehiyê - description_html: Heke çalakiya ku nas nakî dibînî, çêtir dibe ku borînpeyva xwe biguherînî û rastandina du-gavî çalak bikî. + description_html: Çalakiya ku nas nakî dibînî, çêtir dibe ku borînpeyva xwe biguherînî û rastandina du-gavî çalak bikî. empty: Dîroka piştrastkirinê tune ye failed_sign_in_html: Hewldana têketinê ser neket bi%{method} ji %{ip} (%{browser}) de successful_sign_in_html: Bi serkeftî têketin bi %{method} ji %{ip}(%{browser}) çêbû @@ -1231,21 +1245,14 @@ ku: carry_blocks_over_text: Ev bikarhêner ji %{acct}, ku te astengkirî bû, bar kir. carry_mutes_over_text: Ev bikarhêner ji %{acct}, ku te bê deng kirbû, bar kir. copy_account_note_text: 'Ev bikarhêner ji %{acct} livî ye, li vir nîşeyên te yên berê ku te di derbarê wî/ê de nivîsandiye:' + navigation: + toggle_menu: Menuyê biguherîne notification_mailer: admin: + report: + subject: "%{name} ragihandinek şand" sign_up: subject: "%{name} tomar bû" - digest: - action: Hemû agahdariyan nîşan bide - body: Li vir kurteyeke peyamên ku li te derbasbûnd ji serdana te ya dawîn di %{since} de - mention: "%{name} behsa te kir:" - new_followers_summary: - one: Herwiha, dema tu dûr bûyî te şopînerek nû bi dest xist! Bijî! - other: Herwiha, dema tu dûr bûyî te %{count} şopînerek nû bi dest xist! Bijî! - subject: - one: "1 agahdarî ji serdana te ya herî dawî 🐘" - other: "%{count} agahdarî ji serdana te ya herî dawî 🐘" - title: Di tunebûna te de... favourite: body: 'Şandiya te hate bijartin ji alî %{name} ve:' subject: "%{name} şandiya te hez kir" @@ -1317,6 +1324,8 @@ ku: other: Yên din posting_defaults: Berdestên şandiyê public_timelines: Demnameya gelemperî + privacy_policy: + title: Politîka taybetiyê reactions: errors: limit_reached: Sînorê reaksiyonên cihêrengî gihîşte asta dawî @@ -1339,22 +1348,7 @@ ku: remove_selected_follows: Bikarhênerên hilbijartî neşopîne status: Rewşa ajimêr remote_follow: - acct: Navnîşana ajimêra xwe username@domain yê ku tu yê jê çalakî bikî binvsîne missing_resource: Ji bona ajimêra te pêwistiya beralîkirina URLyê nehate dîtin - no_account_html: Ajimêra te tune? Tu dikarîli vir tomar bibe - proceed: Şopandinê bidomîne - prompt: 'Tu yê bişopînî:' - reason_html: "Ev gav ji bona çi pêwîst e?%{instance}rajekerên ku tu tomarkiriyî dibe ku tunebe, ji bona vê divê pêşî te beralîyê rajekera te bi xwe bikin." - remote_interaction: - favourite: - proceed: Ber bi bijarteyê ve biçe - prompt: 'Tu dixwazî vê şandiyê bibijêrî:' - reblog: - proceed: Bo bilindkirinê bidomîne - prompt: 'Tu dixwazî vê şandî ye bilind bikî:' - reply: - proceed: Bersivandinê bidomîne - prompt: 'Tu dixwazî bersiva vê şandiyê bidî:' reports: errors: invalid_rules: rêbazên derbasdar nîşan nadê @@ -1372,7 +1366,6 @@ ku: browser: Gerok browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1386,7 +1379,6 @@ ku: phantom_js: PhantomJS qq: Geroka QQ safari: Safari - uc_browser: Geroka UCB weibo: Weibo current_session: Danişîna heyî description: "%{platform} ser %{browser}" @@ -1395,8 +1387,6 @@ ku: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1526,89 +1516,6 @@ ku: too_late: Pir dereng e ji bo îtîrazê li ser vê binpêkirinê tags: does_not_match_previous_name: bi navê berê re li hev nayê - terms: - body_html: | -

      Privacy Policy

      -

      What information do we collect?

      - -
        -
      • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
      • -
      • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
      • -
      • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
      • -
      • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
      • -
      - -
      - -

      What do we use your information for?

      - -

      Any of the information we collect from you may be used in the following ways:

      - -
        -
      • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
      • -
      • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
      • -
      • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
      • -
      - -
      - -

      How do we protect your information?

      - -

      We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

      - -
      - -

      What is our data retention policy?

      - -

      We will make a good faith effort to:

      - -
        -
      • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
      • -
      • Retain the IP addresses associated with registered users no more than 12 months.
      • -
      - -

      You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

      - -

      You may irreversibly delete your account at any time.

      - -
      - -

      Do we use cookies?

      - -

      Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

      - -

      We use cookies to understand and save your preferences for future visits.

      - -
      - -

      Do we disclose any information to outside parties?

      - -

      We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

      - -

      Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

      - -

      When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

      - -
      - -

      Site usage by children

      - -

      If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

      - -

      If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

      - -

      Law requirements can be different if this server is in another jurisdiction.

      - -
      - -

      Changes to our Privacy Policy

      - -

      If we decide to change our privacy policy, we will post those changes on this page.

      - -

      This document is CC-BY-SA. It was last updated March 7, 2018.

      - -

      Originally adapted from the Discourse privacy policy.

      - title: "%{instance} mercên bikaranîn û politîkayên nehêniyê" themes: contrast: Mastodon (Dijberiya bilind) default: Mastodon (Tarî) @@ -1651,7 +1558,7 @@ ku: change_password: borînpeyva xwe biguherîne details: 'Li vir hûrgiliyên hewldanên têketinê hene:' explanation: Me têketineke nû ji ajimêra te ji navnîşaneke IP ya nû dît. - further_actions_html: Ku ev ne tu bû, em ji te re pêşniyar dikin ku tu di tavilê de %{action} bikî û piştrastkirina du-gavî çalak bikî da ku ajimêra te di ewlehiyê de bimîne. + further_actions_html: Ku ev ne tu ye, em pêşniyar dikin ku tu di tavilê de %{action} û piştrastkirina du-gavî çalak bikî da ku ajimêra te di ewlehiyê de bimîne. subject: Ajimêra te ji navnîşaneke IP ya nû ve hatiye gihîştin title: Têketineke nû warning: @@ -1687,20 +1594,13 @@ ku: suspend: Ajimêr hatiye rawestandin welcome: edit_profile_action: Profîlê saz bike - edit_profile_step: Tu dikarî profîla xwe bi barkirina wêne, sernav, guherandina navê xuyangê xwe û bêhtir ve xweş bikî. Heke tu dixwazî şagirtên nû binirxînî berî ku mafê bidî ku ew te bişopînê, tu dikarî ajimêra xwe kilît bike. + edit_profile_step: Tu dikarî bi barkirina wêneyek profîlê, guhertina navê xwe ya xuyangê û bêtir profîla xwe kesane bikî. Berî ku mafê bidî ku te şopînerên nû te bişopînin, tu dikarî binirxînî. explanation: Li vir çend serişte hene ku tu dest pê bike final_action: Dest bi weşandinê bike final_step: 'Dest bi weşandinê bike! Bêyî şopîneran jî dibe ku şandiyên te yên gelemperî ji hêla kesên din ve werin dîtin, mînakî li ser demjimêra herêmî û di hashtagan de. Dibe ku tu bixwazî xwe li ser hashtagê #nasname bidî nasandin.' full_handle: Hemî destikê te full_handle_hint: Ji hevalên xwe re, ji bona ji rajekarekê din peyam bişîne an jî ji bona ku te bikaribe bişopîne tişta ku tu bibêjî ev e. - review_preferences_action: Bijartinan biguherîne - review_preferences_step: Pê bawer be ku vebijêrkên xwe saz bikî, wek mînak kîjan e-nameyên ku tu dixwaziî wergirîne, an tu dixwazî weşanên te ji kîjan astê nehêniyê de kesanekirî bin. Heke nexweşiya te ya tevgerê tune be, tu dikarî hilbijêrî ku GIF ya xweser çalak bibe. subject: Tu bi xêr hatî Mastodon - tip_federated_timeline: Demnameya giştî dimenêke gelemperî a Mastodon e. Lê tenê kesên ku ciranên te endamên wê ne dihewîne, ji ber vê yekê ew hemû nîne. - tip_following: Tu rêvebir (ên) rajeker wek berdest dişopînî. Ji bo mirovên balkêştir bibînî, demnameya herêmî û federasyonî kontrol bike. - tip_local_timeline: Demnameya herêmî, dimenêke bi giştî ye li ser %{instance} e. Ev ciranên te yên herî nêzik in! - tip_mobile_webapp: Ger geroka te ya desta pêşkêşî te bike ku tu Mastodon li ser ekrana xwe ya malê lê zêde bikî, tu dikarî agahdariyên push bistînî. Ew bi gelek awayan mîna serîlêdanek xwemalî tevdigere! - tips: Serbend title: Bi xêr hatî, %{name}! users: follow_limit_reached: Tu nikarî zêdetirî %{limit} kesan bişopînî diff --git a/config/locales/kw.yml b/config/locales/kw.yml index 62d535b1b07052..7683e30423cff1 100644 --- a/config/locales/kw.yml +++ b/config/locales/kw.yml @@ -1,10 +1,5 @@ --- kw: - about: - about_this: A-dro dhe - accounts: - roles: - group: Bagas admin: accounts: email: Ebost diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 5544fbc4dbac7b..d0d8bb4b81309b 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1,44 +1,18 @@ --- lt: about: - about_hashtag_html: Čia visiems prieinamas įrankis #%{hashtag}. Jūs galite juo naudotis bet kur, jeigu turite paskyra fedi-visatoje. about_mastodon_html: Mastodon, tai socialinis tinklas pagrįstas atviro kodo programavimu, ir atvirais web protokolais. Visiškai nemokamas. Ši sistema decantrilizuota kaip jūsų elektroninis paštas. - about_this: Apie - administered_by: 'Administruoja:' - apps: Mobilioji Aplikacija - contact: Kontaktai contact_missing: Nenustatyta - documentation: Dokumentacija hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu - learn_more: Daugiau - privacy_policy: Privatumo Politika - source_code: Šaltinio kodas - status_count_before: Autorius - terms: Naudojimo sąlygos - user_count_before: Namai - what_is_mastodon: Kas tai, Mastodon? accounts: - choices_html: "%{name} pasirinkimai:" follow: Sekti following: Sekami - joined: Prisijungiai %{date} last_active: paskutinį kartą aktyvus link_verified_on: Nuorodos nuosavybė paskutinį kartą tikrinta %{date} - media: Medija - moved_html: "%{name} persikėlė į %{new_profile_link}:" - network_hidden: Ši informacija neprieinama nothing_here: Čia nieko nėra! - people_followed_by: Žmonės, kuriuos %{name} seka - people_who_follow: Žmonės kurie seka %{name} pin_errors: following: Privalai sekti žmogų kurį nori pagerbti posts_tab_heading: Tootai - posts_with_replies: Tootai ir atsakymai - roles: - admin: Administratorius - bot: Bot'as - moderator: Moderatorius - unfollow: Nesekti admin: account_actions: action: Veiksmas @@ -52,7 +26,6 @@ lt: avatar: Profilio nuotrauka by_domain: Domenas change_email: - changed_msg: Paskyros el paštas sėkmingai pakeistas! current_email: Dabartinis el paštas label: Pakeisti el pašto adresą new_email: Naujas el pašto adresas @@ -112,12 +85,6 @@ lt: reset: Iš naujo reset_password: Atkurti slaptažodį resubscribe: Per prenumeruoti - role: Leidimai - roles: - admin: Administratorius - moderator: Moderatorius - staff: Personalas - user: Vartotojas search: Ieškoti shared_inbox_url: Bendroji gautųjų URL show: @@ -136,7 +103,6 @@ lt: username: Slapyvardis warn: Įspėti action_logs: - deleted_status: "(panaikintas statusas)" title: Audito žurnalas custom_emojis: by_domain: Domenas @@ -262,70 +228,6 @@ lt: unassign: Nepriskirti unresolved: Neišspręsti updated_at: Atnaujinti - settings: - activity_api_enabled: - desc_html: Skaičiai lokaliai įkeltų statusų, aktyvių vartotojų ir naujų registracijų, kas savaitiniuose atnaujinimuose - title: Paskelbti agreguotą statistiką apie vartotojo veiklą - bootstrap_timeline_accounts: - desc_html: Atskirti vartotojų vardus naudojant kablelį (,). Tik lokalios ir neužblokuotos paskyros veiks. Pradinis kai tuščia, visi lokalūs administratoriai. - title: Numatyti sekimai naujiems vartotojams - contact_information: - email: Verslo el paštas - username: Kontaktinis slapyvardis - custom_css: - desc_html: Pakeisk išvaizdą su CSS užkraunamu kiekviename puslapyje - title: Asmeninis CSS - hero: - desc_html: Rodomas pagrindiniame puslapyje. Bent 600x100px rekomenduojama. Kai nenustatyta, renkamasi numatytą serverio nuotrauką - title: Herojaus nuotrauka - mascot: - desc_html: Rodoma keleta puslapių. Bent 293×205px rekomenduoja. Kai nenustatyą, renkamasi numatytą varianta - title: Talismano nuotrauka - peers_api_enabled: - desc_html: Domeno vardai, kuriuos šis serveris sutiko fedi-visatoje - title: Paskelbti sąrašą atrastų serveriu - preview_sensitive_media: - desc_html: Nuorodų peržiūros kituose tinklalapiuose bus rodomos su maža nuotrauka, net jeigu failas parinktas kaip "jautraus turinio" - title: Rodyti jautrią informaciją OpenGraph peržiūrose - profile_directory: - desc_html: Leisti vartotojams būti atrastiems - title: Įjungti profilio direktorija - registrations: - closed_message: - desc_html: Rodoma pagrindiniame puslapyje, kuomet registracijos uždarytos. Jūs galite naudoti HTML - title: Uždarytos registracijos žinutė - deletion: - desc_html: Leisti visiems ištrinti savo paskyrą - title: Atidaryti paskyros trynimą - min_invite_role: - disabled: Nei vienas - title: Leisti pakvietimus - show_known_fediverse_at_about_page: - desc_html: Kai įjungta, rodys įrašus iš visos žinomos fedi-visatos. Kitokiu atvėju, rodys tik lokalius įrašus. - title: Rodyti žinoma fedi-visatos laiko juosta peržiūroje - show_staff_badge: - desc_html: Rodyti personalo ženklelį vartotojo puslapyje - title: Rodyti personalo ženklelį - site_description: - desc_html: Introdukcinis paragrafas pagrindiniame puslapyje. Apibūdink, kas padaro šį Mastodon serverį išskirtiniu ir visa kita, kas svarbu. Nebijok naudoti HTML žymes, pavyzdžiui < a > bei <em>. - title: Serverio apibūdinimas - site_description_extended: - desc_html: Gera vieta Jūsų elgesio kodeksui, taisyklėms, nuorodms ir kitokiai informacijai, kuri yra išskirtinė Jūsų serveriui. Galite naudoti HTML žymes - title: Išsamesnė išskirtine informacija - site_short_description: - desc_html: Rodoma šoniniame meniu ir meta žymėse. Apibūdink kas yra Mastodon, ir kas daro šį serverį išskirtiniu, vienu paragrafu. Jeigu tuščias, naudojamas numatytasis tekstas. - title: Trumpas serverio apibūdinimas - site_terms: - desc_html: Jūs galite parašyti savo pačio privatumo politika, naudojimo sąlygas ar kita informacija. Galite naudoti HTML žymes - title: Išskirtinės naudojimosi taisyklės - site_title: Serverio pavadinimas - thumbnail: - desc_html: Naudojama OpenGraph peržiūroms ir API. Rekomenduojama 1200x630px - title: Serverio miniatūra - timeline_preview: - desc_html: Rodyti viešą laiko juostą apsilankymo puslapyje - title: Laiko juostos peržiūra - title: Tinklalapio nustatymai statuses: back_to_account: Atgal į paskyros puslapį media: @@ -353,7 +255,6 @@ lt: applications: created: Aplikacija sėkmingai sukurta destroyed: Aplikacija sėkmingai ištrinta - invalid_url: Gauta URL nuoroda netinkama regenerate_token: Regeneruoti prieigos žetoną token_regenerated: Prieigos žetonas sėkmingai sugeneruotas warning: Būkite atsargūs su šia informacija. Niekada jos nesidalinkite! @@ -404,10 +305,6 @@ lt: confirm_password: Kad patvirtintumėte savo tapatybę, įveskite dabartini slaptažodį proceed: Ištrinti paskyrą success_msg: Jūsų paskyra sėkmingai ištrinta - directories: - directory: Profilio direktorija - explanation: Raskite vartotojus, remiantis tuo, kuo jie domisi - explore_mastodon: Naršyti %{title} errors: '400': The request you submitted was invalid or malformed. '403': Jūs neturie prieigos matyti šiam puslapiui. @@ -450,16 +347,11 @@ lt: title: Keisti filtrą errors: invalid_context: Jokio arba netinkamas pateiktas kontekstas - invalid_irreversible: Negrąžinamas filtras veikia tik namų ir priminimų kontekste index: delete: Ištrinti title: Filtrai new: title: Pridėti naują filtrą - footer: - developers: Programuotojai - more: Daugiau… - resources: Resursai generic: changes_saved_msg: Pakeitimai sėkmingai išsaugoti! copy: Kopijuoti @@ -478,7 +370,6 @@ lt: following: Sekėju sąrašas muting: Tildomų sąrašas upload: Įkelti - in_memoriam_html: Atminimui. invites: delete: Deaktyvuoti expired: Pasibaigęs @@ -510,11 +401,6 @@ lt: moderation: title: Moderacija notification_mailer: - digest: - action: Peržiurėti visus pranešimus - body: Čia yra trumpa santrauka žinutės, kurią jūs praleidote nuo jūsų paskutinio apsilankymo %{since} - mention: "%{name} paminėjo jus:" - title: Kol jūsų nebuvo... favourite: body: 'Jūsų statusą pamėgo %{name}:' subject: "%{name} pamėgo Jūsų statusą" @@ -545,22 +431,7 @@ lt: preferences: other: Kita remote_follow: - acct: Įveskite Jūsų slapyvardį@domenas kurį norite naudoti missing_resource: Jūsų paskyros nukreipimo URL nerasta - no_account_html: Neturite paskyros? Jūs galite užsiregistruoti čia - proceed: Sekti - prompt: 'Jūs seksite:' - reason_html: "Kodėl šis žingsnis svarbus?%{instance} gali būti serveris, kuriame jūs nesate užsiregistravęs, todėl mes turime jus nukreipti į Jūsų namų serveri." - remote_interaction: - favourite: - proceed: Pamėgti - prompt: 'Jūs norite pamėgti šį toot''ą:' - reblog: - proceed: Pakelti - prompt: 'Jūs norite pakelti šį toot''ą:' - reply: - proceed: Atsakyti - prompt: 'Jūs norite atsakyti šiam toot''ui:' scheduled_statuses: over_daily_limit: Jūs pasieketė limitą (%{limit}) galimų toot'ų per dieną over_total_limit: Jūs pasieketė %{limit} limitą galimų toot'ų @@ -615,87 +486,6 @@ lt: pinned: Prisegtas toot'as reblogged: pakeltas sensitive_content: Jautrus turinys - terms: - body_html: | -

      Privatumo politika

      -

      Kokia informacija yra renkama?

      -
        -
      • Paprasa paskyros informacija: Jeigu Jūs užsiregistruojate šiame serveryje, Jūsų gali paklausti, kad įrašytumėte slapyvardį, el pašto adresą ir paskyros slaptąžodį. Jūs irgi galite įrašyti papildomą profilio informaciją, tokią kaip rodomas vardas ir biografiją bei įkelti profilio nuotrauką ir antraštės nuotrauką. Slapyvardis , rodomas vardas, biografija, profilio nuotrauka ir antraštės nuotrauka visada viešai prieinama informacija.
      • -
      • Įrašai, sekami ir kita vieša informacija: Sąrašas žmonių, kuriuos Jūs sekate yra matomas viešai, taip pat kaip ir Jūsų sekėjams. Kai Jūs išsiunčiate žinutę, data ir laikas yra išsaugomi bei aplikacija iš kurios jūs išsiuntėte žinutę. Žinutėse gali būti prisegtų medijos failų kaip vaizdo įrašai bei nuotraukos. Viešos ir neįtrauktos į sąrašus žinutės yra viešai prieinamos. Kai nusprendžiate rodyti pranešimą ant savo profilio, tai irgi yra viešai prieinama informacija. Jūsų pranešimai yra pristatomi Jūsų sekėjams, kai kuriais atvėjais tai gali reikšti, kad šie pranešimai yra pristatomi į kitus serverius ir saugomi ten. Kai Jūs ištrinate įrašus, šie įrašai ištrinami ir Jūsų sekėjams. Veiksmas pamėgti kitus įrašus irgi yra viešas. -
      • Tiesioginiai ir tik sekėjams įrašai: Visi įrašai yra saugomi ir apdorojami serveryje. Tik sekėjams įrašai yra pristatomi Jūsų sekėjams ir vartotojams, kurie yra paminėti įrašuose, ir tiesioginiai įrašai pristatomi tik vartotojams, kurie yra paminėti įraše. Kai kuriais atvėjais tai gali reikšti, kad šie įrašai yra pristatomi į kitą serverį ir įrašų kopijos saugomos ten. Mes stengiames riboti prieigą prie šių pranešimų tiktai autorizuotiems gavėjams, tačiau kiti serveriai to gali nedaryti. Todėl yra svarbu peržiurėti serverius, kuriems Jūsų sekėjai priklauso. Jūs galite įjungti būseną nustatymuose, kad galėtumetė priimti arba atmesti naujas sekimo užklausas. Prašome nepamiršti, kad serverio operatoriai ir kiti serveriai, kurie gauna šias žinutes, gali jas peržiurėti bei, kad gavėjai gali padaryti foto kopija, tektso kopija ar kitaip pasidalinti Jūsų žinutėmis. Nesidalinkite jokia jautria ar pavojinga informacija naudojantis Mastodon.
      • -
      • IP adresai ir kiti metaduomenys: Kai prisijungiate, mes įrašome IP adresą iš kurio jūs prisijungėte, ir naudojamos naršyklės pavadinimą. Visos prisijungimo sesijos yra prieinamos Jūsų apžvalgai ir atšaukimams nustatymuose. Paskutiniai IP adresai yra saugomi iki 12-kos mėnesių. Mes taipogi galime pasilikti serverio registrą, kuriuose yra saugoma IP adresai iš visų bandymu prisijungti prie serverio prašant informacijos. -
      - -
      - -

      Kam mes naudojame Jūsų informaciją?

      -

      Visa surinkta informacija apie jus, gali būti panaudota šiems tikslams:

      -
        -
      • Suteikti pagrindį Mastodon funkcialumą. Jūs galite sąveikauti su kitų vartotojų turiniu ir kelti sąvajį, kuomet esate prisijungęs. Pavyzdžiui, galite sekti kitus žmones, peržiūrėti jų sujungtus įrašus savo pačio personalizuotoje laiko juostoje.
      • -
      • Padėti bendruomenės moderavimui, pavyzdžiui, lyginant Jūsų IP adresą, su kitu žinomu IP adresu, kad nustatyti bandymus vengti užblokavimo.
      • -
      • Jūsų el pašto adresas gali būti naudojamas išsiųsti informacija jums, priminimus apie kitų vartotojų interakciją su jūsų paskyra, pavyzdžiui, kai jie jums siunčia žinutes, ir atsakyti į užklausas ir/arba kitais klausimais.
      • -
      - -
      - -

      Kaip mes saugome Jūsų informacija?

      - -

      Mes implementavome saugumo priemones, tam, kad apsaugotume Jūsų privačią informaciją. Tarp šių dalykų, Jūsų naršyklės sesija, taip pat ir eismas tarp Jūsų aplikacijos ir API yra apsaugoti SSL, ir Jūsų slaptažodis yra užsifruotas sudėtingu algoritmu. Jūs galite įjungti dviejų veiksnių autentikaciją savo paskyrai, taip apsaugodami ją dar daugiau. -

      - -
      -

      Kokia yra mūsų duomenų laikymo politika?

      - -

      Mes stengiamės:

      - -
        -
      • Išsaugoti serverio registrą, kuriame yra visi IP adresai, kurie kreipėsi į serverį, šie duomenys laikomi neilgiau nei 90 dienų.
      • -
      • Išsaugoti IP adresus asocijuotus su registruotais vartotojais, ne ilgiau nei 12 mėnesių.
      • -
      - -

      Jūs galite pateikti prašymą ir parsisiųsti savo turinio archyvą, kuriame bus Jūsų įrašai, medijos failai, profilio nuotrauka ir antraštės nuotrauka.

      - -

      Jūs galite VISIŠKAI ištrinti savo paskyrą bet kuriuo metu.

      - -
      - -

      Ar mes naudojame sausainiukus?

      - -

      Taip. Sausainiukai yra mažos apimties failai, kuriuos svetainė arba svetainės tiekėjas perkelia į Jūsų kompiuterio kietąjį diską naudojantis interneto naršykle (jeigu jūs leidžiate). Šie sausainiai leidžia svetainiai prisiminti Jūsų naršyklę ir jeigu turite registruotą vartotoją, ji asocijuoti su Jūsu vartotoju.

      -

      Mes naudojame sausainius, kad suprastumėme ir išsaugotumėme Jūsų poreikius kitam apsilankymui.

      - -
      - -

      Ar mes atskleidžiame Jūsų informacija kitoms šalims?

      - -

      Mes neparduodame, nesikeičiame, ar kitaip mainomės Jūsų privačiais duomenimis su trečiosiomis šalimis. Į šį sąrašą neįeina patikimos trečiosios šalys, kurios padeda mums naudotis tinklalapiu, daryti verslą, ar padėti jums, tol, kol šios šalys sutinka laikyti šią informaciją konfidencialiai. Mes taippat galime paviešinti Jūsų informaciją, jeigu manome, kad Jūs pažeidėte įstatymus, naudojimosi politiką, ar apsaugoti, ginti Jūsų, mūsų ar kitų teises.

      - -

      Jūsų vieši duomenys gali būti atsisiųsti kitų serverių esančių tinkle. Jūsų vieši bei tik sekėjams skirti įrašai pristatomi serveriams, kuriuose Jūsų sekėjai egzistuoja, o tiesioginės žinutės pristatomos tiesiai į gavėjo serverį, tol, kol šie sekėjai ar gavėjai yra naudotojai iš kitų serverių.

      - -

      Kai jūs patvirtinate Jūsų paskyros naudojimą aplikacijai, atitinkamai priklausant nuo leidimų, kuriuos jūs suteikėte, aplikacija turi prieiga prie Jūsų viešojo profilio informacijos, Jūsų sekėjų sąrašo, sekamų sąrašo, visų Jūsų įrašų, ir pamėgtų įrašų. - Aplikacijos niekada negali turėti prieigos prie Jūsų el pašto adreso arba slaptažodžio.

      - -
      - - -

      Tinklalapio naudojimas nepilnamečiams

      - -

      Jeigu serveris yra EU arba EEA: Mūsų tinklalapis, produktai ir visi teikiami aptarnavimai yra teikiami tik žmonėms, kuriems yra bent 16 metų. Jeigu jums yra mažiau nei 16 metų, sekant GDPR reikalavimais (General Data Protection Regulation) prašome nenaudoti šios svetainės.

      - -

      Jeigu šis serveris yra USA: Mūsų tinklalapis, produktai ir visi teikiami aptarnavimai yra teikiami žmonėms, kuriems yra bent 13 metų. Jeigu jums mažiau nei 13 metų, sekant COPPA reikalavimais (Children's Online Privacy Protection Act) prašome nenaudotis šios svetainės.

      - -

      Legalūs reikalavimai gali būti kitokie, jeigu serveris yra kitoje jurisdikcijoje.

      - -
      - -

      Pasikeitimai mūsų privatumo politikoje

      - -

      Jeigu mes nusprendžiame pakeisti savo privatumo politiką, mes įrašysime šiuos pakeitimus šiame tinklalapyje.

      - -

      Šis dokumentas yra CC-BY-SA. Paskutinį kartą keistas Kovo 7, 2018.

      - -

      Originaliai adaptuotas iš Discourse privatumo politika.

      - title: "%{instance} Naudojimosi Sąlygos ir Privatumo Politika" themes: contrast: Mastodon (Didelio Kontrasto) default: Mastodon (Tamsus) @@ -727,20 +517,11 @@ lt: suspend: Paskyra užrakinta welcome: edit_profile_action: Nustatyti profilį - edit_profile_step: Jūs galite keisti savo profilį įkeldami profilio nuotrauką, antraštę, pakeičiant savo rodomą vardą ir dar daugiau. Jeigu norėtumete peržiurėti naujus sekėjus prieš leidžiant jiems jus sekti, galite užrakinti savo paskyrą. explanation: Štai keletas patarimų Jums final_action: Pradėti kelti įrašus - final_step: 'Pradėk kelti įrašus! Net jeigu neturi sekėjų, Jūsų viešos žinutės gali būti matomos kitų, pavyzdžiui, lokalioje laiko juostoje ir saitažodžiuose. Galite norėti prisistatyti naudojan saitąžodį #introductions.' full_handle: Jūsų pilnas slapyvardis full_handle_hint: Štai ką jūs sakytumėte savo draugams, kad jie galėtų jums siųsti žinutes arba just sekti iš kitų serverių. - review_preferences_action: Pakeisti pasirinkimus - review_preferences_step: Nustatykite savo pasirinkimus, tokius kaip el pašto laiškai, kuriuos norėtumėte gauti, arba kokiu privatumo lygiu norėtumėte, kad jūsų įrašai būtų talpinami, taip pat galite įjungti automatinį GIF paleidimą. subject: Sveiki atvykę į Mastodon - tip_federated_timeline: Federuota laiko juosta yra lyg gaisrininkų žarną rodanti Mastodon tinklą. Tačiau, joje rodomi tik žmonės kurie yra sekami Jūsų kaimynų. - tip_following: Jūs sekate savo serverio administratorius numatyta tvarka. Norint rasti įdomesnių žmonių, patikrinkite lokalią bei federuotą laiko juostas. - tip_local_timeline: Lokali laiko juosta, joje rodomi žmonės iš %{instance}. Jie yra Jūsų artimiausi kaimynai! - tip_mobile_webapp: Jeigu Jūsų mobilioji naršyklė leidžia jums pridėti Mastodon prie namų ekrano, jūs galite gauti priminimus. Tai gali veikti kaip vietinė aplikacija! - tips: Patarimai title: Sveiki atvykę, %{name}! users: follow_limit_reached: Negalite sekti daugiau nei %{limit} žmonių diff --git a/config/locales/lv.yml b/config/locales/lv.yml index e62264acddb6e2..2c1eaef62e4479 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1,83 +1,22 @@ --- lv: about: - about_hashtag_html: Šīs ir publiskas ziņas, kas atzīmētas ar #%{hashtag}. Tu vari mijiedarboties ar tām, ja tev ir konts jebkurā federācijas vietnē. about_mastodon_html: 'Nākotnes sociālais tīkls: bez reklāmām, bez korporatīvās uzraudzības, ētisks dizains un decentralizācija! Pārvaldi savus datus ar Mastodon!' - about_this: Par - active_count_after: aktīvs - active_footnote: Ikmēneša aktīvie lietotāji (IAL) - administered_by: 'Administrē:' - api: API - apps: Mobilās lietotnes - apps_platforms: Lieto Mastodon iOS, Android un citās platformās - browse_directory: Pārlūko profila direktoriju un atlasi pēc interesēm - browse_local_posts: Pārlūko publisko ziņu straumi no šī servera - browse_public_posts: Pārlūko publisko ziņu straumi no Mastodon - contact: Kontakts contact_missing: Nav uzstādīts contact_unavailable: N/A - continue_to_web: Pārej uz tīmekļa lietotni - discover_users: Atklāj lietotājus - documentation: Dokumentācija - federation_hint_html: Izmantojot kontu vietnē %{instance}, varēsi sekot cilvēkiem jebkurā Mastodon serverī un ārpus tā. - get_apps: Izmēģini mobilo lietotni hosted_on: Mastodon mitināts %{domain} - instance_actor_flash: | - Šis konts ir virtuāls aktieris, ko izmanto, lai pārstāvētu pašu serveri, nevis atsevišķu lietotāju. - To izmanto apvienošanas nolūkos, un to nedrīkst bloķēt, ja vien nevēlies bloķēt visu instanci, un tādā gadījumā tev jāizmanto domēna bloķēšana. - learn_more: Uzzināt vairāk - logged_in_as_html: Tu pašlaik esi pieteicies kā %{username}. - logout_before_registering: Tu jau esi pieteicies. - privacy_policy: Privātuma politika - rules: Servera noteikumi - rules_html: 'Tālāk ir sniegts noteikumu kopsavilkums, kas jāievēro, ja vēlies izveidot kontu šajā Mastodon serverī:' - see_whats_happening: Redzēt, kas notiek - server_stats: 'Servera statistika:' - source_code: Pirmkods - status_count_after: - one: ziņa - other: ziņas - zero: nav - status_count_before: Kurš publicējis - tagline: Seko draugiem un atrodi jaunus - terms: Pakalpojuma noteikumi - unavailable_content: Moderētie serveri - unavailable_content_description: - domain: Serveris - reason: Iemesls - rejecting_media: 'Multivides faili no šiem serveriem netiks apstrādāti vai saglabāti, un netiks parādīti sīktēli, kuriem nepieciešama manuāla noklikšķināšana uz sākotnējā faila:' - rejecting_media_title: Filtrēts saturs - silenced: 'Ziņas no šiem serveriem tiks paslēptas publiskās ziņu lentās un sarunās, un no lietotāju mijiedarbības netiks ģenerēti paziņojumi, ja vien tu tiem nesekosi:' - silenced_title: Ierobežoti serveri - suspended: 'Nekādi dati no šiem serveriem netiks apstrādāti, uzglabāti vai apmainīti, padarot neiespējamu jebkādu mijiedarbību vai saziņu ar lietotājiem no šiem serveriem:' - suspended_title: Apturēti serveri - unavailable_content_html: Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī. - user_count_after: - one: lietotājs - other: lietotāji - zero: lietotājI - user_count_before: Mājās uz - what_is_mastodon: Kas ir Mastodon? + title: Par accounts: - choices_html: "%{name} izvēles:" - endorsements_hint: Jūs varat apstiprināt cilvēkus, kuriem sekojat no tīmekļa saskarnes, un viņi tiks parādīti šeit. - featured_tags_hint: Šeit vari norādīt īpašus tēmturus, kuri tiks parādīti šeit. - follow: Seko + follow: Sekot followers: one: Sekotājs other: Sekotāji zero: Sekotāju following: Seko instance_actor_flash: Šis konts ir virtuāls aktieris, ko izmanto, lai pārstāvētu pašu serveri, nevis atsevišķu lietotāju. To izmanto federācijas nolūkos, un to nevajadzētu apturēt. - joined: Pievienojās %{date} last_active: pēdējā aktivitāte link_verified_on: Šīs saites piederība tika pārbaudīta %{date} - media: Mediji - moved_html: "%{name} ir pārcēlies uz %{new_profile_link}:" - network_hidden: Šāda informācija nav pieejama nothing_here: Te nekā nav! - people_followed_by: Cilvēki, kuriem %{name} seko - people_who_follow: Cilvēki, kuri seko %{name} pin_errors: following: Tev jau ir jāseko personai, kuru vēlies apstiprināt posts: @@ -85,14 +24,6 @@ lv: other: Ziņas zero: Ziņu posts_tab_heading: Ziņas - posts_with_replies: Ziņas un atbildes - roles: - admin: Admins - bot: Bots - group: Grupa - moderator: Moder - unavailable: Profils nav pieejams - unfollow: Pārstāt sekot admin: account_actions: action: Veikt darbību @@ -109,12 +40,17 @@ lv: avatar: Avatars by_domain: Domēns change_email: - changed_msg: Konta e-pasts veiksmīgi nomainīts! + changed_msg: E-pasts veiksmīgi nomainīts! current_email: Pašreizējais e-pasts label: Mainīt e-pastu new_email: Jaunā e-pasta adrese submit: Mainīt e-pastu title: Mainīt e-pastu %{username} + change_role: + changed_msg: Loma veiksmīgi nomainīta! + label: Mainīt lomu + no_role: Nav lomas + title: Mainīt lomu %{username} confirm: Apstiprināt confirmed: Apstiprināts confirming: Apstiprina @@ -150,7 +86,7 @@ lv: remote: Attālinātie title: Atrašanās vieta login_status: Pieteikšanās statuss - media_attachments: Mediju pielikumi + media_attachments: Multivides pielikumi memorialize: Pārvērst atmiņās memorialized: Piemiņa saglabāta memorialized_msg: "%{username} veiksmīgi pārvērsts par piemiņas kontu" @@ -158,6 +94,7 @@ lv: active: Aktīvie all: Visi pending: Gaida + silenced: Ierobežotie suspended: Apturētie title: Moderācija moderation_notes: Moderācijas piezīmes @@ -165,6 +102,7 @@ lv: most_recent_ip: Pati pēdējā IP no_account_selected: Neviens konts netika mainīts, jo neviens netika atlasīts no_limits_imposed: Nav noteikti ierobežojumi + no_role_assigned: Loma nav piešķirta not_subscribed: Nav abonēts pending: Gaida pārskatīšanu perform_full_suspension: Apturēt @@ -192,12 +130,7 @@ lv: reset: Atiestatīt reset_password: Atiestatīt paroli resubscribe: Pieteikties vēlreiz - role: Privilēģijas - roles: - admin: Administrators - moderator: Moderators - staff: Personāls - user: Lietotājs + role: Loma search: Meklēt search_same_email_domain: Citi lietotāji ar tādu pašu e-pasta domēnu search_same_ip: Citi lietotāji ar tādu pašu IP @@ -240,17 +173,21 @@ lv: approve_user: Apstiprināt lietotāju assigned_to_self_report: Piešķirt Pārskatu change_email_user: Mainīt e-pastu lietotājam + change_role_user: Mainīt lietotāja lomu confirm_user: Apstiprināt lietotāju create_account_warning: Izveidot Brīdinājumu create_announcement: Izveidot Paziņojumu + create_canonical_email_block: Izveidot E-pasta Bloku create_custom_emoji: Izveidot pielāgotu emocijzīmi create_domain_allow: Izveidot Domēna Atļauju create_domain_block: Izveidot Domēna Bloku create_email_domain_block: Izveidot E-pasta Domēna Bloku create_ip_block: Izveidot IP noteikumu create_unavailable_domain: Izveidot Nepieejamu Domēnu + create_user_role: Izveidot lomu demote_user: Pazemināt Lietotāju destroy_announcement: Dzēst Paziņojumu + destroy_canonical_email_block: Dzēst E-pasta Bloku destroy_custom_emoji: Dzēst pielāgoto emocijzīmi destroy_domain_allow: Dzēst Domēna Atļauju destroy_domain_block: Dzēst Domēna Bloku @@ -259,6 +196,7 @@ lv: destroy_ip_block: Dzēst IP noteikumu destroy_status: Izdzēst Rakstu destroy_unavailable_domain: Dzēst Nepieejamu Domēnu + destroy_user_role: Iznīcināt lomu disable_2fa_user: Atspējot 2FA disable_custom_emoji: Atspējot pielāgotu emocijzīmi disable_sign_in_token_auth_user: Atspējoja e-pasta marķiera autentifikāciju lietotājam @@ -272,6 +210,7 @@ lv: reject_user: Noraidīt lietotāju remove_avatar_user: Noņemt Avatāru reopen_report: Atkārtoti Atvērt Ziņojumu + resend_user: Atkārtoti nosūtīt Apstiprinājuma Pastu reset_password_user: Atiestatīt Paroli resolve_report: Atrisināt Ziņojumu sensitive_account: Piespiedu sensitīvizēt kontu @@ -285,24 +224,30 @@ lv: update_announcement: Atjaunināt Paziņojumu update_custom_emoji: Atjaunināt pielāgoto emocijzīmi update_domain_block: Atjaunināt Domēna Bloku + update_ip_block: Atjaunināt IP noteikumu update_status: Atjaunināt ziņu + update_user_role: Atjaunināt lomu actions: approve_appeal_html: "%{name} apstiprināja moderācijas lēmuma apelāciju no %{target}" approve_user_html: "%{name} apstiprināja reģistrēšanos no %{target}" assigned_to_self_report_html: "%{name} piešķīra pārskatu %{target} sev" change_email_user_html: "%{name} nomainīja e-pasta adresi lietotājam %{target}" + change_role_user_html: "%{name} nomainīja lomu uz %{target}" confirm_user_html: "%{name} apstiprināja e-pasta adresi lietotājam %{target}" create_account_warning_html: "%{name} nosūtīja brīdinājumu %{target}" create_announcement_html: "%{name} izveidoja jaunu paziņojumu %{target}" + create_canonical_email_block_html: "%{name} bloķēja e-pastu ar hešu %{target}" create_custom_emoji_html: "%{name} augšupielādēja jaunu emocijzīmi %{target}" create_domain_allow_html: "%{name} atļāva federāciju ar domēnu %{target}" create_domain_block_html: "%{name} bloķēja domēnu %{target}" create_email_domain_block_html: "%{name} bloķēja e-pasta domēnu %{target}" create_ip_block_html: "%{name} izveidoja nosacījumu priekš IP %{target}" create_unavailable_domain_html: "%{name} apturēja piegādi uz domēnu %{target}" + create_user_role_html: "%{name} nomainīja %{target} lomu" demote_user_html: "%{name} pazemināja lietotāju %{target}" destroy_announcement_html: "%{name} izdzēsa paziņojumu %{target}" - destroy_custom_emoji_html: "%{name} iznīcināja emocijzīmi %{target}" + destroy_canonical_email_block_html: "%{name} atbloķēja e-pastu ar hešu %{target}" + destroy_custom_emoji_html: "%{name} izdzēsa emocijzīmi %{target}" destroy_domain_allow_html: "%{name} neatļāva federāciju ar domēnu %{target}" destroy_domain_block_html: "%{name} atbloķēja domēnu %{target}" destroy_email_domain_block_html: "%{name} atbloķēja e-pasta domēnu %{target}" @@ -310,6 +255,7 @@ lv: destroy_ip_block_html: "%{name} izdzēsa nosacījumu priekš IP %{target}" destroy_status_html: "%{name} noņēma ziņu %{target}" destroy_unavailable_domain_html: "%{name} atjaunoja piegādi uz domēnu %{target}" + destroy_user_role_html: "%{name} izdzēsa %{target} lomu" disable_2fa_user_html: "%{name} atspējoja divfaktoru prasības lietotājam %{target}" disable_custom_emoji_html: "%{name} atspējoja emocijzīmi %{target}" disable_sign_in_token_auth_user_html: "%{name} atspējoja e-pasta marķiera autentifikāciju %{target}" @@ -323,6 +269,7 @@ lv: reject_user_html: "%{name} noraidīja reģistrēšanos no %{target}" remove_avatar_user_html: "%{name} noņēma %{target} avatāru" reopen_report_html: "%{name} atkārtoti atvēra ziņojumu %{target}" + resend_user_html: "%{name} atkārtoti nosūtīja apstiprinājuma e-pastu %{target}" reset_password_user_html: "%{name} atiestatīja paroli lietotājam %{target}" resolve_report_html: "%{name} atrisināja ziņojumu %{target}" sensitive_account_html: "%{name} atzīmēja %{target} mediju kā sensitīvu" @@ -336,8 +283,10 @@ lv: update_announcement_html: "%{name} atjaunināja paziņojumu %{target}" update_custom_emoji_html: "%{name} atjaunināja emocijzīmi %{target}" update_domain_block_html: "%{name} atjaunināja domēna bloku %{target}" + update_ip_block_html: "%{name} mainīja nosacījumu priekš IP %{target}" update_status_html: "%{name} atjaunināja ziņu %{target}" - deleted_status: "(dzēsta ziņa)" + update_user_role_html: "%{name} nomainīja %{target} lomu" + deleted_account: dzēsts konts empty: Žurnāli nav atrasti. filter_by_action: Filtrēt pēc darbības filter_by_user: Filtrēt pēc lietotāja @@ -381,6 +330,7 @@ lv: listed: Uzrakstītas new: title: Pievienojiet jaunas pielāgotās emocijzīmes + no_emoji_selected: Neviena emocijzīme netika mainīta, jo neviena netika atlasīta not_permitted: Tev nav atļauts veikt šo darbību overwrite: Pārrakstīt shortcode: Īskods @@ -437,6 +387,7 @@ lv: destroyed_msg: Domēna bloķēšana ir atsaukta domain: Domēns edit: Rediģēt domēna bloķēšanu + existing_domain_block: Tu jau esi noteicis stingrākus ierobežojumus %{name}. existing_domain_block_html: Tu jau esi noteicis stingrākus ierobežojumus %{name}, vispirms tev jāatbloķē. new: create: Izveodot bloku @@ -662,6 +613,69 @@ lv: unresolved: Neatrisinātie updated_at: Atjaunināts view_profile: Skatīt profilu + roles: + add_new: Pievienot lomu + assigned_users: + one: "%{count} lietotājs" + other: "%{count} lietotāji" + zero: "%{count} lietotāju" + categories: + administration: Administrēšana + devops: DevOps + invites: Uzaicinājumi + moderation: Moderācija + special: Īpašās + delete: Dzēst + description_html: Izmantojot lietotāju lomas, vari pielāgot, kurām Mastodon funkcijām un apgabaliem var piekļūt tavi lietotāji. + edit: Rediģēt lomu '%{name}' + everyone: Noklusētās atļaujas + everyone_full_description_html: Šī ir pamata loma, kas ietekmē visus lietotājus, pat tos, kuriem nav piešķirta loma. Visas pārējās lomas manto atļaujas no šīs. + permissions_count: + one: "%{count} atļauja" + other: "%{count} atļaujas" + zero: "%{count} atļauju" + privileges: + administrator: Administrators + administrator_description: Lietotāji ar šo atļauju apies visas atļaujas + delete_user_data: Dzēst Lietotāja Datus + delete_user_data_description: Ļauj lietotājiem bez kavēšanās dzēst citu lietotāju datus + invite_users: Uzaicināt Lietotājus + invite_users_description: Ļauj lietotājiem uzaicināt jaunus cilvēkus uz šo serveri + manage_announcements: Pārvaldīt Paziņojumus + manage_announcements_description: Ļauj lietotājiem pārvaldīt paziņojumus serverī + manage_appeals: Pārvaldīt Pārsūdzības + manage_appeals_description: Ļauj lietotājiem izskatīt apelācijas pret regulēšanas darbībām + manage_blocks: Pārvaldīt Bloķus + manage_blocks_description: Ļauj lietotājiem bloķēt e-pasta pakalpojumu sniedzējus un IP adreses + manage_custom_emojis: Pārvaldīt Pielāgotās Emocijzīmes + manage_custom_emojis_description: Ļauj lietotājiem pārvaldīt pielāgotās emocijzīmes serverī + manage_federation: Pārvaldīt Federāciju + manage_federation_description: Ļauj lietotājiem bloķēt vai atļaut federāciju ar citiem domēniem un kontrolēt piegādi + manage_invites: Pārvaldīt Uzaicinājumus + manage_invites_description: Ļauj lietotājiem pārlūkot un deaktivizēt uzaicinājuma saites + manage_reports: Pārvaldīt Pārskatus + manage_reports_description: Ļauj lietotājiem pārskatīt pārskatus un veikt pret tiem regulēšanas darbības + manage_roles: Pārvaldīt Lomas + manage_roles_description: Ļauj lietotājiem pārvaldīt un piešķirt lomas, kas ir zemākas par viņu lomu + manage_rules: Pārvaldīt Noteikumus + manage_rules_description: Ļauj lietotājiem mainīt servera noteikumus + manage_settings: Pārvaldīt Iestatījumus + manage_settings_description: Ļauj lietotājiem mainīt vietnes uzstādījumus + manage_taxonomies: Pārvaldīt Taksonomijas + manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālo saturu un atjaunināt atsauces iestatījumus + manage_user_access: Pārvaldīt Lietotāju Piekļuves + manage_user_access_description: Ļauj lietotājiem atspējot citu lietotāju divu faktoru autentifikāciju, mainīt savu e-pasta adresi un atiestatīt paroli + manage_users: Pārvaldīt Lietotājus + manage_users_description: Ļauj lietotājiem skatīt citu lietotāju informāciju un veikt pret viņiem regulēšanas darbības + manage_webhooks: Pārvaldīt Tīmekļa Aizķeres + manage_webhooks_description: Ļauj lietotājiem iestatīt tīmekļa aizķeres administratīviem pasākumiem + view_audit_log: Skatīt Audita Žurnālu + view_audit_log_description: Ļauj lietotājiem redzēt serverī veikto administratīvo darbību vēsturi + view_dashboard: Skatīt Informācijas Paneli + view_dashboard_description: Ļauj lietotājiem piekļūt informācijas panelim un dažādiem rādītājiem + view_devops: DevOps + view_devops_description: Ļauj lietotājiem piekļūt Sidekiq un pgHero informācijas paneļiem + title: Lomas rules: add_new: Pievienot noteikumu delete: Dzēst @@ -670,108 +684,67 @@ lv: empty: Servera noteikumi vēl nav definēti. title: Servera noteikumi settings: - activity_api_enabled: - desc_html: Vietēji publicēto ziņu, aktīvo lietotāju un jauno reģistrāciju skaits nedēļas kopās - title: Publicējiet apkopotu statistiku par lietotāju darbībām API - bootstrap_timeline_accounts: - desc_html: Atdaliet vairākus lietotājvārdus ar komatu. Tiks garantēts, ka šie konti tiks parādīti ieteikumos - title: Iesaki šos kontus jaunajiem lietotājiem - contact_information: - email: Lietišķais e-pasts - username: Saziņas lietotājvārds - custom_css: - desc_html: Maini izskatu, izmantojot CSS, kas ielādēta katrā lapā - title: Pielāgota CSS - default_noindex: - desc_html: Ietekmē visus lietotājus, kuri paši nav mainījuši šo iestatījumu - title: Pēc noklusējuma lietotāji būs atteikušies no meklētājprogrammu indeksēšanas + about: + manage_rules: Pārvaldīt servera nosacījumus + preamble: Sniedz padziļinātu informāciju par to, kā serveris tiek darbināts, moderēts un finansēts. + rules_hint: Noteikumiem, kas taviem lietotājiem ir jāievēro, ir īpaša sadaļa. + title: Par + appearance: + preamble: Pielāgo Mastodon tīmekļa saskarni. + title: Izskats + branding: + preamble: Tava servera zīmols to atšķir no citiem tīkla serveriem. Šī informācija var tikt parādīta dažādās vidēs, piemēram, Mastodon tīmekļa saskarnē, vietējās lietojumprogrammās, saišu priekšskatījumos citās vietnēs un ziņojumapmaiņas lietotnēs un tā tālāk. Šī iemesla dēļ vislabāk ir saglabāt šo informāciju skaidru, īsu un kodolīgu. + title: Zīmola veidošana + content_retention: + preamble: Kontrolē, kā Mastodon tiek glabāts lietotāju ģenerēts saturs. + title: Satura saglabāšana + discovery: + follow_recommendations: Sekotšanas rekomendācijas + preamble: Interesanta satura parādīšana palīdz piesaistīt jaunus lietotājus, kuri, iespējams, nepazīst nevienu Mastodon. Kontrolē, kā tavā serverī darbojas dažādi atklāšanas līdzekļi. + profile_directory: Profila direktorija + public_timelines: Publiskās ziņu lentas + title: Atklāt + trends: Tendences domain_blocks: all: Visiem disabled: Nevienam - title: Rādīt domēnu bloķēšanas users: Vietējiem reģistrētiem lietotājiem - domain_blocks_rationale: - title: Rādīt pamatojumus - hero: - desc_html: Parādīts pirmajā lapā. Ieteicams vismaz 600x100 pikseļus. Ja tas nav iestatīts, atgriežas servera sīktēlā - title: Varoņa attēls - mascot: - desc_html: Parādīts vairākās lapās. Ieteicams vismaz 293 × 205 pikseļi. Ja tas nav iestatīts, tiek atgriezts noklusējuma talismans - title: Talismana attēls - peers_api_enabled: - desc_html: Domēna vārdi, ar kuriem šis serveris ir saskāries fediversā - title: Publicēt API atklāto serveru sarakstu - preview_sensitive_media: - desc_html: Saites priekšskatījumus citās vietnēs parādīs kā sīktēlu pat tad, ja medijs ir atzīmēts kā sensitīvs - title: Parādīt sensitīvos medijus OpenGraph priekšskatījumos - profile_directory: - desc_html: Atļaut lietotājiem būt atklājamiem - title: Iespējot profila direktoriju registrations: - closed_message: - desc_html: Tiek parādīts sākumlapā, kad reģistrācija ir slēgta. Tu vari izmantot HTML tagus - title: Paziņojums par slēgtu reģistrāciju - deletion: - desc_html: Atļaut ikvienam dzēst savu kontu - title: Atvērt konta dzēšanu - min_invite_role: - disabled: Nevienam - title: Atļaut uzaicinājumus - require_invite_text: - desc_html: 'Ja reģistrācijai nepieciešama manuāla apstiprināšana, izdari, lai teksta: “Kāpēc vēlaties pievienoties?” ievade ir obligāta, nevis neobligāts' - title: Pieprasīt jauniem lietotājiem ievadīt pievienošanās iemeslu + preamble: Kontrolē, kurš var izveidot kontu tavā serverī. + title: Reģistrācijas registrations_mode: modes: approved: Reģistrācijai nepieciešams apstiprinājums none: Neviens nevar reģistrēties open: Jebkurš var reģistrēties - title: Reģistrācijas režīms - show_known_fediverse_at_about_page: - desc_html: Ja šī funkcija ir atspējota, tā ierobežo publisko ziņu lentu, kas ir saistīta ar galveno lapu, lai parādītu tikai vietējo saturu - title: Iekļaut federēto saturu neautentificētā publiskā ziņu lentas lapā - show_staff_badge: - desc_html: Parāda personāla emblēmu lietotāja lapā - title: Parādīt personāla emblēmu - site_description: - desc_html: Ievadpunkts par API. Apraksti, kas padara šo Mastodon serveri īpašu, un jebko citu svarīgu. Vari izmantot HTML tagus, jo īpaši <a> un <em>. - title: Servera apraksts - site_description_extended: - desc_html: Laba vieta tavam rīcības kodeksam, noteikumiem, vadlīnijām un citām lietām, kas atšķir tavu serveri. Tu vari izmantot HTML tagus - title: Pielāgota paplašināta informācija - site_short_description: - desc_html: Tiek parādīts sānjoslā un metatagos. Vienā rindkopā apraksti, kas ir Mastodon un ar ko šis serveris ir īpašs. - title: Īss servera apraksts - site_terms: - desc_html: Tu vari uzrakstīt savu privātuma politiku, pakalpojumu sniegšanas noteikumus vai citu likumīgu. Tu vari izmantot HTML tagus - title: Pielāgoti pakalpojuma sniegšanas noteikumi - site_title: Servera nosaukums - thumbnail: - desc_html: Izmanto priekšskatījumiem, izmantojot OpenGraph un API. Ieteicams 1200x630 pikseļi - title: Servera sīkbilde - timeline_preview: - desc_html: Galvenajā lapā parādi saiti uz publisku laika skalu un ļauj API piekļūt publiskai ziņu lentai bez autentifikācijas - title: Atļaut neautentificētu piekļuvi publiskai ziņu lentai - title: Vietnes iestatījumi - trendable_by_default: - desc_html: Ietekmē tēmturus, kas iepriekš nav bijuši aizliegti - title: Ļaujiet tēmturiem mainīties bez iepriekšējas pārskatīšanas - trends: - desc_html: Publiski parādīt iepriekš pārskatītus tēmturus, kas pašlaik ir populāri - title: Populārākie tēmturi + title: Servera Iestatījumi site_uploads: delete: Dzēst augšupielādēto failu destroyed_msg: Vietnes augšupielāde ir veiksmīgi izdzēsta! statuses: + account: Autors + application: Lietotne back_to_account: Atpakaļ uz konta lapu back_to_report: Atpakaļ uz paziņojumu lapu batch: remove_from_report: Noņemt no ziņojuma report: Ziņojums deleted: Dzēstie + favourites: Izlase + history: Versiju vēsture + in_reply_to: Atbildot uz + language: Valoda media: - title: Mediji + title: Multivide + metadata: Metadati no_status_selected: Neviena ziņa netika mainīta, jo neviena netika atlasīta + open: Atvērt ziņu + original_status: Oriģinālā ziņa + reblogs: Reblogi + status_changed: Ziņa mainīta title: Konta ziņas + trending: Tendences + visibility: Redzamība with_media: Ar medijiem strikes: actions: @@ -811,6 +784,9 @@ lv: description_html: Šīs ir saites, kuras pašlaik bieži koplieto konti, no kuriem tavs serveris redz ziņas. Tas var palīdzēt taviem lietotājiem uzzināt, kas notiek pasaulē. Kamēr tu neapstiprini izdevēju, neviena saite netiek rādīta publiski. Vari arī atļaut vai noraidīt atsevišķas saites. disallow: Neatļaut saiti disallow_provider: Neatļaut publicētāju + no_link_selected: Neviena saite netika mainīta, jo neviena netika atlasīta + publishers: + no_publisher_selected: Neviens publicētājs netika mainīts, jo neviens netika atlasīts shared_by_over_week: one: Pēdējās nedēļas laikā kopīgoja viena persona other: Pēdējās nedēļas laikā kopīgoja %{count} personas @@ -831,6 +807,7 @@ lv: description_html: Šīs ir ziņas, par kurām tavs serveris zina un kuras pašlaik tiek koplietotas un pašlaik ir daudz izlasē. Tas var palīdzēt taviem jaunajiem un atkārtotiem lietotājiem atrast vairāk cilvēku, kam sekot. Neviena ziņa netiek publiski rādīta, kamēr neesi apstiprinājis autoru un autors atļauj savu kontu ieteikt citiem. Vari arī atļaut vai noraidīt atsevišķas ziņas. disallow: Neatļaut publicēt disallow_account: Neatļaut autoru + no_status_selected: Neviena populāra ziņa netika mainīta, jo neviena netika atlasīta not_discoverable: Autors nav izvēlējies būt atklājams shared_by: one: Vienreiz kopīgots vai pievienots izlasei @@ -847,6 +824,7 @@ lv: tag_uses_measure: lietojumi pavisam description_html: Šīs ir atsauces, kas pašlaik tiek rādītas daudzās ziņās, kuras redz tavs serveris. Tas var palīdzēt taviem lietotājiem uzzināt, par ko cilvēki šobrīd runā visvairāk. Neviena atsauce netiek rādīta publiski, kamēr tu neesi tās apstiprinājis. listable: Var tikt ieteikts + no_tag_selected: Neviena atzīme netika mainīta, jo neviena netika atlasīta not_listable: Nevar tikt ieteikts not_trendable: Neparādīsies pie tendencēm not_usable: Nevar tikt lietots @@ -868,6 +846,27 @@ lv: edit_preset: Labot iepriekš iestatītus brīdinājumus empty: Tu vēl neesi definējis iepriekš iestatītos brīdinājumus. title: Pārvaldīt brīdinājuma iestatījumus + webhooks: + add_new: Pievienot galapunktu + delete: Dzēst + description_html: Izmantojot tīmekļa aizķeri, Mastodon var nosūtīt jūsu lietojumprogrammai reāllaika paziņojumus par izvēlētajiem notikumiem, lai tava lietojumprogramma varētu automātiski izraisīt reakcijas. + disable: Atspējot + disabled: Atspējots + edit: Rediģēt galapunktu + empty: Tev vēl nav konfigurēts neviens tīmekļa aizķeres galapunkts. + enable: Iespējot + enabled: Aktīvie + enabled_events: + one: 1 iespējots notikums + other: "%{count} iespējoti notikumi" + zero: "%{count} iespējotu notikumu" + events: Notikumi + new: Jauna tīmekļa aizķere + rotate_secret: Pagriezt noslēpumu + secret: Paraksta noslēpums + status: Statuss + title: Tīmekļa āķi + webhook: Tīmekļa āķis admin_mailer: new_appeal: actions: @@ -891,12 +890,8 @@ lv: new_trends: body: 'Tālāk norādītie vienumi ir jāpārskata, lai tos varētu parādīt publiski:' new_trending_links: - no_approved_links: Pašlaik nav apstiprinātu tendenču saišu. - requirements: 'Jebkurš no šiem kandidātiem varētu pārspēt #%{rank} apstiprināto populāro saiti, kas pašlaik ir "%{lowest_link_title}" ar rezultātu %{lowest_link_score}.' title: Populārākās saites new_trending_statuses: - no_approved_statuses: Pašlaik nav apstiprinātu tendenču saišu. - requirements: 'Jebkurš no šiem kandidātiem varētu pārspēt #%{rank} apstiprināto populāro ziņu, kas pašlaik ir %{lowest_status_url} ar rezultātu %{lowest_status_score}.' title: Populārākās ziņas new_trending_tags: no_approved_tags: Pašlaik nav apstiprinātu tendenču tēmturu. @@ -911,7 +906,7 @@ lv: hint_html: Ja vēlies pāriet no cita konta uz šo, šeit vari izveidot aizstājvārdu, kas ir nepieciešams, lai varētu turpināt sekotāju pārvietošanu no vecā konta uz šo. Šī darbība pati par sevi ir nekaitīga un atgriezeniska. Konta migrācija tiek sākta no vecā konta. remove: Atsaistīt aizstājvārdu appearance: - advanced_web_interface: Paplašinātais web interfeiss + advanced_web_interface: Paplašinātā tīmekļa saskarne advanced_web_interface_hint: 'Ja vēlies izmantot visu ekrāna platumu, uzlabotā tīmekļa saskarne ļauj konfigurēt daudzas dažādas kolonnas, lai vienlaikus redzētu tik daudz informācijas, cik vēlies: Sākums, paziņojumi, federētā ziņu lenta, neierobežots skaits sarakstu un tēmturu.' animations_and_accessibility: Animācijas un pieejamība confirmation_dialogs: Apstiprināšanas dialogi @@ -923,25 +918,22 @@ lv: sensitive_content: Sensitīvs saturs toot_layout: Ziņas izskats application_mailer: - notification_preferences: Mainīt e-pasta preferences + notification_preferences: Mainīt e-pasta uztādījumus salutation: "%{name}," - settings: 'Mainīt e-pasta preferences: %{link}' + settings: 'Mainīt e-pasta uztādījumus: %{link}' view: 'Skatījums:' view_profile: Skatīt profilu view_status: Skatīt ziņu applications: created: Lietojumprogramma ir veiksmīgi izveidota destroyed: Lietojumprogramma ir veiksmīgi dzēsta - invalid_url: Norādītais URL nav derīgs regenerate_token: Atjaunot piekļuves marķieri token_regenerated: Piekļuves marķieris veiksmīgi atjaunots warning: Esi ļoti uzmanīgs ar šiem datiem. Nekad nedalies ne ar vienu ar tiem! your_token: Tavs piekļuves marķieris auth: - apply_for_account: Pieprasīt ielūgumu + apply_for_account: Iekļūt gaidīšanas sarakstā change_password: Parole - checkbox_agreement_html: Es piekrītu servera noteikumiem un pakalpojuma sniegšanas noteikumiem - checkbox_agreement_without_rules_html: Es piekrītu pakalpojuma sniegšanas noteikumiem delete_account: Dzēst kontu delete_account_html: Ja vēlies dzēst savu kontu, tu vari turpināt šeit. Tev tiks lūgts apstiprinājums. description: @@ -960,6 +952,7 @@ lv: migrate_account: Pāriešana uz citu kontu migrate_account_html: Ja vēlies novirzīt šo kontu uz citu, tu vari to konfigurēt šeit. or_log_in_with: Vai piesakies ar + privacy_policy_agreement_html: Esmu izlasījis un piekrītu privātuma politikai providers: cas: CAS saml: SAML @@ -967,12 +960,18 @@ lv: registration_closed: "%{instance} nepieņem jaunus dalībniekus" resend_confirmation: Atkārtoti nosūtīt apstiprinājuma norādījumus reset_password: Atiestatīt paroli + rules: + preamble: Tos iestata un ievieš %{domain} moderatori. + title: Daži pamatnoteikumi. security: Drošība set_new_password: Iestatīt jaunu paroli setup: email_below_hint_html: Ja zemāk norādītā e-pasta adrese ir nepareiza, vari to nomainīt šeit un saņemt jaunu apstiprinājuma e-pastu. email_settings_hint_html: Apstiprinājuma e-pasts tika nosūtīts uz %{email}. Ja šī e-pasta adrese nav pareiza, vari to nomainīt konta iestatījumos. title: Iestatīt + sign_up: + preamble: Izmantojot kontu šajā Mastodon serverī, tu varēsi sekot jebkurai citai personai tīklā neatkarīgi no tā, kur tiek mitināts viņas konts. + title: Atļauj tevi iestatīt %{domain}. status: account_status: Konta statuss confirming: Gaida e-pasta apstiprinājuma pabeigšanu. @@ -981,7 +980,6 @@ lv: redirecting_to: Tavs konts ir neaktīvs, jo pašlaik tas tiek novirzīts uz %{acct}. view_strikes: Skati iepriekšējos brīdinājumus par savu kontu too_fast: Veidlapa ir iesniegta pārāk ātri, mēģini vēlreiz. - trouble_logging_in: Problēma ar pieteikšanos? use_security_key: Lietot drošības atslēgu authorize_follow: already_following: Tu jau seko šim kontam @@ -1039,10 +1037,6 @@ lv: more_details_html: Plašāku informāciju skatīt privātuma politika. username_available: Tavs lietotājvārds atkal būs pieejams username_unavailable: Tavs lietotājvārds paliks nepieejams - directories: - directory: Profila direktorija - explanation: Atklāj lietotājus, pamatojoties uz viņu interesēm - explore_mastodon: Izpētīt %{title} disputes: strikes: action_taken: Veiktā darbība @@ -1101,12 +1095,12 @@ lv: in_progress: Notiek tava arhīva apkopošana... request: Pieprasi savu arhīvu size: Izmērs - blocks: Tu bloķē + blocks: Bloķētie konti bookmarks: Grāmatzīmes csv: CSV domain_blocks: Bloķētie domēni lists: Saraksti - mutes: Tu apklusini + mutes: Apklusinātie konti storage: Mediju krātuve featured_tags: add_new: Pievienot jaunu @@ -1121,29 +1115,66 @@ lv: public: Publiskās ziņu lentas thread: Sarunas edit: + add_keyword: Pievienot atslēgvārdu + keywords: Atslēgvārdi + statuses: Individuālās ziņas + statuses_hint_html: Šis filtrs attiecas uz atsevišķām ziņām neatkarīgi no tā, vai tās atbilst tālāk norādītajiem atslēgvārdiem. Pārskatīt vai noņemt ziņas no filtra. title: Rediģēt filtru errors: + deprecated_api_multiple_keywords: Šos parametrus šajā lietojumprogrammā nevar mainīt, jo tie attiecas uz vairāk nekā vienu filtra atslēgvārdu. Izmanto jaunāku lietojumprogrammu vai tīmekļa saskarni. invalid_context: Nav, vai piegādāts nederīgs konteksts - invalid_irreversible: Neatgriezeniskā filtrēšana darbojas tikai sākuma vai paziņojumu kontekstā index: + contexts: Filtri %{contexts} delete: Dzēst empty: Tev nav filtru. + expires_in: Beidzas %{distance} + expires_on: Beidzas %{date} + keywords: + one: "%{count} atsēgvārds" + other: "%{count} atslēgvārdi" + zero: "%{count} atslēgvārdu" + statuses: + one: "%{count} ziņa" + other: "%{count} ziņas" + zero: "%{count} ziņu" + statuses_long: + one: paslēpta %{count} individuālā ziņa + other: slēptas %{count} individuālās ziņas + zero: "%{count} paslēptu ziņu" title: Filtri new: + save: Saglabāt jauno filtru title: Pievienot jaunu filtru + statuses: + back_to_filter: Atpakaļ pie filtra + batch: + remove: Noņemt no filtra + index: + hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni. + title: Filtrētās ziņas footer: - developers: Izstrādātāji - more: Vairāk… - resources: Resursi trending_now: Šobrīd tendences generic: all: Visi + all_items_on_page_selected_html: + one: Šajā lapā ir atlasīts %{count} vienums. + other: Šajā lapā ir atlasīti %{count} vienumi. + zero: Šajā lapā ir atlasīts %{count} vienumu. + all_matching_items_selected_html: + one: Atlasīts %{count} vienums, kas atbilst tavam meklēšanas vaicājumam. + other: Atlasīti visi %{count} vienumi, kas atbilst tavam meklēšanas vaicājumam. + zero: Atlasīts %{count} vienumu, kas atbilst tavam meklēšanas vaicājumam. changes_saved_msg: Izmaiņas veiksmīgi saglabātas! copy: Kopēt delete: Dzēst + deselect: Atcelt visu atlasi none: Neviens order_by: Kārtot pēc save_changes: Saglabāt izmaiņas + select_all_matching_items: + one: Atlasi %{count} vienumu, kas atbilst tavam meklēšanas vaicājumam. + other: Atlasi visus %{count} vienumus, kas atbilst tavam meklēšanas vaicājumam. + zero: Atlasi %{count} vienumu, kas atbilst tavam meklēšanas vaicājumam. today: šodien validation_errors: one: Kaut kas vēl nav īsti kārtībā! Lūdzu, pārskati zemāk norādīto kļūdu @@ -1155,7 +1186,7 @@ lv: errors: over_rows_processing_limit: satur vairāk, nekā %{count} rindas modes: - merge: Savienot + merge: Apvienot merge_long: Saglabāt esošos ierakstus un pievienot jaunus overwrite: Pārrakstīt overwrite_long: Nomainīt pašreizējos ierakstus ar jauniem @@ -1164,11 +1195,10 @@ lv: types: blocking: Bloķēšanas saraksts bookmarks: Grāmatzīmes - domain_blocking: Domēnu bloķēšanas saraksts - following: Šāds saraksts - muting: Izslēgšanas saraksts + domain_blocking: Bloķēto domēnu saraksts + following: Sekojamo lietotāju saraksts + muting: Apklusināto lietotāju saraksts upload: Augšupielādēt - in_memoriam_html: Piemiņai. invites: delete: Deaktivizēt expired: Beigušies @@ -1248,23 +1278,14 @@ lv: carry_blocks_over_text: Šis lietotājs pārcēlās no %{acct}, kuru tu biji bloķējis. carry_mutes_over_text: Šis lietotājs pārcēlās no %{acct}, kuru tu biji apklusinājis. copy_account_note_text: 'Šis lietotājs pārcēlās no %{acct}, šeit bija tavas iepriekšējās piezīmes par viņu:' + navigation: + toggle_menu: Pārslēgt izvēlni notification_mailer: admin: + report: + subject: "%{name} iesniedza ziņojumu" sign_up: subject: "%{name} ir pierakstījies" - digest: - action: Rādīt visus paziņojumus - body: Šeit ir īss kopsavilkums par ziņojumiem, kurus tu esi palaidis garām kopš pēdējā apmeklējuma %{since} - mention: "%{name} pieminēja tevi:" - new_followers_summary: - one: Tāpat, atrodoties prom, esi ieguvis vienu jaunu sekotāju! Jip! - other: Turklāt, atrodoties prom, esi ieguvis %{count} jaunus sekotājus! Apbrīnojami! - zero: "%{count} jaunu sekotāju!" - subject: - one: "1 jauns paziņojums kopš tava pēdējā apmeklējuma 🐘" - other: "%{count} jauni paziņojumi kopš tava pēdējā apmeklējuma 🐘" - zero: "%{count} jaunu paziņojumu kopš tava pēdējā apmeklējuma" - title: Tavas prombūtnes laikā... favourite: body: 'Tavu ziņu izlasei pievienoja %{name}:' subject: "%{name} pievienoja tavu ziņu izlasei" @@ -1286,9 +1307,9 @@ lv: poll: subject: "%{name} aptauja ir beigusies" reblog: - body: 'Tavu ziņu paaugstināja %{name}:' - subject: "%{name} paaugstināja tavu ziņu" - title: Jauns stimuls + body: 'Tavu ziņu pastiprināja %{name}:' + subject: "%{name} pastiprināja tavu ziņu" + title: Jauns pastiprinājums status: subject: "%{name} tikko publicēja" update: @@ -1336,6 +1357,8 @@ lv: other: Citi posting_defaults: Publicēšanas noklusējuma iestatījumi public_timelines: Publiskās ziņu lentas + privacy_policy: + title: Privātuma Politika reactions: errors: limit_reached: Sasniegts dažādu reakciju limits @@ -1358,22 +1381,7 @@ lv: remove_selected_follows: Pārtraukt sekošanu atlasītajiem lietotājiem status: Konta statuss remote_follow: - acct: Ievadi savu lietotajvards@domens, no kura vēlies darboties missing_resource: Nevarēja atrast tavam kontam nepieciešamo novirzīšanas URL - no_account_html: Vai tev nav konta? Tu vari piereģistrēties šeit - proceed: Turpini lai sekotu - prompt: 'Tu gatavojies sekot:' - reason_html: " Kāpēc šis solis ir nepieciešams? %{instance}, iespējams, nav serveris, kurā esi reģistrēts, tāpēc mums vispirms ir jānovirza tevi uz tavu mājas serveri." - remote_interaction: - favourite: - proceed: Pārej uz izlasi - prompt: 'Tu vēlies pievienot izlasei šo ziņu:' - reblog: - proceed: Turpini paaugstināt - prompt: 'Tu vēlies paugstināt šo ziņu:' - reply: - proceed: Turpini lai atbildētu - prompt: 'Tu vēlies atbildēt uz šo ziņu:' reports: errors: invalid_rules: neatsaucas uz derīgiem noteikumiem @@ -1391,7 +1399,7 @@ lv: browser: Pārlūks browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1405,7 +1413,7 @@ lv: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Pārlūks weibo: Weibo current_session: Pašreizējā sesija description: "%{browser} uz %{platform}" @@ -1414,8 +1422,8 @@ lv: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: Chrome OS + blackberry: BlackBerry + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1446,7 +1454,7 @@ lv: notifications: Paziņojumi preferences: Iestatījumi profile: Profils - relationships: Man seko un sekotāji + relationships: Sekojamie un sekotāji statuses_cleanup: Automātiska ziņu dzēšana strikes: Moderācijas aizrādījumi two_factor_authentication: Divfaktoru Aut @@ -1466,9 +1474,9 @@ lv: one: "%{count} video" other: "%{count} video" zero: "%{count} video" - boosted_from_html: Paaugstināja %{acct_link} + boosted_from_html: Pastiprināja %{acct_link} content_warning: 'Satura brīdinājums: %{warning}' - default_language: Tāda, kā interfeisa valoda + default_language: Tāda, kā saskarnes valoda disallowed_hashtags: one: 'saturēja neatļautu tēmturi: %{tags}' other: 'saturēja neatļautus tēmturus: %{tags}' @@ -1482,7 +1490,7 @@ lv: direct: Ziņojumus, kas ir redzami tikai minētajiem lietotājiem, nevar piespraust limit: Tu jau esi piespraudis maksimālo ziņu skaitu ownership: Citas personas ziņu nevar piespraust - reblog: Paaugstinātās ziņas nevar piespraust + reblog: Pastiprinātu ierakstu nevar piespraust poll: total_people: one: "%{count} persona" @@ -1513,9 +1521,9 @@ lv: exceptions: Izņēmumi explanation: Tā kā ziņu dzēšana ir dārga darbība, tā tiek veikta lēnām laika gaitā, kad serveris nav citādi aizņemts. Šī iemesla dēļ tavas ziņas var tikt izdzēstas kādu laiku pēc vecuma sliekšņa sasniegšanas. ignore_favs: Ignorēt izlasi - ignore_reblogs: Ignorēt paaugstinātās + ignore_reblogs: Ignorēt pastiprinātos ierakstus interaction_exceptions: Izņēmumi, kuru pamatā ir mijiedarbība - interaction_exceptions_explanation: Ņem vērā, ka nav garantijas, ka ziņas tiks dzēstas, ja tās ir zemākas par izlases vai paaugstinājuma slieksni pēc to pārsniegšanas. + interaction_exceptions_explanation: Ņem vērā, ka ieraksti var netikt dzēsti, ja tie noslīd zem par izlases vai pastiprinājuma sliekšņa pēc tam, kad to reiz pārsnieguši. keep_direct: Saglabāt tiešos ziņojumus keep_direct_hint: Nedzēš nevienu tavu tiešo ziņojumu keep_media: Saglabāt ziņas ar mediju pielikumiem @@ -1540,112 +1548,17 @@ lv: min_age_label: Vecuma slieksnis min_favs: Saglabāt ziņas izlsasē vismaz min_favs_hint: Nedzēš nevienu tavu ziņu, kas ir saņēmusi vismaz tik daudz izlases. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to izlases skaita - min_reblogs: Saglabāt ziņas paaugstinātas vismaz - min_reblogs_hint: Neizdzēš nevienu no tavām ziņām, kas ir paaugstinātas vismaz tik reižu. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to paaugstinājumu skaita + min_reblogs: Saglabāt ierakstus pastiprinātus vismaz + min_reblogs_hint: Neizdzēš nevienu no taviem ierakstiem, kas ir pastiprināts vismaz tik reižu. Atstāj tukšu, lai dzēstu ierakstus neatkarīgi no to pastiprinājumu skaita stream_entries: pinned: Piespraustā ziņa - reblogged: paaugstinātās + reblogged: pastiprinātie sensitive_content: Sensitīvs saturs strikes: errors: too_late: Brīdinājuma apstrīdēšanas laiks ir nokavēts tags: does_not_match_previous_name: nesakrīt ar iepriekšējo nosaukumu - terms: - body_html: | -

      Privātuma politika

      -

      Kādu informāciju mēs apkopojam?

      - -
        -
      • Konta pamatinformācija: Ja tu reģistrējies šajā serverī, iespējams, tev tiks lūgts ievadīt lietotājvārdu, e-pasta adresi un paroli. Vari arī ievadīt papildu profila informāciju, piemēram, parādāmo vārdu un biogrāfiju, kā arī augšupielādēt profila attēlu un galvenes attēlu. Lietotājvārds, parādāmais vārds, biogrāfija, profila attēls un galvenes attēls vienmēr ir publiski.
      • -
      • Ziņas, sekošana un cita publiska informācija: To personu saraksts, kurām tu seko, ir publiski pieejams, tas pats attiecas uz taviem sekotājiem. Iesniedzot ziņojumu, tiek saglabāts datums un laiks, kā arī pieteikums, no kura iesniedzi ziņojumu. Ziņojumos var būt mediju pielikumi, piemēram, attēli un videoklipi. Publiskās un nerindotās ziņas ir pieejamas publiski. Ja savā profilā ievieto ziņu, tā ir arī publiski pieejama informācija. Ziņas tiek piegādātas taviem sekotājiem, dažos gadījumos tas nozīmē, ka tās tiek piegādātas uz dažādiem serveriem un tur tiek glabātas to kopijas. Dzēšot ziņas, tas tāpat tiek piegādāts taviem sekotājiem. Atkārtota emuāra pievienošana vai citas ziņas pievienošana izlasei vienmēr ir publiskas.
      • -
      • Tiešas un tikai sekotāju ziņas: Visas ziņas tiek glabātas un apstrādātas serverī. Tikai sekotājiem paredzētās ziņas tiek piegādātas taviem sekotājiem un tajās minētajiem lietotājiem, un tiešās ziņas tiek piegādātas tikai tajās minētajiem lietotājiem. Dažos gadījumos tas nozīmē, ka tās tiek piegādātas uz dažādiem serveriem un tur tiek saglabātas kopijas. Mēs godprātīgi cenšamies ierobežot piekļuvi šīm ziņām tikai pilnvarotām personām, taču citiem serveriem tas var neizdoties. Tāpēc ir svarīgi pārskatīt serverus, kuriem pieder tavi sekotāji. Iestatījumos varat manuāli pārslēgt iespēju apstiprināt un noraidīt jaunus sekotājus. Lūdzu, ņemiet vērā, ka servera operatori un jebkura saņēmēja servera operatori var skatīt šādus ziņojumus un adresāti var uzņemt to ekrānšāviņus, kopēt vai citādi atkārtoti kopīgot. Nekopīgo nekādu sensitīvu informāciju, izmantojot Mastodon.
      • -
      • IP un citi metadati: Kad tu piesakies, mēs ierakstām IP adresi, no kuras piesakies, kā arī tavu pārlūkprogrammas un/vai lietojumprogrammas nosaukumu. Visas pieteikušās sesijas ir pieejamas iestatījumos pārskatīšanai un atsaukšanai. Pēdējā izmantotā IP adrese tiek glabāta līdz 12 mēnešiem. Mēs varam arī saglabāt servera žurnālus, kuros ir iekļauta katra mūsu serverim nosūtītā pieprasījuma IP adrese.
      • -
      - -
      - -

      Kam mēs izmantojam tavu informāciju?

      - -

      Jebkuru informāciju, ko mēs apkopojam par tevi, var izmantot šādos veidos:

      - -
        -
      • Lai nodrošinātu Mastodon pamatfunkcionalitāti. Tu vari mijiedarboties ar citu personu saturu un izlikt savu saturu tikai tad, kad esi pieteicies. Piemēram, tu vari sekot citām personām, lai skatītu viņu apvienotās ziņas savā personalizētajā mājas laika skalā.
      • -
      • Lai palīdzētu regulēt kopienu, piemēram, salīdzinot tavu IP adresi ar citām zināmām, lai noteiktu izvairīšanos no aizlieguma vai citus pārkāpumus.
      • -
      • Tevis norādītā e-pasta adrese var tikt izmantota, lai nosūtītu tev informāciju, paziņojumus par citām personām, kas mijiedarbojas ar tavu saturu vai sūta tev ziņojumus, kā arī atbildētu uz jautājumiem un/vai citiem pieprasījumiem vai jautājumiem.
      • -
      - -
      - -

      Kā mēs aizsargājam tavu informāciju?

      - -

      Mēs ieviešam dažādus drošības pasākumus, lai saglabātu tavas personiskās informācijas drošību, kad ievadi, iesniedz vai piekļūsti savai personas informācijai. Cita starpā pārlūkprogrammas sesija, kā arī datplūsma starp lietojumprogrammām un API ir aizsargāta ar SSL, un tava parole tiek sajaukta, izmantojot spēcīgu vienvirziena algoritmu. Vari iespējot divu faktoru autentifikāciju, lai vēl vairāk aizsargātu piekļuvi savam kontam.

      - -
      - -

      Kam mēs izmantojam tavu informāciju?

      - -

      Jebkuru informāciju, ko mēs apkopojam no jums, var izmantot šādos veidos:

      - -
        -
      • Lai nodrošinātu Mastodon pamatfunkcionalitāti. Jūs varat mijiedarboties ar citu personu saturu un izlikt savu saturu tikai tad, kad esat pieteicies. Piemēram, varat sekot citām personām, lai skatītu viņu apvienotās ziņas savā personalizētajā mājas laika skalā.
      • -
      • Lai palīdzētu regulēt kopienu, piemēram, salīdzinot jūsu IP adresi ar citām zināmām, lai noteiktu izvairīšanos no aizlieguma vai citus pārkāpumus.
      • -
      • Jūsu norādītā e-pasta adrese var tikt izmantota, lai nosūtītu jums informāciju, paziņojumus par citām personām, kas mijiedarbojas ar jūsu saturu vai sūta jums ziņojumus, kā arī atbildētu uz jautājumiem un/vai citiem pieprasījumiem vai jautājumiem.
      • -
      - -
      - -

      Kāda ir mūsu datu saglabāšanas politika?

      - -

      Mēs godprātīgi centīsimies:

      - -
        -
      • Saglabājiet servera žurnālus, kuros ir visu šim serverim nosūtīto pieprasījumu IP adrese, ciktāl šādi žurnāli tiek glabāti, ne ilgāk kā 90 dienas.
      • -
      • Saglabājiet ar reģistrētajiem lietotājiem saistītās IP adreses ne ilgāk kā 12 mēnešus.
      • -
      - -

      Varat pieprasīt un lejupielādēt sava satura arhīvu, tostarp ziņas, multivides pielikumus, profila attēlu un galvenes attēlu.

      - -

      Jūs jebkurā laikā varat neatgriezeniski izdzēst savu kontu.

      - -
      - -

      Vai mēs izmantojam sīkfailus?

      - -

      Jā. Sīkfaili ir mazi faili, ko vietne vai tās pakalpojumu sniedzējs pārsūta uz jūsu datora cieto disku, izmantojot jūsu tīmekļa pārlūkprogrammu (ja atļaujat). Šīs sīkdatnes ļauj vietnei atpazīt jūsu pārlūkprogrammu un, ja jums ir reģistrēts konts, saistīt to ar jūsu reģistrēto kontu.

      - -

      Mēs izmantojam sīkfailus, lai saprastu un saglabātu jūsu preferences turpmākiem apmeklējumiem.

      - -
      - -

      Vai mēs izpaužam kādu informāciju ārējām pusēm?

      - -

      Mēs nepārdodam, netirgojam vai citādi nenododam ārējām pusēm jūsu personu identificējošo informāciju. Tas neietver uzticamas trešās puses, kas palīdz mums darboties mūsu vietnē, veikt mūsu uzņēmējdarbību vai apkalpot jūs, ja vien šīs puses piekrīt saglabāt šīs informācijas konfidencialitāti. Mēs varam arī izpaust jūsu informāciju, ja uzskatām, ka tā ir piemērota, lai ievērotu likumus, īstenotu mūsu vietnes politikas vai aizsargātu mūsu vai citu tiesības, īpašumu vai drošību.

      - -

      Jūsu publisko saturu var lejupielādēt citi tīkla serveri. Jūsu publiskās un tikai sekotājiem paredzētās ziņas tiek piegādātas serveros, kur atrodas jūsu sekotāji, un tiešie ziņojumi tiek piegādāti adresātu serveriem, ja šie sekotāji vai adresāti atrodas citā serverī, nevis šajā.

      - -

      Kad jūs pilnvarojat lietojumprogrammu izmantot jūsu kontu, atkarībā no jūsu apstiprināto atļauju apjoma, tā var piekļūt jūsu publiskā profila informācijai, jūsu sekojošajam sarakstam, jūsu sekotājiem, sarakstiem, visām jūsu ziņām un jūsu izlasei. Lietojumprogrammas nekad nevar piekļūt jūsu e-pasta adresei vai parolei.

      - -
      - -

      Vietnes lietojums bērniem

      - -

      Ja šis serveris atrodas ES vai EEZ: mūsu vietne, produkti un pakalpojumi ir paredzēti personām, kuras ir vismaz 16 gadus vecas. Ja esat jaunāks par 16 gadiem, neizmantojiet šo vietni atbilstoši GDPR (Vispārīgās datu aizsardzības regulas) prasībām..

      - -

      Ja šis serveris atrodas ASV: mūsu vietne, produkti un pakalpojumi ir paredzēti personām, kuras ir vismaz 13 gadus vecas. Ja esat jaunāks par 13 gadiem, saskaņā ar COPPA (Children's Online Privacy Protection Act) prasībām neizmantojiet šajā vietnē.

      - -

      Tiesību prasības var atšķirties, ja šis serveris atrodas citā jurisdikcijā.

      - -
      - -

      Izmaiņas mūsu konfidencialitātes politikā

      - -

      Ja mēs nolemsim mainīt savu konfidencialitātes politiku, mēs publicēsim šīs izmaiņas šajā lapā.

      - -

      Šis dokuments ir CC-BY-SA. Pēdējo reizi tas tika atjaunināts 2018. gada 7. martā.

      - -

      Sākotnēji pielāgots no Discourse konfidencialitātes politikas.

      - title: "%{instance} Pakalpojuma Noteikumi un Privātuma Politika" themes: contrast: Mastodon (Augsts kontrasts) default: Mastodon (Tumšs) @@ -1724,20 +1637,13 @@ lv: suspend: Konts apturēts welcome: edit_profile_action: Iestatīt profilu - edit_profile_step: Vari pielāgot savu profilu, augšupielādējot avataru, galveni, mainot parādāmo vārdu un daudz ko citu. Ja vēlies pārskatīt jaunus sekotājus, pirms viņiem ir atļauts tev sekot, tu vari bloķēt savu kontu. + edit_profile_step: Tu vari pielāgot savu profilu, augšupielādējot profila attēlu, mainot parādāmo vārdu un citas lietas. Vari izvēlēties pārskatīt jaunus sekotājus, pirms atļauj viņiem tev sekot. explanation: Šeit ir daži padomi, kā sākt darbu final_action: Sāc publicēt - final_step: 'Sāc publicēt! Pat bez sekotājiem tavas publiskās ziņas var redzēt citi, piemēram, vietējā ziņu lentā un atsaucēs. Iespējams, tu vēlēsies iepazīstināt ar sevi, izmantojot tēmturi #introductions.' - full_handle: Tavs pilnais rokturis + final_step: 'Sāc publicēt! Pat bez sekotājiem tavas publiskās ziņas var redzēt citi, piemēram, vietējā ziņu lentā vai atsaucēs. Iespējams, tu vēlēsies iepazīstināt ar sevi, izmantojot tēmturi #introductions.' + full_handle: Tavs pilnais lietotājvārds full_handle_hint: Šis ir tas, ko tu pasaki saviem draugiem, lai viņi varētu tev ziņot vai sekot tev no cita servera. - review_preferences_action: Mainīt preferences - review_preferences_step: Noteikti iestati savas preferences, piemēram, kādus e-pasta ziņojumus vēlies saņemt vai kādu konfidencialitātes līmeni vēlies iestatīt savām ziņām pēc noklusējuma. Ja tev nav kustību slimības, vari izvēlēties iespējot GIF automātisko atskaņošanu. subject: Laipni lūgts Mastodon - tip_federated_timeline: Apvienotā ziņu lenta ir skats caur ugunsdzēsības šļūteni uz Mastodon tīklu. Bet tajā ir iekļauti tikai tie cilvēki, kurus abonē tavi kaimiņi, tāpēc tas nav pilnīgs. - tip_following: Pēc noklusējuma tu seko sava servera administratoram(-iem). Lai atrastu vairāk interesantu cilvēku, pārbaudi vietējās un federālās ziņu lentas. - tip_local_timeline: Vietējā ziņu lenta ir skats caur ugunsdzēsības šļūteni uz %{instance}. Tie ir tavi tuvākie kaimiņi! - tip_mobile_webapp: Ja tava mobilā pārlūkprogramma piedāvā pievienot Mastodon sākuma ekrānam, vari saņemt push paziņojumus. Daudzējādi tā darbojas kā vietējā lietotne! - tips: Padomi title: Laipni lūgts uz borta, %{name}! users: follow_limit_reached: Tu nevari sekot vairāk par %{limit} cilvēkiem diff --git a/config/locales/ml.yml b/config/locales/ml.yml index daee6098c5b8bb..d5442c96cb271d 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -1,45 +1,15 @@ --- ml: about: - about_this: കുറിച്ച് - api: എപിഐ - apps: മൊബൈൽ ആപ്പുകൾ - contact: ബന്ധപ്പെടുക contact_missing: സജ്ജമാക്കിയിട്ടില്ല contact_unavailable: ലഭ്യമല്ല - discover_users: ഉപയോഗ്‌താക്കളെ കണ്ടെത്തുക - documentation: വിവരണം - get_apps: മൊബൈൽ ആപ്പ് പരീക്ഷിക്കുക - learn_more: കൂടുതൽ പഠിക്കുക - privacy_policy: സ്വകാര്യതാ നയം - see_whats_happening: എന്തൊക്കെ സംഭവിക്കുന്നു എന്ന് കാണുക - source_code: സോഴ്സ് കോഡ് - status_count_before: ആരാൽ എഴുതപ്പെട്ടു - tagline: സുഹൃത്തുക്കളെ പിന്തുടരുകയും പുതിയവരെ കണ്ടെത്തുകയും ചെയ്യുക - terms: സേവന വ്യവസ്ഥകൾ - unavailable_content: ലഭ്യമല്ലാത്ത ഉള്ളടക്കം - unavailable_content_description: - domain: സെർവർ - reason: കാരണം - suspended_title: താൽക്കാലികമായി നിർത്തിവെച്ച സെർവറുകൾ - what_is_mastodon: എന്താണ് മാസ്റ്റഡോൺ? accounts: follow: പിന്തുടരുക following: പിന്തുടരുന്നു - joined: "%{date} ൽ ചേർന്നു" last_active: അവസാനം സജീവമായിരുന്നത് link_verified_on: സന്ധിയുടെ ഉടമസ്ഥാവസ്‌കാശം %{date} ൽ പരിശോധിക്കപ്പെട്ടു - media: മാധ്യമങ്ങൾ - moved_html: "%{name}, %{new_profile_link} ലേക്ക് നീങ്ങിയിരിക്കുന്നു:" - network_hidden: ഈ വിവരം ലഭ്യമല്ല nothing_here: ഇവിടെ ഒന്നുമില്ല! posts_tab_heading: ടൂട്ടുകൾ - posts_with_replies: ടൂട്ടുകളും മറുപടികളും - roles: - admin: അഡ്‌മിന്‍ - bot: ബോട്ട് - group: ഗ്രൂപ്പ് - unavailable: പ്രൊഫൈൽ ലഭ്യമല്ല admin: accounts: add_email_domain_block: ഇ-മെയിൽ ഡൊമെയ്ൻ തടയുക @@ -48,7 +18,6 @@ ml: avatar: അവതാർ by_domain: മേഖല change_email: - changed_msg: അംഗത്തിന്റെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം വിജയകരമായി മാറ്റിയിരിക്കുന്നു! current_email: ഇപ്പോഴത്തെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം label: മാറിയ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം new_email: പുതിയ ഇലക്ട്രോണിക് കത്ത് @@ -84,9 +53,6 @@ ml: success: സ്ഥിരീകരണ ഇമെയിൽ വിജയകരമായി അയച്ചു! reset: പുനഃക്രമീകരിക്കുക reset_password: പാസ്‌വേഡ് പുനഃക്രമീകരിക്കുക - role: അനുമതികൾ - roles: - user: ഉപയോക്താവ് search: തിരയുക title: അക്കൗണ്ടുകൾ unconfirmed_email: സ്ഥിരീകരിക്കാത്ത ഇമെയിൽ @@ -115,8 +81,6 @@ ml: all: എല്ലാം authorize_follow: following: 'വിജയകരം! നിങ്ങൾ ഇപ്പോൾ പിന്തുടരുന്നു:' - directories: - directory: പ്രൊഫൈൽ ഡയറക്ടറി errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -133,8 +97,6 @@ ml: generic: all: എല്ലാം notification_mailer: - digest: - action: എല്ലാ അറിയിപ്പുകളും കാണിക്കുക follow: body: "%{name} ഇപ്പോൾ നിങ്ങളെ പിന്തുടരുന്നു!" subject: "%{name} ഇപ്പോൾ നിങ്ങളെ പിന്തുടരുന്നു" diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 4e101a890dcb53..1fc61b4623901a 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -1,87 +1,24 @@ --- ms: about: - about_hashtag_html: Ini semua hantaran awam yang ditandakan dengan #%{hashtag}. Anda boleh berinteraksi dengan mereka jika anda mempunyai akaun di mana-mana dunia persekutuan. about_mastodon_html: 'Rangkaian sosial masa hadapan: Tiada iklan, tiada pengawasan korporat, reka bentuk beretika, dan desentralisasi! Miliki data anda dengan Mastodon!' - about_this: Perihal - active_count_after: aktif - active_footnote: Pengguna Aktif Bulanan (MAU) - administered_by: 'Ditadbir oleh:' - api: API - apps: Aplikasi mudah alih - apps_platforms: Guna Mastodon daripada iOS, Android dan platform yang lain - browse_directory: Layari direktori profil dan tapis mengikut minat - browse_local_posts: Layari strim langsung hantaran awam daripada pelayan ini - browse_public_posts: Layari strim langsung hantaran awam di Mastodon - contact: Hubungi kami contact_missing: Tidak ditetapkan contact_unavailable: Tidak tersedia - discover_users: Terokai pengguna - documentation: Pendokumenan - federation_hint_html: Dengan akaun di %{instance} anda akan mampu mengikuti orang di mana-mana pelayan Mastodon dan lebih lagi. - get_apps: Cuba aplikasi mudah alih hosted_on: Mastodon dihoskan di %{domain} - instance_actor_flash: | - Akaun ini ialah pelaku maya yang digunakan untuk mewakili pelayan itu sendiri dan bukannya mana-mana pengguna individu. - Ia digunakan untuk tujuan persekutuan dan tidak patut disekat melainkan anda ingin menyekat keseluruhan tika, yang mana anda sepatutnya gunakan sekatan domain. - learn_more: Ketahui lebih lanjut - privacy_policy: Polisi privasi - rules: Peraturan pelayan - rules_html: 'Di bawah ini ringkasan peraturan yang anda perlu ikuti jika anda ingin mempunyai akaun di pelayan Mastodon yang ini:' - see_whats_happening: Lihat apa yang sedang berlaku - server_stats: 'Statistik pelayan:' - source_code: Kod sumber - status_count_after: - other: hantaran - status_count_before: Siapa terbitkan - tagline: Ikuti rakan lama dan terokai rakan baharu - terms: Terma perkhidmatan - unavailable_content: Pelayan disederhanakan - unavailable_content_description: - domain: Pelayan - reason: Sebab - rejecting_media: 'Fail-fail media daripada pelayan-pelayan ini tidak akan diproses atau disimpan, dan tiada gambar kecil yang akan dipaparkan, memerlukan anda untuk klik fail asal:' - rejecting_media_title: Media ditapis - silenced: 'Hantaran daripada pelayan-pelayan ini akan disembunyikan di garis masa dan perbualan awam, dan tiada pemberitahuan yang akan dijana daripada interaksi pengguna mereka, melainkan anda mengikuti mereka:' - silenced_title: Pelayan didiamkan - suspended: 'Tiada data daripada pelayan-pelayan ini yang akan diproses, disimpan atau ditukar, membuatkan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan-pelayan ini menjadi mustahil:' - suspended_title: Pelayan digantung - unavailable_content_html: Mastodon secara amnya membenarkan anda melihat kandungan daripada dan berinteraksi dengan pengguna daripada mana-mana pelayan dalam dunia persekutuan. Ini pengecualian yang telah dilakukan di pelayan ini secara khususnya. - user_count_after: - other: pengguna - user_count_before: Rumah bagi - what_is_mastodon: Apakah itu Mastodon? accounts: - choices_html: 'Pilihan %{name}:' - endorsements_hint: Anda boleh syorkan orang yang anda ikuti menggunakan antara muka sesawang, dan mereka akan ditunjukkan di sini. - featured_tags_hint: Anda boleh mempromosikan tanda pagar khusus yang akan dipaparkan di sini. follow: Ikut followers: other: Pengikut following: Mengikuti instance_actor_flash: Akaun ini ialah pelaku maya yang digunakan untuk mewakili pelayan itu sendiri dan bukan mana-mana pengguna individu. Ia digunakan untuk tujuan persekutuan dan tidak patut digantung. - joined: Sertai pada %{date} last_active: aktif terakhir link_verified_on: Pemilikan pautan ini diperiksa pada %{date} - media: Media - moved_html: "%{name} telah berpindah ke %{new_profile_link}:" - network_hidden: Maklumat ini tidak tersedia nothing_here: Tiada apa-apa di sini! - people_followed_by: Orang yang %{name} ikuti - people_who_follow: Orang yang mengikut %{name} pin_errors: following: Anda mestilah sudah mengikuti orang yang anda ingin syorkan posts: other: Hantaran posts_tab_heading: Hantaran - posts_with_replies: Hantaran dan balasan - roles: - admin: Pentadbir - bot: Bot - group: Kumpulan - moderator: Penyederhana - unavailable: Profil tidak tersedia - unfollow: Nyahikut admin: account_actions: action: Ambil tindakan @@ -98,7 +35,6 @@ ms: avatar: Avatar by_domain: Domain change_email: - changed_msg: E-mel akaun telah berjaya ditukar! current_email: E-mel semasa label: Ubah e-mel new_email: E-mel baharu @@ -173,12 +109,6 @@ ms: reset: Tetapkan semula reset_password: Tetapkan semula kata laluan resubscribe: Langgan semula - role: Kebenaran - roles: - admin: Pentadbir - moderator: Penyederhana - staff: Kakitangan - user: Pengguna search: Cari search_same_email_domain: Pengguna lain dengan domain e-mel yang sama search_same_ip: Pengguna lain dengan alamat IP yang sama @@ -266,7 +196,6 @@ ms: create_unavailable_domain_html: "%{name} telah menghentikan penghantaran ke domain %{target}" demote_user_html: "%{name} telah menurunkan taraf pengguna %{target}" destroy_announcement_html: "%{name} telah memadamkan pengumuman %{target}" - destroy_custom_emoji_html: "%{name} telah memusnahkan emoji %{target}" destroy_domain_allow_html: "%{name} telah membuang kebenaran persekutuan dengan domain %{target}" destroy_domain_block_html: "%{name} telah menyahsekat domain %{target}" destroy_email_domain_block_html: "%{name} telah menyahsekat domain e-mel %{target}" @@ -295,7 +224,6 @@ ms: update_custom_emoji_html: "%{name} telah mengemaskini emoji %{target}" update_domain_block_html: "%{name} telah mengemaskini penyekatan domain untuk %{target}" update_status_html: "%{name} telah mengemaskini hantaran oleh %{target}" - deleted_status: "(hantaran telah dipadam)" empty: Tiada log dijumpai. filter_by_action: Tapis mengikut tindakan filter_by_user: Tapis mengikut pengguna @@ -515,33 +443,11 @@ ms: empty: Masih belum ada peraturan pelayan yang ditakrifkan. title: Peraturan pelayan settings: - peers_api_enabled: - title: Terbitkan senarai pelayan ditemukan dalam aplikasi - preview_sensitive_media: - desc_html: Pratonton laman sesawang daripada pautan akan terpapar di gambar kecil meski jika media itu ditanda sebagai sensitif - title: Papar media sensitif di pratonton OpenGraph - profile_directory: - desc_html: Benarkan pengguna untuk ditemukan - title: Benarkan direktori profil - registrations: - closed_message: - desc_html: Dipaparkan di muka depan apabil pendaftaran ditutup. Anda boleh menggunakan penanda HTML - title: Mesej pendaftaran telah ditutup - deletion: - desc_html: Benarkan sesiapapun memadamkan akaun mereka - title: Buka pemadaman akaun - min_invite_role: - disabled: Tiada sesiapa - title: Benarkan jemputan dari - require_invite_text: - desc_html: Apabila pendaftaran memerlukan kelulusan manual, tandakan input teks "Kenapa anda mahu menyertai?" sebagai wajib, bukan pilihan - title: Memerlukan alasan bagi pengguna baru untuk menyertai registrations_mode: modes: approved: Kelulusan diperlukan untuk pendaftaran none: Tiada siapa boleh mendaftar open: Sesiapapun boleh mendaftar - title: Mod pendaftaran errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -555,8 +461,5 @@ ms: exports: archive_takeout: in_progress: Mengkompil arkib anda... - notification_mailer: - digest: - title: Ketika anda tiada di sini... users: follow_limit_reached: Anda tidak boleh mengikut lebih daripada %{limit} orang diff --git a/config/locales/my.yml b/config/locales/my.yml new file mode 100644 index 00000000000000..399105ce077571 --- /dev/null +++ b/config/locales/my.yml @@ -0,0 +1,12 @@ +--- +my: + errors: + '400': The request you submitted was invalid or malformed. + '403': You don't have permission to view this page. + '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. + '410': The page you were looking for doesn't exist here anymore. + '422': + '429': Too many requests + '500': + '503': The page could not be served due to a temporary server failure. diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 8e12893f499232..6b6f33c16242cc 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1,93 +1,31 @@ --- nl: about: - about_hashtag_html: Dit zijn openbare berichten die getagged zijn met #%{hashtag}. Je kunt er op reageren of iets anders mee doen als je op Mastodon (of ergens anders in de fediverse) een account hebt. about_mastodon_html: Mastodon is een sociaal netwerk dat gebruikt maakt van open webprotocollen en vrije software. Het is net zoals e-mail gedecentraliseerd. - about_this: Over deze server - active_count_after: actief - active_footnote: Actieve gebruikers per maand (MAU) - administered_by: 'Beheerd door:' - api: API - apps: Mobiele apps - apps_platforms: Gebruik Mastodon op iOS, Android en op andere platformen - browse_directory: Gebruikersgids doorbladeren en op interesses filteren - browse_local_posts: Livestream van openbare berichten op deze server bekijken - browse_public_posts: Livestream van openbare Mastodonberichten bekijken - contact: Contact contact_missing: Niet ingesteld contact_unavailable: n.v.t - discover_users: Gebruikers ontdekken - documentation: Documentatie - federation_hint_html: Met een account op %{instance} ben je in staat om mensen die zich op andere Mastodonservers (en op andere plekken) bevinden te volgen. - get_apps: Mobiele apps hosted_on: Mastodon op %{domain} - instance_actor_flash: "Dit account is een virtuel actor dat wordt gebruikt om de server zelf te vertegenwoordigen en is geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden geblokkeerd, tenzij je de hele server wilt blokkeren. In zo'n geval dien je echter een domeinblokkade te gebruiken. \n" - learn_more: Meer leren - privacy_policy: Privacybeleid - rules: Serverregels - rules_html: 'Hieronder vind je een samenvatting van de regels die je op deze Mastodon-server moet opvolgen:' - see_whats_happening: Kijk wat er aan de hand is - server_stats: 'Serverstatistieken:' - source_code: Broncode - status_count_after: - one: toot - other: berichten - status_count_before: Zij schreven - tagline: Vrienden volgen en nieuwe ontdekken - terms: Gebruiksvoorwaarden - unavailable_content: Gemodereerde servers - unavailable_content_description: - domain: Server - reason: 'Reden:' - 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:' - rejecting_media_title: Mediabestanden geweigerd - silenced: Berichten van deze server worden nergens weergegeven, behalve op jouw eigen starttijdlijn wanneer je het account volgt. - silenced_title: Beperkte servers - 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. - suspended_title: Opgeschorte servers - 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 - user_count_before: Thuisbasis van - what_is_mastodon: Wat is Mastodon? + title: Over 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 other: Volgers following: Volgend - instance_actor_flash: Dit account is een 'virtual actor' waarmee de server zichzelf vertegenwoordigd en is dus geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden opgeschort. - joined: Geregistreerd in %{date} + instance_actor_flash: Dit account is een 'virtual actor' waarmee de server zichzelf vertegenwoordigt en is dus geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden opgeschort. last_active: laatst actief link_verified_on: Eigendom van deze link is gecontroleerd op %{date} - media: Media - moved_html: "%{name} is verhuisd naar %{new_profile_link}:" - network_hidden: Deze informatie is niet beschikbaar nothing_here: Hier is niets! - people_followed_by: Mensen die %{name} volgen - people_who_follow: Mensen die %{name} volgen pin_errors: - following: Je moet dit account wel al volgen, alvorens je het kan aanbevelen + following: Je moet dit account wel al volgen, alvorens je het kunt aanbevelen posts: one: Toot other: Berichten posts_tab_heading: Berichten - posts_with_replies: Berichten en reacties - roles: - admin: Beheerder - bot: Bot - group: Groep - moderator: Moderator - unavailable: Profiel niet beschikbaar - unfollow: Ontvolgen admin: account_actions: action: Actie uitvoeren - title: Moderatieactie op %{acct} uitvoeren + title: Moderatiemaatregel tegen %{acct} nemen account_moderation_notes: create: Laat een opmerking achter created_msg: Aanmaken van opmerking voor moderatoren geslaagd! @@ -95,17 +33,22 @@ nl: accounts: add_email_domain_block: E-maildomein blokkeren approve: Goedkeuren - approved_msg: Het goedkeuren van het registratieverzoek van %{username} is geslaagd + approved_msg: Het goedkeuren van het account van %{username} is geslaagd are_you_sure: Weet je het zeker? - avatar: Avatar + avatar: Profielfoto by_domain: Domein change_email: - changed_msg: E-mailadres van account succesvol veranderd! + changed_msg: E-mailadres succesvol veranderd! current_email: Huidig e-mailadres label: E-mailadres wijzigen new_email: Nieuw e-mailadres submit: E-mailadres veranderen title: E-mailadres wijzigen voor %{username} + change_role: + changed_msg: Rol succesvol veranderd! + label: Rol veranderen + no_role: Geen rol + title: Rol van %{username} veranderen confirm: Bevestigen confirmed: Bevestigd confirming: Bevestiging @@ -115,6 +58,7 @@ nl: demote: Degraderen destroyed_msg: De verwijdering van de gegevens van %{username} staat nu in de wachtrij disable: Bevriezen + disable_sign_in_token_auth: Verificatie met een toegangscode via e-mail uitschakelen disable_two_factor_authentication: 2FA uitschakelen disabled: Bevroren display_name: Weergavenaam @@ -123,6 +67,7 @@ nl: email: E-mail email_status: E-mailstatus enable: Ontdooien + enable_sign_in_token_auth: Verificatie met een toegangscode via e-mail inschakelen enabled: Ingeschakeld enabled_msg: Het ontdooien van het account van %{username} is geslaagd followers: Volgers @@ -132,7 +77,7 @@ nl: invite_request_text: Redenen om te registreren invited_by: Uitgenodigd door ip: IP - joined: Geregistreerd in + joined: Geregistreerd location: all: Alles local: Lokaal @@ -147,6 +92,7 @@ nl: active: Actief all: Alles pending: In afwachting + silenced: Beperkt suspended: Opgeschort title: Moderatie moderation_notes: Opmerkingen voor moderatoren @@ -154,37 +100,40 @@ nl: most_recent_ip: Laatst gebruikt IP-adres no_account_selected: Er zijn geen accounts veranderd, omdat er geen een was geselecteerd no_limits_imposed: Geen limieten ingesteld + no_role_assigned: Geen rol toegewezen not_subscribed: Niet geabonneerd pending: Moet nog beoordeeld worden perform_full_suspension: Opschorten + previous_strikes: Eerdere overtredingen + previous_strikes_description_html: + one: Dit account heeft één overtreding gemaakt. + other: Dit account heeft %{count} overtredingen gemaakt. promote: Promoveren protocol: Protocol public: Openbaar push_subscription_expires: PuSH-abonnement verloopt op redownload: Profiel vernieuwen redownloaded_msg: Het herstellen van het oorspronkelijke profiel van %{username} is geslaagd - reject: Afkeuren + reject: Afwijzen rejected_msg: Het afwijzen van het registratieverzoek van %{username} is geslaagd - remove_avatar: Avatar verwijderen + remove_avatar: Profielfoto verwijderen remove_header: Omslagfoto verwijderen - removed_avatar_msg: Het verwijderen van de avatar van %{username} is geslaagd + removed_avatar_msg: Het verwijderen van de profielfoto van %{username} is geslaagd removed_header_msg: Het verwijderen van de omslagfoto van %{username} is geslaagd resend_confirmation: already_confirmed: Deze gebruiker is al bevestigd - send: Verzend bevestigingsmail opnieuw + send: Bevestigingsmail opnieuw verzenden success: Bevestigingsmail succesvol verzonden! reset: Opnieuw reset_password: Wachtwoord opnieuw instellen resubscribe: Opnieuw abonneren - role: Bevoegdheden - roles: - admin: Beheerder - moderator: Moderator - staff: Medewerkers - user: Gebruiker + role: Rol search: Zoeken search_same_email_domain: Andere gebruikers met hetzelfde e-maildomein search_same_ip: Andere gebruikers met hetzelfde IP-adres + security_measures: + only_password: Alleen wachtwoord + password_and_2fa: Wachtwoord en tweestapsverificatie sensitive: Gevoelig forceren sensitized: als gevoelig gemarkeerd shared_inbox_url: Gedeelde inbox-URL @@ -194,11 +143,15 @@ nl: silence: Beperken silenced: Beperkt statuses: Berichten + strikes: Eerdere overtredingen subscribe: Abonneren + suspend: Opschorten suspended: Opgeschort suspension_irreversible: De gegevens van dit account zijn onomkeerbaar verwijderd. Je kunt het opschorten van dit account ongedaan maken zodat het weer valt te gebruiken, maar de verwijderde gegevens worden hiermee niet hersteld. suspension_reversible_hint_html: Dit account is opgeschort en de gegevens worden volledig verwijderd op %{date}. Tot die tijd kan dit account worden hersteld zonder nadelige gevolgen. Wanneer je alle gegevens van dit account onmiddellijk wilt verwijderen, kun je dit hieronder doen. title: Accounts + unblock_email: E-mailadres deblokkeren + unblocked_email_msg: Het e-mailadres van %{username} is gedeblokkeerd unconfirmed_email: Onbevestigd e-mailadres undo_sensitized: Niet meer als gevoelig forceren undo_silenced: Niet langer beperken @@ -213,92 +166,124 @@ nl: whitelisted: Goedgekeurd voor federatie action_logs: action_types: + approve_appeal: Bezwaar goedkeuren + approve_user: Gebruiker goedkeuren assigned_to_self_report: Rapportage toewijzen change_email_user: E-mailadres van gebruiker wijzigen + change_role_user: Gebruikersrol wijzigen confirm_user: Gebruiker bevestigen create_account_warning: Waarschuwing aanmaken create_announcement: Mededeling aanmaken + create_canonical_email_block: E-mailblokkade aanmaken create_custom_emoji: Lokale emoji aanmaken create_domain_allow: Domeingoedkeuring aanmaken create_domain_block: Domeinblokkade aanmaken create_email_domain_block: E-maildomeinblokkade aanmaken create_ip_block: IP-regel aanmaken create_unavailable_domain: Niet beschikbaar domein aanmaken + create_user_role: Rol aanmaken demote_user: Gebruiker degraderen destroy_announcement: Mededeling verwijderen + destroy_canonical_email_block: E-mailblokkade verwijderen destroy_custom_emoji: Lokale emoji verwijderen destroy_domain_allow: Domeingoedkeuring verwijderen destroy_domain_block: Domeinblokkade verwijderen destroy_email_domain_block: Blokkade van e-maildomein verwijderen + destroy_instance: Domein volledig verwijderen destroy_ip_block: IP-regel verwijderen destroy_status: Toot verwijderen destroy_unavailable_domain: Niet beschikbaar domein verwijderen + destroy_user_role: Rol permanent verwijderen disable_2fa_user: Tweestapsverificatie uitschakelen disable_custom_emoji: Lokale emojij uitschakelen + disable_sign_in_token_auth_user: Verificatie met een toegangscode via e-mail voor de gebruiker uitschakelen disable_user: Gebruiker uitschakelen enable_custom_emoji: Lokale emoji inschakelen + enable_sign_in_token_auth_user: Verificatie met een toegangscode via e-mail voor de gebruiker inschakelen enable_user: Gebruiker inschakelen memorialize_account: Het account in een In memoriam veranderen promote_user: Gebruiker promoveren - remove_avatar_user: Avatar verwijderen + reject_appeal: Bezwaar afwijzen + reject_user: Gebruiker afwijzen + remove_avatar_user: Profielfoto verwijderen reopen_report: Rapportage heropenen + resend_user: Bevestigingsmail opnieuw verzenden reset_password_user: Wachtwoord opnieuw instellen resolve_report: Rapportage oplossen sensitive_account: De media in jouw account als gevoelig markeren silence_account: Account beperken suspend_account: Account opschorten unassigned_report: Rapportage niet langer toewijzen + unblock_email_account: E-mailadres deblokkeren unsensitive_account: De media in jouw account niet langer als gevoelig markeren unsilence_account: Account niet langer beperken unsuspend_account: Account niet langer opschorten update_announcement: Mededeling bijwerken update_custom_emoji: Lokale emoji bijwerken update_domain_block: Domeinblokkade bijwerken + update_ip_block: IP-regel bijwerken update_status: Bericht bijwerken + update_user_role: Rol bijwerken actions: + approve_appeal_html: "%{name} heeft het bezwaar tegen de moderatiemaatregel van %{target} goedgekeurd" + approve_user_html: "%{name} heeft het account van %{target} goedgekeurd" assigned_to_self_report_html: "%{name} heeft rapportage %{target} aan zichzelf toegewezen" change_email_user_html: "%{name} veranderde het e-mailadres van gebruiker %{target}" + change_role_user_html: "%{name} wijzigde de rol van %{target}" confirm_user_html: E-mailadres van gebruiker %{target} is door %{name} bevestigd create_account_warning_html: "%{name} verzond een waarschuwing naar %{target}" create_announcement_html: "%{name} heeft de nieuwe mededeling %{target} aangemaakt" + create_canonical_email_block_html: "%{name} blokkeerde e-mail met de hash %{target}" create_custom_emoji_html: Nieuwe emoji %{target} is door %{name} geüpload create_domain_allow_html: "%{name} heeft de federatie met het domein %{target} goedgekeurd" create_domain_block_html: Domein %{target} is door %{name} geblokkeerd create_email_domain_block_html: "%{name} heeft het e-maildomein %{target} geblokkeerd" create_ip_block_html: "%{name} maakte regel aan voor IP %{target}" create_unavailable_domain_html: "%{name} heeft de bezorging voor domein %{target} beëindigd" + create_user_role_html: "%{name} maakte de rol %{target} aan" demote_user_html: Gebruiker %{target} is door %{name} gedegradeerd destroy_announcement_html: "%{name} heeft de mededeling %{target} verwijderd" - destroy_custom_emoji_html: "%{name} verwijderde emoji %{target}" + destroy_canonical_email_block_html: "%{name} deblokkeerde e-mail met de hash %{target}" + destroy_custom_emoji_html: "%{name} verwijderde de emoji %{target}" destroy_domain_allow_html: "%{name} heeft de federatie met het domein %{target} afgekeurd" destroy_domain_block_html: Domein %{target} is door %{name} gedeblokkeerd destroy_email_domain_block_html: "%{name} heeft het e-maildomein %{target} gedeblokkeerd" + destroy_instance_html: "%{name} verwijderde het domein %{target} volledig" destroy_ip_block_html: "%{name} verwijderde regel voor IP %{target}" destroy_status_html: Bericht van %{target} is door %{name} verwijderd destroy_unavailable_domain_html: "%{name} heeft de bezorging voor domein %{target} hervat" + destroy_user_role_html: "%{name} verwijderde de rol %{target}" disable_2fa_user_html: De vereiste tweestapsverificatie voor %{target} is door %{name} uitgeschakeld disable_custom_emoji_html: Emoji %{target} is door %{name} uitgeschakeld + disable_sign_in_token_auth_user_html: "%{name} heeft verificatie met een toegangscode via e-mail uitgeschakeld voor %{target}" disable_user_html: Inloggen voor %{target} is door %{name} uitgeschakeld enable_custom_emoji_html: Emoji %{target} is door %{name} ingeschakeld + enable_sign_in_token_auth_user_html: "%{name} heeft verificatie met een toegangscode via e-mail ingeschakeld voor %{target}" enable_user_html: Inloggen voor %{target} is door %{name} ingeschakeld memorialize_account_html: Het account %{target} is door %{name} in een In memoriam veranderd promote_user_html: Gebruiker %{target} is door %{name} gepromoveerd - remove_avatar_user_html: "%{name} verwijderde de avatar van %{target}" + reject_appeal_html: "%{name} heeft het bezwaar tegen de moderatiemaatregel van %{target} afgewezen" + reject_user_html: "%{name} heeft de registratie van %{target} afgewezen" + remove_avatar_user_html: "%{name} verwijderde de profielfoto van %{target}" reopen_report_html: "%{name} heeft rapportage %{target} heropend" + resend_user_html: "%{name} heeft de bevestigingsmail voor %{target} opnieuw verzonden" reset_password_user_html: Wachtwoord van gebruiker %{target} is door %{name} opnieuw ingesteld resolve_report_html: "%{name} heeft rapportage %{target} opgelost" sensitive_account_html: "%{name} markeerde de media van %{target} als gevoelig" silence_account_html: Account %{target} is door %{name} beperkt suspend_account_html: Account %{target} is door %{name} opgeschort unassigned_report_html: "%{name} heeft het toewijzen van rapportage %{target} ongedaan gemaakt" + unblock_email_account_html: "%{name} deblokkeerde het e-mailadres van %{target}" unsensitive_account_html: "%{name} markeerde media van %{target} als niet gevoelig" unsilence_account_html: Beperking van account %{target} is door %{name} opgeheven unsuspend_account_html: Opschorten van account %{target} is door %{name} opgeheven update_announcement_html: "%{name} heeft de mededeling %{target} bijgewerkt" update_custom_emoji_html: Emoji %{target} is door %{name} bijgewerkt update_domain_block_html: "%{name} heeft de domeinblokkade bijgewerkt voor %{target}" + update_ip_block_html: "%{name} wijzigde de IP-regel voor %{target}" update_status_html: "%{name} heeft de berichten van %{target} bijgewerkt" - deleted_status: "(verwijderd bericht}" + update_user_role_html: "%{name} wijzigde de rol %{target}" + deleted_account: verwijderd account empty: Geen logs gevonden. filter_by_action: Op actie filteren filter_by_user: Op gebruiker filteren @@ -337,10 +322,12 @@ nl: enable: Inschakelen enabled: Ingeschakeld enabled_msg: Inschakelen van deze emoji geslaagd + image_hint: PNG of GIF niet groter dan %{size} list: In lijst listed: Weergegeven new: title: Lokale emoji toevoegen + no_emoji_selected: Er werden geen emoji's gewijzigd, omdat er geen enkele werd geselecteerd not_permitted: Het hebt geen rechten om deze actie uit te voeren overwrite: Overschrijven shortcode: Verkorte code @@ -353,9 +340,35 @@ nl: updated_msg: Bijwerken van emoji is geslaagd! upload: Uploaden dashboard: + active_users: actieve gebruikers + interactions: interacties + media_storage: Opgeslagen mediabestanden + new_users: nieuwe gebruikers + opened_reports: aangemaakte rapportages + pending_appeals_html: + one: "%{count} bezwaar te beoordelen" + other: "%{count} bezwaren te beoordelen" + pending_reports_html: + one: "%{count} openstaande rapportage" + other: "%{count} openstaande rapportages" + pending_tags_html: + one: "%{count} hashtag te beoordelen" + other: "%{count} hashtags te beoordelen" + pending_users_html: + one: "%{count} nieuwe gebruiker te beoordelen" + other: "%{count} nieuwe gebruikers te beoordelen" + resolved_reports: opgeloste rapportages software: Software + sources: Locatie van registratie space: Ruimtegebruik title: Dashboard + top_languages: Meest actieve talen + top_servers: Meest actieve servers + website: Website + disputes: + appeals: + empty: Geen bezwaren gevonden. + title: Bezwaren domain_allows: add_new: Federatie met domein goedkeuren created_msg: Federatie met domein is succesvol goedgekeurd @@ -367,6 +380,7 @@ nl: destroyed_msg: Domeinblokkade is ongedaan gemaakt domain: Domein edit: Domeinblokkade bewerken + existing_domain_block: Je hebt al strengere limieten opgelegd aan %{name}. existing_domain_block_html: Jij hebt al strengere beperkingen opgelegd aan %{name}, je moet het domein eerst deblokkeren. new: create: Blokkade aanmaken @@ -391,12 +405,22 @@ nl: view: Domeinblokkade bekijken email_domain_blocks: add_new: Nieuwe toevoegen + attempts_over_week: + one: "%{count} registratiepoging tijdens de afgelopen week" + other: "%{count} registratiepogingen tijdens de afgelopen week" created_msg: Blokkeren e-maildomein geslaagd delete: Verwijderen + dns: + types: + mx: MX-record domain: Domein new: create: Blokkeren + resolve: Domein opzoeken title: Nieuw e-maildomein blokkeren + no_email_domain_block_selected: Er werden geen e-maildomeinblokkades gewijzigd, omdat er geen enkele werd geselecteerd + resolved_dns_records_hint_html: De domeinnaam slaat op de volgende MX-domeinen die uiteindelijk verantwoordelijk zijn voor het accepteren van e-mail. Het blokkeren van een MX-domein blokkeert aanmeldingen van elk e-mailadres dat hetzelfde MX-domein gebruikt, zelfs als de zichtbare domeinnaam anders is. Pas op dat u geen grote e-mailproviders blokkeert. + resolved_through_html: Geblokkeerd via %{domain} title: Geblokkeerde e-maildomeinen follow_recommendations: description_html: "Deze aanbevolen accounts helpen nieuwe gebruikers snel interessante inhoudte vinden. Wanneer een gebruiker niet met andere gebruikers genoeg interactie heeft gehad om gepersonaliseerde aanbevelingen te krijgen, worden in plaats daarvan deze accounts aanbevolen. Deze accounts worden dagelijks opnieuw berekend met behulp van accounts met het hoogste aantal recente interacties en het hoogste aantal lokale volgers in een bepaalde taal." @@ -407,32 +431,72 @@ nl: title: Aanbevolen accounts unsuppress: Account weer aanbevelen instances: + availability: + description_html: + one: Als de bezorging aan het domein gedurende %{count} dag blijft mislukken, dan zullen er geen verdere pogingen tot bezorging worden gedaan tot een bezorging van het domein is ontvangen. + other: Als de bezorging aan het domein gedurende %{count} verschillende dagen blijft mislukken, dan zullen er geen verdere pogingen tot bezorging worden gedaan tot een bezorging van het domein is ontvangen. + failure_threshold_reached: Foutieve drempelwaarde bereikt op %{date}. + failures_recorded: + one: Mislukte poging op %{count} dag. + other: Mislukte pogingen op %{count} verschillende dagen. + no_failures_recorded: Geen storingen bekend. + title: Beschikbaarheid + warning: De laatste poging om met deze server te verbinden was onsuccesvol back_to_all: Alles back_to_limited: Beperkt back_to_warning: Waarschuwing by_domain: Domein + confirm_purge: Weet je zeker dat je de gegevens van dit domein permanent wilt verwijderen? + content_policies: + comment: Interne reden + description_html: Je kunt het beleid bepalen dat op de accounts van dit domein en alle subdomeinen van toepassing is. + policies: + reject_media: Mediabestanden weigeren + reject_reports: Rapportages weigeren + silence: Beperkt + suspend: Opgeschort + policy: Zwaarte + reason: Publieke reden + title: Beleid + dashboard: + instance_accounts_dimension: Meest door ons gevolgde accounts + instance_accounts_measure: opgeslagen accounts + instance_followers_measure: daar ons daar gevolgd + instance_follows_measure: door hun hier gevolgd + instance_languages_dimension: Meest actieve talen + instance_media_attachments_measure: opgeslagen mediabestanden + instance_reports_measure: rapportages over hun + instance_statuses_measure: opgeslagen berichten delivery: all: Alles clear: Bezorgfouten weghalen + failing: Problemen restart: Bezorging herstarten stop: Bezorging beëindigen unavailable: Niet beschikbaar delivery_available: Bezorging is mogelijk delivery_error_days: Dagen met bezorgfouten delivery_error_hint: Wanneer de bezorging voor %{count} dagen niet mogelijk is, wordt de bezorging automatisch als niet beschikbaar gemarkeerd. + destroyed_msg: Gegevens van %{domain} staan nu in de wachtrij voor aanstaande verwijdering. empty: Geen domeinen gevonden. + known_accounts: + one: "%{count} bekend account" + other: "%{count} bekende accounts" moderation: all: Alles limited: Beperkt title: Moderatie private_comment: Privé-opmerking public_comment: Openbare opmerking + purge: Volledig verwijderen + purge_description_html: Als je denkt dat dit domein definitief offline is, kunt je alle accountrecords en bijbehorende gegevens van dit domein verwijderen. Dit kan een tijdje duren. title: Federatie total_blocked_by_us: Door ons geblokkeerd total_followed_by_them: Door hun gevolgd total_followed_by_us: Door ons gevolgd total_reported: Rapportages over hun total_storage: Mediabijlagen + totals_time_period_hint_html: De hieronder getoonde totalen bevatten gegevens sinds het begin. invites: deactivate_all: Alles deactiveren filter: @@ -477,40 +541,125 @@ nl: report_notes: created_msg: Opmerking bij rapportage succesvol aangemaakt! destroyed_msg: Opmerking bij rapportage succesvol verwijderd! + today_at: Vandaag om %{time} reports: account: notes: one: "%{count} opmerking" other: "%{count} opmerkingen" - action_taken_by: Actie uitgevoerd door + action_log: Auditlog + action_taken_by: Maatregel genomen door + actions: + delete_description_html: De gerapporteerde berichten worden verwijderd en er wordt een overtreding geregistreerd om toekomstige overtredingen van hetzelfde account sneller af te kunnen handelen. + mark_as_sensitive_description_html: De media in de gerapporteerde berichten worden gemarkeerd als gevoelig en er wordt een overtreding geregistreerd om toekomstige overtredingen van hetzelfde account sneller af te kunnen handelen. + other_description_html: Bekijk meer opties voor het controleren van het gedrag van en de communicatie met het gerapporteerde account. + resolve_description_html: Er wordt tegen het gerapporteerde account geen maatregel genomen, geen overtreding geregistreerd en de rapportage wordt gemarkeerd als opgelost. + silence_description_html: Het profiel zal alleen zichtbaar zijn voor diegenen die het al volgen of het handmatig opzoeken, waardoor het bereik ernstig wordt beperkt. Kan altijd worden teruggedraaid. + suspend_description_html: Het profiel en alle accountgegevens worden eerst ontoegankelijk gemaakt, totdat deze uiteindelijk onomkeerbaar worden verwijderd. Het is niet meer mogelijk om interactie te hebben met het account. Dit kan binnen 30 dagen worden teruggedraaid. + actions_description_html: Beslis welke maatregel moet worden genomen om deze rapportage op te lossen. Wanneer je een (straf)maatregel tegen het gerapporteerde account neemt, krijgt het account een e-mailmelding, behalve wanneer de spam-categorie is gekozen. + add_to_report: Meer aan de rapportage toevoegen are_you_sure: Weet je het zeker? assign_to_self: Aan mij toewijzen assigned: Toegewezen moderator by_target_domain: Domein van gerapporteerde account + category: Category + category_description_html: De reden waarom dit account en/of inhoud werd gerapporteerd wordt aan het gerapporteerde account medegedeeld comment: none: Geen + comment_description_html: 'Om meer informatie te verstrekken, schreef %{name}:' created_at: Gerapporteerd op + delete_and_resolve: Bericht verwijderen forwarded: Doorgestuurd forwarded_to: Doorgestuurd naar %{domain} mark_as_resolved: Markeer als opgelost + mark_as_sensitive: Als gevoelig markeren mark_as_unresolved: Markeer als onopgelost + no_one_assigned: Niemand notes: create: Opmerking toevoegen create_and_resolve: Oplossen met opmerking create_and_unresolve: Heropenen met opmerking delete: Verwijderen - placeholder: Beschrijf welke acties zijn ondernomen of andere gerelateerde opmerkingen… + placeholder: Beschrijf welke maatregelen zijn genomen of andere gerelateerde opmerkingen... + title: Opmerkingen + notes_description_html: Bekijk en laat opmerkingen achter voor andere moderatoren en voor jouw toekomstige zelf + quick_actions_description_html: 'Neem een snelle maatregel of scroll naar beneden om de gerapporteerde inhoud te bekijken:' + remote_user_placeholder: de externe gebruiker van %{instance} reopen: Rapportage heropenen report: 'Rapportage #%{id}' reported_account: Gerapporteerde account reported_by: Gerapporteerd door resolved: Opgelost resolved_msg: Rapportage succesvol opgelost! - status: Bericht + skip_to_actions: Ga direct naar de maatregelen + status: Rapportages + statuses: Gerapporteerde inhoud + statuses_description_html: De problematische inhoud wordt aan het gerapporteerde account medegedeeld + target_origin: Herkomst van de gerapporteerde accounts title: Rapportages unassign: Niet langer toewijzen unresolved: Onopgelost updated_at: Bijgewerkt + view_profile: Profiel bekijken + roles: + add_new: Rol toevoegen + assigned_users: + one: "%{count} gebruiker" + other: "%{count} gebruikers" + categories: + administration: Beheer + invites: Uitnodigingen + moderation: Moderatie + special: Speciaal + delete: Verwijderen + description_html: Met gebruikersrollen kun je de functies en onderdelen van Mastodon waar jouw gebruikers toegang tot hebben aanpassen. + edit: Rol '%{name}' bewerken + everyone: Standaardrechten + everyone_full_description_html: Dit is de basisrol die van toepassing is op alle gebruikers, zelfs voor diegenen zonder toegewezen rol. Alle andere rollen hebben de rechten van deze rol als minimum. + permissions_count: + one: "%{count} recht" + other: "%{count} rechten" + privileges: + administrator: Beheerder + administrator_description: Deze gebruikers hebben volledige rechten en kun dus overal bij + delete_user_data: Gebruikersgegevens verwijderen + delete_user_data_description: Staat gebruikers toe om de gegevens van andere gebruikers zonder vertraging te verwijderen + invite_users: Gebruikers uitnodigen + invite_users_description: Staat gebruikers toe om nieuwe mensen voor de server uit te nodigen + manage_announcements: Aankondigingen beheren + manage_announcements_description: Staat gebruikers toe om mededelingen op de server te beheren + manage_appeals: Bezwaren afhandelen + manage_appeals_description: Staat gebruikers toe om bewaren tegen moderatiemaatregelen te beoordelen + manage_blocks: Blokkades beheren + manage_blocks_description: Staat gebruikers toe om e-mailproviders en IP-adressen te blokkeren + manage_custom_emojis: Lokale emoji's beheren + manage_custom_emojis_description: Staat gebruikers toe om lokale emoji's op de server te beheren + manage_federation: Federatie beheren + manage_federation_description: Staat gebruikers toe om federatie met andere domeinen te blokkeren of toe te staan en om de bezorging te bepalen + manage_invites: Uitnodigingen beheren + manage_invites_description: Staat gebruikers toe om uitnodigingslinks te bekijken en te deactiveren + manage_reports: Rapportages afhandelen + manage_reports_description: Staat gebruikers toe om rapportages te beoordelen en om aan de hand hiervan moderatiemaatregelen te nemen + manage_roles: Rollen beheren + manage_roles_description: Staat gebruikers toe om rollen te beheren en toe te wijzen die minder rechten hebben dan hun eigen rol(len) + manage_rules: Serverregels wijzigen + manage_rules_description: Staat gebruikers toe om serverregels te wijzigen + manage_settings: Server-instellingen wijzigen + manage_settings_description: Staat gebruikers toe de instellingen van de site te wijzigen + manage_taxonomies: Trends en hashtags beheren + manage_taxonomies_description: Staat gebruikers toe om trending inhoud te bekijken en om hashtag-instellingen bij te werken + manage_user_access: Gebruikerstoegang beheren + manage_user_access_description: Staat gebruikers toe om tweestapsverificatie van andere gebruikers uit te schakelen, om hun e-mailadres te wijzigen en om hun wachtwoord opnieuw in te stellen + manage_users: Gebruikers beheren + manage_users_description: Staat gebruikers toe om gebruikersdetails van anderen te bekijken en moderatiemaatregelen tegen hen te nemen + manage_webhooks: Webhooks beheren + manage_webhooks_description: Staat gebruikers toe om webhooks voor beheertaken in te stellen + view_audit_log: Auditlog bekijken + view_audit_log_description: Staat gebruikers toe om een geschiedenis van beheeracties op de server te bekijken + view_dashboard: Dashboard bekijken + view_dashboard_description: Geeft gebruikers toegang tot het dashboard en verschillende statistieken + view_devops_description: Geeft gebruikers toegang tot de dashboards van Sidekiq en pgHero + title: Rollen rules: add_new: Regel toevoegen delete: Verwijderen @@ -519,108 +668,87 @@ nl: empty: Voor deze server zijn nog geen regels opgesteld. title: Serverregels settings: - activity_api_enabled: - desc_html: Wekelijks overzicht van de hoeveelheid lokale berichten, actieve gebruikers en nieuwe registraties - title: Statistieken over gebruikersactiviteit via de API publiceren - bootstrap_timeline_accounts: - desc_html: Meerdere gebruikersnamen met komma's scheiden. Deze accounts worden in ieder geval aan nieuwe gebruikers aanbevolen - title: Aanbevolen accounts voor nieuwe gebruikers - contact_information: - email: Vul een openbaar gebruikt e-mailadres in - username: Vul een gebruikersnaam in - 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: Berichten van gebruikers standaard niet door zoekmachines laten indexeren + about: + manage_rules: Serverregels beheren + preamble: Geef uitgebreide informatie over hoe de server wordt beheerd, gemodereerd en gefinancierd. + rules_hint: Er is een speciaal gebied voor regels waaraan uw gebruikers zich dienen te houden. + title: Over + appearance: + preamble: Mastodons webomgeving aanpassen. + title: Weergave + branding: + preamble: De branding van jouw server laat zien hoe het met andere servers in het netwerk verschilt. Deze informatie wordt op verschillende plekken getoond, zoals in de webomgeving van Mastodon, in mobiele apps, in voorvertoningen op andere websites en berichten-apps, enz. Daarom is het belangrijk om de informatie helder, kort en beknopt te houden. + title: Branding + content_retention: + preamble: Toezicht houden op hoe berichten en media van gebruikers op Mastodon worden bewaard. + title: Bewaartermijn berichten + discovery: + follow_recommendations: Aanbevolen accounts + preamble: Het tonen van interessante inhoud is van essentieel belang voor het aan boord halen van nieuwe gebruikers, die mogelijk niemand van Mastodon kennen. Bepaal hoe verschillende functies voor het ontdekken van gebruikers op jouw server werken. + profile_directory: Gebruikersgids + public_timelines: Openbare tijdlijnen + title: Ontdekken + trends: Trends domain_blocks: all: Aan iedereen disabled: Aan niemand - title: Domeinblokkades tonen users: Aan ingelogde lokale gebruikers - domain_blocks_rationale: - title: Motivering tonen - hero: - desc_html: Wordt op de voorpagina getoond. Tenminste 600x100px aanbevolen. Wanneer dit niet is ingesteld wordt de thumbnail van de Mastodonserver getoond - title: Hero-afbeelding - mascot: - desc_html: Wordt op meerdere pagina's weergegeven. Tenminste 293×205px aanbevolen. Wanneer dit niet is ingesteld wordt de standaardmascotte getoond - title: Mascotte-afbeelding - peers_api_enabled: - desc_html: Domeinnamen die deze server in de fediverse is tegengekomen - title: Lijst van bekende servers via de API publiceren - preview_sensitive_media: - desc_html: Linkvoorvertoningen op andere websites hebben een thumbnail, zelfs als een afbeelding of video als gevoelig is gemarkeerd - title: Gevoelige afbeeldingen en video's in OpenGraph-voorvertoningen tonen - profile_directory: - desc_html: Gebruikers toestaan om vindbaar te zijn - title: Gebruikersgids inschakelen registrations: - closed_message: - desc_html: Wordt op de voorpagina weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld
      En ook hier kan je HTML gebruiken - title: Bericht wanneer registratie is uitgeschakeld - deletion: - desc_html: Toestaan dat iedereen diens eigen account kan verwijderen - title: Verwijderen account toestaan - min_invite_role: - disabled: Niemand - title: Uitnodigingen toestaan door - require_invite_text: - desc_html: Maak het invullen van "Waarom wil je je hier registreren?" verplicht in plaats van optioneel, wanneer registraties handmatig moeten worden goedgekeurd - title: Nieuwe gebruikers moeten een reden invullen waarom ze zich willen registreren + preamble: Toezicht houden op wie een account op deze server kan registreren. + title: Registraties registrations_mode: modes: approved: Goedkeuring vereist om te kunnen registreren none: Niemand kan zich registreren open: Iedereen kan zich registreren - title: Registratiemodus - show_known_fediverse_at_about_page: - desc_html: Wanneer ingeschakeld wordt de globale tijdlijn op de voorpagina getoond en wanneer uitgeschakeld de lokale tijdlijn - title: De globale tijdlijn op de openbare tijdlijnpagina tonen - show_staff_badge: - desc_html: Medewerkersbadge op profielpagina tonen - title: Medewerkersbadge tonen - site_description: - desc_html: Introductie-alinea voor de API. Beschrijf wat er speciaal is aan deze server en andere zaken die van belang zijn. Je kan HTML gebruiken, zoals <a> en <em>. - title: Omschrijving Mastodonserver (API) - site_description_extended: - desc_html: Een goede plek voor je gedragscode, regels, richtlijnen en andere zaken die jouw server uniek maken. Je kan ook hier HTML gebruiken - title: Uitgebreide omschrijving Mastodonserver - site_short_description: - desc_html: Dit wordt gebruikt op de voorpagina, in de zijbalk op profielpagina's en als metatag in de paginabron. Beschrijf in één alinea wat Mastodon is en wat deze server speciaal maakt. - title: Omschrijving Mastodonserver (website) - site_terms: - desc_html: Je kan hier jouw eigen privacybeleid, gebruiksvoorwaarden en ander juridisch jargon kwijt. Je kan HTML gebruiken - title: Aangepaste gebruiksvoorwaarden - site_title: Naam Mastodonserver - thumbnail: - desc_html: Gebruikt als voorvertoning voor OpenGraph en de API. 1200x630px aanbevolen - title: Thumbnail Mastodonserver - timeline_preview: - desc_html: Toon een link naar de openbare tijdlijnpagina op de voorpagina en geef de API zonder in te loggen toegang tot de openbare tijdlijn - title: Toegang tot de openbare tijdlijn zonder in te loggen toestaan - title: Server-instellingen - trendable_by_default: - desc_html: Heeft invloed op hashtags die nog niet eerder niet zijn toegestaan - title: Hashtags toestaan om trending te worden zonder voorafgaande beoordeling - trends: - desc_html: Eerder beoordeelde hashtags die op dit moment trending zijn openbaar tonen - title: Trends + title: Serverinstellingen site_uploads: delete: Geüpload bestand verwijderen destroyed_msg: Verwijderen website-upload geslaagd! statuses: + account: Account + application: Toepassing back_to_account: Terug naar accountpagina + back_to_report: Terug naar de rapportage + batch: + remove_from_report: Uit de rapportage verwijderen + report: Rapportage deleted: Verwijderd + favourites: Favorieten + history: Versiegeschiedenis + in_reply_to: Reactie op + language: Taal media: title: Media + metadata: Metagegevens no_status_selected: Er werden geen berichten gewijzigd, omdat er geen enkele werd geselecteerd + open: Bericht tonen + original_status: Oorspronkelijk bericht + reblogs: Boosts + status_changed: Bericht veranderd title: Berichten van account + trending: Trending + visibility: Zichtbaarheid with_media: Met media + strikes: + actions: + delete_statuses: "%{name} heeft de berichten van %{target} verwijderd" + disable: Account %{target} is door %{name} bevroren + mark_statuses_as_sensitive: "%{name} markeerde de berichten van %{target} als gevoelig" + none: "%{name} verzond een waarschuwing naar %{target}" + sensitive: "%{name} markeerde het account van %{target} als gevoelig" + silence: "%{name} beperkte het account %{target}" + suspend: "%{name} schortte het account %{target} op" + appeal_approved: Bezwaar ingediend + appeal_pending: Bezwaar in behandeling system_checks: database_schema_check: message_html: Niet alle databasemigraties zijn voltooid. Je moet deze uitvoeren om er voor te zorgen dat de applicatie blijft werken zoals het hoort + elasticsearch_running_check: + message_html: Kon geen verbinding maken met Elasticsearch. Controleer dat Elasticsearch wordt uitgevoerd of schakel full-text-zoeken uit + elasticsearch_version_check: + message_html: 'Incompatibele Elasticsearch-versie: %{value}' + version_comparison: Je gebruikt Elasticsearch %{running_version}, maar %{required_version} is vereist rules_check: action: Serverregels beheren message_html: Je hebt voor deze server geen regels opgesteld. @@ -630,20 +758,126 @@ nl: review: Status beoordelen updated_msg: Instellingen hashtag succesvol bijgewerkt title: Beheer + trends: + allow: Goedkeuren + approved: Goedgekeurde + disallow: Afkeuren + links: + allow: Link goedkeuren + allow_provider: Website goedkeuren + description_html: Dit zijn links die momenteel veel worden gedeeld door accounts waar jouw server berichten van ontvangt. Hierdoor kunnen jouw gebruikers zien wat er in de wereld aan de hand is. Er worden geen links weergeven totdat je de website hebt goedgekeurd. Je kunt ook individuele links goed- of afkeuren. + disallow: Link afkeuren + disallow_provider: Website afkeuren + no_link_selected: Er werden geen links gewijzigd, omdat er geen enkele werd geselecteerd + publishers: + no_publisher_selected: Er werden geen websites gewijzigd, omdat er geen enkele werd geselecteerd + shared_by_over_week: + one: Deze week door één persoon gedeeld + other: Deze week door %{count} mensen gedeeld + title: Trending links + usage_comparison: Vandaag %{today} keer gedeeld, vergeleken met %{yesterday} keer gisteren + only_allowed: Alleen goedgekeurde + pending_review: In afwachting van beoordeling + preview_card_providers: + allowed: Links van deze website kunnen trending worden + description_html: Dit zijn domeinen waarvan er links vaak op jouw server worden gedeeld. Links zullen niet in het openbaar trending worden, voordat het domein van de link wordt goedgekeurd. Jouw goedkeuring (of afwijzing) geldt ook voor subdomeinen. + rejected: Links naar deze nieuwssite kunnen niet trending worden + title: Websites + rejected: Afgekeurd + statuses: + allow: Bericht goedkeuren + allow_account: Account goedkeuren + description_html: Dit zijn berichten die op jouw server bekend zijn en die momenteel veel worden gedeeld en als favoriet worden gemarkeerd. Hiermee kunnen nieuwe en terugkerende gebruikers meer mensen vinden om te volgen. Er worden geen berichten in het openbaar weergegeven totdat het account door jou is goedgekeurd en de gebruiker toestaat dat diens account aan anderen wordt aanbevolen. Je kunt ook individuele berichten goed- of afkeuren. + disallow: Bericht afkeuren + disallow_account: Account afkeuren + no_status_selected: Er werden geen trending berichten gewijzigd, omdat er geen enkele werd geselecteerd + not_discoverable: Gebruiker heeft geen toestemming gegeven om vindbaar te zijn + shared_by: + one: Een keer gedeeld of als favoriet gemarkeerd + other: "%{friendly_count} keer gedeeld of als favoriet gemarkeerd" + title: Trending berichten + tags: + current_score: Huidige score is %{score} + dashboard: + tag_accounts_measure: aantal unieke keren gebruikt + tag_languages_dimension: Populaire talen + tag_servers_dimension: Populaire servers + tag_servers_measure: verschillende servers + tag_uses_measure: totaal aantal keer gebruikt + description_html: Deze hashtags verschijnen momenteel in veel berichten die op jouw server zichtbaar zijn. Hiermee kunnen jouw gebruikers zien waar mensen op dit moment het meest over praten. Er worden geen hashtags in het openbaar weergegeven totdat je ze goedkeurt. + listable: Kan worden aanbevolen + no_tag_selected: Er werden geen hashtags gewijzigd, omdat er geen enkele werd geselecteerd + not_listable: Wordt niet aanbevolen + not_trendable: Zal niet onder trends verschijnen + not_usable: Kan niet worden gebruikt + peaked_on_and_decaying: Piekte op %{date} en is nu weer op diens retour + title: Trending hashtags + trendable: Kan onder trends verschijnen + trending_rank: 'Trending #%{rank}' + usable: Kan worden gebruikt + usage_comparison: "%{today} keer vandaag gebruikt, vergeleken met %{yesterday} keer gisteren" + used_by_over_week: + one: Door één persoon tijdens de afgelopen week gebruikt + other: Door %{count} mensen tijdens de afgelopen week gebruikt + title: Trends + trending: Trending warning_presets: add_new: Nieuwe toevoegen delete: Verwijderen edit_preset: Preset voor waarschuwing bewerken empty: Je hebt nog geen presets voor waarschuwingen toegevoegd. title: Presets voor waarschuwingen beheren + webhooks: + add_new: Eindpunt toevoegen + delete: Verwijderen + description_html: Met een webhook kan Mastodon meldingen in real-time over gekozen gebeurtenissen naar jouw eigen toepassing sturen, zodat je applicatie automatisch reacties kan genereren. + disable: Uitschakelen + disabled: Uitgeschakeld + edit: Eindpunt bewerken + empty: Je hebt nog geen webhook-eindpunten geconfigureerd. + enable: Inschakelen + enabled: Ingeschakeld + enabled_events: + one: 1 ingeschakelde gebeurtenis + other: "%{count} ingeschakelde gebeurtenissen" + events: Gebeurtenissen + new: Nieuwe webhook + rotate_secret: Secret opnieuw genereren + secret: Signing secret + status: Status + title: Webhooks + webhook: Webhook admin_mailer: + new_appeal: + actions: + delete_statuses: het verwijderen van diens berichten + disable: het bevriezen van diens account + mark_statuses_as_sensitive: het markeren van diens berichten als gevoelig + none: een waarschuwing + sensitive: het gevoelig forceren van diens account + silence: het beperken van diens account + suspend: het opschorten van diens account + body: "%{target} maakt bezwaar tegen een moderatiemaatregel door %{action_taken_by} op %{date}, betreffende %{type}. De gebruiker schrijft:" + next_steps: Je kunt het bezwaar goedkeuren om daarmee de moderatiemaatregel ongedaan te maken, of je kunt het verwerpen. + subject: "%{username} maakt bezwaar tegen een moderatiemaatregel op %{instance}" new_pending_account: - body: Zie hieronder de details van het nieuwe account. Je kunt de aanvraag goedkeuren of afkeuren. + body: Zie hieronder de details van het nieuwe account. Je kunt de aanvraag goedkeuren of afwijzen. subject: Er dient een nieuw account op %{instance} te worden beoordeeld (%{username}) new_report: body: "%{reporter} heeft %{target} gerapporteerd" body_remote: Iemand van %{domain} heeft %{target} gerapporteerd subject: Nieuwe rapportage op %{instance} (#%{id}) + new_trends: + body: 'De volgende items moeten worden beoordeeld voordat ze openbaar kunnen worden getoond:' + new_trending_links: + title: Trending links + new_trending_statuses: + title: Trending berichten + new_trending_tags: + no_approved_tags: Op dit moment zijn er geen goedgekeurde hashtags. + requirements: 'Elk van deze kandidaten kan de #%{rank} goedgekeurde trending hashtag overtreffen, die momenteel #%{lowest_tag_name} is met een score van %{lowest_tag_score}.' + title: Trending hashtags + subject: Nieuwe trends te beoordelen op %{instance} aliases: add_new: Alias aanmaken created_msg: Succesvol een nieuwe alias aangemaakt. Je kunt nu met de verhuizing vanaf het oude account beginnen. @@ -673,16 +907,13 @@ nl: applications: created: Aanmaken toepassing geslaagd destroyed: Verwijderen toepassing geslaagd - invalid_url: De opgegeven URL is ongeldig regenerate_token: Toegangscode opnieuw aanmaken token_regenerated: Opnieuw aanmaken toegangscode geslaagd warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders! your_token: Jouw toegangscode auth: - apply_for_account: Een uitnodiging aanvragen + apply_for_account: Zet jezelf op de wachtlijst change_password: Wachtwoord - checkbox_agreement_html: Ik ga akkoord met de regels van deze server en de gebruiksvoorwaarden - checkbox_agreement_without_rules_html: Ik ga akkoord met de gebruiksvoorwaarden delete_account: Account verwijderen delete_account_html: Wanneer je jouw account graag wilt verwijderen, kun je dat hier doen. We vragen jou daar om een bevestiging. description: @@ -695,11 +926,13 @@ nl: invalid_reset_password_token: De code om jouw wachtwoord opnieuw in te stellen is verlopen. Vraag een nieuwe aan. link_to_otp: Voer een tweestapsverificatiecode van je telefoon of een herstelcode in link_to_webauth: Jouw apparaat met de authenticatie-app gebruiken + log_in_with: Inloggen met login: Inloggen logout: Uitloggen migrate_account: Naar een ander account verhuizen migrate_account_html: Wanneer je dit account naar een ander account wilt doorverwijzen, kun je dit hier instellen. or_log_in_with: Of inloggen met + privacy_policy_agreement_html: Ik heb het privacybeleid gelezen en ga daarmee akkoord providers: cas: CAS saml: SAML @@ -707,19 +940,26 @@ nl: registration_closed: "%{instance} laat geen nieuwe gebruikers toe" resend_confirmation: Verstuur de bevestigingsinstructies nogmaals reset_password: Wachtwoord opnieuw instellen + rules: + preamble: Deze zijn vastgesteld en worden gehandhaafd door de moderatoren van %{domain}. + title: Enkele basisregels. 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 + sign_up: + preamble: Je kunt met een Mastodon-account iedereen in het netwerk volgen, ongeacht waar deze persoon een account heeft. + title: Laten we je account op %{domain} instellen. status: account_status: Accountstatus confirming: Aan het wachten totdat de e-mail is bevestigd. + functional: Jouw account kan in diens geheel gebruikt worden. 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}. + view_strikes: Bekijk de eerder door moderatoren vastgestelde overtredingen die je hebt gemaakt too_fast: Formulier is te snel ingediend. Probeer het nogmaals. - trouble_logging_in: Problemen met inloggen? use_security_key: Beveiligingssleutel gebruiken authorize_follow: already_following: Je volgt dit account al @@ -729,7 +969,7 @@ nl: follow_request: 'Jij hebt een volgverzoek ingediend bij:' following: 'Succes! Jij volgt nu:' post_follow: - close: Of je kan dit venster gewoon sluiten. + close: Of je kunt dit venster gewoon sluiten. return: Profiel van deze gebruiker tonen web: Ga naar de webapp title: Volg %{acct} @@ -777,10 +1017,36 @@ nl: more_details_html: Zie het privacybeleid voor meer informatie. username_available: Jouw gebruikersnaam zal weer beschikbaar komen username_unavailable: Jouw gebruikersnaam zal onbeschikbaar blijven - directories: - directory: Gebruikersgids - explanation: Ontdek gebruikers aan de hand van hun interesses - explore_mastodon: "%{title} verkennen" + disputes: + strikes: + action_taken: Genomen maatregel + appeal: Bezwaar + appeal_approved: Het ingediende bezwaar is goedgekeurd en de eerder vastgestelde overtreding is niet langer geldig + appeal_rejected: Het ingediende bezwaar is afgewezen + appeal_submitted_at: Bezwaar ingediend + appealed_msg: Jouw bezwaar is ingediend. Wanneer deze wordt goedgekeurd, krijg je hiervan bericht. + appeals: + submit: Bezwaar indienen + approve_appeal: Bezwaar goedkeuren + associated_report: Bijbehorende rapportage + created_at: Datum en tijd + description_html: Dit zijn maatregelen die tegen jouw account zijn genomen en waarschuwingen die door medewerkers van %{instance} naar je zijn gestuurd. + recipient: Geadresseerd aan + reject_appeal: Bezwaar afgewezen + status: 'Bericht #%{id}' + status_removed: Bericht is al van de server verwijderd + title: "%{action} van %{date}" + title_actions: + delete_statuses: Verwijdering bericht + disable: Bevriezen van account + mark_statuses_as_sensitive: Berichten als gevoelig markeren + none: Waarschuwing + sensitive: Volledige account als gevoelig markeren + silence: Beperking account + suspend: Opschorting account + your_appeal_approved: Jouw bezwaar is goedgekeurd + your_appeal_pending: Je hebt een bezwaar ingediend + your_appeal_rejected: Jouw bezwaar is afgewezen domain_validator: invalid_domain: is een ongeldige domeinnaam errors: @@ -829,28 +1095,61 @@ nl: public: Openbare tijdlijnen thread: Gesprekken edit: + add_keyword: Trefwoord toevoegen + keywords: Trefwoorden + statuses: Individuele berichten + statuses_hint_html: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht of ze overeenkomen met de onderstaande trefwoorden. Berichten van het filter bekijken of verwijderen. title: Filter bewerken errors: + deprecated_api_multiple_keywords: Deze instellingen kunnen niet via deze applicatie worden veranderd, omdat er meer dan één trefwoord wordt gebruikt. Gebruik een meer recente applicatie of de webomgeving. invalid_context: Geen of ongeldige context verstrekt - invalid_irreversible: Onomkeerbaar filteren werkt alleen met de starttijdlijn en meldingen index: + contexts: Filters in %{contexts} delete: Verwijderen empty: Je hebt geen filters aangemaakt. + expires_in: Vervalt na %{distance} + expires_on: Vervalt op %{date} + keywords: + one: "%{count} trefwoord" + other: "%{count} trefwoorden" + statuses: + one: "%{count} bericht" + other: "%{count} berichten" + statuses_long: + one: "%{count} individueel bericht verborgen" + other: "%{count} individuele berichten verborgen" title: Filters new: + save: Nieuwe filter opslaan title: Nieuw filter toevoegen + statuses: + back_to_filter: Terug naar het filter + batch: + remove: Uit het filter verwijderen + index: + hint: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht andere criteria. Je kunt in de webomgeving meer berichten aan dit filter toevoegen. + title: Gefilterde berichten footer: - developers: Ontwikkelaars - more: Meer… - resources: Hulpmiddelen trending_now: Trends generic: all: Alles + all_items_on_page_selected_html: + one: "%{count} item op deze pagina is geselecteerd." + other: Alle %{count} items op deze pagina zijn geselecteerd. + all_matching_items_selected_html: + one: "%{count} item dat met jouw zoekopdracht overeenkomt is geselecteerd." + other: Alle %{count} items die met jouw zoekopdracht overeenkomen zijn geselecteerd. changes_saved_msg: Wijzigingen succesvol opgeslagen! copy: Kopiëren delete: Verwijderen + deselect: Alles deselecteren + none: Geen order_by: Sorteer op save_changes: Wijzigingen opslaan + select_all_matching_items: + one: "%{count} item dat met jouw zoekopdracht overeenkomt selecteren." + other: Alle %{count} items die met jouw zoekopdracht overeenkomen selecteren. + today: vandaag validation_errors: one: Er is iets niet helemaal goed! Bekijk onderstaande fout other: Er is iets niet helemaal goed! Bekijk onderstaande %{count} fouten @@ -873,7 +1172,6 @@ nl: following: Volglijst muting: Negeerlijst upload: Uploaden - in_memoriam_html: In memoriam. invites: delete: Deactiveren expired: Verlopen @@ -899,6 +1197,17 @@ nl: lists: errors: limit: Je hebt het maximaal aantal lijsten bereikt + login_activities: + authentication_methods: + otp: tweestapsverificatie-app + password: wachtwoord + sign_in_token: beveiligingscode via e-mail + webauthn: beveiligingssleutels + description_html: Wanneer je activiteit ziet die je niet herkent, overweeg dan uw wachtwoord te wijzigen en tweestapsverificatie in te schakelen. + empty: Geen inloggeschiedenis beschikbaar + failed_sign_in_html: Mislukte inlogpoging met %{method} van %{ip} (%{browser}) + successful_sign_in_html: Succesvol ingelogd met %{method} van %{ip} (%{browser}) + title: Inloggeschiedenis media_attachments: validations: images_and_video: Een video kan niet aan een bericht met afbeeldingen worden gekoppeld @@ -941,18 +1250,17 @@ nl: carry_blocks_over_text: Deze gebruiker is verhuisd vanaf %{acct}. Je hebt dat account geblokkeerd. carry_mutes_over_text: Deze gebruiker is verhuisd vanaf %{acct}. Je hebt dat account genegeerd. copy_account_note_text: 'Deze gebruiker is verhuisd vanaf %{acct}. Je hebt de volgende opmerkingen over dat account gemaakt:' + navigation: + toggle_menu: Menu tonen/verbergen notification_mailer: - digest: - action: Alle meldingen bekijken - body: Hier is een korte samenvatting van de berichten die je sinds jouw laatste bezoek op %{since} hebt gemist - mention: "%{name} vermeldde jou in:" - new_followers_summary: - one: Je hebt trouwens sinds je weg was er ook een nieuwe volger bijgekregen! Hoera! - other: Je hebt trouwens sinds je weg was er ook %{count} nieuwe volgers bijgekregen! Fantastisch! - title: Tijdens jouw afwezigheid... + admin: + report: + subject: "%{name} heeft een rapportage ingediend" + sign_up: + subject: "%{name} heeft zich geregistreerd" favourite: - body: 'Jouw bericht werd door %{name} aan diens favorieten toegevoegd:' - subject: "%{name} voegde jouw bericht als favoriet toe" + body: 'Jouw bericht werd door %{name} als favoriet gemarkeerd:' + subject: "%{name} markeerde jouw bericht als favoriet" title: Nieuwe favoriet follow: body: "%{name} volgt jou nu!" @@ -976,6 +1284,8 @@ nl: title: Nieuwe boost status: subject: "%{name} heeft zojuist een bericht geplaatst" + update: + subject: "%{name} bewerkte een bericht" notifications: email_events: E-mailmeldingen voor gebeurtenissen email_events_hint: 'Selecteer gebeurtenissen waarvoor je meldingen wilt ontvangen:' @@ -1017,8 +1327,10 @@ nl: too_many_options: kan niet meer dan %{max} items bevatten preferences: other: Overig - posting_defaults: Standaardinstellingen voor posten + posting_defaults: Standaardinstellingen voor berichten public_timelines: Openbare tijdlijnen + privacy_policy: + title: Privacybeleid reactions: errors: limit_reached: Limiet van verschillende emoji-reacties bereikt @@ -1041,22 +1353,15 @@ nl: remove_selected_follows: Geselecteerde gebruikers ontvolgen status: Accountstatus remote_follow: - acct: Geef jouw account@domein op die je wilt gebruiken missing_resource: Kon vereiste doorverwijzings-URL voor jouw account niet vinden - no_account_html: Heb je geen account? Je kunt er hier een registreren - proceed: Ga verder om te volgen - prompt: 'Jij gaat volgen:' - reason_html: " Waarom is deze extra stap nodig? %{instance} is wellicht niet de server waarop jij je geregistreerd hebt. We verwijzen je eerst door naar jouw eigen server." - remote_interaction: - favourite: - proceed: Doorgaan met toevoegen aan jouw favorieten - prompt: 'Je wilt het volgende bericht aan jouw favorieten toevoegen:' - reblog: - proceed: Doorgaan met boosten - prompt: 'Je wilt het volgende bericht boosten:' - reply: - proceed: Doorgaan met reageren - prompt: 'Je wilt op het volgende bericht reageren:' + reports: + errors: + invalid_rules: verwijst niet naar geldige regels + rss: + content_warning: 'Inhoudswaarschuwing:' + descriptions: + account: Openbare berichten van @%{acct} + tag: 'Openbare berichten met hashtag #%{hashtag}' scheduled_statuses: over_daily_limit: Je hebt de limiet van %{limit} in te plannen berichten voor vandaag overschreden over_total_limit: Je hebt de limiet van %{limit} in te plannen berichten overschreden @@ -1080,7 +1385,7 @@ nl: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: QQ Browser weibo: Weibo current_session: Huidige sessie description: "%{browser} op %{platform}" @@ -1090,7 +1395,7 @@ nl: adobe_air: Adobe Air android: Android blackberry: Blackberry - chrome_os: Chrome OS + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1102,6 +1407,7 @@ nl: revoke: Intrekken revoke_success: Sessie succesvol ingetrokken title: Sessies + view_authentication_history: Inloggeschiedenis van jouw account bekijken settings: account: Account account_settings: Accountinstellingen @@ -1121,6 +1427,8 @@ nl: preferences: Voorkeuren profile: Profiel relationships: Volgers en gevolgden + statuses_cleanup: Automatisch berichten verwijderen + strikes: Vastgestelde overtredingen two_factor_authentication: Tweestapsverificatie webauthn_authentication: Beveiligingssleutels statuses: @@ -1137,14 +1445,17 @@ nl: other: "%{count} video's" boosted_from_html: Geboost van %{acct_link} content_warning: 'Inhoudswaarschuwing: %{warning}' + default_language: Hetzelfde als de taal van de gebruikersomgeving disallowed_hashtags: one: 'bevatte een niet toegestane hashtag: %{tags}' other: 'bevatte niet toegestane hashtags: %{tags}' + edited_at_html: Bewerkt op %{date} errors: in_reply_not_found: Het bericht waarop je probeert te reageren lijkt niet te bestaan. open_in_web: In de webapp openen over_character_limit: Limiet van %{max} tekens overschreden pin_errors: + direct: Berichten die alleen zichtbaar zijn voor vermelde gebruikers, kunnen niet worden vastgezet limit: Je hebt het maximaal aantal bericht al vastgemaakt ownership: Een bericht van iemand anders kan niet worden vastgemaakt reblog: Een boost kan niet worden vastgezet @@ -1170,95 +1481,50 @@ nl: public_long: Aan iedereen tonen, ook op openbare tijdlijnen unlisted: Minder openbaar unlisted_long: Aan iedereen tonen, maar niet op openbare tijdlijnen + statuses_cleanup: + enabled: Automatisch oude berichten verwijderen + enabled_hint: Verwijder uw berichten automatisch zodra ze een bepaalde leeftijdsgrens bereiken, tenzij ze overeenkomen met een van de onderstaande uitzonderingen + exceptions: Uitzonderingen + explanation: Doordat het verwijderen van berichten de server zwaar belast, gebeurt dit geleidelijk aan op momenten dat de server niet bezig is. Om deze reden kunnen uw berichten een tijdje nadat ze de leeftijdsgrens hebben bereikt worden verwijderd. + ignore_favs: Favorieten negeren + ignore_reblogs: Boosts negeren + interaction_exceptions: Uitzonderingen op basis van interacties + interaction_exceptions_explanation: Merk op dat er geen garantie is dat berichten worden verwijderd, wanneer eenmaal het aantal favorieten of boosts boven de ingestelde grenswaarde zijn geweest. + keep_direct: Directe berichten behouden + keep_direct_hint: Verwijdert geen enkel directe bericht van jou + keep_media: Berichten met mediabijlagen behouden + keep_media_hint: Verwijdert geen enkel bericht met mediabijlagen + keep_pinned: Vastgemaakte berichten behouden + keep_pinned_hint: Verwijdert geen enkel vastgezet bericht van jou + keep_polls: Polls behouden + keep_polls_hint: Geen enkele poll van jou wordt verwijderd + keep_self_bookmark: Bladwijzers behouden + keep_self_bookmark_hint: Eigen berichten die je aan je bladwijzers hebt toegevoegd worden niet verwijderd + keep_self_fav: Favorieten behouden + keep_self_fav_hint: Eigen berichten die je als favoriet hebt gemarkeerd worden niet verwijderd + min_age: + '1209600': 2 weken + '15778476': 6 maanden + '2629746': 1 maand + '31556952': 1 jaar + '5259492': 2 maanden + '604800': 1 week + '63113904': 2 jaar + '7889238': 3 maanden + min_age_label: Te verwijderen na + min_favs: Berichten die tenminste zoveel keer als favoriet zijn gemarkeerd behouden + min_favs_hint: Verwijdert geen berichten die tenminste zoveel keer als favoriet zijn gemarkeerd. Laat leeg om berichten ongeacht het aantal favorieten te verwijderen + min_reblogs: Berichten die minstens zoveel keer zijn geboost behouden + min_reblogs_hint: Verwijdert geen berichten die tenminste zoveel keer zijn geboost. Laat leeg om berichten ongeacht het aantal boosts te verwijderen stream_entries: pinned: Vastgemaakt bericht reblogged: boostte sensitive_content: Gevoelige inhoud + strikes: + errors: + too_late: De periode dat je bezwaar kunt maken tegen deze overtreding is verstreken tags: does_not_match_previous_name: komt niet overeen met de vorige naam - terms: - body_html: | -

      Privacy Policy

      -

      What information do we collect?

      - -
        -
      • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
      • -
      • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
      • -
      • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
      • -
      • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
      • -
      - -
      - -

      What do we use your information for?

      - -

      Any of the information we collect from you may be used in the following ways:

      - -
        -
      • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
      • -
      • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
      • -
      • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
      • -
      - -
      - -

      How do we protect your information?

      - -

      We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

      - -
      - -

      What is our data retention policy?

      - -

      We will make a good faith effort to:

      - -
        -
      • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
      • -
      • Retain the IP addresses associated with registered users no more than 12 months.
      • -
      - -

      You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

      - -

      You may irreversibly delete your account at any time.

      - -
      - -

      Do we use cookies?

      - -

      Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

      - -

      We use cookies to understand and save your preferences for future visits.

      - -
      - -

      Do we disclose any information to outside parties?

      - -

      We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

      - -

      Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

      - -

      When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

      - -
      - -

      Site usage by children

      - -

      If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

      - -

      If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

      - -

      Law requirements can be different if this server is in another jurisdiction.

      - -
      - -

      Changes to our Privacy Policy

      - -

      If we decide to change our privacy policy, we will post those changes on this page.

      - -

      This document is CC-BY-SA. It was last updated March 7, 2018.

      - -

      Originally adapted from the Discourse privacy policy.

      - title: Gebruiksvoorwaarden en privacybeleid van %{instance} themes: contrast: Mastodon (hoog contrast) default: Mastodon (donker) @@ -1267,6 +1533,7 @@ nl: formats: default: "%d %B %Y om %H:%M" month: "%b %Y" + time: "%H:%M" two_factor_authentication: add: Toevoegen disable: Tweestapsverificatie uitschakelen @@ -1280,40 +1547,69 @@ nl: otp: Authenticatie-app recovery_codes: Herstelcodes back-uppen recovery_codes_regenerated: Opnieuw genereren herstelcodes geslaagd - recovery_instructions_html: Wanneer je ooit de toegang verliest tot jouw telefoon, kan je met behulp van een van de herstelcodes hieronder opnieuw toegang krijgen tot jouw account. Zorg ervoor dat je de herstelcodes op een veilige plek bewaard. Je kunt ze bijvoorbeeld printen en ze samen met andere belangrijke documenten bewaren. + recovery_instructions_html: Wanneer je ooit de toegang verliest tot jouw telefoon, kan je met behulp van een van de herstelcodes hieronder opnieuw toegang krijgen tot jouw account. Zorg ervoor dat je de herstelcodes op een veilige plek bewaart. Je kunt ze bijvoorbeeld printen en ze samen met andere belangrijke documenten bewaren. webauthn: Beveiligingssleutels user_mailer: + appeal_approved: + action: Ga naar je account + explanation: Het bezwaar tegen een door een moderator vastgestelde overtreding van jou op %{strike_date}, ingediend op %{appeal_date}, is goedgekeurd. De eerder vastgestelde overtreding is hierbij niet langer geldig. + subject: Jouw bezwaar van %{date} is goedgekeurd + title: Bezwaar goedgekeurd + appeal_rejected: + explanation: Het bezwaar tegen een door een moderator vastgestelde overtreding van jou op %{strike_date}, ingediend op %{appeal_date}, is afgewezen. De vastgestelde overtreding blijft daarom ongewijzigd. + subject: Jouw bezwaar van %{date} is afgewezen + title: Bezwaar afgewezen backup_ready: explanation: Je hebt een volledige back-up van jouw Mastodon-account opgevraagd. Het staat nu klaar om te worden gedownload! subject: Jouw archief staat klaar om te worden gedownload title: Archief ophalen + suspicious_sign_in: + change_password: je wachtwoord te wijzigen + details: 'Hier zijn de details van inlogpoging:' + explanation: We hebben vastgesteld dat iemand vanaf een nieuw IP-adres op jouw account is ingelogd. + further_actions_html: Wanneer jij dit niet was, adviseren wij om onmiddellijk %{action} en om tweestapsverificatie in te schakelen, om zo je account veilig te houden. + subject: Jouw account is vanaf een nieuw IP-adres benaderd + title: Een nieuwe registratie warning: + appeal: Bezwaar indienen + appeal_description: Wanneer je denkt dat dit een fout is, kun je een bezwaar indienen bij de medewerkers van %{instance}. + categories: + spam: Spam + violation: De inhoud is in strijd met de volgende communityrichtlijnen + explanation: + delete_statuses: Er is vastgesteld dat sommige van jouw berichten in strijd zijn met één of meerdere communityrichtlijnen en daarom door de moderatoren van %{instance} zijn verwijderd. + disable: Je kunt niet langer jouw account gebruiken, maar jouw profiel en andere gegevens zijn nog wel intact. Je kunt een backup van je gegevens opvragen, accountinstellingen wijzigen of je account verwijderen. + mark_statuses_as_sensitive: Sommige van jouw berichten zijn als gevoelig gemarkeerd door de moderatoren van %{instance}. Dit betekent dat mensen op de media in de berichten moeten klikken/tikken om deze weer te geven. Je kunt media in de toekomst ook zelf als gevoelig markeren. + sensitive: Vanaf nu worden al jouw geüploade media als gevoelig gemarkeerd en verborgen achter een waarschuwing. + silence: Je kunt nog steeds jouw account gebruiken, maar alleen mensen die jou al volgen kunnen jouw berichten zien, en je kunt minder goed worden gevonden. Andere kunnen je echter nog wel steeds handmatig volgen. + suspend: Je kunt niet langer jouw account gebruiken, en jouw profiel en andere gegevens zijn niet langer toegankelijk. Je kunt nog steeds inloggen om een backup van jouw gegevens op te vragen, totdat deze na 30 dagen volledig worden verwijderd. We zullen wel enkele basisgegevens behouden om te voorkomen dat je onder je schorsing uit probeert te komen. + reason: 'Reden:' + statuses: 'Gerapporteerde berichten:' subject: + delete_statuses: Deze berichten van %{acct} zijn verwijderd disable: Jouw account %{acct} is bevroren + mark_statuses_as_sensitive: Deze berichten van %{acct} zijn als gevoelig gemarkeerd none: Waarschuwing voor %{acct} + sensitive: Berichten van %{acct} zullen vanaf nu altijd als gevoelig worden gemarkeerd silence: Jouw account %{acct} is nu beperkt suspend: Jouw account %{acct} is opgeschort title: + delete_statuses: Berichten verwijderd disable: Account bevroren + mark_statuses_as_sensitive: Berichten als gevoelig gemarkeerd none: Waarschuwing + sensitive: Account is als gevoelig gemarkeerd silence: Account beperkt suspend: Account opgeschort welcome: edit_profile_action: Profiel instellen - edit_profile_step: Je kunt jouw profiel aanpassen door een avatar (profielfoto) en omslagfoto te uploaden, jouw weergavenaam in te stellen en iets over jezelf te vertellen. Wanneer je nieuwe volgers eerst wilt goedkeuren, kun je jouw account besloten maken. + edit_profile_step: Je kunt jouw profiel aanpassen door een profielfoto te uploaden, jouw weergavenaam aan te passen en meer. Je kunt het handmatig goedkeuren van volgers instellen. explanation: Hier zijn enkele tips om je op weg te helpen final_action: Begin berichten te plaatsen - final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen gezien worden, bijvoorbeeld op de lokale tijdlijn en via hashtags. Je wilt jezelf misschien introduceren met de hashtag #introductions.' + final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen bekeken worden, bijvoorbeeld op de lokale tijdlijn en onder hashtags. Je kunt jezelf voorstellen met het gebruik van de hashtag #introductions.' full_handle: Jouw volledige Mastodonadres full_handle_hint: Dit geef je aan jouw vrienden, zodat ze jouw berichten kunnen sturen of (vanaf een andere Mastodonserver) kunnen volgen. - review_preferences_action: Instellingen veranderen - review_preferences_step: Zorg dat je jouw instellingen naloopt, zoals welke e-mails je wilt ontvangen of voor wie jouw berichten standaard zichtbaar moeten zijn. Wanneer je geen last hebt van bewegende beelden, kun je het afspelen van geanimeerde GIF's inschakelen. subject: Welkom op Mastodon - tip_federated_timeline: De globale tijdlijn toont berichten in het Mastodonnetwerk. Het bevat echter alleen berichten van mensen waar jouw buren mee zijn verbonden, dus het is niet compleet. - tip_following: Je volgt standaard de beheerder(s) van jouw Mastodonserver. Bekijk de lokale en de globale tijdlijnen om meer interessante mensen te vinden. - tip_local_timeline: De lokale tijdlijn toont berichten van mensen op %{instance}. Dit zijn jouw naaste buren! - tip_mobile_webapp: Wanneer jouw mobiele webbrowser Mastodon aan jouw startscherm wilt toevoegen, kun je pushmeldingen ontvangen. Het gedraagt zich op meerdere manieren als een native app! - tips: Tips title: Welkom aan boord %{name}! users: follow_limit_reached: Je kunt niet meer dan %{limit} accounts volgen diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 48191ce98e8372..4f07c685e91633 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1,89 +1,27 @@ --- nn: about: - about_hashtag_html: Dette er offentlege tut merkt med #%{hashtag}. Du kan nytta dei om du har ein konto kvar som helst i fødiverset. about_mastodon_html: 'Framtidas sosiale nettverk: Ingen annonsar, ingen verksemder som overvaker deg, etisk design og desentralisering! Eig idéane dine med Mastodon!' - about_this: Om oss - active_count_after: aktiv - active_footnote: Månadlege aktive brukarar (MAB) - administered_by: 'Administrert av:' - api: API - apps: Mobilappar - apps_platforms: Bruk Mastodon på iOS, Android og andre plattformer - browse_directory: Bla gjennom en profilmappe og filtrer etter interesser - browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren - browse_public_posts: Sjå ei direktesending av offentlege innlegg på Mastodon - contact: Kontakt contact_missing: Ikkje sett contact_unavailable: I/T - discover_users: Oppdag brukarar - documentation: Dokumentasjon - federation_hint_html: Med ein konto på %{instance} kan du fylgja folk på kva som helst slags Mastod-tenar og meir. - get_apps: Prøv ein mobilapp hosted_on: "%{domain} er vert for Mastodon" - instance_actor_flash: "Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. \n" - learn_more: Lær meir - privacy_policy: Personvernsreglar - rules: Server regler - rules_html: 'Nedenfor er et sammendrag av reglene du må følge om du vil ha en konto på denne serveren av Mastodon:' - see_whats_happening: Sjå kva som skjer - server_stats: 'Tenarstatistikk:' - source_code: Kjeldekode - status_count_after: - one: innlegg - other: statuser - status_count_before: Som skreiv - tagline: Fylg vener og oppdag nye - terms: Brukarvilkår - unavailable_content: Utilgjengeleg innhald - unavailable_content_description: - domain: Sørvar - reason: Grunn - rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:' - rejecting_media_title: Filtrert media - silenced: 'Innlegg frå desse tenarane vert gøymde frå offentlege tidsliner og samtalar, og det kjem ingen varsel frå samhandlingane til brukarane deira, med mindre du fylgjer dei:' - silenced_title: Stilnede tjenere - suspended: 'Ingen data frå desse tenarane vert handsama, lagra eller sende til andre, som gjer det umogeleg å samhandla eller kommunisera med andre brukarar frå desse tenarane:' - suspended_title: Suspenderte tjenere - unavailable_content_html: Mastodon gjev deg som regel lov til å sjå innhald og samhandla med brukarar frå alle andre tenarar i fødiverset. Dette er unnataka som er valde for akkurat denne tenaren. - user_count_after: - one: brukar - other: brukarar - user_count_before: Her bur - what_is_mastodon: Kva er Mastodon? + title: Om accounts: - choices_html: "%{name} sine val:" - endorsements_hint: Du kan fremja folk dy fylgjer frå grensesnittet på nettet, og då visast dei her. - featured_tags_hint: Du kan velja emneknaggar som skal visast her. follow: Fylg followers: one: Fylgjar other: Fylgjarar following: Fylgjer - instance_actor_flash: Denne kontoen er en virtuell figur som brukes til å representere selve serveren og ikke noen individuell bruker. Den brukes til forbundsformål og bør ikke oppheves. - joined: Vart med %{date} + instance_actor_flash: Denne kontoen er ein virtuell figur som nyttast som representant for tenaren, og ikkje som individuell brukar. Den nyttast til forbundsformål og bør ikkje suspenderast. last_active: sist aktiv link_verified_on: Eigarskap for denne lenkja vart sist sjekka %{date} - media: Media - moved_html: "%{name} har flytta til %{new_profile_link}:" - network_hidden: Denne informasjonen er ikkje tilgjengeleg nothing_here: Her er det ingenting! - people_followed_by: Folk som %{name} fylgjer - people_who_follow: Folk som fylgjer %{name} pin_errors: following: Du må allereie fylgja personen du vil fremja posts: one: Tut other: Tut posts_tab_heading: Tut - posts_with_replies: Tut og svar - roles: - admin: Administrator - bot: Robot - group: Gruppe - moderator: Moderator - unavailable: Profil ikkje tilgjengeleg - unfollow: Slutt å fylgja admin: account_actions: action: Utfør @@ -95,7 +33,7 @@ nn: accounts: add_email_domain_block: Gøym e-postdomene approve: Godtak - approved_msg: Godkjent %{username} sin registreringsapplikasjon + approved_msg: Godkjende %{username} sin registreringssøknad are_you_sure: Er du sikker? avatar: Bilete by_domain: Domene @@ -106,15 +44,21 @@ nn: new_email: Ny e-post submit: Byt e-post title: Byt e-post for %{username} + change_role: + changed_msg: Rolle endra! + label: Endre rolle + no_role: Inga rolle + title: Endre rolle for %{username} confirm: Stadfest confirmed: Stadfesta confirming: Stadfestar + custom: Tilpassa delete: Slett data deleted: Sletta demote: Degrader - destroyed_msg: "%{username} sine data er nå i kø for å bli slettet minimum" + destroyed_msg: "%{username} sine data er no i slettekøa" disable: Slå av - disable_sign_in_token_auth: Deaktiver e-post token autentisering + disable_sign_in_token_auth: Slå av e-post token autentisering disable_two_factor_authentication: Slå av 2FA disabled: Slege av display_name: Synleg namn @@ -123,14 +67,14 @@ nn: email: E-post email_status: E-poststatus enable: Slå på - enable_sign_in_token_auth: Aktiver godkjenning av e-post token + enable_sign_in_token_auth: Slå på e-post token autentisering enabled: Aktivert - enabled_msg: Frossent %{username} sin konto + enabled_msg: Gjenaktiverte %{username} sin konto followers: Fylgjarar follows: Fylgje header: Overskrift inbox_url: Innbokslenkje - invite_request_text: Begrunnelse for å bli med + invite_request_text: Grunngjeving for å bli med invited_by: Innboden av ip: IP-adresse joined: Vart med @@ -142,12 +86,13 @@ nn: login_status: Innlogginsstatus media_attachments: Medievedlegg memorialize: Gjør om til et minne - memorialized: Minnet - memorialized_msg: Vellykket gjort av %{username} til en minnestedet + memorialized: Minna + memorialized_msg: Endra %{username} til ei minneside moderation: active: Aktiv all: Alle pending: Ventar på svar + silenced: Avgrensa suspended: Utvist title: Moderasjon moderation_notes: Moderasjonsmerknader @@ -155,21 +100,26 @@ nn: most_recent_ip: Nyast IP no_account_selected: Ingen kontoar vart endra sidan ingen var valde no_limits_imposed: Ingen grenser sett + no_role_assigned: Inga rolle tildelt not_subscribed: Ikkje tinga pending: Ventar på gjennomgang perform_full_suspension: Utvis + previous_strikes: Tidlegare prikkar + previous_strikes_description_html: + one: Denne kontoen har ein prikk. + other: Denne kontoen har %{count} prikkar. promote: Frem protocol: Protokoll public: Offentleg push_subscription_expires: PuSH-abonnent utløper redownload: Last inn profil på nytt - redownloaded_msg: Oppdatert %{username} sin profil fra opprinnelse + redownloaded_msg: Oppdaterte %{username} sin profil frå opphavstenar reject: Avvis - rejected_msg: Vellykket avvist %{username} sin registreringsapplikasjon + rejected_msg: Avviste %{username} sin registreringssøknad remove_avatar: Fjern bilete remove_header: Fjern overskrift - removed_avatar_msg: Fjernet %{username} sitt avatarbilde - removed_header_msg: Fjernet %{username} sin topptekst bilde + removed_avatar_msg: Fjerna %{username} sitt avatarbilete + removed_header_msg: Fjerna %{username} sitt toppbilete resend_confirmation: already_confirmed: Denne brukaren er allereie stadfesta send: Send stadfestings-e-posten på nytt @@ -177,19 +127,15 @@ nn: reset: Attstill reset_password: Attstill passord resubscribe: Ting på nytt - role: Løyve - roles: - admin: Administrator - moderator: Ordstyrer - staff: Personell - user: Brukar + role: Rolle search: Søk search_same_email_domain: Andre brukarar med same e-postdomene search_same_ip: Andre brukarar med same IP security_measures: - only_password: Bare passord + only_password: Kun passord password_and_2fa: Passord og 2FA - sensitized: Merket som følsom + sensitive: Tving sensitiv + sensitized: Avmerka som følsom shared_inbox_url: Delt Innboks URL show: created_reports: Rapportar frå denne kontoen @@ -197,12 +143,17 @@ nn: silence: Togn silenced: Dempa statuses: Statusar + strikes: Tidlegare prikkar subscribe: Ting + suspend: Utvis og slett kontodata for godt suspended: Utvist - suspension_irreversible: Dataene fra denne kontoen har blitt ikke reverserbart slettet. Du kan oppheve suspenderingen av kontoen for å gjøre den brukbart, men den vil ikke gjenopprette alle data den tidligere har hatt. - suspension_reversible_hint_html: Kontoen har blitt suspendert, og dataene vil bli fullstendig fjernet den %{date}. Frem til da kan kontoen gjenopprettes uten negative effekter. Hvis du ønsker å fjerne alle kontoens data umiddelbart, kan du gjøre det nedenfor. + suspension_irreversible: Data frå denne kontoen har blitt ikkje-reverserbart sletta. Du kan oppheve suspenderinga av kontoen for å bruke den, men det vil ikkje gjenopprette alle data den tidligare har hatt. + suspension_reversible_hint_html: Kontoen har blitt suspendert, og data vil bli fullstendig fjerna den %{date}. Fram til då kan kontoen gjenopprettes uten negative effekter. Om du ynskjer å fjerne kontodata no, kan du gjere det nedanfor. title: Kontoar + unblock_email: Avblokker e-postadresse + unblocked_email_msg: Avblokkerte %{username} si e-postadresse unconfirmed_email: E-post utan stadfesting + undo_sensitized: Gjør om tving sensitiv undo_silenced: Angr målbinding undo_suspension: Angr utvising unsilenced_msg: Opphevde vellykket begrensningen av %{username} sin konto @@ -215,52 +166,123 @@ nn: whitelisted: Kvitlista action_logs: action_types: - approve_user: Godkjenn bruker + approve_appeal: Godkjenn appell + approve_user: Godkjenn brukar assigned_to_self_report: Tilordne rapport change_email_user: Byt e-post for brukar + change_role_user: Endre brukarrolle confirm_user: Stadfest brukar create_account_warning: Opprett åtvaring create_announcement: Opprett lysing + create_canonical_email_block: Opprett e-post-blokkering create_custom_emoji: Opprett tilpassa emoji create_domain_allow: Opprett domene tillatt create_domain_block: Opprett domene-blokk create_email_domain_block: Opprett e-post domeneblokk create_ip_block: Opprett IP-regel + create_unavailable_domain: Opprett utilgjengeleg domene + create_user_role: Opprett rolle demote_user: Degrader brukar destroy_announcement: Slett lysinga + destroy_canonical_email_block: Slett e-post-blokkering destroy_custom_emoji: Slett tilpassa emoji destroy_domain_allow: Slett domenegodkjenning destroy_domain_block: Slett domenesperring destroy_email_domain_block: Slett e-postdomenesperring + destroy_instance: Slett domene destroy_ip_block: Slett IP-regel destroy_status: Slett status + destroy_unavailable_domain: Slett utilgjengeleg domene + destroy_user_role: Øydelegg rolle disable_2fa_user: Skruv av 2FA disable_custom_emoji: Skruv av tilpassa emoji + disable_sign_in_token_auth_user: Slå av e-post tokenautentisering for brukar disable_user: Skruv av brukar enable_custom_emoji: Skruv på tilpassa emoji + enable_sign_in_token_auth_user: Slå på e-post tokenautentisering for brukar enable_user: Skruv på brukar + memorialize_account: Opprett minnekonto promote_user: Forfrem brukar - reject_user: Avvis bruker + reject_appeal: Avvis appell + reject_user: Avvis brukar remove_avatar_user: Fjern avatar reopen_report: Opn rapport opp att + resend_user: Send stadfestings-epost på ny reset_password_user: Tilbakestill passord resolve_report: Løs rapport + sensitive_account: Tvangsfølsom konto silence_account: Demp konto suspend_account: Suspender kontoen + unassigned_report: Fjern tilordna rapport + unblock_email_account: Avblokker e-postadresse + unsensitive_account: Angre tvangsfølsom konto + unsilence_account: Angre avgrensing av konto unsuspend_account: Opphev suspensjonen av kontoen update_announcement: Oppdater kunngjøringen update_custom_emoji: Oppdater tilpassa emoji + update_domain_block: Oppdater domene-sperring + update_ip_block: Oppdater IP-regel update_status: Oppdater tut + update_user_role: Oppdater rolla actions: - approve_user_html: "%{name} godkjente registrering fra %{target}" - create_custom_emoji_html: "%{name} lastet opp ny emoji %{target}" - create_domain_allow_html: "%{name} tillatt føderasjon med domenet %{target}" - create_domain_block_html: "%{name} blokkert domene %{target}" - create_email_domain_block_html: "%{name} blokkert e-post domene %{target}" - create_ip_block_html: "%{name} opprettet regel for IP %{target}" + approve_appeal_html: "%{name} godkjende klagen frå %{target} på modereringa" + approve_user_html: "%{name} godkjende registreringa til %{target}" + assigned_to_self_report_html: "%{name} tildelte rapport %{target} til seg sjølv" + change_email_user_html: "%{name} endra e-postadressa til brukaren %{target}" + change_role_user_html: "%{name} endra rolla til %{target}" + confirm_user_html: "%{name} stadfesta e-postadressa til brukaren %{target}" + create_account_warning_html: "%{name} sende ei åtvaring til %{target}" + create_announcement_html: "%{name} oppretta ei ny kunngjering %{target}" + create_canonical_email_block_html: "%{name} blokkerte e-post med hash %{target}" + create_custom_emoji_html: "%{name} lasta opp ein ny emoji %{target}" + create_domain_allow_html: "%{name} tillot føderasjon med domenet %{target}" + create_domain_block_html: "%{name} blokkerte domenet %{target}" + create_email_domain_block_html: "%{name} blokkerte e-postdomenet %{target}" + create_ip_block_html: "%{name} oppretta ein regel for IP-en %{target}" + create_unavailable_domain_html: "%{name} stogga levering til domenet %{target}" + create_user_role_html: "%{name} oppretta rolla %{target}" + demote_user_html: "%{name} degraderte brukaren %{target}" + destroy_announcement_html: "%{name} sletta kunngjeringa %{target}" + destroy_canonical_email_block_html: "%{name} avblokkerte e-post med hash %{target}" + destroy_custom_emoji_html: "%{name} sletta emojien %{target}" + destroy_domain_allow_html: "%{name} forbydde føderasjon med domenet %{target}" + destroy_domain_block_html: "%{name} avblokkerte domenet %{target}" + destroy_email_domain_block_html: "%{name} avblokkerte e-postdomenet %{target}" + destroy_instance_html: "%{name} tømde domenet %{target}" + destroy_ip_block_html: "%{name} sletta ein regel for IP-en %{target}" + destroy_status_html: "%{name} fjerna innlegget frå %{target}" + destroy_unavailable_domain_html: "%{name} tok opp att levering til domenet %{target}" + destroy_user_role_html: "%{name} sletta rolla %{target}" + disable_2fa_user_html: "%{name} tok vekk krav om tofaktorautentisering for brukaren %{target}" + disable_custom_emoji_html: "%{name} deaktiverte emojien %{target}" + disable_sign_in_token_auth_user_html: "%{name} deaktivert e-post token for godkjenning for %{target}" + disable_user_html: "%{name} slo av innlogging for brukaren %{target}" + enable_custom_emoji_html: "%{name} aktiverte emojien %{target}" + enable_sign_in_token_auth_user_html: "%{name} aktiverte e-post token autentisering for %{target}" + enable_user_html: "%{name} aktiverte innlogging for brukaren %{target}" + memorialize_account_html: "%{name} endret %{target}s konto til en minneside" + promote_user_html: "%{name} fremja brukaren %{target}" + reject_appeal_html: "%{name} avviste klagen frå %{target} på modereringa" reject_user_html: "%{name} avslo registrering fra %{target}" - silence_account_html: "%{name} begrenset %{target} sin konto" - deleted_status: "(sletta status)" + remove_avatar_user_html: "%{name} fjerna %{target} sitt profilbilete" + reopen_report_html: "%{name} opna rapporten %{target} på nytt" + resend_user_html: "%{name} sendte bekreftelsesepost for %{target} på nytt" + reset_password_user_html: "%{name} tilbakestilte passordet for brukaren %{target}" + resolve_report_html: "%{name} løyste ein rapport %{target}" + sensitive_account_html: "%{name} markerte %{target} sitt media som sensitivt" + silence_account_html: "%{name} begrensa %{target} sin konto" + suspend_account_html: "%{name} utviste %{target} sin konto" + unassigned_report_html: "%{name} løyste ein rapport %{target}" + unblock_email_account_html: "%{name} avblokkerte %{target} si e-postadresse" + unsensitive_account_html: "%{name} avmarkerte %{target} sitt media som sensitivt" + unsilence_account_html: "%{name} fjernet begrensningen av %{target}s konto" + update_announcement_html: "%{name} oppdaterte kunngjeringa %{target}" + update_custom_emoji_html: "%{name} oppdaterte emojien %{target}" + update_domain_block_html: "%{name} oppdaterte domeneblokkeringa for %{target}" + update_ip_block_html: "%{name} endret regel for IP %{target}" + update_status_html: "%{name} oppdaterte innlegg av %{target}" + update_user_role_html: "%{name} endret %{target} -rolle" + deleted_account: sletta konto empty: Ingen loggar funne. filter_by_action: Sorter etter handling filter_by_user: Sorter etter brukar @@ -299,10 +321,12 @@ nn: enable: Slå på enabled: Slege på enabled_msg: Aktiverte kjensleteikn + image_hint: PNG eller GIF opp til %{size} list: Oppfør listed: Oppført new: title: Legg til eige kjensleteikn + no_emoji_selected: Ingen emojiar vart endra sidan ingen vart valde not_permitted: Du har ikkje løyve til å utføra denne handlinga overwrite: Skriv over shortcode: Stuttkode @@ -315,19 +339,29 @@ nn: updated_msg: Kjensleteiknet er oppdatert! upload: Last opp dashboard: - active_users: aktive brukere - interactions: interaksjoner - media_storage: Medialagring - new_users: nye brukere - opened_reports: rapporter åpnet - resolved_reports: rapporter løst + active_users: aktive brukarar + interactions: interaksjonar + media_storage: Medielagring + new_users: nye brukarar + opened_reports: rapportar opna + pending_appeals_html: + one: "%{count} ventande ankar" + other: "%{count} ventande klagar" + pending_users_html: + one: "%{count} ventande brukarar" + other: "%{count} ventande brukarar" + resolved_reports: rapportar løyst software: Programvare - sources: Kilder for registreringer + sources: Kjelder for registreringar space: Lagrinsplass nytta title: Dashbord top_languages: Mest aktive språk - top_servers: Mest aktive servere + top_servers: Mest aktive serverar website: Nettside + disputes: + appeals: + empty: Ingen ankar funne. + title: Ankar domain_allows: add_new: Kvitlist domene created_msg: Domene er vorte kvitlista @@ -339,6 +373,7 @@ nn: destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene edit: Rediger domeneblokkering + existing_domain_block: Du har allerede pålagt strengere begrensninger på %{name}. existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til oppheve blokkeringen av den først. new: create: Lag blokkering @@ -350,7 +385,7 @@ nn: suspend: Utvis title: Ny domeneblokkering obfuscate: Obfuskere domenenavn - obfuscate_hint: Delvis skjule domenenavnet i listen hvis det er aktivert for å annonsere listen over domenebegrensninger + obfuscate_hint: Skjul deler av domenenavnet i listen hvis annonsering av listen over domenebegrensninger er slått på private_comment: Privat kommentar private_comment_hint: Kommenter angående denne domenebegrensningen for internt bruk av moderatorene. public_comment: Offentleg kommentar @@ -363,26 +398,54 @@ nn: view: Vis domeneblokkering email_domain_blocks: add_new: Lag ny + attempts_over_week: + one: "%{count} forsøk i løpet av den siste uken" + other: "%{count} forsøk på å opprette konto i løpet av den siste uken" created_msg: E-postdomenet ble lagt til i blokkeringslisten uten problemer delete: Slett + dns: + types: + mx: MX post domain: Domene new: create: Legg til domene + resolve: Løs domene title: Ny blokkeringsoppføring av e-postdomene + resolved_through_html: Løyst gjennom %{domain} title: Blokkerte e-postadresser follow_recommendations: description_html: "Følg anbefalinger hjelper nye brukere med å finne interessant innhold. Når en bruker ikke har kommunisert med andre nok til å danne personlig tilpassede følger anbefalinger, anbefales disse kontoene i stedet. De beregnes daglig på nytt fra en blanding av kontoer der de høyeste engasjementene er og med høyest lokal tilhenger for et gitt språk." language: For språk status: Status suppress: Undertrykk anbefalte følger - suppressed: Dempet - title: Følg anbefalinger + suppressed: Dempa + title: Følg gjerne desse unsuppress: Gjenopprett følg-anbefaling instances: + availability: + failure_threshold_reached: Feilterskelen ble nådd %{date}. + no_failures_recorded: Ingen feil registrert. + title: Tilgjenge + warning: Det siste forsøket på å koble til denne serveren lyktes ikke back_to_all: All back_to_limited: Begrenset back_to_warning: Advarsel by_domain: Domene + content_policies: + comment: Internt notat + policies: + reject_media: Avvis media + silence: Begrens + reason: Offentlig årsak + title: Retningslinjer for innhold + dashboard: + instance_accounts_measure: lagrede kontoer + instance_followers_measure: våre følgere der + instance_follows_measure: deres følgere her + instance_languages_dimension: Mest brukte språk + instance_media_attachments_measure: lagrede mediavedlegg + instance_reports_measure: rapporter om dem + instance_statuses_measure: lagrede innlegg delivery: all: All clear: Feil ved fjerning @@ -390,6 +453,8 @@ nn: stop: Stopp levering unavailable: Ikke tilgjengelig delivery_available: Levering er tilgjengelig + delivery_error_hint: Dersom levering ikke er mulig i løpet av %{count} dager, blir det automatisk merket som ikke mulig å levere. + empty: Ingen domener funnet. moderation: all: Alle limited: Avgrensa @@ -452,6 +517,8 @@ nn: one: "%{count} notis" other: "%{count} notiser" action_taken_by: Handling gjort av + actions: + silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. are_you_sure: Er du sikker? assign_to_self: Tilegn til meg assigned: Tilsett moderator @@ -481,6 +548,18 @@ nn: unassign: Avset unresolved: Uløyst updated_at: Oppdatert + view_profile: Vis profil + roles: + add_new: Legg til rolle + assigned_users: + one: "%{count} bruker" + other: "%{count} brukere" + categories: + administration: Administrasjon + devops: DevOps + invites: Invitasjoner + privileges: + view_devops: DevOps rules: add_new: Legg til et filter delete: Slett @@ -489,92 +568,15 @@ nn: empty: Ingen serverregler har blitt definert ennå. title: Server regler settings: - activity_api_enabled: - desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger - title: Publiser samlet statistikk om brukeraktiviteter - bootstrap_timeline_accounts: - desc_html: Separer flere brukernavn med komma. Kun lokale og ulåste kontoer vil kunne brukes. Dersom tomt er standarden alle lokale administratorer. - title: Standard fylgjer for nye brukarar - contact_information: - email: Offentleg e-postadresse - username: Brukarnamn for kontakt - custom_css: - desc_html: Modifiser utseendet med CSS lastet på hver side - title: Eigen CSS - default_noindex: - desc_html: Påverkar alle brukarar som ikkje har justert denne innstillinga sjølve - title: Velg brukere som er ute av søkemotoren indeksering som standard domain_blocks: all: Til alle disabled: Til ingen - title: Vis domeneblokkeringer users: Til lokale brukarar som er logga inn - domain_blocks_rationale: - title: Vis kvifor - hero: - desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde - title: Heltebilete - mascot: - desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten - title: Maskotbilete - peers_api_enabled: - desc_html: Domenenavn denne instansen har truffet på i fediverset - title: Publiser liste over oppdaga tenarar - preview_sensitive_media: - desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt - title: Vis sensitive medier i OpenGraph-forhåndsvisninger - profile_directory: - desc_html: Gjer at brukarar kan oppdagast - title: Skru på profilmappen - registrations: - closed_message: - desc_html: Vises på forsiden når registreringer er lukket
      Du kan bruke HTML-tagger - title: Melding for lukket registrering - deletion: - desc_html: Tillat alle å sletta kontoen sin - title: Åpne kontosletting - min_invite_role: - disabled: Ingen - title: Tillat innbydingar frå - require_invite_text: - desc_html: Når registreringer krever manuell godkjenning, må du føye «Hvorfor vil du bli med?» tekstinput obligatoriske i stedet for valgfritt - title: Krev nye brukere for å oppgi en grunn for å delta registrations_mode: modes: approved: Godkjenning kreves for påmelding none: Ingen kan melda seg inn open: Kven som helst kan melda seg inn - title: Registreringsmodus - show_known_fediverse_at_about_page: - desc_html: Begrenser den offentlige tidslinjen som er knyttet til landingssiden når den er deaktivert, og viser bare lokalt innhold - show_staff_badge: - desc_html: Vis personalmerke på ei brukarside - title: Vis personalmerke - site_description: - desc_html: Vises som et avsnitt på forsiden og brukes som en meta-tagg. Du kan bruke HTML-tagger, spesielt <a> og <em>. - title: Tenarskilding - site_description_extended: - desc_html: Ein god stad å setja reglar for åtferdskode, reglar, rettningsliner og andre ting som skil din tenar frå andre. Du kan nytta HTML-taggar - title: Utvidet nettstedsinformasjon - site_short_description: - desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf. - title: Stutt om tenaren - site_terms: - desc_html: Du kan skrive din egen personverns-strategi, bruksviklår og andre regler. Du kan bruke HTML tagger - title: Eigne brukarvilkår - site_title: Tenarnamn - thumbnail: - desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales - title: Småbilete for tenaren - timeline_preview: - desc_html: Vis offentlig tidslinje på landingssiden - title: Tillat uautentisert tilgang til offentleg tidsline - title: Sideinnstillingar - trendable_by_default: - desc_html: Påverkar emneknaggar som ikkje har vore tillatne tidlegare - title: Tillat emneknaggar å verta populære utan gjennomgang på førehand - trends: - title: Populære emneknaggar site_uploads: delete: Slett opplasta fil destroyed_msg: Vellukka sletting av sideopplasting! @@ -586,6 +588,9 @@ nn: no_status_selected: Ingen statusar vart endra sidan ingen vart valde title: Kontostatusar with_media: Med media + strikes: + actions: + silence: "%{name} begrenset %{target}s konto" system_checks: database_schema_check: message_html: Det venter på databaseoverføringer. Vennligst kjør disse for å sikre at applikasjonen oppfører seg som forventet @@ -602,6 +607,9 @@ nn: edit_preset: Endr åtvaringsoppsett title: Handsam åtvaringsoppsett admin_mailer: + new_appeal: + actions: + silence: for å begrense deres konto new_pending_account: body: Detaljer om den nye kontoen er nedenfor. Du kan godkjenne eller avvise denne søknaden. subject: Ny konto opp til vurdering på %{instance} (%{username}) @@ -637,16 +645,12 @@ nn: applications: created: Søknad laga destroyed: Søknad sletta - invalid_url: Denne lenkja er ugyldig regenerate_token: Lag tilgangsnykel på nytt token_regenerated: Tilgangsnykel laga på nytt warning: Ver varsam med dette datumet. Aldri del det med nokon! your_token: Tilgangsnykelen din auth: - apply_for_account: Bed om innbyding change_password: Passord - checkbox_agreement_html: Eg godtek tenarreglane og tenestevilkåra - checkbox_agreement_without_rules_html: Eg godtek tenestevilkåra delete_account: Slett konto delete_account_html: Om du vil sletta kontoen din, kan du gå hit. Du vert spurd etter stadfesting. description: @@ -682,7 +686,7 @@ nn: confirming: Ventar på stadfesting av e-post. pending: Søknaden din ventar på gjennomgang frå personalet vårt. Dette kan taka litt tid. Du får ein e-post om søknaden din vert godkjend. redirecting_to: Kontoen din er inaktiv fordi den for øyeblikket omdirigerer til %{acct}. - trouble_logging_in: Får du ikkje logga inn? + view_strikes: Vis tidligere advarsler mot kontoen din use_security_key: Bruk sikkerhetsnøkkel authorize_follow: already_following: Du fylgjer allereie denne kontoen @@ -736,10 +740,11 @@ nn: more_details_html: For fleire detaljar, sjå personvernsvilkåra. username_available: Brukarnamnet ditt vert tilgjengeleg igjen username_unavailable: Brukarnamnet ditt kjem til å halda seg utilgjengeleg - directories: - directory: Profilkatalog - explanation: Leit fram brukarar etter interessa deira - explore_mastodon: Utforsk %{title} + disputes: + strikes: + appeal_approved: Denne advarselen ble anket og er ikke lenger gyldig + title_actions: + silence: Begrensning av konto domain_validator: invalid_domain: er ikkje eit gangbart domenenamn errors: @@ -798,9 +803,6 @@ nn: new: title: Legg til nytt filter footer: - developers: Utviklarar - more: Meir… - resources: Ressursar trending_now: Populært no generic: all: Alle @@ -816,6 +818,8 @@ nn: html_validator: invalid_markup: 'rommar ugild HTML-kode: %{error}' imports: + errors: + over_rows_processing_limit: inneholder flere enn %{count} rader modes: merge: Set saman merge_long: Hald på eksisterande data og legg til nye @@ -829,7 +833,6 @@ nn: following: Fylgjeliste muting: Dempeliste upload: Last opp - in_memoriam_html: Til minne. invites: delete: Slå av expired: Utgått @@ -901,14 +904,6 @@ nn: carry_mutes_over_text: Denne brukeren flyttet fra %{acct}, som du hadde dempet. copy_account_note_text: 'Denne brukeren flyttet fra %{acct}, her var dine tidligere notater om dem:' notification_mailer: - digest: - action: Sjå alle varsel - body: Her er ei kort samanfatting av meldingane du gjekk glepp av sidan siste gong du var innom %{since} - mention: "%{name} nemnde deg i:" - new_followers_summary: - one: Du har forresten fått deg ein ny fylgjar mens du var borte! Hurra! - other: Du har forresten fått deg %{count} nye fylgjarar mens du var borte! Hurra! - title: Mens du var borte... favourite: body: 'Statusen din vart merkt som favoritt av %{name}:' subject: "%{name} merkte statusen din som favoritt" @@ -998,22 +993,11 @@ nn: remove_selected_follows: Slutt å fylgja desse brukarane status: Kontostatus remote_follow: - acct: Tast inn brukernavn@domene som du vil følge fra missing_resource: Kunne ikke finne URLen for din konto - no_account_html: Har du ikkje konto? Du kan melda deg inn her - proceed: Hald fram med å fylgja - prompt: 'Du kjem til å fylgja:' - reason_html: "Hvorfor dette trinnet er nødvendig?%{instance} er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først." - remote_interaction: - favourite: - proceed: Merk som favoritt - prompt: 'Du vil merkja dette tutet som favoritt:' - reblog: - proceed: Framhev - prompt: 'Du vil framheva dette tutet:' - reply: - proceed: Svar - prompt: 'Du vil svara på dette tutet:' + rss: + descriptions: + account: Offentlige innlegg fra @%{acct} + tag: 'Offentlige innlegg merket med #%{hashtag}' scheduled_statuses: over_daily_limit: Du har overskredet grensen på %{limit} planlagte tuter for den dagen over_total_limit: Du har overskredet grensen på %{limit} planlagte tuter @@ -1037,7 +1021,7 @@ nn: phantom_js: PhantomJS qq: QQ-lesar safari: Safari - uc_browser: UC-lesar + uc_browser: QQ-lesar weibo: Weibo current_session: Noverande økt description: "%{browser} på %{platform}" @@ -1047,7 +1031,7 @@ nn: adobe_air: Adobe Air android: Android blackberry: BlackBerry - chrome_os: Chrome OS + chrome_os: ChromeOS firefox_os: Firefox OS ios: IOS linux: Linux @@ -1079,6 +1063,8 @@ nn: preferences: Innstillingar profile: Profil relationships: Fylgjar og fylgjarar + statuses_cleanup: Automatisert sletting av innlegg + strikes: Modereringsadvarsler two_factor_authentication: Tostegsautorisering webauthn_authentication: Sikkerhetsnøkler statuses: @@ -1090,14 +1076,12 @@ nn: image: one: "%{count} bilete" other: "%{count} bilete" - video: - one: "%{count} video" - other: "%{count} videoer" boosted_from_html: Framheva av %{acct_link} content_warning: 'Innhaldsåtvaring: %{warning}' disallowed_hashtags: one: 'inneheldt ein emneknagg som ikkje var tillaten: %{tags}' other: 'inneheldt emneknaggen som ikkje var tillaten: %{tags}' + edited_at_html: Redigert %{date} errors: in_reply_not_found: Det ser ut til at tutet du freistar å svara ikkje finst. open_in_web: Opn på nett @@ -1108,9 +1092,6 @@ nn: ownership: Du kan ikkje festa andre sine tut reblog: Ei framheving kan ikkje festast poll: - total_people: - one: "%{count} person" - other: "%{count} personer" total_votes: one: "%{count} røyst" other: "%{count} røyster" @@ -1129,95 +1110,38 @@ nn: public_long: Alle kan sjå unlisted: Ikkje oppført unlisted_long: Alle kan sjå, men ikkje oppført på offentlege tidsliner + statuses_cleanup: + enabled: Slett gamle innlegg automatisk + enabled_hint: Sletter innleggene dine automatisk når de oppnår en angitt alder, med mindre de samsvarer med ett av unntakene nedenfor + exceptions: Unntak + keep_pinned: Behald festa innlegg + keep_pinned_hint: Sletter ingen av dine festa innlegg + keep_polls: Behald røystingar + keep_polls_hint: Sletter ingen av dine røystingar + keep_self_bookmark: Behald bokmerka innlegg + keep_self_bookmark_hint: Sletter ikkje dine eigne innlegg om du har bokmerka dei + keep_self_fav: Behald innlegg som favoritt + keep_self_fav_hint: Sletter ikkje dine eigne innlegg om du har favorittmerka dei + min_age: + '1209600': 2 veker + '15778476': 6 månader + '2629746': 1 månad + '31556952': 1 år + '5259492': 2 månader + '604800': 1 veke + '63113904': 2 år + '7889238': 3 månader + min_age_label: Aldersterskel + min_favs_hint: Sletter ingen av dine innlegg som har mottatt minst dette antalet favorittmerkingar. Lat vere blank for å slette innlegg uavhengig av antal favorittmerkingar stream_entries: pinned: Festa tut reblogged: framheva sensitive_content: Følsomt innhold + strikes: + errors: + too_late: Det er for seint å klage på denne prikken tags: does_not_match_previous_name: stemmar ikkje med det førre namnet - terms: - body_html: | -

      Privatlivsretningslinjer

      -

      Hva slags informasjon samler vi inn?

      - -
        -
      • Grunnleggende kontoinformasjon: Dersom du registrerer deg på denne tjeneren, vil du kanskje bli spurt om å skrive inn et brukernavn, en E-postadresse, og et passord. Du kan også skrive inn ytterligere profilinformasjon som f.eks. et visningsnavn og selvbiografi, og laste opp et profilbilde og toppfeltbilde. Brukernavnet, visningsnavnet, selvbiografien, profilbildet, og toppfeltbildet blir alltid vist offentlig.
      • -
      • Innlegg, følging, og annen offentlig informasjon: Listen over folk du følger blir vist offentlig, det samme gjelder for følgerne dine. Når du sender inn en melding, blir datoen og tidspunktet lagret såvel som programmet du sendte inn meldingen ifra. Meldinger kan inneholde mediavedlegg, som f.eks. bilder og videoer. Offentlige og uoppførte innlegg er offentlig tilgjengelige. Når du viser frem et innlegg på profilen din, er det også offentlig tilgjengelig informasjon. Dinne innlegg blir levert til dine følgere, og i noen tilfeller betyr det at blir levert til forskjellige tjenere og at kopier blir lagret der. Når du sletter innlegg, blir også det levert til dine følgere. Det å fremheve eller like et annet innlegg er alltid offentlig.
      • -
      • Direkteinnlegg og innlegg som kun er for følgere: Alle innlegg er lagret og behandlet på tjeneren. Innlegg som kun er for følgere, blir levert til dine følgere, og direkteinnlegg leveres kun til brukere som er nevnt i dem. I noen tilfeller betyr det at de blir levert til forskjellige tjenere og at kopier blir lagret der. Vi gjør et forsøk i god sportsånd for å begrense tilgangen til disse innleggene til kun autoriserte personer, men andre tjenere kan mislykkes med sådan. Derfor er det viktig å gå i gjennom tjenerne som følgerne dine hører til i. I innstillingene kan du veksle på en innstilling for å godkjenne og avslå nye følgere manuelt. Vennligst ha i tankene at operatørene til tjeneren og enhver mottakende tjener kan se slike meldinger, og at mottakere kan ta skjermklipp av, kopiere, eller på annet vis dele dem videre. Ikke del noe farlig informasjon over Mastodon.
      • -
      • IP-er og andre metadata: Når du logger på, lagrer vi IP-adressen som du logget deg på fra, såvel som navnet til nettleserprogrammet ditt. Du kan gå gjennom og tilbakekalle alle påloggede økter i innstillingene. Den seneste IP-adressen du brukte, blir lagret i opptil 12 måneder. Vi vil kanskje også holde på tjenerloggføringer som inkluderer IP-adressen til alle forespørsler til tjeneren vår.
      • -
      - -
      - -

      Hva bruker vi informasjonen din til?

      - -

      Hva som helst av informasjonen som vi samler inn fra deg, kan bli brukt på de følgende måtene:

      - -
        -
      • Til å levere grunnfunksjonaliteten til Mastodon. Du kan bare samhandle med andre folks innhold og legge ut ditt eget innhold når du er logget på. For eksempel kan du følge andre folk for å se deres kombinerte innlegg i din egen personliggjorte hjemmetidslinje.
      • -
      • Til å bistå i moderasjonen av samfunnet, for eksempel å sammenligne IP-adressen din med andre andre kjente adresser for å avgjøre saker om bannlysningsunngåelse eller andre regelbrudd.
      • -
      • E-postadressen du oppgir kan bli brukt til å sende deg informasjon, varsler om at andre folk samhandler med innholdet ditt eller sender deg meldinger, og å svare på brukerstøttespørsmål, og/eller andre forespørsler eller spørsmål.
      • -
      - -
      - -

      Hvordan beskytter vi informasjonen din?

      - -

      Vi implementer en rekke sikkerhetstiltak for å holde på sikkerheten til din personlige informasjon når du skriver inn, sender inn, eller besøker din personlige informasjon. Blant annet er din nettleserøkt, såvel som trafikken mellom dine apper og API-er, sikret med SSL, og passordet ditt er saltet med en kraftig énveisalgoritme. Du kan skru på 2-trinnsinnlogging for å sikre tilgangen til kontoen din ytterligere.

      - -
      - -

      Hva er våre databeholdingsretningslinjer?

      - -

      Vi vil gjøre en innsats i god sportsånd for å

      - -
        -
      • Beholde tjenerloggføringer som inneholder IP-adressen til alle forespørsler til denne tjeneren, dersom det blir loggført i det hele tatt, i ikke mer enn 90 dager.
      • -
      • Beholde IP-adressene som er forbundet med registrerte brukere i ikke mer enn 12 måneder.
      • -
      - -

      Du kan be om og laste ned et arkiv av innholdet ditt, inkludert dine innlegg, media, mediavedlegg, profilbilde, og toppfeltbilde.

      - -

      Du kan ugjenkallelig slette kontoen til enhver tid.

      - -
      - -

      Bruker vi infokapsler?

      - -

      Ja. Infokapsler er små filer som et nettsted eller dens tjenesteleverandør overfører til harddisken på datamaskinen din gjennom nettleseren din (dersom du tillater dette). Disse infokapslene lar nettstedet kjenne igjen nettleseren din og, dersom du har en registrert konto, assosiere den med din registrerte konto.

      - -

      Vi benytter infokapsler for å forstå og lagre dinne innstillinger til fremtidige besøk.

      - -
      - -

      Forteller vi om noe informasjon til utenforstående parter?

      - -

      Vi hverken selger, bytter, eller på andre måter overfører din personlig identifiserbare informasjon til utenforstående parter. Dette inkluderer ikke tredjeparter som vi stoler på og som hjelper oss med å drifte nettstedet vårt, drifte våre forretninger, eller å yte tjenester til deg, så lenge disse partene sier seg enige i å holde denne informasjonen hemmelig. Vi kan også frigi informasjonen vår dersom vi mener et frigiving er passende for å møte loven, handle i tråd med vår nettstedsretningslinjer, eller å beskytte vår eller andres rettigheter, eiendom, eller trygghet.

      - -

      Ditt offentlige innhold kan bli lastet ned av andre tjenere i nettverket. Dine offentlige innlegg og innlegg som kun er for følgere blir levert til tjenerne der følgerne dine holder til, og direktemeldinger blir levert il mottakernes tjenere, i den grad de følgerne eller mottakerne holder på en annen tjener enn denne.

      - -

      Når du gir et program autorisasjon til å bruke kontoen din, avhengig av omfanget av tillatelser som du tillater, kan den få tilgang til din offentlige profilinformasjon, din følgingsliste, dine følgere, dine lister, alle dine innlegg, og dine likinger. Programmer kan aldri få tilgang til E-postadressen eller passordet ditt.

      - -
      - -

      Nettstedsbruk av barn

      - -

      Dersom denne tjeneren er i EU eller EØS: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier GDPR (General Data Protection Regulation) at du ikke kan bruke dette nettstedet.

      - -

      Dersom denne tjeneren er i USA: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier COPPA (Children's Online Privacy Protection Act) at du ikke kan bruke dette nettstedet.

      - -

      Lovmessige krav kan være forskjellige dersom denne tjeneren befinner seg i en annen jurisdiksjon.

      - -
      - -

      Endringer i våre privatlivsretningslinjer

      - -

      Dersom vi bestemmer oss for å endre våre privatlivsretningslinjer, vil vi legge ut endringene på denne siden.

      - -

      Dette dokumentet er lisensiert under CC BY-SA. Den engelske originalversjonen ble sist oppdatert den 7. mars 2018. Den norske oversettelsen ble sist oppdatert den 13. desember 2019.

      - -

      Opprinnelig modifisert utifra Discourse sine privatlivsretningslinjer.

      - title: Tenestevilkår og personvernsvilkår for %{instance} themes: contrast: Mastodon (Høg kontrast) default: Mastodon (Mørkt) @@ -1226,6 +1150,7 @@ nn: formats: default: "%d.%b %Y, %H:%M" month: "%b %Y" + time: "%H:%M" two_factor_authentication: add: Legg til disable: Slå av @@ -1242,36 +1167,60 @@ nn: recovery_instructions_html: Hvis du skulle miste tilgang til telefonen din, kan du bruke en av gjenopprettingskodene nedenfor til å gjenopprette tilgang til din konto. Oppbevar gjenopprettingskodene sikkert, for eksempel ved å skrive dem ut og gjemme dem på et lurt sted bare du vet om. webauthn: Sikkerhetsnøkler user_mailer: + appeal_approved: + action: Gå til din konto + explanation: Apellen på prikken mot din kontor på %{strike_date} som du la inn på %{appeal_date} har blitt godkjend. Din konto er nok ein gong i god stand. + title: Anke godkjend + appeal_rejected: + title: Anke avvist backup_ready: explanation: Du ba om en fullstendig sikkerhetskopi av Mastodon-kontoen din. Den er nå klar for nedlasting! subject: Arkivet ditt er klart til å lastes ned + suspicious_sign_in: + change_password: endre passord + details: 'Her er påloggingsdetaljane:' + explanation: Vi har oppdaga ei pålogging til din konto frå ei ny IP-adresse. + further_actions_html: Om dette ikkje var deg, tilrår vi at du %{action} no og aktiverar 2-trinnsinnlogging for å halde kontoen din sikker. + subject: Din konto er opna frå ei ny IP-adresse + title: Ei ny pålogging warning: + appeal: Send inn anke + appeal_description: Om du meiner dette er ein feil, kan du sende inn ei klage til gjengen i %{instance}. + categories: + spam: Søppelpost + violation: Innhald bryter følgjande retningslinjer + explanation: + delete_statuses: Nokre av innlegga dine er bryt éin eller fleire retningslinjer, og har så blitt fjerna av moderatorene på %{instance}. + disable: Du kan ikkje lenger bruke kontoen, men profilen din og andre data er intakt. Du kan be om ein sikkerhetskopi av dine data, endre kontoinnstillingar eller slette din konto. + sensitive: Frå no av vil alle dine opplasta mediefiler bli markert som sensitive og skjult bak ei klikk-åtvaring. + silence: Medan kontoen din er avgrensa, vil berre folk som allereie fylgjer deg sjå dine tutar på denne tenaren, og du kan bli ekskludert fra diverse offentlige oppføringer. Andre kan framleis fylgje deg manuelt. + suspend: Du kan ikkje lenger bruke kontoen din, og profilen og andre data er ikkje lenger tilgjengelege. Du kan framleis logge inn for å be om ein sikkerheitskopi av data før dei blir fullstendig sletta om omtrent 30 dagar, men vi beheld nokre grunnleggjande data for å forhindre deg å omgå suspenderinga. + reason: 'Årsak:' + statuses: 'Innlegg sitert:' subject: + delete_statuses: Dine innlegg på %{acct} har blitt fjernet disable: Kontoen din, %{acct}, har blitt fryst + mark_statuses_as_sensitive: Dine innlegg på %{acct} har blitt merket som sensitivt innhold none: Åtvaring for %{acct} + sensitive: Dine innlegg på %{acct} vil bli merket som sensitive fra nå silence: Kontoen din, %{acct}, er vorten avgrensa suspend: Kontoen din, %{acct}, er vorten utvist title: + delete_statuses: Innlegg fjernet disable: Konto frosen + mark_statuses_as_sensitive: Innlegg markert som sensitive none: Åtvaring + sensitive: Konto markert som sensitiv silence: Konto avgrensa suspend: Konto utvist welcome: edit_profile_action: Lag til profil - edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen. + edit_profile_step: Du kan tilpasse profilen din ved å laste opp et profilbilde, endre visningsnavnet ditt og mer. Du kan velge at nye følgere må godkjennes av deg før de får lov til å følge deg. explanation: Her er nokre tips for å koma i gang final_action: Kom i gang med å leggja ut - final_step: 'Byrj å skriva innlegg! Sjølv utan fylgjarar kan andre sjå dei offentlege meldingane dine, til dømes på den lokale tidslina og i emneknaggar. Du har kanskje lyst til å introdusera deg med emneknaggen #introductions.' full_handle: Det fulle brukarnamnet ditt full_handle_hint: Dette er det du fortel venene dine for at dei skal kunna senda deg meldingar eller fylgja deg frå ein annan tenar. - review_preferences_action: Endr innstillingar - review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner. subject: Velkomen til Mastodon - tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett. - tip_following: Du fylgjer automatisk tenaradministrator(ane). For å finna fleire forvitnelege folk kan du sjekka den lokale og fødererte tidslina. - tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer! - tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter! - tips: Tips title: Velkomen om bord, %{name}! users: follow_limit_reached: Du kan ikkje fylgja fleire enn %{limit} folk @@ -1285,9 +1234,11 @@ nn: webauthn_credentials: add: Legg til ny sikkerhetsnøkkel create: + error: Det oppstod et problem med å legge til sikkerhetsnøkkelen. Prøv igjen. success: Sikkerhetsnøkkelen din ble vellykket lagt til. delete: Slett delete_confirmation: Er du sikker på at du vil slette denne sikkerhetsnøkkelen? + description_html: Dersom du aktiverer sikkerhetsnøkkelautentisering, vil innlogging kreve at du bruker en av sikkerhetsnøklene dine. destroy: error: Det oppsto et problem med å slette sikkerhetsnøkkelen. Prøv igjen. success: Sikkerhetsnøkkelen din ble vellykket slettet. diff --git a/config/locales/no.yml b/config/locales/no.yml index 9f0d7b8c4d7058..7ce3d16d4f61f3 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1,89 +1,27 @@ --- 'no': about: - about_hashtag_html: Dette er offentlige toots merket med #%{hashtag}. Du kan interagere med dem om du har en konto et sted i fediverset. about_mastodon_html: Mastodon er et sosialt nettverk laget med fri programvare. Et desentralisert alternativ til kommersielle plattformer. Slik kan det unngå risikoene ved å ha et enkelt selskap som monopoliserer din kommunikasjon. Velg en tjener du stoler på — uansett hvilken du velger så kan du kommunisere med alle andre. Alle kan kjøre sin egen Mastodon og delta sømløst i det sosiale nettverket. - about_this: Om - active_count_after: aktive - active_footnote: Månedlige aktive brukere (MAU) - administered_by: 'Administrert av:' - api: API - apps: Mobilapper - apps_platforms: Bruk Mastodon gjennom iOS, Android og andre plattformer - browse_directory: Bla gjennom en profilmappe og filtrer etter interesser - browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren - browse_public_posts: Bla i en sanntidsstrøm av offentlige innlegg på Mastodon - contact: Kontakt contact_missing: Ikke innstilt contact_unavailable: Ikke tilgjengelig - discover_users: Oppdag brukere - documentation: Dokumentasjon - federation_hint_html: Med en konto på %{instance} vil du kunne følge folk på enhver Mastodon-tjener, og mer til. - get_apps: Prøv en mobilapp hosted_on: Mastodon driftet på %{domain} - instance_actor_flash: "Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. \n" - learn_more: Lær mer - privacy_policy: Privatlivsretningslinjer - rules: Server regler - rules_html: 'Nedenfor er et sammendrag av reglene du må følge om du vil ha en konto på denne serveren av Mastodon:' - see_whats_happening: Se hva som skjer - server_stats: 'Tjenerstatistikker:' - source_code: Kildekode - status_count_after: - one: innlegg - other: statuser - status_count_before: Som skrev - tagline: Følg venner og oppdag nye - terms: Bruksvilkår - unavailable_content: Utilgjengelig innhold - unavailable_content_description: - domain: Tjener - reason: Årsak - rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:' - rejecting_media_title: Filtrert media - silenced: 'Innlegg fra disse tjenerne vil bli skjult fra offentlige tidslinjer og samtaler, og ingen varslinger vil bli generert fra disse brukernes samhandlinger, med mindre du følger dem:' - silenced_title: Stilnede tjenere - suspended: 'Ingen data fra disse tjenerne vil bli behandlet, lagret, eller utvekslet, noe som vil gjøre enhver samhandling eller kommunikasjon med brukere fra disse tjenerne umulig:' - suspended_title: Suspenderte tjenere - unavailable_content_html: Mastodon lar deg vanligvis se innhold fra og samhandle med brukere fra enhver annen tjener i strømiverset. Dette er unntakene som har blitt gjort på denne spesifikke tjeneren. - user_count_after: - one: bruker - other: brukere - user_count_before: Her bor - what_is_mastodon: Hva er Mastodon? + title: Om accounts: - choices_html: "%{name} sine anbefalte:" - endorsements_hint: Du kan fremheve personer du følger fra nettgrensesnittet som deretter vil bli vist her. - featured_tags_hint: Du kan fremheve spesifikke emneknagger som vil bli vist her. follow: Følg followers: one: Følger other: Følgere following: Følger instance_actor_flash: Denne kontoen er en virtuell figur som brukes til å representere selve serveren og ikke noen individuell bruker. Den brukes til forbundsformål og bør ikke oppheves. - joined: Ble med den %{date} last_active: sist aktiv link_verified_on: Eierskap av denne lenken ble sjekket %{date} - media: Media - moved_html: "%{name} har flyttet til %{new_profile_link}:" - network_hidden: Denne informasjonen er ikke tilgjengelig nothing_here: Det er ingenting her! - people_followed_by: Folk som %{name} følger - people_who_follow: Folk som følger %{name} pin_errors: following: Du må allerede følge personen du vil fremheve posts: one: Tut other: Tuter posts_tab_heading: Tuter - posts_with_replies: Tuter med svar - roles: - admin: Administrator - bot: Bot - group: Gruppe - moderator: Moderere - unavailable: Profilen er utilgjengelig - unfollow: Slutt å følge admin: account_actions: action: Utfør handling @@ -100,15 +38,21 @@ avatar: Profilbilde by_domain: Domene change_email: - changed_msg: Konto-E-postadressen ble vellykket endret! + changed_msg: E-post ble endret! current_email: Nåværende E-post label: Endre e-post new_email: Ny E-post submit: Endre e-post title: Endre E-postadressen til %{username} + change_role: + changed_msg: Rollen ble endret! + label: Endre rolle + no_role: Ingen rolle + title: Endre rolle for %{username} confirm: Bekreft confirmed: Bekreftet confirming: Bekrefte + custom: Tilpasset delete: Slett data deleted: Slettet demote: Degrader @@ -148,16 +92,22 @@ active: Aktive all: Alle pending: Avventer + silenced: Begrenset suspended: Utvist title: Moderasjon moderation_notes: Moderasjonsnotater most_recent_activity: Nyligste aktivitet most_recent_ip: Nyligste IP no_account_selected: Ingen brukere ble forandret da ingen var valgt - no_limits_imposed: Ingen grenser er tatt i bruk + no_limits_imposed: Ingen pålagte begrensninger + no_role_assigned: Ingen rolle tildelt not_subscribed: Ikke abonnért pending: Avventer gjennomgang perform_full_suspension: Utfør full utvisning + previous_strikes: Tidligere advarsler + previous_strikes_description_html: + one: Denne kontoen har en advarsel. + other: Denne kontoen har %{count} advarsler. promote: Oppgradere protocol: Protokoll public: Offentlig @@ -177,35 +127,36 @@ reset: Tilbakestill reset_password: Nullstill passord resubscribe: Abonner på nytt - role: Rettigheter - roles: - admin: Administrator - moderator: Ordstyrer - staff: Personale - user: Bruker + role: Rolle search: Søk search_same_email_domain: Andre brukere med samme E-postdomene search_same_ip: Andre brukere med den samme IP-en security_measures: only_password: Bare passord password_and_2fa: Passord og 2FA + sensitive: Sensitiv sensitized: Merket som følsom shared_inbox_url: Delt Innboks URL show: created_reports: Rapporter laget av denne kontoen targeted_reports: Rapporter laget om denne kontoen - silence: Målbind - silenced: Stilnet + silence: Begrens + silenced: Begrenset statuses: Statuser + strikes: Tidligere advarsler subscribe: Abonnere + suspend: Suspender suspended: Suspendert suspension_irreversible: Dataene fra denne kontoen har blitt ikke reverserbart slettet. Du kan oppheve suspenderingen av kontoen for å gjøre den brukbart, men den vil ikke gjenopprette alle data den tidligere har hatt. suspension_reversible_hint_html: Kontoen har blitt suspendert, og dataene vil bli fullstendig fjernet den %{date}. Frem til da kan kontoen gjenopprettes uten negative effekter. Hvis du ønsker å fjerne alle kontoens data umiddelbart, kan du gjøre det nedenfor. title: Kontoer + unblock_email: Avblokker e-postadresse + unblocked_email_msg: Fjernet blokkering av %{username} sin e-postadresse unconfirmed_email: Ubekreftet E-postadresse - undo_silenced: Angre målbinding + undo_sensitized: Gjør om tving sensitiv + undo_silenced: Angre begrensning undo_suspension: Angre utvisning - unsilenced_msg: Opphevde vellykket begrensningen av %{username} sin konto + unsilenced_msg: Opphevde begrensningen av %{username}s konto unsubscribe: Avslutt abonnementet unsuspended_msg: Opphevde vellykket suspenderingen av %{username} sin konto username: Brukernavn @@ -215,49 +166,92 @@ whitelisted: Hvitelistet action_logs: action_types: + approve_appeal: Godkjenn anke approve_user: Godkjenn bruker assigned_to_self_report: Tilordne rapport change_email_user: Endre brukerens E-postadresse + change_role_user: Endre rolle for brukeren confirm_user: Bekreft brukeren create_account_warning: Opprett en advarsel create_announcement: Opprett en kunngjøring + create_canonical_email_block: Opprett e-post-blokkering create_custom_emoji: Opprett en tilpasset emoji create_domain_allow: Opprett domene tillatt create_domain_block: Opprett domene-blokk create_email_domain_block: Opprett e-post domeneblokk create_ip_block: Opprett IP-regel + create_unavailable_domain: Opprett utilgjengelig domene + create_user_role: Opprett rolle demote_user: Degrader bruker destroy_announcement: Slett kunngjøringen + destroy_canonical_email_block: Slett blokkering av e-post destroy_custom_emoji: Slett den tilpassede emojien + destroy_domain_allow: Slett domenegodkjenning + destroy_domain_block: Slett blokkering av domene + destroy_email_domain_block: Slett blokkering av e-postdomene + destroy_instance: Slett domene destroy_ip_block: Slett IP-regel destroy_status: Slett statusen + destroy_unavailable_domain: Slett utilgjengelig domene + destroy_user_role: Slett rolle disable_2fa_user: Skru av 2-trinnsinnlogging disable_custom_emoji: Skru av tilpassede emojier + disable_sign_in_token_auth_user: Skru av e-post-tokenautentisering for bruker disable_user: Deaktiver bruker enable_custom_emoji: Skru på tilpassede emojier + enable_sign_in_token_auth_user: Skru på e-post-tokenautentisering for bruker enable_user: Aktiver bruker + memorialize_account: Opprett minnekonto promote_user: Promoter bruker + reject_appeal: Avvis anke reject_user: Avvis bruker remove_avatar_user: Fjern Avatar reopen_report: Gjenåpne rapporten + resend_user: Send e-post med bekreftelse på nytt reset_password_user: Tilbakestill passord resolve_report: Løs rapport - silence_account: Demp konto + sensitive_account: Tving sensitiv konto + silence_account: Begrens konto suspend_account: Suspender kontoen + unassigned_report: Fjern tilordnet rapport + unblock_email_account: Fjern blokkering av e-postadresse + unsensitive_account: Angre tving sensitiv konto + unsilence_account: Angre begrensning av konto unsuspend_account: Opphev suspensjonen av kontoen update_announcement: Oppdater kunngjøringen update_custom_emoji: Oppdater tilpasset Emoji + update_domain_block: Oppdater blokkering av domene + update_ip_block: Oppdater IP-regel update_status: Oppdater statusen + update_user_role: Oppdater rolle actions: approve_user_html: "%{name} godkjente registrering fra %{target}" + change_email_user_html: "%{name} endret e-postadressen til brukeren %{target}" + change_role_user_html: "%{name} endret rolle for %{target}" + confirm_user_html: "%{name} bekreftet e-postadressen til brukeren %{target}" + create_account_warning_html: "%{name} sendte en advarsel til %{target}" + create_announcement_html: "%{name} opprettet ny kunngjøring %{target}" + create_canonical_email_block_html: "%{name} blokkerte e-post med hash %{target}" create_custom_emoji_html: "%{name} lastet opp ny emoji %{target}" create_domain_allow_html: "%{name} tillatt føderasjon med domenet %{target}" create_domain_block_html: "%{name} blokkert domene %{target}" create_email_domain_block_html: "%{name} blokkert e-post domene %{target}" create_ip_block_html: "%{name} opprettet regel for IP %{target}" + create_user_role_html: "%{name} opprettet rollen %{target}" + destroy_announcement_html: "%{name} slettet kunngjøring %{target}" + destroy_custom_emoji_html: "%{name} slettet emoji %{target}" + destroy_ip_block_html: "%{name} slettet regel for IP %{target}" + destroy_status_html: "%{name} fjernet innlegget av %{target}" + destroy_user_role_html: "%{name} slettet %{target} -rolle" reject_user_html: "%{name} avslo registrering fra %{target}" - silence_account_html: "%{name} begrenset %{target} sin konto" - deleted_status: "(statusen er slettet)" + reset_password_user_html: "%{name} tilbakestille passordet for brukeren %{target}" + silence_account_html: "%{name} begrenset %{target}s konto" + unsilence_account_html: "%{name} fjernet begrensningen av %{target}s konto" + update_custom_emoji_html: "%{name} oppdaterte emoji %{target}" + update_ip_block_html: "%{name} endret regel for IP %{target}" + update_status_html: "%{name} oppdaterte innlegg av %{target}" + update_user_role_html: "%{name} endret %{target} -rolle" + deleted_account: slettet konto empty: Ingen loggføringer ble funnet. filter_by_action: Sorter etter handling filter_by_user: Sorter etter bruker @@ -296,10 +290,12 @@ enable: Aktivere enabled: Skrudd på enabled_msg: Aktiverte emojien uten problem + image_hint: PNG eller GIF opptil %{size} list: Før opp listed: Oppførte new: title: Legg til ny egen emoji + no_emoji_selected: Ingen emojis ble endret da ingen var valgt not_permitted: Du har ikke rettigheter til å utføre denne handlingen overwrite: Overskrive shortcode: Kortkode @@ -336,7 +332,8 @@ destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene edit: Rediger domeneblokkering - existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til oppheve blokkeringen av den først. + existing_domain_block: Du har allerede pålagt strengere begrensninger på %{name}. + existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du må oppheve blokkeringen av den først. new: create: Lag blokkering hint: Domeneblokkeringen vil ikke hindre opprettelse av kontooppføringer i databasen, men vil retroaktivt og automatisk benytte spesifikke moderasjonsmetoder på de kontoene. @@ -347,11 +344,11 @@ suspend: Utvis title: Ny domeneblokkering obfuscate: Obfuskere domenenavn - obfuscate_hint: Delvis skjule domenenavnet i listen hvis det er aktivert for å annonsere listen over domenebegrensninger + obfuscate_hint: Skjul deler av domenenavnet i listen hvis annonsering av listen over domenebegrensninger er slått på private_comment: Privat kommentar - private_comment_hint: Kommenter angående denne domenebegrensningen for internt bruk av moderatorene. + private_comment_hint: Kommentar angående denne domenebegrensningen for internt bruk av moderatorene. public_comment: Offentlig kommentar - public_comment_hint: Kommenter angående denne domenebegrensningen for offentligheten, hvis publisering av domenebegrensningslisten er slått på. + public_comment_hint: Kommentar angående denne domenebegrensningen for offentligheten, hvis publisering av listen over domenebegrensninger er slått på. reject_media: Avvis mediefiler reject_media_hint: Fjerner lokalt lagrede mediefiler og nekter å laste dem ned i fremtiden. Irrelevant for utvisninger reject_reports: Avslå rapporter @@ -360,6 +357,9 @@ view: Vis domeneblokkering email_domain_blocks: add_new: Lag ny + attempts_over_week: + one: "%{count} forsøk i løpet av den siste uken" + other: "%{count} forsøk på å opprette konto i løpet av den siste uken" created_msg: E-postdomenet ble lagt til i blokkeringslisten uten problemer delete: Fjern domain: Domene @@ -376,10 +376,30 @@ title: Følg anbefalinger unsuppress: Gjenopprett følg-anbefaling instances: + availability: + failure_threshold_reached: Feilterskelen ble nådd %{date}. + no_failures_recorded: Ingen feil registrert. + title: Tilgjengelighet + warning: Det siste forsøket på å koble til denne serveren lyktes ikke back_to_all: All back_to_limited: Begrenset back_to_warning: Advarsel by_domain: Domene + content_policies: + comment: Internt notat + policies: + reject_media: Avvis media + silence: Begrens + reason: Offentlig årsak + title: Retningslinjer for innhold + dashboard: + instance_accounts_measure: lagrede kontoer + instance_followers_measure: våre følgere der + instance_follows_measure: deres følgere her + instance_languages_dimension: Mest brukte språk + instance_media_attachments_measure: lagrede mediavedlegg + instance_reports_measure: rapporter om dem + instance_statuses_measure: lagrede innlegg delivery: all: All clear: Feil ved fjerning @@ -387,6 +407,8 @@ stop: Stopp levering unavailable: Ikke tilgjengelig delivery_available: Levering er tilgjengelig + delivery_error_hint: Dersom levering ikke er mulig i løpet av %{count} dager, blir det automatisk merket som ikke mulig å levere. + empty: Ingen domener funnet. moderation: all: Alt limited: Begrenset @@ -437,7 +459,7 @@ pending: Avventer overgangens godkjenning save_and_enable: Lagre og skru på setup: Sett opp en overgangsforbindelse - signatures_not_enabled: Overganger vil ikke fungere riktig mens sikkermodus eller hvitelistingsmodus er skrudd på + signatures_not_enabled: Videreformidlere vil ikke fungere riktig mens sikkermodus eller begrenset føderasjon er aktiv status: Status title: Overganger report_notes: @@ -449,6 +471,8 @@ one: "%{count} notis" other: "%{count} notiser" action_taken_by: Handling utført av + actions: + silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. are_you_sure: Er du sikker? assign_to_self: Tilegn til meg assigned: Tilegnet moderator @@ -478,6 +502,18 @@ unassign: Fjern tilegning unresolved: Uløst updated_at: Oppdatert + view_profile: Vis profil + roles: + add_new: Legg til rolle + assigned_users: + one: "%{count} bruker" + other: "%{count} brukere" + categories: + administration: Administrasjon + devops: DevOps + invites: Invitasjoner + privileges: + view_devops: DevOps rules: add_new: Legg til et filter delete: Slett @@ -486,92 +522,15 @@ empty: Ingen serverregler har blitt definert ennå. title: Server regler settings: - activity_api_enabled: - desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger - title: Publiser samlet statistikk om brukeraktiviteter - bootstrap_timeline_accounts: - desc_html: Separer flere brukernavn med komma. Kun lokale og ulåste kontoer vil kunne brukes. Dersom tomt er standarden alle lokale administratorer. - title: Standard følgere for nye brukere - contact_information: - email: Skriv en offentlig e-postadresse - username: Skriv brukernavn - custom_css: - desc_html: Modifiser utseendet med CSS lastet på hver side - title: Egendefinert CSS - default_noindex: - desc_html: Påvirker alle brukerne som ikke har justert denne innstillingen selv - title: Velg brukere som er ute av søkemotoren indeksering som standard domain_blocks: all: Til alle disabled: Til ingen - title: Vis domeneblokkeringer users: Til lokale brukere som er logget inn - domain_blocks_rationale: - title: Vis grunnlaget - hero: - desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde - title: Heltebilde - mascot: - desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten - title: Maskotbilde - peers_api_enabled: - desc_html: Domenenavn denne instansen har truffet på i fediverset - title: Publiser liste over oppdagede instanser - preview_sensitive_media: - desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt - title: Vis sensitive medier i OpenGraph-forhåndsvisninger - profile_directory: - desc_html: Tillat brukere å bli oppdagelige - title: Skru på profilmappen - registrations: - closed_message: - desc_html: Vises på forsiden når registreringer er lukket
      Du kan bruke HTML-tagger - title: Melding for lukket registrering - deletion: - desc_html: Tillat alle å slette sin konto - title: Åpne kontosletting - min_invite_role: - disabled: Ingen - title: Tillat invitasjoner fra - require_invite_text: - desc_html: Når registreringer krever manuell godkjenning, må du føye «Hvorfor vil du bli med?» tekstinput obligatoriske i stedet for valgfritt - title: Krev nye brukere for å oppgi en grunn for å delta registrations_mode: modes: approved: Godkjenning kreves for påmelding none: Ingen kan melde seg inn open: Hvem som helst kan melde seg inn - title: Registreringsmodus - show_known_fediverse_at_about_page: - desc_html: Begrenser den offentlige tidslinjen som er knyttet til landingssiden når den er deaktivert, og viser bare lokalt innhold - show_staff_badge: - desc_html: Vis personalemerke på brukersiden - title: Vis personalemerke - site_description: - desc_html: Vises som et avsnitt på forsiden og brukes som en meta-tagg. Du kan bruke HTML-tagger, spesielt <a> og <em>. - title: Nettstedsbeskrivelse - site_description_extended: - desc_html: Vises på side for utvidet informasjon.
      Du kan bruke HTML-tagger - title: Utvidet nettstedsinformasjon - site_short_description: - desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf. - title: Kort tjenerbeskrivelse - site_terms: - desc_html: Du kan skrive din egen personverns-strategi, bruksviklår og andre regler. Du kan bruke HTML tagger - title: Skreddersydde bruksvilkår - site_title: Nettstedstittel - thumbnail: - desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales - title: Miniatyrbilde for instans - timeline_preview: - desc_html: Vis offentlig tidslinje på landingssiden - title: Forhandsvis tidslinjen - title: Nettstedsinnstillinger - trendable_by_default: - desc_html: Påvirker hashtags som ikke har blitt nektet tidligere - title: Tillat hashtags for trend uten foregående vurdering - trends: - title: Trendende emneknagger site_uploads: delete: Slett den opplastede filen destroyed_msg: Vellykket sletting av sideopplasting! @@ -583,6 +542,9 @@ no_status_selected: Ingen statuser ble endret da ingen ble valgt title: Kontostatuser with_media: Med media + strikes: + actions: + silence: "%{name} begrenset %{target}s konto" system_checks: database_schema_check: message_html: Det venter på databaseoverføringer. Vennligst kjør disse for å sikre at applikasjonen oppfører seg som forventet @@ -596,6 +558,9 @@ add_new: Legg til ny delete: Slett admin_mailer: + new_appeal: + actions: + silence: for å begrense deres konto new_pending_account: body: Detaljer om den nye kontoen er nedenfor. Du kan godkjenne eller avvise denne søknaden. subject: Ny konto opp til vurdering på %{instance} (%{username}) @@ -618,7 +583,7 @@ body: Mastodon er oversatt av frivillige. guide_link_text: Alle kan bidra. sensitive_content: Sensitivt innhold - toot_layout: Tut-utseende + toot_layout: Innleggsoppsett application_mailer: notification_preferences: Endre E-postinnstillingene salutation: "%{name}," @@ -629,16 +594,12 @@ applications: created: Søknaden ble vellykket oppretttet destroyed: Søknaden ble vellykket slettet - invalid_url: Den oppgitte URLen er ugyldig regenerate_token: Regenerer tilgangsnøkkel token_regenerated: Tilgangsnøkkel vellykket regenerert warning: Vær veldig forsiktig med denne data. Aldri del den med noen! your_token: Din tilgangsnøkkel auth: - apply_for_account: Be om en invitasjon change_password: Passord - checkbox_agreement_html: Jeg godtar tjenerens regler og bruksvilkår - checkbox_agreement_without_rules_html: Jeg godtar bruksvilkårene delete_account: Slett konto delete_account_html: Hvis du ønsker å slette kontoen din, kan du gå hit. Du vil bli spurt om bekreftelse. description: @@ -674,7 +635,7 @@ confirming: Venter på at e-postbekreftelsen er fullført. pending: Søknaden din avventer gjennomgang av styret vårt. Dette kan ta litt tid. Du vil motta en E-post dersom søknaden din blir godkjent. redirecting_to: Kontoen din er inaktiv fordi den for øyeblikket omdirigerer til %{acct}. - trouble_logging_in: Har du problemer med å logge på? + view_strikes: Vis tidligere advarsler mot kontoen din use_security_key: Bruk sikkerhetsnøkkel authorize_follow: already_following: Du følger allerede denne kontoen @@ -727,10 +688,11 @@ more_details_html: For mere detaljer, se privatlivsretningslinjene. username_available: Brukernavnet ditt vil bli gjort tilgjengelig igjen username_unavailable: Brukernavnet ditt vil forbli utilgjengelig - directories: - directory: Profilmappe - explanation: Oppdag brukere basert på deres interesser - explore_mastodon: Utforsk %{title} + disputes: + strikes: + appeal_approved: Denne advarselen ble anket og er ikke lenger gyldig + title_actions: + silence: Begrensning av konto domain_validator: invalid_domain: er ikke et gyldig domenenavn errors: @@ -768,6 +730,8 @@ storage: Medialagring featured_tags: add_new: Legg til ny + errors: + limit: Du har allerede fremhevet det maksimale antal hashtags hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter." filters: contexts: @@ -785,9 +749,6 @@ new: title: Legg til nytt filter footer: - developers: Utviklere - more: Mer… - resources: Ressurser trending_now: Trender nå generic: all: Alle @@ -801,6 +762,8 @@ one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til other: Noe er ikke helt riktig ennå. Det er ennå %{count} feil å rette på imports: + errors: + over_rows_processing_limit: inneholder flere enn %{count} rader modes: merge: Slå sammen overwrite: Overskriv @@ -813,7 +776,6 @@ following: Følgeliste muting: Dempeliste upload: Opplastning - in_memoriam_html: Til minne. invites: delete: Deaktiver expired: Utløpt @@ -885,14 +847,6 @@ carry_mutes_over_text: Denne brukeren flyttet fra %{acct}, som du hadde dempet. copy_account_note_text: 'Denne brukeren flyttet fra %{acct}, her var dine tidligere notater om dem:' notification_mailer: - digest: - action: Vis alle varslinger - body: Her er en kort oppsummering av hva du har gått glipp av siden du sist logget inn den %{since} - mention: "%{name} nevnte deg i:" - new_followers_summary: - one: I tillegg har du fått en ny følger mens du var borte. Hurra! - other: I tillegg har du har fått %{count} nye følgere mens du var borte! Imponerende! - title: I ditt fravær… favourite: body: 'Statusen din ble likt av %{name}:' subject: "%{name} likte statusen din" @@ -962,7 +916,7 @@ public_timelines: Offentlige tidslinjer reactions: errors: - limit_reached: Grensen for forskjellige reaksjoner nådd + limit_reached: Grensen for ulike reaksjoner nådd unrecognized_emoji: er ikke en gjenkjent emoji relationships: activity: Kontoaktivitet @@ -982,25 +936,14 @@ remove_selected_follows: Avfølg de valgte brukerne status: Kontostatus remote_follow: - acct: Tast inn brukernavn@domene som du vil følge fra missing_resource: Kunne ikke finne URLen for din konto - no_account_html: Har du ikke en konto? Da kan du lage en konto her - proceed: Fortsett med følging - prompt: 'Du vil følge:' - reason_html: "Hvorfor dette trinnet er nødvendig?%{instance} er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først." - remote_interaction: - favourite: - proceed: Fortsett til likingen - prompt: 'Du ønsker å like denne tuten:' - reblog: - proceed: Fortsett til fremhevingen - prompt: 'Du ønsker å fremheve denne tuten:' - reply: - proceed: Fortsett til svaret - prompt: 'Du ønsker å svare på denne tuten:' + rss: + descriptions: + account: Offentlige innlegg fra @%{acct} + tag: 'Offentlige innlegg merket med #%{hashtag}' scheduled_statuses: over_daily_limit: Du har overskredet grensen på %{limit} planlagte tuter for den dagen - over_total_limit: Du har overskredet grensen på %{limit} planlagte tuter + over_total_limit: Du har overskredet grensen på %{limit} planlagte innlegg too_soon: Den planlagte datoen må være i fremtiden sessions: activity: Siste aktivitet @@ -1031,7 +974,7 @@ adobe_air: Adobe Air android: Android blackberry: BlackBerry - chrome_os: Chrome OS + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1063,6 +1006,8 @@ preferences: Innstillinger profile: Profil relationships: Følginger og følgere + statuses_cleanup: Automatisert sletting av innlegg + strikes: Modereringsadvarsler two_factor_authentication: Tofaktorautentisering webauthn_authentication: Sikkerhetsnøkler statuses: @@ -1079,13 +1024,17 @@ other: "%{count} videoer" boosted_from_html: Boostet fra %{acct_link} content_warning: 'Innholdsadvarsel: %{warning}' + disallowed_hashtags: + one: 'inneholdt en ikke tillatt hashtag: %{tags}' + other: 'inneholdt de ikke tillatte hashtaggene: %{tags}' + edited_at_html: Redigert %{date} errors: in_reply_not_found: Posten du prøver å svare ser ikke ut til eksisterer. open_in_web: Åpne i nettleser - over_character_limit: grense på %{max} tegn overskredet + over_character_limit: grensen på %{max} tegn overskredet pin_errors: direct: Innlegg som bare er synlige for nevnte brukere kan ikke festes - limit: Du har allerede festet det maksimale antall tuter + limit: Du har allerede festet det maksimale antall innlegg ownership: Kun egne tuter kan festes reblog: En fremheving kan ikke festes poll: @@ -1110,95 +1059,29 @@ public_long: Synlig for alle unlisted: Uoppført unlisted_long: Synlig for alle, men ikke på offentlige tidslinjer + statuses_cleanup: + enabled: Slett gamle innlegg automatisk + enabled_hint: Sletter innleggene dine automatisk når de oppnår en angitt alder, med mindre de samsvarer med ett av unntakene nedenfor + exceptions: Unntak + min_age: + '1209600': 2 uker + '15778476': 6 måneder + '2629746': 1 måned + '31556952': 1 år + '5259492': 2 måneder + '604800': 1 uke + '63113904': 2 år + '7889238': 3 måneder + min_age_label: Terskel for alder stream_entries: pinned: Festet tut reblogged: fremhevde sensitive_content: Følsomt innhold + strikes: + errors: + too_late: Det er for sent å klage på denne advarselen tags: does_not_match_previous_name: samsvarer ikke med det forrige navnet - terms: - body_html: | -

      Privatlivsretningslinjer

      -

      Hva slags informasjon samler vi inn?

      - -
        -
      • Grunnleggende kontoinformasjon: Dersom du registrerer deg på denne tjeneren, vil du kanskje bli spurt om å skrive inn et brukernavn, en E-postadresse, og et passord. Du kan også skrive inn ytterligere profilinformasjon som f.eks. et visningsnavn og selvbiografi, og laste opp et profilbilde og toppfeltbilde. Brukernavnet, visningsnavnet, selvbiografien, profilbildet, og toppfeltbildet blir alltid vist offentlig.
      • -
      • Innlegg, følging, og annen offentlig informasjon: Listen over folk du følger blir vist offentlig, det samme gjelder for følgerne dine. Når du sender inn en melding, blir datoen og tidspunktet lagret såvel som programmet du sendte inn meldingen ifra. Meldinger kan inneholde mediavedlegg, som f.eks. bilder og videoer. Offentlige og uoppførte innlegg er offentlig tilgjengelige. Når du viser frem et innlegg på profilen din, er det også offentlig tilgjengelig informasjon. Dinne innlegg blir levert til dine følgere, og i noen tilfeller betyr det at blir levert til forskjellige tjenere og at kopier blir lagret der. Når du sletter innlegg, blir også det levert til dine følgere. Det å fremheve eller like et annet innlegg er alltid offentlig.
      • -
      • Direkteinnlegg og innlegg som kun er for følgere: Alle innlegg er lagret og behandlet på tjeneren. Innlegg som kun er for følgere, blir levert til dine følgere, og direkteinnlegg leveres kun til brukere som er nevnt i dem. I noen tilfeller betyr det at de blir levert til forskjellige tjenere og at kopier blir lagret der. Vi gjør et forsøk i god sportsånd for å begrense tilgangen til disse innleggene til kun autoriserte personer, men andre tjenere kan mislykkes med sådan. Derfor er det viktig å gå i gjennom tjenerne som følgerne dine hører til i. I innstillingene kan du veksle på en innstilling for å godkjenne og avslå nye følgere manuelt. Vennligst ha i tankene at operatørene til tjeneren og enhver mottakende tjener kan se slike meldinger, og at mottakere kan ta skjermklipp av, kopiere, eller på annet vis dele dem videre. Ikke del noe farlig informasjon over Mastodon.
      • -
      • IP-er og andre metadata: Når du logger på, lagrer vi IP-adressen som du logget deg på fra, såvel som navnet til nettleserprogrammet ditt. Du kan gå gjennom og tilbakekalle alle påloggede økter i innstillingene. Den seneste IP-adressen du brukte, blir lagret i opptil 12 måneder. Vi vil kanskje også holde på tjenerloggføringer som inkluderer IP-adressen til alle forespørsler til tjeneren vår.
      • -
      - -
      - -

      Hva bruker vi informasjonen din til?

      - -

      Hva som helst av informasjonen som vi samler inn fra deg, kan bli brukt på de følgende måtene:

      - -
        -
      • Til å levere grunnfunksjonaliteten til Mastodon. Du kan bare samhandle med andre folks innhold og legge ut ditt eget innhold når du er logget på. For eksempel kan du følge andre folk for å se deres kombinerte innlegg i din egen personliggjorte hjemmetidslinje.
      • -
      • Til å bistå i moderasjonen av samfunnet, for eksempel å sammenligne IP-adressen din med andre andre kjente adresser for å avgjøre saker om bannlysningsunngåelse eller andre regelbrudd.
      • -
      • E-postadressen du oppgir kan bli brukt til å sende deg informasjon, varsler om at andre folk samhandler med innholdet ditt eller sender deg meldinger, og å svare på brukerstøttespørsmål, og/eller andre forespørsler eller spørsmål.
      • -
      - -
      - -

      Hvordan beskytter vi informasjonen din?

      - -

      Vi implementer en rekke sikkerhetstiltak for å holde på sikkerheten til din personlige informasjon når du skriver inn, sender inn, eller besøker din personlige informasjon. Blant annet er din nettleserøkt, såvel som trafikken mellom dine apper og API-er, sikret med SSL, og passordet ditt er saltet med en kraftig énveisalgoritme. Du kan skru på 2-trinnsinnlogging for å sikre tilgangen til kontoen din ytterligere.

      - -
      - -

      Hva er våre databeholdingsretningslinjer?

      - -

      Vi vil gjøre en innsats i god sportsånd for å

      - -
        -
      • Beholde tjenerloggføringer som inneholder IP-adressen til alle forespørsler til denne tjeneren, dersom det blir loggført i det hele tatt, i ikke mer enn 90 dager.
      • -
      • Beholde IP-adressene som er forbundet med registrerte brukere i ikke mer enn 12 måneder.
      • -
      - -

      Du kan be om og laste ned et arkiv av innholdet ditt, inkludert dine innlegg, media, mediavedlegg, profilbilde, og toppfeltbilde.

      - -

      Du kan ugjenkallelig slette kontoen til enhver tid.

      - -
      - -

      Bruker vi infokapsler?

      - -

      Ja. Infokapsler er små filer som et nettsted eller dens tjenesteleverandør overfører til harddisken på datamaskinen din gjennom nettleseren din (dersom du tillater dette). Disse infokapslene lar nettstedet kjenne igjen nettleseren din og, dersom du har en registrert konto, assosiere den med din registrerte konto.

      - -

      Vi benytter infokapsler for å forstå og lagre dinne innstillinger til fremtidige besøk.

      - -
      - -

      Forteller vi om noe informasjon til utenforstående parter?

      - -

      Vi hverken selger, bytter, eller på andre måter overfører din personlig identifiserbare informasjon til utenforstående parter. Dette inkluderer ikke tredjeparter som vi stoler på og som hjelper oss med å drifte nettstedet vårt, drifte våre forretninger, eller å yte tjenester til deg, så lenge disse partene sier seg enige i å holde denne informasjonen hemmelig. Vi kan også frigi informasjonen vår dersom vi mener et frigiving er passende for å møte loven, handle i tråd med vår nettstedsretningslinjer, eller å beskytte vår eller andres rettigheter, eiendom, eller trygghet.

      - -

      Ditt offentlige innhold kan bli lastet ned av andre tjenere i nettverket. Dine offentlige innlegg og innlegg som kun er for følgere blir levert til tjenerne der følgerne dine holder til, og direktemeldinger blir levert il mottakernes tjenere, i den grad de følgerne eller mottakerne holder på en annen tjener enn denne.

      - -

      Når du gir et program autorisasjon til å bruke kontoen din, avhengig av omfanget av tillatelser som du tillater, kan den få tilgang til din offentlige profilinformasjon, din følgingsliste, dine følgere, dine lister, alle dine innlegg, og dine likinger. Programmer kan aldri få tilgang til E-postadressen eller passordet ditt.

      - -
      - -

      Nettstedsbruk av barn

      - -

      Dersom denne tjeneren er i EU eller EØS: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier GDPR (General Data Protection Regulation) at du ikke kan bruke dette nettstedet.

      - -

      Dersom denne tjeneren er i USA: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier COPPA (Children's Online Privacy Protection Act) at du ikke kan bruke dette nettstedet.

      - -

      Lovmessige krav kan være forskjellige dersom denne tjeneren befinner seg i en annen jurisdiksjon.

      - -
      - -

      Endringer i våre privatlivsretningslinjer

      - -

      Dersom vi bestemmer oss for å endre våre privatlivsretningslinjer, vil vi legge ut endringene på denne siden.

      - -

      Dette dokumentet er lisensiert under CC BY-SA. Den engelske originalversjonen ble sist oppdatert den 7. mars 2018. Den norske oversettelsen ble sist oppdatert den 13. desember 2019.

      - -

      Opprinnelig modifisert utifra Discourse sine privatlivsretningslinjer.

      - title: "%{instance} Personvern og villkår for bruk av nettstedet" themes: contrast: Mastodon (Høykontrast) default: Mastodon @@ -1207,6 +1090,7 @@ formats: default: "%-d. %b %Y, %H:%M" month: "%b %Y" + time: "%H:%M" two_factor_authentication: add: Legg til disable: Skru av @@ -1223,36 +1107,46 @@ recovery_instructions_html: Hvis du skulle miste tilgang til telefonen din, kan du bruke en av gjenopprettingskodene nedenfor til å gjenopprette tilgang til din konto. Oppbevar gjenopprettingskodene sikkert, for eksempel ved å skrive dem ut og gjemme dem på et lurt sted bare du vet om. webauthn: Sikkerhetsnøkler user_mailer: + appeal_approved: + action: Gå til kontoen din backup_ready: explanation: Du ba om en fullstendig sikkerhetskopi av Mastodon-kontoen din. Den er nå klar for nedlasting! subject: Arkivet ditt er klart til å lastes ned + suspicious_sign_in: + change_password: endre passord + details: 'Her er detaljer om påloggingen:' + explanation: Vi har oppdaget en pålogging til din konto fra en ny IP-adresse. + further_actions_html: Hvis dette ikke var deg, anbefaler vi at du %{action} umiddelbart og aktiverer tofaktorautentisering for å holde kontoen din sikker. + title: En ny pålogging warning: + categories: + spam: Søppelpost + reason: 'Årsak:' + statuses: 'Innlegg angitt:' subject: + delete_statuses: Dine innlegg på %{acct} har blitt fjernet disable: Kontoen din, %{acct}, har blitt fryst + mark_statuses_as_sensitive: Dine innlegg på %{acct} har blitt merket som sensitivt innhold none: Advarsel for %{acct} + sensitive: Dine innlegg på %{acct} vil bli merket som sensitive fra nå silence: Kontoen din, %{acct}, har blitt begrenset suspend: Kontoen din, %{acct}, har blitt suspendert title: + delete_statuses: Innlegg fjernet disable: Kontoen er fryst + mark_statuses_as_sensitive: Innlegg markert som sensitive none: Advarsel + sensitive: Konto markert som sensitiv silence: Kontoen er begrenset suspend: Kontoen er suspendert welcome: edit_profile_action: Sett opp profil - edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen. + edit_profile_step: Du kan tilpasse profilen din ved å laste opp et profilbilde, endre visningsnavnet ditt og mer. Du kan velge at nye følgere må godkjennes av deg før de får lov til å følge deg. explanation: Her er noen tips for å komme i gang final_action: Start postingen - final_step: 'Start å poste! Selv uten følgere kan dine offentlige meldinger bli sett av andre, for eksempel på den lokale tidslinjen og i emneknagger. Du kan introdusere deg selv ved å bruke emneknaggen #introductions.' full_handle: Ditt fullstendige brukernavn full_handle_hint: Dette er hva du forteller venner slik at de kan sende melding eller følge deg fra en annen instanse. - review_preferences_action: Endre innstillinger - review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner. subject: Velkommen til Mastodon - tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett. - tip_following: Du følger din tjeners administrator(er) som standard. For å finne mer interessante personer, sjekk den lokale og forente tidslinjen. - tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer! - tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter! - tips: Tips title: Velkommen ombord, %{name}! users: follow_limit_reached: Du kan ikke følge mer enn %{limit} personer @@ -1266,9 +1160,11 @@ webauthn_credentials: add: Legg til ny sikkerhetsnøkkel create: + error: Det oppstod et problem med å legge til sikkerhetsnøkkelen. Prøv igjen. success: Sikkerhetsnøkkelen din ble vellykket lagt til. delete: Slett delete_confirmation: Er du sikker på at du vil slette denne sikkerhetsnøkkelen? + description_html: Dersom du aktiverer sikkerhetsnøkkelautentisering, vil innlogging kreve at du bruker en av sikkerhetsnøklene dine. destroy: error: Det oppsto et problem med å slette sikkerhetsnøkkelen. Prøv igjen. success: Sikkerhetsnøkkelen din ble vellykket slettet. diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 2a194350d8c325..d6bf5a5314cc84 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -1,83 +1,26 @@ --- oc: about: - about_hashtag_html: Vaquí los estatuts publics ligats a #%{hashtag}. Podètz interagir amb eles s’avètz un compte ont que siasque sul fediverse. about_mastodon_html: Mastodon es un malhum social bastit amb de protocòls liures e gratuits. Es descentralizat coma los corrièls. - about_this: A prepaus d’aquesta instància - active_count_after: actius - active_footnote: Utilizaire actius per mes (UAM) - administered_by: 'Administrat per :' - api: API - apps: Aplicacions per mobil - apps_platforms: Utilizatz Mastodon d‘iOS, Android o d’autras plataforma estant - browse_directory: Navigatz per l’annuari de perfil e filtratz segon çò qu’aimatz - browse_local_posts: Percórrer un flux en dirècte de las publicacions publicas d’aqueste servidor - browse_public_posts: Navigatz pel flux public a Mastodon - contact: Contacte contact_missing: Pas parametrat contact_unavailable: Pas disponible - discover_users: Descobrissètz de nòvas personas - documentation: Documentacion - federation_hint_html: Amb un compte sus %{instance} poiretz sègre de personas de qualque siasque servidor Mastodon e encara mai. - get_apps: Ensajatz una aplicacion mobil hosted_on: Mastodon albergat sus %{domain} - learn_more: Ne saber mai - privacy_policy: Politica de confidencialitat - rules: Règlas del servidor - see_whats_happening: Agachatz çò qu’arriba - server_stats: 'Estatisticas del servidor :' - source_code: Còdi font - status_count_after: - one: estatut - other: estatuts - status_count_before: qu’an escrich - tagline: Seguètz d’amics e trobatz-ne de nòus - terms: Condicions d’utilizacion - unavailable_content: Contengut pas disponible - unavailable_content_description: - domain: Servidor - reason: 'Motiu :' - rejecting_media: 'Los fichièrs mèdias d’aquestes servidors estant seràn pas tractats o gardats e pas cap de miniatura serà pas mostrada, demanda de clicar sul fichièr original :' - rejecting_media_title: Mèdias filtrats - silenced_title: Servidors muts - suspended_title: Servidors suspenduts - user_count_after: - one: utilizaire - other: utilizaires - user_count_before: Ostal de - what_is_mastodon: Qu’es Mastodon ? + title: A prepaus accounts: - choices_html: 'Recomandacions de %{name} :' - endorsements_hint: Podètz recomandar personas que seguètz a partir de l’interfàcia web, apreissaràn aquí. - featured_tags_hint: Podètz indicar d’etiquetas que mostrarem aquí. follow: Sègre followers: one: Seguidor other: Seguidors following: Abonaments - joined: Arribèt en %{date} last_active: darrièra activitat link_verified_on: La proprietat d’aqueste ligam foguèt verificada lo %{date} - media: Mèdias - moved_html: "%{name} a mudat a %{new_profile_link} :" - network_hidden: Aquesta informacion es pas disponibla nothing_here: I a pas res aquí ! - people_followed_by: Lo monde que %{name} sèc - people_who_follow: Lo monde que sègon %{name} pin_errors: following: Vos cal d’en primièr sègre las personas que volètz promòure posts: one: Tut other: Tuts posts_tab_heading: Tuts - posts_with_replies: Tuts e responsas - roles: - admin: Admin - bot: Robòt - group: Grop - moderator: Moderador - unavailable: Perfil indisponible - unfollow: Quitar de sègre admin: account_actions: action: Realizar una accion @@ -93,12 +36,14 @@ oc: avatar: Avatar by_domain: Domeni change_email: - changed_msg: Adreça corrèctament cambiada ! current_email: Adreça actuala label: Cambiar d’adreça new_email: Novèla adreça submit: Cambiar l’adreça title: Cambiar l’adreça a %{username} + change_role: + label: Cambiar lo ròtle + no_role: Cap de ròtle confirm: Confirmar confirmed: Confirmat confirming: Confirmacion @@ -161,12 +106,7 @@ oc: reset: Reïnicializar reset_password: Reïnicializar lo senhal resubscribe: Se tornar abonar - role: Autorizacions - roles: - admin: Administrator - moderator: Moderador - staff: Personnal - user: Uitlizaire + role: Ròtle search: Cercar search_same_ip: Autres utilizaires amb la meteissa IP security_measures: @@ -182,6 +122,7 @@ oc: silenced: Rescondut statuses: Estatuts subscribe: S’abonar + suspend: Suspendre suspended: Suspendut title: Comptes unconfirmed_email: Adreça pas confirmada @@ -225,7 +166,6 @@ oc: update_announcement: Actualizar l’anóncia update_custom_emoji: Actualizar l’emoji personalizat update_status: Actualizar l’estatut - deleted_status: "(estatut suprimit)" empty: Cap de jornal pas trobat. filter_by_action: Filtrar per accion filter_by_user: Filtrar per utilizaire @@ -264,6 +204,7 @@ oc: enable: Activar enabled: Activat enabled_msg: Aqueste emoji es ben activat + image_hint: PNG o GIF fins a %{size} list: Listar listed: Listat new: @@ -334,7 +275,11 @@ oc: language: Per lenga status: Estat instances: + availability: + title: Disponibilitat by_domain: Domeni + dashboard: + instance_languages_dimension: Lengas principalas delivery_available: Liurason disponibla moderation: all: Totas @@ -427,95 +372,39 @@ oc: rules: title: Règlas del servidor settings: - activity_api_enabled: - desc_html: Nombre d’estatuts publicats, d’utilizaires actius e de novèlas inscripcions en rapòrt setmanièr - title: Publicar las estatisticas totalas de l’activitat dels utilizaires - bootstrap_timeline_accounts: - desc_html: Separatz los noms d’utilizaire amb de virgula. Pas que los comptes locals e pas clavats foncionaràn. Se lo camp es void los admins seràn selecionats. - title: Per defaut los nòuvenguts sègon - contact_information: - email: Picatz una adreça de corrièl - username: Picatz un nom d’utilizaire - custom_css: - desc_html: Modificar l’estil amb una fuèlha CSS cargada sus cada pagina - title: CSS personalizada - default_noindex: - desc_html: Tòca totes los utilizaires qu’an pas cambiat lo paramètre + about: + title: A prepaus + appearance: + title: Aparéncia + discovery: + follow_recommendations: Recomandacions d’abonaments + profile_directory: Annuari de perfils + public_timelines: Fluxes d’actualitats publics + title: Descobèrta + trends: Tendéncias domain_blocks: all: A tot lo monde disabled: A degun - title: Mostrar los blocatges de domeni users: Als utilizaires locals connectats - domain_blocks_rationale: - title: Mostrar lo rasonament - hero: - desc_html: Mostrat en primièra pagina. Almens 600x100px recomandat. S’es pas configurat l’imatge del servidor serà mostrat - title: Imatge de l’eròi - mascot: - desc_html: Mostrat sus mantun pagina. Almens 293×205px recomandat. S’es pas configurat, mostrarem la mascòta per defaut - title: Imatge de la mascòta - peers_api_enabled: - desc_html: Noms de domeni qu’aqueste servidor a trobats pel fediverse - title: Publicar la lista dels servidors coneguts - preview_sensitive_media: - desc_html: Los apercebuts dels ligams sus los autres sites mostraràn una vinheta encara que lo mèdia siá marcat coma sensible - title: Mostrar los mèdias sensibles dins los apercebuts OpenGraph - profile_directory: - desc_html: Permet als utilizaires d’èsser trobats - title: Activar l’annuari de perfils - registrations: - closed_message: - desc_html: Mostrat sus las pagina d’acuèlh quand las inscripcions son tampadas.
      Podètz utilizar de balisas HTML - title: Messatge de barradura de las inscripcions - deletion: - desc_html: Autorizar lo monde a suprimir lor compte - title: Possibilitat de suprimir lo compte - min_invite_role: - disabled: Degun - title: Autorizat amb invitacions registrations_mode: modes: approved: Validacion necessària per s’inscriure none: Degun pòt pas se marcar open: Tot lo monde se pòt marcar - title: Mòdes d’inscripcion - show_known_fediverse_at_about_page: - desc_html: Un còp activat mostrarà los tuts de totes los fediverse dins l’apercebut. Autrament mostrarà pas que los tuts locals. - title: Mostrar los fediverse coneguts dins l’apercebut del flux - show_staff_badge: - desc_html: Mostrar lo badge Personal sus la pagina de perfil - title: Mostrar lo badge personal - site_description: - desc_html: Paragraf d’introduccion sus la pagina d’acuèlh. Explicatz çò que fa diferent aqueste servidor Mastodon e tot çò qu’es important de dire. Podètz utilizare de balises HTML, en particular <a> e<em>. - title: Descripcion del servidor - site_description_extended: - desc_html: Un bon lòc per las règles de compòrtament e d’autras causas que fan venir vòstre servidor diferent. Podètz utilizar de balisas HTML - title: Descripcion espandida del site - site_short_description: - desc_html: Mostrat dins la barra laterala e dins las meta balisas. Explica çò qu’es Mastodon e perque aqueste servidor es especial en un solet paragraf. S’es void, serà garnit amb la descripcion del servidor. - title: Descripcion corta del servidor - site_terms: - desc_html: Afichada sus la pagina de las condicions d’utilizacion
      Podètz utilizar de balisas HTML - title: Politica de confidencialitat del site - site_title: Títol del servidor - thumbnail: - desc_html: Servís pels apercebuts via OpenGraph e las API. Talha de 1200x630px recomandada - title: Miniatura del servidor - timeline_preview: - desc_html: Mostrar lo flux public sus la pagina d’acuèlh - title: Apercebut flux public - title: Paramètres del site - trends: - title: Etiquetas tendéncia + title: Paramètres del servidor site_uploads: delete: Suprimir lo fichièr enviat statuses: + account: Autor + application: Aplicacion back_to_account: Tornar a la pagina Compte deleted: Suprimits + language: Lenga media: title: Mèdia no_status_selected: Cap d’estatut pas cambiat estant que cap èra pas seleccionat title: Estatuts del compte + visibility: Visibilitat with_media: Amb mèdia system_checks: rules_check: @@ -526,7 +415,10 @@ oc: updated_msg: Paramètres d’etiquetas corrèctament actualizats title: Administracion trends: + statuses: + title: Publicacions endavant tags: + current_score: Marca actuala %{score} dashboard: tag_languages_dimension: Lengas principalas tag_servers_dimension: Servidors principals @@ -535,6 +427,13 @@ oc: delete: Escafar edit_preset: Modificar lo tèxt predefinit d’avertiment title: Gerir los tèxtes predefinits + webhooks: + delete: Suprimir + disable: Desactivar + disabled: Desactivat + enable: Activar + enabled: Actiu + events: Eveniments admin_mailer: new_pending_account: body: Los detalhs del nòu compte son çai-jos. Podètz validar o regetar aquesta demanda. @@ -567,16 +466,12 @@ oc: applications: created: Aplicacion ben creada destroyed: Aplication corrcètament suprimida - invalid_url: L’URL donada es invalida regenerate_token: Tornar generar lo geton d’accès token_regenerated: Geton d’accès ben regenerat warning: Mèfi ! Agachatz de partejar aquela donada amb degun ! your_token: Vòstre geton d’accès auth: - apply_for_account: Demandar una invitacion change_password: Senhal - checkbox_agreement_html: Accepti las règlas del servidor e los tèrmes del servici - checkbox_agreement_without_rules_html: Soi d’acòrdi amb las condicions d’utilizacion delete_account: Suprimir lo compte delete_account_html: Se volètz suprimir vòstre compte, podètz o far aquí. Vos demandarem que confirmetz. description: @@ -585,11 +480,14 @@ oc: didnt_get_confirmation: Avètz pas recebut las instruccions de confirmacion ? forgot_password: Senhal oblidat ? invalid_reset_password_token: Lo geton de reïnicializacion es invalid o acabat. Tornatz demandar un geton se vos plai. + link_to_webauth: Utilizar un aparelh de claus de seguretat + log_in_with: Connexion amb login: Se connectar logout: Se desconnectar migrate_account: Mudar endacòm mai migrate_account_html: Se volètz mandar los visitors d’aqueste compte a un autre, podètz o configurar aquí. or_log_in_with: O autentificatz-vos amb + privacy_policy_agreement_html: Ai legit e accepti la politica de confidencialitat providers: cas: CAS saml: SAML @@ -603,7 +501,7 @@ oc: title: Configuracion status: account_status: Estat del compte - trouble_logging_in: Problèmas de connexion ? + functional: Vòstre compte es complètament foncional. use_security_key: Utilizar clau de seguretat authorize_follow: already_following: Seguètz ja aqueste compte @@ -653,10 +551,10 @@ oc: more_details_html: Per mai d’informacion, vejatz la politica de confidencialitat. username_available: Vòstre nom d’utilizaire serà disponible de nòu username_unavailable: Vòstre nom d’utilizaire demorarà pas disponible - directories: - directory: Annuari de perfils - explanation: Trobar d’utilizaires segon lor interèsses - explore_mastodon: Explorar %{title} + disputes: + strikes: + title_actions: + none: Avertiment domain_validator: invalid_domain: es pas un nom de domeni valid errors: @@ -704,20 +602,26 @@ oc: public: Flux public thread: Conversacions edit: + add_keyword: Apondre un mot clau + keywords: Mots clau title: Modificar lo filtre errors: invalid_context: Cap de contèxte o contèxte invalid fornit - invalid_irreversible: Lo filtratge irreversible fonciona pas qu’amb lo flux d’actualitat o en contèxte de notificacion index: delete: Suprimir empty: Avètz pas cap de filtre. + expires_in: Expira d’aquí %{distance} + expires_on: Expira lo %{date} + keywords: + one: "%{count} mot clau" + other: "%{count} mots clau" + statuses: + one: "%{count} publicacion" + other: "%{count} publicacions" title: Filtres new: title: Ajustar un nòu filtre footer: - developers: Desvolopaires - more: Mai… - resources: Ressorsas trending_now: Tendéncia del moment generic: all: Tot @@ -747,7 +651,6 @@ oc: following: Lista de monde que seguètz muting: Lista de monde que volètz pas legir upload: Importar - in_memoriam_html: En Memòria. invites: delete: Desactivar expired: Expirat @@ -792,6 +695,7 @@ oc: on_cooldown: Sètz en temps de recargament followers_count: Seguidors al moment de mudar incoming_migrations: Mudar d’un compte diferent + incoming_migrations_html: Per venir d’un autre compte cap a aqueste, vos cal d’en primièr crear un alias de compte. moved_msg: Vòstre compte manda ara a %{acct} e vòstres seguidors son desplaçats. not_redirecting: Vòstre compte manda pas enlòc pel moment. past_migrations: Migracions passadas @@ -805,14 +709,9 @@ oc: moderation: title: Moderacion notification_mailer: - digest: - action: Veire totas las notificacions - body: Trobatz aquí un resumit dels messatges qu’avètz mancats dempuèi vòstra darrièra visita lo %{since} - mention: "%{name} vos a mencionat dins :" - new_followers_summary: - one: Avètz un nòu seguidor dempuèi vòstra darrièra visita ! Ouà ! - other: Avètz %{count} nòus seguidors dempuèi vòstra darrièra visita ! Qué crane ! - title: Pendent vòstra abséncia… + admin: + sign_up: + subject: "%{name} se marquèt" favourite: body: "%{name} a mes vòstre estatut en favorit :" subject: "%{name} a mes vòstre estatut en favorit" @@ -831,12 +730,16 @@ oc: body: "%{name} vos a mencionat dins :" subject: "%{name} vos a mencionat" title: Novèla mencion + poll: + subject: Un sondatge de %{name} es terminat reblog: body: "%{name} a tornat partejar vòstre estatut :" subject: "%{name} a tornat partejar vòstre estatut" title: Novèl partatge status: subject: "%{name} ven de publicar" + update: + subject: "%{name} modifiquèt sa publicacion" notifications: email_events: Eveniments per las notificacions per corrièl email_events_hint: 'Seleccionatz los eveniments que volètz recebre :' @@ -868,6 +771,8 @@ oc: other: Autre posting_defaults: Valors per defaut de las publicacions public_timelines: Fluxes d’actualitats publics + privacy_policy: + title: Politica de confidencialitat reactions: errors: limit_reached: La limita de las reaccions diferentas es estada atenguda @@ -889,22 +794,9 @@ oc: remove_selected_follows: Quitar de sègre las personas seleccionadas status: Estat del compte remote_follow: - acct: Picatz vòstre utilizaire@domeni que que volètz utilizar per sègre aqueste utilizaire missing_resource: URL de redireccion pas trobada - no_account_html: Avètz pas cap de compte ? Podètz vos marcar aquí - proceed: Clicatz per sègre - prompt: 'Sètz per sègre :' - reason_html: "Perque aquesta etapa es necessària ?%{instance} es benlèu pas lo servidor ont vos marquèretz, doncas nos cal vos redirigir cap a vòstre prim servidor per començar." - remote_interaction: - favourite: - proceed: Contunhar per metre en favorit - prompt: 'Volètz metre en favorit aqueste tut :' - reblog: - proceed: Contunhar per repartejar - prompt: 'Volètz repartejar aqueste tut :' - reply: - proceed: Contunhar per respondre - prompt: 'Volètz respondre a aqueste tut :' + rss: + content_warning: 'Avís de contengut :' scheduled_statuses: over_daily_limit: Avètz passat la limita de %{limit} tuts programats per aquel jorn over_total_limit: Avètz passat la limita de %{limit} tuts programats @@ -914,7 +806,6 @@ oc: browser: Navigator browsers: alipay: Alipay - blackberry: Blackberry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -928,7 +819,6 @@ oc: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Session en cors description: "%{browser} sus %{platform}" @@ -937,8 +827,6 @@ oc: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux @@ -969,6 +857,7 @@ oc: preferences: Preferéncias profile: Perfil relationships: Abonaments e seguidors + statuses_cleanup: Supression auto de las publicacions two_factor_authentication: Autentificacion en dos temps webauthn_authentication: Claus de seguretat statuses: @@ -985,9 +874,13 @@ oc: other: "%{count} vidèos" boosted_from_html: Partejat de %{acct_link} content_warning: 'Avertiment de contengut : %{warning}' + default_language: Parièr que la lenga d’interfàcia disallowed_hashtags: one: 'conten una etiqueta desactivada : %{tags}' other: 'conten las etiquetas desactivadas : %{tags}' + edited_at_html: Modificat %{date} + errors: + in_reply_not_found: La publicacion que respondètz sembla pas mai exisitir. open_in_web: Dobrir sul web over_character_limit: limit de %{max} caractèrs passat pin_errors: @@ -1009,6 +902,7 @@ oc: sign_in_to_participate: Inscrivètz-vos per participar a la conversacion title: '%{name} : "%{quote}"' visibilities: + direct: Dirècte private: Seguidors solament private_long: Mostrar pas qu’als seguidors public: Public @@ -1017,109 +911,43 @@ oc: unlisted_long: Tot lo monde pòt veire mai serà pas visible sul flux public statuses_cleanup: enabled: Supression automatica de publicacions ancianas + enabled_hint: Suprimís automaticament vòstras publicacions quand correspondon al critèri d’atge causit, levat se correspondon tanben a las excepcions çai-jos + explanation: Perque la supression es una operacion costosa en ressorsa, es realizat doçament quand lo servidor es pas ocupat a quicòm mai. Per aquò, vòstras publicacions seràn benlèu pas suprimidas aprèp aver atengut lo critèri d’atge. + ignore_favs: Ignorar los favorits + ignore_reblogs: Ignorar los partatges + interaction_exceptions: Excepcions basadas sus las interaccions keep_direct: Gardar los messatges dirèctes + keep_direct_hint: Suprimís pas vòstres messatges dirèctes keep_media: Gardar las publicacions amb pèça-junta + keep_media_hint: Suprimís pas vòstras publicacions s’an de mèdias junts keep_pinned: Gardar las publicacions penjadas + keep_pinned_hint: Suprimís pas vòstras publicacions penjadas + keep_polls: Gardar los sondatges + keep_polls_hint: Suprimir pas vòstres sondatges + keep_self_bookmark: Gardar las publicacions que metèretz en favorit + keep_self_bookmark_hint: Suprimís pas vòstras publicacions se las avètz mesas en marcapaginas + keep_self_fav: Gardar las publicacions que metèretz en favorit + keep_self_fav_hint: Suprimís pas vòstras publicacions se las avètz mesas en favorits min_age: '1209600': 2 setmanas '15778476': 6 meses '2629746': 1 mes '31556952': 1 an '5259492': 2 meses - '604800': 1 week + '604800': 1 setmana '63113904': 2 ans '7889238': 3 meses + min_age_label: Sulhet d’ancianetat + min_favs: Gardar al mens las publicacion en favorit + min_favs_hint: Suprimís pas las publicacions qu’an recebut al mens aquesta quantitat de favorits. Daissar blanc per suprimir las publicacion quina quantitat de favorits qu’ajan + min_reblogs: Gardar las publicacions partejadas al mens + min_reblogs_hint: Suprimís pas vòstras publicacions qu’an agut aqueste nombre de partiment. Daissar blanc per suprimir las publicacions sens far cas als partiments stream_entries: pinned: Tut penjat reblogged: a partejat sensitive_content: Contengut sensible tags: does_not_match_previous_name: correspond pas al nom precedent - terms: - body_html: | -

      Politica de confidencialitat

      -

      Quinas informacions reculhèm ?

      - -
        -
      • Inforacions de basa del compte : se vos marcatz sus aqueste servidor, vos podèm demandar de picar un escais-nom, una adreça de corrièl e un senhal. Podètz tanben ajustar d’informacions de perfil addicionalas coma un nom de far veire, una biografia, un imatge de perfil e una banièra. L’escais-nom, lo nom d’afichatge, la biografia, l’imatge de perfil e la banièra son totjorn indicats per èsser vistes publicament.
      • -
      • Publicacions, abonaments e autras informacions publicas : La lista del monde que seguètz es visibla publicament, tot parièr per vòstres seguidors. Quand enviatz un messatge, la data e l’ora son gardats, l’aplicacion qu’avètz utilizada tanben. Los messatges pòdon conténer de mèdias juntats coma d’imatge e vidèos. Las publicacions publicas e pas listadas son disponiblas publicament. Quand penjatz una publicacion per vòstre perfil, aquò tanben es visible per tot lo monde. Vòstras publicacions son mandadas a vòstre seguidors, dins qualques cases aquò significa que passaràn per diferents servidors e seràn copiadas e gardadas sus aqueles servidors. Quand escafatz de publicacions, aquò es tanben mandat a vòstre seguidors. L’accion de partejar o d’ajustar als favorits una publicacion es totjorn quicòm de public.
      • -
      • Publicacions dirèctas e solament pels seguidors :
      • totas las publicacions son gardadas e tractadas pel servidor. Las publicacions pas que per vòstres seguidors son enviadas a vòstres seguidors e las personas mencionadas dedins, las publicacions dirèctas son pas qu’enviadas a las personas mencionadas. Dins qualques cases aquò significa que passaràn per diferents servidors, copiadas e gardadas sus eles. Ensagem de limitar l’accès a aquelas publicacions a monde autorizat, mas los demai servidors pòdon fracar a far parièr. A causa d’aquò es fòrça important de repassar los servidors d’apertenéncia de vòstres seguidors. Podètz activar una opcion per autorizar o regetar una demanda de seguiment dins los paramètres. Vos cal pas oblidar que’ls administrators dels servidors e dels servidors de recepcion pòdon veire aqueles messatges, e que’ls destinataris pòdon realizar de captura d’ecran, copiar e tornar partejar los messatges.Partegetz pas cap informacion perilhosa sus Mastodon
      • . -
      • Adreças IP e autras metadonadas : quand vos connectatz, enregistrem l’adreça IP qu’utilizatz per establir la connexion, e tanben lo nom de vòstre navigador. Totas las sessions de connexion son disponiblas per que las repassetz e tiretz dins los paramètres. Las darrièras adreças IP son salvagardas fins a 12 meses. Podèm tanben gardar de jornals d’audit del servidor que pòdon conténer las adreças IP de cada requèstas mandadas a nòstre servidor.
      • - -
      - -
      - -

      Qué fasèm de vòstras informacions ?

      - -

      Totas las informacions que collectem de vos pòdon servir dins los cases seguents :

      - -
        -
      • Per provesir la foncionament màger de Mastodon. Podètz pas qu’interagir amb lo contengut del monde e de vòstras publicacions quand sètz connectat. Per exemple, avètz la possibilitat de sègre de monde per veire lors publicacions amassadas dins vòstre flux d’actualitat personalizat.
      • -
      • Per ajudar la moderacion de la comunitat, per exemple en comparant vòstra adreça IP amb d’autras per determinar d’ensages de contornament de bandiment e d’autras violéncias.
      • -
      • Podèm utilizar l’adreça qu’avètz donada per vos enviar d’informacions e de notificacions que demandatz tocant de cambiaments dins los subjèctes del forum o en responsa a vòstre nom d’utilizaire, en responsa a una demanda, e/o tota autra question.
      • -
      - -
      - -

      Cossí protegèm vòstras informacions ?

      - -

      Apliquem tota una mena de mesuras de seguretat per manténer la fisança de vòstras informacions personalas quand las picatz, mandatz, o i accedètz. Entre aquelas, vòstre session de navigacion, coma lo trafic entre vòstra aplicacion e l’API, son securizats amb SSL e lo senhal es copat en tròces en emplegar un algorisme fòrt a sens unic. Podètz activar l’autentificacion en dos temps pels accèsses futurs a vòstre compte.

      -
      - -

      Quala es nòstra politica de conservacion de donadas ?

      - -

      Farem esfòrces per :

      - -
        -
      • Gardar los jornals del servidor que contenon las adreças IP de totas las demandas al servidor pas mai de 90 jorns.
      • -
      • Gardar las adreças IP ligadas als utilizaires e lors publicacions pas mai de 12 messes.
      • -
      - -

      Podètz demandar e telecargar vòstre archiu de contengut, amb vòstras publicacions, los mèdias enviats, l’imatge de perfil e l’imatge de bandièra.

      - -

      Podètz suprimir sens anullacion possibla vòstre compte quand volgatz.

      - -
      - - -

      Utilizem de cookies ?

      - -

      Òc-ben. Los cookies son de pichons fichièrs qu’un site o sos provesidors de servicis plaçan dins lo disc dur de vòstre ordenador via lo navigator Web (Se los acceptatz). Aqueles cookies permeton al site de reconéisser vòstre navigator e se tenètz un compte enregistrat de l’associar a vòstre compte.

      - -

      Empleguem de cookies per comprendre e enregistrar vòstras preferéncias per vòstras visitas venentas

      - -
      - -

      Divulguem d’informacions a de tèrces ?

      - - -

      Vendèm pas, comercem o qualque transferiment que siasque a de tèrces vòstras informacions personalas identificablas. Aquò inclutz pas los tèrces partits de confisança que nos assiston a menar nòstre site, menar nòstre afar o vos servir, baste que son d’acòrd per gardar aquelas informacions confidencialas. Pòt tanben arribar que liberèssem vòstras informacions quand cresèm qu’es apropriat d’o far per se sometre a la lei, per refortir nòstras politicas, o per protegir los dreches, proprietats o seguritat de qualqu’un o de nosautres.

      - -

      Vòstre contengut public pòt èsser telecargat per los autres servidors del malhum. Vòstras publicacions publicas e las dels seguidors solament son enviadas als servidors qu’albergan vòstres seguidors, los messatges dirèctes son mandats als servidors dels destinaris se son pas de vòstra instància.

      - -

      Quand autorizatz una aplicacion d’utilizar vòstre compte, segon l’encastre que volètz permetre, pòt accedir a l’informacion de vòstre perfil public, vòstra lista d’abonaments, vòstres seguidors, vòstras listas, totas vòstras publicacions e vòstres favorits. Las aplicacions pòdon pas jamai accedir a vòstra adreça electronica o vòstre senhal.

      - -
      - -

      Utilizacion del site pels enfants

      - -

      S’aqueste servidor es en EU o la EEA : òstre site, nòstres produches e servicis son totas a destinacion de monde de mai de 16 ans. S’avètz mens de 16 ans, per cumplir lo RGPD (Reglament General de Proteccion de Donadas) utilizetz pas aqueste site.

      - -

      S’aqueste servidor se tròba en los Estats Units : nòstre site, nòstres produches e servicis son totas a destinacion de monde de mai de 13 ans. S’avètz mens de 13 ans, per acontentar las exigéncias del COPPA (Children's Online Privacy Protection Act) utilizetz pas aqueste site.

      - -

      Las exigéncias legalas pòdon èsser diferentas se lo servidor es en una autra juridiccion

      - -
      - -

      Cambiament dins nòstra politica de confidencialitat

      - -

      Se decidèm de cambiar nòstra politica de confidencialitat, publicarem los cambiaments sus aquesta pagina.

      - -

      Aqueste document es jos licéncia CC-BY-SA. Darrièra mesa a jorn lo 4 de març de 2018

      - -

      Prima adaptacion de la politica de confidencialitat de Discourse.

      - title: Condicions d’utilizacion e politica de confidencialitat de %{instance} themes: contrast: Mastodon (Fòrt contrast) default: Mastodon (Escur) @@ -1138,43 +966,39 @@ oc: generate_recovery_codes: Generar los còdis de recuperacion lost_recovery_codes: Los còdi de recuperacion vos permeton d’accedir a vòstre compte se perdètz vòstre mobil. S’avètz perdut vòstres còdis de recuperacion los podètz tornar generar aquí. Los ancians còdis seràn pas mai valides. methods: Metòde en dos temps + otp: Aplicacion d’autentificacion recovery_codes: Salvar los còdis de recuperacion recovery_codes_regenerated: Los còdis de recuperacion son ben estats tornats generar recovery_instructions_html: Se vos arriba de perdre vòstre mobil, podètz utilizar un dels còdis de recuperacion cai-jos per poder tornar accedir a vòstre compte. Gardatz los còdis en seguretat, per exemple, imprimissètz los e gardatz los amb vòstres documents importants. webauthn: Claus de seguretat user_mailer: + appeal_approved: + action: Anatz al vòstre compte backup_ready: explanation: Avètz demandat una salvagarda complèta de vòstre compte Mastodon. Es prèsta per telecargament ! subject: Vòstre archiu es prèst per telecargament title: Archiu per emportar warning: reason: 'Motiu :' + statuses: 'Publicacion citada :' subject: disable: Vòstre compte %{acct} es gelat none: Avertiment per %{acct} silence: Vòstre compte %{acct} es limitat suspend: Vòstre compte %{acct} es suspendut title: + delete_statuses: Publicacion levada disable: Compte gelat none: Avertiment silence: Compte limitat suspend: Compte suspendut welcome: edit_profile_action: Configuracion del perfil - edit_profile_step: Podètz personalizar lo perfil en mandar un avatard, cambiar l’escais-nom e mai. Se volètz repassar las demandas d’abonaments abans que los nòus seguidors pòscan veire vòstre perfil, podètz clavar vòstre compte. explanation: Vaquí qualques astúcias per vos preparar final_action: Començar de publicar - final_step: 'Començatz de publicar ! Quitament s’avètz pas de seguidors los autres pòdon veire vòstres messatges publics, per exemple pel flux d’actualitat local e per las etiquetas. Benlèu que volètz vos presentar amb l’etiquetas #introductions.' full_handle: Vòstre escais-nom complèt full_handle_hint: Es aquò que vos cal donar a vòstres amics per que pòscan vos escriure o sègre a partir d’un autre servidor. - review_preferences_action: Cambiar las preferéncias - review_preferences_step: Pensatz de configurar vòstras preferéncias, tal coma los corrièls que volètz recebrer o lo nivèl de confidencialitat de vòstres tuts per defaut. O se l’animacion vos dòna pas enveja de rendre, podètz activar la lectura automatica dels GIF. subject: Benvengut a Mastodon - tip_federated_timeline: Lo flux d’actualitat federat es una vista generala del malhum Mastodon. Mas aquò inclutz solament lo monde que vòstres vesins sègon, doncas es pas complèt. - tip_following: Seguètz l’administrator del servidor per defaut. Per trobar de monde mai interessant, agachatz lo flux d’actualitat local e lo global. - tip_local_timeline: Lo flux d’actualitat local es una vista del monde de %{instance}. Son vòstres vesins dirèctes ! - tip_mobile_webapp: Se vòstre navigator mobil nos permet d’apondre Mastodon a l’ecran d‘acuèlh, podètz recebre de notificacions. Aquò se compòrta coma una aplicacion nativa ! - tips: Astúcias title: Vos desirem la benvenguda a bòrd %{name} ! users: follow_limit_reached: Podètz pas sègre mai de %{limit} personas diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 76b3535feca5c6..dc96acee791fb3 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1,102 +1,31 @@ --- pl: about: - about_hashtag_html: Znajdują się tu publiczne wpisy oznaczone hashtagiem #%{hashtag}. Możesz dołączyć do dyskusji, jeżeli posiadasz konto gdziekolwiek w Fediwersum. - about_mastodon_html: Mastodon jest wolną i otwartą siecią społecznościową, zdecentralizowaną alternatywą dla zamkniętych, komercyjnych platform. - about_this: O tej instancji - active_count_after: aktywni - active_footnote: Aktywni użytkownicy miesięcznie (MAU) - administered_by: 'Administrowana przez:' - api: API - apps: Aplikacje - apps_platforms: Korzystaj z Mastodona z poziomu iOS-a, Androida i innych - browse_directory: Przeglądaj katalog profilów i filtruj z uwzględnieniem zainteresowań - browse_local_posts: Przeglądaj strumień publicznych wpisów z tego serwera - browse_public_posts: Przeglądaj strumień publicznych wpisów na Mastodonie na żywo - contact: Kontakt + about_mastodon_html: 'Sieć społecznościowa przyszłości: Bez reklam, bez inwigilacji, zaprojektowana etycznie i zdecentralizowanie! Władaj swoimi danymi z Mastodonem!' contact_missing: Nie ustawiono contact_unavailable: Nie dotyczy - continue_to_web: Kontynuuj przez aplikację webową - discover_users: Odkrywaj użytkowników - documentation: Dokumentacja - federation_hint_html: Z kontem na %{instance}, możesz śledzić użytkowników każdego serwera Mastodona i nie tylko. - get_apps: Spróbuj aplikacji mobilnej - hosted_on: Mastodon uruchomiony na %{domain} - instance_actor_flash: | - To konto jest wirtualnym nadawcą, używanym do reprezentacji serwera, a nie jakiegokolwiek użytkownika. - Jest używane w celu federowania i nie powinno być blokowane, chyba że chcesz zablokować całą instację, w takim przypadku użyj blokady domeny. - learn_more: Dowiedz się więcej - logged_in_as_html: Jesteś obecnie zalogowany/a jako %{username}. - logout_before_registering: Jesteś już zalogowany/a. - privacy_policy: Polityka prywatności - rules: Regulamin serwera - rules_html: 'Poniżej znajduje się podsumowanie zasad, których musisz przestrzegać, jeśli chcesz mieć konto na tym serwerze Mastodona:' - see_whats_happening: Zobacz co się dzieje - server_stats: 'Statystyki serwera:' - source_code: Kod źródłowy - status_count_after: - few: wpisów - many: wpisów - one: wpisu - other: wpisów - status_count_before: Są autorami - tagline: Śledź znajomych i poznawaj nowych - terms: Zasady użytkowania - unavailable_content: Niedostępne treści - unavailable_content_description: - domain: Serwer - reason: Powód - rejecting_media: 'Pliki multimedialne z tych serwerów nie będą przetwarzane ani przechowywane, ani ich miniaturki nie będą wyświetlane, wymuszając ręczne przejście do oryginalnego pliku:' - rejecting_media_title: Filtrowana zawartość multimedialna - silenced: 'Posty z tych serwerów będą ukryte na publicznych osiach czasu i konwersacjach, a powiadomienia z interakcji ich użytkowników nie będą generowane, chyba że ich obserwujesz:' - silenced_title: Wyciszone serwery - suspended: 'Żadne dane z tych serwerów nie będą przetwarzane, przechowywane ani wymieniane, sprawiając że jakakolwiek interakcja czy komunikacja z użytkownikami tych serwerów będzie niemożliwa:' - suspended_title: Zawieszone serwery - unavailable_content_html: Normalnie Mastodon pozwala ci przeglądać treści od innych użytkowników z jakiegokolwiek serwera w fediwersum. To są wyjątki, które zostały stworzone na tym konkretnym serwerze. - user_count_after: - few: użytkowników - many: użytkowników - one: użytkownik - other: użytkowników - user_count_before: Z serwera korzysta - what_is_mastodon: Czym jest Mastodon? + hosted_on: Mastodon hostowany na %{domain} + title: O nas accounts: - choices_html: 'Polecani przez %{name}:' - endorsements_hint: Możesz promować ludzi, których obserwujesz, z poziomu interfejsu webowego - wtedy oni pojawią się w tym miejscu. - featured_tags_hint: Możesz przedstawić w tym miejscu kilka wybranych hasztagów. - follow: Śledź + follow: Obserwuj followers: few: śledzących many: śledzących one: śledzący - other: Śledzących - following: śledzonych + other: obserwujących + following: Obserwowanych instance_actor_flash: To konto jest wirtualnym profilem używanym do reprezentowania samego serwera, a nie żadnego indywidualnego użytkownika. Jest ono stosowane do celów federacji i nie powinien być zawieszany. - joined: Dołączył(a) %{date} last_active: ostatnio aktywny(-a) link_verified_on: Własność tego odnośnika została sprawdzona %{date} - media: Zawartość multimedialna - moved_html: "%{name} korzysta teraz z konta %{new_profile_link}:" - network_hidden: Ta informacja nie jest dostępna nothing_here: Niczego tu nie ma! - people_followed_by: Konta śledzone przez %{name} - people_who_follow: Osoby, które śledzą konto %{name} pin_errors: - following: Musisz śledzić osobę, którą chcesz polecać + following: Musisz obserwować osobę, którą chcesz polecać posts: few: wpisy many: wpisów one: wpis other: Wpisów posts_tab_heading: Wpisy - posts_with_replies: Wpisy z odpowiedziami - roles: - admin: Administrator - bot: Bot - group: Grupa - moderator: Moderator - unavailable: Profil niedostępny - unfollow: Przestań śledzić admin: account_actions: action: Wykonaj działanie @@ -113,12 +42,17 @@ pl: avatar: Awatar by_domain: Domena change_email: - changed_msg: Pomyślnie zmieniono adres e-mail konta! + changed_msg: Pomyślnie zmieniono adres e-mail! current_email: Obecny adres e-mail label: Zmień adres e-mail new_email: Nowy adres e-mail submit: Zmień adres e-mail title: Zmień adres e-mail dla %{username} + change_role: + changed_msg: Pomyślnie zmieniono rolę! + label: Zmień rolę + no_role: Brak roli + title: Zmień rolę dla %{username} confirm: Potwierdź confirmed: Potwierdzono confirming: Potwierdzanie @@ -129,7 +63,7 @@ pl: destroyed_msg: Dane %{username} są teraz w kolejce do natychmiastowego usunięcia disable: Dezaktywuj disable_sign_in_token_auth: Wyłącz uwierzytelnianie tokenu e-mail - disable_two_factor_authentication: Wyłącz uwierzytelnianie dwuetapowe + disable_two_factor_authentication: Wyłącz uwierzytelnianie dwuskładnikowe disabled: Dezaktywowano display_name: Wyświetlana nazwa domain: Domena @@ -140,14 +74,14 @@ pl: enable_sign_in_token_auth: Włącz uwierzytelnianie tokenu e-mail enabled: Aktywowano enabled_msg: Pomyślnie odblokowano konto %{username} - followers: Śledzący - follows: Śledzeni + followers: Obserwujący + follows: Obserwowani header: Nagłówek inbox_url: Adres skrzynki invite_request_text: Powody rejestracji invited_by: Zaproszony(-a) przez ip: Adres IP - joined: Dołączył(-a) + joined: Dołączono location: all: Wszystkie local: Lokalne @@ -162,6 +96,7 @@ pl: active: Aktywne all: Wszystkie pending: Oczekujące + silenced: Ograniczone suspended: Zawieszone title: Moderacja moderation_notes: Notatki moderacyjne @@ -169,6 +104,7 @@ pl: most_recent_ip: Ostatnie IP no_account_selected: Żadne konto nie zostało zmienione, bo żadne nie zostało wybrane no_limits_imposed: Nie nałożono ograniczeń + no_role_assigned: Nie przypisano żadnej roli not_subscribed: Nie zasubskrybowano pending: Oczekuje na przegląd perform_full_suspension: Zawieś @@ -197,20 +133,15 @@ pl: reset: Resetuj reset_password: Resetuj hasło resubscribe: Ponów subskrypcję - role: Uprawnienia - roles: - admin: Administrator - moderator: Moderator - staff: Ekipa - user: Użytkownik + role: Rola search: Szukaj - search_same_email_domain: Inni użytkownicy z e-mail w tej domenie + search_same_email_domain: Inni użytkownicy z tym samym e-mail w tej domenie search_same_ip: Inni użytkownicy z tym samym IP security_measures: only_password: Tylko hasło password_and_2fa: Hasło i 2FA sensitive: Wrażliwe - sensitized: oznaczono jako wrażliwe + sensitized: Oznaczono jako wrażliwe shared_inbox_url: Adres udostępnianej skrzynki show: created_reports: Zgłoszenia tego użytkownika @@ -245,17 +176,21 @@ pl: approve_user: Zatwierdź użytkownika assigned_to_self_report: Przypisz zgłoszenie change_email_user: Zmień adres e-mail użytkownika + change_role_user: Zmień rolę użytkownika confirm_user: Potwierdź użytkownika create_account_warning: Utwórz ostrzeżenie create_announcement: Utwórz ogłoszenie + create_canonical_email_block: Utwórz blokadę e-mail create_custom_emoji: Utwórz niestandardowe emoji create_domain_allow: Utwórz zezwolenie dla domeny create_domain_block: Utwórz blokadę domeny create_email_domain_block: Utwórz blokadę domeny e-mail create_ip_block: Utwórz regułę IP create_unavailable_domain: Utwórz niedostępną domenę + create_user_role: Utwórz rolę demote_user: Zdegraduj użytkownika destroy_announcement: Usuń ogłoszenie + destroy_canonical_email_block: Usuń blokadę e-mail destroy_custom_emoji: Usuń niestandardowe emoji destroy_domain_allow: Usuń zezwolenie dla domeny destroy_domain_block: Usuń blokadę domeny @@ -264,6 +199,7 @@ pl: destroy_ip_block: Usuń regułę IP destroy_status: Usuń wpis destroy_unavailable_domain: Usuń niedostępną domenę + destroy_user_role: Zlikwiduj rolę disable_2fa_user: Wyłącz 2FA disable_custom_emoji: Wyłącz niestandardowe emoji disable_sign_in_token_auth_user: Wyłącz uwierzytelnianie tokenu e-mail dla użytkownika @@ -277,6 +213,7 @@ pl: reject_user: Odrzuć użytkownika remove_avatar_user: Usuń awatar reopen_report: Otwórz zgłoszenie ponownie + resend_user: Wyślij ponownie e-mail potwierdzający reset_password_user: Resetuj hasło resolve_report: Rozwiąż zgłoszenie sensitive_account: Oznacz zawartość multimedialną swojego konta jako wrażliwą @@ -290,24 +227,30 @@ pl: update_announcement: Aktualizuj ogłoszenie update_custom_emoji: Aktualizuj niestandardowe emoji update_domain_block: Zaktualizuj blokadę domeny + update_ip_block: Aktualizuj regułę IP update_status: Aktualizuj wpis + update_user_role: Aktualizuj rolę actions: approve_appeal_html: "%{name} zatwierdził(-a) odwołanie decyzji moderacyjnej od %{target}" approve_user_html: "%{name} zatwierdził rejestrację od %{target}" assigned_to_self_report_html: "%{name} przypisał(a) sobie zgłoszenie %{target}" change_email_user_html: "%{name} zmienił(a) adres e-mail użytkownika %{target}" + change_role_user_html: "%{name} zmienił rolę %{target}" confirm_user_html: "%{name} potwierdził(a) adres e-mail użytkownika %{target}" create_account_warning_html: "%{name} wysłał(a) ostrzeżenie do %{target}" create_announcement_html: "%{name} utworzył(a) nowe ogłoszenie %{target}" + create_canonical_email_block_html: "%{name} zablokował e-mail z hasłem %{target}" create_custom_emoji_html: "%{name} dodał(a) nowe emoji %{target}" create_domain_allow_html: "%{name} dodał(a) na białą listę domenę %{target}" create_domain_block_html: "%{name} zablokował(a) domenę %{target}" create_email_domain_block_html: "%{name} dodał(a) domenę e-mail %{target} na czarną listę" create_ip_block_html: "%{name} stworzył(a) regułę dla IP %{target}" create_unavailable_domain_html: "%{name} przestał(a) doręczać na domenę %{target}" + create_user_role_html: "%{name} utworzył rolę %{target}" demote_user_html: "%{name} zdegradował(a) użytkownika %{target}" destroy_announcement_html: "%{name} usunął(-ęła) ogłoszenie %{target}" - destroy_custom_emoji_html: "%{name} usunął(-ęła) emoji %{target}" + destroy_canonical_email_block_html: "%{name} odblokował(a) e-mail z hasłem %{target}" + destroy_custom_emoji_html: "%{name} usunął emoji %{target}" destroy_domain_allow_html: "%{name} usunął(-ęła) domenę %{target} z białej listy" destroy_domain_block_html: "%{name} odblokował(a) domenę %{target}" destroy_email_domain_block_html: "%{name} usunął(-ęła) domenę e-mail %{target} z czarnej listy" @@ -315,7 +258,8 @@ pl: destroy_ip_block_html: "%{name} usunął(-ęła) regułę dla IP %{target}" destroy_status_html: "%{name} usunął(-ęła) wpis użytkownika %{target}" destroy_unavailable_domain_html: "%{name} wznowił(a) doręczanie do domeny %{target}" - disable_2fa_user_html: "%{name} wyłączył(a) uwierzytelnianie dwustopniowe użytkownikowi %{target}" + destroy_user_role_html: "%{name} usunął rolę %{target}" + disable_2fa_user_html: "%{name} wyłączył(a) uwierzytelnianie dwuskładnikowe użytkownikowi %{target}" disable_custom_emoji_html: "%{name} wyłączył(a) emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} wyłączył/a uwierzytelnianie tokenem e-mail dla %{target}" disable_user_html: "%{name} zablokował(a) możliwość logowania użytkownikowi %{target}" @@ -328,6 +272,7 @@ pl: reject_user_html: "%{name} odrzucił rejestrację od %{target}" remove_avatar_user_html: "%{name} usunął(-ęła) awatar użytkownikowi %{target}" reopen_report_html: "%{name} otworzył(a) ponownie zgłoszenie %{target}" + resend_user_html: "%{name} ponownie wysłał(a) e-mail z potwierdzeniem dla %{target}" reset_password_user_html: "%{name} przywrócił(a) hasło użytkownikowi %{target}" resolve_report_html: "%{name} rozwiązał(a) zgłoszenie %{target}" sensitive_account_html: "%{name} oznaczył(a) zawartość multimedialną %{target} jako wrażliwą" @@ -341,8 +286,10 @@ pl: update_announcement_html: "%{name} zaktualizował(a) ogłoszenie %{target}" update_custom_emoji_html: "%{name} zaktualizował(a) emoji %{target}" update_domain_block_html: "%{name} zaktualizował(a) blokadę domeny dla %{target}" + update_ip_block_html: "%{name} stworzył(a) regułę dla IP %{target}" update_status_html: "%{name} zaktualizował(a) wpis użytkownika %{target}" - deleted_status: "(usunięty wpis)" + update_user_role_html: "%{name} zmienił rolę %{target}" + deleted_account: usunięte konto empty: Nie znaleziono aktywności w dzienniku. filter_by_action: Filtruj według działania filter_by_user: Filtruj według użytkownika @@ -386,6 +333,7 @@ pl: listed: Widoczne new: title: Dodaj nowe niestandardowe emoji + no_emoji_selected: Żadne emoji nie zostały zmienione, ponieważ żadnych nie wybrano not_permitted: Nie masz uprawnień do wykonania tego działania overwrite: Zastąp shortcode: Krótki kod @@ -446,12 +394,13 @@ pl: destroyed_msg: Blokada domeny nie może zostać odwrócona domain: Domena edit: Edytuj blokadę domeny + existing_domain_block: Już nałożyłeś surowsze limity na %{name}. existing_domain_block_html: Już narzuciłeś bardziej rygorystyczne limity na %{name}, musisz najpierw je odblokować. new: create: Utwórz blokadę hint: Blokada domen nie zabroni tworzenia wpisów kont w bazie danych, ale pozwoli na automatyczną moderację kont do nich należących. severity: - desc_html: "Wyciszenie uczyni wpisy użytkownika widoczne tylko dla osób, które go śledzą. Zawieszenie spowoduje usunięcie całej zawartości dodanej przez użytkownika. Użyj Żadne, jeżeli chcesz jedynie odrzucać zawartość multimedialną." + desc_html: "Wyciszenie uczyni wpisy użytkownika widoczne tylko dla osób, które go obserwują. Zawieszenie spowoduje usunięcie całej zawartości dodanej przez użytkownika. Użyj Żadne, jeżeli chcesz jedynie odrzucać zawartość multimedialną." noop: Nic nie rób silence: Wycisz suspend: Zawieś @@ -490,15 +439,20 @@ pl: resolved_through_html: Rozwiązano przez %{domain} title: Blokowanie domen e-mail follow_recommendations: - description_html: "Polecane śledzenia pomagają nowym użytkownikom szybko odnaleźć interesujące treści. Jeżeli użytkownik nie wchodził w interakcje z innymi wystarczająco często, aby powstały spersonalizowane rekomendacje, polecane są te konta. Są one obliczane każdego dnia na podstawie kombinacji kont o największej liczbie niedawnej aktywności i największej liczbie lokalnych obserwatorów dla danego języka." + description_html: "Polecane obserwacje pomagają nowym użytkownikom szybko odnaleźć interesujące treści. Jeżeli użytkownik nie wchodził w interakcje z innymi wystarczająco często, aby powstały spersonalizowane rekomendacje, polecane są te konta. Są one obliczane każdego dnia na podstawie kombinacji kont o największej liczbie niedawnej aktywności i największej liczbie lokalnych obserwatorów dla danego języka." language: Dla języka status: Stan - suppress: Usuń polecenie śledzenia + suppress: Usuń polecenie obserwacji suppressed: Usunięto title: Polecane konta - unsuppress: Przywróć polecenie śledzenia konta + unsuppress: Przywróć polecenie obserwacji konta instances: availability: + description_html: + few: Jeśli dostarczenie do domeny nie powiedzie się %{count} dni bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny. + many: Jeśli dostarczenie do domeny nie powiedzie się %{count} dni bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny. + one: Jeśli dostarczenie do domeny nie powiedzie się %{count} dzień bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny. + other: Jeśli dostarczenie do domeny nie powiedzie się %{count} dni bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny. failure_threshold_reached: Próg niepowodzenia osiągnięty dnia %{date}. failures_recorded: few: Nieudane próby w %{count} różnych dniach. @@ -525,10 +479,10 @@ pl: reason: Powód publiczny title: Polityki zawartości dashboard: - instance_accounts_dimension: Najczęściej śledzone konta + instance_accounts_dimension: Najczęściej obserwowane konta instance_accounts_measure: przechowywane konta - instance_followers_measure: nasi śledzący tam - instance_follows_measure: ich śledzący tutaj + instance_followers_measure: nasi obserwujący tam + instance_follows_measure: ich obserwujący tutaj instance_languages_dimension: Najpopularniejsze języki instance_media_attachments_measure: przechowywane załączniki multimedialne instance_reports_measure: zgłoszenia dotyczące ich @@ -560,8 +514,8 @@ pl: purge_description_html: Jeśli uważasz, że ta domena została zamknięta na dobre, możesz usunąć wszystkie rejestry konta i powiązane dane z tej domeny z pamięci. Proces ten może chwilę potrwać. title: Znane instancje total_blocked_by_us: Zablokowane przez nas - total_followed_by_them: Śledzeni przez nich - total_followed_by_us: Śledzeni przez nas + total_followed_by_them: Obserwowani przez nich + total_followed_by_us: Obserwowani przez nas total_reported: Zgłoszenia dotyczące ich total_storage: Załączniki multimedialne totals_time_period_hint_html: Poniższe sumy zawierają dane od początku serwera. @@ -593,7 +547,7 @@ pl: relays: add_new: Dodaj nowy delete: Usuń - description_html: "Przekaźnik federacji jest pośredniczącym serwerem wymieniającym duże ilości publicznych wpisów pomiędzy serwerami które subskrybują je i publikują na nich. Pomaga to małym i średnim instancją poznawać nową zawartość z Fediwersum, co w innym przypadku wymagałoby od użytkowników ręcznego śledzenia osób z innych serwerów." + description_html: "Przekaźnik federacji jest pośredniczącym serwerem wymieniającym duże ilości publicznych wpisów pomiędzy serwerami które subskrybują je i publikują na nich. Pomaga to małym i średnim instancją poznawać nową zawartość z Fediwersum, co w innym przypadku wymagałoby od użytkowników ręcznej obserwacji osób z innych serwerów." disable: Wyłącz disabled: Wyłączony enable: Włącz @@ -671,6 +625,71 @@ pl: unresolved: Nierozwiązane updated_at: Zaktualizowano view_profile: Wyświetl profil + roles: + add_new: Dodaj rolę + assigned_users: + few: "%{count} użytkowników" + many: "%{count} użytkowników" + one: "%{count} użytkownik" + other: "%{count} użytkowników" + categories: + administration: Administracja + devops: DevOps + invites: Zaproszenia + moderation: Moderacja + special: Specjalne + delete: Usuń + description_html: Za pomocą ról użytkownikówmożesz dostosowywać funkcje i obszary Mastodon, do których użytkownicy mogą uzyskać dostęp. + edit: Edytuj rolę '%{name}' + everyone: Domyślnie uprawnienia + everyone_full_description_html: To jest rola podstawowa wpływająca na wszystkich użytkowników, nawet tych, którzy nie mają przypisanej roli. Wszystkie inne role dziedziczą z niej uprawnienia. + permissions_count: + few: "%{count} uprawnień" + many: "%{count} uprawnień" + one: "%{count} uprawnienie" + other: "%{count} uprawnień" + privileges: + administrator: Administrator + administrator_description: Użytkownicy z tym uprawnieniem omijają każde uprawnienie + delete_user_data: Usuń dane użytkownika + delete_user_data_description: Pozwala użytkownikom na bezzwłoczne usuwanie danych innych użytkowników + invite_users: Zaproś użytkowników + invite_users_description: Pozwala użytkownikom zapraszać nowych ludzi na serwer + manage_announcements: Zarządzaj ogłoszeniami + manage_announcements_description: Pozwala użytkownikom zarządzać ogłoszeniami na serwerze + manage_appeals: Zarządzaj odwołaniami + manage_appeals_description: Pozwala użytkownikom przeglądać odwołania od działań moderacyjnych + manage_blocks: Zarządzaj blokami + manage_blocks_description: Pozwala użytkownikom na blokowanie dostawców poczty elektronicznej i adresów IP + manage_custom_emojis: Zarządzaj niestandardowymi emoji + manage_custom_emojis_description: Pozwala użytkownikom zarządzać niestandardowymi emoji na serwerze + manage_federation: Zarządzaj federacją + manage_federation_description: Pozwala użytkownikom na blokowanie lub zezwalanie federacji z innymi domenami i kontrolowanie doręczania + manage_invites: Zarządzaj zaproszeniami + manage_invites_description: Pozwala użytkownikom przeglądać i dezaktywować linki z zaproszeniami + manage_reports: Zarządzaj raportami + manage_reports_description: Pozwala użytkownikom przeglądać raporty i wykonywać przeciwko nim działania moderacyjne + manage_roles: Zarządzaj rolami + manage_roles_description: Pozwala użytkownikom zarządzać rolami i przypisywać role poniżej ich własnych + manage_rules: Zarządzaj regułami + manage_rules_description: Pozwala użytkownikom na zmianę reguł serwera + manage_settings: Zarządzaj ustawieniami + manage_settings_description: Pozwala użytkownikom na zmianę ustawień witryny + manage_taxonomies: Zarządzaj taksonomiami + manage_taxonomies_description: Pozwala użytkownikom przeglądać najpopularniejsze treści i aktualizować ustawienia hasztagów + manage_user_access: Zarządzaj dostępem użytkownika + manage_user_access_description: Pozwala użytkownikom na wyłączenie uwierzytelniania dwuskładnikowego innych użytkowników, zmianę adresu e-mail i zresetowanie hasła + manage_users: Zarządzanie użytkownikami + manage_users_description: Pozwala użytkownikom na oglądanie szczegółów innych użytkowników i wykonywanie na ich kontach działań moderacyjnych + manage_webhooks: Zarządzanie webhookami + manage_webhooks_description: Pozwala użytkownikom na konfigurację webhooków dla wydarzeń administracyjnych + view_audit_log: Wyświetl dziennik zdarzeń + view_audit_log_description: Pozwala użytkownikom zobaczyć historię działań administracyjnych na serwerze + view_dashboard: Wyświetl panel + view_dashboard_description: Pozwala użytkownikom na dostęp do panelu i różnych metryk + view_devops: DevOps + view_devops_description: Pozwala użytkownikom na dostęp do paneli Sidekiq i pgHero + title: Role rules: add_new: Dodaj zasadę delete: Usuń @@ -679,108 +698,67 @@ pl: empty: Jeszcze nie zdefiniowano zasad serwera. title: Regulamin serwera settings: - activity_api_enabled: - desc_html: Liczy publikowane lokalnie wpisy, aktywnych użytkowników i nowe rejestracje w ciągu danego tygodnia - title: Publikuj zbiorowe statystyki o aktywności użytkowników - bootstrap_timeline_accounts: - desc_html: Oddzielaj nazwy użytkowników przecinkami. Działa tylko dla niezablokowanych kont w obrębie instancji. Jeżeli puste, zostaną użyte konta administratorów instancji. - title: Domyślnie obserwowani użytkownicy - contact_information: - email: Służbowy adres e-mail - username: Nazwa użytkownika do kontaktu - custom_css: - desc_html: Modyfikuj wygląd pliku CSS ładowanego na każdej stronie - title: Niestandardowy CSS - default_noindex: - desc_html: Wpływa na wszystkich użytkowników, którzy nie zmienili tego ustawienia - title: Domyślnie żądaj nieindeksowania użytkowników w wyszukiwarkach + about: + manage_rules: Zarządzaj regułami serwera + preamble: Podaj szczegółowe informacje na temat sposobu działania, moderacji i finansowania serwera. + rules_hint: Istnieje dedykowany obszar dla reguł, których twoi użytkownicy mają przestrzegać. + title: O... + appearance: + preamble: Dostosuj interfejs www Mastodon. + title: Wygląd + branding: + preamble: Marka Twojego serwera odróżnia go od innych serwerów w sieci. Informacje te mogą być wyświetlane w różnych środowiskach, takich jak interfejs internetowy Mastodon, aplikacje natywne, w podglądzie linków na innych stronach internetowych i w aplikacjach do wysyłania wiadomości itd. Z tego względu najlepiej zachować jasną, krótką i zwięzłą informację. + title: Marka + content_retention: + preamble: Kontroluj, jak treści generowane przez użytkownika są przechowywane w Mastodon. + title: Retencja treści + discovery: + follow_recommendations: Polecane konta + preamble: Prezentowanie interesujących treści ma kluczowe znaczenie dla nowych użytkowników, którzy mogą nie znać nikogo z Mastodona. Kontroluj, jak różne funkcje odkrywania działają na Twoim serwerze. + profile_directory: Katalog profilów + public_timelines: Publiczne osie czasu + title: Odkrywanie + trends: Trendy domain_blocks: all: Każdemu disabled: Nikomu - title: Pokazuj zablokowane domeny users: Zalogowanym lokalnym użytkownikom - domain_blocks_rationale: - title: Pokaż uzasadnienia - hero: - desc_html: Wyświetlany na stronie głównej. Zalecany jest rozmiar przynajmniej 600x100 pikseli. Jeżeli nie ustawiony, zostanie użyta miniatura serwera - title: Obraz bohatera - mascot: - desc_html: Wyświetlany na wielu stronach. Zalecany jest rozmiar przynajmniej 293px × 205px. Jeżeli nie ustawiono, zostanie użyta domyślna - title: Obraz maskotki - peers_api_enabled: - desc_html: Nazwy domen, z którymi ten serwer wchodził w interakcje - title: Publikuj listę znanych serwerów - preview_sensitive_media: - desc_html: Podgląd odnośników na innych instancjach będzie wyświetlał miniaturę nawet jeśli zawartość multimedialna zostanie oznaczona jako wrażliwa - title: Wyświetlaj zawartość wrażliwą w podglądzie OpenGraph - profile_directory: - desc_html: Pozwalaj na poznawanie użytkowników - title: Włącz katalog profilów registrations: - closed_message: - desc_html: Wyświetlana na stronie głównej, gdy możliwość otwarej rejestracji nie jest dostępna. Możesz korzystać z tagów HTML - title: Wiadomość o nieaktywnej rejestracji - deletion: - desc_html: Pozwól każdemu na usunięcie konta - title: Możliwość usunięcia - min_invite_role: - disabled: Nikt - title: Kto może zapraszać użytkowników - require_invite_text: - desc_html: Kiedy rejestracje wymagają ręcznego zatwierdzenia, ustaw pole "Dlaczego chcesz dołączyć?" jako obowiązkowe, a nie opcjonalne - title: Wymagaj od nowych użytkowników wypełnienia tekstu prośby o zaproszenie + preamble: Kontroluj, kto może utworzyć konto na Twoim serwerze. + title: Rejestracje registrations_mode: modes: approved: Przyjęcie jest wymagane do rejestracji none: Nikt nie może się zarejestrować open: Każdy może się zarejestrować - title: Tryb rejestracji - show_known_fediverse_at_about_page: - desc_html: Jeśli włączone, podgląd instancji będzie wyświetlał wpisy z całego Fediwersum. W innym przypadku, będą wyświetlane tylko lokalne wpisy. - title: Pokazuj wszystkie znane wpisy na podglądzie instancji - show_staff_badge: - desc_html: Pokazuj odznakę uprawnień na stronie profilu użytkownika - title: Pokazuj odznakę administracji - site_description: - desc_html: Akapit wprowadzający, widoczny na stronie głównej. Opisz, co czyni tę instancję wyjątkową. Możesz korzystać ze znaczników HTML, w szczególności <a> i <em>. - title: Opis serwera - site_description_extended: - desc_html: Dobre miejsce na zasady użytkowania, wprowadzenie i inne rzeczy, które wyróżniają ten serwer. Możesz korzystać ze znaczników HTML - title: Niestandardowy opis strony - site_short_description: - desc_html: Wyświetlany na pasku bocznym i w znacznikach meta. Opisz w jednym akapicie, czym jest Mastodon i czym wyróżnia się ten serwer. Jeżeli pusty, zostanie użyty opis serwera. - title: Krótki opis serwera - site_terms: - desc_html: Miejsce na własną politykę prywatności, zasady użytkowania i inne unormowania prawne. Możesz korzystać ze znaczników HTML - title: Niestandardowe zasady użytkowania - site_title: Nazwa serwera - thumbnail: - desc_html: 'Używana w podglądzie przez OpenGraph i API. Zalecany rozmiar: 1200x630 pikseli' - title: Miniatura serwera - timeline_preview: - desc_html: Wyświetlaj publiczną oś czasu na stronie widocznej dla niezalogowanych - title: Podgląd osi czasu - title: Ustawienia strony - trendable_by_default: - desc_html: Wpływa na hashtagi, które nie były wcześniej niedozwolone - title: Hashtagi mogą pojawiać się w trendach bez wcześniejszego zatwierdzenia - trends: - desc_html: Wyświetlaj publicznie wcześniej sprawdzone hashtagi, które są obecnie na czasie - title: Popularne hashtagi + title: Ustawienia serwera site_uploads: delete: Usuń przesłany plik destroyed_msg: Pomyślnie usunięto przesłany plik! statuses: + account: Autor + application: Aplikacja back_to_account: Wróć na konto back_to_report: Wróć do strony zgłoszenia batch: remove_from_report: Usuń ze zgłoszenia report: Zgłoszenie deleted: Usunięto + favourites: Ulubione + history: Historia wersji + in_reply_to: W odpowiedzi na + language: Język media: title: Multimedia + metadata: Metadane no_status_selected: Żaden wpis nie został zmieniony, bo żaden nie został wybrany + open: Otwarty post + original_status: Oryginalny post + reblogs: Podbicia + status_changed: Post zmieniony title: Wpisy konta + trending: Popularne + visibility: Widoczność with_media: Z zawartością multimedialną strikes: actions: @@ -820,6 +798,14 @@ pl: description_html: Są to linki, które są obecnie często udostępniane przez konta, z których Twój serwer widzi posty. Może to pomóc Twoim użytkownikom dowiedzieć się, co dzieje się na świecie. Żadne linki nie są wyświetlane publicznie dopóki nie zaakceptujesz wydawcy. Możesz również zezwolić lub odrzucić indywidualne linki. disallow: Nie zezwalaj na link disallow_provider: Nie zezwalaj na wydawcę + no_link_selected: Żadne linki nie zostały zmienione, ponieważ żadnych nie wybrano + publishers: + no_publisher_selected: Żadni publikujcy nie zostali zmienieni, ponieważ żadnych nie wybrano + shared_by_over_week: + few: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia + many: Udostępnione przez %{count} osób w ciągu ostatniego tygodnia + one: Udostępnione przez jedną osobę w ciągu ostatniego tygodnia + other: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia title: Popularne linki usage_comparison: Udostępnione %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj only_allowed: Tylko dozwolone @@ -833,10 +819,16 @@ pl: statuses: allow: Zezwól na post allow_account: Zezwól na autora - description_html: Są to wpisy, o których Twój serwer wie i które są obecnie często udostępniane i dodawane do ulubionych. Może to pomóc nowym i powracającym użytkownikom znaleźć więcej osób do śledzenia. Żadne posty nie są wyświetlane publicznie, dopóki nie zatwierdzisz autora, a autor ustawi zezwolenie na wyświetlanie się w katalogu. Możesz również zezwolić lub odrzucić poszczególne posty. + description_html: Są to wpisy, o których Twój serwer wie i które są obecnie często udostępniane i dodawane do ulubionych. Może to pomóc nowym i powracającym użytkownikom znaleźć więcej osób do obserwacji. Żadne posty nie są wyświetlane publicznie, dopóki nie zatwierdzisz autora, a autor ustawi zezwolenie na wyświetlanie się w katalogu. Możesz również zezwolić lub odrzucić poszczególne posty. disallow: Nie zezwalaj na post disallow_account: Nie zezwalaj na autora + no_status_selected: Żadne popularne wpisy nie zostały zmienione, ponieważ żadnych nie wybrano not_discoverable: Autor nie włączył opcji, by być wyświetlany w katalogu + shared_by: + few: Udostępnione i dodane do ulubionych %{friendly_count} razy + many: Udostępnione i dodane do ulubionych %{friendly_count} razy + one: Udostępnione lub dodane do ulubionych jednorazowo + other: Udostępnione i dodane do ulubionych %{friendly_count} razy title: Popularne teraz tags: current_score: Bieżący wynik %{score} @@ -848,6 +840,7 @@ pl: tag_uses_measure: użyć łącznie description_html: To są hasztagi, które obecnie pojawiają się w wielu wpisach, które widzisz na serwerze. Może to pomóc Twoim użytkownikom dowiedzieć się, o czym obecnie ludzie najchętniej rozmawiają. Żadne hasztagi nie są wyświetlane publicznie, dopóki ich nie zaakceptujesz. listable: Można zasugerować + no_tag_selected: Żadne tagi nie zostały zmienione, ponieważ żadnych nie wybrano not_listable: Nie można zasugerować not_trendable: Nie pojawia się pod trendami not_usable: Nie mogą zostać użyte @@ -870,6 +863,28 @@ pl: edit_preset: Edytuj szablon ostrzeżenia empty: Nie zdefiniowano jeszcze żadnych szablonów ostrzegawczych. title: Zarządzaj szablonami ostrzeżeń + webhooks: + add_new: Dodaj punkt końcowy + delete: Usuń + description_html: "webhook umożliwia Mastodon dostarczanie powiadomień w czasie rzeczywistym o wybranych wydarzeniach do twojej aplikacji, aby mogła automatycznie wyzwalać reakcje." + disable: Wyłącz + disabled: Wyłączone + edit: Edytuj punkt końcowy + empty: Nie masz jeszcze skonfigurowanych żadnych webhooków do punktów końcowych. + enable: Włącz + enabled: Aktywne + enabled_events: + few: "%{count} włączone zdarzenia" + many: "%{count} włączonych zdarzeń" + one: 1 włączone zdarzenie + other: "%{count} włączonych zdarzeń" + events: Zdarzenia + new: Nowy webhook + rotate_secret: Odśwież klucz szyfrowania + secret: Podpisywanie klucza szyfrowania + status: Stan + title: Webhooki + webhook: Webhook admin_mailer: new_appeal: actions: @@ -893,12 +908,8 @@ pl: new_trends: body: 'Następujące elementy potrzebują recenzji zanim będą mogły być wyświetlane publicznie:' new_trending_links: - no_approved_links: Obecnie nie ma zatwierdzonych linków trendów. - requirements: 'Każdy z tych kandydatów może przekroczyć #%{rank} zatwierdzonych popularnych linków, który wynosi obecnie "%{lowest_link_title}" z wynikiem %{lowest_link_score}.' title: Popularne linki new_trending_statuses: - no_approved_statuses: Obecnie nie ma zatwierdzonych popularnych linków. - requirements: 'Każdy z tych kandydatów może przekroczyć #%{rank} zatwierdzonych popularnych teraz wpisów, który wynosi obecnie %{lowest_status_url} z wynikiem %{lowest_status_score}.' title: Popularne teraz new_trending_tags: no_approved_tags: Obecnie nie ma żadnych zatwierdzonych popularnych hasztagów. @@ -934,22 +945,19 @@ pl: applications: created: Pomyślnie utworzono aplikację destroyed: Pomyślnie usunięto aplikację - invalid_url: Wprowadzony adres URL jest nieprawidłowy regenerate_token: Wygeneruj nowy token dostępu token_regenerated: Pomyślnie wygenerowano nowy token dostępu warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu! your_token: Twój token dostępu auth: - apply_for_account: Poproś o zaproszenie + apply_for_account: Dodaj na listę oczekujących change_password: Hasło - checkbox_agreement_html: Zgadzam się z regułami serwera i zasadami korzystania z usługi - checkbox_agreement_without_rules_html: Akceptuję warunki korzystania z usługi delete_account: Usunięcie konta delete_account_html: Jeżeli chcesz usunąć konto, przejdź tutaj. Otrzymasz prośbę o potwierdzenie. description: prefix_invited_by_user: "@%{name} zaprasza Cię do dołączenia na ten serwer Mastodona!" prefix_sign_up: Zarejestruj się na Mastodon już dziś! - suffix: Mając konto, możesz śledzić ludzi, publikować wpisy i wymieniać się wiadomościami z użytkownikami innych serwerów Mastodona i nie tylko! + suffix: Mając konto, możesz obserwować ludzi, publikować wpisy i wymieniać się wiadomościami z użytkownikami innych serwerów Mastodona i nie tylko! didnt_get_confirmation: Nie otrzymałeś(-aś) instrukcji weryfikacji? dont_have_your_security_key: Nie masz klucza bezpieczeństwa? forgot_password: Nie pamiętasz hasła? @@ -962,6 +970,7 @@ pl: migrate_account: Przenieś konto migrate_account_html: Jeżeli chcesz skonfigurować przekierowanie z obecnego konta na inne, możesz zrobić to tutaj. or_log_in_with: Lub zaloguj się z użyciem + privacy_policy_agreement_html: Przeczytałem/am i akceptuję politykę prywatności providers: cas: CAS saml: SAML @@ -969,12 +978,18 @@ pl: registration_closed: "%{instance} nie przyjmuje nowych członków" resend_confirmation: Ponownie prześlij instrukcje weryfikacji reset_password: Zresetuj hasło + rules: + preamble: Są one ustawione i wymuszone przez moderatorów %{domain}. + title: Kilka podstawowych zasad. security: Bezpieczeństwo set_new_password: Ustaw nowe hasło setup: email_below_hint_html: Jeżeli poniższy adres e-mail jest nieprawidłowy, możesz zmienić go tutaj i otrzymać nowy e-mail potwierdzający. email_settings_hint_html: E-mail potwierdzający został wysłany na %{email}. Jeżeli adres e-mail nie jest prawidłowy, możesz zmienić go w ustawieniach konta. title: Konfiguracja + sign_up: + preamble: Z kontem na tym serwerze Mastodon będziesz mógł obserwować każdą inną osobę w sieci, niezależnie od miejsca przechowywania ich konta. + title: Skonfigurujmy Twoje konto na %{domain}. status: account_status: Stan konta confirming: Oczekiwanie na potwierdzenie adresu e-mail. @@ -983,20 +998,19 @@ pl: redirecting_to: Twoje konto jest nieaktywne, ponieważ obecnie przekierowuje je na %{acct}. view_strikes: Zobacz dawne ostrzeżenia nałożone na twoje konto too_fast: Zbyt szybko przesłano formularz, spróbuj ponownie. - trouble_logging_in: Masz problem z zalogowaniem się? use_security_key: Użyj klucza bezpieczeństwa authorize_follow: - already_following: Już śledzisz to konto - already_requested: Już wysłałeś(-aś) prośbę o możliwość śledzenia tego konta + already_following: Już obserwujesz to konto + already_requested: Już wysłałeś(-aś) prośbę o możliwość obserwowania tego konta error: Niestety, podczas sprawdzania zdalnego konta wystąpił błąd - follow: Śledź - follow_request: 'Wysłano prośbę o pozwolenie na śledzenie:' - following: 'Pomyślnie! Od teraz śledzisz:' + follow: Obsewuj + follow_request: 'Wysłano prośbę o możliwość obserwowania:' + following: 'Pomyślnie! Od teraz obserwujesz:' post_follow: close: Ewentualnie, możesz po prostu zamknąć tę stronę. return: Pokaż stronę użytkownika web: Przejdź do sieci - title: Śledź %{acct} + title: Obserwuj %{acct} challenge: confirm: Kontynuuj hint_html: "Informacja: Nie będziemy prosić Cię o ponowne podanie hasła przez następną godzinę." @@ -1041,10 +1055,6 @@ pl: more_details_html: Aby uzyskać więcej szczegółów, przeczytaj naszą politykę prywatności. username_available: Twoja nazwa użytkownika będzie z powrotem dostępna username_unavailable: Twoja nazwa użytkownika pozostanie niedostępna - directories: - directory: Katalog profilów - explanation: Poznaj profile na podstawie zainteresowań - explore_mastodon: Odkrywaj %{title} disputes: strikes: action_taken: Podjęte działania @@ -1123,29 +1133,72 @@ pl: public: Publiczne osie czasu thread: Konwersacje edit: + add_keyword: Dodaj słowo kluczowe + keywords: Słowa kluczowe + statuses: Pojedyncze wpisy + statuses_hint_html: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od tego, czy pasują one do słów kluczowych poniżej. Przejrzyj lub usuń wpisy z filtra. title: Edytuj filtr errors: + deprecated_api_multiple_keywords: Te parametry nie mogą zostać zmienione z tej aplikacji, ponieważ dotyczą więcej niż jednego słowa kluczowego. Użyj nowszej wersji aplikacji lub interfejsu internetowego. invalid_context: Nie podano lub podano nieprawidłową treść - invalid_irreversible: Nieodwracalne filtrowanie działa tylko na stronie głównej i w powiadomieniach index: + contexts: Filtry w %{contexts} delete: Usuń empty: Nie masz żadnych filtrów. + expires_in: Wygasa za %{distance} + expires_on: Wygasa %{date} + keywords: + few: "%{count} słowa kluczowe" + many: "%{count} słów kluczowych" + one: "%{count} słowo kluczowe" + other: "%{count} słów kluczowych" + statuses: + few: "%{count} posty" + many: "%{count} postów" + one: "%{count} post" + other: "%{count} postów" + statuses_long: + few: "%{count} ukryte posty" + many: "%{count} ukrytych postów" + one: "%{count} ukryty post" + other: "%{count} postów ukrytych" title: Filtry new: + save: Zapisz jako nowy filtr title: Dodaj nowy filtr + statuses: + back_to_filter: Powrót do filtra + batch: + remove: Usuń z filtra + index: + hint: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od pozostałych kryteriów. Możesz dodać więcej wpisów do tego filtra z interfejsu internetowego. + title: Filtrowane posty footer: - developers: Dla programistów - more: Więcej… - resources: Zasoby trending_now: Obecnie na czasie generic: all: Wszystkie + all_items_on_page_selected_html: + few: "%{count} elementy na tej stronie są wybrane." + many: "%{count} elementów na tej stronie jest wybrane." + one: "%{count} element na tej stronie jest wybrany." + other: "%{count} elementów na tej stronie jest wybrane." + all_matching_items_selected_html: + few: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane. + many: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane. + one: "%{count} element pasujący do Twojego wyszukiwania został wybrany." + other: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane. changes_saved_msg: Ustawienia zapisane! copy: Kopiuj delete: Usuń + deselect: Odznacz wszystkie none: Żaden order_by: Uporządkuj według save_changes: Zapisz zmiany + select_all_matching_items: + few: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania. + many: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania. + one: Zaznacz %{count} element pasujący do wyszukiwania. + other: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania. today: dzisiaj validation_errors: few: Coś jest wciąż nie tak! Przejrzyj %{count} poniższe błędy @@ -1162,16 +1215,15 @@ pl: merge_long: Zachowaj obecne wpisy i dodaj nowe overwrite: Nadpisz overwrite_long: Zastąp obecne wpisy nowymi - preface: Możesz zaimportować pewne dane (np. lista kont, które śledzisz lub blokujesz) do swojego konta na tym serwerze, korzystając z danych wyeksportowanych z innego serwera. + preface: Możesz zaimportować pewne dane (np. lista kont, które obserwujesz lub blokujesz) do swojego konta na tym serwerze, korzystając z danych wyeksportowanych z innego serwera. success: Twoje dane zostały załadowane i zostaną niebawem przetworzone types: blocking: Lista blokowanych bookmarks: Zakładki domain_blocking: Lista zablokowanych domen - following: Lista śledzonych + following: Lista obserwowanych muting: Lista wyciszonych upload: Załaduj - in_memoriam_html: Ku pamięci. invites: delete: Wygaś expired: Wygasły @@ -1218,7 +1270,7 @@ pl: migrations: acct: nazwa@domena nowego konta cancel: Anuluj przekierowanie - cancel_explanation: Anulowanie przekierowania aktywuje Twoje obecne konto ponownie, ale nie przeniesie z powrotem śledzących, których przeniesiono na tamto konto. + cancel_explanation: Anulowanie przekierowania aktywuje Twoje obecne konto ponownie, ale nie przeniesie z powrotem obserwujących, których przeniesiono na tamto konto. cancelled_msg: Pomyślnie anulowano przekierowanie. errors: already_moved: jest tym samym kontem, na które już się przeniosłeś(-aś) @@ -1226,10 +1278,10 @@ pl: move_to_self: nie może być bieżącym kontem not_found: nie mogło zostać odnalezione on_cooldown: Nie możesz teraz przenieść konta - followers_count: Śledzący w chwili przenoszenia + followers_count: Obserwujący w chwili przenoszenia incoming_migrations: Przenoszenie z innego konta incoming_migrations_html: Aby przenieść się z innego konta na to, musisz najpierw utworzyć alias konta. - moved_msg: Twoje konto przekierowuje teraz na %{acct}, a śledzący są przenoszeni. + moved_msg: Twoje konto przekierowuje teraz na %{acct}, a obserwujący są przenoszeni. not_redirecting: Twoje konto nie przekierowuje obecnie na żadne inne konto. on_cooldown: Ostatnio przeniosłeś(-aś) swoje konto. Ta funkcja będzie dostępna ponownie za %{count} dni. past_migrations: Poprzednie migracje @@ -1242,7 +1294,7 @@ pl: before: 'Zanim kontynuujesz, przeczytaj uważnie te uwagi:' cooldown: Po przeniesieniu się, istnieje okres przez który nie możesz ponownie się przenieść disabled_account: Twoje obecne konto nie będzie później całkowicie użyteczne. Możesz jednak uzyskać dostęp do eksportu danych i ponownie aktywować je. - followers: To działanie przeniesie wszystkich Twoich śledzących z obecnego konta na nowe + followers: To działanie przeniesie wszystkich Twoich obserwujących z obecnego konta na nowe only_redirect_html: Możesz też po prostu skonfigurować przekierowanie na swój profil. other_data: Żadne inne dane nie zostaną automatycznie przeniesione redirect: Twoje obecne konto zostanie uaktualnione o informację o przeniesieniu i wyłączone z wyszukiwania @@ -1252,38 +1304,27 @@ pl: carry_blocks_over_text: Ten użytkownik przeniósł się z konta %{acct}, które zablokowałeś(-aś). carry_mutes_over_text: Ten użytkownik przeniósł się z konta %{acct}, które wyciszyłeś(-aś). copy_account_note_text: 'Ten użytkownik przeniósł się z konta %{acct}, oto Twoje poprzednie notatki o nim:' + navigation: + toggle_menu: Przełącz menu notification_mailer: admin: + report: + subject: "%{name} wysłał raport" sign_up: subject: "%{name} zarejestrował(-a) się" - digest: - action: Wyświetl wszystkie powiadomienia - body: Oto krótkie podsumowanie wiadomości, które ominęły Cię od Twojej ostatniej wizyty (%{since}) - mention: "%{name} wspomniał o Tobie w:" - new_followers_summary: - few: "(%{count}) nowe osoby śledzą Cię!" - many: "(%{count}) nowych osób Cię śledzi! Wspaniale!" - one: Dodatkowo, w czasie nieobecności zaczęła śledzić Cię jedna osoba Gratulacje! - other: Dodatkowo, zaczęło Cię śledzić %{count} nowych osób! Wspaniale! - subject: - few: "%{count} nowe powiadomienia od Twojej ostatniej wizyty 🐘" - many: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘" - one: "1 nowe powiadomienie od Twojej ostatniej wizyty 🐘" - other: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘" - title: W trakcie Twojej nieobecności… favourite: body: 'Twój wpis został polubiony przez %{name}:' subject: "%{name} lubi Twój wpis" title: Nowe polubienie follow: - body: "%{name} Cię śledzi!" - subject: "%{name} Cię śledzi" - title: Nowy śledzący + body: "%{name} Cię obserwuje!" + subject: "%{name} Cię obserwuje" + title: Nowy obserwujący follow_request: - action: Zarządzaj prośbami o możliwość śledzenia - body: "%{name} poprosił(a) o możliwość śledzenia Cię" - subject: 'Prośba o możliwość śledzenia: %{name}' - title: Nowa prośba o możliwość śledzenia + action: Zarządzaj prośbami o możliwość obserwacji + body: "%{name} poprosił(a) o możliwość obserwowania Cię" + subject: 'Prośba o możliwość obserwowania: %{name}' + title: Nowa prośba o możliwość obsewowania mention: action: Odpowiedz body: "%{name} wspomniał(a) o Tobie w:" @@ -1342,6 +1383,8 @@ pl: other: Pozostałe posting_defaults: Domyślne ustawienia wpisów public_timelines: Publiczne osie czasu + privacy_policy: + title: Polityka prywatności reactions: errors: limit_reached: Przekroczono limit różnych reakcji @@ -1349,9 +1392,9 @@ pl: relationships: activity: Aktywność konta dormant: Uśpione - follow_selected_followers: Zacznij śledzić wybranych śledzących - followers: Śledzący - following: Śledzeni + follow_selected_followers: Zacznij obserwować wybranych obserwujących + followers: Obserwujący + following: Obserwowani invited: Zaproszeni last_active: Ostatnia aktywność most_recent: Ostatnie @@ -1359,27 +1402,12 @@ pl: mutual: Wspólna primary: Jednostronna relationship: Relacja - remove_selected_domains: Usuń wszystkich śledzących z zaznaczonych domen - remove_selected_followers: Usuń zaznaczonych śledzących - remove_selected_follows: Przestań śledzić zaznaczonych użytkowników + remove_selected_domains: Usuń wszystkich obserwujących z zaznaczonych domen + remove_selected_followers: Usuń zaznaczonych obserwujących + remove_selected_follows: Przestań obserwować zaznaczonych użytkowników status: Stan konta remote_follow: - acct: Podaj swój adres (nazwa@domena), z którego chcesz wykonać działanie missing_resource: Nie udało się znaleźć adresu przekierowania z Twojej domeny - no_account_html: Nie masz konta? Możesz zarejestrować się tutaj - proceed: Śledź - prompt: 'Zamierzasz śledzić:' - reason_html: "Dlaczego ten krok jest konieczny? %{instance} może nie być serwerem na którym jesteś zarejestrowany(-a), więc musisz zostać przekierowany(-a) na swój serwer." - remote_interaction: - favourite: - proceed: Przejdź do dodania do ulubionych - prompt: 'Chcesz dodać ten wpis do ulubionych:' - reblog: - proceed: Przejdź do podbicia - prompt: 'Chcesz podbić ten wpis:' - reply: - proceed: Przejdź do dodawania odpowiedzi - prompt: 'Chcesz odpowiedzieć na ten wpis:' reports: errors: invalid_rules: nie odwołuje się do prawidłowych reguł @@ -1397,7 +1425,7 @@ pl: browser: Przeglądarka browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1411,7 +1439,7 @@ pl: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Obecna sesja description: "%{browser} na %{platform}" @@ -1420,7 +1448,7 @@ pl: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry + blackberry: BlackBerry chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS @@ -1452,7 +1480,7 @@ pl: notifications: Powiadomienia preferences: Preferencje profile: Profil - relationships: Śledzeni i śledzący + relationships: Obserwowani i obserwujący statuses_cleanup: Automatyczne usuwanie posta strikes: Ostrzeżenia moderacyjne two_factor_authentication: Uwierzytelnianie dwuetapowe @@ -1513,8 +1541,8 @@ pl: title: '%{name}: "%{quote}"' visibilities: direct: Bezpośredni - private: Tylko dla śledzących - private_long: Widoczne tylko dla osób, które Cię śledzą + private: Tylko dla obserwujących + private_long: Widoczne tylko dla osób, które Cię obserwują public: Publiczne public_long: Widoczne dla wszystkich użytkowników unlisted: Niewypisane @@ -1563,89 +1591,6 @@ pl: too_late: Jest za późno na odwołanie się od tego ostrzeżenia tags: does_not_match_previous_name: nie pasuje do poprzedniej nazwy - terms: - body_html: | -

      Polityka prywatności

      -

      Jakie informacje zbieramy?

      - -
        -
      • Podstawowe informacje o koncie: Podczas rejestracji na tym serwerze, możesz zostać poproszony(-a) o wprowadzenie nazwy użytkownika, adresu e-mail i hasła. Możesz także wprowadzić dodatkowe informacje o profilu, takie jak nazwa wyświetlana i biografia oraz wysłać awatar i obraz nagłówka. Nazwa użytkownika, nazwa wyświetlana, biografia, awatar i obraz nagłówka są zawsze widoczne dla wszystkich.
      • -
      • Wpisy, śledzenie i inne publiczne informacje: Lista osób które śledzisz jest widoczna publicznie, tak jak lista osób, które Cię śledzą. Jeżeli dodasz wpis, data i czas jego utworzenia i aplikacja, z której go wysłano są przechowywane. Wiadomości mogą zawierać załączniki multimedialne, takie jak zdjęcia i filmy. Publiczne i niewidoczne wpisy są dostępne publicznie. Udostępniony wpis również jest widoczny publicznie. Twoje wpisy są dostarczane obserwującym, co oznacza że jego kopie mogą zostać dostarczone i być przechowywane na innych serwerach. Kiedy usuniesz wpis, przestaje być widoczny również dla osób śledzących Cię. „Podbijanie” i dodanie do ulubionych jest zawsze publiczne.
      • -
      • Wpisy bezpośrednie i tylko dla śledzących: Wszystkie wpisy są przechowywane i przetwarzane na serwerze. Wpisy przeznaczone tylko dla śledzących są widoczne tylko dla nich i osób wspomnianych we wpisie, a wpisy bezpośrednie tylko dla wspomnianych. W wielu przypadkach oznacza to, że ich kopie są dostarczane i przechowywane na innych serwerach. Staramy się ograniczać zasięg tych wpisów wyłącznie do właściwych odbiorców, ale inne serwery mogą tego nie robić. Ważne jest, aby sprawdzać jakich serwerów używają osoby, które Cię śledzą. Możesz aktywować opcję pozwalającą na ręczne akceptowanie i odrzucanie nowych śledzących. Pamiętaj, że właściciele serwerów mogą zobaczyć te wiadomości, a odbiorcy mogą wykonać zrzut ekranu, skopiować lub udostępniać ten wpis. Nie udostępniaj wrażliwych danych z użyciem Mastodona.
      • -
      • Adresy IP i inne metadane: Kiedy zalogujesz się, przechowujemy adres IP użyty w trakcie logowania wraz z nazwą używanej przeglądarki. Wszystkie aktywne sesje możesz zobaczyć (i wygasić) w ustawieniach. Ostatnio używany adres IP jest przechowywany przez nas do 12 miesięcy. Możemy również przechowywać adresy IP wykorzystywane przy każdym działaniu na serwerze.
      • -
      - -
      - -

      W jakim celu wykorzystujecie informacje?

      - -

      Zebrane informacje mogą zostać użyte w następujące sposoby:

      - -
        -
      • Aby dostarczyć podstawową funkcjonalność Mastodona. Możesz wchodzić w interakcje z zawartością tworzoną przez innych tylko gdy jesteś zalogowany. Na przykład, możesz śledzić innych, aby widzieć ich wpisy w dostosowanej osi czasu.
      • -
      • Aby wspomóc moderację społeczności, na przykład porównując Twój adres IP ze znanymi, aby rozpoznać próbę obejścia blokady i inne naruszenia.
      • -
      • Adres e-mail może zostać wykorzystany, aby wysyłać Ci informacje, powiadomienia o osobach wchodzących w interakcje z tworzoną przez Ciebie zawartością, wysyłających Ci wiadomości, odpowiadać na zgłoszenia i inne żądania lub zapytania.
      • -
      - -
      - -

      W jaki sposób chronimy Twoje dane?

      - -

      Wykorzystujemy różne zabezpieczenia, aby zapewnić bezpieczeństwo informacji, które wprowadzasz, wysyłasz lub do których uzyskujesz dostęp. Poza tym, sesja przeglądarki oraz ruch pomiędzy aplikacją a API jest zabezpieczany z użyciem SSL, a hasło jest hashowane z użyciem silnego algorytmu. Możesz też aktywować uwierzytelnianie dwustopniowe, aby lepiej zabezpieczyć dostęp do konta.

      - -
      - -

      Jaka jest nasza polityka przechowywania danych?

      - -

      Staramy się:

      - -
        -
      • Przechowywać logi zawierające adresy IP używane przy każdym żądaniu do serwera przez nie dłużej niż 90 dni.
      • -
      • Przechowywać adresy IP przypisane do użytkowników przez nie dłużej niż 12 miesięcy.
      • -
      - -

      Możesz zażądać i pobrać archiwum tworzonej zawartości, wliczając Twoje wpisy, załączniki multimedialne, awatar i zdjęcie nagłówka.

      - -

      Możesz nieodwracalnie usunąć konto w każdej chwili.

      - -
      - -

      Czy używany plików cookies?

      - -

      Tak. Pliki cookies są małymi plikami, które strona lub dostawca jej usługi dostarcza na dysk twardy komputera z użyciem przeglądarki internetowej (jeżeli na to pozwoli). Pliki cookies pozwalają na rozpoznanie przeglądarki i – jeśli jesteś zarejestrowany(-a) – przypisanie jej do konta.

      - -

      Wykorzystujemy pliki cookies, aby przechowywać preferencje użytkowników na przyszłe wizyty.

      - -
      - -

      Czy przekazujemy informacje osobom trzecim?

      - -

      Nie sprzedajemy, nie wymieniamy i nie przekazujemy osobom trzecim informacji pozwalających na identyfikację Ciebie. Nie dotyczy to zaufanych dostawców pomagających w prowadzeniu strony lub obsługiwaniu użytkowników, jeżeli zgadzają się, aby nie przekazywać dalej tych informacji. Możemy również udostępnić informacje, jeżeli uważany to za wymagane przez prawo, konieczne do wypełnienia polityki strony, przestrzegania naszych lub cudzych praw, własności i bezpieczeństwa.

      - -

      Twoja publiczna zawartość może zostać pobrana przez inne serwery w sieci. Wpisy publiczne i tylko dla śledzących są dostarczane na serwery, na których znajdują się śledzący Cię, a wiadomości bezpośrednie trafiają na serwery adresatów, jeżeli są oni użytkownikami innego serwera.

      - -

      Kiedy pozwolisz aplikacji na dostęp do Twojego konta, w zależności od nadanych jej pozwoleń, może uzyskać dostęp do publicznych informacji, listy śledzonych, Twoich list, wszystkich wpisów i ulubionych. Aplikacje nie mogą uzyskać dostępu do Twojego adresu e-mail i hasła.

      - -
      - -

      Korzystanie ze strony przez dzieci

      - -

      Jeżeli serwer znajduje się w UE lub w EOG: Ta strona, produkty i usługi są przeznaczone dla osób, które ukończyły 16 lat. Jeżeli nie ukończyłeś(-aś) 16 roku życia, zgodnie z wymogami RODO (Ogólne rozporządzenie o ochronie danych), nie używaj tej strony.

      - -

      Jeżeli serwer znajduje się w USA: Ta strona, produkty i usługi są przeznaczone dla osób, które ukończyły 13 lat. Jeżeli nie ukończyłeś(-aś) 13 roku życia, zgodnie z wymogami COPPA (Prawo o Ochronie Prywatności Dzieci w Internecie), nie używaj tej strony.

      - -

      Wymogi mogą być inne, jeżeli serwer znajduje się w innym kraju.

      - -
      - -

      Zmiany w naszej polityce prywatności

      - -

      Jeżeli zdecydujemy się na zmiany w polityce prywatności, pojawią się na tej stronie.

      - -

      Dokument jest dostępny na licencji CC-BY-SA. Ostatnio zmodyfikowano go 7 marca 2018, przetłumaczono 9 kwietnia 2018. Tłumaczenie (mimo dołożenia wszelkich starań) może nie być w pełni poprawne.

      - -

      Bazowano na polityce prywatności Discourse.

      - title: Zasady korzystania i polityka prywatności %{instance} themes: contrast: Mastodon (Wysoki kontrast) default: Mastodon (Ciemny) @@ -1664,7 +1609,7 @@ pl: enabled_success: Pomyślnie aktywowano uwierzytelnianie dwuetapowe generate_recovery_codes: Generuj kody zapasowe lost_recovery_codes: Kody zapasowe pozwolą uzyskać dostęp do portalu, jeżeli utracisz dostęp do telefonu. Jeżeli utracisz dostęp do nich, możesz wygenerować je ponownie tutaj. Poprzednie zostaną unieważnione. - methods: Metody uwierzytelniania dwuetapowego + methods: Metody uwierzytelniania dwuskładnikowego otp: Aplikacja uwierzytelniająca recovery_codes: Przywróć kody zapasowe recovery_codes_regenerated: Pomyślnie wygenerowano ponownie kody zapasowe @@ -1702,7 +1647,7 @@ pl: disable: Nie możesz już używać swojego konta, ale Twój profil i inne dane pozostają nienaruszone. Możesz poprosić o kopię swoich danych, zmienić ustawienia konta lub usunąć swoje konto. mark_statuses_as_sensitive: Niektóre z Twoich postów zostały oznaczone jako wrażliwe przez moderatorów %{instance}. Oznacza to, że ludzie będą musieli dotknąć mediów w postach przed wyświetleniem podglądu. Możesz oznaczyć media jako wrażliwe podczas publikowania w przyszłości. sensitive: Od teraz wszystkie przesłane pliki multimedialne będą oznaczone jako wrażliwe i ukryte za ostrzeżeniem kliknięcia. - silence: Kiedy Twoje konto jest ograniczone, tylko osoby, które je śledzą, będą widzieć Twoje wpisy. Może ono też przestać być widoczne w funkcjach odkrywania. Inni wciąż mogą zacząć Cię śledzić. + silence: Kiedy Twoje konto jest ograniczone, tylko osoby, które je obserwują, będą widzieć Twoje wpisy. Może ono też przestać być widoczne w funkcjach odkrywania. Inni wciąż mogą zacząć Cię obserwować. suspend: Nie możesz już używać Twojego konta, a Twój profil i inne dane nie są już dostępne. Zanim w pełni usuniemy Twoje dane po około 30 dniach, możesz nadal zalogować się, aby uzyskać ich kopię. Zachowamy pewne podstawowe dane, aby zapobiegać obchodzeniu przez Ciebie zawieszenia. reason: 'Powód:' statuses: 'Cytowane posty:' @@ -1724,27 +1669,20 @@ pl: suspend: Konto zawieszone welcome: edit_profile_action: Skonfiguruj profil - edit_profile_step: Możesz dostosować profil wysyłając awatar, obraz nagłówka, zmieniając wyświetlaną nazwę i wiele więcej. Jeżeli chcesz, możesz zablokować konto, aby kontrolować, kto może Cię śledzić. + edit_profile_step: Możesz dostosować profil wysyłając awatar, zmieniając wyświetlaną nazwę i o wiele więcej. Jeżeli chcesz, możesz również włączyć przeglądanie i ręczne akceptowanie nowych próśb o możliwość obserwacji Twojego profilu. explanation: Kilka wskazówek, które pomogą Ci rozpocząć final_action: Zacznij pisać - final_step: 'Zacznij tworzyć! Nawet jeżeli nikt Cię nie śledzi, Twoje publiczne wiadomości będą widziane przez innych, na przykład na lokalnej osi czasu i w hashtagach. Możesz też utworzyć wpis wprowadzający używając hashtagu #introductions.' + final_step: 'Zacznij tworzyć! Nawet jeżeli nikt Cię nie obserwuje, Twoje publiczne wiadomości będą widziane przez innych, na przykład na lokalnej osi czasu i w hashtagach. Możesz też utworzyć wpis wprowadzający używając hashtagu #introductions.' full_handle: Twój pełny adres - full_handle_hint: Ten adres możesz podać znajomym, aby mogli skontaktować się z Tobą lub zacząć śledzić z innego serwera. - review_preferences_action: Zmień ustawienia - review_preferences_step: Upewnij się, że zmieniłeś(-aś) ustawienia, takie jak maile, które chciałbyś otrzymywać lub domyślne opcje prywatności. Jeżeli nie masz choroby lokomocyjnej, możesz włączyć automatyczne odtwarzanie animacji GIF. + full_handle_hint: Ten adres możesz podać znajomym, aby mogli skontaktować się z Tobą lub zacząć obserwować z innego serwera. subject: Witaj w Mastodonie - tip_federated_timeline: Oś czasu federacji przedstawia całą sieć Mastodona. Wyświetla tylko wpisy osób, które śledzą użytkownicy Twojej instancji, więc nie jest kompletna. - tip_following: Domyślnie śledzisz administratora/ów swojej instancji. Aby znaleźć więcej ciekawych ludzi, zajrzyj na lokalną i federalną oś czasu. - tip_local_timeline: Lokalna oś czasu przedstawia osoby z %{instance}. To Twoi najbliżsi sąsiedzi! - tip_mobile_webapp: Jeżeli Twoja przeglądarka pozwala na dodanie Mastodona na ekran główny, będziesz otrzymywać natychmiastowe powiadomienia. Działa to prawie jak natywna aplikacja! - tips: Wskazówki title: Witaj na pokładzie, %{name}! users: - follow_limit_reached: Nie możesz śledzić więcej niż %{limit} osób + follow_limit_reached: Nie możesz obserwować więcej niż %{limit} osób invalid_otp_token: Kod uwierzytelniający jest niepoprawny otp_lost_help_html: Jeżeli utracisz dostęp do obu, możesz skontaktować się z %{email} seamless_external_login: Zalogowano z użyciem zewnętrznej usługi, więc ustawienia hasła i adresu e-mail nie są dostępne. - signed_in_as: 'Zalogowany jako:' + signed_in_as: 'Zalogowano jako:' verification: explanation_html: 'Możesz zweryfikować siebie jako właściciela stron, do których odnośniki znajdują się w metadanych. Aby to zrobić, strona musi zawierać odnośnik do Twojego profilu na Mastodonie. Odnośnik musi zawierać atrybut rel="me". Jego zawartość nie ma znaczenia. Przykład:' verification: Weryfikacja diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index e647b4c0141cd3..6d3fbf60ff7359 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1,116 +1,54 @@ --- pt-BR: about: - about_hashtag_html: Estes são toots públicos com a hashtag #%{hashtag}. Você pode interagir com eles se tiver uma conta em qualquer lugar no fediverso. about_mastodon_html: 'A rede social do futuro: Sem anúncios, sem vigilância corporativa, com design ético e muita descentralização! Possua seus próprios dados com o Mastodon!' - about_this: Sobre - active_count_after: ativo - active_footnote: Usuários Ativos Mensalmente (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicativos - apps_platforms: Use o Mastodon a partir do iOS, Android e outras plataformas - browse_directory: Navegue pelo diretório de perfis e filtre por interesses - browse_local_posts: Navegue pelos toots públicos locais em tempo real - browse_public_posts: Navegue pelos toots públicos globais em tempo real - contact: Contato contact_missing: Não definido contact_unavailable: Não disponível - continue_to_web: Continuar no aplicativo web - discover_users: Descubra usuários - documentation: Documentação - federation_hint_html: Com uma conta em %{instance} você vai poder seguir e interagir com pessoas de qualquer canto do fediverso. - get_apps: Experimente um aplicativo - hosted_on: Instância Mastodon em %{domain} - instance_actor_flash: | - Esta conta é um ator virtual usado para representar o próprio servidor e não qualquer usuário individual. - É usado para propósitos de federação e não deve ser bloqueado a menos que queira bloquear toda a instância, o que no caso devia usar um bloqueio de domínio. - learn_more: Saiba mais - logged_in_as_html: Você está atualmente logado como %{username}. - logout_before_registering: Já está logado. - privacy_policy: Política de Privacidade - rules: Regras do servidor - rules_html: 'Abaixo está um resumo das regras que você precisa seguir se você quer ter uma conta neste servidor do Mastodon:' - see_whats_happening: Veja o que está acontecendo - server_stats: 'Estatísticas da instância:' - source_code: Código-fonte - status_count_after: - one: toot - other: toots - status_count_before: Autores de - tagline: Siga seus amigos e faça novas amizades - terms: Termos de serviço - unavailable_content: Conteúdo indisponível - unavailable_content_description: - domain: Instância - reason: 'Motivo:' - rejecting_media: 'Arquivos de mídia destas instâncias não serão processados ou armazenados e nenhuma miniatura será exibida, exigindo que o usuário abra o arquivo original manualmente:' - rejecting_media_title: Mídia filtrada - silenced: 'Toots destas instâncias serão ocultos em linhas e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus usuários, a menos que esteja sendo seguido:' - silenced_title: Servidores silenciados - suspended: 'Você não será capaz de seguir ninguém destas instâncias, e nenhum dado delas será processado, armazenado ou trocado:' - suspended_title: Servidores banidos - unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico. - user_count_after: - one: usuário - other: usuários - user_count_before: Casa de - what_is_mastodon: O que é Mastodon? + hosted_on: Servidor Mastodon em %{domain} + title: Sobre accounts: - choices_html: 'Sugestões de %{name}:' - endorsements_hint: Você pode sugerir pessoas que você segue, elas aparecerão aqui. - featured_tags_hint: Você pode destacar hashtags específicas, elas aparecerão aqui. follow: Seguir followers: one: Seguidor other: Seguidores following: Seguindo instance_actor_flash: Esta conta é um ator virtual usado para representar o próprio servidor e não um usuário individual. É utilizada para fins de federação e não deve ser suspensa. - joined: Entrou em %{date} last_active: última atividade link_verified_on: O link foi verificado em %{date} - media: Mídia - moved_html: "%{name} se mudou para %{new_profile_link}:" - network_hidden: Informação indisponível nothing_here: Nada aqui! - people_followed_by: Pessoas que %{name} segue - people_who_follow: Pessoas que seguem %{name} pin_errors: following: Você deve estar seguindo a pessoa que você deseja sugerir posts: - one: Toot - other: Toots - posts_tab_heading: Toots - posts_with_replies: Toots e respostas - roles: - admin: Admin - bot: Robô - group: Grupo - moderator: Moderador - unavailable: Perfil indisponível - unfollow: Deixar de seguir + one: Publicação + other: Publicações + posts_tab_heading: Publicações admin: account_actions: action: Tomar uma atitude title: Moderar %{acct} account_moderation_notes: create: Deixar nota - created_msg: Nota de moderação criada com sucesso! - destroyed_msg: Nota de moderação excluída com sucesso! + created_msg: Nota de moderação criada! + destroyed_msg: Nota de moderação excluída! accounts: - add_email_domain_block: Adicionar o domínio de e-mail à lista negra + add_email_domain_block: Bloquear domínio de e-mail approve: Aprovar - approved_msg: Aprovado com sucesso o pedido de registro de %{username} + approved_msg: O registro de %{username} foi aprovado are_you_sure: Você tem certeza? avatar: Imagem de perfil by_domain: Domínio change_email: - changed_msg: E-mail da conta alterado com sucesso! + changed_msg: E-mail alterado! current_email: E-mail atual label: Alterar e-mail new_email: Novo e-mail submit: Alterar e-mail title: Alterar e-mail para %{username} + change_role: + changed_msg: Cargo alterado! + label: Alterar cargo + no_role: Sem cargo + title: Alterar cargo para %{username} confirm: Confirmar confirmed: Confirmado confirming: Confirmando @@ -122,16 +60,16 @@ pt-BR: disable: Congelar disable_sign_in_token_auth: Desativar autenticação via token por email disable_two_factor_authentication: Desativar autenticação de dois fatores - disabled: Desativada + disabled: Congelada display_name: Nome de exibição domain: Domínio edit: Editar email: E-mail - email_status: Status do e-mail + email_status: Estado do e-mail enable: Descongelar enable_sign_in_token_auth: Ativar autenticação via token por email enabled: Ativada - enabled_msg: Descongelada com sucesso a conta de %{username} + enabled_msg: A conta de %{username} foi descongelada followers: Seguidores follows: Seguindo header: Capa @@ -149,56 +87,53 @@ pt-BR: media_attachments: Mídias anexadas memorialize: Converter em memorial memorialized: Convertidas em memorial - memorialized_msg: Transformou com sucesso %{username} em uma conta memorial + memorialized_msg: A conta de %{username} foi transformada em uma conta memorial moderation: active: Ativo all: Todos pending: Pendente - suspended: Banidos + silenced: Limitado + suspended: Suspendido title: Moderação moderation_notes: Notas de moderação most_recent_activity: Atividade mais recente most_recent_ip: IP mais recente no_account_selected: Nenhuma conta foi alterada, pois nenhuma conta foi selecionada - no_limits_imposed: Nenhum limite imposto + no_limits_imposed: Sem limite imposto + no_role_assigned: Sem cargo not_subscribed: Não inscrito pending: Revisão pendente - perform_full_suspension: Banir - previous_strikes: Ataques anteriores + perform_full_suspension: Suspender + previous_strikes: Avisos anteriores previous_strikes_description_html: - one: Esta conta tem um ataque. + one: Esta conta tem um aviso. other: Esta conta tem %{count} ataques. promote: Promover protocol: Protocolo public: Público push_subscription_expires: Inscrição PuSH expira redownload: Atualizar perfil - redownloaded_msg: Atualizado com sucesso o perfil de %{username} a partir da origem - reject: Vetar - rejected_msg: Rejeitado com sucesso o pedido de registro de %{username} + redownloaded_msg: O perfil de %{username} foi atualizado a partir da origem + reject: Rejeitar + rejected_msg: O pedido de registro de %{username} foi rejeitado remove_avatar: Remover imagem de perfil remove_header: Remover capa - removed_avatar_msg: Removida com sucesso a imagem de avatar de %{username} - removed_header_msg: Removida com sucesso a imagem de capa de %{username} + removed_avatar_msg: A imagem de perfil de %{username} foi removida + removed_header_msg: A capa de %{username} foi removida resend_confirmation: already_confirmed: Este usuário já está confirmado send: Reenviar o e-mail de confirmação - success: E-mail de confirmação enviado com sucesso! + success: E-mail de confirmação enviado! reset: Redefinir reset_password: Redefinir senha resubscribe: Reinscrever-se - role: Permissões - roles: - admin: Administrador - moderator: Moderador - staff: Equipe - user: Usuário - search: Pesquisar + role: Cargo + search: Buscar search_same_email_domain: Outros usuários com o mesmo domínio de e-mail search_same_ip: Outros usuários com o mesmo IP security_measures: - only_password: Somente senha - password_and_2fa: Senha e 2FA + only_password: Apenas senha + password_and_2fa: Senha e autenticação de dois fatores sensitive: Sensíveis sensitized: marcadas como sensíveis shared_inbox_url: Link da caixa de entrada compartilhada @@ -207,8 +142,8 @@ pt-BR: targeted_reports: Denúncias sobre esta conta silence: Silenciar silenced: Silenciado - statuses: Toots - strikes: Ataques anteriores + statuses: Publicações + strikes: Avisos anteriores subscribe: Inscrever-se suspend: Suspender suspended: Banido @@ -216,14 +151,14 @@ pt-BR: suspension_reversible_hint_html: A conta foi suspensa e os dados serão totalmente removidos em %{date}. Até lá, a conta pode ser restaurada sem nenhum efeito negativo. Se você deseja remover todos os dados da conta imediatamente, você pode fazer isso abaixo. title: Contas unblock_email: Desbloquear endereço de e-mail - unblocked_email_msg: Endereço de e-mail de %{username} desbloqueado com sucesso + unblocked_email_msg: O endereço de e-mail de %{username} foi desbloqueado unconfirmed_email: E-mail não confirmado undo_sensitized: Desfazer sensível undo_silenced: Desfazer silêncio undo_suspension: Desbanir - unsilenced_msg: Removidas com sucesso as limitações da conta de %{username} + unsilenced_msg: As limitações da conta de %{username} foram removidas unsubscribe: Cancelar inscrição - unsuspended_msg: Removida com sucesso a suspensão da conta de %{username} + unsuspended_msg: A suspensão da conta de %{username} foi removida username: Nome de usuário view_domain: Ver resumo para o domínio warn: Notificar @@ -235,17 +170,21 @@ pt-BR: approve_user: Aprovar Usuário assigned_to_self_report: Adicionar relatório change_email_user: Editar e-mail do usuário + change_role_user: Alteração de Função do Usuário confirm_user: Confirmar Usuário create_account_warning: Criar Aviso create_announcement: Criar Anúncio + create_canonical_email_block: Criar bloqueio de Endereço eletrônico create_custom_emoji: Criar Emoji Personalizado create_domain_allow: Adicionar domínio permitido create_domain_block: Criar Bloqueio de Domínio create_email_domain_block: Criar Bloqueio de Domínio de E-mail create_ip_block: Criar regra de IP create_unavailable_domain: Criar domínio indisponível + create_user_role: Criar Função demote_user: Rebaixar usuário destroy_announcement: Excluir anúncio + destroy_canonical_email_block: Excluir Bloqueio de Endereço Eletrônico destroy_custom_emoji: Excluir emoji personalizado destroy_domain_allow: Excluir domínio permitido destroy_domain_block: Excluir Bloqueio de Domínio @@ -254,6 +193,7 @@ pt-BR: destroy_ip_block: Excluir regra de IP destroy_status: Excluir Status destroy_unavailable_domain: Deletar domínio indisponível + destroy_user_role: Destruir Função disable_2fa_user: Desativar autenticação de dois fatores disable_custom_emoji: Desativar Emoji Personalizado disable_sign_in_token_auth_user: Desativar autenticação via token por email para Usuário @@ -265,8 +205,9 @@ pt-BR: promote_user: Promover usuário reject_appeal: Rejeitar recurso reject_user: Rejeitar Usuário - remove_avatar_user: Remover Avatar + remove_avatar_user: Remover imagem de perfil reopen_report: Reabrir Relatório + resend_user: Reenviar o E-mail de Confirmação reset_password_user: Redefinir a senha resolve_report: Resolver Relatório sensitive_account: Marcar a mídia na sua conta como sensível @@ -280,32 +221,39 @@ pt-BR: update_announcement: Editar anúncio update_custom_emoji: Editar Emoji Personalizado update_domain_block: Atualizar bloqueio de domínio + update_ip_block: Atualizar regra de IP update_status: Editar Status + update_user_role: Atualizar função actions: approve_appeal_html: "%{name} aprovou o recurso de decisão de moderação de %{target}" approve_user_html: "%{name} aprovado inscrição de %{target}" assigned_to_self_report_html: "%{name} atribuiu o relatório %{target} para si" change_email_user_html: "%{name} alterou o endereço de e-mail do usuário %{target}" + change_role_user_html: "%{name} alterou a função de %{target}" confirm_user_html: "%{name} confirmou o endereço de e-mail do usuário %{target}" create_account_warning_html: "%{name} enviou um aviso para %{target}" create_announcement_html: "%{name} criou o novo anúncio %{target}" + create_canonical_email_block_html: "%{name} bloqueou o endereço com o marcador %{target}" create_custom_emoji_html: "%{name} enviou o novo emoji %{target}" create_domain_allow_html: "%{name} permitiu federação com domínio %{target}" create_domain_block_html: "%{name} bloqueou o domínio %{target}" create_email_domain_block_html: "%{name} bloqueou do domínio de e-mail %{target}" create_ip_block_html: "%{name} criou regra para o IP %{target}" create_unavailable_domain_html: "%{name} parou a entrega ao domínio %{target}" + create_user_role_html: "%{name} criou a função %{target}" demote_user_html: "%{name} rebaixou o usuário %{target}" destroy_announcement_html: "%{name} excluiu o anúncio %{target}" - destroy_custom_emoji_html: "%{name} excluiu emoji %{target}" + destroy_canonical_email_block_html: "%{name} desbloqueou o endereço com o marcador %{target}" + destroy_custom_emoji_html: "%{name} apagou o emoji %{target}" destroy_domain_allow_html: "%{name} bloqueou federação com domínio %{target}" destroy_domain_block_html: "%{name} deixou de bloquear domínio %{target}" destroy_email_domain_block_html: "%{name} adicionou domínio de e-mail %{target} à lista branca" destroy_instance_html: "%{name} purgou o domínio %{target}" destroy_ip_block_html: "%{name} excluiu regra para o IP %{target}" - destroy_status_html: "%{name} excluiu post de %{target}" + destroy_status_html: "%{name} removeu a publicação de %{target}" destroy_unavailable_domain_html: "%{name} retomou a entrega ao domínio %{target}" - disable_2fa_user_html: "%{name} desativou a exigência de autenticação de dois fatores para o usuário %{target}" + destroy_user_role_html: "%{name} excluiu a função %{target}" + disable_2fa_user_html: "%{name} desativou a exigência da autenticação de dois fatores para o usuário %{target}" disable_custom_emoji_html: "%{name} desativou o emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} desativou a autenticação via token por email para %{target}" disable_user_html: "%{name} desativou o login para %{target}" @@ -318,6 +266,7 @@ pt-BR: reject_user_html: "%{name} rejeitou a inscrição de %{target}" remove_avatar_user_html: "%{name} removeu a imagem de perfil de %{target}" reopen_report_html: "%{name} reabriu a denúncia %{target}" + resend_user_html: "%{name} reenviou um e-mail de confirmação para %{target}" reset_password_user_html: "%{name} redefiniu a senha de %{target}" resolve_report_html: "%{name} fechou a denúncia %{target}" sensitive_account_html: "%{name} marcou a mídia de %{target} como sensível" @@ -331,14 +280,16 @@ pt-BR: update_announcement_html: "%{name} atualizou o comunicado %{target}" update_custom_emoji_html: "%{name} atualizou o emoji %{target}" update_domain_block_html: "%{name} atualizou o bloqueio de domínio de %{target}" + update_ip_block_html: "%{name} alterou a regra para IP %{target}" update_status_html: "%{name} atualizou a publicação de %{target}" - deleted_status: "(status excluído)" + update_user_role_html: "%{name} alterou a função %{target}" + deleted_account: conta excluída empty: Nenhum registro encontrado. filter_by_action: Filtrar por ação filter_by_user: Filtrar por usuário title: Auditar histórico announcements: - destroyed_msg: Anúncio excluído com sucesso! + destroyed_msg: Anúncio excluído! edit: title: Editar anúncio empty: Sem anúncios. @@ -347,35 +298,36 @@ pt-BR: create: Criar anúncio title: Novo anúncio publish: Publicar - published_msg: Anúncio publicado com sucesso! + published_msg: Anúncio publicado! scheduled_for: Agendado para %{time} scheduled_msg: Anúncio agendado para publicação! title: Anúncios unpublish: Cancelar publicação - unpublished_msg: Anúncio despublicado com sucesso! - updated_msg: Anúncio atualizado com sucesso! + unpublished_msg: Anúncio desfeito! + updated_msg: Anúncio atualizado! custom_emojis: assign_category: Atribuir categoria by_domain: Domínio - copied_msg: Cópia local do emoji criada com sucesso + copied_msg: Emoji copiado localmente copy: Copiar copy_failed_msg: Não foi possível criar cópia local do emoji create_new_category: Criar nova categoria - created_msg: Emoji criado com sucesso! + created_msg: Emoji criado! delete: Excluir - destroyed_msg: Emoji excluído com sucesso! + destroyed_msg: Emoji excluído! disable: Desativar disabled: Desativado - disabled_msg: Emoji desativado com sucesso + disabled_msg: Emoji desativado emoji: Emoji enable: Ativar enabled: Ativado - enabled_msg: Emoji ativado com sucesso + enabled_msg: Emoji ativado image_hint: PNG ou GIF até %{size} list: Listar listed: Listado new: title: Adicionar novo emoji personalizado + no_emoji_selected: Nenhum emoji foi alterado, pois nenhum foi selecionado not_permitted: Você não tem permissão para executar esta ação overwrite: Sobrescrever shortcode: Atalho @@ -385,7 +337,7 @@ pt-BR: unlist: Não listar unlisted: Não-listado update_failed_msg: Não foi possível atualizar esse emoji - updated_msg: Emoji atualizado com sucesso! + updated_msg: Emoji atualizado! upload: Enviar dashboard: active_users: usuários ativos @@ -420,20 +372,21 @@ pt-BR: domain_allows: add_new: Permitir domínio created_msg: Domínio foi permitido - destroyed_msg: Domínio foi bloqueado - undo: Bloquear + destroyed_msg: Domínio foi proibido de federar + undo: Bloquear federação com domínio domain_blocks: add_new: Adicionar novo bloqueio de domínio created_msg: Domínio está sendo bloqueado destroyed_msg: Domínio desbloqueado domain: Domínio edit: Editar bloqueio de domínio + existing_domain_block: Você já impôs limites mais rigorosos em %{name}. existing_domain_block_html: Você já impôs limites mais estritos em %{name}, você precisa desbloqueá-lo primeiro. new: create: Criar bloqueio hint: O bloqueio de domínio não vai prevenir a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nessas contas. severity: - desc_html: "Silenciar vai fazer os posts da conta invisíveis para qualquer um que não os esteja seguindo. Suspender vai remover todo o conteúdo, mídia, e dados de perfil da conta. Use Nenhum se você só quer rejeitar arquivos de mídia." + desc_html: "Silenciar vai tornar as publicações da conta invisíveis para qualquer um que não o esteja seguindo. Suspender vai remover todo o conteúdo, mídia e dados de perfil da conta. Use Nenhum se você só quer rejeitar arquivos de mídia." noop: Nenhum silence: Silenciar suspend: Banir @@ -455,7 +408,7 @@ pt-BR: attempts_over_week: one: "%{count} tentativa na última semana" other: "%{count} tentativas de inscrição na última semana" - created_msg: Domínio de e-mail adicionado à lista negra com sucesso + created_msg: O domínio de e-mail foi adicionado à lista negra delete: Excluir dns: types: @@ -480,8 +433,8 @@ pt-BR: instances: availability: description_html: - one: Se a entrega ao domínio falhar %{count} dia sem sucesso, nenhuma tentativa de entrega será feita a menos que uma entrega de do domínio seja recebida. - other: Se a entrega ao domínio falhar em %{count} dias diferentes sem sucesso, nenhuma tentativa de entrega será feita a menos que uma entrega de do domínio seja recebida. + one: Se a entrega ao domínio falhar em %{count} dia sem sucesso, nenhuma tentativa de entrega será feita a menos que uma entrega do domínio seja recebida. + other: Se a entrega ao domínio falhar em %{count} dias diferentes sem sucesso, nenhuma tentativa de entrega será feita a menos que uma entrega do domínio seja recebida. failure_threshold_reached: Limite de falhas atingido em %{date}. failures_recorded: one: Falha na tentativa em %{count} dia. @@ -554,7 +507,7 @@ pt-BR: title: Convites ip_blocks: add_new: Criar regra - created_msg: Nova regra de IP adicionada com sucesso + created_msg: Nova regra de IP adicionada delete: Excluir expires_in: '1209600': 2 semanas @@ -572,11 +525,11 @@ pt-BR: relays: add_new: Adicionar novo repetidor delete: Excluir - description_html: Um repetidor de federação é um servidor intermediário que troca um grande volume de toots públicos entre instâncias que se inscrevem e publicam nele. O repetidor pode ser usado para ajudar instâncias pequenas e médias a descobrir conteúdo pelo fediverso, que normalmente precisariam que usuários locais manualmente seguissem outras pessoas em instâncias remotas. + description_html: Um repetidor de federação é um servidor intermediário que troca um grande volume de publicações públicas entre servidores que se inscrevem e publicam nele. Ele pode ser usado para ajudar os servidores pequenos e médios a descobrir o conteúdo pelo fediverso, que normalmente precisariam que usuários locais manualmente seguissem outras pessoas em servidores remotas. disable: Desativar disabled: Desativado enable: Ativar - enable_hint: Uma vez ativado, sua instância se inscreverá para receber todos os toots públicos desse repetidor; E vai começar a enviar todos os toots públicos desta instância para o repetidor. + enable_hint: Uma vez ativado, seu servidor se inscreverá para receber todas as publicações deste repetidor e começará a enviar todas as publicações deste servidor para o repetidor. enabled: Ativado inbox_url: Link do repetidor pending: Esperando pela aprovação do repetidor @@ -586,8 +539,8 @@ pt-BR: status: Situação title: Repetidores report_notes: - created_msg: Nota de denúncia criada com sucesso! - destroyed_msg: Nota de denúncia excluída com sucesso! + created_msg: Nota de denúncia criada! + destroyed_msg: Nota de denúncia excluída! today_at: Hoje às %{time} reports: account: @@ -597,9 +550,15 @@ pt-BR: action_log: Logs de auditoria action_taken_by: Atitude tomada por actions: + delete_description_html: As publicações denunciadas serão apagadas e um aviso de violação será mantido para te informar sobre o agravamento caso essa mesma conta cometa infrações no futuro. + mark_as_sensitive_description_html: Os conteúdos de mídia em publicações denunciadas serão marcados como sensíveis e um aviso de violação será mantido para te informar sobre o agravamento caso essa mesma conta comenta infrações no futuro. other_description_html: Veja mais opções para controlar o comportamento da conta e personalizar a comunicação com a conta reportada. + resolve_description_html: Nenhuma ação será tomada contra a conta denunciada, nenhuma violação será guardada, e a denúncia será encerrada. silence_description_html: O perfil será visível apenas para aqueles que já o seguem ou que o procuram manualmente, limitando severamente seu alcance. Pode ser sempre revertido. suspend_description_html: O perfil e todo o seu conteúdo ficarão inacessíveis até que seja eventualmente excluído. Interagir com a conta será impossível. Reversível dentro de 30 dias. + actions_description_html: 'Decida que medidas tomar para resolver esta denúncia. Se você receber uma ação punitiva contra a conta denunciada, ela receberá uma notificação por e-mail, exceto quando for selecionada a categoria Spam for selecionada. + + ' add_to_report: Adicionar mais ao relatório are_you_sure: Você tem certeza? assign_to_self: Pegar @@ -615,6 +574,7 @@ pt-BR: forwarded: Encaminhados forwarded_to: Encaminhado para %{domain} mark_as_resolved: Marcar como resolvido + mark_as_sensitive: Marcar como sensível mark_as_unresolved: Marcar como não resolvido no_one_assigned: Ninguém notes: @@ -626,22 +586,82 @@ pt-BR: title: Notas notes_description_html: Visualize e deixe anotações para outros moderadores e para o seu "eu" do futuro quick_actions_description_html: 'Tome uma ação rápida ou role para baixo para ver o conteúdo relatado:' + remote_user_placeholder: o usuário remoto de %{instance} reopen: Reabrir denúncia report: 'Denúncia #%{id}' reported_account: Conta denunciada reported_by: Denunciada por resolved: Resolvido - resolved_msg: Denúncia resolvida com sucesso! + resolved_msg: Denúncia resolvida! skip_to_actions: Pular para ações status: Situação statuses: Conteúdo denunciado - statuses_description_html: Conteúdo Ofensivo será citado em comunicação com a conta relatada + statuses_description_html: Conteúdo ofensivo será citado em comunicação com a conta denunciada target_origin: Origem da conta relatada title: Denúncias unassign: Largar unresolved: Não resolvido updated_at: Atualizado view_profile: Ver perfil + roles: + add_new: Adicionar função + assigned_users: + one: "%{count} usuário" + other: "%{count} usuários" + categories: + administration: Administração + invites: Convites + moderation: Moderação + special: Especial + delete: Excluir + description_html: Com as funções de usuário, você pode personalizar quais funções e áreas do Mastodon seus usuários podem acessar. + edit: Editar função de '%{name}' + everyone: Permissões padrão + everyone_full_description_html: Esta é a função base que afeta todos os usuários, mesmo aqueles sem uma função atribuída. Todas as outras funções dela herdam as suas permissões. + permissions_count: + one: "%{count} permissão" + other: "%{count} permissões" + privileges: + administrator: Administrador + administrator_description: Usuários com essa permissão irão ignorar todas as permissões + delete_user_data: Apagar Dados de Usuário + delete_user_data_description: Permitir aos usuários apagar os dados de outros usuários instantaneamente + invite_users: Convidar Usuários + invite_users_description: Permite que os usuários convidem novas pessoas para o servidor + manage_announcements: Gerenciar Avisos + manage_announcements_description: Permite aos usuários gerenciar anúncios no servidor + manage_appeals: Gerenciar Apelações + manage_appeals_description: Permite aos usuários revisar as apelações contra ações de moderação + manage_blocks: Gerenciar Bloqueios + manage_blocks_description: Permite aos usuários bloquear provedores de e-mail e endereços IP + manage_custom_emojis: Gerenciar Emojis Personalizados + manage_custom_emojis_description: Permite aos usuários gerenciar emojis personalizados no servidor + manage_federation: Gerenciar Federação + manage_federation_description: Permite aos usuários bloquear ou permitir federação com outros domínios e controlar a entregabilidade + manage_invites: Gerenciar convites + manage_invites_description: Permite que os usuários naveguem e desativem os links de convites + manage_reports: Gerenciar relatórios + manage_reports_description: Permite aos usuários avaliar denúncias e realizar ações de moderação contra elas + manage_roles: Gerenciar Funções + manage_roles_description: Permitir que os usuários gerenciem e atribuam papéis abaixo deles + manage_rules: Gerenciar Regras + manage_rules_description: Permite que os usuários alterarem as regras do servidor + manage_settings: Gerenciar Configurações + manage_settings_description: Permite que os usuários alterem as configurações do site + manage_taxonomies: Gerenciar taxonomias + manage_taxonomies_description: Permite aos usuários rever o conteúdo em alta e atualizar as configurações de hashtag + manage_user_access: Gerenciar Acesso de Usuário + manage_user_access_description: Permite aos usuários desativar a autenticação de dois fatores de outros usuários, alterar seu endereço de e-mail e redefinir sua senha + manage_users: Gerenciar usuários + manage_users_description: Permite aos usuários ver os detalhes de outros usuários e executar ações de moderação contra eles + manage_webhooks: Gerenciar Webhooks + manage_webhooks_description: Permite aos usuários configurar webhooks para eventos administrativos + view_audit_log: Ver o registro de auditoria + view_audit_log_description: Permite aos usuários ver um histórico de ações administrativas no servidor + view_dashboard: Ver painel + view_dashboard_description: Permite que os usuários acessem o painel e várias métricas + view_devops_description: Permite aos usuários acessar os painéis da Sidekiq e pgHero + title: Funções rules: add_new: Adicionar regra delete: Deletar @@ -650,138 +670,126 @@ pt-BR: empty: Nenhuma regra do servidor foi definida. title: Regras do servidor settings: - activity_api_enabled: - desc_html: Contagem de toots locais, usuários ativos e novos usuários semanalmente - title: Publicar estatísticas agregadas sobre atividade de usuários - bootstrap_timeline_accounts: - desc_html: Separe nomes de usuário através de vírgulas. Funciona apenas com contas locais e destrancadas. O padrão quando vazio são todos os administradores locais. - title: Usuários a serem seguidos por padrão por novas contas - contact_information: - email: E-mail - username: Usuário de contato - custom_css: - desc_html: Alterar o visual com CSS carregado em todas as páginas - title: CSS personalizado - default_noindex: - desc_html: Afeta qualquer usuário que não tenha alterado esta configuração manualmente - title: Optar por excluir usuários da indexação de mecanismos de pesquisa por padrão + about: + manage_rules: Gerenciar regras do servidor + preamble: Forneça informações detalhadas sobre como o servidor é operado, moderado e financiado. + rules_hint: Existe uma área dedicada para as regras que os usuários devem aderir. + title: Sobre + appearance: + preamble: Personalize a interface web do Mastodon. + title: Aparência + branding: + preamble: A marca do seu servidor o diferencia de outros servidores na rede. Essa informação pode ser exibida em vários ambientes, como a interface web do Mastodon, aplicativos nativos, pré-visualizações de links em outros sites, aplicativos de mensagens, etc. Por isso, é melhor manter essa informação clara, curta e concisa. + title: Marca + content_retention: + preamble: Controlar como o conteúdo gerado pelo usuário é armazenado no Mastodon. + title: Retenção de conteúdo + discovery: + follow_recommendations: Seguir recomendações + preamble: Navegar por um conteúdo interessante é fundamental para integrar novos usuários que podem não conhecer ninguém no Mastodon. Controle como várias características de descoberta funcionam no seu servidor. + profile_directory: Diretório de perfis + public_timelines: Timelines públicas + title: Descobrir + trends: Tendências domain_blocks: all: Para todos disabled: Para ninguém - title: Mostrar domínios bloqueados users: Para usuários locais logados - domain_blocks_rationale: - title: Mostrar motivo - hero: - desc_html: Aparece na página inicial. Recomendado ao menos 600x100px. Se não estiver definido, a miniatura da instância é usada no lugar - title: Imagem de capa - mascot: - desc_html: Mostrado em diversas páginas. Recomendado ao menos 293×205px. Quando não está definido, o mascote padrão é mostrado - title: Imagem do mascote - peers_api_enabled: - desc_html: Nomes de domínio que essa instância encontrou no fediverso - title: Publicar lista de instâncias descobertas - preview_sensitive_media: - desc_html: A prévia do link em outros sites vai incluir uma miniatura mesmo se a mídia estiver marcada como sensível - title: Mostrar mídia sensível em prévias OpenGraph - profile_directory: - desc_html: Permitir que usuários possam ser descobertos - title: Ativar diretório de perfis registrations: - closed_message: - desc_html: Mostrado na página inicial quando a instância está fechada. Você pode usar tags HTML - title: Mensagem de instância fechada - deletion: - desc_html: Permitir que qualquer um exclua a própria conta - title: Exclusão aberta de contas - min_invite_role: - disabled: Ninguém - title: Permitir convites de - require_invite_text: - desc_html: Quando o cadastro de novas contas exigir aprovação manual, tornar obrigatório, ao invés de opcional, o texto de solicitação de convite em "Por que você deseja criar uma conta aqui?" - title: Exigir que novos usuários preencham um texto de solicitação de convite + preamble: Controle quem pode criar uma conta no seu servidor. + title: Inscrições registrations_mode: modes: approved: Aprovação necessária para criar conta none: Ninguém pode criar conta open: Qualquer um pode criar conta - title: Modo de novos usuários - show_known_fediverse_at_about_page: - desc_html: Quando ativado, mostra toots globais na prévia da linha, se não, mostra somente toots locais - title: Mostrar toots globais na prévia da linha - show_staff_badge: - desc_html: Mostrar uma insígnia de Equipe na página de usuário - title: Mostrar insígnia de equipe - site_description: - desc_html: Parágrafo introdutório na página inicial. Descreva o que faz esse servidor especial, e qualquer outra coisa de importante. Você pode usar tags HTML, em especial <a> e <em>. - title: Descrição da instância - site_description_extended: - desc_html: Um ótimo lugar para seu código de conduta, regras, diretrizes e outras coisas para diferenciar a sua instância. Você pode usar tags HTML - title: Informação estendida personalizada - site_short_description: - desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que é o Mastodon e o que torna esta instância especial num único parágrafo. Se deixada em branco, é substituído pela descrição da instância. - title: Descrição curta da instância - site_terms: - desc_html: Você pode escrever a sua própria Política de Privacidade, Termos de Serviço, entre outras coisas. Você pode usar tags HTML - title: Termos de serviço personalizados - site_title: Nome da instância - thumbnail: - desc_html: Usada para prévias via OpenGraph e API. Recomenda-se 1200x630px - title: Miniatura da instância - timeline_preview: - desc_html: Mostra a linha do tempo pública na página inicial e permite acesso da API à mesma sem autenticação - title: Permitir acesso não autenticado à linha pública - title: Configurações do site - trendable_by_default: - desc_html: Afeta as hashtags que não foram reprovadas anteriormente - title: Permitir que hashtags fiquem em alta sem revisão prévia - trends: - desc_html: Mostrar publicamente hashtags previamente revisadas que estão em alta - title: Hashtags em alta + title: Configurações do Servidor site_uploads: delete: Excluir arquivo enviado destroyed_msg: Upload do site excluído com sucesso! statuses: + account: Autor + application: Aplicativo back_to_account: Voltar para página da conta back_to_report: Voltar às denúncias batch: + remove_from_report: Remover do relatório report: Denunciar deleted: Excluídos + favourites: Favoritos + history: Histórico de versões + in_reply_to: Em resposta a + language: Idioma media: title: Mídia - no_status_selected: Nenhum status foi modificado porque nenhum estava selecionado - title: Toots da conta + metadata: Metadados + no_status_selected: Nenhuma publicação foi modificada porque nenhuma estava selecionada + open: Publicação aberta + original_status: Publicação original + reblogs: Reblogs + status_changed: Publicação alterada + title: Publicações da conta + trending: Em alta + visibility: Visibilidade with_media: Com mídia + strikes: + actions: + delete_statuses: "%{name} excluiu as publicações de %{target}" + disable: "%{name} congelou a conta de %{target}" + mark_statuses_as_sensitive: "%{name} marcou as publicações de %{target} como sensíveis" + none: "%{name} enviou um aviso para %{target}" + sensitive: "%{name} marcou as publicações de %{target} como sensíveis" + silence: "%{name} limitou a conta de %{target}" + suspend: "%{name} suspendeu a conta de %{target}" + appeal_approved: Apelado + appeal_pending: Recurso pendente system_checks: database_schema_check: - message_html: Existem migrações de banco de dados pendentes. Por favor, execute-as para garantir que o aplicativo se comporte como esperado + message_html: Existem migrações de banco de dados pendentes. Execute-as para garantir que o aplicativo se comporte como esperado + elasticsearch_running_check: + message_html: Não foi possível conectar ao Elasticsearch. Verifique se ele está em execução ou desative a pesquisa de texto completo + elasticsearch_version_check: + message_html: 'Versão de Elasticsearch incompatível: %{value}' + version_comparison: A versão %{running_version} de Elasticsearch está em execução, porém é obrigatória a versão %{required_version} rules_check: action: Gerenciar regras do servidor message_html: Você não definiu nenhuma regra de servidor. + sidekiq_process_check: + message_html: Nenhum processo Sidekiq rodando para a(s) fila(s) %{value}. Por favor, revise a sua configuração para Sidekiq tags: review: Status da revisão - updated_msg: Configurações de hashtag atualizadas com sucesso + updated_msg: Configurações de hashtag atualizadas title: Administração trends: allow: Permitir approved: Aprovado - disallow: Anular + disallow: Impedir links: allow: Permitir link allow_provider: Permitir editor + description_html: Estes são links que estão sendo compartilhados por contas que seu servidor vê. Você pode ajudar seus usuários a descobrir o que está acontecendo no mundo. Nenhum link é exibido publicamente até que você aprove o editor. Você também pode permitir ou rejeitar links individuais. disallow: Proibir link - disallow_provider: Anular editor + disallow_provider: Proibir autor + no_link_selected: Nenhum link foi alterado como nenhum foi selecionado title: Em alta no momento usage_comparison: Compartilhado %{today} vezes hoje, em comparação com %{yesterday} de ontem + only_allowed: Somente permitido pending_review: Revisão pendente preview_card_providers: allowed: Links deste editor podem tender + description_html: Estes são domínios a partir dos quais links são comumente compartilhados em seu servidor. Links não tenderão publicamente a menos que o domínio do link seja aprovado. Sua aprovação (ou rejeição) estende-se aos subdomínios. rejected: Links deste editor não vão tender title: Editor rejected: Rejeitado statuses: - allow: Permitir postagem + allow: Permitir publicação allow_account: Permitir autor + description_html: Estes são as publicações que seu servidor sabe que estão sendo muito compartilhadas e favorecidas no momento. Isso pode ajudar seus usuários, novos e atuais, a encontrar mais pessoas para seguir. Nenhuma publicação é exibida publicamente até que você aprove o autor e o autor permitir que sua conta seja sugerida a outros. Você também pode permitir ou rejeitar publicações individuais. + disallow: Proibir publicação + disallow_account: Proibir autor + shared_by: + one: Compartilhado ou favoritado uma vez + other: Compartilhado e favoritado %{friendly_count} vezes title: Publicações em alta tags: current_score: Pontuação atual %{score} @@ -790,6 +798,7 @@ pt-BR: tag_languages_dimension: Idiomas principais tag_servers_dimension: Servidores mais populares tag_servers_measure: servidores diferentes + tag_uses_measure: usos listable: Pode ser sugerido not_listable: Não será sugerido not_trendable: Não aparecerá em alta @@ -799,14 +808,46 @@ pt-BR: trending_rank: 'Em alta #%{rank}' usable: Pode ser usado usage_comparison: Usado %{today} vezes hoje, em comparação com %{yesterday} de ontem + used_by_over_week: + one: Usado por uma pessoa na última semana + other: Usado por %{count} pessoas na última semana title: Em alta + trending: Em alta warning_presets: add_new: Adicionar novo delete: Excluir edit_preset: Editar o aviso pré-definido empty: Você ainda não definiu nenhuma predefinição de alerta. title: Gerenciar os avisos pré-definidos + webhooks: + add_new: Adicionar endpoint + delete: Excluir + disable: Desabilitar + disabled: Desativado + edit: Editar endpoint + enable: Habilitar + enabled: Ativo + enabled_events: + one: 1 evento habilitado + other: "%{count} eventos ativados" + events: Eventos + new: Novo webhook + rotate_secret: Girar segredo + secret: Assinatura secreta + status: Status + title: Webhooks + webhook: Webhook admin_mailer: + new_appeal: + actions: + delete_statuses: para excluir suas publicações + disable: para congelar sua conta + mark_statuses_as_sensitive: para marcar suas publicações como sensíveis + none: um aviso + sensitive: para marcar sua conta como sensível + silence: para limitar sua conta + suspend: para suspender sua conta + body: "%{target} está apelando por uma decisão de moderação de %{action_taken_by} em %{date}, que era %{type}. Escreveu:" new_pending_account: body: Os detalhes da nova conta estão abaixo. Você pode aprovar ou vetar. subject: Nova conta para revisão em %{instance} (%{username}) @@ -815,6 +856,8 @@ pt-BR: body_remote: Alguém da instância %{domain} reportou %{target} subject: Nova denúncia sobre %{instance} (#%{id}) new_trends: + new_trending_links: + title: Links em destaque new_trending_statuses: title: Publicações em alta new_trending_tags: @@ -824,10 +867,10 @@ pt-BR: subject: Novas tendências para revisão em %{instance} aliases: add_new: Criar alias - created_msg: Um novo alias foi criado com sucesso. Agora você pode iniciar a mudança da conta antiga. - deleted_msg: Alias removido com sucesso. Não será mais possível se mudar daquela conta para esta conta. + created_msg: Um novo atalho foi criado. Agora você pode iniciar a mudança da conta antiga. + deleted_msg: O atalho foi removido. Não será mais possível se mudar daquela conta para esta conta. empty: Você não tem alias. - hint_html: Se você quiser migrar de uma outra conta para esta, você pode criar um alias aqui, o que é necessário antes que você possa migrar os seguidores da conta antiga para esta. Esta ação por si só é inofensiva e reversível. A migração da conta é iniciada pela conta antiga. + hint_html: Se você quiser migrar de uma outra conta para esta, você pode criar um atalho aqui, o que é necessário antes que você possa migrar os seguidores da conta antiga para esta. Esta ação por si só é inofensiva e reversível. A migração da conta é iniciada pela conta antiga. remove: Desvincular alias appearance: advanced_web_interface: Interface avançada de colunas @@ -840,37 +883,34 @@ pt-BR: guide_link: https://br.crowdin.com/project/mastodon guide_link_text: Todos podem contribuir. sensitive_content: Conteúdo sensível - toot_layout: Layout do Toot + toot_layout: Formato da publicação application_mailer: notification_preferences: Alterar preferências de e-mail salutation: "%{name}," settings: 'Alterar e-mail de preferência: %{link}' view: 'Ver:' view_profile: Ver perfil - view_status: Ver toot + view_status: Ver publicação applications: created: Aplicativo criado com sucesso destroyed: Aplicativo excluído com sucesso - invalid_url: O link fornecido é inválido regenerate_token: Gerar código de acesso - token_regenerated: Código de acesso gerado com sucesso + token_regenerated: Código de acesso gerado warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém! your_token: Seu código de acesso auth: - apply_for_account: Solicitar convite + apply_for_account: Entrar na lista de espera change_password: Senha - checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço - checkbox_agreement_without_rules_html: Concordo com os termos do serviço delete_account: Excluir conta delete_account_html: Se você deseja excluir sua conta, você pode fazer isso aqui. Uma confirmação será solicitada. description: - prefix_invited_by_user: "@%{name} convidou você para entrar nesta instância Mastodon!" + prefix_invited_by_user: "@%{name} convidou você para entrar neste servidor Mastodon!" prefix_sign_up: Crie uma conta no Mastodon hoje! - suffix: Com uma conta, você poderá seguir pessoas, postar atualizações, trocar mensagens com usuários de qualquer instância Mastodon e muito mais! + suffix: Com uma conta, você poderá seguir pessoas, publicar atualizações, trocar mensagens com usuários de qualquer servidor Mastodon e muito mais! didnt_get_confirmation: Não recebeu instruções de confirmação? dont_have_your_security_key: Não está com a sua chave de segurança? forgot_password: Esqueceu a sua senha? - invalid_reset_password_token: Código de alteração de senha é inválido ou expirou. Por favor, solicite um novo. + invalid_reset_password_token: Código de alteração de senha é inválido ou expirou. Solicite um novo. link_to_otp: Digite um código de duas etapas do seu telefone ou um código de recuperação link_to_webauth: Use seu dispositivo de chave de segurança log_in_with: Iniciar sessão com @@ -886,6 +926,8 @@ pt-BR: registration_closed: "%{instance} não está aceitando novos membros" resend_confirmation: Reenviar instruções de confirmação reset_password: Redefinir senha + rules: + title: Algumas regras básicas. security: Segurança set_new_password: Definir uma nova senha setup: @@ -898,9 +940,8 @@ pt-BR: functional: Sua conta está totalmente operacional. pending: Sua solicitação está com revisão pendente por parte de nossa equipe. Você receberá um e-mail se ela for aprovada. redirecting_to: Sua conta está inativa porque atualmente está redirecionando para %{acct}. - view_strikes: Veja os ataques anteriores contra a sua conta + view_strikes: Veja os avisos anteriores em relação à sua conta too_fast: O formulário foi enviado muito rapidamente, tente novamente. - trouble_logging_in: Problemas para entrar? use_security_key: Usar chave de segurança authorize_follow: already_following: Você já segue @@ -908,7 +949,7 @@ pt-BR: error: Infelizmente, ocorreu um erro ao buscar a conta remota follow: Seguir follow_request: 'Você mandou solicitação para seguir para:' - following: 'Sucesso! Você agora está seguindo:' + following: 'Sucesso! Agora você está seguindo:' post_follow: close: Ou você pode simplesmente fechar esta janela. return: Mostrar o perfil do usuário @@ -946,11 +987,11 @@ pt-BR: confirm_password: Digite a sua senha atual para verificar a sua identidade confirm_username: Digite seu nome de usuário para confirmar o procedimento proceed: Excluir conta - success_msg: A sua conta foi excluída com sucesso + success_msg: Sua conta foi excluída warning: - before: 'Antes de prosseguir, por favor leia com cuidado:' - caches: Conteúdo que foi armazenado em cache por outras instâncias pode continuar a existir - data_removal: Seus toots e outros dados serão removidos permanentemente + before: 'Antes de prosseguir, leia com cuidado:' + caches: Conteúdo que foi armazenado em cache por outros servidores pode continuar a existir + data_removal: Suas publicações e outros dados serão removidos permanentemente email_change_html: Você pode alterar seu endereço de e-mail sem excluir sua conta email_contact_html: Se você ainda não recebeu, você pode enviar um e-mail pedindo ajuda para %{email} email_reconfirmation_html: Se você não está recebendo o e-mail de confirmação, você pode solicitá-lo novamente @@ -958,10 +999,6 @@ pt-BR: more_details_html: Para mais detalhes, consulte a Política de Privacidade. username_available: Seu nome de usuário ficará disponível novamente username_unavailable: Seu nome de usuário permanecerá indisponível - directories: - directory: Diretório de perfis - explanation: Descobrir usuários baseado em seus interesses - explore_mastodon: Explore o %{title} disputes: strikes: action_taken: Ações tomadas @@ -972,17 +1009,19 @@ pt-BR: appealed_msg: Seu recurso foi enviado. Se ele for aprovado, você será notificado. appeals: submit: Enviar recurso + approve_appeal: Aprovar recurso associated_report: Relatório associado created_at: Datado description_html: Estas são ações tomadas contra sua conta e avisos que foram enviados a você pela equipe de %{instance}. recipient: Endereçado para - status: 'Postagem #%{id}' - status_removed: Postagem já removida do sistema + reject_appeal: Rejeitar recurso + status: 'Publicação #%{id}' + status_removed: Publicação já removida do sistema title: "%{action} de %{date}" title_actions: delete_statuses: Remoção de publicações disable: Congelamento de conta - mark_statuses_as_sensitive: Marcar as postagens como sensíveis + mark_statuses_as_sensitive: Marcar as publicações como sensíveis none: Aviso sensitive: Marcar a conta como sensível silence: Limitação da conta @@ -1006,7 +1045,7 @@ pt-BR: content: Desculpe, algo deu errado por aqui. title: Esta página não está certa '503': A página não pôde ser carregada devido a uma falha temporária do servidor. - noscript_html: Para usar o aplicativo web do Mastodon, por favor ative o JavaScript. Ou, se quiser, experimente um dos aplicativos nativos para o Mastodon em sua plataforma. + noscript_html: Para usar o aplicativo web do Mastodon, ative o JavaScript. Ou, se quiser, experimente um dos aplicativos nativos para o Mastodon em sua plataforma. existing_username_validator: not_found: não foi possível encontrar um usuário local com esse nome de usuário not_found_multiple: não foi possível encontrar %{usernames} @@ -1014,7 +1053,7 @@ pt-BR: archive_takeout: date: Data download: Baixe o seu arquivo - hint_html: Você pode pedir um arquivo dos seus toots e mídias enviadas. Os dados exportados estarão no formato ActivityPub, que podem ser lidos por qualquer software compatível. Você pode pedir um arquivo a cada 7 dias. + hint_html: Você pode pedir um arquivo das suas publicações e mídias enviadas. Os dados exportados estarão no formato ActivityPub, que podem ser lidos por qualquer software compatível. Você pode pedir um arquivo a cada 7 dias. in_progress: Preparando o seu arquivo... request: Solicitar o seu arquivo size: Tamanho @@ -1029,7 +1068,7 @@ pt-BR: add_new: Adicionar hashtag errors: limit: Você atingiu o limite de hashtags em destaque - hint_html: "O que são hashtags em destaque? Elas são mostradas no seu perfil público e permitem que as pessoas acessem seus toots públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo." + hint_html: "O que são hashtags em destaque? Elas são exibidas no seu perfil público e permitem que as pessoas acessem suas publicações públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo." filters: contexts: account: Perfis @@ -1038,33 +1077,47 @@ pt-BR: public: Linhas públicas thread: Conversas edit: + add_keyword: Adicionar palavra-chave + keywords: Palavras-chave + statuses: Publicações individuais title: Editar filtro errors: invalid_context: Contexto inválido ou nenhum contexto informado - invalid_irreversible: O filtro irreversível só funciona com os contextos página inicial e notificações index: delete: Remover empty: Sem filtros. + expires_in: Expira em %{distance} + expires_on: Expira em %{date} + keywords: + one: "%{count} palavra-chave" + other: "%{count} palavras-chave" + statuses: + one: "%{count} publicação" + other: "%{count} publicações" title: Filtros new: + save: Salvar novo filtro title: Adicionar filtro + statuses: + batch: + remove: Remover do filtro + index: + title: Publicações filtradas footer: - developers: Desenvolvedores - more: Mais… - resources: Recursos trending_now: Em alta no momento generic: all: Tudo - changes_saved_msg: Alterações foram salvas com sucesso! + changes_saved_msg: Alterações salvas! copy: Copiar delete: Excluir + deselect: Desmarcar todos none: Nenhum order_by: Ordenar por save_changes: Salvar alterações today: hoje validation_errors: - one: Algo errado não está certo! Por favor, analise o erro abaixo - other: Algo errado não está certo! Por favor, analise os %{count} erros abaixo + one: Algo não está certo! Analise o erro abaixo + other: Algo não está certo! Analise os %{count} erros abaixo html_validator: invalid_markup: 'contém HTML inválido: %{error}' imports: @@ -1075,8 +1128,8 @@ pt-BR: merge_long: Manter os registros existentes e adicionar novos overwrite: Sobrescrever overwrite_long: Substituir os registros atuais com os novos - preface: Você pode importar dados que você exportou de outra instância, como a lista de pessoas que você segue ou bloqueou. - success: Os seus dados foram enviados com sucesso e serão processados em instantes + preface: Você pode importar dados que você exportou de outro servidor, como a lista de pessoas que você segue ou bloqueou. + success: Seus dados foram enviados e serão processados em instantes types: blocking: Lista de bloqueio bookmarks: Marcadores @@ -1084,7 +1137,6 @@ pt-BR: following: Pessoas que você segue muting: Lista de silenciados upload: Enviar - in_memoriam_html: Em memória. invites: delete: Desativar expired: Expirados @@ -1102,7 +1154,7 @@ pt-BR: one: 1 uso other: "%{count} usos" max_uses_prompt: Sem limite - prompt: Gere e compartilhe links para permitir acesso a essa instância + prompt: Gere e compartilhe links para permitir acesso a esse servidor table: expires_at: Expira em uses: Usos @@ -1123,14 +1175,14 @@ pt-BR: title: Histórico de autenticação media_attachments: validations: - images_and_video: Não foi possível anexar um vídeo a um toot que já contém imagens + images_and_video: Não foi possível anexar um vídeo a uma publicação que já contém imagens not_ready: Não é possível anexar arquivos que não terminaram de ser processados. Tente novamente daqui a pouco! too_many: Não foi possível anexar mais de 4 imagens migrations: acct: Mudou-se para cancel: Cancelar redirecionamento cancel_explanation: Cancelar o redirecionamento reativará a sua conta atual, mas não trará de volta os seguidores que não foram migrados para aquela conta. - cancelled_msg: Redirecionamento cancelado com sucesso. + cancelled_msg: Redirecionamento cancelado. errors: already_moved: é a mesma conta que você migrou missing_also_known_as: não está referenciando esta conta @@ -1150,7 +1202,7 @@ pt-BR: set_redirect: Definir redirecionamento warning: backreference_required: A nova conta deve primeiro ser configurada para que esta seja referenciada - before: 'Antes de prosseguir, por favor leia com cuidado:' + before: 'Antes de prosseguir, leia com cuidado:' cooldown: Depois de se mudar, há um período de espera para poder efetuar uma nova mudança disabled_account: Sua conta não estará totalmente funcional ao término deste processo. Entretanto, você terá acesso à exportação de dados bem como à reativação. followers: Esta ação moverá todos os seguidores da conta atual para a nova conta @@ -1165,22 +1217,13 @@ pt-BR: copy_account_note_text: 'Este usuário saiu de %{acct}, aqui estão suas notas anteriores sobre ele:' notification_mailer: admin: + report: + subject: "%{name} enviou uma denúncia" sign_up: subject: "%{name} se inscreveu" - digest: - action: Ver todas as notificações - body: Aqui está um breve resumo das mensagens que você perdeu desde o seu último acesso em %{since} - mention: "%{name} te mencionou em:" - new_followers_summary: - one: Você tem um novo seguidor! Uia! - other: Você tem %{count} novos seguidores! AÊÊÊ! - subject: - one: "Uma nova notificação desde o seu último acesso 🐘" - other: "%{count} novas notificações desde o seu último acesso 🐘" - title: Enquanto você estava ausente... favourite: - body: "%{name} favoritou seu toot:" - subject: "%{name} favoritou seu toot" + body: "%{name} favoritou sua publicação:" + subject: "%{name} favoritou sua publicação" title: Novo favorito follow: body: "%{name} te seguiu!" @@ -1199,11 +1242,11 @@ pt-BR: poll: subject: Uma enquete por %{name} terminou reblog: - body: "%{name} deu boost no seu toot:" - subject: "%{name} deu boost no seu toot" + body: "%{name} impulsionou a sua publicação:" + subject: "%{name} impulsionou a sua publicação" title: Novo boost status: - subject: "%{name} acabou de postar" + subject: "%{name} acabou de publicar" update: subject: "%{name} editou uma publicação" notifications: @@ -1222,7 +1265,7 @@ pt-BR: trillion: TRI otp_authentication: code_hint: Digite o código gerado pelo seu aplicativo autenticador para confirmar - description_html: Se você habilitar a autenticação de dois fatores usando um aplicativo autenticador, o login exigirá que você esteja com o seu telefone, que gerará tokens para você entrar. + description_html: Se você ativar a autenticação de dois fatores usando um aplicativo autenticador, ao se conectar será exigido que você esteja com o seu telefone, que gerará tokens para você entrar. enable: Habilitar instructions_html: "Escaneie este código QR no Google Authenticator ou em um aplicativo TOTP similar no seu telefone. A partir de agora, esse aplicativo irá gerar tokens que você terá que digitar ao fazer login." manual_instructions: 'Se você não pode escanear o código QR e precisa digitá-lo manualmente, aqui está o segredo em texto:' @@ -1249,6 +1292,8 @@ pt-BR: other: Outro posting_defaults: Padrões de publicação public_timelines: Linhas públicas + privacy_policy: + title: Política de Privacidade reactions: errors: limit_reached: Limite de reações diferentes atingido @@ -1271,35 +1316,24 @@ pt-BR: remove_selected_follows: Deixar de seguir usuários selecionados status: Status da conta remote_follow: - acct: Digite o seu usuário@domínio para continuar missing_resource: Não foi possível encontrar o link de redirecionamento para sua conta - no_account_html: Não tem uma conta? Você pode criar uma aqui - proceed: Continue para seguir - prompt: 'Você seguirá:' - reason_html: "Por que esse passo é necessário? %{instance} pode não ser a instância onde você se hospedou, então precisamos redirecionar você para a sua instância primeiro." - remote_interaction: - favourite: - proceed: Continue para favoritar - prompt: 'Você favoritará este toot:' - reblog: - proceed: Continue para dar boost - prompt: 'Você dará boost neste toot:' - reply: - proceed: Continue para responder - prompt: 'Você responderá este toot:' reports: errors: invalid_rules: não faz referência a regras válidas + rss: + content_warning: 'Aviso de conteúdo:' + descriptions: + account: Publicações públicas de @%{acct} + tag: 'Publicações públicas marcadas com #%{hashtag}' scheduled_statuses: - over_daily_limit: Você excedeu o limite de %{limit} toots agendados para esse dia - over_total_limit: Você excedeu o limite de %{limit} toots agendados + over_daily_limit: Você excedeu o limite de %{limit} publicações agendadas para esse dia + over_total_limit: Você excedeu o limite de %{limit} publicações agendadas too_soon: A data agendada precisa ser no futuro sessions: activity: Última atividade browser: Navegador browsers: alipay: Alipay - blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1313,7 +1347,6 @@ pt-BR: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser weibo: Weibo current_session: Sessão atual description: "%{browser} em %{platform}" @@ -1322,8 +1355,6 @@ pt-BR: platforms: adobe_air: Adobe Air android: Android - blackberry: BlackBerry - chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: Linux @@ -1333,7 +1364,7 @@ pt-BR: windows_mobile: Windows Mobile windows_phone: Windows Phone revoke: Fechar - revoke_success: Sessão fechada com sucesso + revoke_success: Sessão fechada title: Sessões view_authentication_history: Ver histórico de autenticação da sua conta settings: @@ -1356,7 +1387,7 @@ pt-BR: profile: Perfil relationships: Seguindo e seguidores statuses_cleanup: Exclusão automatizada de publicações - strikes: Moderação de ataques + strikes: Avisos de moderação two_factor_authentication: Autenticação de dois fatores webauthn_authentication: Chaves de segurança statuses: @@ -1371,22 +1402,22 @@ pt-BR: video: one: "%{count} vídeo" other: "%{count} vídeos" - boosted_from_html: Boost de %{acct_link} - content_warning: 'Aviso de Conteúdo: %{warning}' + boosted_from_html: Impulso de %{acct_link} + content_warning: 'Aviso de conteúdo: %{warning}' default_language: Igual ao idioma da interface disallowed_hashtags: one: 'continha hashtag não permitida: %{tags}' other: 'continha hashtags não permitidas: %{tags}' edited_at_html: Editado em %{date} errors: - in_reply_not_found: O toot que você quer responder parece não existir. + in_reply_not_found: A publicação que você quer responder parece não existir. open_in_web: Abrir no navegador over_character_limit: limite de caracteres de %{max} excedido pin_errors: - direct: Posts visíveis apenas para usuários mencionados não podem ser fixados - limit: Quantidade máxima de toots excedida - ownership: Toots dos outros não podem ser fixados - reblog: Boosts não podem ser fixados + direct: Publicações visíveis apenas para usuários mencionados não podem ser fixadas + limit: Você alcançou o número limite de publicações fixadas + ownership: As publicações dos outros não podem ser fixadas + reblog: Um impulso não pode ser fixado poll: total_people: one: "%{count} pessoa" @@ -1403,33 +1434,33 @@ pt-BR: title: '%{name}: "%{quote}"' visibilities: direct: Direto - private: Privado - private_long: Posta apenas para seguidores + private: Apenas seguidores + private_long: Exibir apenas para seguidores public: Público - public_long: Posta em linhas públicas - unlisted: Não-listado - unlisted_long: Não posta em linhas públicas + public_long: Todos podem ver + unlisted: Não listado + unlisted_long: Todos podem ver, mas não é listado em linhas do tempo públicas statuses_cleanup: enabled: Excluir publicações antigas automaticamente enabled_hint: Exclui suas publicações automaticamente assim que elas alcançam sua validade, a não ser que se enquadrem em alguma das exceções abaixo exceptions: Exceções explanation: Já que a exclusão de publicações é uma operação custosa, ela é feita lentamente quando o servidor não está ocupado. Por isso suas publicações podem ser excluídas algum tempo depois de alcançarem sua validade. ignore_favs: Ignorar favoritos - ignore_reblogs: Ignorar boosts + ignore_reblogs: Ignorar impulsos interaction_exceptions: Exceções baseadas nas interações interaction_exceptions_explanation: Note que não há garantia de que as publicações sejam excluídas se ficarem abaixo do limite de favoritos ou boosts depois de tê-lo ultrapassado. keep_direct: Manter mensagens diretas - keep_direct_hint: Não deleta nenhuma de suas mensagens diretas + keep_direct_hint: Não exclui nenhuma de suas mensagens diretas keep_media: Manter publicações com mídia keep_media_hint: Não exclui nenhuma de suas publicações com mídia keep_pinned: Manter publicações fixadas - keep_pinned_hint: Não exclui nenhuma publicação fixada + keep_pinned_hint: Não exclui nenhuma de suas publicações fixadas keep_polls: Manter enquetes keep_polls_hint: Não exclui nenhuma de suas enquetes keep_self_bookmark: Manter publicações que você salvou - keep_self_bookmark_hint: Não exclui suas próprias publicações se você as tiver salvado + keep_self_bookmark_hint: Não exclui suas próprias publicações se você as salvou keep_self_fav: Manter publicações que você favoritou - keep_self_fav_hint: Não exclui suas próprias publicações se você as tiver favoritado + keep_self_fav_hint: Não exclui suas próprias publicações se você as favoritou min_age: '1209600': 2 semanas '15778476': 6 meses @@ -1441,98 +1472,18 @@ pt-BR: '7889238': 3 meses min_age_label: Validade min_favs: Manter publicações favoritadas por ao menos - min_favs_hint: Não exclui publicações que tiverem sido favoritados ao menos essa quantidade de vezes. Deixe em branco para excluir publicações independente da quantidade de favoritos - min_reblogs: Manter publicações boostadas por ao menos - min_reblogs_hint: Não exclui publicações que tiverem sido boostadas ao menos essa quantidade de vezes. Deixe em branco para excluir publicações independente da quantidade de boosts + min_favs_hint: Não exclui publicações que receberam pelo menos esta quantidade de favoritos. Deixe em branco para excluir publicações independentemente da quantidade de favoritos + min_reblogs: Manter publicações impulsionadas por ao menos + min_reblogs_hint: Não exclui publicações que receberam pelo menos esta quantidade de impulsos. Deixe em branco para excluir publicações independentemente da quantidade de impulsos stream_entries: - pinned: Toot fixado + pinned: Publicação fixada reblogged: deu boost sensitive_content: Conteúdo sensível + strikes: + errors: + too_late: É tarde demais para apelar esta violação tags: does_not_match_previous_name: não corresponde ao nome anterior - terms: - body_html: | -

      Política de Privacidade

      -

      Quais dados nós coletamos?

      - -
        -
      • Dados básicos de conta: Se você criar conta nesta instância, um nome de usuário, um e-mail e uma senha serão exigidos. Você também pode adicionar dados extras como nome de exibição, biografia, imagem de perfil e capa. Com exceção do e-mail e da senha, os dados citados sempre são públicos.
      • -
      • Toots, seguindo e outros dados públicos: A lista de pessoas que você segue e a sua lista de seguidores são públicas. Ao enviar um toot, a data, a hora e o aplicativo usado são armazenados. Toots podem conter mídias anexadas, como áudios, imagens e vídeos. Toots públicos e não-listados são visíveis publicamente. Os toots fixados no seu perfil são públicos. Seus toots são enviados aos seus seguidores, em alguns casos isso significa que os toots são enviados para instâncias diferentes e cópias são armazenadas lá. Quando você exclui toots, essa informação também é enviada aos seus seguidores. O ato de dar boost ou favoritar outro toot é sempre público.
      • -
      • Mensagens Diretas e toots privados: Todos os toots são armazenados e processados na instância. Toots privados são enviados aos seus seguidores e aos usuários mencionados neles; Mensagens Diretas (ou toots diretos) são enviadas somente aos usuários mencionados nelas. Em alguns casos isso significa que os toots são enviados para instâncias diferentes e cópias são armazenadas lá. Nós trabalhamos constantemente para limitar o acesso a estes toots somente às pessoas autorizadas, porém outras instâncias podem não fazer o mesmo. Portanto, é importante analisar as instâncias dos seus seguidores. Você pode trancar a conta para aprovar ou vetar novos seguidores manualmente nas configurações. Por favor, tenha em mente que os operadores da instância em que se está e das instâncias receptoras podem ver tais toots, e que os destinatários podem fazer capturas de tela, copiar ou usar outra maneira para compartilhar os toots. Não compartilhe informação confidencial pelo Mastodon.
      • -
      • IPs e outros metadados: Ao entrar na sua conta, nós armazenamos o seu endereço de IP e o nome do navegador usado. Todas as sessões abertas estão disponíveis para serem analisadas e revogadas nas configurações. O último endereço de IP usado é armazenado por até 12 meses. Nós também podemos reter históricos da instância que incluem o endereço de IP de todas as conexões à nossa instância.
      • -
      - -
      - -

      Como usamos os seus dados?

      - -

      Todo dado que coletamos pode ser usado das seguintes maneiras:

      - -
        -
      • Para prover a funcionalidade básica do Mastodon. Você só pode interagir com o conteúdo de outras pessoas e postar seu próprio conteúdo usando uma conta. Por exemplo, você pode seguir outras pessoas para ver seus toots na sua própria linha do tempo personalizada.
      • -
      • Para auxiliar na moderação da comunidade, por exemplo ao comparar o seu endereço de IP com outros endereços de IP conhecidos para determinar evasão de banimento e outras violações.
      • -
      • O endereço de e-mail que você fornecer pode ser usado para te enviar informações, notificações sobre outras pessoas interagindo com o seu conteúdo ou contigo e para responder a questões ou outras solicitações.
      • -
      - -
      - -

      Como protegemos seus dados?

      - -

      Nós implementamos diversas medidas de segurança para manter suas informações pessoais seguras quando você as acessa ou as envia. Entre outras coisas, sua sessão do navegador, bem como o tráfego entre os aplicativos e a API são asseguradas usando SSL e a sua senha é guardada usando um algoritmo forte de criptografia de mão única. Você pode ativar autenticação em dois fatores como forma de aumentar a segurança no acesso à sua conta.

      - -
      - -

      Qual é a nossa política de retenção de dados?

      - -

      Nós trabalhamos constantemente para:

      - -
        -
      • Reter o histórico da instância contendo os endereços de IP de todas as conexões a essa instância. O histórico é mantido por não mais que 90 dias.
      • -
      • Reter os endereços de IP associados à usuários da instância por não mais que 12 meses.
      • -
      - -

      Você pode solicitar e baixar um arquivo de todo o conteúdo da sua conta, incluindo seus toots, suas mídias, imagem de perfil e capa.

      - -

      YVocê pode excluir a sua conta irreversivelmente a qualquer momento.

      - -
      - -

      Nós usamos cookies?

      - -

      Sim. Cookies são pequenos arquivos que um site ou serviço baixa através do seu navegador (se você permitir). Esses cookies permitem ao site conhecer seu navegador e, se você tiver uma conta, associá-lo a ela.

      - -

      Nós usamos cookies para salvar suas preferências para futuras visitas.

      - -
      - -

      Nós compartilhamos algum dado para terceiros?

      - -

      Nós não vendemos, trocamos ou compartilhamos de qualquer maneira dados que possam te identificar à terceiros. Isso não inclui terceiros confiáveis que nos auxiliam a operar o nosso site, realizar nosso serviço ou prestar assistência, contanto que esses terceiros se comprometam a manter essa informação confidencial. Nós podemos também divulgar informação quando acreditamos que é apropriado para obedecer a lei, para fazer cumprir nossas políticas ou proteger os nossos direitos, propriedade ou segurança, ou de outrém.

      - -

      Seu conteúdo público pode ser acessado por outras instâncias na rede. Seus toots públicos e privados são enviados às instâncias dos seus seguidores e seus toots diretos são enviados às instâncias dos usuários mencionados neles, contanto que esses seguidores ou usuários estejam em uma instância diferente desta.

      - -

      Quando você autoriza um aplicativo a usar sua conta, dependendo do nível de autorização das permissões que você aprovar, o aplicativo pode acessar seus dados públicos, a lista de usuários que você segue, seus seguidores, suas listas, suas Mensagens Diretas e seus toots favoritos. Aplicativos nunca podem acessar o seu endereço de e-mail ou senha.

      - -
      - -

      Uso desse site por crianças

      - -

      Se a instância está na UE ou no EEE: Nosso site, produto e serviço são direcionados às pessoas que tem ao menos 16 anos de idade. Se você tem menos de 16 anos, de acordo com os requisitos da RGPD (Regulamento Geral sobre Proteção de Dados) não use este site.

      - -

      Se esta instância está nos EUA: Nosso site, produto e serviço são direcionados às pessoas que tem ao menos 13 anos de idade. Se você tem menos de 13 anos, de acordo com os requerimentos da COPPA (Children's Online Privacy Protection Act) não use este site

      - -

      Os requisitos da lei podem ser diferentes em outra jurisdição.

      - -
      - -

      Alterações na nossa Política de Privacidade

      - -

      Se decidirmos mudar nossa Política de Privacidade, iremos disponibilizar as alterações nesta página.

      - -

      CC-BY-SA. Atualizado pela última vez em 7 de março de 2018.

      - -

      Adaptado originalmente de Política de Privacidade Discourse.

      - title: Termos de Serviço e Política de Privacidade de %{instance} themes: contrast: Mastodon (Alto contraste) default: Mastodon (Noturno) @@ -1544,27 +1495,27 @@ pt-BR: time: "%H:%M" two_factor_authentication: add: Adicionar - disable: Desativar - disabled_success: Autenticação de dois fatores desabilitada com sucesso + disable: Desativar autenticação de dois fatores + disabled_success: Autenticação de dois fatores desativada edit: Editar enabled: Autenticação de dois fatores ativada - enabled_success: Autenticação de dois fatores ativada com sucesso + enabled_success: Autenticação de dois fatores ativada generate_recovery_codes: Gerar códigos de recuperação - lost_recovery_codes: Códigos de recuperação permitem que você recupere o acesso à sua conta caso perca o seu celular. Se você perdeu seus códigos de recuperação, você pode gerá-los novamente aqui. Seus códigos de recuperação anteriores serão invalidados. - methods: Métodos de dois fatores + lost_recovery_codes: Os códigos de recuperação permitem que você recupere o acesso à sua conta caso perca o seu celular. Se você perdeu seus códigos de recuperação, você pode gerá-los novamente aqui. Seus códigos de recuperação anteriores serão invalidados. + methods: Métodos de autenticação de dois fatores otp: Aplicativo autenticador recovery_codes: Códigos de recuperação de reserva - recovery_codes_regenerated: Códigos de recuperação gerados com sucesso - recovery_instructions_html: Se você perder acesso ao seu celular, você pode usar um dos códigos de recuperação abaixo para acessar a sua conta. Mantenha os códigos de recuperação em um local seguro. Por exemplo, você pode imprimi-los e guardá-los junto com outros documentos importantes. + recovery_codes_regenerated: Códigos de recuperação gerados + recovery_instructions_html: Se você perder acesso ao seu celular, você pode usar um dos códigos de recuperação abaixo para acessar a sua conta. Mantenha os códigos de recuperação em um local seguro. Por exemplo, você pode imprimi-los e guardá-los junto a outros documentos importantes. webauthn: Chaves de segurança user_mailer: appeal_approved: action: Acessar perfil - explanation: O recurso do ataque contra sua conta em %{strike_date} que você submeteu em %{appeal_date} foi aprovado. Sua conta está novamente em situação regular. + explanation: O recurso contra o aviso dado à sua conta em %{strike_date} que você submeteu em %{appeal_date} foi aprovado. Sua conta está novamente em situação regular. subject: Seu recurso de %{date} foi aprovado title: Contestação aprovada appeal_rejected: - explanation: O recurso do ataque contra sua conta em %{strike_date} que você submeteu em %{appeal_date} foi rejeitado. + explanation: O recurso contra o aviso dado à sua conta em %{strike_date} que você submeteu em %{appeal_date} foi rejeitado. subject: Seu recurso de %{date} foi rejeitado title: Contestação rejeitada backup_ready: @@ -1585,37 +1536,34 @@ pt-BR: spam: Spam violation: O conteúdo viola as seguintes diretrizes da comunidade explanation: + delete_statuses: Algumas de suas publicações infringiram uma ou mais diretrizes da comunidade e foram removidas pelos moderadores de %{instance}. disable: Você não poderá mais usar a sua conta, mas o seu perfil e outros dados permanecem intactos. Você pode solicitar um backup dos seus dados, mudar as configurações ou excluir sua conta. sensitive: A partir de agora, todos os seus arquivos de mídia enviados serão marcados como confidenciais e escondidos por trás de um aviso de clique. reason: 'Motivo:' + statuses: 'Publicações citadas:' subject: + delete_statuses: Suas publicações em %{acct} foram removidas disable: Sua conta %{acct} foi bloqueada + mark_statuses_as_sensitive: Suas publicações em %{acct} foram marcadas como sensíveis none: Aviso para %{acct} + sensitive: Suas publicações em %{acct} serão marcadas como sensíveis a partir de agora silence: Sua conta %{acct} foi silenciada suspend: Sua conta %{acct} foi banida title: delete_statuses: Publicações removidas disable: Conta bloqueada - mark_statuses_as_sensitive: Postagens marcadas como sensíveis + mark_statuses_as_sensitive: Publicações marcadas como sensíveis none: Aviso + sensitive: Conta marcada como sensível silence: Conta silenciada suspend: Conta banida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Você pode personalizar o seu perfil enviando um avatar, uma capa, alterando seu nome de exibição e etc. Se você preferir aprovar seus novos seguidores antes de eles te seguirem, você pode trancar a sua conta. explanation: Aqui estão algumas dicas para você começar - final_action: Comece a tootar - final_step: 'Comece a tootar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas pelos outros, por exemplo, na linha local e nas hashtags. Você pode querer fazer uma introdução usando a hashtag #introdução, ou em inglês usando a hashtag #introductions.' + final_action: Comece a publicar full_handle: Seu nome de usuário completo - full_handle_hint: Isso é o que você compartilha com aos seus amigos para que eles possam te mandar toots ou te seguir a partir de outra instância. - review_preferences_action: Alterar preferências - review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus toots tenham por padrão. Se você não sofre de enjoo com movimento, você pode habilitar GIFs animado automaticamente. + full_handle_hint: Isso é o que você compartilha com seus amigos para que eles possam te mandar mensagens ou te seguir a partir de outro servidor. subject: Boas-vindas ao Mastodon - tip_federated_timeline: A linha global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas de instâncias que a sua instância conhece, então não é a rede completa. - tip_following: Você vai seguir administrador(es) da sua instância por padrão. Para encontrar mais gente interessante, confira as linhas local e global. - tip_local_timeline: A linha local é uma visão contínua das pessoas em %{instance}. Estes são seus vizinhos! - tip_mobile_webapp: Se o seu navegador móvel oferecer a opção de adicionar Mastodon à tela inicial, você pode receber notificações push. Será como um aplicativo nativo! - tips: Dicas title: Boas vindas, %{name}! users: follow_limit_reached: Você não pode seguir mais de %{limit} pessoas @@ -1630,16 +1578,16 @@ pt-BR: add: Adicionar nova chave de segurança create: error: Houve um problema ao adicionar sua chave de segurança. Tente novamente. - success: A sua chave de segurança foi adicionada com sucesso. + success: Sua chave de segurança foi adicionada. delete: Excluir delete_confirmation: Você tem certeza de que deseja excluir esta chave de segurança? description_html: Se você habilitar a autenticação por chave de segurança, o login exigirá que você use uma das suas chaves de segurança. destroy: error: Houve um problema ao excluir sua chave de segurança. Tente novamente. - success: Sua chave de segurança foi excluída com sucesso. + success: Sua chave de segurança foi excluída. invalid_credential: Chave de segurança inválida nickname_hint: Digite o apelido da sua nova chave de segurança not_enabled: Você ainda não habilitou o WebAuthn not_supported: Este navegador não tem suporte a chaves de segurança - otp_required: Para usar chaves de segurança, por favor habilite primeiro a autenticação de dois fatores. + otp_required: Para usar chaves de segurança, ative a autenticação de dois fatores. registered_on: Registrado em %{date} diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 49cee32d0a0418..a477b07d0b4471 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1,94 +1,27 @@ --- pt-PT: about: - about_hashtag_html: Estes são toots públicos marcados com #%{hashtag}. Podes interagir com eles se tiveres uma conta Mastodon. about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos da web e software livre e gratuito. É descentralizado como e-mail. - about_this: Sobre esta instância - active_count_after: activo - active_footnote: Utilizadores activos mensais (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicações móveis - apps_platforms: Usar o Mastodon a partir do iOS, Android e outras plataformas - browse_directory: Navegue pelo directório de perfis e filtre por interesses - browse_local_posts: Visualize as publicações públicas desta instância em tempo real - browse_public_posts: Visualize as publicações públicas do Mastodon em tempo real - contact: Contacto contact_missing: Não configurado contact_unavailable: n.d. - continue_to_web: Continuar para a aplicação web - discover_users: Descobrir utilizadores - documentation: Documentação - federation_hint_html: Ter uma conta em %{instance} permitirá seguir pessoas em qualquer instância Mastodon. - get_apps: Experimente uma aplicação hosted_on: Mastodon em %{domain} - instance_actor_flash: | - Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual. - É usada para motivos de federação e não deve ser bloqueada a não ser que que queira bloquear a instância por completo. Se for esse o caso, deverá usar o bloqueio de domínio. - learn_more: Saber mais - logged_in_as_html: Está de momento ligado como %{username}. - logout_before_registering: Já tem sessão iniciada. - privacy_policy: Política de privacidade - rules: Regras da instância - rules_html: 'Abaixo está um resumo das regras que precisa seguir se pretender ter uma conta nesta instância do Mastodon:' - see_whats_happening: Veja o que está a acontecer - server_stats: 'Estatísticas da instância:' - source_code: Código fonte - status_count_after: - one: publicação - other: publicações - status_count_before: Que fizeram - tagline: Siga os seus amigos e descubra novas amizades - terms: Termos de serviço - unavailable_content: Conteúdo indisponível - unavailable_content_description: - domain: Instância - reason: Motivo - rejecting_media: 'Arquivos de media destas instâncias não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:' - rejecting_media_title: Media filtrada - silenced: 'Publicações destas instâncias serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:' - silenced_title: Servidores silenciados - suspended: 'Nenhum dado dessas instâncias será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores dessas instâncias impossível:' - suspended_title: Servidores suspensos - unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com utilizadores de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico. - user_count_after: - one: utilizador - other: utilizadores - user_count_before: Casa para - what_is_mastodon: O que é o Mastodon? + title: Sobre accounts: - choices_html: 'escolhas de %{name}:' - endorsements_hint: Você pode, através da interface web, escolher endossar pessoas que segue, e elas aparecerão aqui. - featured_tags_hint: Você pode destacar hashtags específicas que serão exibidas aqui. follow: Seguir followers: one: Seguidor other: Seguidores following: A seguir instance_actor_flash: Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual. É usada para motivos de federação e não deve ser suspenso. - joined: Aderiu %{date} last_active: última vez activo link_verified_on: A posse deste link foi verificada em %{date} - media: Media - moved_html: "%{name} mudou-se para %{new_profile_link}:" - network_hidden: Esta informação não está disponível nothing_here: Não há nada aqui! - people_followed_by: Pessoas seguidas por %{name} - people_who_follow: Pessoas que seguem %{name} pin_errors: following: Tu tens de estar a seguir a pessoa que pretendes apoiar posts: one: Publicação other: Publicações posts_tab_heading: Publicações - posts_with_replies: Posts e Respostas - roles: - admin: Administrador(a) - bot: Robô - group: Grupo - moderator: Moderador - unavailable: Perfil indisponível - unfollow: Deixar de seguir admin: account_actions: action: Executar acção @@ -105,12 +38,17 @@ pt-PT: avatar: Imagem de Perfil by_domain: Domínio change_email: - changed_msg: E-mail da conta alterado com sucesso! + changed_msg: E-mail alterado com sucesso! current_email: E-mail atual label: Alterar e-mail new_email: Novo e-mail submit: Alterar e-mail title: Alterar e-mail para %{username} + change_role: + changed_msg: Função alterada com sucesso! + label: Alterar função + no_role: Nenhuma função + title: Alterar a função de %{username} confirm: Confirmar confirmed: Confirmado confirming: A confirmar @@ -154,6 +92,7 @@ pt-PT: active: Activo all: Todos pending: Pendente + silenced: Limitadas suspended: Supensos title: Moderação moderation_notes: Notas de moderação @@ -161,6 +100,7 @@ pt-PT: most_recent_ip: IP mais recente no_account_selected: Nenhuma conta foi alterada porque nenhuma foi selecionada no_limits_imposed: Sem limites impostos + no_role_assigned: Nenhuma função atribuída not_subscribed: Não inscrito pending: Pendente de revisão perform_full_suspension: Fazer suspensão completa @@ -187,12 +127,7 @@ pt-PT: reset: Restaurar reset_password: Reset palavra-passe resubscribe: Reinscrever - role: Permissões - roles: - admin: Administrador(a) - moderator: Moderador - staff: Equipa - user: Utilizador + role: Função search: Pesquisar search_same_email_domain: Outros utilizadores com o mesmo domínio de e-mail search_same_ip: Outros utilizadores com o mesmo IP @@ -235,17 +170,21 @@ pt-PT: approve_user: Aprovar Utilizador assigned_to_self_report: Atribuir Denúncia change_email_user: Alterar E-mail do Utilizador + change_role_user: Alterar Função do Utilizador confirm_user: Confirmar Utilizador create_account_warning: Criar Aviso create_announcement: Criar Anúncio + create_canonical_email_block: Criar Bloqueio de E-mail create_custom_emoji: Criar Emoji Personalizado create_domain_allow: Criar Permissão de Domínio create_domain_block: Criar Bloqueio de Domínio create_email_domain_block: Criar Bloqueio de Domínio de E-mail create_ip_block: Criar regra de IP create_unavailable_domain: Criar Domínio Indisponível + create_user_role: Criar Função demote_user: Despromover Utilizador destroy_announcement: Eliminar Anúncio + destroy_canonical_email_block: Eliminar Bloqueio de E-mail destroy_custom_emoji: Eliminar Emoji Personalizado destroy_domain_allow: Eliminar Permissão de Domínio destroy_domain_block: Eliminar Bloqueio de Domínio @@ -254,6 +193,7 @@ pt-PT: destroy_ip_block: Eliminar regra de IP destroy_status: Eliminar Publicação destroy_unavailable_domain: Eliminar Domínio Indisponível + destroy_user_role: Eliminar Função disable_2fa_user: Desativar 2FA disable_custom_emoji: Desativar Emoji Personalizado disable_sign_in_token_auth_user: Desativar token de autenticação por e-mail para Utilizador @@ -267,6 +207,7 @@ pt-PT: reject_user: Rejeitar Utilizador remove_avatar_user: Remover Imagem de Perfil reopen_report: Reabrir Denúncia + resend_user: Reenviar E-mail de Confirmação reset_password_user: Repor Password resolve_report: Resolver Denúncia sensitive_account: Marcar a media na sua conta como sensível @@ -280,24 +221,30 @@ pt-PT: update_announcement: Atualizar Anúncio update_custom_emoji: Atualizar Emoji Personalizado update_domain_block: Atualizar Bloqueio de Domínio + update_ip_block: Atualizar regra de IP update_status: Atualizar Estado + update_user_role: Atualizar Função actions: approve_appeal_html: "%{name} aprovou recurso da decisão de moderação de %{target}" approve_user_html: "%{name} aprovou a inscrição de %{target}" assigned_to_self_report_html: "%{name} atribuiu a denúncia %{target} a si próprio" change_email_user_html: "%{name} alterou o endereço de e-mail do utilizador %{target}" + change_role_user_html: "%{name} alterou a função de %{target}" confirm_user_html: "%{name} confirmou o endereço de e-mail do utilizador %{target}" create_account_warning_html: "%{name} enviou um aviso para %{target}" create_announcement_html: "%{name} criou o novo anúncio %{target}" + create_canonical_email_block_html: "%{name} bloqueou o e-mail com a hash %{target}" create_custom_emoji_html: "%{name} carregou o novo emoji %{target}" create_domain_allow_html: "%{name} habilitou a federação com o domínio %{target}" create_domain_block_html: "%{name} bloqueou o domínio %{target}" create_email_domain_block_html: "%{name} bloqueou o domínio de e-mail %{target}" create_ip_block_html: "%{name} criou regra para o IP %{target}" create_unavailable_domain_html: "%{name} parou a entrega ao domínio %{target}" + create_user_role_html: "%{name} criou a função %{target}" demote_user_html: "%{name} despromoveu o utilizador %{target}" destroy_announcement_html: "%{name} eliminou o anúncio %{target}" - destroy_custom_emoji_html: "%{name} destruiu o emoji %{target}" + destroy_canonical_email_block_html: "%{name} desbloqueou o e-mail com a hash %{target}" + destroy_custom_emoji_html: "%{name} eliminou o emoji %{target}" destroy_domain_allow_html: "%{name} desabilitou a federação com o domínio %{target}" destroy_domain_block_html: "%{name} desbloqueou o domínio %{target}" destroy_email_domain_block_html: "%{name} desbloqueou o domínio de e-mail %{target}" @@ -305,6 +252,7 @@ pt-PT: destroy_ip_block_html: "%{name} eliminou regra para o IP %{target}" destroy_status_html: "%{name} removeu a publicação de %{target}" destroy_unavailable_domain_html: "%{name} retomou a entrega ao domínio %{target}" + destroy_user_role_html: "%{name} eliminou a função %{target}" disable_2fa_user_html: "%{name} desativou o requerimento de autenticação em dois passos para o utilizador %{target}" disable_custom_emoji_html: "%{name} desabilitou o emoji %{target}" disable_sign_in_token_auth_user_html: "%{name} desativou token de autenticação por e-mail para %{target}" @@ -318,6 +266,7 @@ pt-PT: reject_user_html: "%{name} rejeitou a inscrição de %{target}" remove_avatar_user_html: "%{name} removeu a imagem de perfil de %{target}" reopen_report_html: "%{name} reabriu a denúncia %{target}" + resend_user_html: "%{name} reenviou e-mail de confirmação para %{target}" reset_password_user_html: "%{name} restabeleceu a palavra-passe do utilizador %{target}" resolve_report_html: "%{name} resolveu a denúncia %{target}" sensitive_account_html: "%{name} marcou a media de %{target} como sensível" @@ -331,8 +280,10 @@ pt-PT: update_announcement_html: "%{name} atualizou o anúncio %{target}" update_custom_emoji_html: "%{name} atualizou o emoji %{target}" update_domain_block_html: "%{name} atualizou o bloqueio de domínio para %{target}" + update_ip_block_html: "%{name} alterou regra para IP %{target}" update_status_html: "%{name} atualizou o estado de %{target}" - deleted_status: "(publicação eliminada)" + update_user_role_html: "%{name} alterou a função %{target}" + deleted_account: conta excluída empty: Não foram encontrados registos. filter_by_action: Filtrar por ação filter_by_user: Filtrar por utilizador @@ -376,6 +327,7 @@ pt-PT: listed: Listado new: title: Adicionar novo emoji customizado + no_emoji_selected: Nenhum emojis foi alterado, pois nenhum foi selecionado not_permitted: Não está autorizado a executar esta ação overwrite: Sobrescrever shortcode: Código de atalho @@ -428,6 +380,7 @@ pt-PT: destroyed_msg: Bloqueio de domínio está a ser removido domain: Domínio edit: Editar bloqueio de domínio + existing_domain_block: Já impôs limites mais rigorosos a %{name}. existing_domain_block_html: Você já impôs limites mais restritivos a %{name}, é necessário primeiro desbloqueá-lo. new: create: Criar bloqueio @@ -648,6 +601,67 @@ pt-PT: unresolved: Por resolver updated_at: Atualizado view_profile: Ver perfil + roles: + add_new: Adicionar função + assigned_users: + one: "%{count} utilizador" + other: "%{count} utilizadores" + categories: + administration: Administração + devops: DevOps + invites: Convites + moderation: Moderação + special: Especiais + delete: Eliminar + description_html: Com as funções de utilizador, pode personalizar quais funções e áreas do Mastodon os seus utilizadores podem aceder. + edit: Editar função '%{name}' + everyone: Permissões padrão + everyone_full_description_html: Esta é a função base que afeta todos os utilizadores, mesmo aqueles sem uma função atribuída. Todas as outras funções herdam as permissões desta. + permissions_count: + one: "%{count} permissão" + other: "%{count} permissões" + privileges: + administrator: Administrador + administrator_description: Utilizadores com esta permissão irão contornar todas as permissões + delete_user_data: Eliminar Dados de Utilizador + delete_user_data_description: Permite que os utilizadores eliminem os dados de outros utilizadores sem atraso + invite_users: Convidar Utilizadores + invite_users_description: Permite aos utilizadores convidar pessoas novas para o servidor + manage_announcements: Gerir Anúncios + manage_announcements_description: Permite aos utilizadores gerir anúncios no servidor + manage_appeals: Gerir Recursos + manage_appeals_description: Permite aos utilizadores rever recursos de moderação + manage_blocks: Gerir Bloqueios + manage_blocks_description: Permite aos utilizadores bloquear provedores de e-mail e endereços IP + manage_custom_emojis: Gerir Emojis Personalizados + manage_custom_emojis_description: Permite aos utilizadores gerir os emojis personalizados do servidor + manage_federation: Gerir Federação + manage_federation_description: Permite aos utilizadores bloquear ou permitir federação com outros domínios e controlar a entregabilidade + manage_invites: Gerir Convites + manage_invites_description: Permite aos utilizadores pesquisar e desativar links de convite + manage_reports: Gerir Relatórios + manage_reports_description: Permite aos utilizadores rever relatórios e executar ações de moderação contra eles + manage_roles: Gerir Funções + manage_roles_description: Permite aos usuários gerir e atribuir funções abaixo das deles + manage_rules: Gerir Regras + manage_rules_description: Permite aos utilizadores alterar as regras do servidor + manage_settings: Gerir Configurações + manage_settings_description: Permite aos utilizadores alterar as configurações do site + manage_taxonomies: Gerir Taxonomias + manage_taxonomies_description: Permite aos utilizadores rever o conteúdo em tendência e atualizar as configurações de hashtag + manage_user_access: Gerir Acesso de Utilizador + manage_user_access_description: Permite aos utilizadores desativar a autenticação em duas etapas de outros utilizadores, alterar o seu endereço de e-mail e redefinir a sua palavra-passe + manage_users: Gerir Utilizadores + manage_users_description: Permite aos utilizadores ver os detalhes de outros utilizadores e executar ações de moderação contra eles + manage_webhooks: Gerir Webhooks + manage_webhooks_description: Permite aos utilizadores configurar webhooks para eventos administrativos + view_audit_log: Ver Registo de Auditoria + view_audit_log_description: Permite aos utilizadores ver um histórico de ações administrativas no servidor + view_dashboard: Ver Painel de Controlo + view_dashboard_description: Permite aos utilizadores aceder ao painel de controlo e várias métricas + view_devops: DevOps + view_devops_description: Permite aos utilizadores aceder aos painéis de controlo do Sidekiq e pgHero + title: Funções rules: add_new: Adicionar regra delete: Eliminar @@ -656,108 +670,67 @@ pt-PT: empty: Nenhuma regra de instância foi ainda definida. title: Regras da instância settings: - activity_api_enabled: - desc_html: Contagem semanais de publicações locais, utilizadores activos e novos registos - title: Publicar estatísticas agregadas sobre atividade dos utilizadores - bootstrap_timeline_accounts: - desc_html: Separa os nomes de utilizadores por vírgulas. Funciona apenas com contas locais e desbloqueadas. O padrão quando vazio são todos os administradores locais. - title: Seguidores predefinidos para novas contas - contact_information: - email: Inserir um endereço de e-mail para tornar público - username: Insira um nome de utilizador - custom_css: - desc_html: Modificar a aparência com CSS carregado em cada página - title: CSS personalizado - default_noindex: - desc_html: Afeta todos os utilizadores que não alteraram esta configuração - title: Desativar, por omissão, a indexação de utilizadores por parte dos motores de pesquisa + about: + manage_rules: Gerir regras do servidor + preamble: Forneça informações aprofundadas sobre como o servidor é operado, moderado, financiado. + rules_hint: Existe uma área dedicada às regras a que os seus utilizadores devem aderir. + title: Sobre + appearance: + preamble: Personalize a interface web do Mastodon. + title: Aspeto + branding: + preamble: A marca do seu servidor diferencia-a de outros servidores na rede. Essa informação pode ser exibida em vários ambientes, como a interface web do Mastodon, aplicativos nativos, visualizações de links em outros sites e dentro de aplicativos de mensagens, etc. Por esta razão, é melhor manter esta informação clara, curta e concisa. + title: Marca + content_retention: + preamble: Controle como o conteúdo gerado pelos utilizadores é armazenado no Mastodon. + title: Retenção de conteúdo + discovery: + follow_recommendations: Recomendações para seguir + preamble: Revelar conteúdos interessantes é fundamental para a entrada de novos utilizadores que podem não conhecer ninguém no Mastodon. Controle como os vários recursos de descoberta funcionam no seu servidor. + profile_directory: Diretório de perfis + public_timelines: Cronologias públicas + title: Descobrir + trends: Tendências domain_blocks: all: Para toda a gente disabled: Para ninguém - title: Mostrar domínios bloqueados users: Para utilizadores locais que se encontrem autenticados - domain_blocks_rationale: - title: Mostrar motivo - hero: - desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentada a miniatura da instância - title: Imagem Hero - mascot: - desc_html: Apresentada em múltiplas páginas. Pelo menos 293x205px recomendados. Quando não é definida, é apresentada a mascote predefinida - title: Imagem da mascote - peers_api_enabled: - desc_html: Nomes de domínio que esta instância encontrou no fediverso - title: Publicar lista de instâncias descobertas - preview_sensitive_media: - desc_html: A pre-visualização de links noutros sites irá apresentar uma miniatura, mesmo que a media seja marcada como sensível - title: Mostrar media sensível em pre-visualizações OpenGraph - profile_directory: - desc_html: Permite aos utilizadores serem descobertos - title: Ativar directório do perfil registrations: - closed_message: - desc_html: Mostrar na página inicial quando registos estão encerrados
      Podes usar tags HTML - title: Mensagem de registos encerrados - deletion: - desc_html: Permitir a qualquer utilizador eliminar a sua conta - title: Permitir eliminar contas - min_invite_role: - disabled: Ninguém - title: Permitir convites de - require_invite_text: - desc_html: Quando os registos exigirem aprovação manual, faça o texto "Porque se quer juntar a nós?" da solicitação de convite obrigatório, em vez de opcional - title: Exigir que novos utilizadores preencham um texto de solicitação de convite + preamble: Controle quem pode criar uma conta no seu servidor. + title: Inscrições registrations_mode: modes: approved: Registo sujeito a aprovação none: Ninguém se pode registar open: Qualquer pessoa se pode registar - title: Modo de registo - show_known_fediverse_at_about_page: - desc_html: Quando comutado, irá mostrar a previsualização de publicações de todo o fediverse conhecido. De outro modo só mostrará publicações locais. - title: Mostrar o fediverse conhecido na previsualização da cronologia - show_staff_badge: - desc_html: Mostrar um crachá da equipa na página de utilizador - title: Mostrar crachá da equipa - site_description: - desc_html: Mostrar como parágrafo na página inicial e usado como meta tag.Podes usar tags HTML, em particular <a> e <em>. - title: Descrição do site - site_description_extended: - desc_html: Mostrar na página de mais informações
      Podes usar tags HTML - title: Página de mais informações - site_short_description: - desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que o Mastodon é e o que torna esta instância especial num único parágrafo. Se deixada em branco, remete para a descrição da instância. - title: Breve descrição da instância - site_terms: - desc_html: Podes escrever a sua própria política de privacidade, termos de serviço, entre outras coisas. Pode utilizar etiquetas HTML - title: Termos de serviço personalizados - site_title: Título do site - thumbnail: - desc_html: Usada para visualizações via OpenGraph e API. Recomenda-se 1200x630px - title: Miniatura da instância - timeline_preview: - desc_html: Exibir a linha temporal pública na página inicial - title: Visualização da linha temporal - title: Configurações do site - trendable_by_default: - desc_html: Afecta as hashtags que ainda não tenham sido proibidas - title: Permitir hashtags em tendência sem revisão prévia - trends: - desc_html: Exibir publicamente hashtags atualmente em destaque que já tenham sido revistas anteriormente - title: Hashtags em destaque + title: Definições do Servidor site_uploads: delete: Eliminar arquivo carregado destroyed_msg: Upload do site eliminado com sucesso! statuses: + account: Autor + application: Aplicação back_to_account: Voltar para página da conta back_to_report: Voltar à página da denúncia batch: remove_from_report: Remover da denúncia report: Denúncia deleted: Eliminado + favourites: Favoritos + history: Histórico de versões + in_reply_to: A responder a + language: Idioma media: title: Media + metadata: Metadados no_status_selected: Nenhum estado foi alterado porque nenhum foi selecionado + open: Abrir publicação + original_status: Publicação original + reblogs: Reblogs + status_changed: Publicação alterada title: Estado das contas + trending: Em destaque + visibility: Visibilidade with_media: Com media strikes: actions: @@ -797,6 +770,9 @@ pt-PT: description_html: Estes são links que atualmente estão a ser frequentemente partilhados por contas visiveis pelo seu servidor. Eles podem ajudar os seus utilizador a descobrir o que está a acontecer no mundo. Nenhum link é exibido publicamente até que aprove o editor. Também pode permitir ou rejeitar links individualmente. disallow: Não permitir link disallow_provider: Não permitir editor + no_link_selected: Nenhum link foi alterado, pois nenhum foi selecionado + publishers: + no_publisher_selected: Nenhum editor foi alterado, pois nenhum foi selecionado shared_by_over_week: one: Partilhado por uma pessoa na última semana other: Partilhado por %{count} pessoas na última semana @@ -816,6 +792,7 @@ pt-PT: description_html: Estas são publicações que o seu servidor conhece e que atualmente estão a ser frequentemente partilhadas e adicionadas aos favoritos. Isto pode ajudar os seus utilizadores, novos e retornados, a encontrar mais pessoas para seguir. Nenhuma publicação será exibida publicamente até que aprove o autor, e o autor permita que a sua conta seja sugerida a outros. Você também pode permitir ou rejeitar publicações individualmente. disallow: Não permitir publicação disallow_account: Não permitir autor + no_status_selected: Nenhuma publicação em tendência foi alterada, pois nenhuma foi selecionada not_discoverable: O autor optou por não permitir que a sua conta seja sugerida a outros shared_by: one: Partilhado ou adicionado aos favoritos uma vez @@ -831,6 +808,7 @@ pt-PT: tag_uses_measure: utilizações totais description_html: Estas são hashtags que aparecem atualmente com frequência em publicações visíveis pelo seu servidor. Isto pode ajudar os seus utilizadores a descobrir o que está ser mais falado no momento. Nenhuma hashtag é exibida publicamente até que a aprove. listable: Pode ser sugerida + no_tag_selected: Nenhuma etiqueta foi alterada, pois nenhuma foi selecionada not_listable: Não será sugerida not_trendable: Não aparecerá nas tendências not_usable: Não pode ser utilizada @@ -851,6 +829,26 @@ pt-PT: edit_preset: Editar o aviso predefinido empty: Ainda não definiu nenhum aviso predefinido. title: Gerir os avisos predefinidos + webhooks: + add_new: Adicionar endpoint + delete: Eliminar + description_html: Um webhook possibilita que o Mastodon envie notificações em tempo real de eventos seleccionados, para um seu aplicativo, para que este possa acionar ações automaticamente. + disable: Desativar + disabled: Desativado + edit: Editar endpoint + empty: Não tem ainda qualquer endpoint de webhook configurado. + enable: Ativar + enabled: Activo + enabled_events: + one: 1 evento ativado + other: "%{count} eventos ativados" + events: Eventos + new: Novo webhook + rotate_secret: Alternar segredo + secret: Segredo de assinatura + status: Estado + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -874,12 +872,8 @@ pt-PT: new_trends: body: 'Os seguintes itens precisam ser revistos antes de poderem ser exibidos publicamente:' new_trending_links: - no_approved_links: Não existem, atualmente, links aprovados em destaque. - requirements: 'Qualquer um destes candidatos pode ultrapassar o #%{rank} link aprovado em destaque, que é atualmente "%{lowest_link_title}" com uma pontuação de %{lowest_link_score}.' title: Links em destaque new_trending_statuses: - no_approved_statuses: Não existem, atualmente, publicações aprovadas em destaque. - requirements: 'Qualquer um destes candidatos pode ultrapassar a #%{rank} publicação aprovada em destaque, que é atualmente %{lowest_status_url} com uma pontuação de %{lowest_status_score}.' title: Publicações em destaque new_trending_tags: no_approved_tags: Não existem, atualmente, hashtags aprovadas em destaque. @@ -915,16 +909,13 @@ pt-PT: applications: created: Aplicação criada com sucesso destroyed: Aplicação eliminada com sucesso - invalid_url: O URL é inválido regenerate_token: Regenerar token de acesso token_regenerated: Token de acesso regenerado com sucesso warning: Cuidado com estes dados. Não partilhar com ninguém! your_token: O teu token de acesso auth: - apply_for_account: Solicitar um convite + apply_for_account: Juntar-se à lista de espera change_password: Palavra-passe - checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço - checkbox_agreement_without_rules_html: Concordo com os termos do serviço delete_account: Eliminar conta delete_account_html: Se deseja eliminar a sua conta, pode continuar aqui. Uma confirmação será solicitada. description: @@ -943,6 +934,7 @@ pt-PT: migrate_account: Mudar para uma conta diferente migrate_account_html: Se deseja redirecionar esta conta para uma outra pode configurar isso aqui. or_log_in_with: Ou iniciar sessão com + privacy_policy_agreement_html: Eu li e concordo com a política de privacidade providers: cas: CAS saml: SAML @@ -950,12 +942,18 @@ pt-PT: registration_closed: "%{instance} não está a aceitar novos membros" resend_confirmation: Reenviar instruções de confirmação reset_password: Criar nova palavra-passe + rules: + preamble: Estas são definidos e aplicadas pelos moderadores de %{domain}. + title: Algumas regras básicas. security: Alterar palavra-passe set_new_password: Editar palavra-passe setup: email_below_hint_html: Se o endereço de e-mail abaixo estiver incorreto, pode alterá-lo aqui e receber um novo e-mail de confirmação. email_settings_hint_html: O e-mail de confirmação foi enviado para %{email}. Se esse endereço de e-mail não estiver correto, pode alterá-lo nas definições da conta. title: Configuração + sign_up: + preamble: Com uma conta neste servidor Mastodon, poderá seguir qualquer outra pessoa na rede, independentemente do servidor onde a conta esteja hospedada. + title: Vamos lá inscrevê-lo em %{domain}. status: account_status: Estado da conta confirming: A aguardar que conclua a confirmação do e-mail. @@ -964,7 +962,6 @@ pt-PT: redirecting_to: A sua conta está inativa porque está atualmente a ser redirecionada para %{acct}. view_strikes: Veja as punições anteriores contra a sua conta too_fast: Formulário enviado muito rapidamente, tente novamente. - trouble_logging_in: Problemas em iniciar sessão? use_security_key: Usar chave de segurança authorize_follow: already_following: Tu já estás a seguir esta conta @@ -1022,10 +1019,6 @@ pt-PT: more_details_html: Para mais detalhes, leia a política de privacidade. username_available: O seu nome de utilizador ficará novamente disponível username_unavailable: O seu nome de utilizador permanecerá indisponível - directories: - directory: Dirétorio de perfil - explanation: Descobre utilizadores com base nos seus interesses - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Ação tomada @@ -1104,29 +1097,60 @@ pt-PT: public: Cronologias públicas thread: Conversações edit: + add_keyword: Adicionar palavra-chave + keywords: Palavras-chave + statuses: Publicações individuais + statuses_hint_html: Este filtro aplica-se a publicações individuais selecionadas independentemente de estas corresponderem às palavras-chave abaixo. Reveja ou remova publicações do filtro. title: Editar filtros errors: + deprecated_api_multiple_keywords: Estes parâmetros não podem ser alterados a partir deste aplicativo porque se aplicam a mais de um filtro de palavra-chave. Use um aplicativo mais recente ou a interface web. invalid_context: Inválido ou nenhum contexto fornecido - invalid_irreversible: Filtragem irreversível só funciona no contexto das notificações ou do início index: + contexts: Filtros em %{contexts} delete: Eliminar empty: Não tem filtros. + expires_in: Expira em %{distance} + expires_on: Expira em %{date} + keywords: + one: "%{count} palavra-chave" + other: "%{count} palavras-chaves" + statuses: + one: "%{count} publicação" + other: "%{count} publicações" + statuses_long: + one: "%{count} publicação individual ocultada" + other: "%{count} publicações individuais ocultadas" title: Filtros new: + save: Salvar novo filtro title: Adicionar novo filtro + statuses: + back_to_filter: Voltar ao filtro + batch: + remove: Remover do filtro + index: + hint: Este filtro aplica-se a publicações individuais selecionadas independentemente de outros critérios. Pode adicionar mais publicações a este filtro através da interface web. + title: Publicações filtradas footer: - developers: Responsáveis pelo desenvolvimento - more: Mais… - resources: Recursos trending_now: Tendências atuais generic: all: Tudo + all_items_on_page_selected_html: + one: "%{count} item nesta página está selecionado." + other: Todo os %{count} items nesta página estão selecionados. + all_matching_items_selected_html: + one: "%{count} item que corresponde à sua pesquisa está selecionado." + other: Todos os %{count} items que correspondem à sua pesquisa estão selecionados. changes_saved_msg: Alterações guardadas! copy: Copiar delete: Eliminar + deselect: Desmarcar todos none: Nenhum order_by: Ordenar por save_changes: Guardar alterações + select_all_matching_items: + one: Selecione %{count} item que corresponde à sua pesquisa. + other: Selecione todos os %{count} items que correspondem à sua pesquisa. today: hoje validation_errors: one: Algo não está correcto. Por favor vê o erro abaixo @@ -1150,7 +1174,6 @@ pt-PT: following: Lista de pessoas que estás a seguir muting: Lista de utilizadores silenciados upload: Enviar - in_memoriam_html: Em memória. invites: delete: Desativar expired: Expirados @@ -1229,21 +1252,14 @@ pt-PT: carry_blocks_over_text: Este utilizador migrou de %{acct}, que você tinha bloqueado. carry_mutes_over_text: Este utilizador migrou de %{acct}, que você tinha silenciado. copy_account_note_text: 'Este utilizador migrou de %{acct}, aqui estão as suas notas anteriores sobre ele:' + navigation: + toggle_menu: Abrir/fechar menu notification_mailer: admin: + report: + subject: "%{name} submeteu uma denúncia" sign_up: subject: "%{name} inscreveu-se" - digest: - action: Ver todas as notificações - body: Aqui tens um breve resumo do que perdeste desde o último acesso a %{since} - mention: "%{name} mencionou-te em:" - new_followers_summary: - one: Tens um novo seguidor! Boa! - other: Tens %{count} novos seguidores! Fantástico! - subject: - one: "1 nova notificação desde o seu último acesso 🐘" - other: "%{count} novas notificações desde o seu último acesso 🐘" - title: Enquanto estiveste ausente… favourite: body: 'O teu post foi adicionado aos favoritos por %{name}:' subject: "%{name} adicionou o teu post aos favoritos" @@ -1315,6 +1331,8 @@ pt-PT: other: Outro posting_defaults: Padrões de publicação public_timelines: Cronologias públicas + privacy_policy: + title: Política de Privacidade reactions: errors: limit_reached: Limite de reações diferentes atingido @@ -1337,22 +1355,7 @@ pt-PT: remove_selected_follows: Deixar de seguir os utilizadores selecionados status: Estado da conta remote_follow: - acct: Introduza o seu utilizador@domínio do qual quer seguir missing_resource: Não foi possível achar a URL de redirecionamento para sua conta - no_account_html: Não tens uma conta? Tu podes aderir aqui - proceed: Prossiga para seguir - prompt: 'Você vai seguir:' - reason_html: " Porque é este passo necessário? %{instance} pode não ser a instância onde você está registado. Por isso, precisamos de o redirecionar para a sua instância de origem em primeiro lugar." - remote_interaction: - favourite: - proceed: Prosseguir para os favoritos - prompt: 'Queres favoritar esta publicação:' - reblog: - proceed: Prosseguir com partilha - prompt: 'Queres partilhar esta publicação:' - reply: - proceed: Prosseguir com resposta - prompt: 'Queres responder a esta publicação:' reports: errors: invalid_rules: não faz referência a regras válidas @@ -1384,7 +1387,7 @@ pt-PT: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: Navegador UC weibo: Weibo current_session: Sessão atual description: "%{browser} em %{platform}" @@ -1524,89 +1527,6 @@ pt-PT: too_late: É tarde demais para apelar desta punição tags: does_not_match_previous_name: não coincide com o nome anterior - terms: - body_html: | -

      Política de privacidade

      -

      Que informação nós recolhemos?

      - -
        -
      • Informação básica da conta: Se te registares neste servidor, pode-te ser pedido que indiques um nome de utilizador, um endereço de email e uma palavra-passe. Também podes introduzir informação adicional de perfil, tal como um nome a mostrar e dados biográficos, que carregues uma fotografia para o teu perfil e para o cabeçalho. O nome de utilizador, o nome a mostrar, a biografia, a imagem de perfil e a imagem de cabeçalho são sempre listados publicamente.
      • -
      • Publicações, seguimento e outra informação pública: A lista de pessoas que tu segues é pública, o mesmo é verdade para os teus seguidores. Quando tu publicas uma mensagem, a data e a hora são guardados, tal como a aplicação a partir da qual a mensagem foi enviada. As mensagens podem conter anexos média, tais como fotografias ou vídeos. Publicações públicas e não listadas são acessíveis publicamente. Quando expões uma publicação no teu perfil, isso é também informação disponível publicamente. As tuas publicações são enviadas aos teus seguidores. Em alguns casos isso significa que elas são enviadas para servidores diferentes onde são guardadas cópias. Quando tu apagas publicações, isso também é enviado para os teus seguidores. A ação de republicar ou favoritar outra publicação é sempre pública.
      • -
      • Publicações diretas e exclusivas para seguidores: Todas as publicações são guardadas e processadas no servidor. Publicações exclusivas para seguidores são enviadas para os teus seguidores e para utilizadores que são nelas mencionados. As publicações diretas são enviadas apenas para os utilizadores nelas mencionados. Em alguns casos isso significa que elas são enviadas para diferentes servidores onde são guardadas cópias das mesmas. Nós fazemos um grande esforço para limitar o acesso a estas publicações aos utilizadores autorizados, mas outros servidores podem falhar neste objetivo. Por isso, tu deves rever os servidores a que os teus seguidores pertencem. Tu podes ativar uma opção para aprovar e rejeitar manualmente novos seguidores nas configurações. Por favor, tem em mente que os gestores do servidor e qualquer servidor que receba a publicação pode lê-la e que os destinatários podem fazer uma captura de tela, copiar ou partilhar a publicação. Não partilhes qualquer informação perigosa no Mastodon.
      • -
      • IPs e outros metadados: Quando inicias sessão, nós guardamos o endereço de IP a partir do qual iniciaste a sessão, tal como o nome do teu navegador. Todas as sessões estão disponíveis para verificação e revogação nas configurações. O último endereço de IP usado é guardado até 12 meses. Nós também podemos guardar registos de servidor, os quais incluem o endereço de IP de cada pedido dirigido ao nosso servidor.
      • -
      - -
      - -

      Para que usamos a tua informação?

      - -

      Qualquer informação que recolhemos sobre ti pode ser usada dos seguintes modos:

      - -
        -
      • Para providenciar a funcionalidade central do Mastodon. Tu só podes interagir com o conteúdo de outras pessoas e publicar o teu próprio conteúdo depois de teres iniciado sessão. Por exemplo, tu podes seguir outras pessoas para veres as suas publicações na tua cronologia inicial personalizada.
      • -
      • Para ajudar na moderação da comunidade para, por exemplo, comparar o teu endereço IP com outros conhecidos, para determinar a fuga ao banimento ou outras violações.
      • -
      • O endereço de e-mail que tu forneces pode ser usado para te enviar informações e/ou notificações sobre outras pessoas que estão a interagir com o teu conteúdo ou a enviar-te mensagens, para responderes a inquéritos e/ou outros pedidos ou questões.
      • -
      - -
      - -

      Como é que nós protegemos a tua informação?

      - -

      Nós implementamos uma variedade de medidas de segurança para garantir a segurança da tua informação pessoal quando tu introduzes, submetes ou acedes à mesma. Entre outras coisas, a tua sessão de navegação, tal como o tráfego entre as tuas aplicações e a API, estão seguras por SSL e a tua palavra-passe é codificada usando um forte algoritmo de sentido único. Tu podes activar a autenticação em dois passos para aumentares ainda mais a segurança do acesso à tua conta.

      - -
      - -

      Qual é a nossa política de retenção de dados?

      - -

      Nós envidaremos todos os esforços no sentido de:

      - -
        -
      • Guardar registos do servidor contendo o endereço de IP de todos os pedidos feitos a este servidor, considerando que estes registos não serão guardados por mais de 90 dias.
      • -
      • Guardar os endereços de IP associados aos utilizadores registados durante um período que não ultrapassará os 12 meses.
      • -
      - -

      Tu podes pedir e descarregar um ficheiro com o teu conteúdo, incluindo as tuas publicações, os ficheiros multimédia, a imagem de perfil e a imagem de cabeçalho.

      - -

      Tu podes apagar a tua conta de modo definitivo e a qualquer momento.

      - -
      - -

      Usamos cookies?

      - -

      Sim. Cookies são pequenos ficheiros que um site ou o seu fornecedor de serviço transfere para o disco rígido do teu computador através do teu navegador (se tu permitires). Estes cookies permitem ao site reconhecer o teu navegador e, se tu tiveres uma conta registada, associá-lo a ela.

      - -

      Nós usamos os cookies para compreender e guardar as tuas preferências para as visitas futuras.

      - -
      - -

      Nós divulgamos alguma informação para entidades externas?

      - -

      Nós não vendemos, trocamos ou transferimos de qualquer modo a tua informação pessoal que seja identificável para qualquer entidade externa. Isto não inclui terceiros de confiança que nos ajudam a manter o nosso site, conduzir o nosso negócio ou prestar-te este serviço, desde que esses terceiros concordem em manter essa informação confidencial. Poderemos também revelar a tua informação quando nós acreditamos que isso é apropriado para cumprir a lei, forçar a aplicação dos nossos termos de serviço ou proteger os direitos, propriedade e segurança, nossos e de outrem.

      - -

      O teu conteúdo público pode ser descarregado por outros servidores na rede. As tuas publicações públicas e exclusivas para os teus seguidores são enviadas para os servidores onde os teus seguidores residem e as mensagens directas são entregues aos servidores dos seus destinatários, no caso desses seguidores ou destinatários residirem num servidor diferente deste.

      - -

      Quando tu autorizas uma aplicação a usar a tua conta, dependendo da abrangência das permissões que tu aprovas, ela pode ter acesso à informação pública do teu perfil, à lista de quem segues, aos teus seguidores, às tuas listas, a todas as tuas publicações e aos teus favoritos. As aplicações nunca terão acesso ao teu endereço de e-mail ou à tua palavra-passe.

      - -
      - -

      Utilização do site por crianças

      - -

      Se este servidor estiver na EU ou na EEA: O nosso site, produtos e serviços são todos dirigidos a pessoas que têm, pelo menos, 16 de idade. Se tu tens menos de 16 anos, devido aos requisitos da GDPR (General Data Protection Regulation) não uses este site.

      - -

      Se este servidor estiver nos EUA: O nosso site, produtos e serviços são todos dirigidos a pessoas que têm, pelo menos, 13 anos de idade. Se tu tens menos de 13 anos de idade, devido aos requisitos da COPPA (Children's Online Privacy Protection Act) não uses este site.

      - -

      Os requisitos legais poderão ser diferentes se este servidor estiver noutra jurisdição.

      - -
      - -

      Alterações à nossa Política de Privacidade

      - -

      Se nós decidirmos alterar a nossa política de privacidade, nós iremos publicar essas alterações nesta página.

      - -

      Este documento é CC-BY-SA. Ele foi actualizado pela última vez em 7 de Março 2018.

      - -

      Originalmente adaptado de Discourse privacy policy.

      - title: "%{instance} Termos de Serviço e Política de Privacidade" themes: contrast: Mastodon (Elevado contraste) default: Mastodon @@ -1685,20 +1605,13 @@ pt-PT: suspend: Conta suspensa welcome: edit_profile_action: Configurar o perfil - edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferir rever os novos seguidores antes de estes o poderem seguir, pode tornar a sua conta privada. + edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil, alterando o nome a exibir, entre outras opções. Pode optar por rever os novos seguidores antes de estes o poderem seguir. explanation: Aqui estão algumas dicas para começar final_action: Começar a publicar - final_step: 'Começa a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.' + final_step: 'Comece a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.' full_handle: O seu nome completo full_handle_hint: Isto é o que tem de facultar aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância. - review_preferences_action: Alterar preferências - review_preferences_step: Certifique-se de configurar as suas preferências, tais como os e-mails que gostaria de receber ou o nível de privacidade que deseja que as suas publicações tenham por defeito. Se não sofre de enjoo de movimento, pode ativar a opção de auto-iniciar GIFs. subject: Bem-vindo ao Mastodon - tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa. - tip_following: Segues o(s) administrador(es) do teu servidor por defeito. Para encontrar mais pessoas interessantes, procura nas cronologias local e federada. - tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os seus vizinhos mais próximos! - tip_mobile_webapp: Se o teu navegador móvel te oferecer a possibilidade de adicionar o Mastodon ao teu homescreen, tu podes receber notificações push. Ele age como uma aplicação nativa de vários modos! - tips: Dicas title: Bem-vindo a bordo, %{name}! users: follow_limit_reached: Não podes seguir mais do que %{limit} pessoas diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 4f3861b0080b63..c8e1d8a3e258a7 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -1,64 +1,11 @@ --- ro: about: - about_hashtag_html: Acestea sunt postări publice etichetate cu #%{hashtag}. Poți interacționa cu ele dacă ai un cont oriunde în rețea. about_mastodon_html: 'Rețeaua socială a viitorului: Fără reclame, fără supraveghere corporativă, design etic și descentralizare! Dețineți-vă datele cu Mastodon!' - about_this: Despre - active_count_after: activi - active_footnote: Utilizatori activi lunar (UAL) - administered_by: 'Administrat de:' - api: API - apps: Aplicații mobile - apps_platforms: Folosește Mastodon de pe iOS, Android și alte platforme - browse_directory: Răsfoiți directorul de profil și filtrați după interese - browse_local_posts: Răsfoiți un flux live al postărilor publice de pe acest server - browse_public_posts: Răsfoiește un flux live de postări publice pe Mastodon - contact: Contact contact_missing: Nesetat contact_unavailable: Indisponibil - discover_users: Descoperă utilizatori - documentation: Documentație - federation_hint_html: Cu un cont pe %{instance} vei putea urmări oameni pe orice server de Mastodon sau mai departe. - get_apps: Încercați o aplicație pentru mobil hosted_on: Mastodon găzduit de %{domain} - instance_actor_flash: | - Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual. - Acesta este folosit în scopuri de federație și nu ar trebui blocat decât dacă doriți să blocați întreaga instanță, în ce caz trebuie să utilizaţi un bloc de domeniu. - learn_more: Află mai multe - privacy_policy: Politica de confidenţialitate - rules: Regulile serverului - rules_html: 'Mai jos este un rezumat al regulilor pe care trebuie să le urmezi dacă vrei să ai un cont pe acest server de Mastodon:' - see_whats_happening: Vezi ce se întâmplă - server_stats: 'Statistici server:' - source_code: Cod sursă - status_count_after: - few: stări - one: stare - other: de stări - status_count_before: Care au postat - tagline: Urmăriți prietenii și descoperiți alții noi - terms: Termeni de serviciu - unavailable_content: Conținut indisponibil - unavailable_content_description: - domain: Server - reason: Motiv - rejecting_media: 'Fişierele media de pe aceste servere nu vor fi procesate sau stocate şi nici o miniatură nu va fi afişată, necesitând click manual la fişierul original:' - rejecting_media_title: Fișiere media filtrate - silenced: 'Postările de pe aceste servere vor fi ascunse în cronologii și conversații publice, și nici o notificare nu va fi generată de interacțiunile utilizatorilor lor decât dacă le urmărești:' - silenced_title: Servere limitate - suspended: 'Nici o informație de pe aceste servere nu va fi procesată, stocată sau schimbată, ceea ce face imposibilă orice interacțiune sau comunicare cu utilizatorii de pe aceste servere:' - suspended_title: Servere suspendate - unavailable_content_html: Mastodon vă permite în general să vedeți conținutul din orice alt server și să interacționați cu utilizatorii din rețea. Acestea sunt excepţiile care au fost făcute pe acest server. - user_count_after: - few: utilizatori - one: utilizator - other: de utilizatori - user_count_before: Casa a - what_is_mastodon: Ce este Mastodon? accounts: - choices_html: 'Alegerile lui %{name}:' - endorsements_hint: Poți promova oameni pe care îi urmărești din interfața web, și ei vor apărea aici. - featured_tags_hint: Puteți promova anumite hashtag-uri care vor fi afișate aici. follow: Urmărește followers: few: Urmăritori @@ -66,15 +13,9 @@ ro: other: De Urmăritori following: Urmăriți instance_actor_flash: Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual. Acesta este utilizat în scopuri federative şi nu trebuie suspendat. - joined: Înscris %{date} last_active: ultima activitate link_verified_on: Proprietatea acestui link a fost verificată la %{date} - media: Media - moved_html: "%{name} s-a mutat la %{new_profile_link}:" - network_hidden: Aceste informaţii nu sunt disponibile nothing_here: Nu există nimic aici! - people_followed_by: Persoane pe care %{name} le urmărește - people_who_follow: Persoane care urmăresc pe %{name} pin_errors: following: Trebuie să urmăriți deja persoana pe care doriți să o aprobați posts: @@ -82,14 +23,6 @@ ro: one: Postare other: De Postări posts_tab_heading: Postări - posts_with_replies: Postări și răspunsuri - roles: - admin: Admin - bot: Robot - group: Grup - moderator: Moderator - unavailable: Profil indisponibil - unfollow: Nu mai urmării admin: account_actions: action: Efectuează acțiunea @@ -106,7 +39,7 @@ ro: avatar: Poză de profil by_domain: Domeniu change_email: - changed_msg: E-mail de cont schimbat cu succes! + changed_msg: E-mail schimbat cu succes! current_email: E-mailul curent label: Schimbă adresa de email new_email: E-mail nou @@ -184,12 +117,6 @@ ro: reset: Resetează reset_password: Resetează parola resubscribe: Resubscrie-te - role: Permisiuni - roles: - admin: Administrator - moderator: Moderator - staff: Personal - user: Utilizator search: Caută search_same_email_domain: Alţi utilizatori cu acelaşi domeniu de e-mail search_same_ip: Alţi utilizatori cu acelaşi IP @@ -270,6 +197,8 @@ ro: update_announcement: Actualizare Anunț update_custom_emoji: Actualizare Emoji Personalizat update_status: Actualizează Starea + actions: + create_custom_emoji_html: "%{name} a încărcat noi emoji %{target}" announcements: live: În direct new: @@ -295,16 +224,12 @@ ro: applications: created: Aplicație creată cu succes destroyed: Aplicație ștearsă cu succes - invalid_url: URL-ul furnizat nu este valid regenerate_token: Regenerează token-ul de acces token_regenerated: Token de acces regenerat cu succes warning: Fiți foarte atent cu aceste date. Nu le împărtășiți niciodată cu cineva! your_token: Token-ul tău de acces auth: - apply_for_account: Solicită o invitație change_password: Parolă - checkbox_agreement_html: Sunt de acord cu regulile serverului şi termenii de serviciu - checkbox_agreement_without_rules_html: Sunt de acord cu termenii serviciului delete_account: Șterge contul delete_account_html: Dacă vrei să ștergi acest cont poți începe aici. Va trebui să confirmi această acțiune. description: @@ -334,7 +259,6 @@ ro: confirming: Se așteaptă finalizarea confirmării prin e-mail. pending: Cererea dvs. este în curs de revizuire de către personalul nostru. Este posibil să dureze ceva timp. Veți primi un e-mail dacă cererea dvs. este aprobată. redirecting_to: Contul dvs. este inactiv deoarece în prezent se redirecționează către %{acct}. - trouble_logging_in: Probleme la conectare? authorize_follow: already_following: Urmărești deja acest cont already_requested: Ați trimis deja o cerere de urmărire către acel cont @@ -379,9 +303,6 @@ ro: data_removal: Postările tale și alte date vor fi șterse permanent email_change_html: Puteți schimba adresa de e-mail fără a șterge contul dvs email_contact_html: Dacă tot nu ajunge, puteți trimite e-mail la %{email} pentru ajutor - directories: - explanation: Descoperă oameni și companii în funcție de interesele lor - explore_mastodon: Explorează %{title} errors: '400': The request you submitted was invalid or malformed. '403': Nu ai permisiunea să vizitezi această pagină. @@ -419,7 +340,6 @@ ro: title: Editează filtru errors: invalid_context: Lipsa conținut sau acesta este invalid - invalid_irreversible: Filtrarea ireversibilă funcționează dor cu context din fluxul Acasă și notificări index: delete: Șterge title: Filtre @@ -437,7 +357,6 @@ ro: following: Lista de urmărire muting: Lista de ignorare upload: Încarcă - in_memoriam_html: În Memoria. invites: delete: Dezactivați expired: Expirat @@ -527,22 +446,7 @@ ro: remove_selected_follows: Anulează urmărirea utilizatorilor selectați status: Starea contului remote_follow: - acct: Introduceți numele@domeniu din care doriți să acționați missing_resource: Nu s-a putut găsi URL-ul de redirecționare necesar pentru contul dvs - no_account_html: Nu ai un cont? Poți să te înregistrezi aici - proceed: Continuă să urmărești - prompt: 'Vei urmării pe:' - reason_html: "De ce este necesar acest pas? %{instance} ar putea să nu fie serverul în care sunteți înregistrat, așa că trebuie să te redirecționăm către serverul tău de acasă." - remote_interaction: - favourite: - proceed: Continuă să favorizezi - prompt: 'Vrei să favorizezi această postare:' - reblog: - proceed: Continuă să dai impuls - prompt: 'Vrei să impulsionezi această postare:' - reply: - proceed: Continuă să răspunzi - prompt: 'Vrei să răspunzi la această postare:' scheduled_statuses: over_daily_limit: Ai depășit limita de %{limit} postări programate pentru acea zi over_total_limit: Ai depășit limita de %{limit} postări programate @@ -604,87 +508,6 @@ ro: sensitive_content: Conținut sensibil tags: does_not_match_previous_name: nu se potrivește cu numele anterior - terms: - body_html: | -

      Politica de confidențialitate

      -

      Ce informații colectăm?

      - -

    ?H( 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 VBYhwK;8h0z;L4iNN=37f{{_(>6$k(T literal 0 HcmV?d00001 diff --git a/app/javascript/icons/android-chrome-36x36.png b/app/javascript/icons/android-chrome-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..925f69c4fc71093ff043535f516735121518d495 GIT binary patch literal 950 zcmV;n14;aeP)O4F}@j@mZG`8UaguI(8)sZSh+ZQ z@eBnI2q6g%vpVeca=5v=G9k7Tsiy~tYO6bs1^oP!VO6TBzBex@hT@;xk3$IdZI47F zoYO{|RRIV;yrpqJ42tbUs;L1YhYfxi9@s4jbhP5+UV;R-)p3DtU~-8R6J`o!2O7sjf&K+ZcfA zt;-P{R+Zs?0;Cwd8~@T8608^Exh5FAF8)5g>hJvM?px06k{8S-ad~ekI^^- zZ=&7ny->Y%F@(d1x55w-A^DhkqK7v_48vogU;@BHOjniWSIun^+ll0(JVeKLdxc#z z4d5Y4sNT68oYb#SY$uY9bQ7(a+XTazbJ^&<8`~!KEs&0IitR+Q;Z7pWI9E9Ilb`O` z&bGblTP_{<-ns0*cQpX6pY@$R*uHah^8#i4q&|5Q`{YZ9*K6y{?1b%$% z!8QNH-nm53EE#GAcvcLO4zUtR2G?rF+8h>2I7U(PdY`fkP3v9q6Magj_bJN?n%=wQPxH?^_W!Z( Y0M`#U|1=Hp!TbpY&Lc_wr#!Gwry@~+qO1#a^K(oPl=?q7)K5K0E*bK$4LbR|NpT{QsxHg8w%|Urc@q0H_Mfh>NPbgI#U~!1=SF zip|lksXy!Q5dw>VI|Ta}f_Wn@N}2#32vQM$02nMPsR#fZ5*GEpF*xM^%hdn(%KvTi zgYf?km)Xff1OWE`i6xRarU^iR&8vh)6?ugD2M7Hh2tBR=*niUOBBK1)gG27ZLu>sX zg0Tzi(s1}IvHXv?;Qz7k2XrB!{I{q#1YjWbU%|ht(}Cef>leWt=|!;yLmdcxeB|i) zwoDC07QsXCTB?Mz^*h_!k@3uaI4e&%g8r+89|U8(h`Ud-Og?kFE9iS5rGXk|3Dm;! zmxe}{Nx+^JHde6E;i#?p!@+q@9f}QQ-Ph3{wbsd?l{D&9O-HO`U=95b^xaQZ7Jgk1 zq(&msF?-Zo@%K2Ubm({2#SXtDBic@9X zc;$BfKWI4y+$AIK(j(b)G;WInfpvUSDI>4baHI=rF$_4_sl5l=DcR$polOtxcZK_9M`oTpE7?~HQm^Q)DD zYp0F^)M>Pt#gr^zYFawF&(G((JC{_!ad&;Jf>>u95yp-w0w3HtOxc7#{=UA^)2P}} z{t^OXi5qmkE!vtUz^6+pyaOGy5;F-p74A6@$+Laq8X5}8SlKxQ*$y9WTdG@TypjPmD z|2mH_ZJx_R{yGx}Hj4QpFah1RKDl`vzs@H27TzZj8P!A*0@6O1*!@WJoYW8&>^2Z2 zOL~?az5A~4{kq|?&uae0fySz!%?I|2v}B&p+hkH}&2mNA@<)O=vB>ER?CxWGPJGzZ z2I6G0I3K+9Kx&|{YLT!EF|Mc&v;c18GPCW-w)>O=;XoW1E%VtA+mY&)`sLsBNtAbk z{NOJIg)|h@&7q8&aDcSia#VG7nMxz+K57e@5g3XF%jicFiw~ZYzW1zie0Vb8|F9rA z4e%cbGkzAVo{vp|{iFajghqfQ?3zjc)l)ad0;IVy)-A$krW*Ogg33L)$PWKj$%ry zzQX#V$0uavyKTpIKX^xjld0DsX+h_8BZ@F02~klstOzati+5G_OyZ9#IxPdCc*A4= zrZo$|*H>e6g)gZrV!2DD9lJYWJ?}eX@9Eq)c=?U=XmP zqQdg1k4rTE z5QNrzJ()`OC;|d5Elo3WGw|YL1WMnY7{R|o!HhQP0`b_F*KYtDE%}eX@yV|tNIbna zZ&Aav>q8TYf!79sB$DfET{&*F*6T@@MA`>|W}3X*Tf2+PeBi7UWDv@s4`^gk(RIiI ztH@Y?*OAv$N6lbN8_8^0{pI z$osuYJnX>~U{2sB!He7vs$0D|GbA4~KCU)bmb^Ahu0a{Y@JQ?w{_9`+eV!%9Hgko3Iv3D z7sf5ew%cKEdi%W02wNgrfr*%%BdYvdzV=$LtR{A37Wpeh!uSGNFw&N&kA8;u!xVJ{ zNhY9Hw7Jp!b!e}Hk2Yv>&D#mUX0AuxurIr6-V6MRisGZbf6I%uaK?IlSSe17Sd1Dn zIFm=>Yk%D%IB!oRz5gj%!XQJdrtok!kH>#=UJiOWgUBlv@(1taw7>X|RfmQ4b)#<;4wX@jlCs6UBb@E*Rr>dkYa+k)~;k%QzB%woIM&6s}l zVe6~`wNr!&9{T1_9!}eT=?<7?uvJs2`Au0|;X>^T+0?y&{Q*-RpqGw zCb8YPZc#9;ne!m-+Plje!L-VP znRw8z02AmLa-@ii?su&}Ri-p^QsSy}rOgY*ba|rlMI<-|FRp& zG&O6Bo=rIN3Hr-KMMm{Pl22a}PZzy*M4@`zk(h(S2*o8tO$~=(XPRH2*ZXV>b*mD^ zOFd0J_258o%N=6fPT5)^%^RW9tqnT*Fq@Nj5VGmIy7@UK)7y7}U!^&d9?(a;-*7sO zr{1adt{-T*G7XPa=Y>)!rF6Eo@TR2yKwyA{MNX4w=`x*nt*$O+;Q}hamsUHBjOtG; z9ZXUI2dn1tB@g{{%{9IQbzGR2Q#iMM_YHmP%-zjP0md+Vu(j`(aO#D9V?OUu{*)-9 zwyOFtzS;VWhsD%MMfZoRxISO=PV_sS+@n;wnt zt=8$R3K>TIkZ?piwVrkS{H2u!{w673T*`t#PAbB9Cq-?oRu<@qkojOz98wHF^?RzM zY&YiLf3}np`kZPW;G_D2BXx9ZJi#j7;BroS+&V@fI$pMQtqSufB=>M>S zkr5E85t!(ieni;y3`&tSo3quRNMJ*~nCFBmX0qfPj;J=Zmx;{2?D>OQ>`CC8r>chk zkq-=OUUr!8<@KeQGJuvXP?qEInh)M@jOpSiOquswWnBIlh`khZWstdwowv#v>l@*O1eTTJe*~ zw4?wHWkK6PIKro$$nGcls;Z_26V$jaG$-1VY_yu{avUvNSk>O<1x>Jwt(F6nrAuwX zu>K%qX1w>EIN0W6IYG^LN}V_FdyUI4ul{B=>T~`Sx*SVU>T9eQ0URVz2CeulZ6~&!_RB#Z&sE&zrr{; z09VUqV1fRN2Q!iMIM;smD*I!p>zCRKH2D982cg2gf50XB%vE54n}2P~+X`5W`oZFr zd_@jii`U1H>;U;s$i+@G4Fj=E_?#W-&KbG7t7_WunyIf0ADBir4@}aC>_t(hmQ@Qc4^N z1M}*@LWmJvt~Fc_>m>$4VYn>bob_BRx0-GfIXpKdI64yR;BnG0HATbY6dJ4V*kj4a zOcx`uMsn1%c!LD+S)b#v18aH&KK$-_z(?b=v^yHspWMy%3XPAWK>0jTh?EgF6 zdyPy^PD~QCLTL7^*%njQcHeIe6Tme08$OTXcaGbdnwusc;^bz=P>$})m{nK7oj0X^ zY0Xvzv1)Bi`xJ7Ejcb{EFM)D&zeef*t@xgiK7$3*F!(Ds{$!x-S0LVu=4|G1rWOC! z5mhwpjcKa4=p9)j6^l7DASE@xh(_l65z$J$G@pJ=o8us+nTDVu&f{lXtdisEsj zcs%Ul(n-!2v9!cVj_`&#{g}}Xgsg4g4TT&9Jy7_+{j?2$qUd!l%vJBz`us<7J&xx~ z@>{)M_w7>^2W(n?x{x}JTvdRlk=qO;_OJot#PGH_hsNM!UEZeJ%I z3)4JTcl4bT3O*tk>#CHe!HJ}{3cz|AyxwiDWSp_FaBG0=P$X2F?r za9jfrtIAbgUtU*hCpoUS#o1KJ)&=hdwTbVP>tQgybJcX~a9O%bryn4kr zWm29!LjKKTGN@dT6!0uVJ6}heXXg7cc9-%-+Ktn-;68v5eFfO%#|n5uf3eEHmdiD? zRW1N^vz;ggT*g%y8sp%vw9}bEKRv;?sHISTZo4vta1o>HVXa0@;lH!H@zI44w}jaF zqzrw^XU(*P1a+#jnw=?GBeCD8($mvK3@+({b*;07 z2E4NtT?@IGvwr}GA?dHGdS$MJfx_){2+fAVvGY}@5LT?KW0w?e%1BhLI12Ods<(2Th*Z_PQ8;_XLPYLB>U#wS;)dHKnvA=V{%z>@sWD%nn4C*QB`u+ z`?)MLRxrln;7(nLg1vR;QO<}x#pQ>#+wa)?A?CY@cI&ESZ^*^wvO)a*s=aR*1=KQ1 zOP>Ip@)Md)BYP5{0CgXf zuyg72$q!gnzt41>1;x*QVlLAmh1*2-@=$*@h^(@XkjV%a$~Djwe}!{?y!TGpXt!>U zBRx9T%FqMQdF>$IO9b{I{ zB^&uYcr|*p+OV_*u2soJOwPeW7a7ie+LOhth2zW(97?1+18x2co}#K&gX2-2u}4Y% z-M%9D+Oxx!>n^40l=p|68*TYt|&c&5W{e@M&3M zd`E=OB)P=8D@X_gsu>da$q)#65Sp*tDi1<5*Tb5wOB+?SR&iG|-v=|x(2+f=BiZ9UpB|>fshcIHQ!nI~n z4_pC_9&kcqtH_VbT|(TkNcJDquh9R6ipUY__4^EKuht1HCrWGXeJNa%R_0)f#d=$; z)lQc(Uc4EFZu1D#A>0pPu>R_0b948`q0BiY7N%z>qHKe%_V_HpVA*JOIuQOI@UE%W zi*?l^o!GL*jiVwobRb+}k{w5Kv42>Jg)a0yNfba$p7x4HpE00#Ln13kh)nfB@u)}{l(bJ*7 z@z?LAat(>uCJ77=hk-orx-gSCMpVUI#2C*kV=O-YM^zx1L%SK#lCrX;h_U^^fdDbg z{8Uf~_1_`_;x_ZIlJA{r1O^(CkaBagVv4YiqBE}mzKyxA5IFY|PYX8PkXXKTx$1n2 zEb%8n?b}6+phspKR0{h>bf4&mA8AqG;UsN^ycM8AO-9m%0OENvgfhpUX7Ew09A%k>j~+_+tgoc1_EmuHY!0)0vWo)~Y4B zoDo+JkFKZr@bodGK%n7go%u+K*ERlXux|-C?ism%xsbYZ@!f*}enSxwV)$}ON#ww~ z>A4baP<*YAE@vPoVMK4;CFi@_*NnHZT+j6gVHYd0h!U1SM2I+f2v4=WKA(m7f=t;Z ziAOfjTOVAH0B;c^8X5ydl^QNo_;cWuyQlrW)Q_dtZp3V&g#7MDKk6;pIWw}&V0^-U zf08oO6}RILW^&;I?|=uaiWK~q3blAJl^O8rc(0(jsUp;Pw=F)muaGUwa4@ayz&sVa zGMyO#=GLF|L{uATP=7?B;*Ok=Eyx0AD^?ylx5yR8Y}js7w~cJM1nzc498##!@YO9d zB*ay(dCI5oq(x$lEw*B_?}w-H%wHpDUN7`+Dm5W2wv#&DoZh*5KK6HC&2g5yFvUMK z#2Eae8&|;s1DX}s{PlD&mwW4O&3!LlMo3oEsN+>#V}ZjFJ(gpM9rDPxFBtaA?b&Kd zwXuBowLaO;?{mpM?`=*}t4)1+?zUfJBQTAPG5NG`2nLf|d3iI?S^mseg;GQ zJGv5^#p#`K{Z2B5_f@3m4c@f8P_RCep$6*zu5)HjHn}x-?zY%lz0aM2xy3rQ7dJkB zHv~O4Zy5xh8X;um2<_2iPk&@b%9agTa~>^}!QRZ=@9JTjc`3NYG^|d3VxzT2yG09JuCBOj?8)=Hiuo-6(Mn-m zsrhQ|*EczpJ739X3z#QB#JNkFXcM3K%`*smZWcenHB=8D4#!T_n|n{F%@8^-I}b0l zZ63WT>ACz<^6ulJ!UwNB+BUZc9<EwBkl1oj6_Fk4?Cyc=*OZH$kRO(mlHIBLfbCeY{kteZ1`W&Cj) zJo@QYxgjMa^mvxbev};b9zNFAST-(GDMqNlwUPC!S~8hoEK`**FkRPeVe#mvQlI^x zWJR`v*$F~#*UptifIwp`f(X8nYF8tZ-bT*B?><^ro3$=m8FaoGLYHqTFcP)lwPd{+|IsjU(Z;ifN2DYx>_Q&*!?-tdLmsD?~EaDfKfj;{M z*PYu7MCmh9o7nn?6&Idn!&%el=STcx@x02L8Mi=^`=kgO$23b4!CJTN5JCPs%??dt z<>!n{Pt~Kuo+v}aK-AxJ>F~`6(GfW{`uwz(qlX17fNWdv$)M`rw|{J`h!SjmK`PN* zk0;Ra3dY>hva`M!hjKDA*DCuW*{adK;q&Qf#8wLXiSFIjWmQs|E<2sk=w;>cprX~w_t&~MF}@r*YVAnKea!G(}C8zH{9c^6rkjBE$C zA-tM|QAos2)fb}=8c}J%Gf(@dJ!d)b7nk#Tg7X+zS=zJ&eUGwJp>5N-W*%i5IkA`wV+- zqE=sqZjl=~$${Ow^BMaO2@;x0SIrjDpArf{EkWUilMZ0C42w zlChI5e!j+IKwQ20%LDc!<0!sItF5`SdF7jpva;ga^hRKjKq`Tf5UfS_ru%tY;83tn zaLeQU^|nTbT;uynR^B8Tu(!%jUWP?4gh>4(eCda`I177WMS=$QKDU#+kUNP6r*4(! zi0VQ5VI`5M)-iYQMsz-;MiuFvActE~3U=?#<@){Bjjiv$!cv9t40d)Y4}NU-BY_UG zV?r}nSN46J-iO21UN8JHyN-0}o1Zs1Rz5Xy2DK3$B(JZhO>l0lkoU>w zGeDD80wpN9S&*t~B&-KB=reteDFKtduci`x^ULRi;3npJ|Muk&!|!E!;{e&WUIls? zbq`d5TByk6NP^Zb^4f<2Ll7vt&V#(Md4zs&lUX;mBy)t~=Xa|~CdYc-2J0#cZs}XD}wid?2fhJY56>{2z z35j~;v+W0}^-b=cc#eag!?y@Nppi+1+5quWpGuszF!D(U(kOwd``%Mt=cK3z7FTO( zd4;pEYapP(crK)mD)l|yUT0eA%We3Hk1b4j1R*u9;B*!Q>-_FJX~4B%jSsBUEE)2X zcE#3OMhqMAgR1mD%@%6@?4?wSYGn|I*O%$GXSj6V_}T>}6bIBj3B`*l+bT~z=8s>Y z2s3mbkuZbvfh@y(I0ec{u2kv}HGcpz6&fZT2*SeZyNlMILw*Nq)>eaOfO8nj6mAaM z?|k>oHYg1%$XMZ76v<6Z&?YRAL7(#P>~wj59WD(m;o|cu9h^IzkQ^J%WWKa$X}ruS zaa%>Oi3tRn2c?j*U^A2K z|4bXU5gI-EdzQrl`vLY;rB5xyYS75Dc|h^EkZ6I4<#dlKyWL;{krcRk+A(=&H`G{={0Q2f!cNOGA8&=TAGjDDu)focYo zDjIotZmOyk-Koaty;6Sz7Ob#!>^<6ew#bv$R&iz9c8)IZlyDY~HY&V_egEi8Z3`)O zZ~h7Wcje~tsF(>t`0}mwwan$*{XY8-SM%Kk6V<3NeEb9p-qD?pWo2%jmfvV8G*Y3g zj4#Kn0%WpFl=f+rJp&p!y`%k_MULF0N;Y#F%_n6xf$1eM#tqrFKzi$CmvWBm`MN=DV8$7}{;c^cx zdg~h@GS+`nWt2RxE>i&$HRFqHxqr^dGrB}rkyHzX%M#{yeKu1~N~eMHOh_7_(z zQbmW-R8*nT>^W3b6@S7h7tTj?WK0h za%58hTH3HXkcHUT8qIlAeylm6SLi-H&4V@{z9nRRpnzH-h&? zkQP_Si`Z)_KMqa}`OktS5MkmU+c(@Iz!T{d_Y@NI{7#6BuLsa)qI~iL(bT3G3{WU! z7XYOpsTKxjv+$@A*Q0x9zyO#LTIC)P@~XM*OA%evS!o**ibdGX#3=h+8i}X1ws*Lw z;gD9jO@JoX9~0xa!CMJtOd5RCwz14dD{&IQG>|CiQv=$HeT>@gAB;}<46s-~j+TUk zN`b#sKT$3x(m;7qEm&mgszZuCk(awnWey`OjlP*D4Bst&V~=_sy2HWiAH?;R{do{M z2OFF`u_SFv)9V%|F_xQ${w@WY24(7#z=dSRE}Oovg9Gg|YALuiW%Uk98L=3T3#mva zW(O1K*Kf6%7UVC;$t@A$t;xH+)7Kxq}tnQ2%P5G3X(i(0=36Jg9>^5rB#n$``vLQSz*pt zjfkT0Imfc>XjSh)#55~Rq0d<44=r%4#yOS>AXQE{P^%f05=X=UAr8LTx@mC=YhytK zV8K^=&=NpXPwy)lq%kNto$MUJmm1D438fBMgI%Q5Ph!&Q`}JK@lGws-Na@G~>HhDF z(`JI0ave{Mb)vH>_4Tra+twMY>Ht$;Dv6wd8!dd6+*;kKY{-#&8p_v$@T}=4%Sl$nz8<& zXGX`0fZBAAI-q5B9B>uH&&`s`!?p%b$)p58Q$JMovO>0(Rg}LIFEVA}#DFa>ZLgkZ zc(Tn4UTA~xzeee-tm6Z7`K_y63RVW~gzw!$`CVCicb4HXn~`WA!~j8+fwcK?v7HbVDI)k@>SMEM*Xp8x&c|V8+Yr`<(qeHAsFsphB3Fb_H|%k8^Brp>ecJt3VP?cMd2=^YwI$w}OiqZXGT!@1w&&e-$$!LpSECKrE0+HGI^9E}=% zN>44sG0?xE;I+S%PW(G{2znD!Vk#i_!mwplI?$pg_Gpn6x)sQViQQ2`bI_3nY7G?R z4t6t2)`7b?zI^_Ep_Hzo8DQq0ToV@|+K^kU$J8c$-5rH-c__xEp~};PIJeI-1lkbM zP~<6!d@jt+sm%CXK`yGXxHvoGeW_q5e{(oHKjd}RLLpGZYT>mprM(pL21(4Upvqm3 zDShg`Sk``IkEGj4FaI2n%aVo?3p4Dye=&Sc47)K8s$>M-pR#%DN6yX7snspPmQDOS zKh<)h<~aY)VZwRLMV_9X%CUN)@qw;V)OerHB1=wl<~~iThswI?B|-k+x!wFaYUHC61AseADZktPrptpquOFm=i9{~B)bPko80pf1=xv?WDSsAk{{ zf1aQI7YHee(7YyW>RL%SKVTxt5GkR0E{Zg9#Rro`S%lc9bLK6r7yRw3Knk2B#+#vM zX<3-L?a`vM2%j#ISSxQIWEOM3aQ@QT&AF!e1-GHAZQtfL#Dl`ZMRBzMNcQgTx_haH zYhi;>cr;Q9!BGC6+W}7*t)4GT)QHFY?(H(be|Gl1*vRyI8M%oRoB$BhzmR&gG^R5; z-mseZ+{!5}I#j}L#X~yl{dL9o9>>7}H1Jsocofw785`q4icp)mHR;Y&wpecfwfso_ zdEWawWB>Oek2-*)Ch4^KgA5}0xH;UZG0o>z?p3|bel!cwS7bXgF3OQi!mrY< ze4C~(Be6xf?q?kwpKlr}Bf4`&e`DD*U|#v%TrN*nUEnUGmje~J0ThdP5Tk9U`vq0k zD3&C3u9h*Vqu4P7EuzT^zs0mPgBWV5Zi>34ke>lJG)TUC-0k$Zu}B;V)Wy z93}eE%R^A`e?4UGT5w90P0J1<^~0s8kr#?Ar}48!=g?0!%1*l7YOkyAXW>p+2U>Gz z``g^RF}ZSo#*K0qjM-E3oF3axQMfiJg$gg^^Gv`@bAlz0IV(LEqtfk_CL5ZA1 zMI$9PBnBlUTSMKj%qxGDY{mvH?)9R_i2({H{(*=mO?7QP_f6<5HLOLswvZmC?_=-`z+Vn*O&?pay}RKO#?v zFfmG_l|Rc0p<6ka17$ateeUWu_M1X1R!esdzKw4f02`7mOx_?ux{&cJHX$>!kM#eG z+(?+%#nQ3NV5qQq*OVyW&0+Rv!f;<;9jrBjD5@vkAT+PJV#{HuD%Z*{oM6-++X z38WQ-BBOBGUsuDSn&?rqv6WzU!9D$N({;~G za@_G*6;15q0MR^G2*0tL(B?ZFzOt8$58L&54U|~bWM03l{|z@5sKO~jJ0ORPvj<LvCF{Ad>;zX#}FET=TFU3C)mnK86Zj?F0J0}Dl>Rn3w-?5=$d@XO3ce6K?<&0 zjtj6cb%g>P4Mt4hD|d5X;3mP!!Y~QNF?LqP9NmVQW8;{C)rsap%9X!vmeIlkj4&{w z@nLSWg;JfFAs;N}pk7zS8jIJ4ZGsH~n-gEDKsyQYvCK7Q#)#^O`JR0CH-O(M$CY53 z2x8=OA%DX?p>^kvcg*Fz&gY=5fff@B#MvId{lkie*1WqFYiQkH@_!bw z=7t;o8k9*PN*fw`SRZXGUz$F!o`SnNdDN5Hp=md|!7g_5dilG#wjd^ALb_|D`-8$T zoPgqX)qvYfE4m_iM9(fm^Bh&Iiw8d5@{l@8}X5z(X+u@x95sEne{Y-{*JmR|I#qM@n^}jQ%y(Or@6z+1cd%}K#*4g8x7XtD3uC#oxAbJc4|D0*x#)u}rI` zbHU}8LP#I9G4BNa0G+&!WU^%9=1!(F%tNrE z5LUgzxDDMnCnu6&IP~C?>quMFz~@*^!CCYy;YRlv7_+Q5G2DD*n0UM0N+1B$3TQV8 zX@Sa-K}XmqszQPn>2|4oixc`yjQ_o*XihNBg5!`l{^Wb@{VD(HvHr$m|9)#UR0Q+2EE$wGR!O7)3L@OIg4l%n=#XSuBKgh@yN$!5vzB^4`f~k>6 zhZlbzsMkp$u>pfdgOMco7P#2{n!me%6YIcU-+90m*93`~GX?r_PQ`=uMdSX@OrKoS zKc6$c=FV1*;_Dd!^X`8MQ&vxjPj`b$&>HSd&*kvk5^qQ2zzy>^2FIn}eRB`DZgShd zW7Wdr@}ZpJwIDMz4aIvNLtJOggWy6PuY@2LZ1y2Knl#JuH^fi3_olOI?rXm+CI!h1 zvFExqzl5Tc67$Ox#-W3Yagzqvm_Glwy&ZbPsij^mrLXWaV%}n7dxY9zT)e$M9DMqH zN*$ai=5UVy!6B`FeM{6rkww>qU#TWC1n*HfXSALNqGanv;{aPDQ!4}r!UxZKwK#|D8iwXOt5AZb`82Uv5(DFl)KE<;x4 z-8;9D{bMSZSC~)Wa2uXnq{lq1Z;#qhc*q$(_}P&RzU6kMkk2&rfxwID>fdBU2u?4X zbEbvve>&@i#Kw8a6y|q+Sz{LoR&RDNORf|ahd9)GIM8R24uZ#@m7LKk{F$|#z7u`V zaMoCglf;i8cFKj;;nqY=diCt<@sfj*6`a3kiUwwja~-blpX~hRp|hr+Pan$O_NYUV z4%J`LJv+_>_rHu2{xR%jVF%x5$1gjMeN!hO1!C-;596B3ATO*7koSaM`mJoRzor%g zFk(+N`ClmZGXGM0x!-cX?IBSe)Ezj%@tg7yCC0iU4_iY%u>j)iN$vfrTaNhCIr!B| zm+R{~2wT+4zn8zCWgHE+eZPN(Zolh~Y}Jl4@+>u?$yJGVxHM~Nn;_%~-lI?vnQQ>c z%KCu6S`;9ikNg=*jAw5t?pu3ke`W7LFcoZw$GP15C@QSiehj{b-3X?)JD`#&$$|g& zr!O!##61Kjex+O`K3574oFhPGQSGRegC~bOxE(-f?J3hCzG!Zb3aom+xj*e|-+5Wf zrx7QnyA;*E&mJcb%GAYIkGKB>b-q{5Cr=C&9Y2pmD4;dIl1hP&(Ap!VDE zoFSe%g^tdj zU%TDAA96(fOG-h%B^vCUgxrO1ewK9d3056LSruB^HzA?Uh+RF$n!_j5+xFMd^psRI zjRU93?`9>tz@9%=SNWM3eE6za(5^LU4}}A zVkDkP80rz7;*>~X)&kRg-P9l65P6Fw--u$Oa-pq!bL@`>lPhY`Si-dT|17cX!bdI9 z_yj&A4B8{3IS!nzc@KxrSxO^HD08-7Z2>5b0I=GS_MT%6D58U<;3DSd;1?dLu??2? z){*fc?|J`JYyEs544_dYDBB4i-Gj8{+V9-yliv>=~v%=YZj)St_kD2*y`Gub+|Ko#qIvOy_a2H)FUD<`pOXP{? zqYT*#n4=f(34~T>8sGE99Y-kSv-tN{&52vEw^ThT2vImYhP=sSYN`-LUifKuvQcR= z7L?;892#2IKFP#9h}B2rTJ_`9`1-fRu(a-VO)Xas5VI;9!cbCKuK&)1|K-8j91Pji~y_G+e>-@Q&gZ@4N$TJW(OK0 zbyFWTON6w51;XrM41{srz(d~!2RUP855ysYH+K0UZBAH{utV!%3fZ5~`gRII({S6& zecgSVQgdN<-E$mTLz$Roj!_k3S}~0wb*xC3E$nM@JsPl977JqN+f zwDHF?Oe#mvys&153T?}m$f`FeH>yNW+b!R>& zM@z4})sHb_bNrRBJ{`JW_B7e#-Ynl_8C5ZLS+O0dn&5}3L+;k}v^G9_p~+wNkk-pg-f`!l=q$>n-g zW23#)>EwESH#U|&ME0OC>Yz{#$$CT*TPh5DL=s0T;cB%1)IQ7lB2i4pRy>Q%8C{gZ zZ8J*@v|B*&Lt~ej+Xc*nwjXM!XS@TntupJA0w;7akYg#u-BfufgS9BnU5|I*Ji|bJ zbw$#Ca{phgll6;>j?b&$H|wpA@O!k|P5$NmJY^eUiH?`s1IprC>&hE+LBJK!XAsdR z#9T^sGvh{Gbt}ah^}z(#_N(?Z^XlZo{yuo=MOMX#n%b?iU{1Q34_i*oFHd;|CPgJi zq72-q)Khj>5HYa zD1BsYOpB1)c$gAAf`Z5EFvXuSr@7Awe|yzLEtJZY6AwNP14`v`C+X`NvKj9H}y_hJ>2-tezh|1t+49`Qc;L`(4w1& z8ee=$X#0-5wfD>Rn+x}2t&(sPUA>#D@yu6jkkVT#f!s6G89j^&G<6c~U`1w@!fBpv zQz&*5Z04~pQ{GQ&gBU+@f+fPXLSKF)B_%K)N0Ayc6rxdL{HUKDHevOsf2 zikGgT3%w+>;G;zG$FUv>na>}BF= zZ!@2N+4TYh15_OiwB=PXiX$_Uy5P}{=KrA6SV@UbB+kF*7Z;2U^#}62<^{y?sEqI3J`(Tz5 ziZ{z?2z1Sf*aFs@{}4ra z@R2LiPu%832M2gYN=oEfLGhWaD{gf?xbGzHX1>EAN`6cQo<^fcf@8qbSs3>Kp%%sz z1O}@z=A4or^XA9OoIjzm#4-u42{yWG{)Pxc)Yu`hH)z z6@Ez;Ll&ObrA$IsIj5pit4u2!ugiDWZ8^`7OJ_HbY5oD10@4b^l*5lp?9WKz6Enq1 z5u63e!lS*IsmC(r5o+4K$WBCp@WlRBy1)SfMW4yi(MPV>n0^DzSP!;)dPu%wKD&L0 z{#-*Ryr~s{(qm!St|UCWJkYdr)#PEHZqYnMr;l-BESaKWq{g%i85d5D$(E z5D6;rejI7lZK6P}B^8bQNLmov(qOBa`~-{SM*h4~WOkA=k7SvcGZwvt1N`c99uzpu zsU2g%mPK`D8XfTllQ+z#b>QIELu-FnbbnrKuiav+kF zQdJW$b>@S{X<(_yeaXJ)7<^hvxQM$zP=_mg*rSEl7$YlckVGV`9Xt^E*kQa6FUg#^ z35Y*oMQ$n}mF*#T5r>FD+i!dCy@v#DHPu+ufY);r?alv+^FB*S+Wp$fAkP)ec~2yd zfBJ@pBnD;NF*1X^G7RX`XQ50v* zN(OBC@@OzAbyViIj;@VL!SIlRy_@uo$6&s1K6HevHyD{O^%gKu)ThF6KQ3!mZ-aJt z1O+*D=YKcE8;G}d$V5WN?F3tG?A~GtdFC~G3uqt|>AKUFhmYk4V{IL9lyeK25_${z zA!!f~3_!?ZF=ExIzQ~(Ih%%Ncd*-J!PP8kCk`$~{$<6xba5U~h1CKLYB1N-o*=1<% zIgPjl{Z5|0CVR>#e$mrMKS<^M=4FWey4Z>S+9Jsf42ZnVn+uWmd}XT$qTp(09=zhx zJ2K0sSTd>Nkwy9WFLe6|Gghk{Nd^mO*%wZFK&v`!Q?!_sB@XG6D7)#kUw<_?YwE|3CzlF@o@Tf`#RjdusxgGs;}Y5yX^hXH?i+{-3`Y7 zs5YLrIc&GFEcSdC($6Z`a~@8TNR8)@&% z`6_#W`)l&!-bjXEQPVWdVN!Hn4`1y(-~V)T6_cI)#g{(;a14_SJ;n%oI7?)|yKNv$ zo6jLh`0pEQJg!69GKYB}5Y4nm{Rm04ELbs4<_Ik;mTQ|mDJdJ>EfB;Du&AzP$uKfZ zCqA^U7vE1CcJsSj%KdKUUt#x`R*W9*{V*;~tf<;%8$%ZY2vhvp{6WLwb>H#ZuCP7t zoX(O&p^BF*aKig)zDU5KbE)n2pV34<#zQtItT73b~tm7#XLc*G?S}! zb2liUsi_Nc(4Ef9O`Z`GuDdw@AQFJ~hpZZoZ9gh3@1G9Clx1N5>Z(oI!$j8|>^=1j zz+kykL{R{0?x>MY@DPGLXBI);-}_GcGpCaKH^W&?PRG*(hJvn$WU5VrNjYEdGmAUV zlWhM#9;TjAHQgE0S{2B>MxEKl=Ho~c|76!#^wNCwebcZp{}pmXT1=D?AJ;zYq1bbX zpGb@MaFKV-vSbvPwhF$#%yhe4X~|dspqNTg$~>toX5M!vH~#mq)r2|D-A}PpSC34< zxO?My(c_d;D0_>ZDYOqH5l8aj7G3T5!Y2M`$im&hPefua$)f~-SdKyF#ungosUC6- zGfc9M!Iu1{3<9q)#sxq_xmo$yJQ)S7&&JWRw=;v-KH3}+=RIoFan#!eu4X!{h|YAq z=Cgk|6I%@4aU|xsS&Lw{`6vpoPeiP}k(;nDRHFd3f-68Vv{|(ENJ(*5Y#C zU#b&Ps~39mY@6PCfHp5f6tbBaXni#cv8SNlAB?_iG;-A9&A|~awleuJet=4&OxvR` zC3ZcSX)W>U!Pv}ImR0-`(8NLL1wQKQH;@Qkd<%IL+{vYM$036zRQiidV2r5vt3sJ}!7U7@sKcPCk>y#BXq9Zr=GvL)$Fvc}FdY z_c;sNdUQ5AbEp>M>iv&Ow3_qr6KC^3WyW(=;u>|&`6ZQkt(?PF4{De9Juooteu zZY&+0PzO#e{G!cVo!8El(%L@}EgVP1l9=oMgZYK(qB>3uomsLMTU`ieUORnD2mXlZ zuLSZFpFA2RW>UKmEbx4C+LVnhB+mA$n}7-pB|TGI$~;Ar2Y8sn`^p1e@+k_@lDcV@;_;>&XGC zEC=S>)3O=_6OO8&jEsP7%tcql{EyoDIy#Q{n{m_R$g^$SFdWX9bUv6I?^0CbJ1bbc zzSaFHX|9)-SVd(OO((A!DN*Ri`<}N0_F<5yJRYwq0$2OD`<>l-o)?{QwbKFD<@*mw zZO*zM=ZERC8k0E2w-_ar?v+>iA!&HefGF`hxTYrRYCRO_Zfle6Tuzou8rWXG#~Q6| zga8Tam74NVcjPqp*ZMqUMoI3v$>#G|rPc+depvD^n&W7ef#)$0PNKB2rcjo!~#|^max0 zI29Hy-7ZnL78j@fP5wDkx}kaPsV6K~=f2PBdE#GS-Pal)`1yes>yhCbp3u{8vImxd zp0ZF-m{Y9pLR2W8w=H0MzYM@dV{L?vn`tJ_xV60+*v4(!!Tq@3MDG)DS-;rd`X0_Lne+o^2%LVXm_O) z<&48h{AoC7Kf1|(%Y3~P#(bR~_9|R|7p=)Fs*XRPAJluK)k@bcot9wab(nM&pXHB| zm9-BR4PWT$1=hgl<$?0;WW1*G`FzUARerK#kVFP2dV9dU`QXt{SM+d;SxGkwxP~@T zU3^qNm8a&Y2rA!|?i>k94#MwpyI{a)S%?0Pby905YR&VDeOD9_9Ro-GLH zOy@-$IMm;kz`05QJGeXm5J6SkMXVXcngWrG^zAY!p-FLBPT`R}{y}|kcT+JNxG)4Q z>0l{oO9~$eER$Pm66t(`jv$x!O54d7e=~@om%E;gKAe@=5)o-=wR;%!!T?GDC8#o> z$47l&^9U+yts{ktUdIdFwlo^0*OQ5%7aaY*Cn{* z*|mkwpm;{bz<6zXfHEsF*{lB4HJzk*9KWTIW^V(U3Ryynybh4haC%kAr!(0@;WK`Ff_bKCwEIy_FFwO?& zMDr27k3RB0D4O_NLtr}o;RNufX zbd=8Ax>QQtV;1X=+2m}O%b3TOS_nVCqAKQu51Wpye&lz8mJX|*Kla_cxRJZx_-j`G za&SmXs<-rU*~2*KKjsR3wRkssDoCmGnhlV9vFFoG+2-aYu5(@YPW#}bHzR+q@6TrzZ>5(mh8NK-Ek5_P z3%n88c0`Ze;hNkQL2#Wf8PUu?s)M%n*Af>jvWgR{o&g8A#<|pm+9d)!lOCsB<~4lb z6M0=IYY_Xr`QwuT;gsw)3lAd)l?W~TPy>tRU6qQNqj9ve?+S07x3~3%R<(HQj^E7; z_UT7V`O77h(dac06>V zNP+ll(o|ti(2i;<^ov{|x0bJ^yAXKn;Z&b;R4g{tR{TSIqfBm!$ti)5jL80TKbd=u z&hmTjz+(H0afHR*qA*t zlJ~*Cg1-Cly55=T$K7=1x6CE4<3|!4j5*hM(gO8oKHS<4eKUVM)<~zBKUhi$S7~R- zSdjS9E|6rb=0c9C&GX(mJPug-h!i2i4l4%%pw0>c(F!EQDzqq7j$YJvWjk%c7!|fH zD~0USQEXCEN(%~eB^5}+*;NK%q^sW@@|#720Ge+!0bj?2G~+Sonl{5&Cq!60VX9iBOY4pn46@ zTXn8+qIXn>9$o{*AJv6~Mt`3F!33hc4~+htp9hv8s{);{Prs<$tog z2e<#+;B|I#b23?IACaxG8#0QGfNP-e#>J$&eyLfkx?Q+2^9 zlx^vb@pgC&UMHGGy7`bv+9n8epT%>XJR~MNK7rjjQO?wm)ujFe5)Yu@;n-1W39Mbb zGd_^-smoWezqeE~Al*~6aT3YQF#n#uc`54koT75&_>q!5b@Jig#)z@(h`y^R^O>!L zm$;Pk3fX+Dj0O|V_H(*<}kA=Im4B(*^k)7L7DaG%o?v zjNo2xBwksWyoO3PhWlBQHjcQ-Q*;TCj)T>~VBO5;@r3~}8C8z}`lA_Mr5Xlu{xqqe z0=487cWFMr%-y+Mob`|09#;vEU;9gp-#-T^?U&!JFQ|^;pEa2I{W|1u7DX)Gm(`xv z@F~5=B!FA>PHAG|V3(JF$|2DHw_b6v=5Ywm>d{Lp0<$WFEm4iwho$qvm>oW6_z^>` z9fHkrC*egtX!VQWcY}x*N=QM^ti{?Z7%;qy;S=|q4pmbIQ;pn9P?s<|;q5OPb>*&t zr7WRUv*~V5kGO)taLL)?AcDJJQI68r@ z5zwYhesaf>Lad6dGYEx>07##O%ZKR%uq%9wB%|<#i4-M6sNZLgB()(mQ_OY*aS^zq za;G76_C2l9U>5e`zE@1+`}ER|3?Z`S>kD1M zDd;p3YfniSxWASJuG5T;ZOTk!Im0rI`DDNZ4%X|>bFiR#rLWU`cd7x#*V-y)E}+@W zVL&JyQO`auDJV`yaG2P?*WM^d-~fSNDg^4-?rH49!oB3-vHGj7D#0XH{5D6hwO5EJT z&lQsczW~>VS;OQV5CGb}<3RZn6YxA>F<#AD|kWX4# zyo6C9#d-z-e0J>&nkc|$>BeLdC;i+PnWMrTLuN&p0~+MeH2CRqUGxZ+!#-44ug7kd z{ngX1IjtuM#f7HJiAu`QxErf()~n|%LB*S$tgbON+A*#l=CP!@UJlLuY*Z?896L@0 zp7@jnV!{cYswZB`*y3vS#wE187m5gPwy5V=pplLD{0m66)slF{rv1;!OfZQ=Lm0Db z-=fODVy=&V?g&AObM$?-k%cCms+*y z3K%=a1)l7}fDX@7Y7h)-y>WgWrSA2!n(5<2PH+@xLeGVfmM6W;hnPk1ac9& zW&g?q_6Wi87`u;og|gI=+F3hW)?2l$vvh*}p|AhqNM%yB&Ux#kh`+A&d)m_;SaWu% z?wzNCusMnX<_2(@eo0V~Tyq?gf3Nx!yn&~AUGPIgTN`r|Cj|qZ7_=mmg?z?Vbvum8 z0ztmCt`$kM;Pq36r^nt2dJskar#pR1y-#WlR&gW}8Axx9iOW^@@oZZB-8{?A*-dzK5r6e&0-Dbdx4XVh=Rn zuHSCt8fY${DDH+lB^Z5&29hIXBvf>c;zm*30HA4y(K$On8~;LbT2ZR5^7!$hW*w2V08+{;30-mdA KE0-%;hW-aH@Ujj7 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/android-chrome-48x48.png b/app/javascript/icons/android-chrome-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..bcfe7475d0750b8d1ddb17df192841938de431dd GIT binary patch literal 1384 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 literal 0 HcmV?d00001 diff --git a/app/javascript/icons/android-chrome-72x72.png b/app/javascript/icons/android-chrome-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..16679d5731a6d62d7088d02b0590891f884ab737 GIT binary patch literal 2262 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%0D-WT%mq9WvsW7+ESM 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