Merge pull request #1725 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes
main
Claire 8 months ago committed by GitHub
commit 60f9973f45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      .github/workflows/build-image.yml
  2. 2
      Gemfile
  3. 18
      Gemfile.lock
  4. 16
      app/controllers/api/v1/admin/accounts_controller.rb
  5. 31
      app/controllers/api/v2/admin/accounts_controller.rb
  6. 46
      app/javascript/mastodon/locales/cs.json
  7. 4
      app/javascript/mastodon/locales/fa.json
  8. 4
      app/javascript/mastodon/locales/fr.json
  9. 8
      app/javascript/mastodon/locales/gd.json
  10. 40
      app/javascript/mastodon/locales/pt-BR.json
  11. 8
      app/javascript/mastodon/locales/sq.json
  12. 4
      app/javascript/mastodon/locales/th.json
  13. 10
      app/javascript/mastodon/locales/uk.json
  14. 74
      app/javascript/styles/mastodon/components.scss
  15. 4
      app/models/account_filter.rb
  16. 40
      app/services/notify_service.rb
  17. 2
      config/deploy.rb
  18. 2
      config/locales/activerecord.ku.yml
  19. 3
      config/locales/ar.yml
  20. 17
      config/locales/ca.yml
  21. 35
      config/locales/cs.yml
  22. 19
      config/locales/da.yml
  23. 16
      config/locales/de.yml
  24. 26
      config/locales/devise.ku.yml
  25. 2
      config/locales/devise.th.yml
  26. 31
      config/locales/doorkeeper.fa.yml
  27. 37
      config/locales/doorkeeper.gd.yml
  28. 4
      config/locales/doorkeeper.ku.yml
  29. 1
      config/locales/doorkeeper.pt-BR.yml
  30. 15
      config/locales/doorkeeper.uk.yml
  31. 17
      config/locales/es-AR.yml
  32. 22
      config/locales/es-MX.yml
  33. 11
      config/locales/es.yml
  34. 8
      config/locales/eu.yml
  35. 123
      config/locales/fa.yml
  36. 16
      config/locales/fi.yml
  37. 24
      config/locales/fr.yml
  38. 117
      config/locales/gd.yml
  39. 21
      config/locales/gl.yml
  40. 11
      config/locales/he.yml
  41. 13
      config/locales/hu.yml
  42. 21
      config/locales/id.yml
  43. 9
      config/locales/is.yml
  44. 9
      config/locales/it.yml
  45. 4
      config/locales/ja.yml
  46. 13
      config/locales/ko.yml
  47. 51
      config/locales/ku.yml
  48. 21
      config/locales/lv.yml
  49. 9
      config/locales/pl.yml
  50. 1
      config/locales/pt-BR.yml
  51. 21
      config/locales/pt-PT.yml
  52. 29
      config/locales/ru.yml
  53. 1
      config/locales/simple_form.cs.yml
  54. 34
      config/locales/simple_form.fa.yml
  55. 9
      config/locales/simple_form.gd.yml
  56. 36
      config/locales/simple_form.ku.yml
  57. 2
      config/locales/simple_form.th.yml
  58. 24
      config/locales/sq.yml
  59. 4
      config/locales/sv.yml
  60. 23
      config/locales/th.yml
  61. 16
      config/locales/tr.yml
  62. 18
      config/locales/uk.yml
  63. 74
      config/locales/vi.yml
  64. 16
      config/locales/zh-CN.yml
  65. 15
      config/locales/zh-TW.yml
  66. 4
      config/routes.rb
  67. 8
      package.json
  68. 35
      spec/controllers/api/v1/admin/accounts_controller_spec.rb
  69. 73
      spec/controllers/api/v2/admin/accounts_controller_spec.rb
  70. 36
      yarn.lock

@ -13,6 +13,9 @@ on:
jobs:
build-image:
runs-on: ubuntu-latest
strategy:
matrix:
os: [linux/arm64, linux/amd64]
steps:
- uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1
@ -36,7 +39,7 @@ jobs:
- uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
platforms: ${{ matrix.os }}
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/mastodon:latest

@ -139,7 +139,7 @@ group :development do
gem 'brakeman', '~> 5.2', require: false
gem 'bundler-audit', '~> 0.9', require: false
gem 'capistrano', '~> 3.16'
gem 'capistrano', '~> 3.17'
gem 'capistrano-rails', '~> 1.6'
gem 'capistrano-rbenv', '~> 2.2'
gem 'capistrano-yarn', '~> 2.0'

@ -96,7 +96,7 @@ GEM
aws-sigv4 (~> 1.4)
aws-sigv4 (1.4.0)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.16)
bcrypt (3.1.17)
better_errors (2.9.1)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
@ -121,7 +121,7 @@ GEM
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
byebug (11.1.3)
capistrano (3.16.0)
capistrano (3.17.0)
airbrussh (>= 1.0.0)
i18n
rake (>= 10.0.0)
@ -157,7 +157,7 @@ GEM
climate_control (0.2.0)
coderay (1.1.3)
color_diff (0.1)
concurrent-ruby (1.1.9)
concurrent-ruby (1.1.10)
connection_pool (2.2.5)
cose (1.0.0)
cbor (~> 0.5.9)
@ -174,11 +174,11 @@ GEM
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
devise-two-factor (4.0.1)
activesupport (< 6.2)
devise-two-factor (4.0.2)
activesupport (< 7.1)
attr_encrypted (>= 1.3, < 4, != 2)
devise (~> 4.0)
railties (< 6.2)
railties (< 7.1)
rotp (~> 6.0)
devise_pam_authenticatable2 (9.2.0)
devise (>= 4.0.0)
@ -433,7 +433,7 @@ GEM
openssl-signature_algorithm (0.4.0)
orm_adapter (0.5.0)
ox (2.14.10)
parallel (1.22.0)
parallel (1.22.1)
parser (3.1.1.0)
ast (~> 2.4.1)
parslet (2.0.0)
@ -562,7 +562,7 @@ GEM
rspec-support (3.11.0)
rspec_junit_formatter (0.5.1)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.26.0)
rubocop (1.26.1)
parallel (~> 1.10)
parser (>= 3.1.0.0)
rainbow (>= 2.2.2, < 4.0)
@ -735,7 +735,7 @@ DEPENDENCIES
browser
bullet (~> 7.0)
bundler-audit (~> 0.9)
capistrano (~> 3.16)
capistrano (~> 3.17)
capistrano-rails (~> 1.6)
capistrano-rbenv (~> 2.2)
capistrano-yarn (~> 2.0)

