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

Conflicts:
- `README.md`:
  Upstream added a link to the roadmap, but we have a completely different README.
  Kept ours.
- `app/models/media_attachment.rb`:
  Upstream upped media attachment limits.
  Updated the default according to upstream's.
- `db/migrate/20180831171112_create_bookmarks.rb`:
  Upstream changed the migration compatibility level.
  Did so too.
- `config/initializers/content_security_policy.rb`:
  Upstream refactored this file but we have a different version.
  Kept our version.
- `app/controllers/settings/preferences_controller.rb`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  The file does not directly references individual settings anymore.
  Applied upstream changes.
- `app/lib/user_settings_decorator.rb`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  The file got removed entirely.
  Removed it as well.
- `app/models/user.rb`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  References to individual settings have been removed from the file.
  Removed them as well.
- `app/views/settings/preferences/appearance/show.html.haml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  Applied upstream's changes and ported ours back.
- `app/views/settings/preferences/notifications/show.html.haml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  Applied upstream's changes and ported ours back.
- `app/views/settings/preferences/other/show.html.haml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  Applied upstream's changes and ported ours back.
- `config/settings.yml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  In particular, upstream removed user-specific and unused settings.
  Did the same in glitch-soc.
- `spec/controllers/application_controller_spec.rb`:
  Conflicts due to glitch-soc's theming system.
  Mostly kept our version, as upstream messed up the tests.
local
Claire 1 year ago
commit 01d6f7529f
  1. 39
      .codeclimate.yml
  2. 1
      .devcontainer/devcontainer.json
  3. 12
      .devcontainer/docker-compose.yml
  4. 3
      .devcontainer/post-create.sh
  5. 4
      .github/workflows/lint-haml.yml
  6. 6
      .github/workflows/test-migrations-one-step.yml
  7. 6
      .github/workflows/test-migrations-two-step.yml
  8. 7
      .github/workflows/test-ruby.yml
  9. 4
      .husky/pre-commit
  10. 88
      .rubocop.yml
  11. 230
      .rubocop_todo.yml
  12. 2
      .ruby-version
  13. 3
      .yarnclean
  14. 2
      Dockerfile
  15. 4
      Gemfile
  16. 18
      Gemfile.lock
  17. 12
      app/controllers/api/v1/accounts/credentials_controller.rb
  18. 2
      app/controllers/api/v1/streaming_controller.rb
  19. 6
      app/controllers/backups_controller.rb
  20. 3
      app/controllers/concerns/account_controller_concern.rb
  21. 2
      app/controllers/media_proxy_controller.rb
  22. 43
      app/controllers/settings/preferences_controller.rb
  23. 5
      app/controllers/statuses_controller.rb
  24. 73
      app/javascript/mastodon/actions/compose.js
  25. 53
      app/javascript/mastodon/components/account.jsx
  26. 7
      app/javascript/mastodon/components/status.jsx
  27. 2
      app/javascript/mastodon/components/status_action_bar.jsx
  28. 2
      app/javascript/mastodon/features/account/components/header.jsx
  29. 4
      app/javascript/mastodon/features/direct_timeline/index.jsx
  30. 4
      app/javascript/mastodon/features/explore/index.jsx
  31. 2
      app/javascript/mastodon/features/getting_started/index.jsx
  32. 2
      app/javascript/mastodon/features/status/components/action_bar.jsx
  33. 10
      app/javascript/mastodon/features/status/components/detailed_status.jsx
  34. 2
      app/javascript/mastodon/features/status/index.jsx
  35. 2
      app/javascript/mastodon/features/ui/components/navigation_panel.jsx
  36. 1
      app/javascript/mastodon/locales/af.json
  37. 1
      app/javascript/mastodon/locales/an.json
  38. 1
      app/javascript/mastodon/locales/ar.json
  39. 1
      app/javascript/mastodon/locales/ast.json
  40. 3
      app/javascript/mastodon/locales/be.json
  41. 1
      app/javascript/mastodon/locales/bg.json
  42. 1
      app/javascript/mastodon/locales/bn.json
  43. 1
      app/javascript/mastodon/locales/br.json
  44. 1
      app/javascript/mastodon/locales/bs.json
  45. 1
      app/javascript/mastodon/locales/ca.json
  46. 1
      app/javascript/mastodon/locales/ckb.json
  47. 1
      app/javascript/mastodon/locales/co.json
  48. 1
      app/javascript/mastodon/locales/cs.json
  49. 1
      app/javascript/mastodon/locales/csb.json
  50. 1
      app/javascript/mastodon/locales/cy.json
  51. 1
      app/javascript/mastodon/locales/da.json
  52. 1
      app/javascript/mastodon/locales/de.json
  53. 20
      app/javascript/mastodon/locales/defaultMessages.json
  54. 1
      app/javascript/mastodon/locales/el.json
  55. 1
      app/javascript/mastodon/locales/en-GB.json
  56. 13
      app/javascript/mastodon/locales/en.json
  57. 1
      app/javascript/mastodon/locales/eo.json
  58. 1
      app/javascript/mastodon/locales/es-AR.json
  59. 1
      app/javascript/mastodon/locales/es-MX.json
  60. 1
      app/javascript/mastodon/locales/es.json
  61. 3
      app/javascript/mastodon/locales/et.json
  62. 1
      app/javascript/mastodon/locales/eu.json
  63. 1
      app/javascript/mastodon/locales/fa.json
  64. 85
      app/javascript/mastodon/locales/fi.json
  65. 1
      app/javascript/mastodon/locales/fo.json
  66. 1
      app/javascript/mastodon/locales/fr-QC.json
  67. 1
      app/javascript/mastodon/locales/fr.json
  68. 1
      app/javascript/mastodon/locales/fy.json
  69. 1
      app/javascript/mastodon/locales/ga.json
  70. 1
      app/javascript/mastodon/locales/gd.json
  71. 1
      app/javascript/mastodon/locales/gl.json
  72. 7
      app/javascript/mastodon/locales/he.json
  73. 1
      app/javascript/mastodon/locales/hi.json
  74. 1
      app/javascript/mastodon/locales/hr.json
  75. 279
      app/javascript/mastodon/locales/hu.json
  76. 1
      app/javascript/mastodon/locales/hy.json
  77. 1
      app/javascript/mastodon/locales/id.json
  78. 1
      app/javascript/mastodon/locales/ig.json
  79. 1
      app/javascript/mastodon/locales/io.json
  80. 1
      app/javascript/mastodon/locales/is.json
  81. 1
      app/javascript/mastodon/locales/it.json
  82. 1
      app/javascript/mastodon/locales/ja.json
  83. 1
      app/javascript/mastodon/locales/ka.json
  84. 1
      app/javascript/mastodon/locales/kab.json
  85. 1
      app/javascript/mastodon/locales/kk.json
  86. 1
      app/javascript/mastodon/locales/kn.json
  87. 3
      app/javascript/mastodon/locales/ko.json
  88. 1
      app/javascript/mastodon/locales/ku.json
  89. 1
      app/javascript/mastodon/locales/kw.json
  90. 1
      app/javascript/mastodon/locales/la.json
  91. 1
      app/javascript/mastodon/locales/lt.json
  92. 1
      app/javascript/mastodon/locales/lv.json
  93. 1
      app/javascript/mastodon/locales/mk.json
  94. 1
      app/javascript/mastodon/locales/ml.json
  95. 3
      app/javascript/mastodon/locales/mr.json
  96. 1
      app/javascript/mastodon/locales/ms.json
  97. 11
      app/javascript/mastodon/locales/my.json
  98. 1
      app/javascript/mastodon/locales/nl.json
  99. 1
      app/javascript/mastodon/locales/nn.json
  100. 1
      app/javascript/mastodon/locales/no.json
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,39 +0,0 @@
version: '2'
checks:
argument-count:
enabled: false
complex-logic:
enabled: false
file-lines:
enabled: false
method-complexity:
enabled: false
method-count:
enabled: false
method-lines:
enabled: false
nested-control-flow:
enabled: false
return-statements:
enabled: false
similar-code:
enabled: false
identical-code:
enabled: false
plugins:
brakeman:
enabled: true
bundler-audit:
enabled: false
eslint:
enabled: false
rubocop:
enabled: false
sass-lint:
enabled: false
exclude_patterns:
- spec/
- vendor/asset/
- app/javascript/mastodon/locales/**/*.json
- config/locales/**/*.yml

@ -15,6 +15,7 @@
"forwardPorts": [3000, 4000],
// Use 'postCreateCommand' to run commands after the container is created.
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postCreateCommand": ".devcontainer/post-create.sh",
"waitFor": "postCreateCommand",

@ -10,7 +10,7 @@ services:
environment:
RAILS_ENV: development
NODE_ENV: development
BIND: 0.0.0.0
REDIS_HOST: redis
REDIS_PORT: '6379'
DB_HOST: db
@ -23,6 +23,10 @@ services:
LIBRE_TRANSLATE_ENDPOINT: http://libretranslate:5000
# Overrides default command so things don't shut down after the process ends.
command: sleep infinity
ports:
- '127.0.0.1:3000:3000'
- '127.0.0.1:4000:4000'
- '127.0.0.1:80:3000'
networks:
- external_network
- internal_network
@ -66,15 +70,19 @@ services:
hard: -1
libretranslate:
image: libretranslate/libretranslate:v1.2.9
image: libretranslate/libretranslate:v1.3.10
restart: unless-stopped
volumes:
- lt-data:/home/libretranslate/.local
networks:
- external_network
- internal_network
volumes:
postgres-data:
redis-data:
es-data:
lt-data:
networks:
external_network:

@ -14,6 +14,9 @@ git checkout -- Gemfile.lock
# [re]create, migrate, and seed the test database
RAILS_ENV=test ./bin/rails db:setup
# [re]create, migrate, and seed the development database
RAILS_ENV=development ./bin/rails db:setup
# Precompile assets for development
RAILS_ENV=development ./bin/rails assets:precompile

@ -30,7 +30,9 @@ jobs:
uses: actions/checkout@v3
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up Ruby
uses: ruby/setup-ruby@v1

@ -16,7 +16,7 @@ jobs:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-one-step.yml"]'
paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-one-step.yml", "lib/tasks/tests.rake"]'
test:
runs-on: ubuntu-latest
@ -64,7 +64,9 @@ jobs:
- uses: actions/checkout@v3
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up bundler cache
uses: ruby/setup-ruby@v1

@ -16,7 +16,7 @@ jobs:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-two-step.yml"]'
paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-two-step.yml", "lib/tasks/tests.rake"]'
test:
runs-on: ubuntu-latest
@ -63,7 +63,9 @@ jobs:
- uses: actions/checkout@v3
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up bundler cache
uses: ruby/setup-ruby@v1

@ -32,7 +32,9 @@ jobs:
node-version-file: '.nvmrc'
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up bundler cache
uses: ruby/setup-ruby@v1
@ -119,6 +121,9 @@ jobs:
path: './public'
name: ${{ github.sha }}
- name: Update package index
run: sudo apt-get update
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged

@ -1,5 +1,7 @@
# Can be removed once all rules are addressed or moved to this file as documented overrides
inherit_from: .rubocop_todo.yml
# Used for merging with exclude lists with .rubocop_todo.yml
inherit_mode:
merge:
- Exclude
@ -11,13 +13,13 @@ require:
- rubocop-capybara
AllCops:
TargetRubyVersion: 2.7
TargetRubyVersion: 2.7 # Set to minimum supported version of CI
DisplayCopNames: true
DisplayStyleGuide: true
ExtraDetails: true
UseCache: true
CacheRootDirectory: tmp
NewCops: enable
NewCops: enable # Opt-in to newly added rules
Exclude:
- db/schema.rb
- 'bin/*'
@ -25,12 +27,16 @@ AllCops:
- 'node_modules/**/*'
- 'Vagrantfile'
- 'vendor/**/*'
- 'lib/json_ld/*'
- 'lib/json_ld/*' # Generated files
- 'lib/templates/**/*'
# Reason: Prefer Hashes without extreme indentation
# https://docs.rubocop.org/rubocop/cops_layout.html#layoutfirsthashelementindentation
Layout/FirstHashElementIndentation:
EnforcedStyle: consistent
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_layout.html#layoutlinelength
Layout/LineLength:
AllowedPatterns:
# Allow comments to be long lines
@ -41,20 +47,50 @@ Layout/LineLength:
- db/*migrate/**/*
- db/seeds/**/*
# Reason:
# https://docs.rubocop.org/rubocop/cops_lint.html#lintuselessaccessmodifier
Lint/UselessAccessModifier:
ContextCreatingMethods:
- class_methods
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize
Metrics/AbcSize:
Exclude:
- 'lib/**/*cli*.rb'
- db/*migrate/**/*
# Reason: Some functions cannot be broken up, but others may be refactor candidates
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocklength
Metrics/BlockLength:
CountAsOne: [array, heredoc]
CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
Exclude:
- 'lib/mastodon/*_cli.rb'
- 'lib/tasks/*.rake'
- 'app/models/concerns/account_associations.rb'
- 'app/models/concerns/account_interactions.rb'
- 'app/models/concerns/ldap_authenticable.rb'
- 'app/models/concerns/omniauthable.rb'
- 'app/models/concerns/pam_authenticable.rb'
- 'app/models/concerns/remotable.rb'
- 'app/services/suspend_account_service.rb'
- 'app/services/unsuspend_account_service.rb'
- 'app/views/accounts/show.rss.ruby'
- 'app/views/tags/show.rss.ruby'
- 'config/environments/development.rb'
- 'config/environments/production.rb'
- 'config/initializers/devise.rb'
- 'config/initializers/doorkeeper.rb'
- 'config/initializers/omniauth.rb'
- 'config/initializers/simple_form.rb'
- 'config/navigation.rb'
- 'config/routes.rb'
- 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- 'lib/paperclip/gif_transcoder.rb'
# Reason:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocknesting
Metrics/BlockNesting:
Exclude:
- 'lib/mastodon/*_cli.rb'
@ -103,22 +139,32 @@ Metrics/ClassLength:
- 'app/services/update_status_service.rb'
- 'lib/paperclip/color_extractor.rb'
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity
Metrics/CyclomaticComplexity:
Exclude:
- lib/mastodon/*cli*.rb
- db/*migrate/**/*
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsmethodlength
Metrics/MethodLength:
CountAsOne: [array, heredoc]
Exclude:
- 'lib/mastodon/*_cli.rb'
# Reason:
# https://docs.rubocop.org/rubocop/cops_style.html#stylerescuestandarderror
Metrics/ModuleLength:
CountAsOne: [array, heredoc]
# Reason: Prevailing style uses numeric status codes, matches RSpec/Rails/HttpStatus
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railshttpstatus
Rails/HttpStatus:
EnforcedStyle: numeric
# Reason: Allowed only in the `tootctl` CLI application code
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsexit
Rails/Exit:
Exclude:
- 'lib/mastodon/*_cli.rb'
@ -146,9 +192,18 @@ RSpec/FilePath:
- 'spec/controllers/concerns/signature_verification_spec.rb'
- 'spec/controllers/concerns/user_tracking_concern_spec.rb'
# Reason:
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecnamedsubject
RSpec/NamedSubject:
EnforcedStyle: named_only
# Reason: Prevailing style choice
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecnottonot
RSpec/NotToNot:
EnforcedStyle: to_not
# Reason: Prevailing style uses numeric status codes, matches Rails/HttpStatus
# https://docs.rubocop.org/rubocop-rspec/cops_rspec_rails.html#rspecrailshttpstatus
RSpec/Rails/HttpStatus:
EnforcedStyle: numeric
@ -162,26 +217,45 @@ Style/ClassAndModuleChildren:
Style/Documentation:
Enabled: false
# Reason: Enforce modern Ruby style
# https://docs.rubocop.org/rubocop/cops_style.html#stylehashsyntax
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
# Reason:
# https://docs.rubocop.org/rubocop/cops_style.html#stylenumericliterals
Style/NumericLiterals:
AllowedPatterns:
- \d{4}_\d{2}_\d{2}_\d{6} # For DB migration date version number readability
# Reason:
# https://docs.rubocop.org/rubocop/cops_style.html#stylepercentliteraldelimiters
Style/PercentLiteralDelimiters:
PreferredDelimiters:
'%i': '()'
'%w': '()'
# Reason: Prefer less indentation in conditional assignments
# https://docs.rubocop.org/rubocop/cops_style.html#styleredundantbegin
Style/RedundantBegin:
Enabled: false
# Reason: Overridden to reduce implicit StandardError rescues
# https://docs.rubocop.org/rubocop/cops_style.html#stylerescuestandarderror
Style/RescueStandardError:
EnforcedStyle: implicit
# Reason: Originally disabled for CodeClimate, and no config consensus has been found
# https://docs.rubocop.org/rubocop/cops_style.html#stylesymbolarray
Style/SymbolArray:
Enabled: false
# Reason:
# https://docs.rubocop.org/rubocop/cops_style.html#styletrailingcommainarrayliteral
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: 'comma'
# Reason:
# https://docs.rubocop.org/rubocop/cops_style.html#styletrailingcommainhashliteral
Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: 'comma'
Style/SymbolArray:
Enabled: false