@ -104,13 +104,27 @@ class Api::V1::Admin::AccountsController < Api::BaseController
end
def filtered_accounts
AccountFilter.new(filter_params).results
AccountFilter.new(translated_filter_params).results
end
def filter_params
params.permit(*FILTER_PARAMS)
end
def translated_filter_params
translated_params = { origin: 'local', status: 'active' }.merge(filter_params.slice(*AccountFilter::KEYS))
translated_params[:origin] = 'remote' if params[:remote].present?
%i(active pending disabled silenced suspended).each do |status|
translated_params[:status] = status.to_s if params[status].present?
end
translated_params[:permissions] = 'staff' if params[:staff].present?
translated_params
end
def insert_pagination_headers
set_pagination_headers(next_path, prev_path)
end

@ -0,0 +1,31 @@
# frozen_string_literal: true
class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController
FILTER_PARAMS = %i(
origin
status
permissions
username
by_domain
display_name
email
ip
invited_by
).freeze
PAGINATION_PARAMS = (%i(limit) + FILTER_PARAMS).freeze
private
def filtered_accounts
AccountFilter.new(filter_params).results
end
def filter_params
params.permit(*FILTER_PARAMS)
end
def pagination_params(core_params)
params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params)
end
end

@ -75,7 +75,7 @@
"column.domain_blocks": "Blokované domény",
"column.favourites": "Oblíbené",
"column.follow_requests": "Žádosti o sledování",
"column.home": "Domů",
"column.home": "Domovská časová osa",
"column.lists": "Seznamy",
"column.mutes": "Skrytí uživatelé",
"column.notifications": "Oznámení",
@ -294,7 +294,7 @@
"navigation_bar.discover": "Objevujte",
"navigation_bar.domain_blocks": "Blokované domény",
"navigation_bar.edit_profile": "Upravit profil",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "Objevování",
"navigation_bar.favourites": "Oblíbené",
"navigation_bar.filters": "Skrytá slova",
"navigation_bar.follow_requests": "Žádosti o sledování",
@ -318,7 +318,7 @@
"notification.poll": "Anketa, ve které jste hlasovali, skončila",
"notification.reblog": "Uživatel {name} boostnul váš příspěvek",
"notification.status": "Nový příspěvek od {name}",
"notification.update": "{name} edited a post",
"notification.update": "uživatel {name} upravil příspěvek",
"notifications.clear": "Smazat oznámení",
"notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
@ -338,7 +338,7 @@
"notifications.column_settings.status": "Nové příspěvky:",
"notifications.column_settings.unread_notifications.category": "Nepřečtená oznámení",
"notifications.column_settings.unread_notifications.highlight": "Zvýraznit nepřečtená oznámení",
"notifications.column_settings.update": "Edits:",
"notifications.column_settings.update": "Úpravy:",
"notifications.filter.all": "Vše",
"notifications.filter.boosts": "Boosty",
"notifications.filter.favourites": "Oblíbení",
@ -380,7 +380,7 @@
"relative_time.days": "{number} d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.just_now": "just now",
"relative_time.full.just_now": "právě teď",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.hours": "{number} h",
@ -391,11 +391,11 @@
"reply_indicator.cancel": "Zrušit",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Other",
"report.categories.other": "Ostatní",
"report.categories.spam": "Spam",
"report.categories.violation": "Content violates one or more server rules",
"report.category.subtitle": "Choose the best match",
"report.category.title": "Tell us what's going on with this {type}",
"report.categories.violation": "Obsah porušuje jedno nebo více pravidel serveru",
"report.category.subtitle": "Vyberte nejbližší možnost",
"report.category.title": "Povězte nám, proč chcete {type} nahlásit",
"report.category.title_account": "profile",
"report.category.title_status": "post",
"report.close": "Done",
@ -404,20 +404,20 @@
"report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii hlášení?",
"report.mute": "Mute",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.next": "Next",
"report.next": "Dále",
"report.placeholder": "Dodatečné komentáře",
"report.reasons.dislike": "I don't like it",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.spam": "It's spam",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.violation": "It violates server rules",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.rules.title": "Which rules are being violated?",
"report.statuses.subtitle": "Select all that apply",
"report.statuses.title": "Are there any posts that back up this report?",
"report.reasons.dislike": "Nelíbí se mi",
"report.reasons.dislike_description": "Není to něco, co chcete vidět",
"report.reasons.other": "Jde o něco jiného",
"report.reasons.other_description": "Problém neodpovídá ostatním kategoriím",
"report.reasons.spam": "Je to spam",
"report.reasons.spam_description": "Škodlivé odkazy, falešné interakce nebo opakované odpovědi",
"report.reasons.violation": "Porušuje pravidla serveru",
"report.reasons.violation_description": "Máte za to, že porušuje konkrétní pravidla",
"report.rules.subtitle": "Vyberte všechna relevantní",
"report.rules.title": "Která pravidla porušuje?",
"report.statuses.subtitle": "Vyberte všechny relevantní",
"report.statuses.title": "Existují příspěvky dokládající toto hlášení?",
"report.submit": "Odeslat",
"report.target": "Nahlášení uživatele {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
@ -490,7 +490,7 @@
"suggestions.dismiss": "Odmítnout návrh",
"suggestions.header": "Mohlo by vás zajímat…",
"tabs_bar.federated_timeline": "Federovaná",
"tabs_bar.home": "Domů",
"tabs_bar.home": "Domovská",
"tabs_bar.local_timeline": "Místní",
"tabs_bar.notifications": "Oznámení",
"tabs_bar.search": "Hledat",

@ -9,7 +9,7 @@
"account.browse_more_on_origin_server": "مرور بیشتر روی نمایهٔ اصلی",
"account.cancel_follow_request": "لغو درخواست پیگیری",
"account.direct": "پیام مستقیم به @{name}",
"account.disable_notifications": "آگاهی به من هنگام فرستادنهای @{name} پایان یابد",
"account.disable_notifications": "آگاه کردن من هنگام فرستههای @{name} را متوقّف کن",
"account.domain_blocked": "دامنه مسدود شد",
"account.edit_profile": "ویرایش نمایه",
"account.enable_notifications": "هنگام فرستههای @{name} مرا آگاه کن",
@ -444,7 +444,7 @@
"status.admin_status": "گشودن این فرسته در واسط مدیریت",
"status.block": "مسدود کردن @{name}",
"status.bookmark": "نشانک",
"status.cancel_reblog_private": "لغو تقویت",
"status.cancel_reblog_private": "ناتقویت",
"status.cannot_reblog": "این فرسته قابل تقویت نیست",
"status.copy": "رونوشت پیوند فرسته",
"status.delete": "حذف",

@ -229,7 +229,7 @@
"keyboard_shortcuts.blocked": "Ouvrir la liste des comptes bloqués",
"keyboard_shortcuts.boost": "Partager le message",
"keyboard_shortcuts.column": "Se placer dans une colonne",
"keyboard_shortcuts.compose": "se placer dans la zone de rédaction",
"keyboard_shortcuts.compose": "Se placer dans la zone de rédaction",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "Ouvrir la colonne des messages directs",
"keyboard_shortcuts.down": "Descendre dans la liste",
@ -246,7 +246,7 @@
"keyboard_shortcuts.muted": "Ouvrir la liste des comptes masqués",
"keyboard_shortcuts.my_profile": "Ouvrir votre profil",
"keyboard_shortcuts.notifications": "Ouvrir la colonne de notifications",
"keyboard_shortcuts.open_media": "ouvrir le média",
"keyboard_shortcuts.open_media": "Ouvrir le média",
"keyboard_shortcuts.pinned": "Ouvrir la liste des messages épinglés",
"keyboard_shortcuts.profile": "Ouvrir le profil de l’auteur·rice",
"keyboard_shortcuts.reply": "Répondre au message",

@ -18,7 +18,7 @@
"account.followers": "Luchd-leantainn",
"account.followers.empty": "Chan eil neach sam bith a’ leantainn air a’ chleachdaiche seo fhathast.",
"account.followers_counter": "{count, plural, one {{counter} neach-leantainn} two {{counter} neach-leantainn} few {{counter} luchd-leantainn} other {{counter} luchd-leantainn}}",
"account.following": "Following",
"account.following": "A’ leantainn",
"account.following_counter": "{count, plural, one {A’ leantainn air {counter}} two {A’ leantainn air {counter}} few {A’ leantainn air {counter}} other {A’ leantainn air {counter}}}",
"account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn air neach sam bith fhathast.",
"account.follows_you": "’Gad leantainn",
@ -41,12 +41,12 @@
"account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}",
"account.unblock": "Dì-bhac @{name}",
"account.unblock_domain": "Dì-bhac an àrainn {domain}",
"account.unblock_short": "Unblock",
"account.unblock_short": "Dì-bhac",
"account.unendorse": "Na brosnaich air a’ phròifil",
"account.unfollow": "Na lean tuilleadh",
"account.unmute": "Dì-mhùch @{name}",
"account.unmute_notifications": "Dì-mhùch na brathan o @{name}",
"account.unmute_short": "Unmute",
"account.unmute_short": "Dì-mhùch",
"account_note.placeholder": "Briog airson nòta a chur ris",
"admin.dashboard.daily_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir latha",
"admin.dashboard.monthly_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir mìos",
@ -294,7 +294,7 @@
"navigation_bar.discover": "Fidir",
"navigation_bar.domain_blocks": "Àrainnean bacte",
"navigation_bar.edit_profile": "Deasaich a’ phròifil",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "Rùraich",
"navigation_bar.favourites": "Na h-annsachdan",
"navigation_bar.filters": "Faclan mùchte",
"navigation_bar.follow_requests": "Iarrtasan leantainn",

@ -18,7 +18,7 @@
"account.followers": "Seguidores",
"account.followers.empty": "Nada aqui.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Following",
"account.following": "Seguindo",
"account.following_counter": "{count, plural, one {segue {counter}} other {segue {counter}}}",
"account.follows.empty": "Nada aqui.",
"account.follows_you": "te segue",
@ -41,14 +41,14 @@
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Desbloquear domínio {domain}",
"account.unblock_short": "Unblock",
"account.unblock_short": "Desbloquear",
"account.unendorse": "Remover",
"account.unfollow": "Deixar de seguir",
"account.unmute": "Dessilenciar @{name}",
"account.unmute_notifications": "Mostrar notificações de @{name}",
"account.unmute_short": "Unmute",
"account.unmute_short": "Reativar",
"account_note.placeholder": "Nota pessoal sobre este perfil aqui",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"admin.dashboard.daily_retention": "Taxa de retenção de usuários por dia, após a inscrição",
"admin.dashboard.monthly_retention": "Taxa de retenção de usuários por mês, após a inscrição",
"admin.dashboard.retention.average": "Média",
"admin.dashboard.retention.cohort": "Mês de inscrição",
@ -168,7 +168,7 @@
"empty_column.community": "A linha local está vazia. Publique algo para começar!",
"empty_column.direct": "Nada aqui. Quando você enviar ou receber toots diretos, eles aparecerão aqui.",
"empty_column.domain_blocks": "Nada aqui.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.explore_statuses": "Nada está em alta no momento. Volte mais tarde!",
"empty_column.favourited_statuses": "Nada aqui. Quando você favoritar um toot, ele aparecerá aqui.",
"empty_column.favourites": "Nada aqui. Quando alguém favoritar, o autor aparecerá aqui.",
"empty_column.follow_recommendations": "Parece que não há sugestões para você. Tente usar a pesquisa para encontrar pessoas que você possa conhecer ou explorar hashtags.",
@ -294,7 +294,7 @@
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Domínios bloqueados",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palavras filtradas",
"navigation_bar.follow_requests": "Seguidores pendentes",
@ -390,42 +390,42 @@
"relative_time.today": "hoje",
"reply_indicator.cancel": "Cancelar",
"report.block": "Bloquear",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.block_explanation": "Você não verá suas postagens. Eles não poderão ver suas postagens ou segui-lo. Eles serão capazes de perceber que estão bloqueados.",
"report.categories.other": "Outro",
"report.categories.spam": "Spam",
"report.categories.violation": "O conteúdo viola uma ou mais regras do servidor",
"report.category.subtitle": "Choose the best match",
"report.category.title": "Tell us what's going on with this {type}",
"report.category.subtitle": "Escolha a alternativa de melhor correspondência",
"report.category.title": "Conte-nos o que está acontecendo com esse {type}",
"report.category.title_account": "perfil",
"report.category.title_status": "publicação",
"report.close": "Concluído",
"report.comment.title": "Is there anything else you think we should know?",
"report.comment.title": "Há algo mais que você acredita que devemos saber?",
"report.forward": "Encaminhar para {target}",
"report.forward_hint": "A conta está em outra instância. Enviar uma cópia anônima da denúncia para lá?",
"report.mute": "Silenciar",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.mute_explanation": "Você não verá suas postagens. Eles ainda podem seguir você e ver suas postagens e não saberão que estão silenciados.",
"report.next": "Próximo",
"report.placeholder": "Comentários adicionais aqui",
"report.reasons.dislike": "Eu não gosto disso",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.dislike_description": "Não é algo que você quer ver",
"report.reasons.other": "É outra coisa",
"report.reasons.other_description": "O problema não se encaixa em outras categorias",
"report.reasons.spam": "É spam",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.violation": "It violates server rules",
"report.reasons.spam_description": "Links maliciosos, envolvimento falso ou respostas repetitivas",
"report.reasons.violation": "Viola as regras do servidor",
"report.reasons.violation_description": "Você está ciente de que isso quebra regras específicas",
"report.rules.subtitle": "Selecione tudo que se aplica",
"report.rules.title": "Which rules are being violated?",
"report.rules.title": "Que regras estão sendo violadas?",
"report.statuses.subtitle": "Selecione tudo que se aplica",
"report.statuses.title": "Are there any posts that back up this report?",
"report.statuses.title": "Existem postagens que respaldam esse relatório?",
"report.submit": "Enviar",
"report.target": "Denunciando {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
"report.thanks.take_action": "Aqui estão suas opções para controlar o que você vê no Mastodon:",
"report.thanks.take_action_actionable": "Enquanto revisamos isso, você pode tomar medidas contra @{name}:",
"report.thanks.title": "Não quer ver isto?",
"report.thanks.title_actionable": "Obrigado por reportar. Vamos analisar.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report.unfollow": "Deixar de seguir @{name}",
"report.unfollow_explanation": "Você está seguindo esta conta. Para não mais ver os posts dele em sua página inicial, deixe de segui-lo.",
"search.placeholder": "Pesquisar",
"search_popout.search_format": "Formato de pesquisa avançada",
"search_popout.tips.full_text": "Texto simples retorna toots que você escreveu, favoritou, deu boost, ou em que foi mencionado, assim como nomes de usuário e de exibição, e hashtags correspondentes.",