@ -117,7 +117,6 @@ Lint/ConstantDefinitionInBlock:
- 'spec/lib/activitypub/adapter_spec.rb'
- 'spec/lib/connection_pool/shared_connection_pool_spec.rb'
- 'spec/lib/connection_pool/shared_timed_stack_spec.rb'
- 'spec/lib/settings/extend_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
# Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
@ -233,11 +232,6 @@ Lint/Void:
Metrics/AbcSize:
Max: 150
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
# AllowedMethods: refine
Metrics/BlockLength:
Max: 544
# Configuration parameters: CountBlocks, Max.
Metrics/BlockNesting:
Exclude:
@ -259,6 +253,7 @@ Metrics/ModuleLength:
- 'app/helpers/jsonld_helper.rb'
- 'app/helpers/statuses_helper.rb'
- 'app/models/concerns/account_interactions.rb'
- 'app/models/concerns/has_user_settings.rb'
# Configuration parameters: Max, CountKeywordArgs, MaxOptionalParameters.
Metrics/ParameterLists:
@ -730,7 +725,6 @@ RSpec/LeakyConstantDeclaration:
- 'spec/lib/activitypub/adapter_spec.rb'
- 'spec/lib/connection_pool/shared_connection_pool_spec.rb'
- 'spec/lib/connection_pool/shared_timed_stack_spec.rb'
- 'spec/lib/settings/extend_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
RSpec/LetSetup:
@ -880,204 +874,6 @@ RSpec/MultipleSubjects:
- 'spec/controllers/follower_accounts_controller_spec.rb'
- 'spec/controllers/following_accounts_controller_spec.rb'
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
# SupportedStyles: always, named_only
RSpec/NamedSubject:
Exclude:
- 'spec/controllers/admin/account_moderation_notes_controller_spec.rb'
- 'spec/controllers/admin/accounts_controller_spec.rb'
- 'spec/controllers/admin/confirmations_controller_spec.rb'
- 'spec/controllers/admin/custom_emojis_controller_spec.rb'
- 'spec/controllers/admin/domain_blocks_controller_spec.rb'
- 'spec/controllers/admin/instances_controller_spec.rb'
- 'spec/controllers/admin/invites_controller_spec.rb'
- 'spec/controllers/admin/report_notes_controller_spec.rb'
- 'spec/controllers/api/v1/accounts/notes_controller_spec.rb'
- 'spec/controllers/api/v1/accounts/pins_controller_spec.rb'
- 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- 'spec/controllers/auth/passwords_controller_spec.rb'
- 'spec/controllers/auth/registrations_controller_spec.rb'
- 'spec/controllers/home_controller_spec.rb'
- 'spec/controllers/invites_controller_spec.rb'
- 'spec/controllers/oauth/authorizations_controller_spec.rb'
- 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- 'spec/controllers/relationships_controller_spec.rb'
- 'spec/controllers/settings/featured_tags_controller_spec.rb'
- 'spec/controllers/settings/migrations_controller_spec.rb'
- 'spec/controllers/settings/sessions_controller_spec.rb'
- 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb'
- 'spec/controllers/well_known/webfinger_controller_spec.rb'
- 'spec/features/log_in_spec.rb'
- 'spec/features/profile_spec.rb'
- 'spec/lib/activitypub/activity/accept_spec.rb'
- 'spec/lib/activitypub/activity/add_spec.rb'
- 'spec/lib/activitypub/activity/announce_spec.rb'
- 'spec/lib/activitypub/activity/block_spec.rb'
- 'spec/lib/activitypub/activity/create_spec.rb'
- 'spec/lib/activitypub/activity/delete_spec.rb'
- 'spec/lib/activitypub/activity/flag_spec.rb'
- 'spec/lib/activitypub/activity/follow_spec.rb'
- 'spec/lib/activitypub/activity/like_spec.rb'
- 'spec/lib/activitypub/activity/move_spec.rb'
- 'spec/lib/activitypub/activity/reject_spec.rb'
- 'spec/lib/activitypub/activity/remove_spec.rb'
- 'spec/lib/activitypub/activity/undo_spec.rb'
- 'spec/lib/activitypub/activity/update_spec.rb'
- 'spec/lib/activitypub/adapter_spec.rb'
- 'spec/lib/activitypub/dereferencer_spec.rb'
- 'spec/lib/activitypub/linked_data_signature_spec.rb'
- 'spec/lib/activitypub/tag_manager_spec.rb'
- 'spec/lib/connection_pool/shared_connection_pool_spec.rb'
- 'spec/lib/connection_pool/shared_timed_stack_spec.rb'
- 'spec/lib/delivery_failure_tracker_spec.rb'
- 'spec/lib/emoji_formatter_spec.rb'
- 'spec/lib/entity_cache_spec.rb'
- 'spec/lib/fast_ip_map_spec.rb'
- 'spec/lib/feed_manager_spec.rb'
- 'spec/lib/hashtag_normalizer_spec.rb'
- 'spec/lib/html_aware_formatter_spec.rb'
- 'spec/lib/link_details_extractor_spec.rb'
- 'spec/lib/ostatus/tag_manager_spec.rb'
- 'spec/lib/plain_text_formatter_spec.rb'
- 'spec/lib/request_pool_spec.rb'
- 'spec/lib/request_spec.rb'
- 'spec/lib/sanitize_config_spec.rb'
- 'spec/lib/status_finder_spec.rb'
- 'spec/lib/status_reach_finder_spec.rb'
- 'spec/lib/suspicious_sign_in_detector_spec.rb'
- 'spec/lib/text_formatter_spec.rb'
- 'spec/lib/vacuum/access_tokens_vacuum_spec.rb'
- 'spec/lib/vacuum/backups_vacuum_spec.rb'
- 'spec/lib/vacuum/feeds_vacuum_spec.rb'
- 'spec/lib/vacuum/media_attachments_vacuum_spec.rb'
- 'spec/lib/vacuum/preview_cards_vacuum_spec.rb'
- 'spec/lib/vacuum/statuses_vacuum_spec.rb'
- 'spec/lib/vacuum/system_keys_vacuum_spec.rb'
- 'spec/models/account/field_spec.rb'
- 'spec/models/account_migration_spec.rb'
- 'spec/models/account_spec.rb'
- 'spec/models/account_statuses_cleanup_policy_spec.rb'
- 'spec/models/account_statuses_filter_spec.rb'
- 'spec/models/admin/account_action_spec.rb'
- 'spec/models/canonical_email_block_spec.rb'
- 'spec/models/concerns/account_interactions_spec.rb'
- 'spec/models/custom_emoji_filter_spec.rb'
- 'spec/models/custom_emoji_spec.rb'
- 'spec/models/follow_spec.rb'
- 'spec/models/home_feed_spec.rb'
- 'spec/models/media_attachment_spec.rb'
- 'spec/models/notification_spec.rb'
- 'spec/models/public_feed_spec.rb'
- 'spec/models/relationship_filter_spec.rb'
- 'spec/models/remote_follow_spec.rb'
- 'spec/models/report_spec.rb'
- 'spec/models/session_activation_spec.rb'
- 'spec/models/setting_spec.rb'
- 'spec/models/status_spec.rb'
- 'spec/models/tag_spec.rb'
- 'spec/models/trends/statuses_spec.rb'
- 'spec/models/trends/tags_spec.rb'
- 'spec/models/user_role_spec.rb'
- 'spec/models/user_spec.rb'
- 'spec/models/web/push_subscription_spec.rb'
- 'spec/policies/account_moderation_note_policy_spec.rb'
- 'spec/policies/account_policy_spec.rb'
- 'spec/policies/backup_policy_spec.rb'
- 'spec/policies/custom_emoji_policy_spec.rb'
- 'spec/policies/domain_block_policy_spec.rb'
- 'spec/policies/email_domain_block_policy_spec.rb'
- 'spec/policies/instance_policy_spec.rb'
- 'spec/policies/invite_policy_spec.rb'
- 'spec/policies/relay_policy_spec.rb'
- 'spec/policies/report_note_policy_spec.rb'
- 'spec/policies/report_policy_spec.rb'
- 'spec/policies/settings_policy_spec.rb'
- 'spec/policies/status_policy_spec.rb'
- 'spec/policies/tag_policy_spec.rb'
- 'spec/policies/user_policy_spec.rb'
- 'spec/presenters/familiar_followers_presenter_spec.rb'
- 'spec/serializers/activitypub/note_serializer_spec.rb'
- 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/serializers/rest/account_serializer_spec.rb'
- 'spec/services/account_search_service_spec.rb'
- 'spec/services/account_statuses_cleanup_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_account_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_actor_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- 'spec/services/activitypub/fetch_replies_service_spec.rb'
- 'spec/services/activitypub/process_account_service_spec.rb'
- 'spec/services/activitypub/process_collection_service_spec.rb'
- 'spec/services/activitypub/process_status_update_service_spec.rb'
- 'spec/services/after_block_domain_from_account_service_spec.rb'
- 'spec/services/after_block_service_spec.rb'
- 'spec/services/app_sign_up_service_spec.rb'
- 'spec/services/authorize_follow_service_spec.rb'
- 'spec/services/batched_remove_status_service_spec.rb'
- 'spec/services/block_domain_service_spec.rb'
- 'spec/services/block_service_spec.rb'
- 'spec/services/bootstrap_timeline_service_spec.rb'
- 'spec/services/clear_domain_media_service_spec.rb'
- 'spec/services/delete_account_service_spec.rb'
- 'spec/services/fan_out_on_write_service_spec.rb'
- 'spec/services/favourite_service_spec.rb'
- 'spec/services/fetch_link_card_service_spec.rb'
- 'spec/services/fetch_oembed_service_spec.rb'
- 'spec/services/fetch_remote_status_service_spec.rb'
- 'spec/services/fetch_resource_service_spec.rb'
- 'spec/services/follow_service_spec.rb'
- 'spec/services/import_service_spec.rb'
- 'spec/services/mute_service_spec.rb'
- 'spec/services/notify_service_spec.rb'
- 'spec/services/post_status_service_spec.rb'
- 'spec/services/precompute_feed_service_spec.rb'
- 'spec/services/process_mentions_service_spec.rb'
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/reblog_service_spec.rb'
- 'spec/services/reject_follow_service_spec.rb'
- 'spec/services/remove_from_followers_service_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/report_service_spec.rb'
- 'spec/services/resolve_account_service_spec.rb'
- 'spec/services/resolve_url_service_spec.rb'
- 'spec/services/search_service_spec.rb'
- 'spec/services/suspend_account_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
- 'spec/services/unblock_domain_service_spec.rb'
- 'spec/services/unblock_service_spec.rb'
- 'spec/services/unfollow_service_spec.rb'
- 'spec/services/unsuspend_account_service_spec.rb'
- 'spec/services/update_account_service_spec.rb'
- 'spec/services/update_status_service_spec.rb'
- 'spec/services/verify_link_service_spec.rb'
- 'spec/validators/blacklisted_email_validator_spec.rb'
- 'spec/validators/email_mx_validator_spec.rb'
- 'spec/validators/note_length_validator_spec.rb'
- 'spec/validators/reaction_validator_spec.rb'
- 'spec/validators/status_length_validator_spec.rb'
- 'spec/validators/status_pin_validator_spec.rb'
- 'spec/validators/unique_username_validator_spec.rb'
- 'spec/workers/activitypub/delivery_worker_spec.rb'
- 'spec/workers/activitypub/distribute_poll_update_worker_spec.rb'
- 'spec/workers/activitypub/distribution_worker_spec.rb'
- 'spec/workers/activitypub/fetch_replies_worker_spec.rb'
- 'spec/workers/activitypub/move_distribution_worker_spec.rb'
- 'spec/workers/activitypub/processing_worker_spec.rb'
- 'spec/workers/activitypub/status_update_distribution_worker_spec.rb'
- 'spec/workers/activitypub/update_distribution_worker_spec.rb'
- 'spec/workers/admin/domain_purge_worker_spec.rb'
- 'spec/workers/domain_block_worker_spec.rb'
- 'spec/workers/domain_clear_media_worker_spec.rb'
- 'spec/workers/feed_insert_worker_spec.rb'
- 'spec/workers/move_worker_spec.rb'
- 'spec/workers/publish_scheduled_announcement_worker_spec.rb'
- 'spec/workers/publish_scheduled_status_worker_spec.rb'
- 'spec/workers/refollow_worker_spec.rb'
- 'spec/workers/regeneration_worker_spec.rb'
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
- 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb'
- 'spec/workers/unfollow_follow_worker_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb'
# Configuration parameters: AllowedGroups.
RSpec/NestedGroups:
Max: 6
@ -1476,7 +1272,6 @@ Rails/CompactBlank:
- 'app/helpers/statuses_helper.rb'
- 'app/models/concerns/attachmentable.rb'
- 'app/models/poll.rb'
- 'app/models/user.rb'
- 'app/services/import_service.rb'
- 'config/initializers/paperclip.rb'
@ -1527,7 +1322,6 @@ Rails/FilePath:
- 'app/validators/reaction_validator.rb'
- 'config/environments/test.rb'
- 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb'
- 'db/migrate/20170918125918_ids_to_bigints.rb'
- 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb'
- 'db/migrate/20171028221157_add_reblogs_to_follows.rb'
- 'db/migrate/20171107143332_add_memorial_to_accounts.rb'
@ -1637,18 +1431,6 @@ Rails/I18nLocaleTexts:
- 'lib/tasks/mastodon.rake'
- 'spec/helpers/flashes_helper_spec.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/IgnoredColumnsAssignment:
Exclude:
- 'app/models/account.rb'
- 'app/models/account_stat.rb'
- 'app/models/admin/action_log.rb'
- 'app/models/custom_filter.rb'
- 'app/models/email_domain_block.rb'
- 'app/models/report.rb'
- 'app/models/status_edit.rb'
- 'app/models/user.rb'
# Configuration parameters: IgnoreScopes, Include.
# Include: app/models/**/*.rb
Rails/InverseOf:
@ -2425,11 +2207,6 @@ Style/HashTransformValues:
- 'app/serializers/rest/web_push_subscription_serializer.rb'
- 'app/services/import_service.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/IdenticalConditionalBranches:
Exclude:
- 'config/initializers/content_security_policy.rb'
# This cop supports safe autocorrection (--autocorrect).
Style/IfUnlessModifier:
Exclude:
@ -2529,11 +2306,6 @@ Style/PreferredHashMethods:
Exclude:
- 'config/initializers/paperclip.rb'
# This cop supports safe autocorrection (--autocorrect).
Style/RedundantBegin:
Exclude:
- 'config/initializers/simple_form.rb'
# This cop supports safe autocorrection (--autocorrect).
Style/RedundantConstantBase:
Exclude:

@ -1 +1 @@
3.2.1
3.2.2

@ -44,3 +44,6 @@ Gruntfile.js
# for specific ignore
!.svgo.yml
!sass-lint/**/*.yml
# breaks lint-staged or generally anything using https://github.com/eemeli/yaml/issues/384
!**/yaml/dist/**/doc

@ -2,7 +2,7 @@
# This needs to be bullseye-slim because the Ruby image is built on bullseye-slim
ARG NODE_VERSION="16.19-bullseye-slim"
FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.1-slim as ruby
FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.2-slim as ruby
FROM node:${NODE_VERSION} as build
COPY --link --from=ruby /opt/ruby /opt/ruby

@ -87,10 +87,10 @@ gem 'simple-navigation', '~> 4.4'
gem 'simple_form', '~> 5.2'
gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie'
gem 'stoplight', '~> 3.0.1'
gem 'strong_migrations', '~> 0.7'
gem 'strong_migrations', '~> 0.8'
gem 'tty-prompt', '~> 0.23', require: false
gem 'twitter-text', '~> 3.1.0'
gem 'tzinfo-data', '~> 1.2022'
gem 'tzinfo-data', '~> 1.2023'
gem 'webpacker', '~> 5.4'
gem 'webpush', github: 'ClearlyClaire/webpush', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9'
gem 'webauthn', '~> 3.0'

@ -109,16 +109,16 @@ GEM
attr_required (1.0.1)
awrence (1.2.1)
aws-eventstream (1.2.0)
aws-partitions (1.711.0)
aws-sdk-core (3.170.0)
aws-partitions (1.735.0)
aws-sdk-core (3.171.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.62.0)
aws-sdk-kms (1.63.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.119.1)
aws-sdk-s3 (1.119.2)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
@ -685,8 +685,8 @@ GEM
statsd-ruby (1.5.0)
stoplight (3.0.1)
redlock (~> 1.0)
strong_migrations (0.7.9)
activerecord (>= 5)
strong_migrations (0.8.0)
activerecord (>= 5.2)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
@ -719,7 +719,7 @@ GEM
unf (~> 0.1.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.7)
tzinfo-data (1.2023.2)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
@ -885,11 +885,11 @@ DEPENDENCIES
sprockets-rails (~> 3.4)
stackprof
stoplight (~> 3.0.1)
strong_migrations (~> 0.7)
strong_migrations (~> 0.8)
thor (~> 1.2)
tty-prompt (~> 0.23)
twitter-text (~> 3.1.0)
tzinfo-data (~> 1.2022)
tzinfo-data (~> 1.2023)
webauthn (~> 3.0)
webmock (~> 3.18)
webpacker (~> 5.4)

@ -13,7 +13,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController
def update
@account = current_account
UpdateAccountService.new.call(@account, account_params, raise_error: true)
UserSettingsDecorator.new(current_user).update(user_settings_params) if user_settings_params
current_user.update(user_params) if user_params
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
render json: @account, serializer: REST::CredentialAccountSerializer
end
@ -34,15 +34,17 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController
)
end
def user_settings_params
def user_params
return nil if params[:source].blank?
source_params = params.require(:source)
{
'setting_default_privacy' => source_params.fetch(:privacy, @account.user.setting_default_privacy),
'setting_default_sensitive' => source_params.fetch(:sensitive, @account.user.setting_default_sensitive),
'setting_default_language' => source_params.fetch(:language, @account.user.setting_default_language),
settings_attributes: {
default_privacy: source_params.fetch(:privacy, @account.user.setting_default_privacy),
default_sensitive: source_params.fetch(:sensitive, @account.user.setting_default_sensitive),
default_language: source_params.fetch(:language, @account.user.setting_default_language),
},
}
end
end

@ -5,7 +5,7 @@ class Api::V1::StreamingController < Api::BaseController
if Rails.configuration.x.streaming_api_base_url == request.host
not_found
else
redirect_to streaming_api_url, status: 301
redirect_to streaming_api_url, status: 301, allow_other_host: true
end
end

@ -13,7 +13,11 @@ class BackupsController < ApplicationController
when :s3
redirect_to @backup.dump.expiring_url(10)
when :fog
redirect_to @backup.dump.expiring_url(Time.now.utc + 10)
if Paperclip::Attachment.default_options.dig(:storage, :fog_credentials, :openstack_temp_url_key).present?
redirect_to @backup.dump.expiring_url(Time.now.utc + 10)
else
redirect_to full_asset_url(@backup.dump.url)
end
when :filesystem
redirect_to full_asset_url(@backup.dump.url)
end

@ -10,7 +10,8 @@ module AccountControllerConcern
included do
before_action :set_instance_presenter
before_action :set_link_headers, if: -> { request.format.nil? || request.format == :html }
after_action :set_link_headers, if: -> { request.format.nil? || request.format == :html }
end
private

@ -23,7 +23,7 @@ class MediaProxyController < ApplicationController
redownload! if @media_attachment.needs_redownload? && !reject_media?
end
redirect_to full_asset_url(@media_attachment.file.url(version))
redirect_to full_asset_url(@media_attachment.file.url(version)), allow_other_host: true
end
private

@ -4,8 +4,6 @@ class Settings::PreferencesController < Settings::BaseController
def show; end
def update
user_settings.update(user_settings_params.to_h)
if current_user.update(user_params)
I18n.locale = current_user.locale
redirect_to after_update_redirect_path, notice: I18n.t('generic.changes_saved_msg')
@ -20,46 +18,7 @@ class Settings::PreferencesController < Settings::BaseController
settings_preferences_path
end
def user_settings
UserSettingsDecorator.new(current_user)
end
def user_params
params.require(:user).permit(
:locale,
chosen_languages: []
)
end
def user_settings_params
params.require(:user).permit(
:setting_default_privacy,
:setting_default_sensitive,
:setting_default_language,
:setting_unfollow_modal,
:setting_boost_modal,
:setting_favourite_modal,
:setting_delete_modal,
:setting_auto_play_gif,
:setting_display_media,
:setting_expand_spoilers,
:setting_reduce_motion,
:setting_disable_swiping,
:setting_system_font_ui,
:setting_system_emoji_font,
:setting_noindex,
:setting_hide_followers_count,
:setting_aggregate_reblogs,
:setting_show_application,
:setting_advanced_layout,
:setting_default_content_type,
:setting_use_blurhash,
:setting_use_pending_items,
:setting_trends,
:setting_crop_images,
:setting_always_send_emails,
notification_emails: %i(follow follow_request reblog favourite mention report pending_account trending_tag trending_link trending_status appeal),
interactions: %i(must_be_follower must_be_following must_be_following_dm)
)
params.require(:user).permit(:locale, chosen_languages: [], settings_attributes: UserSettings.keys)
end
end

@ -9,11 +9,12 @@ class StatusesController < ApplicationController
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_cache_headers
before_action :set_body_classes, only: :embed
after_action :set_link_headers
skip_around_action :set_locale, if: -> { request.format == :json }
skip_before_action :require_functional!, only: [:show, :embed], unless: :whitelist_mode?
@ -71,6 +72,6 @@ class StatusesController < ApplicationController
end
def redirect_to_original
redirect_to ActivityPub::TagManager.instance.url_for(@status.reblog) if @status.reblog?
redirect_to(ActivityPub::TagManager.instance.url_for(@status.reblog), allow_other_host: true) if @status.reblog?
end
end

@ -4,7 +4,6 @@ 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 { importFetchedAccounts, importFetchedStatus } from './importer';
@ -276,46 +275,42 @@ export function uploadCompose(files) {
dispatch(uploadComposeRequest());
for (const [i, f] of Array.from(files).entries()) {
for (const [i, file] of Array.from(files).entries()) {
if (media.size + i > 3) break;
resizeImage(f).then(file => {
const data = new FormData();
data.append('file', file);
// Account for disparity in size of original image and resized data
total += file.size - f.size;
return api(getState).post('/api/v2/media', data, {
onUploadProgress: function({ loaded }){
progress[i] = loaded;
dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total));
},
}).then(({ status, data }) => {
// If server-side processing of the media attachment has not completed yet,
// poll the server until it is, before showing the media attachment as uploaded
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) {
const retryAfter = (Math.log2(tryCount) || 1) * 1000;
tryCount += 1;
setTimeout(() => poll(), retryAfter);
}
}).catch(error => dispatch(uploadComposeFail(error)));
};
poll();
}
});
const data = new FormData();
data.append('file', file);
api(getState).post('/api/v2/media', data, {
onUploadProgress: function({ loaded }){
progress[i] = loaded;
dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total));
},
}).then(({ status, data }) => {
// If server-side processing of the media attachment has not completed yet,
// poll the server until it is, before showing the media attachment as uploaded
if (status === 200) {
dispatch(uploadComposeSuccess(data, file));
} 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, file));
} else if (response.status === 206) {
const retryAfter = (Math.log2(tryCount) || 1) * 1000;
tryCount += 1;
setTimeout(() => poll(), retryAfter);
}
}).catch(error => dispatch(uploadComposeFail(error)));
};
poll();
}
}).catch(error => dispatch(uploadComposeFail(error)));
}
};