@ -18,7 +18,7 @@
"account.followers": "Ndjekës",
"account.followers.empty": "Këtë përdorues ende s’e ndjek kush.",
"account.followers_counter": "{count, plural, one {{counter} Ndjekës} other {{counter} Ndjekës}}",
"account.following": "Following",
"account.following": "Ndjekje",
"account.following_counter": "{count, plural, one {{counter} i Ndjekur} other {{counter} të Ndjekur}}",
"account.follows.empty": "Ky përdorues ende s’ndjek kënd.",
"account.follows_you": "Ju ndjek",
@ -41,12 +41,12 @@
"account.statuses_counter": "{count, plural, one {{counter} Mesazh} other {{counter} Mesazhe}}",
"account.unblock": "Zhbllokoje @{name}",
"account.unblock_domain": "Zhblloko përkatësinë {domain}",
"account.unblock_short": "Unblock",
"account.unblock_short": "Zhbllokoje",
"account.unendorse": "Mos e përfshi në profil",
"account.unfollow": "Resht së ndjekuri",
"account.unmute": "Ktheji zërin @{name}",
"account.unmute_notifications": "Hiqua ndalimin e shfaqjes njoftimeve nga @{name}",
"account.unmute_short": "Unmute",
"account.unmute_short": "Çheshtoje",
"account_note.placeholder": "Klikoni për të shtuar shënim",
"admin.dashboard.daily_retention": "Shkallë mbajtjeje përdoruesi, në ditë, pas regjistrimit",
"admin.dashboard.monthly_retention": "Shkallë mbajtjeje përdoruesi, në muaj, pas regjistrimit",
@ -294,7 +294,7 @@
"navigation_bar.discover": "Zbuloni",
"navigation_bar.domain_blocks": "Përkatësi të bllokuara",
"navigation_bar.edit_profile": "Përpunoni profilin",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "Eksploroni",
"navigation_bar.favourites": "Të parapëlqyer",
"navigation_bar.filters": "Fjalë të heshtuara",
"navigation_bar.follow_requests": "Kërkesa për ndjekje",

@ -128,7 +128,7 @@
"confirmations.logout.confirm": "ออกจากระบบ",
"confirmations.logout.message": "คณแนใจหรอไมาตองการออกจากระบบ?",
"confirmations.mute.confirm": "ซอน",
"confirmations.mute.explanation": "นจะซอนโพสตจากเขาและโพสตกลาวถงเขา แตจะยงอนญาตใหเขาเหนโพสตของคณและตดตามคณ",
"confirmations.mute.explanation": "นจะซอนโพสตจากเขาและโพสตกลาวถงเขา แตจะยคงอนญาตใหเขาเหนโพสตของคณและตดตามคณ",
"confirmations.mute.message": "คณแนใจหรอไมาตองการซอน {name}?",
"confirmations.redraft.confirm": "ลบแลวรางใหม",
"confirmations.redraft.message": "คณแนใจหรอไมาตองการลบโพสตแลวรางโพสตใหม? รายการโปรดและการดนจะหายไป และการตอบกลบโพสตงเดมจะไมความเกยวพน",
@ -403,7 +403,7 @@
"report.forward": "สงตอไปยง {target}",
"report.forward_hint": "บญชมาจากเซฟเวอรน สงสำเนาของรายงานทไมระบวตนไปทนดวย?",
"report.mute": "ซอน",
"report.mute_explanation": "คณจะไมเหนโพสตของเขา เขายงสามารถตดตามคณและเหนโพสตของคณและจะไมทราบวามการซอนเขา",
"report.mute_explanation": "คณจะไมเหนโพสตของเขา เขายคงสามารถตดตามคณและเหนโพสตของคณและจะไมทราบวามการซอนเขา",
"report.next": "ถดไป",
"report.placeholder": "ความคดเหนเพมเตม",
"report.reasons.dislike": "ฉนไมชอบโพสต",

@ -18,7 +18,7 @@
"account.followers": "Підписники",
"account.followers.empty": "Ніхто ще не підписався на цього користувача.",
"account.followers_counter": "{count, plural, one {{counter} Підписник} few {{counter} Підписники} many {{counter} Підписників} other {{counter} Підписники}}",
"account.following": "Following",
"account.following": "Стежите",
"account.following_counter": "{count, plural, one {{counter} Підписка} few {{counter} Підписки} many {{counter} Підписок} other {{counter} Підписки}}",
"account.follows.empty": "Цей користувач ще ні на кого не підписався.",
"account.follows_you": "Підписаний(-а) на вас",
@ -402,7 +402,7 @@
"report.comment.title": "Is there anything else you think we should know?",
"report.forward": "Надіслати до {target}",
"report.forward_hint": "Це акаунт з іншого серверу. Відправити анонімізовану копію скарги і туди?",
"report.mute": "Mute",
"report.mute": "Заглушити",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.next": "Далі",
"report.placeholder": "Додаткові коментарі",
@ -415,8 +415,8 @@
"report.reasons.violation": "It violates server rules",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.rules.title": "Which rules are being violated?",
"report.statuses.subtitle": "Select all that apply",
"report.rules.title": "Які правила порушено?",
"report.statuses.subtitle": "Виберіть усі варіанти, що підходять",
"report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Відправити",
"report.target": "Скаржимося на {target}",
@ -424,7 +424,7 @@
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Don't want to see this?",
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow": "Відписатися від @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"search.placeholder": "Пошук",
"search_popout.search_format": "Розширений формат пошуку",