@ -10,6 +10,9 @@ import { me } from '../initial_state';
import RelativeTimestamp from './relative_timestamp';
import Skeleton from 'mastodon/components/skeleton';
import { Link } from 'react-router-dom';
import { counterRenderer } from 'mastodon/components/common_counter';
import ShortNumber from 'mastodon/components/short_number';
import Icon from 'mastodon/components/icon';
const messages = defineMessages({
follow: { id: 'account.follow', defaultMessage: 'Follow' },
@ -23,6 +26,26 @@ const messages = defineMessages({
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
});
class VerifiedBadge extends React.PureComponent {
static propTypes = {
link: PropTypes.string.isRequired,
verifiedAt: PropTypes.string.isRequired,
};
render () {
const { link } = this.props;
return (
<span className='verified-badge'>
<Icon id='check' className='verified-badge__mark' />
<span dangerouslySetInnerHTML={{ __html: link }} />
</span>
);
}
}
class Account extends ImmutablePureComponent {
static propTypes = {
@ -77,7 +100,11 @@ class Account extends ImmutablePureComponent {
<div className='account__wrapper'>
<div className='account__display-name'>
<div className='account__avatar-wrapper'><Skeleton width={36} height={36} /></div>
<DisplayName />
<div>
<DisplayName />
<Skeleton width='7ch' />
</div>
</div>
</div>
</div>
@ -131,18 +158,32 @@ class Account extends ImmutablePureComponent {
}
}
let mute_expires_at;
let muteTimeRemaining;
if (account.get('mute_expires_at')) {
mute_expires_at = <div><RelativeTimestamp timestamp={account.get('mute_expires_at')} futureDate /></div>;
muteTimeRemaining = <>· <RelativeTimestamp timestamp={account.get('mute_expires_at')} futureDate /></>;
}
let verification;
const firstVerifiedField = account.get('fields').find(item => !!item.get('verified_at'));
if (firstVerifiedField) {
verification = <>· <VerifiedBadge link={firstVerifiedField.get('value')} verifiedAt={firstVerifiedField.get('verified_at')} /></>;
}
return (
<div className='account'>
<div className='account__wrapper'>
<Link key={account.get('id')} className='account__display-name' title={account.get('acct')} to={`/@${account.get('acct')}`}>
<div className='account__avatar-wrapper'><Avatar account={account} size={size} /></div>
{mute_expires_at}
<DisplayName account={account} />
<div className='account__avatar-wrapper'>
<Avatar account={account} size={size} />
</div>
<div>
<DisplayName account={account} />
<ShortNumber value={account.get('followers_count')} renderer={counterRenderer('followers')} /> {verification} {muteTimeRemaining}
</div>
</Link>
<div className='account__relationship'>

@ -386,6 +386,13 @@ class Status extends ImmutablePureComponent {
account = status.get('account');
status = status.get('reblog');
} else if (status.get('visibility') === 'direct') {
prepend = (
<div className='status__prepend'>
<div className='status__prepend-icon-wrapper'><Icon id='at' className='status__prepend-icon' fixedWidth /></div>
<FormattedMessage id='status.direct_indicator' defaultMessage='Private mention' />
</div>
);
} 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']) };

@ -14,7 +14,7 @@ const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' },
edit: { id: 'status.edit', defaultMessage: 'Edit' },
direct: { id: 'status.direct', defaultMessage: 'Direct message @{name}' },
direct: { id: 'status.direct', defaultMessage: 'Privately mention @{name}' },
mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' },
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },
block: { id: 'account.block', defaultMessage: 'Block @{name}' },

@ -28,7 +28,7 @@ const messages = defineMessages({
linkVerifiedOn: { id: 'account.link_verified_on', defaultMessage: 'Ownership of this link was checked on {date}' },
account_locked: { id: 'account.locked_info', defaultMessage: 'This account privacy status is set to locked. The owner manually reviews who can follow them.' },
mention: { id: 'account.mention', defaultMessage: 'Mention @{name}' },
direct: { id: 'account.direct', defaultMessage: 'Direct message @{name}' },
direct: { id: 'account.direct', defaultMessage: 'Privately mention @{name}' },
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' },

@ -11,7 +11,7 @@ import ColumnHeader from 'mastodon/components/column_header';
import ConversationsListContainer from './containers/conversations_list_container';
const messages = defineMessages({
title: { id: 'column.direct', defaultMessage: 'Direct messages' },
title: { id: 'column.direct', defaultMessage: 'Private mentions' },
});
class DirectTimeline extends React.PureComponent {
@ -91,7 +91,7 @@ class DirectTimeline extends React.PureComponent {
timelineId='direct'
onLoadMore={this.handleLoadMore}
prepend={<div className='follow_requests-unlocked_explanation'><span><FormattedMessage id='compose_form.encryption_warning' defaultMessage='Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a></span></div>}
emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any direct messages yet. When you send or receive one, it will show up here." />}
emptyMessage={<FormattedMessage id='empty_column.direct' defaultMessage="You don't have any private mentions yet. When you send or receive one, it will show up here." />}
/>
<Helmet>

@ -88,7 +88,9 @@ class Explore extends React.PureComponent {
<Route path='/explore/tags' component={Tags} />
<Route path='/explore/links' component={Links} />
<Route path='/explore/suggestions' component={Suggestions} />
<Route exact path={['/explore', '/explore/posts', '/search']} component={Statuses} componentParams={{ multiColumn }} />
<Route exact path={['/explore', '/explore/posts', '/search']}>
<Statuses multiColumn={multiColumn} />
</Route>
</Switch>
<Helmet>

@ -23,7 +23,7 @@ const messages = defineMessages({
settings_subheading: { id: 'column_subheading.settings', defaultMessage: 'Settings' },
community_timeline: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
explore: { id: 'navigation_bar.explore', defaultMessage: 'Explore' },
direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' },
direct: { id: 'navigation_bar.direct', defaultMessage: 'Private mentions' },
bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },

@ -13,7 +13,7 @@ const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' },
edit: { id: 'status.edit', defaultMessage: 'Edit' },
direct: { id: 'status.direct', defaultMessage: 'Direct message @{name}' },
direct: { id: 'status.direct', defaultMessage: 'Privately mention @{name}' },
mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' },
reply: { id: 'status.reply', defaultMessage: 'Reply' },
reblog: { id: 'status.reblog', defaultMessage: 'Boost' },

@ -6,7 +6,7 @@ import DisplayName from '../../../components/display_name';
import StatusContent from '../../../components/status_content';
import MediaGallery from '../../../components/media_gallery';
import { Link } from 'react-router-dom';
import { injectIntl, defineMessages, FormattedDate } from 'react-intl';
import { injectIntl, defineMessages, FormattedDate, FormattedMessage } from 'react-intl';
import Card from './card';
import ImmutablePureComponent from 'react-immutable-pure-component';
import Video from '../../video';
@ -262,7 +262,13 @@ class DetailedStatus extends ImmutablePureComponent {
return (
<div style={outerStyle}>
<div ref={this.setRef} className={classNames('detailed-status', `detailed-status-${status.get('visibility')}`, { compact })}>
<div ref={this.setRef} className={classNames('detailed-status', { compact })}>
{status.get('visibility') === 'direct' && (
<div className='status__prepend'>
<div className='status__prepend-icon-wrapper'><Icon id='at' className='status__prepend-icon' fixedWidth /></div>
<FormattedMessage id='status.direct_indicator' defaultMessage='Private mention' />
</div>
)}
<a href={`/@${status.getIn(['account', 'acct'])}`} onClick={this.handleAccountClick} className='detailed-status__display-name'>
<div className='detailed-status__display-avatar'><Avatar account={status.get('account')} size={46} /></div>
<DisplayName account={status.get('account')} localDomain={this.props.domain} />

@ -630,7 +630,7 @@ class Status extends ImmutablePureComponent {
{ancestors}
<HotKeys handlers={handlers}>
<div className={classNames('focusable', 'detailed-status__wrapper')} tabIndex='0' aria-label={textForScreenReader(intl, status, false)}>
<div className={classNames('focusable', 'detailed-status__wrapper', `detailed-status__wrapper-${status.get('visibility')}`)} tabIndex='0' aria-label={textForScreenReader(intl, status, false)}>
<DetailedStatus
key={`details-${status.get('id')}`}
status={status}

@ -18,7 +18,7 @@ const messages = defineMessages({
explore: { id: 'explore.title', defaultMessage: 'Explore' },
local: { id: 'tabs_bar.local_timeline', defaultMessage: 'Local' },
federated: { id: 'tabs_bar.federated_timeline', defaultMessage: 'Federated' },
direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' },
direct: { id: 'navigation_bar.direct', defaultMessage: 'Private mentions' },
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Borrar",
"status.detailed_status": "Vista de conversación detallada",
"status.direct": "Mensache directo a @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Editar",
"status.edited": "Editau {date}",
"status.edited_x_times": "Editau {count, plural, one {{count} vez} other {{count} veces}}",

@ -558,6 +558,7 @@
"status.delete": "احذف",
"status.detailed_status": "تفاصيل المحادثة",
"status.direct": "رسالة خاصة إلى @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "تعديل",
"status.edited": ُدّل في {date}",
"status.edited_x_times": ُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}",

@ -558,6 +558,7 @@
"status.delete": "Desaniciar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Unviar un mensaxe direutu a @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Editóse'l {date}",
"status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}",

@ -163,7 +163,7 @@
"confirmations.domain_block.confirm": "Заблакіраваць дамен цалкам",
"confirmations.domain_block.message": "Вы абсалютна дакладна ўпэўнены, што хочаце заблакіраваць {domain} зусім? У большасці выпадкаў, дастаткова некалькіх мэтавых блакіровак ці ігнараванняў. Вы перастанеце бачыць змесціва з гэтага дамену ва ўсіх стужках і апавяшчэннях. Вашы падпіскі з гэтага дамену будуць выдаленыя.",
"confirmations.edit.confirm": "Рэдагаваць",
"confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.edit.message": "Калі вы зменіце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?",
"confirmations.logout.confirm": "Выйсці",
"confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?",
"confirmations.mute.confirm": "Ігнараваць",
@ -558,6 +558,7 @@
"status.delete": "Выдаліць",
"status.detailed_status": "Дэтальны агляд размовы",
"status.direct": "Асабістае паведамленне @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Рэдагаваць",
"status.edited": "Адрэдагавана {date}",
"status.edited_x_times": "Рэдагавана {count, plural, one {{count} раз} few {{count} разы} many {{count} разоў} other {{count} разу}}",

@ -558,6 +558,7 @@
"status.delete": "Изтриване",
"status.detailed_status": "Подробен изглед на разговора",
"status.direct": "Директно съобщение до @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Редактиране",
"status.edited": "Редактирано на {date}",
"status.edited_x_times": "Редактирано {count, plural,one {{count} път} other {{count} пъти}}",

@ -558,6 +558,7 @@
"status.delete": "মলত",
"status.detailed_status": "বিিত কথপকথনর হিখত",
"status.direct": "@{name} ক সরসরি",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Dilemel",
"status.detailed_status": "Gwel kaozeadenn munudek",
"status.direct": "Kas ur c'hannad eeun da @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Kemmañ",
"status.edited": "Aozet {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Elimina",
"status.detailed_status": "Vista detallada de la conversa",
"status.direct": "Missatge directe a @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edita",
"status.edited": "Editat {date}",
"status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}",

@ -558,6 +558,7 @@
"status.delete": "سڕینەوە",
"status.detailed_status": "ڕوانگەی گفتوگۆ بە وردەکاری",
"status.direct": "پەیامی ڕاستەوخۆ @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "دەستکاری",
"status.edited": "بەشداری {date}",
"status.edited_x_times": "دەستکاریکراوە {count, plural, one {{count} کات} other {{count} کات}}",

@ -558,6 +558,7 @@
"status.delete": "Toglie",
"status.detailed_status": "Vista in ditagliu di a cunversazione",
"status.direct": "Mandà un missaghju @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Smazat",
"status.detailed_status": "Podrobné zobrazení konverzace",
"status.direct": "Poslat @{name} přímou zprávu",
"status.direct_indicator": "Private mention",
"status.edit": "Upravit",
"status.edited": "Upraveno {date}",
"status.edited_x_times": "Upraveno {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}",

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Dileu",
"status.detailed_status": "Golwg manwl o'r sgwrs",
"status.direct": "Neges breifat @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Golygu",
"status.edited": "Golygwyd {date}",
"status.edited_x_times": "Golygwyd {count, plural, one {waith} two {waith} other {{count} gwaith}}",

@ -558,6 +558,7 @@
"status.delete": "Slet",
"status.detailed_status": "Detaljeret samtalevisning",
"status.direct": "Direkte besked til @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Redigér",
"status.edited": "Redigeret {date}",
"status.edited_x_times": "Redigeret {count, plural, one {{count} gang} other {{count} gange}}",

@ -558,6 +558,7 @@
"status.delete": "Beitrag löschen",
"status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
"status.direct": "Direktnachricht an @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Beitrag bearbeiten",
"status.edited": "Bearbeitet {date}",
"status.edited_x_times": "{count, plural, one {{count} mal} other {{count} mal}} bearbeitet",

@ -560,7 +560,7 @@
"id": "status.edit"
},
{
"defaultMessage": "Direct message @{name}",
"defaultMessage": "Privately mention @{name}",
"id": "status.direct"
},
{
@ -761,6 +761,10 @@
"defaultMessage": "{name} boosted",
"id": "status.reblogged_by"
},
{
"defaultMessage": "Private mention",
"id": "status.direct_indicator"
},
{
"defaultMessage": "Replied to {name}",
"id": "status.replied_to"
@ -1109,7 +1113,7 @@
"id": "account.mention"
},
{
"defaultMessage": "Direct message @{name}",
"defaultMessage": "Privately mention @{name}",
"id": "account.direct"
},
{
@ -1627,7 +1631,7 @@
"id": "privacy.private.long"
},
{
"defaultMessage": "Mentioned people only",
"defaultMessage": "Private mention",
"id": "privacy.direct.short"
},
{
@ -1925,7 +1929,7 @@
{
"descriptors": [
{
"defaultMessage": "Direct messages",
"defaultMessage": "Private mentions",
"id": "column.direct"
},
{
@ -1937,7 +1941,7 @@
"id": "compose_form.direct_message_warning_learn_more"
},
{
"defaultMessage": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"defaultMessage": "You don't have any private mentions yet. When you send or receive one, it will show up here.",
"id": "empty_column.direct"
}
],
@ -2432,7 +2436,7 @@
"id": "navigation_bar.explore"
},
{
"defaultMessage": "Direct messages",
"defaultMessage": "Private mentions",
"id": "navigation_bar.direct"
},
{
@ -3550,7 +3554,7 @@
"id": "status.edit"
},
{
"defaultMessage": "Direct message @{name}",
"defaultMessage": "Privately mention @{name}",
"id": "status.direct"
},
{
@ -4199,7 +4203,7 @@
"id": "tabs_bar.federated_timeline"
},
{
"defaultMessage": "Direct messages",
"defaultMessage": "Private mentions",
"id": "navigation_bar.direct"
},
{

@ -558,6 +558,7 @@
"status.delete": "Διαγραφή",
"status.detailed_status": "Προβολή λεπτομερειών συζήτησης",
"status.direct": "Προσωπικό μήνυμα προς @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Επεξεργασία",
"status.edited": "Επεξεργάστηκε στις {date}",
"status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}",

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -20,7 +20,7 @@
"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.direct": "Privately mention @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Domain blocked",
"account.edit_profile": "Edit profile",
@ -102,7 +102,7 @@
"column.blocks": "Blocked users",
"column.bookmarks": "Bookmarks",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.direct": "Private mentions",
"column.directory": "Browse profiles",
"column.domain_blocks": "Blocked domains",
"column.favourites": "Favourites",
@ -220,7 +220,7 @@
"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.direct": "You don't have any private mentions 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.",
@ -318,7 +318,7 @@
"keyboard_shortcuts.column": "Focus column",
"keyboard_shortcuts.compose": "Focus compose textarea",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.direct": "to open private mentions column",
"keyboard_shortcuts.down": "Move down in the list",
"keyboard_shortcuts.enter": "Open post",
"keyboard_shortcuts.favourite": "Favourite post",
@ -380,7 +380,7 @@
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Direct messages",
"navigation_bar.direct": "Private mentions",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
@ -562,7 +562,8 @@
"status.copy": "Copy link to post",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct": "Privately mention @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Forigi",
"status.detailed_status": "Detala konversacia vido",
"status.direct": "Rekte mesaĝi @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Redakti",
"status.edited": "Redaktita {date}",
"status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}",

@ -558,6 +558,7 @@
"status.delete": "Eliminar",
"status.detailed_status": "Vista de conversación detallada",
"status.direct": "Mensaje directo para @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Editar",
"status.edited": "Editado {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",

@ -558,6 +558,7 @@
"status.delete": "Borrar",
"status.detailed_status": "Vista de conversación detallada",
"status.direct": "Enviar mensaje a @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Editar",
"status.edited": "Editado {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}",

@ -558,6 +558,7 @@
"status.delete": "Borrar",
"status.detailed_status": "Vista de conversación detallada",
"status.direct": "Mensaje directo a @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Editar",
"status.edited": "Editado {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",

@ -491,7 +491,7 @@
"report.category.title_status": "postitusega",
"report.close": "Valmis",
"report.comment.title": "Kas arvad, et on veel midagi, mida me peaks teadma?",
"report.forward": "Edasta kasutajale {target}",
"report.forward": "Edasta ka {target} domeeni",
"report.forward_hint": "See kasutaja on teisest serverist. Kas saadan anonümiseeritud koopia sellest teatest sinna ka?",
"report.mute": "Vaigista",
"report.mute_explanation": "Sa ei näe tema postitusi. Ta võib ikka sind jälgida ja su postitusi näha. Ta ei saa teada, et ta on vaigistatud.",
@ -558,6 +558,7 @@
"status.delete": "Kustuta",
"status.detailed_status": "Detailne vestluskuva",
"status.direct": "Saada otsesõnum @{name}'ile",
"status.direct_indicator": "Private mention",
"status.edit": "Muuda",
"status.edited": "{date} muudetud",
"status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}",

@ -558,6 +558,7 @@
"status.delete": "Ezabatu",
"status.detailed_status": "Elkarrizketaren ikuspegi xehetsua",
"status.direct": "Mezu zuzena @{name}(r)i",
"status.direct_indicator": "Private mention",
"status.edit": "Editatu",
"status.edited": "Editatua {date}",
"status.edited_x_times": "{count, plural, one {behin} other {{count} aldiz}} editatua",

@ -558,6 +558,7 @@
"status.delete": "حذف",
"status.detailed_status": "نمایش کامل گفتگو",
"status.direct": "پیام مستقیم به @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "ویرایش",
"status.edited": "ویرایش شده در {date}",
"status.edited_x_times": "{count, plural, one {{count} مرتبه} other {{count} مرتبه}} ویرایش شد",

@ -1,6 +1,6 @@
{
"about.blocks": "Moderoidut palvelimet",
"about.contact": "Yhteystiedot:",
"about.contact": "Ota yhteyttä:",
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
"about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu",
"about.domain_blocks.preamble": "Yleisesti Mastodonin avulla voidaan tarkastella minkä tahansa muun fediverse-palvelinten sisältöä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.",
@ -9,7 +9,7 @@
"about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",
"about.domain_blocks.suspended.title": "Jäädytetty",
"about.not_available": "Näitä tietoja ei ole julkaistu tällä palvelimella.",
"about.powered_by": "Hajautettu sosiaalinen media, tarjoaa {mastodon}",
"about.powered_by": "Hajautetun sosiaalisen median tarjoaa {mastodon}",
"about.rules": "Palvelimen säännöt",
"account.account_note_header": "Muistiinpano",
"account.add_or_remove_from_list": "Lisää tai poista listoilta",
@ -21,8 +21,8 @@
"account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
"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 estetty",
"account.disable_notifications": "Lopeta ilmoittamasta minulle, kun @{name} julkaisee",
"account.domain_blocked": "Palvelu estetty",
"account.edit_profile": "Muokkaa profiilia",
"account.enable_notifications": "Ilmoita kun käyttäjä @{name} julkaisee viestin",
"account.endorse": "Suosittele profiilissasi",
@ -50,7 +50,7 @@
"account.mute_notifications": "Mykistä käyttäjän @{name} ilmoitukset",
"account.muted": "Mykistetty",
"account.open_original_page": "Avaa alkuperäinen sivu",
"account.posts": "Viestit",
"account.posts": "Julkaisut",
"account.posts_with_replies": "Viestit ja vastaukset",
"account.report": "Ilmoita käyttäjästä @{name}",
"account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla",
@ -58,7 +58,7 @@
"account.share": "Jaa käyttäjän @{name} profiili",
"account.show_reblogs": "Näytä tehostukset käyttäjältä @{name}",
"account.statuses_counter": "{count, plural, one {{counter} viesti} other {{counter} viestiä}}",
"account.unblock": "Salli @{name}",
"account.unblock": "Poista esto: @{name}",
"account.unblock_domain": "Salli palvelu {domain}",
"account.unblock_short": "Poista esto",
"account.unendorse": "Poista suosittelu profiilistasi",
@ -104,7 +104,7 @@
"column.community": "Paikallinen aikajana",
"column.direct": "Yksityisviestit",
"column.directory": "Selaa profiileja",
"column.domain_blocks": "Estetytr verkkotunnukset",
"column.domain_blocks": "Estetyt palvelut",
"column.favourites": "Suosikit",
"column.follow_requests": "Seuraamispyynnöt",
"column.home": "Koti",
@ -149,7 +149,7 @@
"compose_form.spoiler.unmarked": "Lisää sisältövaroitus",
"compose_form.spoiler_placeholder": "Kirjoita varoituksesi tähän",
"confirmation_modal.cancel": "Peruuta",
"confirmations.block.block_and_report": "Estä ja raportoi",
"confirmations.block.block_and_report": "Estä ja ilmianna",
"confirmations.block.confirm": "Estä",
"confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?",
"confirmations.cancel_follow_request.confirm": "Peruuta pyyntö",
@ -163,7 +163,7 @@
"confirmations.domain_block.confirm": "Estä koko palvelu",
"confirmations.domain_block.message": "Haluatko aivan varmasti estää palvelun {domain} täysin? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimenpide. Et näe kyseisen sisältöä kyseiseltä verkkoalueelta missään julkisissa aikajanoissa tai ilmoituksissa. Tälle verkkoalueelle kuuluvat seuraajasi poistetaan.",
"confirmations.edit.confirm": "Muokkaa",
"confirmations.edit.message": "Tässä tilanteessa muokkaus korvaa tällä hetkellä työstämäsi viestin. Haluatko varmasti jatkaa?",
"confirmations.edit.message": "Muokkaaminen nyt korvaa viestin, jota paraikaa työstät. Haluatko varmasti jatkaa?",
"confirmations.logout.confirm": "Kirjaudu ulos",
"confirmations.logout.message": "Haluatko varmasti kirjautua ulos?",
"confirmations.mute.confirm": "Mykistä",
@ -210,15 +210,15 @@
"emoji_button.search_results": "Hakutulokset",
"emoji_button.symbols": "Symbolit",
"emoji_button.travel": "Matkailu ja paikat",
"empty_column.account_suspended": "Tilin käyttäminen jäädytetty",
"empty_column.account_suspended": "Tili jäädytetty",
"empty_column.account_timeline": "Ei viestejä täällä.",
"empty_column.account_unavailable": "Profiilia ei löydy",
"empty_column.blocks": "Et ole vielä estänyt käyttäjiä.",
"empty_column.blocks": "Et ole estänyt käyttäjiä.",
"empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
"empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
"empty_column.direct": "Sinulla ei ole vielä yksityisviestejä. Kun lähetät tai vastaanotat sellaisen, se näkyy tässä.",
"empty_column.domain_blocks": "Palveluita ei ole vielä estetty.",
"empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!",
"empty_column.explore_statuses": "Mikään ei trendaa nyt. Tarkista myöhemmin uudelleen!",
"empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
"empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä viestiä suosikkeihinsa. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
"empty_column.follow_recommendations": "Näyttää siltä, että sinulle ei voi luoda ehdotuksia. Voit yrittää etsiä ihmisiä, jotka saatat tuntea tai tutkia trendaavia aihetunnisteita.",
@ -230,8 +230,8 @@
"empty_column.list": "Tässä luettelossa ei ole vielä mitään. Kun tämän luettelon jäsenet julkaisevat uusia viestejä, ne näkyvät täällä.",
"empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.",
"empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
"empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun muut ihmiset ovat vuorovaikutuksessa kanssasi, näet sen täällä.",
"empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti tai manuaalisesti seuraa muiden palvelimien käyttäjiä niin saat sisältöä",
"empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.",
"empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä",
"error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
"error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
"error.unexpected_crash.next_steps": "Kokeile sivun päivitystä. Jos se ei auta, voi Mastodonin käyttö silti olla mahdollista eri selaimella tai natiivilla sovelluksella.",
@ -242,7 +242,7 @@
"explore.suggested_follows": "Sinulle",
"explore.title": "Selaa",
"explore.trending_links": "Uutiset",
"explore.trending_statuses": "Viestit",
"explore.trending_statuses": "Julkaisut",
"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ää!",
@ -265,7 +265,7 @@
"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": "Vaikkei tiliäsi ole lukittu, palvelun {domain} ylläpito on arvioinut, että voi olla halukas tarkistamaan nämä seurauspyynnöt erikseen.",
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, on palvelun {domain} ylläpito arvioinut, että saatat olla halukas tarkistamaan nämä seurauspyynnöt erikseen.",
"followed_tags": "Seuratut aihetunnisteet",
"footer.about": "Tietoja",
"footer.directory": "Profiilihakemisto",
@ -316,7 +316,7 @@
"keyboard_shortcuts.description": "Kuvaus",
"keyboard_shortcuts.direct": "avataksesi yksityisviestisarakkeen",
"keyboard_shortcuts.down": "Siirry listassa alaspäin",
"keyboard_shortcuts.enter": "Avaa viesti",
"keyboard_shortcuts.enter": "Avaa julkaisu",
"keyboard_shortcuts.favourite": "Lisää suosikkeihin",
"keyboard_shortcuts.favourites": "Avaa lista suosikeista",
"keyboard_shortcuts.federated": "Avaa yleinen aikajana",
@ -328,7 +328,7 @@
"keyboard_shortcuts.mention": "Mainitse julkaisija",
"keyboard_shortcuts.muted": "Avaa lista mykistetyistä käyttäjistä",
"keyboard_shortcuts.my_profile": "Avaa profiilisi",
"keyboard_shortcuts.notifications": "Avaa ilmoitukset-sarake",
"keyboard_shortcuts.notifications": "Avaa ilmoitukset-valikko",
"keyboard_shortcuts.open_media": "Avaa media",
"keyboard_shortcuts.pinned": "Avaa lista kiinnitetyistä viesteistä",
"keyboard_shortcuts.profile": "Avaa kirjoittajan profiili",
@ -336,10 +336,10 @@
"keyboard_shortcuts.requests": "Avaa lista seurauspyynnöistä",
"keyboard_shortcuts.search": "siirry hakukenttään",
"keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä",
"keyboard_shortcuts.start": "avaa \"Aloitus\"-sarake",
"keyboard_shortcuts.start": "avaa \"Aloitus\"",
"keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti",
"keyboard_shortcuts.toggle_sensitivity": "näytä/piilota media",
"keyboard_shortcuts.toot": "Aloita uusi viesti",
"keyboard_shortcuts.toot": "Luo uusi julkaisu",
"keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä",
"keyboard_shortcuts.up": "Siirry listassa ylöspäin",
"lightbox.close": "Sulje",
@ -375,7 +375,7 @@
"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.compose": "Julkaise",
"navigation_bar.direct": "Yksityisviestit",
"navigation_bar.discover": "Löydä uutta",
"navigation_bar.domain_blocks": "Estetyt palvelut",
@ -395,10 +395,10 @@
"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}",
"not_signed_in_indicator.not_signed_in": "Sinun tulee kirjautua sisään nähdäksesi tämän.",
"notification.admin.report": "{name} teki ilmoituksen käytäjästä {target}",
"notification.admin.sign_up": "{name} rekisteröityi",
"notification.favourite": "{name} tykkäsi viestistäsi",
"notification.favourite": "{name} tykkäsi julkaisustasi",
"notification.follow": "{name} seurasi sinua",
"notification.follow_request": "{name} haluaa seurata sinua",
"notification.mention": "{name} mainitsi sinut",
@ -409,7 +409,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.report": "Uudet ilmoitukset:",
"notifications.column_settings.admin.sign_up": "Uudet kirjautumiset:",
"notifications.column_settings.alert": "Työpöytäilmoitukset",
"notifications.column_settings.favourite": "Tykkäykset:",
@ -424,7 +424,7 @@
"notifications.column_settings.reblog": "Tehostukset:",
"notifications.column_settings.show": "Näytä sarakkeessa",
"notifications.column_settings.sound": "Äänimerkki",
"notifications.column_settings.status": "Uudet viestit:",
"notifications.column_settings.status": "Uudet julkaisut:",
"notifications.column_settings.unread_notifications.category": "Lukemattomat ilmoitukset",
"notifications.column_settings.unread_notifications.highlight": "Korosta lukemattomat ilmoitukset",
"notifications.column_settings.update": "Muokkaukset:",
@ -474,32 +474,32 @@
"relative_time.full.just_now": "juuri nyt",
"relative_time.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} sitten",
"relative_time.full.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} sitten",
"relative_time.hours": "{number} tuntia",
"relative_time.hours": "{number} t",
"relative_time.just_now": "nyt",
"relative_time.minutes": "{number} min",
"relative_time.seconds": "{number} sek",
"relative_time.seconds": "{number} s",
"relative_time.today": "tänään",
"reply_indicator.cancel": "Peruuta",
"report.block": "Estä",
"report.block_explanation": "Et näe heidän viestejään, eivätkä he voi nähdä viestejäsi tai seurata sinua. He näkevät, että heidät on estetty.",
"report.categories.other": "Muu",
"report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkevät, että olet estänyt hänet.",
"report.categories.other": "muu",
"report.categories.spam": "Roskaposti",
"report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen sääntöä",
"report.category.subtitle": "Valitse paras vastaavuus",
"report.category.title": "Kerro meille miksi tämä {type} pitää raportoida",
"report.category.subtitle": "Valitse se, mikä sopii parhaiten",
"report.category.title": "Kerro meille, miksi ilmiannat tämän: {type} ",
"report.category.title_account": "profiili",
"report.category.title_status": "viesti",
"report.category.title_status": "julkaisu",
"report.close": "Valmis",
"report.comment.title": "Pitäisikö meidän tietää jotain muuta?",
"report.comment.title": "Olisiko jotain muuta, mitä meidän pitäisi tietää?",
"report.forward": "Välitä kohteeseen {target}",
"report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?",
"report.mute": "Mykistä",
"report.mute_explanation": "Et näe heidän viestejään. He voivat silti seurata sinua ja nähdä viestisi eivätkä tiedä, että heidät on mykistetty.",
"report.mute_explanation": "Et näe hänen viestejään. Hän voi silti seurata sinua ja nähdä viestisi. Hän ei tiedä, että on mykistetty.",
"report.next": "Seuraava",
"report.placeholder": "Lisäkommentit",
"report.reasons.dislike": "En pidä siitä",
"report.reasons.dislike_description": "Et halua nähdä sitä",
"report.reasons.other": "Se on jotain muuta",
"report.reasons.other": "Jotain muuta",
"report.reasons.other_description": "Ongelma ei sovi muihin kategorioihin",
"report.reasons.spam": "Se on roskapostia",
"report.reasons.spam_description": "Haitalliset linkit, väärennetyt sitoutumiset tai toistuvat vastaukset",
@ -507,27 +507,27 @@
"report.reasons.violation_description": "Tiedät, että se rikkoo tiettyjä sääntöjä",
"report.rules.subtitle": "Valitse kaikki jotka sopivat",
"report.rules.title": "Mitä sääntöjä rikotaan?",
"report.statuses.subtitle": "Valitse kaikki jotka sopivat",
"report.statuses.subtitle": "Valitse kaikki sopivat",
"report.statuses.title": "Onko olemassa yhtään viestiä, jotka tukevat tätä raporttia?",
"report.submit": "Lähetä",
"report.target": "Raportoidaan {target}",
"report.thanks.take_action": "Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:",
"report.thanks.take_action_actionable": "Sillä välin kun tarkistamme tätä, voit ryhtyä toimenpiteisiin käyttäjää @{name} vastaan:",
"report.thanks.title": "Etkö halua nähdä tätä?",
"report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.",
"report.thanks.title_actionable": "Kiitos ilmoituksesta, tarkistamme asian.",
"report.unfollow": "Lopeta käyttäjän @{name} seuraaminen",
"report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näe tilin viestejä, lopeta tilin seuraaminen.",
"report_notification.attached_statuses": "{count, plural, one {{count} viesti} 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",
"report_notification.open": "Avaa ilmoitus",
"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, tehostanut tai joissa sinut mainitaan, sekä tekstin sisältävät käyttäjänimet, nimimerkit ja aihetunnisteet.",
"search_popout.tips.hashtag": "aihetunnisteet",
"search_popout.tips.status": "viesti",
"search_popout.tips.status": "julkaisu",
"search_popout.tips.text": "Tekstihaku listaa hakua vastaavat nimimerkit, käyttäjänimet ja aihetunnisteet",
"search_popout.tips.user": "käyttäjä",
"search_results.accounts": "Ihmiset",
@ -558,6 +558,7 @@
"status.delete": "Poista",
"status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
"status.direct": "Yksityisviesti käyttäjälle @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Muokkaa",
"status.edited": "Muokattu {date}",
"status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}",
@ -576,7 +577,7 @@
"status.mute_conversation": "Mykistä keskustelu",
"status.open": "Laajenna julkaisu",
"status.pin": "Kiinnitä profiiliin",
"status.pinned": "Kiinnitetty viesti",
"status.pinned": "Kiinnitetty julkaisu",
"status.read_more": "Näytä enemmän",
"status.reblog": "Tehosta",
"status.reblog_private": "Tehosta alkuperäiselle yleisölle",
@ -597,7 +598,7 @@
"status.show_more_all": "Näytä lisää kaikista",
"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.translated_from_with": "Käännetty kielestä {lang} käyttäen {provider}",
"status.uncached_media_warning": "Ei saatavilla",
"status.unmute_conversation": "Poista keskustelun mykistys",
"status.unpin": "Irrota profiilista",

@ -558,6 +558,7 @@
"status.delete": "Strika",
"status.detailed_status": "Útgreinað samrøðusýni",
"status.direct": "Beinleiðis boð @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Rætta",
"status.edited": "Rættað {date}",
"status.edited_x_times": "Rættað {count, plural, one {{count} ferð} other {{count} ferð}}",

@ -558,6 +558,7 @@
"status.delete": "Supprimer",
"status.detailed_status": "Vue détaillée de la conversation",
"status.direct": "Envoyer un message direct à @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Modifier",
"status.edited": "Modifiée le {date}",
"status.edited_x_times": "Modifiée {count, plural, one {{count} fois} other {{count} fois}}",

@ -558,6 +558,7 @@
"status.delete": "Supprimer",
"status.detailed_status": "Vue détaillée de la conversation",
"status.direct": "Envoyer un message direct à @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Éditer",
"status.edited": "Édité le {date}",
"status.edited_x_times": "Edité {count, plural, one {{count} fois} other {{count} fois}}",

@ -558,6 +558,7 @@
"status.delete": "Fuortsmite",
"status.detailed_status": "Detaillearre petearoersjoch",
"status.direct": "@{name} in direkt berjocht stjoere",
"status.direct_indicator": "Private mention",
"status.edit": "Bewurkje",
"status.edited": "Bewurke op {date}",
"status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke",

@ -558,6 +558,7 @@
"status.delete": "Scrios",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Seol teachtaireacht dhíreach chuig @{name}",
"status.direct_indicator": "Private mention",
"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}}",

@ -558,6 +558,7 @@
"status.delete": "Sguab às",
"status.detailed_status": "Mion-shealladh a’ chòmhraidh",
"status.direct": "Cuir teachdaireachd dhìreach gu @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Deasaich",
"status.edited": "Air a dheasachadh {date}",
"status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{counter} turas} two {{counter} thuras} few {{counter} tursan} other {{counter} turas}}",

@ -558,6 +558,7 @@
"status.delete": "Eliminar",
"status.detailed_status": "Vista detallada da conversa",
"status.direct": "Mensaxe directa a @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Editar",
"status.edited": "Editado {date}",
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",

@ -153,7 +153,7 @@
"confirmations.block.confirm": "לחסום",
"confirmations.block.message": "האם את/ה בטוח/ה שברצונך למחוק את \"{name}\"?",
"confirmations.cancel_follow_request.confirm": "ויתור על בקשה",
"confirmations.cancel_follow_request.message": "האם באמת לוותר על בקשת המעקב אחרי {name}?",
"confirmations.cancel_follow_request.message": "לבטל את בקשת המעקב אחרי {name}?",
"confirmations.delete.confirm": "למחוק",
"confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?",
"confirmations.delete_list.confirm": "למחוק",
@ -163,7 +163,7 @@
"confirmations.domain_block.confirm": "חסמו לגמרי את שם המתחם (דומיין)",
"confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו",
"confirmations.edit.confirm": "עריכה",
"confirmations.edit.message": "עריכת תגובה קודמת תדרוס את ההודעה שכבר התחלת לכתוב. האם את.ה בטוח.ה שברצונך להמשיך?",
"confirmations.edit.message": "עריכה תדרוס את ההודעה שכבר התחלת לכתוב. האם להמשיך?",
"confirmations.logout.confirm": "התנתקות",
"confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?",
"confirmations.mute.confirm": "להשתיק",
@ -172,7 +172,7 @@
"confirmations.redraft.confirm": "מחיקה ועריכה מחדש",
"confirmations.redraft.message": "בטוחה שאת רוצה למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.",
"confirmations.reply.confirm": "תגובה",
"confirmations.reply.message": "תגובה עכשיו תדרוס את ההודעה שכבר התחלתים לכתוב. האם אתם בטוחים שברצונכם להמשיך?",
"confirmations.reply.message": "תגובה עכשיו תמחק את ההודעה שכבר התחלת לכתוב. להמשיך?",
"confirmations.unfollow.confirm": "הפסקת מעקב",
"confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?",
"conversation.delete": "מחיקת שיחה",
@ -558,6 +558,7 @@
"status.delete": "מחיקה",
"status.detailed_status": "תצוגת שיחה מפורטת",
"status.direct": "הודעה ישירה ל@{name}",
"status.direct_indicator": "Private mention",
"status.edit": "עריכה",
"status.edited": "נערך ב{date}",
"status.edited_x_times": "נערך {count, plural, one {פעם {count}} other {{count} פעמים}}",

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Obriši",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Uredi",
"status.edited": "Uređeno {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -34,7 +34,7 @@
"account.followers.empty": "Ezt a felhasználót még senki sem követi.",
"account.followers_counter": "{count, plural, one {{counter} Követő} other {{counter} Követő}}",
"account.following": "Követve",
"account.following_counter": "{count, plural, one {{counter} Követett} other {{counter} Követett}}",
"account.following_counter": "{count, plural, one {{counter} követett} 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",
@ -53,8 +53,8 @@
"account.posts": "Bejegyzések",
"account.posts_with_replies": "Bejegyzések és válaszok",
"account.report": "@{name} jelentése",
"account.requested": "Jóváhagysára vár. Kattints a követési kérés visszavonásához",
"account.requested_follow": "{name} kérte, hogy követhessen téged",
"account.requested": "Jóváhagysára vár. Kattintás a követési kérés törléséhez",
"account.requested_follow": "{name} kérte, hogy követhessen",
"account.share": "@{name} profiljának megosztása",
"account.show_reblogs": "@{name} megtolásainak mutatása",
"account.statuses_counter": "{count, plural, one {{counter} Bejegyzés} other {{counter} Bejegyzés}}",
@ -66,7 +66,7 @@
"account.unmute": "@{name} némításának feloldása",
"account.unmute_notifications": "@{name} némított értesítéseinek feloldása",
"account.unmute_short": "Némitás feloldása",
"account_note.placeholder": "Kattints jegyzet hozzáadásához",
"account_note.placeholder": "Kattintás jegyzet hozzáadásához",
"admin.dashboard.daily_retention": "Napi regisztráció utáni felhasználómegtartási arány",
"admin.dashboard.monthly_retention": "Havi regisztráció utáni felhasználómegtartási arány",
"admin.dashboard.retention.average": "Átlag",
@ -96,7 +96,7 @@
"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.preamble": "A Mastodon nem központosított, így teljesen mindegy, hol történik a fiók létrehozása, követhető bárki és kapcsolatba lehet lépni bárkivel ezen a kiszolgálón is. Saját magunk is üzemeltethetünk kiszolgálót!",
"closed_registrations_modal.title": "Regisztráció a Mastodonra",
"column.about": "Névjegy",
"column.blocks": "Letiltott felhasználók",
@ -131,7 +131,7 @@
"compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel nem nyilvános. 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",
"compose_form.placeholder": "Mi jár a fejedben?",
"compose_form.placeholder": "Mire gondolunk éppen?",
"compose_form.poll.add_option": "Lehetőség hozzáadása",
"compose_form.poll.duration": "Szavazás időtartama",
"compose_form.poll.option_placeholder": "{number}. lehetőség",
@ -145,25 +145,25 @@
"compose_form.sensitive.hide": "{count, plural, one {Média kényesnek jelölése} other {Média kényesnek jelölése}}",
"compose_form.sensitive.marked": "{count, plural, one {A médiát kényesnek jelölték} other {A médiát kényesnek jelölték}}",
"compose_form.sensitive.unmarked": "{count, plural, one {A médiát nem jelölték kényesnek} other {A médiát nem jelölték kényesnek}}",
"compose_form.spoiler.marked": "Tartalmi figyelmeztetés törlése",
"compose_form.spoiler.marked": "Tartalmi figyelmeztetés eltávolítása",
"compose_form.spoiler.unmarked": "Tartalmi figyelmeztetés hozzáadása",
"compose_form.spoiler_placeholder": "Írd ide a figyelmeztetést",
"confirmation_modal.cancel": "Mégse",
"compose_form.spoiler_placeholder": "A figyelmeztetés beírása ide",
"confirmation_modal.cancel": "Mégsem",
"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.cancel_follow_request.message": "Biztosan visszavonásra kerüljön {name} felhasználóra vonatkozó követési kérés?",
"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",
"confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?",
"confirmations.discard_edit_media.confirm": "Elvetés",
"confirmations.discard_edit_media.message": "Elmentetlen változtatásaid vannak a média leírásában vagy előnézetében. Eldobjuk őket?",
"confirmations.domain_block.confirm": "Teljes domain elrejtése",
"confirmations.discard_edit_media.message": "Elmentetlen változtatások vannak a média leírásában vagy előnézetében. Elvetésre kerüljenek?",
"confirmations.domain_block.confirm": "Teljes tartomány tiltása",
"confirmations.domain_block.message": "Biztos, hogy le szeretnéd tiltani a teljes {domain} domaint? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő, és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se az idővonalakon, se az értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.",
"confirmations.edit.confirm": "Szerkesztés",
"confirmations.edit.message": "Ha most szerkeszted, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
"confirmations.edit.message": "A szerkesztés felülírja a most összeállítás alatt álló üzenetet. Folytatás?",
"confirmations.logout.confirm": "Kijelentkezés",
"confirmations.logout.message": "Biztos, hogy kijelentkezel?",
"confirmations.mute.confirm": "Némítás",
@ -178,21 +178,21 @@
"conversation.delete": "Beszélgetés törlése",
"conversation.mark_as_read": "Megjelölés olvasottként",
"conversation.open": "Beszélgetés megtekintése",
"conversation.with": "{names}-el/al",
"conversation.with": "{names} is",
"copypaste.copied": "Másolva",
"copypaste.copy": "Másolás",
"directory.federated": "Az ismert fediverzumból",
"directory.local": "Csak innen: {domain}",
"directory.local": "Csak {domain} tartományból",
"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.",
"disabled_account_banner.text": "{disabledAccount} fiók jelenleg letilzásra került.",
"dismissable_banner.community_timeline": "Ezek a legfrissebb nyilvános bejegyzések, amelyeket {domain} tartományban levő kiszolgáló fiókjait használó emberek tettek közzé.",
"dismissable_banner.dismiss": "Elvetés",
"dismissable_banner.explore_links": "Jelenleg ezekről a hírekről beszélgetnek az ezen és a központosítás nélküli 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 központosítás nélküli hálózat egyéb kiszolgálóin.",
"dismissable_banner.explore_tags": "Jelenleg ezek a #címke elemek hódítanak teret ezen és a központosítás nélküli 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 központosítás nélküli 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",
@ -210,67 +210,67 @@
"emoji_button.search_results": "Keresési találatok",
"emoji_button.symbols": "Szimbólumok",
"emoji_button.travel": "Utazás és Helyek",
"empty_column.account_suspended": "Fiók felfüggesztve",
"empty_column.account_suspended": "A fiók felfüggesztésre került",
"empty_column.account_timeline": "Itt nincs bejegyzés!",
"empty_column.account_unavailable": "A profil nem érhető el",
"empty_column.blocks": "Még senkit sem tiltottál le.",
"empty_column.blocks": "Még senki sem került letiltásra.",
"empty_column.bookmarked_statuses": "Még nincs egyetlen könyvjelzőzött bejegyzésed sem. Ha könyvjelzőzöl egyet, itt fog megjelenni.",
"empty_column.community": "A helyi idővonal üres. Tégy közzé valamit nyilvánosan, hogy elindítsd az eseményeket!",
"empty_column.direct": "Még nincs egy közvetlen üzeneted sem. Ha küldesz vagy kapsz egyet, itt fog megjelenni.",
"empty_column.domain_blocks": "Még nem rejtettél el egyetlen domaint sem.",
"empty_column.direct": "Még nincs egy közvetlen üzenet sem. Küldéskor vagy fogadáskor itt fog megjelenni.",
"empty_column.domain_blocks": "Még nem lett letiltva egyetlen tartomány sem.",
"empty_column.explore_statuses": "Jelenleg semmi sem felkapott. Nézz vissza később!",
"empty_column.favourited_statuses": "Még nincs egyetlen kedvenc bejegyzésed sem. Ha kedvencnek jelölsz egyet, itt fog megjelenni.",
"empty_column.favourites": "Még senki sem jelölte ezt a bejegyzést kedvencnek. Ha valaki mégis megteszi, itt fogjuk mutatni.",
"empty_column.follow_recommendations": "Úgy tűnik, neked nem tudunk javaslatokat adni. Próbáld a keresést használni olyanok megtalálására, akiket ismerhetsz, vagy fedezd fel a felkapott hastageket.",
"empty_column.follow_requests": "Még nincs egy követési kérésed sem. Ha kapsz egyet, itt fogjuk feltüntetni.",
"empty_column.followed_tags": "Még egy hashtaget sem követtél be. Itt fognak megjelenni, ahogy bekövetsz egyet.",
"empty_column.hashtag": "Jelenleg nem található semmi ezzel a hashtaggel.",
"empty_column.home": "A saját idővonalad üres! Látogasd meg a {public} oldalt vagy használd a keresőt, hogy megismerj másokat.",
"empty_column.follow_requests": "Még nincs egy követési kérés sem. Fogadáskor itt jelenik meg.",
"empty_column.followed_tags": "Még egy #címke sincs követve. Ezek ekkor itt jelennek meg.",
"empty_column.hashtag": "Jelenleg nem található semmi ezzel a #címkével.",
"empty_column.home": "A saját idővonal üres! További emberek követése a kitöltéshez. {suggestions}",
"empty_column.home.suggestions": "Nézzünk pár javaslatot",
"empty_column.list": "A lista jelenleg üres. Ha a listatagok bejegyzést tesznek közzé, itt fog megjelenni.",
"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 kiszolgálón levő felhasználókat, hogy megtöltsd.",
"empty_column.lists": "Még nincs egyetlen lista sem. A létrehozáskor itt jelenik meg.",
"empty_column.mutes": "Még nincs egyetlen némított felhasználót sem.",
"empty_column.notifications": "Jelenleg nincsenek értesítések. Más emberekkel kapcsolatba lépés után ez itt lesz látható.",
"empty_column.public": "Jelenleg itt nincs semmi! Írjunk valamit nyilvánosan vagy kövessünk más kiszolgálón levő felhasználókat a megjelenéshez.",
"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.",
"error.unexpected_crash.next_steps_addons": "Próbáld letiltani őket és 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.",
"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ő kiegészítő vagy egy automatikus fordító okozza.",
"error.unexpected_crash.next_steps": "Próbáljuk meg frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használható a Mastodon.",
"error.unexpected_crash.next_steps_addons": "Próbáljuk meg letiltani őket és frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy alkalmazáson keresztül még mindig használható a Mastodon.",
"errors.unexpected_crash.copy_stacktrace": "Veremkiíratás vágólapra másolása",
"errors.unexpected_crash.report_issue": "Probléma jelentése",
"explore.search_results": "Keresési találatok",
"explore.suggested_follows": "Neked",
"explore.suggested_follows": "Nekem",
"explore.title": "Felfedezés",
"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.",
"explore.trending_tags": "#Címkék",
"filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből ez a bejegyzés elérésre kerül. Ha ebben a környezetben is szűrni szeretnénk a bejegyzést, akkor szerkeszteni 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.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítani kell a lejárati dátumot.",
"filter_modal.added.expired_title": "A szűrő lejárt!",
"filter_modal.added.review_and_configure": "A szűrőkategória felülvizsgálatához és további beállításához ugorás {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.added.title": "A szűrő hozzáadásra került.",
"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.expired": "lejárt",
"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.subtitle": "Létező kategória használata vagy új létrehozása",
"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.authorize": "Hitelesíté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.",
"followed_tags": "Követett hashtagek",
"followed_tags": "Követett #címkék",
"footer.about": "Névjegy",
"footer.directory": "Profilok",
"footer.get_app": "Töltsd le az appot",
"footer.invite": "Mások meghívása",
"footer.directory": "Profiltár",
"footer.get_app": "Alkalmazás beszerzése",
"footer.invite": "Emberek meghívása",
"footer.keyboard_shortcuts": "Billentyűparancsok",
"footer.privacy_policy": "Adatvédelmi szabályzat",
"footer.source_code": "Forráskód megtekintése",
@ -281,11 +281,11 @@
"hashtag.column_header.tag_mode.any": "vagy {additional}",
"hashtag.column_header.tag_mode.none": "{additional} nélkül",
"hashtag.column_settings.select.no_options_message": "Nincs javaslat",
"hashtag.column_settings.select.placeholder": "Addj meg hashtageket…",
"hashtag.column_settings.select.placeholder": "#Címkék megadása…",
"hashtag.column_settings.tag_mode.all": "Mindegyik",
"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.column_settings.tag_toggle": "További 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ő",
@ -293,14 +293,14 @@
"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.description.favourite": "Egy Mastodon fiókkal kedvencnek jelölhető ez a bejegyzés, tudatva a szerzővel, hogy értékeljük és eltesszük későbbre.",
"interaction_modal.description.follow": "Egy Mastodon fiókkal bekövethető {name} fiók a bejegyzései megjelenítéséhez a saját hírfolyamban.",
"interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolható ez a bejegyzés a saját követőkkel megosztáshoz.",
"interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatunk 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.other_server_instructions": "Másoljuk és illesszük be ezt a webcímet a kedvenc Mastodon alkalmazásd vagy a Mastodon kiszolgáló webes felületének keresőmezőjébe.",
"interaction_modal.preamble": "Mivel a Mastodon nem központosított, használható egy másik Mastodon kiszolgálón vagy kompatibilis szolgáltatáson lévő fiók, ha ezen a kiszolgálón nincs saját fiók.",
"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",
@ -308,47 +308,47 @@
"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}}",
"keyboard_shortcuts.back": "visszafelé navigálás",
"keyboard_shortcuts.blocked": "letiltott felhasználók listájának megnyitása",
"keyboard_shortcuts.back": "Navigálás vissza",
"keyboard_shortcuts.blocked": "Letiltott felhasználók listájának megnyitása",
"keyboard_shortcuts.boost": "Bejegyzés megtolása",
"keyboard_shortcuts.column": "Fókuszálás egy oszlopra",
"keyboard_shortcuts.compose": "fókuszálás a szerkesztési szövegdobozra",
"keyboard_shortcuts.compose": "Szerkesztési terület fókuszálása",
"keyboard_shortcuts.description": "Leírás",
"keyboard_shortcuts.direct": "közvetlen üzenetek megnyitása",
"keyboard_shortcuts.down": "lefele navigálás a listában",
"keyboard_shortcuts.down": "Mozgás lefelé a listában",
"keyboard_shortcuts.enter": "Bejegyzés megnyitása",
"keyboard_shortcuts.favourite": "Bejegyzés kedvencnek jelölése",
"keyboard_shortcuts.favourites": "kedvenc lista megnyitása",
"keyboard_shortcuts.favourites": "Kedvencek lista megnyitása",
"keyboard_shortcuts.federated": "föderációs idővonal megnyitása",
"keyboard_shortcuts.heading": "Billentyűparancsok",
"keyboard_shortcuts.home": "saját idővonal megnyitása",
"keyboard_shortcuts.home": "Saját idővonal megnyitása",
"keyboard_shortcuts.hotkey": "Gyorsbillentyű",
"keyboard_shortcuts.legend": "jelmagyarázat megjelenítése",
"keyboard_shortcuts.local": "helyi idővonal megnyitása",
"keyboard_shortcuts.mention": "szerző megemlítése",
"keyboard_shortcuts.mention": "Szerző megemlítése",
"keyboard_shortcuts.muted": "némított felhasználók listájának megnyitása",
"keyboard_shortcuts.my_profile": "profilod megnyitása",
"keyboard_shortcuts.notifications": "értesítések megnyitása",
"keyboard_shortcuts.open_media": "média megnyitása",
"keyboard_shortcuts.my_profile": "Saját profil megnyitása",
"keyboard_shortcuts.notifications": "Értesítések oszlop megnyitása",
"keyboard_shortcuts.open_media": "Média megnyitása",
"keyboard_shortcuts.pinned": "Kitűzött bejegyzések listájának megnyitása",
"keyboard_shortcuts.profile": "szerző profiljának megnyitása",
"keyboard_shortcuts.profile": "Szerző profil megnyitása",
"keyboard_shortcuts.reply": "Válasz bejegyzésre",
"keyboard_shortcuts.requests": "követési kérések listájának megnyitása",
"keyboard_shortcuts.search": "fókuszálás a keresőre",
"keyboard_shortcuts.requests": "Követési kérések lista megnyitása",
"keyboard_shortcuts.search": "Keresősáv fókuszálása",
"keyboard_shortcuts.spoilers": "Tartalmi figyelmeztetés mező megjelenítése/elrejtése",
"keyboard_shortcuts.start": "\"Első lépések\" megnyitása",
"keyboard_shortcuts.toggle_hidden": "Tartalmi figyelmeztetéssel ellátott szöveg megjelenítése/elrejtése",
"keyboard_shortcuts.start": "\"Első lépések\" oszlop megnyitása",
"keyboard_shortcuts.toggle_hidden": "Tartalmi figyelmeztetéssel mögötti szöveg megjelenítése/elrejtése",
"keyboard_shortcuts.toggle_sensitivity": "Média megjelenítése/elrejtése",
"keyboard_shortcuts.toot": "Új bejegyzés írása",
"keyboard_shortcuts.unfocus": "Szerkesztés/keresés fókuszból való kivétele",
"keyboard_shortcuts.up": "felfelé mozdítás a listában",
"keyboard_shortcuts.up": "Mozgás felfelé a listában",
"lightbox.close": "Bezárás",
"lightbox.compress": "Képnézet összecsukása",
"lightbox.expand": "Képnézet kinagyítása",
"lightbox.compress": "Képnéző doboz összezárása",
"lightbox.expand": "Képnéző doboz kinyitása",
"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(z) {domain} moderátorai elrejtették.",
"limited_account_hint.action": "Profil megjelenítése mindenképpen",
"limited_account_hint.title": "Ezt a profilt {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",
@ -359,17 +359,17 @@
"lists.replies_policy.followed": "Bármely követett felhasználó",
"lists.replies_policy.list": "A lista tagjai",
"lists.replies_policy.none": "Senki",
"lists.replies_policy.title": "Nekik mutassuk a válaszokat:",
"lists.replies_policy.title": "Válaszok megjelenítése:",
"lists.search": "Keresés a követett személyek között",
"lists.subheading": "Listáid",
"lists.subheading": "Saját listák",
"load_pending": "{count, plural, one {# új elem} other {# új elem}}",
"loading_indicator.label": "Betöltés...",
"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}.",
"moved_to_account_banner.text": "{disabledAccount} fiók jelenleg le van tiltva, mert más {movedToAccount} fiókba került át.",
"mute_modal.duration": "Időtartam",
"mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?",
"mute_modal.hide_notifications": "Értesítések elrejtése ettől a felhasználótól?",
"mute_modal.indefinite": "Határozatlan",
"navigation_bar.about": "Névjegy",
"navigation_bar.blocks": "Letiltott felhasználók",
@ -378,13 +378,13 @@
"navigation_bar.compose": "Új bejegyzés írása",
"navigation_bar.direct": "Közvetlen üzenetek",
"navigation_bar.discover": "Felfedezés",
"navigation_bar.domain_blocks": "Rejtett domainek",
"navigation_bar.domain_blocks": "Letiltott tartományok",
"navigation_bar.edit_profile": "Profil szerkesztése",
"navigation_bar.explore": "Felfedezés",
"navigation_bar.favourites": "Kedvencek",
"navigation_bar.filters": "Némított szavak",
"navigation_bar.follow_requests": "Követési kérelmek",
"navigation_bar.followed_tags": "Követett hashtagek",
"navigation_bar.followed_tags": "Követett #címkék",
"navigation_bar.follows_and_followers": "Követettek és követők",
"navigation_bar.lists": "Listák",
"navigation_bar.logout": "Kijelentkezés",
@ -395,15 +395,15 @@
"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.",
"not_signed_in_indicator.not_signed_in": "Az erőforrás eléréséhez be kell jelentkezni.",
"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",
"notification.follow_request": "{name} követni szeretne téged",
"notification.mention": "{name} megemlített",
"notification.own_poll": "A szavazásod véget ért",
"notification.poll": "Egy szavazás, melyben részt vettél, véget ért",
"notification.follow": "{name} követ engem",
"notification.follow_request": "{name} követni szeretne engem",
"notification.mention": "{name} megemlített engem",
"notification.own_poll": "A szavazás véget ért",
"notification.poll": "Egy általam részt vett szavazás véget ért",
"notification.reblog": "{name} megtolta a bejegyzésedet",
"notification.status": "{name} bejegyzést tett közzé",
"notification.update": "{name} szerkesztett egy bejegyzést",
@ -413,47 +413,47 @@
"notifications.column_settings.admin.sign_up": "Új regisztrálók:",
"notifications.column_settings.alert": "Asztali értesítések",
"notifications.column_settings.favourite": "Kedvencek:",
"notifications.column_settings.filter_bar.advanced": "Minden kategória megjelenítése",
"notifications.column_settings.filter_bar.category": "Gyorskereső mező",
"notifications.column_settings.filter_bar.show_bar": "Szűrősáv mutatása",
"notifications.column_settings.filter_bar.advanced": "Összes kategória megjelenítése",
"notifications.column_settings.filter_bar.category": "Gyorsszűrő sáv",
"notifications.column_settings.filter_bar.show_bar": "Szűrősáv megjelenítése",
"notifications.column_settings.follow": "Új követők:",
"notifications.column_settings.follow_request": "Új követési kérelmek:",
"notifications.column_settings.mention": "Megemlítések:",
"notifications.column_settings.poll": "Szavazás eredménye:",
"notifications.column_settings.poll": "Szavazási eredmények:",
"notifications.column_settings.push": "Push értesítések",
"notifications.column_settings.reblog": "Megtolások:",
"notifications.column_settings.show": "Oszlopban mutatás",
"notifications.column_settings.show": "Megjelenítés oszlopban",
"notifications.column_settings.sound": "Hang lejátszása",
"notifications.column_settings.status": "Új bejegyzések:",
"notifications.column_settings.unread_notifications.category": "Olvasatlan értesítések",
"notifications.column_settings.unread_notifications.highlight": "Olvasatlan értesítések kiemelése",
"notifications.column_settings.update": "Szerkesztések:",
"notifications.filter.all": "Mind",
"notifications.filter.all": "Összes",
"notifications.filter.boosts": "Megtolások",
"notifications.filter.favourites": "Kedvencnek jelölések",
"notifications.filter.favourites": "Kedvencek",
"notifications.filter.follows": "Követések",
"notifications.filter.mentions": "Megemlítések",
"notifications.filter.polls": "Szavazások eredményei",
"notifications.filter.statuses": "Frissítések azoktól, akiket követsz",
"notifications.grant_permission": "Engedély megadása.",
"notifications.group": "{count} értesítés",
"notifications.mark_as_read": "Minden értesítés olvasottnak jelölése",
"notifications.permission_denied": "Nem tudjuk engedélyezni az asztali értesítéseket, mert az engedélyt megtagadták.",
"notifications.permission_denied_alert": "Az asztali értesítések nem engedélyezhetőek, mert az engedélyt megtagadták a böngészőben",
"notifications.permission_required": "Az asztali értesítések nem elérhetőek, mert a szükséges engedélyt nem adtad meg.",
"notifications.mark_as_read": "Összes értesítés megjelölése olvasottként",
"notifications.permission_denied": "Az asztali értesítések nem érhetők el a korábban elutasított böngésző engedély kérelem miatt",
"notifications.permission_denied_alert": "Az asztali értesítések nem engedélyezhetők a korábban elutasított böngésző engedély miatt",
"notifications.permission_required": "Az asztali értesítések nem érhetők, mivel a szükséges engedély nem lett megadva.",
"notifications_permission_banner.enable": "Asztali értesítések engedélyezése",
"notifications_permission_banner.how_to_control": "Ahhoz, hogy értesítéseket kapj akkor, amikor a Mastodon nincs megnyitva, engedélyezd az asztali értesítéseket. Pontosan be tudod állítani, hogy milyen interakciókról értesülj a fenti {icon} gombon keresztül, ha egyszer már engedélyezted őket.",
"notifications_permission_banner.title": "Soha ne mulassz el semmit",
"picture_in_picture.restore": "Visszarakás",
"notifications_permission_banner.how_to_control": "Bezárt Mastononnál értesések fogadásához engedélyezni kell az asztali értesítéseket. Pontosan lehet vezérelni, hogy milyen interakciókról érkezzen értesítés fenti {icon} gombon keresztül, ha már lorábban megtörtént az engedélyezés.",
"notifications_permission_banner.title": "Soha ne mulasszunk el semmit",
"picture_in_picture.restore": "Visszahelyezés",
"poll.closed": "Lezárva",
"poll.refresh": "Frissítés",
"poll.total_people": "{count, plural, one {# személy} other {# személy}}",
"poll.total_votes": "{count, plural, one {# szavazat} other {# szavazat}}",
"poll.vote": "Szavazás",
"poll.voted": "Erre a válaszra szavaztál",
"poll.voted": "Megtörtént a szavazás erre a kérdésre",
"poll.votes": "{votes, plural, one {# szavazat} other {# szavazat}}",
"poll_button.add_poll": "Új szavazás",
"poll_button.remove_poll": "Szavazás törlése",
"poll_button.remove_poll": "Szavazás eltávolítása",
"privacy.change": "Bejegyzés láthatóságának módosítása",
"privacy.direct.long": "Csak a megemlített felhasználóknak látható",
"privacy.direct.short": "Csak megemlítetteknek",
@ -466,7 +466,7 @@
"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.label": "A betöltés folyamatban van…",
"regeneration_indicator.sublabel": "A saját idővonalad épp készül!",
"relative_time.days": "{number}n",
"relative_time.full.days": "{number, plural, one {# napja} other {# napja}}",
@ -481,7 +481,7 @@
"relative_time.today": "ma",
"reply_indicator.cancel": "Mégsem",
"report.block": "Letiltás",
"report.block_explanation": "Nem fogod látni a bejegyzéseit. Nem fogja tudni megnézni a bejegyzéseidet és nem fog tudni követni sem. Azt is meg fogja tudni mondani, hogy letiltottad.",
"report.block_explanation": "A bejegyzéseik nem áthatók. Nem nézheti meg a saját bejegyzéseimet és nem tudni követni sem. Azt is meg fogja tudni mondani, hogy letiltották.",
"report.categories.other": "Egyéb",
"report.categories.spam": "Kéretlen üzenet",
"report.categories.violation": "A tartalom a kiszolgáló egy vagy több szabályát sérti",
@ -492,11 +492,11 @@
"report.close": "Kész",
"report.comment.title": "Van valami, amiről tudnunk kellene?",
"report.forward": "Továbbítás: {target}",
"report.forward_hint": "Ez a fiók egy másik kiszolgálóról van. Oda is elküldöd a jelentés egy anonimizált másolatát?",
"report.forward_hint": "Ez a fiók egy másik kiszolgálóról van. Oda is elküldésre kerüljön a jelentés egy anonimizált másolata?",
"report.mute": "Némítás",
"report.mute_explanation": "Nem fogod látni a bejegyzéseit. Továbbra is fog tudni követni, és látni fogja a bejegyzéseidet, és nem fogja tudni, hogy némítottad.",
"report.next": "Következő",
"report.placeholder": "További megjegyzések",
"report.placeholder": "További hozzászólások",
"report.reasons.dislike": "Nem tetszik",
"report.reasons.dislike_description": "Ezt nem szeretném látni",
"report.reasons.other": "Valami más",
@ -512,7 +512,7 @@
"report.submit": "Küldés",
"report.target": "{target} jelentése",
"report.thanks.take_action": "Itt vannak a beállítások, melyek szabályozzák, hogy mit látsz a Mastodonon:",
"report.thanks.take_action_actionable": "Míg átnézzük, a következőket teheted @{name} ellen:",
"report.thanks.take_action_actionable": "Míg átnézzük, a következőket lehet tenni @{name} ellen:",
"report.thanks.title": "Nem akarod ezt látni?",
"report.thanks.title_actionable": "Köszönjük, hogy jelentetted, megnézzük.",
"report.unfollow": "@{name} követésének leállítása",
@ -523,32 +523,32 @@
"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.search_or_paste": "Keresés vagy webcím beillesztése",
"search_popout.search_format": "Bővített keresési forma",
"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",
"search_popout.tips.hashtag": "#címke",
"search_popout.tips.status": "bejegyzés",
"search_popout.tips.text": "Egyszerű szöveg. Illeszkedő megjelenített nevet, felhasználói nevet, hashtageket ad majd vissza",
"search_popout.tips.text": "Az egyszerű szöveg illeszkedő megjelenített nevet, felhasználónevet, #címkéket ad vissza",
"search_popout.tips.user": "felhasználó",
"search_results.accounts": "Emberek",
"search_results.all": "Összes",
"search_results.hashtags": "Hashtagek",
"search_results.hashtags": "#Címkék",
"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.about_active_users": "Az elmúlt 30 napban ezt a kiszolgálót használó emberek (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:",
"server_banner.introduction": "{domain} része egy központ nélküliközösségi hálónak, melyet a {mastodon} hajt meg.",
"server_banner.learn_more": "További információ",
"server_banner.server_stats": "Szerver 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, kedvencnek jelöléséhez, bejegyzések megosztásához, megválaszolásához. A fiókodból más kiszolgálókon is kommunikálhatsz.",
"sign_in_banner.text": "Jelentkezzünk be profilok vagy hashtagek követéséhez, kedvencnek jelöléséhez, bejegyzések megosztásához, megválaszolásához. A fiókból más kiszolgálókon is kommunikálhatunk.",
"status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz",
"status.admin_domain": "A következő moderációs felületének megnyitása: @{domain}",
"status.admin_domain": "Moderációs felület megnyitása {domain} esetében",
"status.admin_status": "Bejegyzés megnyitása a moderációs felületen",
"status.block": "@{name} letiltása",
"status.bookmark": "Könyvjelzőzés",
@ -558,6 +558,7 @@
"status.delete": "Törlés",
"status.detailed_status": "Részletes beszélgetési nézet",
"status.direct": "Közvetlen üzenet @{name} számára",
"status.direct_indicator": "Private mention",
"status.edit": "Szerkesztés",
"status.edited": "Szerkesztve: {date}",
"status.edited_x_times": "{count, plural, one {{count} alkalommal} other {{count} alkalommal}} szerkesztve",
@ -595,19 +596,19 @@
"status.show_less_all": "Kevesebbet mindenhol",
"status.show_more": "Többet",
"status.show_more_all": "Többet mindenhol",
"status.show_original": "Eredeti mutatása",
"status.show_original": "Eredeti megjelenítése",
"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.lead": "A változtatás után csak a kiválasztott nyelvű bejegyzések fognak megjelenni a kezdőoldalon és az idővonalakon. Ha egy sincs kiválasztva, akkor az összes nyelvű bejegyzések megjelennek.",
"subscribed_languages.save": "Változások mentése",
"subscribed_languages.target": "Feliratkozott nyelvek módosítása a következőnél: {target}",
"subscribed_languages.target": "Feliratkozott nyelvek módosítása {target} esetében",
"suggestions.dismiss": "Javaslat elvetése",
"suggestions.header": "Esetleg érdekelhet…",
"tabs_bar.federated_timeline": "Föderációs",
"tabs_bar.home": "Kezdőlap",
"suggestions.header": "Esetleg érdeklődésre tarthat számot…",
"tabs_bar.federated_timeline": "Összekapcsolt",
"tabs_bar.home": "Kezdőoldal",
"tabs_bar.local_timeline": "Helyi",
"tabs_bar.notifications": "Értesítések",
"time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra",
@ -621,29 +622,29 @@
"timeline_hint.resources.statuses": "Régi bejegyzések",
"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.",
"ui.beforeunload": "A vázlat elveszik a Mastodon elhagyásakor.",
"units.short.billion": "{count}Mrd",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Húzd ide a feltöltéshez",
"upload_button.label": "Média hozzáadása",
"upload_error.limit": "Túllépted a fájlfeltöltési korlátot.",
"upload_area.title": "Húzás a feltöltéshez",
"upload_button.label": "Képek, videó vagy audió fájl hozzáadása",
"upload_error.limit": "A fájlfeltöltési korlát elérésre került.",
"upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
"upload_form.audio_description": "Írja le a hallássérültek számára",
"upload_form.description": "Leírás látáskorlátozottak számára",
"upload_form.audio_description": "Leírás be a siket vagy hallássérült embereknek",
"upload_form.description": "Leírás be vak vagy gyengénlátó embereknek",
"upload_form.description_missing": "Nincs leírás megadva",
"upload_form.edit": "Szerkesztés",
"upload_form.thumbnail": "Előnézet megváltoztatása",
"upload_form.thumbnail": "Bélyegkép megváltoztatása",
"upload_form.undo": "Törlés",
"upload_form.video_description": "Írja le a hallás- vagy látássérültek számára",
"upload_form.video_description": "Leírás be a siket, hallássérült, vak vagy gyengénlátó embereknek",
"upload_modal.analyzing_picture": "Kép elemzése…",
"upload_modal.apply": "Alkalmaz",
"upload_modal.apply": "Alkalmazás",
"upload_modal.applying": "Alkalmazás…",
"upload_modal.choose_image": "Kép kiválasztása",
"upload_modal.description_placeholder": "A gyors, barna róka átugrik a lusta kutya fölött",
"upload_modal.detect_text": "Szöveg felismerése a képről",
"upload_modal.edit_media": "Média szerkesztése",
"upload_modal.hint": "Kattints vagy húzd a kört az előnézetben arra a fókuszpontra, mely minden megjelenített bélyegképen látható kell, legyen.",
"upload_modal.hint": "Kattintás vagy kör húzása az előnézetben arra a fókuszpontra, mely minden megjelenített bélyegképen láthatónak kell lenni.",
"upload_modal.preparing_ocr": "OCR előkészítése…",
"upload_modal.preview_label": "Előnézet ({ratio})",
"upload_progress.label": "Feltöltés...",

@ -558,6 +558,7 @@
"status.delete": "Ջնջել",
"status.detailed_status": "Շղթայի ընդլայնուած դիտում",
"status.direct": "Նամակ գրել {name} -ին",
"status.direct_indicator": "Private mention",
"status.edit": "Խմբագրել",
"status.edited": "Խմբագրուել է՝ {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Hapus",
"status.detailed_status": "Tampilan detail percakapan",
"status.direct": "Pesan langsung @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Diedit {date}",
"status.edited_x_times": "Diedit {count, plural, other {{count} kali}}",

@ -558,6 +558,7 @@
"status.delete": "Hichapụ",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Efacar",
"status.detailed_status": "Detala konversvido",
"status.direct": "Direta mesajigez @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Modifikez",
"status.edited": "Modifikesis ye {date}",
"status.edited_x_times": "Modifikesis {count, plural, one {{count} foyo} other {{count} foyi}}",

@ -558,6 +558,7 @@
"status.delete": "Eyða",
"status.detailed_status": "Nákvæm spjallþráðasýn",
"status.direct": "Bein skilaboð @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Breyta",
"status.edited": "Breytt {date}",
"status.edited_x_times": "Breytt {count, plural, one {{count} sinni} other {{count} sinnum}}",

@ -558,6 +558,7 @@
"status.delete": "Elimina",
"status.detailed_status": "Vista conversazione dettagliata",
"status.direct": "Messaggio diretto a @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Modifica",
"status.edited": "Modificato il {date}",
"status.edited_x_times": "Modificato {count, plural, one {{count} volta} other {{count} volte}}",

@ -562,6 +562,7 @@
"status.delete": "削除",
"status.detailed_status": "詳細な会話ビュー",
"status.direct": "@{name}さんにダイレクトメッセージ",
"status.direct_indicator": "Private mention",
"status.edit": "編集",
"status.edited": "{date}に編集",
"status.edited_x_times": "{count}回編集",

@ -558,6 +558,7 @@
"status.delete": "წაშლა",
"status.detailed_status": "Detailed conversation view",
"status.direct": "პირდაპირი წერილი @{name}-ს",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Kkes",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Izen usrid i @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Ẓreg",
"status.edited": "Tettwaẓreg deg {date}",
"status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}",

@ -558,6 +558,7 @@
"status.delete": "Өшіру",
"status.detailed_status": "Толық пікірталас көрінісі",
"status.direct": "Хат жіберу @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -71,7 +71,7 @@
"admin.dashboard.monthly_retention": "가입 후 월별 사용자 유지율",
"admin.dashboard.retention.average": "평균",
"admin.dashboard.retention.cohort": "가입한 달",
"admin.dashboard.retention.cohort_size": "새로운 사용자",
"admin.dashboard.retention.cohort_size": "새 사용자",
"alert.rate_limited.message": "{retry_time, time, medium}에 다시 시도해 주세요.",
"alert.rate_limited.title": "빈도 제한됨",
"alert.unexpected.message": "예상하지 못한 에러가 발생했습니다.",
@ -558,6 +558,7 @@
"status.delete": "삭제",
"status.detailed_status": "대화 자세히 보기",
"status.direct": "@{name}에게 다이렉트 메시지",
"status.direct_indicator": "Private mention",
"status.edit": "수정",
"status.edited": "{date}에 편집됨",
"status.edited_x_times": "{count}번 수정됨",

@ -558,6 +558,7 @@
"status.delete": "Jê bibe",
"status.detailed_status": "Dîtina axaftina berfireh",
"status.direct": "Peyama rasterast @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Serrast bike",
"status.edited": "Di {date} de hate serrastkirin",
"status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin",

@ -558,6 +558,7 @@
"status.delete": "Dilea",
"status.detailed_status": "Gwel kesklapp a-vanyl",
"status.direct": "Messach didro dhe @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Oblitterare",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Recolere",
"status.edited": "Recultum {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Dzēst",
"status.detailed_status": "Detalizēts sarunas skats",
"status.direct": "Privāta ziņa @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Rediģēt",
"status.edited": "Rediģēts {date}",
"status.edited_x_times": "Rediģēts {count, plural, one {{count} reizi} other {{count} reizes}}",

@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "മക",
"status.detailed_status": "വിശദമയ സഷണ കച",
"status.direct": "@{name} നി അയകക",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -54,7 +54,7 @@
"account.posts_with_replies": "Toots and replies",
"account.report": "@{name} च तकर कर",
"account.requested": "Awaiting approval",
"account.requested_follow": "{name} has requested to follow you",
"account.requested_follow": "{name} आपल करणिट क आह",
"account.share": "@{name} चइल शअर कर",
"account.show_reblogs": "{name}च सरव बस दखव",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
@ -558,6 +558,7 @@
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",

@ -558,6 +558,7 @@
"status.delete": "Padam",
"status.detailed_status": "Paparan perbualan terperinci",
"status.direct": "Mesej terus @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Sunting",
"status.edited": "Disunting {date}",
"status.edited_x_times": "Disunting {count, plural, other {{count} kali}}",

@ -194,7 +194,7 @@
"dismissable_banner.explore_tags": "ဤ hashtag မသည ယခအခ ဗဟက ကရက၏ အခကသည",
"dismissable_banner.public_timeline": "ဗဟက ဤဆ အခ တငသည လတတလ အမသည။",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
"embed.preview": "ရမ",
"emoji_button.activity": "လက",
"emoji_button.clear": "ရလငမည",
"emoji_button.custom": "စကက",
@ -265,7 +265,7 @@
"follow_recommendations.lead": "သငက၏ ပ သငပငမစက အခတပမည။ မကက။ အခမရက ရပတနသည။",
"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.",
"follow_requests.unlocked_explanation": "သငအကကမထလည၊ {domain} ဝနထမသည ဤအကကရနက ကလညစစမည ထငဆပသည",
"followed_tags": "Hashtag ကကမည",
"footer.about": "အက",
"footer.directory": "ပရလမ",
@ -414,7 +414,7 @@
"notifications.column_settings.alert": "Desktop သတက",
"notifications.column_settings.favourite": "ကကသက",
"notifications.column_settings.filter_bar.advanced": "ခစဥက",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.category": "အမစစ",
"notifications.column_settings.filter_bar.show_bar": "စစက",
"notifications.column_settings.follow": "စကအသစ -",
"notifications.column_settings.follow_request": "စကရနအသစ -",
@ -442,7 +442,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": "ပ",
@ -528,7 +528,7 @@
"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": "ပ",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
"search_popout.tips.text": "သည ကကသညအမည၊ အသအမည hashtag မကသည။\n",
"search_popout.tips.user": "အသ",
"search_results.accounts": "လ",
"search_results.all": "အ",
@ -558,6 +558,7 @@
"status.delete": "ဖကရန",
"status.detailed_status": "အသစကက",
"status.direct": "@{name} ကကကမည",
"status.direct_indicator": "Private mention",
"status.edit": "ပဆငရန",
"status.edited": "{date} ကဆင",
"status.edited_x_times": "{count, plural, one {{count} time} other {{count} times}} ပဆငသည",

@ -558,6 +558,7 @@
"status.delete": "Verwijderen",
"status.detailed_status": "Uitgebreide gespreksweergave",
"status.direct": "@{name} een direct bericht sturen",
"status.direct_indicator": "Private mention",
"status.edit": "Bewerken",
"status.edited": "Bewerkt op {date}",
"status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt",

@ -558,6 +558,7 @@
"status.delete": "Slett",
"status.detailed_status": "Detaljert samtalevisning",
"status.direct": "Send melding til @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Rediger",
"status.edited": "Redigert {date}",
"status.edited_x_times": "Redigert {count, plural, one {{count} gong} other {{count} gonger}}",

@ -558,6 +558,7 @@
"status.delete": "Slett",
"status.detailed_status": "Detaljert samtalevisning",
"status.direct": "Send direktemelding til @{name}",
"status.direct_indicator": "Private mention",
"status.edit": "Rediger",
"status.edited": "Redigert {date}",
"status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}",

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

Loading…
Cancel
Save