@ -1009,6 +1009,43 @@
.audio-player {
margin-top: 8px;
}
&.light {
.status__relative-time,
.status__visibility-icon {
color: $light-text-color;
}
.status__display-name {
color: $inverted-text-color;
}
.display-name {
color: $light-text-color;
strong {
color: $inverted-text-color;
}
}
.status__content {
color: $inverted-text-color;
a {
color: $highlight-text-color;
}
a.status__content__spoiler-link {
color: $primary-text-color;
background: $ui-primary-color;
&:hover,
&:focus {
background: lighten($ui-primary-color, 8%);
}
}
}
}
}
.status__relative-time,
@ -1154,43 +1191,6 @@
.audio-player {
margin-top: 8px;
}
&.light {
.status__relative-time,
.status__visibility-icon {
color: $light-text-color;
}
.status__display-name {
color: $inverted-text-color;
}
.display-name {
color: $light-text-color;
strong {
color: $inverted-text-color;
}
}
.status__content {
color: $inverted-text-color;
a {
color: $highlight-text-color;
}
a.status__content__spoiler-link {
color: $primary-text-color;
background: $ui-primary-color;
&:hover,
&:focus {
background: lighten($ui-primary-color, 8%);
}
}
}
}
}
.detailed-status__meta {

@ -80,6 +80,10 @@ class AccountFilter
accounts_with_users.merge(User.pending)
when 'suspended'
Account.suspended
when 'disabled'
accounts_with_users.merge(User.disabled)
when 'silenced'
Account.silenced
else
raise "Unknown status: #{value}"
end

@ -48,47 +48,23 @@ class NotifyService < BaseService
return false if @notification.target_status.in_reply_to_id.nil?
# Using an SQL CTE to avoid unneeded back-and-forth with SQL server in case of long threads
!Status.count_by_sql([<<-SQL.squish, id: @notification.target_status.in_reply_to_id, recipient_id: @recipient.id, sender_id: @notification.from_account.id]).zero?
WITH RECURSIVE ancestors(id, in_reply_to_id, replying_to_sender, path) AS (
SELECT
s.id,
s.in_reply_to_id,
(CASE
WHEN s.account_id = :recipient_id THEN
EXISTS (
SELECT *
FROM mentions m
WHERE m.silent = FALSE AND m.account_id = :sender_id AND m.status_id = s.id
)
ELSE
FALSE
END),
ARRAY[s.id]
!Status.count_by_sql([<<-SQL.squish, id: @notification.target_status.in_reply_to_id, recipient_id: @recipient.id, sender_id: @notification.from_account.id, depth_limit: 100]).zero?
WITH RECURSIVE ancestors(id, in_reply_to_id, mention_id, path, depth) AS (
SELECT s.id, s.in_reply_to_id, m.id, ARRAY[s.id], 0
FROM statuses s
LEFT JOIN mentions m ON m.silent = FALSE AND m.account_id = :sender_id AND m.status_id = s.id
WHERE s.id = :id
UNION ALL
SELECT
s.id,
s.in_reply_to_id,
(CASE
WHEN s.account_id = :recipient_id THEN
EXISTS (
SELECT *
FROM mentions m
WHERE m.silent = FALSE AND m.account_id = :sender_id AND m.status_id = s.id
)
ELSE
FALSE
END),
st.path || s.id
SELECT s.id, s.in_reply_to_id, m.id, st.path || s.id, st.depth + 1
FROM ancestors st
JOIN statuses s ON s.id = st.in_reply_to_id
WHERE st.replying_to_sender IS FALSE AND NOT s.id = ANY(path)
LEFT JOIN mentions m ON m.silent = FALSE AND m.account_id = :sender_id AND m.status_id = s.id
WHERE st.mention_id IS NULL AND NOT s.id = ANY(path) AND st.depth < :depth_limit
)
SELECT COUNT(*)
FROM ancestors st
JOIN statuses s ON s.id = st.id
WHERE st.replying_to_sender IS TRUE AND s.visibility = 3
WHERE st.mention_id IS NOT NULL AND s.visibility = 3
SQL
end

@ -1,6 +1,6 @@
# frozen_string_literal: true
lock '3.16.0'
lock '3.17.0'
set :repo_url, ENV.fetch('REPO', 'https://github.com/mastodon/mastodon.git')
set :branch, ENV.fetch('BRANCH', 'master')

@ -9,7 +9,7 @@ ku:
agreement: Peymana karûbarê
email: Navnîşana E-nameyê
locale: Herêmî
password: Pêborîn
password: Borînpeyv
user/account:
username: Navê bikarhêneriyê
user/invite_request:

@ -474,9 +474,6 @@ ar:
delivery_error_days: أيام أخطاء التوصيل
delivery_error_hint: إذا كان التوصيل غير ممكناً لـ%{count} يوم، فستوضع عليها علامة {غير قابلة للتسليم} تلقائياً.
empty: لم يتم العثور على نطاقات.
known_accounts:
one: "%{count} حساب معروف"
other: "%{count} حسابات معروفة"
moderation:
all: كافتها
limited: محدود

@ -168,7 +168,6 @@ ca:
previous_strikes_description_html:
one: Aquest compte té <strong>una</strong> acció.
other: Aquest compte té <strong>%{count}</strong> accions.
zero: Aquest compte està <strong>al dia</strong>.
promote: Promociona
protocol: Protocol
public: Públic
@ -530,7 +529,6 @@ ca:
known_accounts:
one: "%{count} compte conegut"
other: "%{count} comptes coneguts"
zero: Cap compte conegut
moderation:
all: Totes
limited: Limitades
@ -775,6 +773,11 @@ ca:
system_checks:
database_schema_check:
message_html: Hi ha pendents migracions de la base de dades. Si us plau executa-les per a assegurar que l'aplicació es comporta com s'espera
elasticsearch_running_check:
message_html: No s'ha pogut connectar a Elasticsearch. Si us plau verifica que estigui funcionant o desactiva la cerca de text complet
elasticsearch_version_check:
message_html: 'Versió incompatible de Elasticsearch: %{value}'
version_comparison: Elasticsearch %{running_version} està funcionant mentre %{required_version} és requerida
rules_check:
action: Gestiona les normes del servidor
message_html: No has definit cap norma del servidor.
@ -795,9 +798,8 @@ ca:
disallow: No permetre l'enllaç
disallow_provider: No permetre el mitjà
shared_by_over_week:
one: Compartit per un usuari en la darrera setmana
other: Compartit per %{count} usuaris en la darrera setmana
zero: Compartit per ningú en la darrera setmana
one: Compartit per una persona en la darrera setmana
other: Compartit per %{count} persones en la darrera setmana
title: Enllaços en tendència
usage_comparison: Compartit %{today} vegades avui, comparat amb %{yesterday} d'ahir
pending_review: Revisió pendent
@ -838,9 +840,8 @@ ca:
usable: Pot ser emprat
usage_comparison: Usat %{today} vegades avui, comparat amb %{yesterday} d'ahir
used_by_over_week:
one: Emprat per un usuari en la darrera setmana
other: Emprat per %{count} usuaris en la darrera setmana
zero: Emprat per ningú en la darrera setmana
one: Emprat per una persona en la darrera setmana
other: Emprat per %{count} persones en la darrera setmana
title: Tendència
warning_presets:
add_new: Afegir-ne un de nou

@ -168,6 +168,11 @@ cs:
not_subscribed: Neodebírá
pending: Čeká na posouzení
perform_full_suspension: Pozastavit
previous_strikes_description_html:
few: Tento účet má <strong>%{count}</strong> strajky.
many: Tento účet má <strong>%{count}</strong> strajků.
one: Tento účet má <strong>jeden</strong> strajk.
other: Tento účet má <strong>%{count}</strong> strajků.
promote: Povýšit
protocol: Protokol
public: Veřejný
@ -366,6 +371,7 @@ cs:
enable: Povolit
enabled: Povoleno
enabled_msg: Emoji bylo úspěšně povoleno
image_hint: PNG nebo GIF do %{size}
list: Uvést
listed: Uvedeno
new:
@ -446,6 +452,8 @@ cs:
title: Doporučená sledování
unsuppress: Obnovit doporučení sledování
instances:
availability:
warning: Poslední pokus o připojení k tomuto serveru byl neúspěšný
back_to_all: Vše
back_to_limited: Omezený
back_to_warning: Varování
@ -527,12 +535,15 @@ cs:
one: "%{count} poznámka"
other: "%{count} poznámek"
action_taken_by: Akci vykonal uživatel
are_you_sure: Opravu?
are_you_sure: Jste si jisti?
assign_to_self: Přidělit ke mně
assigned: Přiřazený moderátor
by_target_domain: Doména nahlášeného účtu
category: Kategorie
category_description_html: Důvod nahlášení tohoto účtu a/nebo obsahu bude uveden v komunikaci s nahlášeným účtem
comment:
none: Žádné
comment_description_html: 'Pro upřesnění uživatel %{name} napsal:'
created_at: Nahlášené
forwarded: Přeposláno
forwarded_to: Přeposláno na %{domain}
@ -544,13 +555,19 @@ cs:
create_and_unresolve: Znovu otevřít s poznámkou
delete: Smazat
placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality…
title: Poznámky
notes_description_html: Zobrazit a zanechat poznámky pro ostatní moderátory i sebe v budoucnu
remote_user_placeholder: vzdálený uživatel z %{instance}
reopen: Znovu otevřít hlášení
report: 'Nahlásit #%{id}'
reported_account: Nahlášený účet
reported_by: Nahlášeno uživatelem
resolved: Vyřešeno
resolved_msg: Hlášení úspěšně vyřešeno!
skip_to_actions: Přeskočit k akcím
status: Stav
statuses: Nahlášený obsah
statuses_description_html: Obsah porušující pravidla bude uveden v komunikaci s nahlášeným účtem
target_origin: Původ nahlášeného účtu
title: Hlášení
unassign: Odebrat
@ -666,6 +683,11 @@ cs:
system_checks:
database_schema_check:
message_html: Na spuštění čekají databázové migrace. Nechte je prosím proběhnout pro zajištění očekávaného chování aplikace
elasticsearch_running_check:
message_html: Nelze se připojit k Elasticsearch. Prosím zkontrolujte, že běží, nebo vypněte fulltextové vyhledávání
elasticsearch_version_check:
message_html: 'Nekompatibilní verze Elasticsearch: %{value}'
version_comparison: Je spuštěn Elasticsearch %{running_version} místo vyžadovaného %{required_version}
rules_check:
action: Spravovat pravidla serveru
message_html: Nedefinovali jste žádná pravidla serveru.
@ -1041,6 +1063,9 @@ cs:
carry_mutes_over_text: Tento účet se přesunul z %{acct}, který jste skryli.
copy_account_note_text: 'Tento účet se přesunul z %{acct}, zde byly Vaše předchozí poznámky o něm:'
notification_mailer:
admin:
sign_up:
subject: Uživatel %{name} se zaregistroval
digest:
action: Zobrazit všechna oznámení
body: Zde najdete stručný souhrn zpráv, které jste zmeškali od vaší poslední návštěvy %{since}
@ -1082,6 +1107,8 @@ cs:
title: Nový boost
status:
subject: Nový příspěvek od %{name}
update:
subject: Uživatel %{name} upravil příspěvek
notifications:
email_events: Události pro e-mailová oznámení
email_events_hint: 'Vyberte události, pro které chcete dostávat oznámení:'
@ -1163,6 +1190,9 @@ cs:
reply:
proceed: Pokračovat k odpovědi
prompt: 'Chcete odpovědět na tento příspěvek:'
reports:
errors:
invalid_rules: neodkazuje na platná pravidla
scheduled_statuses:
over_daily_limit: Překročili jste limit %{limit} příspěvků naplánovaných na tento den
over_total_limit: Překročili jste limit %{limit} naplánovaných příspěvků
@ -1251,6 +1281,7 @@ cs:
other: "%{count} videí"
boosted_from_html: Boostnuto z %{acct_link}
content_warning: 'Varování o obsahu: %{warning}'
default_language: Stejný jako jazyk rozhraní
disallowed_hashtags:
few: 'obsahoval nepovolené hashtagy: %{tags}'
many: 'obsahoval nepovolené hashtagy: %{tags}'
@ -1450,6 +1481,8 @@ cs:
subject: Potvrďte prosím pokus o přihlášení
title: Pokus o přihlášení
warning:
explanation:
delete_statuses: Bylo shledáno, že některé vaše příspěvky porušují jednu nebo více zásad komunity a následně byly odstraněny moderátory %{instance}.
subject:
disable: Váš účet %{acct} byl zmrazen
none: Varování pro %{acct}

@ -166,9 +166,8 @@ da:
perform_full_suspension: Suspendér
previous_strikes: Tidligere anmeldelser (strikes)
previous_strikes_description_html:
one: Denne konto har <strong>et</strong> anmeldelse.
one: Denne konto har <strong>en</strong> anmeldelse.
other: Denne konto har <strong>%{count}</strong> anmeldelser.
zero: Denne konto er <strong>på god fod</strong>.
promote: Forfrem
protocol: Protokol
public: Offentlig
@ -530,7 +529,6 @@ da:
known_accounts:
one: "%{count} kendt konto"
other: "%{count} kendte konti"
zero: Ingen kendt konto
moderation:
all: Alle
limited: Begrænset
@ -775,6 +773,11 @@ da:
system_checks:
database_schema_check:
message_html: Databasemigreringer afventer. Kør dem for at sikre den forventede adfærd fra applikationen
elasticsearch_running_check:
message_html: Kunne ikke oprette forbindelse til Elasticsearch. Tjek, at den kører, eller deaktivér fuldtekstsøgning
elasticsearch_version_check:
message_html: 'Inkompatibel Elasticsearch-version: %{value}'
version_comparison: Elasticsearch %{running_version} kører, men %{required_version} kræves
rules_check:
action: Håndtér serverregler
message_html: Ingen serverregler defineret.
@ -795,9 +798,8 @@ da:
disallow: Tillad ikke link
disallow_provider: Tillad ikke udgiver
shared_by_over_week:
one: Delt af én person i løbet af den seneste uge
other: Delt af %{count} personer i løbet af den seneste uge
zero: Ikke delt af nogen i løbet af den seneste uge
one: Delt af én person den seneste uge
other: Delt af %{count} personer den seneste uge
title: Populære links
usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
pending_review: Afventer revision
@ -838,9 +840,8 @@ da:
usable: Kan anvendes
usage_comparison: Anvendt %{today} gange i dag, sammenlignet med %{yesterday} i går
used_by_over_week:
one: Anvendt af én person i løbet af den seneste uge
other: Anvendt af %{count} personer i løbet af den seneste uge
zero: Ikke anvendt af nogen i løbet af den seneste uge
one: Brugt af én person den seneste uge
other: Brugt af %{count} personer den seneste uge
title: Trends
warning_presets:
add_new: Tilføj ny

@ -165,10 +165,6 @@ de:
pending: In Warteschlange
perform_full_suspension: Verbannen
previous_strikes: Vorherige Strikes
previous_strikes_description_html:
one: Dieses Konto hat <strong>einen</strong> Strike.
other: Dieses Konto hat <strong>%{count}</strong> Strikes.
zero: Dieses Konto ist <strong>in gutem Stand</strong>.
promote: Befördern
protocol: Protokoll
public: Öffentlich
@ -527,10 +523,6 @@ de:
delivery_error_hint: Wenn eine Lieferung für %{count} Tage nicht möglich ist, wird sie automatisch als nicht lieferbar markiert.
destroyed_msg: Daten von %{domain} sind nun in der Warteschlange für die bevorstehende Löschung.
empty: Keine Domains gefunden.
known_accounts:
one: "%{count} bekanntes Konto"
other: "%{count} bekannte Konten"
zero: Kein bekanntes Konto
moderation:
all: Alle
limited: Beschränkt
@ -794,10 +786,6 @@ de:
description_html: Dies sind Links, die derzeit von Konten geteilt werden, von denen dein Server Beiträge sieht. Es kann deinen Benutzern helfen, herauszufinden, was in der Welt vor sich geht. Es werden keine Links öffentlich angezeigt, bis du den Publisher genehmigst. Du kannst auch einzelne Links zulassen oder ablehnen.
disallow: Verbiete Link
disallow_provider: Verbiete Herausgeber
shared_by_over_week:
one: In der letzten Woche geteilt von einer Person
other: In der letzten Woche geteilt von %{count} Personen
zero: Geteilt von niemandem in der letzten Woche
title: Angesagte Links
usage_comparison: Heute %{today} mal geteilt, gestern %{yesterday} mal
pending_review: Überprüfung ausstehend
@ -837,10 +825,6 @@ de:
trending_rank: 'Trend #%{rank}'
usable: Kann verwendet werden
usage_comparison: Heute %{today} mal genutzt, gestern %{yesterday} mal
used_by_over_week:
one: In der letzten Woche genutzt von einer Person
other: In der letzten Woche genutzt von %{count} Personen
zero: Genutzt von niemandem in der letzten Woche
title: Trends
warning_presets:
add_new: Neu hinzufügen

@ -8,10 +8,10 @@ ku:
failure:
already_authenticated: Jixwe te berê têketin kiriye.
inactive: Ajimêra te hîn nehatiye çalakkirin.
invalid: Nederbasdar %{authentication_keys} an jî şîfre.
invalid: "%{authentication_keys} an jî borînpeyv nederbasdar e."
last_attempt: Peşiya kilît kirina ajimêra te carek din jî biceribîne.
locked: Ajimêra ye hat kilît kirin.
not_found_in_database: Nederbasdar %{authentication_keys} an jî şîfre.
not_found_in_database: "%{authentication_keys} an jî borînpeyv nederbasdar e."
pending: Ajimêra te hîn tê vekolandin.
timeout: Danişîna te qedîya. Ji kerema xwe ji bo berdewamiyê dîsa têkeve.
unauthenticated: Peşiya berdewamiya te têketina xwe bike an jî xwe tomar bike.
@ -33,10 +33,10 @@ ku:
subject: 'Mastodon: E-name hate guhertin'
title: Navnîşana e-nameya nû
password_change:
explanation: Pêborîna ajimêra te hate guhertin.
explanation: Borînpeyva ajimêra te hate guhertin.
extra: Heke te ajimêra xwe ne guhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî.
subject: 'Mastodon: pêborîn hate guhertin'
title: Pêborîn hate guhertin
title: Borînpeyv hate guhertin
reconfirmation_instructions:
explanation: Navnîşana nû piştrast bike da ku tu e-nameya xwe biguherînî.
extra: |-
@ -45,13 +45,13 @@ ku:
subject: 'Mastodon: E-nameyê piştrast bike bo %{instance}'
title: Navnîşana e-nameyê piştrast bike
reset_password_instructions:
action: Pêborînê biguherîne
action: Borînpeyvê biguherîne
explanation: Te ji bo ajimêra xwe daxwaza pêborîneke nû kiriye.
extra: Heke te ev daxwaz nekir, jkx guh nede vê e-nameyê. Pêborîna te wê neyê guhertin heya ku tu li girêdana Jêrin bitikînî û yeka nû çê bikî.
extra: Heke te ev daxwaz nekir, jkx guh nede vê e-nameyê. Borînpeyva te wê neyê guhertin heya ku tu li girêdana Jêrin bitikînî û yeka nû çê bikî.
subject: 'Mastodon: rêwerzên jê birina pêborîn'
title: Pêborîn ji nû ve saz bike
title: Borînpeyv ji nû ve saz bike
two_factor_disabled:
explanation: Ji bo ajimêrê te piştrastkirina du-faktorî hat asteng kirin. Niha tu tenê bi navnîşana e-name û şîfre ya xwe dikarî têketin bikî.
explanation: Ji bo ajimêrê te piştrastkirina du-faktorî hat asteng kirin. Niha tu tenê bi navnîşana e-name û borînpeyva xwe dikarî têketinê bikî.
subject: 'Mastodon: piştrastkirina du- faktorî neçalak bike'
title: 2FA Neçalak e
two_factor_enabled:
@ -85,11 +85,11 @@ ku:
failure: Nikare ji %{kind} rastandinê bikê ji bo " %{reason}".
success: Ji ajimêra %{kind} bi serkeftî hate rastandin.
passwords:
no_token: Tu nikarî xwe bigihînî vê rûpelê bêyî ku tu ji e-nameya ji nû ve sazkirina borînê wernegerî. Heke tu ji e-nameya ji nû ve sazkirina borînê tê, ji kerema xwe pê ewle be ku tu girêdanê ya tevahî bi kar tînî.
send_instructions: Heke navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînê bistînî. Heke te ev e-name wernegirtibe, ji kerema xwe peldanka xwe ya spamê kontrol bike.
send_paranoid_instructions: Heke navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînê bistînî di hundir çend xulkan de. Heke te ev e-name wernegirtibe, ji kerema xwe peldanka xwe ya spamê kontrol bike.
updated: Pêborîna te bi serkeftî hate guhertin. Niha tu têketî ye.
updated_not_active: Pêborîna te bi serkeftî hate guhertin.
no_token: Tu nikarî xwe bigihînî vê rûpelê bêyî ku tu ji e-nameya ji nû ve sazkirina borînpeyvê wernegerî. Heke tu ji e-nameya ji nû ve sazkirina borînpeyvê tê, ji kerema xwe pê ewle be ku tu girêdanê ya tevahî bi kar tînî.
send_instructions: Heke navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînpeyvê bistînî. Heke te ev e-name wernegirtibe, ji kerema xwe peldanka xwe ya spamê kontrol bike.
send_paranoid_instructions: Heke navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînpeyvê bistînî di hundir çend xulkan de. Heke te ev e-name wernegirtibe, ji kerema xwe peldanka xwe ya spamê kontrol bike.
updated: Borînpeyva te bi serkeftî hate guhertin. Niha tu têketî ye.
updated_not_active: Borînpeyva te bi serkeftî hate guhertin.
registrations:
destroyed: Xatirê te! Ajimêra te bi serkeftî hate pûçkirin. Em hêvî dikin ku tu di nêzîk de te dîsa bibînin.
signed_up: Bi xêr hatî! Te bi serkeftî tomarkirin kir.

@ -12,7 +12,7 @@ th:
last_attempt: ณลองไดกหนงครงกอนทญชของคณจะถกลอค
locked: ญชของคณถกลอค
not_found_in_database: "%{authentication_keys} หรอรหสผานไมกตอง"
pending: ญชของคณยงอยระหวางการตรวจทาน
pending: ญชของคณยคงอยระหวางการตรวจทาน
timeout: เซสชนของคณหมดอายแลว โปรดลงชอเขาอกครงเพอดำเนนการต
unauthenticated: ณจำเปนตองลงชอเขาหรอลงทะเบยนกอนดำเนนการต
unconfirmed: ณตองยนยนทอยเมลของคณกอนดำเนนการต

@ -29,7 +29,7 @@ fa:
edit:
title: ویرایش برنامه
form:
error: اوخ! ببینید چیزی را اشتباهی در فرم وارد نکردهاید؟
error: اوخ! ببینید چیزی را اشتباهی در فرم وارد نکردهاید
help: