From 0518613dd7f821e2106f563128817c5e285008c5 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 22 Nov 2024 09:00:14 +0100 Subject: [PATCH 001/246] LinkDetailsExtractor adjustments (#31357) --- app/lib/link_details_extractor.rb | 18 ++++++++++++------ app/lib/nokogiri_handler.rb | 4 ++++ spec/lib/link_details_extractor_spec.rb | 8 +++++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb index 56533f6553..fe7f23f481 100644 --- a/app/lib/link_details_extractor.rb +++ b/app/lib/link_details_extractor.rb @@ -157,7 +157,7 @@ class LinkDetailsExtractor end def title - html_entities.decode(structured_data&.headline || opengraph_tag('og:title') || document.xpath('//title').map(&:content).first)&.strip + html_entities.decode(structured_data&.headline || opengraph_tag('og:title') || head.at_xpath('title')&.content)&.strip end def description @@ -205,11 +205,11 @@ class LinkDetailsExtractor end def language - valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.xpath('//html').pick('lang')) + valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.root.attr('lang')) end def icon - valid_url_or_nil(structured_data&.publisher_icon || link_tag('apple-touch-icon') || link_tag('shortcut icon')) + valid_url_or_nil(structured_data&.publisher_icon || link_tag('apple-touch-icon') || link_tag('icon')) end private @@ -237,18 +237,20 @@ class LinkDetailsExtractor end def link_tag(name) - document.xpath("//link[nokogiri:link_rel_include(@rel, '#{name}')]", NokogiriHandler).pick('href') + head.at_xpath("//link[nokogiri:link_rel_include(@rel, '#{name}')]", NokogiriHandler)&.attr('href') end def opengraph_tag(name) - document.xpath("//meta[@property=\"#{name}\" or @name=\"#{name}\"]").pick('content') + head.at_xpath("//meta[nokogiri:casecmp(@property, '#{name}') or nokogiri:casecmp(@name, '#{name}')]", NokogiriHandler)&.attr('content') end def meta_tag(name) - document.xpath("//meta[@name=\"#{name}\"]").pick('content') + head.at_xpath("//meta[nokogiri:casecmp(@name, '#{name}')]", NokogiriHandler)&.attr('content') end def structured_data + return @structured_data if defined?(@structured_data) + # Some publications have more than one JSON-LD definition on the page, # and some of those definitions aren't valid JSON either, so we have # to loop through here until we find something that is the right type @@ -273,6 +275,10 @@ class LinkDetailsExtractor @document ||= detect_encoding_and_parse_document end + def head + @head ||= document.at_xpath('/html/head') + end + def detect_encoding_and_parse_document html = nil encoding = nil diff --git a/app/lib/nokogiri_handler.rb b/app/lib/nokogiri_handler.rb index 804bcb9c04..26cf457955 100644 --- a/app/lib/nokogiri_handler.rb +++ b/app/lib/nokogiri_handler.rb @@ -8,5 +8,9 @@ class NokogiriHandler def link_rel_include(token_list, token) token_list.to_s.downcase.split(WHITE_SPACE).include?(token.downcase) end + + def casecmp(str1, str2) + str1.to_s.casecmp?(str2.to_s) + end end end diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb index d8d9db0ad1..36d6f22b00 100644 --- a/spec/lib/link_details_extractor_spec.rb +++ b/spec/lib/link_details_extractor_spec.rb @@ -49,7 +49,8 @@ RSpec.describe LinkDetailsExtractor do Man bites dog - + + HTML @@ -59,7 +60,8 @@ RSpec.describe LinkDetailsExtractor do .to have_attributes( title: eq('Man bites dog'), description: eq("A dog's tale"), - language: eq('en') + language: eq('en'), + icon: eq('https://example.com/favicon.ico') ) end end @@ -256,7 +258,7 @@ RSpec.describe LinkDetailsExtractor do - + From d75088d69967090bd9c16b6d1f1c06799a70c4f8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 22 Nov 2024 09:30:57 +0100 Subject: [PATCH 002/246] Fix pushing hashtag-followed posts to feeds of inactive users (#33018) --- app/models/tag_follow.rb | 2 ++ app/services/fan_out_on_write_service.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/tag_follow.rb b/app/models/tag_follow.rb index abe36cd171..528616c450 100644 --- a/app/models/tag_follow.rb +++ b/app/models/tag_follow.rb @@ -21,4 +21,6 @@ class TagFollow < ApplicationRecord accepts_nested_attributes_for :tag rate_limit by: :account, family: :follows + + scope :for_local_distribution, -> { joins(account: :user).merge(User.signed_in_recently) } end diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index 50b414bc52..3c084bc857 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -103,7 +103,7 @@ class FanOutOnWriteService < BaseService end def deliver_to_hashtag_followers! - TagFollow.where(tag_id: @status.tags.map(&:id)).select(:id, :account_id).reorder(nil).find_in_batches do |follows| + TagFollow.for_local_distribution.where(tag_id: @status.tags.map(&:id)).select(:id, :account_id).reorder(nil).find_in_batches do |follows| FeedInsertWorker.push_bulk(follows) do |follow| [@status.id, follow.account_id, 'tags', { 'update' => update? }] end From be2d4615ab1095f975306fe50f1d1e94601d9dbb Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 22 Nov 2024 03:31:23 -0500 Subject: [PATCH 003/246] Rely on Rails to enable YJIT when available (#33017) --- config/initializers/enable_yjit.rb | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 config/initializers/enable_yjit.rb diff --git a/config/initializers/enable_yjit.rb b/config/initializers/enable_yjit.rb deleted file mode 100644 index 7b1053ec11..0000000000 --- a/config/initializers/enable_yjit.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -# Automatically enable YJIT as of Ruby 3.3, as it brings very -# sizeable performance improvements. - -# If you are deploying to a memory constrained environment -# you may want to delete this file, but otherwise it's free -# performance. -if defined?(RubyVM::YJIT.enable) - Rails.application.config.after_initialize do - RubyVM::YJIT.enable - end -end From 2e5abe4720a972789e2a83b5e44b7ea24cfcd4c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 08:33:43 +0000 Subject: [PATCH 004/246] Update Yarn to v4.5.2 (#33021) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- streaming/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f907dc4f6c..4eb95d4389 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@mastodon/mastodon", "license": "AGPL-3.0-or-later", - "packageManager": "yarn@4.5.1", + "packageManager": "yarn@4.5.2", "engines": { "node": ">=18" }, diff --git a/streaming/package.json b/streaming/package.json index 380f1c429d..521544f42b 100644 --- a/streaming/package.json +++ b/streaming/package.json @@ -1,7 +1,7 @@ { "name": "@mastodon/streaming", "license": "AGPL-3.0-or-later", - "packageManager": "yarn@4.5.1", + "packageManager": "yarn@4.5.2", "engines": { "node": ">=18" }, From 47190087f804b503a558cccd5e2135ff0eaf9e5a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:44:09 +0100 Subject: [PATCH 005/246] New Crowdin Translations (automated) (#33020) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/af.json | 8 ---- app/javascript/mastodon/locales/an.json | 9 ----- app/javascript/mastodon/locales/ar.json | 10 ----- app/javascript/mastodon/locales/ast.json | 7 ---- app/javascript/mastodon/locales/be.json | 10 ----- app/javascript/mastodon/locales/bg.json | 35 +++++++++++----- app/javascript/mastodon/locales/bn.json | 8 ---- app/javascript/mastodon/locales/br.json | 9 ----- app/javascript/mastodon/locales/ca.json | 10 ----- app/javascript/mastodon/locales/ckb.json | 9 ----- app/javascript/mastodon/locales/co.json | 9 ----- app/javascript/mastodon/locales/cs.json | 10 ----- app/javascript/mastodon/locales/cy.json | 10 ----- app/javascript/mastodon/locales/da.json | 33 ++++++++++----- app/javascript/mastodon/locales/de.json | 34 +++++++++++----- app/javascript/mastodon/locales/el.json | 10 ----- app/javascript/mastodon/locales/en-GB.json | 38 +++++++++++++----- app/javascript/mastodon/locales/eo.json | 10 ----- app/javascript/mastodon/locales/es-AR.json | 10 ----- app/javascript/mastodon/locales/es-MX.json | 10 ----- app/javascript/mastodon/locales/es.json | 10 ----- app/javascript/mastodon/locales/et.json | 10 ----- app/javascript/mastodon/locales/eu.json | 10 ----- app/javascript/mastodon/locales/fa.json | 10 ----- app/javascript/mastodon/locales/fi.json | 34 +++++++++++----- app/javascript/mastodon/locales/fil.json | 8 ---- app/javascript/mastodon/locales/fo.json | 10 ----- app/javascript/mastodon/locales/fr-CA.json | 10 ----- app/javascript/mastodon/locales/fr.json | 10 ----- app/javascript/mastodon/locales/fy.json | 10 ----- app/javascript/mastodon/locales/ga.json | 10 ----- app/javascript/mastodon/locales/gd.json | 10 ----- app/javascript/mastodon/locales/gl.json | 10 ----- app/javascript/mastodon/locales/he.json | 34 +++++++++++----- app/javascript/mastodon/locales/hi.json | 8 ---- app/javascript/mastodon/locales/hr.json | 8 ---- app/javascript/mastodon/locales/hu.json | 10 ----- app/javascript/mastodon/locales/hy.json | 9 ----- app/javascript/mastodon/locales/ia.json | 10 ----- app/javascript/mastodon/locales/id.json | 9 ----- app/javascript/mastodon/locales/ie.json | 10 ----- app/javascript/mastodon/locales/ig.json | 1 - app/javascript/mastodon/locales/io.json | 10 ----- app/javascript/mastodon/locales/is.json | 34 +++++++++++----- app/javascript/mastodon/locales/it.json | 10 ----- app/javascript/mastodon/locales/ja.json | 10 ----- app/javascript/mastodon/locales/ka.json | 6 --- app/javascript/mastodon/locales/kab.json | 10 ----- app/javascript/mastodon/locales/kk.json | 8 ---- app/javascript/mastodon/locales/ko.json | 10 ----- app/javascript/mastodon/locales/ku.json | 9 ----- app/javascript/mastodon/locales/kw.json | 9 ----- app/javascript/mastodon/locales/la.json | 4 -- app/javascript/mastodon/locales/lad.json | 10 ----- app/javascript/mastodon/locales/lt.json | 34 +++++++++++----- app/javascript/mastodon/locales/lv.json | 10 ----- app/javascript/mastodon/locales/ml.json | 8 ---- app/javascript/mastodon/locales/mr.json | 8 ---- app/javascript/mastodon/locales/ms.json | 10 ----- app/javascript/mastodon/locales/my.json | 10 ----- app/javascript/mastodon/locales/nl.json | 34 +++++++++++----- app/javascript/mastodon/locales/nn.json | 10 ----- app/javascript/mastodon/locales/no.json | 10 ----- app/javascript/mastodon/locales/oc.json | 9 ----- app/javascript/mastodon/locales/pa.json | 2 - app/javascript/mastodon/locales/pl.json | 10 ----- app/javascript/mastodon/locales/pt-BR.json | 34 +++++++++++----- app/javascript/mastodon/locales/pt-PT.json | 10 ----- app/javascript/mastodon/locales/ro.json | 9 ----- app/javascript/mastodon/locales/ru.json | 10 ----- app/javascript/mastodon/locales/sa.json | 9 ----- app/javascript/mastodon/locales/sc.json | 10 ----- app/javascript/mastodon/locales/sco.json | 9 ----- app/javascript/mastodon/locales/si.json | 8 ---- app/javascript/mastodon/locales/sk.json | 10 ----- app/javascript/mastodon/locales/sl.json | 42 +++++++++++++++----- app/javascript/mastodon/locales/sq.json | 34 +++++++++++----- app/javascript/mastodon/locales/sr-Latn.json | 10 ----- app/javascript/mastodon/locales/sr.json | 10 ----- app/javascript/mastodon/locales/sv.json | 10 ----- app/javascript/mastodon/locales/ta.json | 8 ---- app/javascript/mastodon/locales/te.json | 8 ---- app/javascript/mastodon/locales/th.json | 10 ----- app/javascript/mastodon/locales/tok.json | 7 ---- app/javascript/mastodon/locales/tr.json | 33 ++++++++++----- app/javascript/mastodon/locales/tt.json | 6 --- app/javascript/mastodon/locales/uk.json | 12 +----- app/javascript/mastodon/locales/ur.json | 1 - app/javascript/mastodon/locales/uz.json | 7 ---- app/javascript/mastodon/locales/vi.json | 34 +++++++++++----- app/javascript/mastodon/locales/zgh.json | 7 ---- app/javascript/mastodon/locales/zh-CN.json | 36 ++++++++++++----- app/javascript/mastodon/locales/zh-HK.json | 10 ----- app/javascript/mastodon/locales/zh-TW.json | 34 +++++++++++----- config/locales/simple_form.zh-CN.yml | 2 +- 95 files changed, 399 insertions(+), 856 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index a506b99654..bf84cff111 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -154,7 +154,6 @@ "empty_column.hashtag": "Daar is nog niks vir hierdie hutsetiket nie.", "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", "empty_column.list": "Hierdie lys is nog leeg. Nuwe plasings deur lyslede sal voortaan hier verskyn.", - "empty_column.lists": "Jy het nog geen lyste nie. Wanneer jy een skep, sal dit hier vertoon.", "empty_column.notifications": "Jy het nog geen kennisgewings nie. Interaksie van ander mense met jou, sal hier vertoon.", "explore.search_results": "Soekresultate", "explore.suggested_follows": "Mense", @@ -222,15 +221,8 @@ "limited_account_hint.action": "Vertoon profiel in elk geval", "limited_account_hint.title": "Hierdie profiel is deur moderators van {domain} versteek.", "link_preview.author": "Deur {name}", - "lists.account.add": "Voeg by lys", - "lists.account.remove": "Verwyder vanaf lys", "lists.delete": "Verwyder lys", "lists.edit": "Redigeer lys", - "lists.edit.submit": "Verander titel", - "lists.new.create": "Voeg lys by", - "lists.new.title_placeholder": "Nuwe lys titel", - "lists.search": "Soek tussen mense wat jy volg", - "lists.subheading": "Jou lyste", "moved_to_account_banner.text": "Jou rekening {disabledAccount} is tans gedeaktiveer omdat jy na {movedToAccount} verhuis het.", "navigation_bar.about": "Oor", "navigation_bar.bookmarks": "Boekmerke", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index be303985ee..11be07e990 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -186,7 +186,6 @@ "empty_column.hashtag": "No i hai cosa en este hashtag encara.", "empty_column.home": "La tuya linia temporal ye vueda! Sigue a mas personas pa replenar-la. {suggestions}", "empty_column.list": "No i hai cosa en esta lista encara. Quan miembros d'esta lista publiquen nuevos estatus, estes amaneixerán qui.", - "empty_column.lists": "No tiens garra lista. Quan en crees una, s'amostrará aquí.", "empty_column.mutes": "Encara no has silenciau a garra usuario.", "empty_column.notifications": "No tiens garra notificación encara. Interactúa con atros pa empecipiar una conversación.", "empty_column.public": "No i hai cosa aquí! Escribe bella cosa publicament, u sigue usuarios d'atras instancias manualment pa emplir-lo", @@ -292,19 +291,11 @@ "lightbox.previous": "Anterior", "limited_account_hint.action": "Amostrar perfil de totz modos", "limited_account_hint.title": "Este perfil ha estau amagau per los moderadors de {domain}.", - "lists.account.add": "Anyadir a lista", - "lists.account.remove": "Sacar de lista", "lists.delete": "Borrar lista", "lists.edit": "Editar lista", - "lists.edit.submit": "Cambiar titol", - "lists.new.create": "Anyadir lista", - "lists.new.title_placeholder": "Titol d'a nueva lista", "lists.replies_policy.followed": "Qualsequier usuario seguiu", "lists.replies_policy.list": "Miembros d'a lista", "lists.replies_policy.none": "Dengún", - "lists.replies_policy.title": "Amostrar respuestas a:", - "lists.search": "Buscar entre la chent a la quala sigues", - "lists.subheading": "Las tuyas listas", "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}", "moved_to_account_banner.text": "La tuya cuenta {disabledAccount} ye actualment deshabilitada perque t'has mudau a {movedToAccount}.", "navigation_bar.about": "Sobre", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 7892766d87..f17d3dae22 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -269,7 +269,6 @@ "empty_column.hashtag": "ليس هناك بعدُ أي محتوى ذو علاقة بهذا الوسم.", "empty_column.home": "إنّ الخيط الزمني لصفحتك الرئيسة فارغ. قم بمتابعة المزيد من الناس كي يمتلأ.", "empty_column.list": "هذه القائمة فارغة مؤقتا و لكن سوف تمتلئ تدريجيا عندما يبدأ الأعضاء المُنتَمين إليها بنشر منشورات.", - "empty_column.lists": "ليس عندك أية قائمة بعد. سوف تظهر قوائمك هنا إن قمت بإنشاء واحدة.", "empty_column.mutes": "لم تقم بكتم أي مستخدم بعد.", "empty_column.notification_requests": "لا يوجد شيء هنا. عندما تتلقى إشعارات جديدة، سوف تظهر هنا وفقًا لإعداداتك.", "empty_column.notifications": "لم تتلق أي إشعار بعدُ. تفاعل مع المستخدمين الآخرين لإنشاء محادثة.", @@ -425,20 +424,11 @@ "limited_account_hint.title": "تم إخفاء هذا الملف الشخصي من قبل مشرفي {domain}.", "link_preview.author": "مِن {name}", "link_preview.more_from_author": "المزيد من {name}", - "lists.account.add": "أضف إلى القائمة", - "lists.account.remove": "احذف من القائمة", "lists.delete": "احذف القائمة", "lists.edit": "عدّل القائمة", - "lists.edit.submit": "تعديل العنوان", - "lists.exclusive": "إخفاء هذه المنشورات من الخيط الرئيسي", - "lists.new.create": "إضافة قائمة", - "lists.new.title_placeholder": "عنوان القائمة الجديدة", "lists.replies_policy.followed": "أي مستخدم متابَع", "lists.replies_policy.list": "أعضاء القائمة", "lists.replies_policy.none": "لا أحد", - "lists.replies_policy.title": "عرض الردود لـ:", - "lists.search": "إبحث في قائمة الحسابات التي تُتابِعها", - "lists.subheading": "قوائمك", "load_pending": "{count, plural, one {# عنصر جديد} other {# عناصر جديدة}}", "loading_indicator.label": "جاري التحميل…", "media_gallery.hide": "إخفاء", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index e5b1168bea..e6659510d2 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -155,7 +155,6 @@ "empty_column.hashtag": "Entá nun hai nada con esta etiqueta.", "empty_column.home": "¡La to llinia de tiempu ta balera! Sigui a cuentes pa enllenala.", "empty_column.list": "Nun hai nada nesta llista. Cuando los perfiles d'esta llista espublicen artículos nuevos, apaecen equí.", - "empty_column.lists": "Nun tienes nenguna llista. Cuando crees dalguna, apaez equí.", "empty_column.mutes": "Nun tienes nengún perfil colos avisos desactivaos.", "empty_column.notifications": "Nun tienes nengún avisu. Cuando otros perfiles interactúen contigo, apaez equí.", "empty_column.public": "¡Equí nun hai nada! Escribi daqué públicamente o sigui a perfiles d'otros sirvidores pa enllenar esta seición", @@ -260,15 +259,9 @@ "limited_account_hint.action": "Amosar el perfil de toes toes", "lists.delete": "Desaniciar la llista", "lists.edit": "Editar la llista", - "lists.edit.submit": "Camudar el títulu", - "lists.new.create": "Amestar la llista", - "lists.new.title_placeholder": "Títulu", "lists.replies_policy.followed": "Cualesquier perfil siguíu", "lists.replies_policy.list": "Perfiles de la llista", "lists.replies_policy.none": "Naide", - "lists.replies_policy.title": "Amosar les rempuestes a:", - "lists.search": "Buscar ente los perfiles que sigues", - "lists.subheading": "Les tos llistes", "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}", "navigation_bar.about": "Tocante a", "navigation_bar.blocks": "Perfiles bloquiaos", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 06d86a0e85..26a42ebc69 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -273,7 +273,6 @@ "empty_column.hashtag": "Па гэтаму хэштэгу пакуль што нічога няма.", "empty_column.home": "Галоўная стужка пустая! Падпішыцеся на іншых людзей, каб запоўніць яе. {suggestions}", "empty_column.list": "У гэтым спісе пакуль што нічога няма. Калі члены лісту апублікуюць новыя запісы, яны з'явяцца тут.", - "empty_column.lists": "Як толькі вы створыце новы спіс ён будзе захоўвацца тут, але пакуль што тут пуста.", "empty_column.mutes": "Вы яшчэ нікога не ігнаруеце.", "empty_column.notification_requests": "Чысціня! Тут нічога няма. Калі вы будзеце атрымліваць новыя апавяшчэння, яны будуць з'яўляцца тут у адпаведнасці з вашымі наладамі.", "empty_column.notifications": "У вас няма ніякіх апавяшчэнняў. Калі іншыя людзі ўзаемадзейнічаюць з вамі, вы ўбачыце гэта тут.", @@ -427,20 +426,11 @@ "link_preview.author": "Ад {name}", "link_preview.more_from_author": "Больш ад {name}", "link_preview.shares": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}", - "lists.account.add": "Дадаць да спісу", - "lists.account.remove": "Выдаліць са спісу", "lists.delete": "Выдаліць спіс", "lists.edit": "Рэдагаваць спіс", - "lists.edit.submit": "Змяніць назву", - "lists.exclusive": "Схаваць гэтыя допісы з галоўнай старонкі", - "lists.new.create": "Дадаць спіс", - "lists.new.title_placeholder": "Назва новага спіса", "lists.replies_policy.followed": "Любы карыстальнік, на якога вы падпісаліся", "lists.replies_policy.list": "Удзельнікі гэтага спісу", "lists.replies_policy.none": "Нікога", - "lists.replies_policy.title": "Паказваць адказы:", - "lists.search": "Шукайце сярод людзей, на якіх Вы падпісаны", - "lists.subheading": "Вашыя спісы", "load_pending": "{count, plural, one {# новы элемент} few {# новыя элементы} many {# новых элементаў} other {# новых элементаў}}", "loading_indicator.label": "Загрузка…", "media_gallery.hide": "Схаваць", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 456247cedf..32d61423d6 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -139,13 +139,16 @@ "column.blocks": "Блокирани потребители", "column.bookmarks": "Отметки", "column.community": "Локален инфопоток", + "column.create_list": "Създаване на списък", "column.direct": "Частни споменавания", "column.directory": "Разглеждане на профили", "column.domain_blocks": "Блокирани домейни", + "column.edit_list": "Промяна на списъка", "column.favourites": "Любими", "column.firehose": "Инфоканали на живо", "column.follow_requests": "Заявки за последване", "column.home": "Начало", + "column.list_members": "Управление на списъка с участници", "column.lists": "Списъци", "column.mutes": "Заглушени потребители", "column.notifications": "Известия", @@ -289,7 +292,6 @@ "empty_column.hashtag": "Още няма нищо в този хаштаг.", "empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}", "empty_column.list": "Все още списъкът е празен. Членуващите на списъка, публикуващи нови публикации, ще се появят тук.", - "empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.", "empty_column.mutes": "Още не сте заглушавали потребители.", "empty_column.notification_requests": "Всичко е чисто! Тук няма нищо. Получавайки нови известия, те ще се появят тук според настройките ви.", "empty_column.notifications": "Все още нямате известия. Взаимодействайте с другите, за да започнете разговора.", @@ -389,10 +391,16 @@ "ignore_notifications_modal.disclaimer": "Mastodon не може да осведоми потребители, че сте пренебрегнали известията им. Пренебрегването на известията няма да спре самите съобщения да не бъдат изпращани.", "ignore_notifications_modal.filter_to_act_users": "Вие все още ще може да приемате, отхвърляте или докладвате потребители", "ignore_notifications_modal.filter_to_avoid_confusion": "Прецеждането помага за избягване на възможно объркване", + "ignore_notifications_modal.ignore": "Пренебрегване на известията", + "ignore_notifications_modal.limited_accounts_title": "Пренебрегвате ли известията от модерирани акаунти?", + "ignore_notifications_modal.new_accounts_title": "Пренебрегвате ли известията от нови акаунти?", + "ignore_notifications_modal.not_followers_title": "Пренебрегвате ли известията от хора, които не са ви последвали?", + "ignore_notifications_modal.not_following_title": "Пренебрегвате ли известията от хора, които не сте последвали?", "interaction_modal.description.favourite": "Имайки акаунт в Mastodon, може да сложите тази публикации в любими, за да позволите на автора да узнае, че я цените и да я запазите за по-късно.", "interaction_modal.description.follow": "С акаунт в Mastodon може да последвате {name}, за да получавате публикациите от този акаунт в началния си инфоканал.", "interaction_modal.description.reblog": "С акаунт в Mastodon може да подсилите тази публикация, за да я споделите с последователите си.", "interaction_modal.description.reply": "С акаунт в Mastodon може да добавите отговор към тази публикация.", + "interaction_modal.description.vote": "Имайки акаунт в Mastodon, можете да гласувате в тази анкета.", "interaction_modal.login.action": "Към началото", "interaction_modal.login.prompt": "Домейнът на сървъра ви, примерно, mastodon.social", "interaction_modal.no_account_yet": "Още не е в Мастодон?", @@ -452,20 +460,22 @@ "link_preview.author": "От {name}", "link_preview.more_from_author": "Още от {name}", "link_preview.shares": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", - "lists.account.add": "Добавяне към списък", - "lists.account.remove": "Премахване от списъка", + "lists.create_list": "Създаване на списък", "lists.delete": "Изтриване на списъка", + "lists.done": "Готово", "lists.edit": "Промяна на списъка", - "lists.edit.submit": "Промяна на заглавие", - "lists.exclusive": "Скриване на тези публикации от началото", - "lists.new.create": "Добавяне на списък", - "lists.new.title_placeholder": "Ново заглавие на списъка", + "lists.find_users_to_add": "Намерете потребители за добавяне", + "lists.list_members": "Списък членуващи", + "lists.list_name": "Име на списък", + "lists.no_lists_yet": "Още няма списъци.", + "lists.no_members_yet": "Още няма членуващи.", + "lists.no_results_found": "Няма намерени резултати.", + "lists.remove_member": "Премахване", "lists.replies_policy.followed": "Някой последван потребител", "lists.replies_policy.list": "Членуващите в списъка", "lists.replies_policy.none": "Никого", - "lists.replies_policy.title": "Показване на отговори на:", - "lists.search": "Търсене измежду последваните", - "lists.subheading": "Вашите списъци", + "lists.save": "Запазване", + "lists.search_placeholder": "Търсене сред, които сте последвали", "load_pending": "{count, plural, one {# нов елемент} other {# нови елемента}}", "loading_indicator.label": "Зареждане…", "media_gallery.hide": "Скриване", @@ -596,6 +606,7 @@ "notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.", "notifications.policy.accept": "Приемам", "notifications.policy.accept_hint": "Показване в известия", + "notifications.policy.drop_hint": "Изпращане в празнотата, за да не се видим никога пак", "notifications.policy.filter": "Филтър", "notifications.policy.filter_limited_accounts_hint": "Ограничено от модераторите на сървъра", "notifications.policy.filter_limited_accounts_title": "Модерирани акаунти", @@ -855,6 +866,10 @@ "upload_form.audio_description": "Опишете за хора, които са глухи или трудно чуват", "upload_form.description": "Опишете за хора, които са слепи или имат слабо зрение", "upload_form.drag_and_drop.instructions": "Натиснете интервал или enter, за да подберете мултимедийно прикачване. Провлачвайки, ползвайте клавишите със стрелки, за да премествате мултимедията във всяка дадена посока. Натиснете пак интервал или enter, за да се стовари мултимедийното прикачване в новото си положение или натиснете Esc за отмяна.", + "upload_form.drag_and_drop.on_drag_cancel": "Провлачването е отменено. Мултимедийното прикачване {item} е спуснато.", + "upload_form.drag_and_drop.on_drag_end": "Мултимедийното прикачване {item} е спуснато.", + "upload_form.drag_and_drop.on_drag_over": "Мултимедийното прикачване {item} е преместено.", + "upload_form.drag_and_drop.on_drag_start": "Избрано мултимедийно прикачване {item}.", "upload_form.edit": "Редактиране", "upload_form.thumbnail": "Промяна на миниобраза", "upload_form.video_description": "Опишете за хора, които са глухи или трудно чуват, слепи или имат слабо зрение", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 9512f6a92b..03f59e1db4 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -202,7 +202,6 @@ "empty_column.hashtag": "এই হেসটাগে এখনো কিছু নেই।", "empty_column.home": "আপনার বাড়ির সময়রেখা এখনো খালি! {public} এ ঘুরে আসুন অথবা অনুসন্ধান বেবহার করে শুরু করতে পারেন এবং অন্য ব্যবহারকারীদের সাথে সাক্ষাৎ করতে পারেন।", "empty_column.list": "এই তালিকাতে এখনো কিছু নেই. যখন এই তালিকায় থাকা ব্যবহারকারী নতুন কিছু লিখবে, সেগুলো এখানে পাওয়া যাবে।", - "empty_column.lists": "আপনার এখনো কোনো তালিকা তৈরী নেই। যদি বা যখন তৈরী করেন, সেগুলো এখানে পাওয়া যাবে।", "empty_column.mutes": "আপনি এখনো কোনো ব্যবহারকারীকে নিঃশব্দ করেননি।", "empty_column.notifications": "আপনার এখনো কোনো প্রজ্ঞাপন নেই। কথোপকথন শুরু করতে, অন্যদের সাথে মেলামেশা করতে পারেন।", "empty_column.public": "এখানে এখনো কিছু নেই! প্রকাশ্য ভাবে কিছু লিখুন বা অন্য সার্ভার থেকে কাওকে অনুসরণ করে এই জায়গা ভরে ফেলুন", @@ -277,16 +276,9 @@ "lightbox.next": "পরবর্তী", "lightbox.previous": "পূর্ববর্তী", "link_preview.author": "{name} এর লিখা", - "lists.account.add": "তালিকাতে যুক্ত করতে", - "lists.account.remove": "তালিকা থেকে বাদ দিতে", "lists.delete": "তালিকা মুছে ফেলতে", "lists.edit": "তালিকা সম্পাদনা করতে", - "lists.edit.submit": "শিরোনাম সম্পাদনা করতে", - "lists.new.create": "তালিকাতে যুক্ত করতে", - "lists.new.title_placeholder": "তালিকার নতুন শিরোনাম দিতে", "lists.replies_policy.none": "কেউ না", - "lists.search": "যাদের অনুসরণ করেন তাদের ভেতরে খুঁজুন", - "lists.subheading": "আপনার তালিকা", "load_pending": "{count, plural, one {# নতুন জিনিস} other {# নতুন জিনিস}}", "navigation_bar.about": "পরিচিতি", "navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 13ca521ab0..da99874f0b 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -223,7 +223,6 @@ "empty_column.hashtag": "N'eus netra en hashtag-mañ c'hoazh.", "empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.", "empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet toudoù nevez gant e izili e teuint war wel amañ.", - "empty_column.lists": "N'ho peus roll ebet c'hoazh. Pa vo krouet unan ganeoc'h e vo diskouezet amañ.", "empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.", "empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.", "empty_column.public": "N'eus netra amañ! Skrivit un dra bennak foran pe heuilhit implijer·ien·ezed eus dafariadoù all evit leuniañ", @@ -346,19 +345,11 @@ "limited_account_hint.action": "Diskouez an aelad memes tra", "limited_account_hint.title": "Kuzhet eo bet ar profil-mañ gant an evezhierien eus {domain}.", "link_preview.author": "Gant {name}", - "lists.account.add": "Ouzhpennañ d'al listenn", - "lists.account.remove": "Lemel kuit eus al listenn", "lists.delete": "Dilemel al listenn", "lists.edit": "Kemmañ al listenn", - "lists.edit.submit": "Cheñch an titl", - "lists.new.create": "Ouzhpennañ ul listenn", - "lists.new.title_placeholder": "Titl nevez al listenn", "lists.replies_policy.followed": "Pep implijer.ez heuliet", "lists.replies_policy.list": "Izili ar roll", "lists.replies_policy.none": "Den ebet", - "lists.replies_policy.title": "Diskouez ar respontoù:", - "lists.search": "Klask e-touez tud heuliet ganeoc'h", - "lists.subheading": "Ho listennoù", "load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}", "loading_indicator.label": "O kargañ…", "navigation_bar.about": "Diwar-benn", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 53bfc4474c..fc100d7c01 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -286,7 +286,6 @@ "empty_column.hashtag": "Encara no hi ha res en aquesta etiqueta.", "empty_column.home": "La teva línia de temps és buida! Segueix més gent per a emplenar-la. {suggestions}", "empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres facin nous tuts, apareixeran aquí.", - "empty_column.lists": "Encara no tens cap llista. Quan en facis una, apareixerà aquí.", "empty_column.mutes": "Encara no has silenciat cap usuari.", "empty_column.notification_requests": "Tot net, ja no hi ha res aquí! Quan rebeu notificacions noves, segons la vostra configuració, apareixeran aquí.", "empty_column.notifications": "Encara no tens notificacions. Quan altre gent interactuï amb tu, les veuràs aquí.", @@ -459,20 +458,11 @@ "link_preview.author": "Per {name}", "link_preview.more_from_author": "Més de {name}", "link_preview.shares": "{count, plural, one {{counter} publicació} other {{counter} publicacions}}", - "lists.account.add": "Afegeix a la llista", - "lists.account.remove": "Elimina de la llista", "lists.delete": "Elimina la llista", "lists.edit": "Edita la llista", - "lists.edit.submit": "Canvia el títol", - "lists.exclusive": "Amaga aquests tuts a Inici", - "lists.new.create": "Afegeix una llista", - "lists.new.title_placeholder": "Nou títol de la llista", "lists.replies_policy.followed": "Qualsevol usuari que segueixis", "lists.replies_policy.list": "Membres de la llista", "lists.replies_policy.none": "Ningú", - "lists.replies_policy.title": "Mostra respostes a:", - "lists.search": "Cerca entre les persones que segueixes", - "lists.subheading": "Les teves llistes", "load_pending": "{count, plural, one {# element nou} other {# elements nous}}", "loading_indicator.label": "Es carrega…", "media_gallery.hide": "Amaga", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 469cf4410d..292aefb4cf 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -221,7 +221,6 @@ "empty_column.hashtag": "هێشتا هیچ شتێک لەم هاشتاگەدا نییە.", "empty_column.home": "تایم لاینی ماڵەوەت بەتاڵە! سەردانی {public} بکە یان گەڕان بەکاربێنە بۆ دەستپێکردن و بینینی بەکارهێنەرانی تر.", "empty_column.list": "هێشتا هیچ شتێک لەم لیستەدا نییە. کاتێک ئەندامانی ئەم لیستە دەنگی نوێ بڵاودەکەن، لێرە دەردەکەون.", - "empty_column.lists": "تۆ هێشتا هیچ لیستت دروست نەکردووە، کاتێک دانەیەک دروست دەکەیت، لێرە پیشان دەدرێت.", "empty_column.mutes": "تۆ هێشتا هیچ بەکارهێنەرێکت بێدەنگ نەکردووە.", "empty_column.notifications": "تۆ هێشتا هیچ ئاگانامێکت نیە. چالاکی لەگەڵ کەسانی دیکە بکە بۆ دەستپێکردنی گفتوگۆکە.", "empty_column.public": "لێرە هیچ نییە! شتێک بە ئاشکرا بنووسە(بەگشتی)، یان بە دەستی شوێن بەکارهێنەران بکەوە لە ڕاژەکانی ترەوە بۆ پڕکردنەوەی", @@ -338,19 +337,11 @@ "lightbox.previous": "پێشوو", "limited_account_hint.action": "بەهەر حاڵ پڕۆفایلی پیشان بدە", "limited_account_hint.title": "ئەم پرۆفایلە لەلایەن بەڕێوەبەرانی {domain} شاراوەتەوە.", - "lists.account.add": "زیادکردن بۆ لیست", - "lists.account.remove": "لابردن لە لیست", "lists.delete": "سڕینەوەی لیست", "lists.edit": "دەستکاری لیست", - "lists.edit.submit": "گۆڕینی ناونیشان", - "lists.new.create": "زیادکردنی لیست", - "lists.new.title_placeholder": "ناونیشانی لیستی نوێ", "lists.replies_policy.followed": "هەر بەکارهێنەرێکی بەدواکەوتوو", "lists.replies_policy.list": "ئەندامانی لیستەکە", "lists.replies_policy.none": "هیچکەس", - "lists.replies_policy.title": "پیشاندانی وەڵامەکان بۆ:", - "lists.search": "بگەڕێ لەناو ئەو کەسانەی کە شوێنیان کەوتویت", - "lists.subheading": "لیستەکانت", "load_pending": "{count, plural, one {# بەڕگەی نوێ} other {# بەڕگەی نوێ}}", "moved_to_account_banner.text": "ئەکاونتەکەت {disabledAccount} لە ئێستادا لەکارخراوە چونکە تۆ چوویتە {movedToAccount}.", "navigation_bar.about": "دەربارە", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 043061769b..033f3fc80b 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -132,7 +132,6 @@ "empty_column.hashtag": "Ùn c'hè ancu nunda quì.", "empty_column.home": "A vostr'accolta hè viota! Pudete andà nant'à {public} o pruvà a ricerca per truvà parsone da siguità.", "empty_column.list": "Ùn c'hè ancu nunda quì. Quandu membri di sta lista manderanu novi statuti, i vidarete quì.", - "empty_column.lists": "Ùn avete manc'una lista. Quandu farete una, sarà mustrata quì.", "empty_column.mutes": "Per avà ùn avete manc'un utilizatore piattatu.", "empty_column.notifications": "Ùn avete ancu nisuna nutificazione. Interact with others to start the conversation.", "empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altri servori per empie a linea pubblica", @@ -198,19 +197,11 @@ "lightbox.close": "Chjudà", "lightbox.next": "Siguente", "lightbox.previous": "Pricidente", - "lists.account.add": "Aghjunghje à a lista", - "lists.account.remove": "Toglie di a lista", "lists.delete": "Toglie a lista", "lists.edit": "Mudificà a lista", - "lists.edit.submit": "Cambià u titulu", - "lists.new.create": "Aghjunghje", - "lists.new.title_placeholder": "Titulu di a lista", "lists.replies_policy.followed": "Tutti i vostri abbunamenti", "lists.replies_policy.list": "Membri di a lista", "lists.replies_policy.none": "Nimu", - "lists.replies_policy.title": "Vede e risposte à:", - "lists.search": "Circà indè i vostr'abbunamenti", - "lists.subheading": "E vo liste", "load_pending": "{count, plural, one {# entrata nova} other {# entrate nove}}", "navigation_bar.blocks": "Utilizatori bluccati", "navigation_bar.bookmarks": "Segnalibri", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 7198bcab58..89db6c5cb3 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -267,7 +267,6 @@ "empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.", "empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí.", "empty_column.list": "V tomto seznamu zatím nic není. Až nějaký člen z tohoto seznamu zveřejní nový příspěvek, objeví se zde.", - "empty_column.lists": "Zatím nemáte žádné seznamy. Až nějaký vytvoříte, zobrazí se zde.", "empty_column.mutes": "Zatím jste neskryli žádného uživatele.", "empty_column.notification_requests": "Vyčištěno! Nic tu není. Jakmile obdržíš nové notifikace, objeví se zde podle tvého nastavení.", "empty_column.notifications": "Zatím nemáte žádná oznámení. Až s vámi někdo bude interagovat, uvidíte to zde.", @@ -415,20 +414,11 @@ "link_preview.author": "Podle {name}", "link_preview.more_from_author": "Více od {name}", "link_preview.shares": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} many {{counter} příspěvků} other {{counter} příspěvků}}", - "lists.account.add": "Přidat do seznamu", - "lists.account.remove": "Odebrat ze seznamu", "lists.delete": "Smazat seznam", "lists.edit": "Upravit seznam", - "lists.edit.submit": "Změnit název", - "lists.exclusive": "Skrýt tyto příspěvky z domovské stránky", - "lists.new.create": "Přidat seznam", - "lists.new.title_placeholder": "Název nového seznamu", "lists.replies_policy.followed": "Sledovaným uživatelům", "lists.replies_policy.list": "Členům seznamu", "lists.replies_policy.none": "Nikomu", - "lists.replies_policy.title": "Odpovědi zobrazovat:", - "lists.search": "Hledejte mezi lidmi, které sledujete", - "lists.subheading": "Vaše seznamy", "load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položek} other {# nových položek}}", "loading_indicator.label": "Načítání…", "moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován, protože jste se přesunul/a na {movedToAccount}.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 1fa17e56ea..c4f79da43a 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Nid oes dim ar yr hashnod hwn eto.", "empty_column.home": "Mae eich ffrwd gartref yn wag! Dilynwch fwy o bobl i'w llenwi.", "empty_column.list": "Does dim yn y rhestr yma eto. Pan fydd aelodau'r rhestr yn cyhoeddi postiad newydd, mi fydd yn ymddangos yma.", - "empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan fyddwch yn creu un, mi fydd yn ymddangos yma.", "empty_column.mutes": "Nid ydych wedi tewi unrhyw ddefnyddwyr eto.", "empty_column.notification_requests": "Dim i boeni amdano! Does dim byd yma. Pan fyddwch yn derbyn hysbysiadau newydd, byddan nhw'n ymddangos yma yn ôl eich gosodiadau.", "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ag eraill i ddechrau'r sgwrs.", @@ -465,20 +464,11 @@ "link_preview.author": "Gan {name}", "link_preview.more_from_author": "Mwy gan {name}", "link_preview.shares": "{count, plural, one {{counter} postiad } two {{counter} bostiad } few {{counter} postiad} many {{counter} postiad} other {{counter} postiad}}", - "lists.account.add": "Ychwanegu at restr", - "lists.account.remove": "Tynnu o'r rhestr", "lists.delete": "Dileu rhestr", "lists.edit": "Golygu rhestr", - "lists.edit.submit": "Newid teitl", - "lists.exclusive": "Cuddio'r postiadau hyn o'r ffrwd gartref", - "lists.new.create": "Ychwanegu rhestr", - "lists.new.title_placeholder": "Teitl rhestr newydd", "lists.replies_policy.followed": "Unrhyw ddefnyddiwr sy'n cael ei ddilyn", "lists.replies_policy.list": "Aelodau'r rhestr", "lists.replies_policy.none": "Neb", - "lists.replies_policy.title": "Dangos atebion i:", - "lists.search": "Chwilio ymysg pobl rydych yn eu dilyn", - "lists.subheading": "Eich rhestrau", "load_pending": "{count, plural, one {# eitem newydd} other {# eitem newydd}}", "loading_indicator.label": "Yn llwytho…", "media_gallery.hide": "Cuddio", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 4ba1f4d9e1..9f0f27b804 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -140,13 +140,16 @@ "column.blocks": "Blokerede brugere", "column.bookmarks": "Bogmærker", "column.community": "Lokal tidslinje", + "column.create_list": "Opret liste", "column.direct": "Private omtaler", "column.directory": "Tjek profiler", "column.domain_blocks": "Blokerede domæner", + "column.edit_list": "Redigér liste", "column.favourites": "Favoritter", "column.firehose": "Live feeds", "column.follow_requests": "Følgeanmodninger", "column.home": "Hjem", + "column.list_members": "Håndtér listemedlemmer", "column.lists": "Lister", "column.mutes": "Skjulte brugere (mutede)", "column.notifications": "Notifikationer", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Der er intet med dette hashtag endnu.", "empty_column.home": "Din hjemmetidslinje er tom! Følg nogle personer, for at udfylde den. {suggestions}", "empty_column.list": "Der er ikke noget på denne liste endnu. Når medlemmer af listen udgiver nye indlæg vil de fremgå hér.", - "empty_column.lists": "Du har endnu ingen lister. Når du opretter én, vil den fremgå hér.", "empty_column.mutes": "Du har endnu ikke skjult (muted) nogle brugere.", "empty_column.notification_requests": "Alt er klar! Der er intet her. Når der modtages nye notifikationer, fremgår de her jf. dine indstillinger.", "empty_column.notifications": "Du har endnu ingen notifikationer. Når andre interagerer med dig, vil det fremgå hér.", @@ -465,20 +467,31 @@ "link_preview.author": "Af {name}", "link_preview.more_from_author": "Mere fra {name}", "link_preview.shares": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}", - "lists.account.add": "Føj til liste", - "lists.account.remove": "Fjern fra liste", + "lists.add_member": "Tilføj", + "lists.add_to_list": "Føj til liste", + "lists.add_to_lists": "Føj {name} til lister", + "lists.create": "Opret", + "lists.create_a_list_to_organize": "Opret en ny liste til organisering af hjemmefeed", + "lists.create_list": "Opret liste", "lists.delete": "Slet liste", + "lists.done": "Færdig", "lists.edit": "Redigér liste", - "lists.edit.submit": "Skift titel", - "lists.exclusive": "Skjul disse indlæg hjemmefra", - "lists.new.create": "Tilføj liste", - "lists.new.title_placeholder": "Ny listetitel", + "lists.exclusive": "Skjul medlemmer i Hjem", + "lists.exclusive_hint": "Er nogen er på denne liste, skjul personen i hjemme-feeds for at undgå at se vedkommendes indlæg to gange.", + "lists.find_users_to_add": "Find brugere at tilføje", + "lists.list_members_count": "{count, plural, one {# medlem} other {# medlemmer}}", + "lists.list_name": "Listetitel", + "lists.new_list_name": "Ny listetitel", + "lists.no_lists_yet": "Ingen lister endnu.", + "lists.no_members_yet": "Ingen medlemmer endnu.", + "lists.no_results_found": "Ingen resultater fundet.", + "lists.remove_member": "Fjern", "lists.replies_policy.followed": "Enhver bruger, der følges", "lists.replies_policy.list": "Listemedlemmer", "lists.replies_policy.none": "Ingen", - "lists.replies_policy.title": "Vis svar til:", - "lists.search": "Søg blandt personer, som følges", - "lists.subheading": "Dine lister", + "lists.save": "Gem", + "lists.search_placeholder": "Søg efter folk, man følger", + "lists.show_replies_to": "Medtag svar fra listemedlemmer til", "load_pending": "{count, plural, one {# nyt emne} other {# nye emner}}", "loading_indicator.label": "Indlæser…", "media_gallery.hide": "Skjul", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index e9bf6a4181..b47007522b 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -140,13 +140,16 @@ "column.blocks": "Blockierte Profile", "column.bookmarks": "Lesezeichen", "column.community": "Lokale Timeline", + "column.create_list": "Liste erstellen", "column.direct": "Private Erwähnungen", "column.directory": "Profile durchsuchen", "column.domain_blocks": "Blockierte Domains", + "column.edit_list": "Liste bearbeiten", "column.favourites": "Favoriten", "column.firehose": "Live-Feeds", "column.follow_requests": "Follower-Anfragen", "column.home": "Startseite", + "column.list_members": "Listenmitglieder verwalten", "column.lists": "Listen", "column.mutes": "Stummgeschaltete Profile", "column.notifications": "Benachrichtigungen", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.", "empty_column.home": "Die Timeline deiner Startseite ist leer! Folge mehr Leuten, um sie zu füllen.", "empty_column.list": "Diese Liste ist derzeit leer. Wenn Konten auf dieser Liste neue Beiträge veröffentlichen, werden sie hier erscheinen.", - "empty_column.lists": "Du hast noch keine Listen. Sobald du eine anlegst, wird sie hier erscheinen.", "empty_column.mutes": "Du hast keine Profile stummgeschaltet.", "empty_column.notification_requests": "Alles klar! Hier gibt es nichts. Wenn Sie neue Mitteilungen erhalten, werden diese entsprechend Ihren Einstellungen hier angezeigt.", "empty_column.notifications": "Du hast noch keine Benachrichtigungen. Sobald andere Personen mit dir interagieren, wirst du hier darüber informiert.", @@ -465,20 +467,32 @@ "link_preview.author": "Von {name}", "link_preview.more_from_author": "Mehr von {name}", "link_preview.shares": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", - "lists.account.add": "Zur Liste hinzufügen", - "lists.account.remove": "Von der Liste entfernen", + "lists.add_member": "Hinzufügen", + "lists.add_to_list": "Zur Liste hinzufügen", + "lists.add_to_lists": "{name} zu Listen hinzufügen", + "lists.create": "Erstellen", + "lists.create_a_list_to_organize": "Erstelle eine neue Liste, um deine Startseite zu organisieren", + "lists.create_list": "Liste erstellen", "lists.delete": "Liste löschen", + "lists.done": "Fertig", "lists.edit": "Liste bearbeiten", - "lists.edit.submit": "Titel ändern", - "lists.exclusive": "Diese Beiträge in der Startseite ausblenden", - "lists.new.create": "Neue Liste erstellen", - "lists.new.title_placeholder": "Titel der neuen Liste", + "lists.exclusive": "Mitglieder auf der Startseite ausblenden", + "lists.exclusive_hint": "Profile, die sich auf dieser Liste befinden, werden nicht auf deiner Startseite angezeigt, damit deren Beiträge nicht doppelt erscheinen.", + "lists.find_users_to_add": "Suche nach Profilen, um sie hinzuzufügen", + "lists.list_members": "Listenmitglieder", + "lists.list_members_count": "{count, plural, one {# Mitglied} other {# Mitglieder}}", + "lists.list_name": "Titel der Liste", + "lists.new_list_name": "Neuer Listentitel", + "lists.no_lists_yet": "Noch keine Listen vorhanden.", + "lists.no_members_yet": "Keine Mitglieder vorhanden.", + "lists.no_results_found": "Keine Suchergebnisse.", + "lists.remove_member": "Entfernen", "lists.replies_policy.followed": "Alle folgenden Profile", "lists.replies_policy.list": "Mitglieder der Liste", "lists.replies_policy.none": "Niemanden", - "lists.replies_policy.title": "Antworten anzeigen für:", - "lists.search": "Suche nach Leuten, denen du folgst", - "lists.subheading": "Deine Listen", + "lists.save": "Speichern", + "lists.search_placeholder": "Nach Profilen suchen, denen du folgst", + "lists.show_replies_to": "Antworten von Listenmitgliedern anzeigen für …", "load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}", "loading_indicator.label": "Wird geladen …", "media_gallery.hide": "Ausblenden", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 2920968e6a..57f47dda7b 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -291,7 +291,6 @@ "empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ετικέτα.", "empty_column.home": "Η τοπική σου ροή είναι κενή! Πήγαινε στο {public} ή κάνε αναζήτηση για να ξεκινήσεις και να γνωρίσεις άλλους χρήστες.", "empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ.", - "empty_column.lists": "Δεν έχεις καμία λίστα ακόμα. Μόλις φτιάξεις μια, θα εμφανιστεί εδώ.", "empty_column.mutes": "Δεν έχεις κανένα χρήστη σε σίγαση ακόμα.", "empty_column.notification_requests": "Όλα καθαρά! Δεν υπάρχει τίποτα εδώ. Όταν λαμβάνεις νέες ειδοποιήσεις, αυτές θα εμφανίζονται εδώ σύμφωνα με τις ρυθμίσεις σου.", "empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Όταν άλλα άτομα αλληλεπιδράσουν μαζί σου, θα το δεις εδώ.", @@ -464,20 +463,11 @@ "link_preview.author": "Από {name}", "link_preview.more_from_author": "Περισσότερα από {name}", "link_preview.shares": "{count, plural, one {{counter} ανάρτηση} other {{counter} αναρτήσεις}}", - "lists.account.add": "Πρόσθεσε στη λίστα", - "lists.account.remove": "Βγάλε από τη λίστα", "lists.delete": "Διαγραφή λίστας", "lists.edit": "Επεξεργασία λίστας", - "lists.edit.submit": "Αλλαγή τίτλου", - "lists.exclusive": "Απόκρυψη αυτών των αναρτήσεων από την αρχική", - "lists.new.create": "Προσθήκη λίστας", - "lists.new.title_placeholder": "Τίτλος νέας λίστα", "lists.replies_policy.followed": "Οποιοσδήποτε χρήστης που ακολουθείς", "lists.replies_policy.list": "Μέλη της λίστας", "lists.replies_policy.none": "Κανένας", - "lists.replies_policy.title": "Εμφάνιση απαντήσεων σε:", - "lists.search": "Αναζήτησε μεταξύ των ανθρώπων που ακουλουθείς", - "lists.subheading": "Οι λίστες σου", "load_pending": "{count, plural, one {# νέο στοιχείο} other {# νέα στοιχεία}}", "loading_indicator.label": "Φόρτωση…", "media_gallery.hide": "Απόκρυψη", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index d482ec21dd..8d4201484d 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -87,6 +87,25 @@ "alert.unexpected.title": "Oops!", "alt_text_badge.title": "Alt text", "announcement.announcement": "Announcement", + "annual_report.summary.archetype.booster": "The cool-hunter", + "annual_report.summary.archetype.lurker": "The lurker", + "annual_report.summary.archetype.oracle": "The oracle", + "annual_report.summary.archetype.pollster": "The pollster", + "annual_report.summary.archetype.replier": "The social butterfly", + "annual_report.summary.followers.followers": "followers", + "annual_report.summary.followers.total": "{count} total", + "annual_report.summary.here_it_is": "Here is your {year} in review:", + "annual_report.summary.highlighted_post.by_favourites": "most favourited post", + "annual_report.summary.highlighted_post.by_reblogs": "most boosted post", + "annual_report.summary.highlighted_post.by_replies": "post with the most replies", + "annual_report.summary.highlighted_post.possessive": "{name}'s", + "annual_report.summary.most_used_app.most_used_app": "most used app", + "annual_report.summary.most_used_hashtag.most_used_hashtag": "most used hashtag", + "annual_report.summary.most_used_hashtag.none": "None", + "annual_report.summary.new_posts.new_posts": "new posts", + "annual_report.summary.percentile.text": "That puts you in the topof Mastodon users.", + "annual_report.summary.percentile.we_wont_tell_bernie": "We won't tell Bernie.", + "annual_report.summary.thanks": "Thanks for being part of Mastodon!", "attachments_list.unprocessed": "(unprocessed)", "audio.hide": "Hide audio", "block_modal.remote_users_caveat": "We will ask the server {domain} to respect your decision. However, compliance is not guaranteed since some servers may handle blocks differently. Public posts may still be visible to non-logged-in users.", @@ -158,6 +177,7 @@ "compose_form.poll.duration": "Poll duration", "compose_form.poll.multiple": "Multiple choice", "compose_form.poll.option_placeholder": "Option {number}", + "compose_form.poll.single": "Single choice", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", "compose_form.poll.type": "Style", @@ -196,6 +216,7 @@ "confirmations.unfollow.title": "Unfollow user?", "content_warning.hide": "Hide post", "content_warning.show": "Show anyway", + "content_warning.show_more": "Show more", "conversation.delete": "Delete conversation", "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", @@ -271,7 +292,6 @@ "empty_column.hashtag": "There is nothing in this hashtag yet.", "empty_column.home": "Your home timeline is empty! Follow more people to fill it up.", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", "empty_column.mutes": "You haven't muted any users yet.", "empty_column.notification_requests": "All clear! There is nothing here. When you receive new notifications, they will appear here according to your settings.", "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", @@ -304,6 +324,7 @@ "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", "filter_modal.select_filter.title": "Filter this post", "filter_modal.title.status": "Filter a post", + "filter_warning.matches_filter": "Matches filter \"{title}\"", "filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know", "filtered_notifications_banner.title": "Filtered notifications", "firehose.all": "All", @@ -383,6 +404,7 @@ "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.description.vote": "With an account on Mastodon, you can vote in this poll.", "interaction_modal.login.action": "Take me home", "interaction_modal.login.prompt": "Domain of your home server, e.g. mastodon.social", "interaction_modal.no_account_yet": "Not on Mastodon?", @@ -394,6 +416,7 @@ "interaction_modal.title.follow": "Follow {name}", "interaction_modal.title.reblog": "Boost {name}'s post", "interaction_modal.title.reply": "Reply to {name}'s post", + "interaction_modal.title.vote": "Vote in {name}'s poll", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -441,20 +464,11 @@ "link_preview.author": "By {name}", "link_preview.more_from_author": "More from {name}", "link_preview.shares": "{count, plural, one {{counter} post} other {{counter} posts}}", - "lists.account.add": "Add to list", - "lists.account.remove": "Remove from list", "lists.delete": "Delete list", "lists.edit": "Edit list", - "lists.edit.submit": "Change title", - "lists.exclusive": "Hide these posts from home", - "lists.new.create": "Add list", - "lists.new.title_placeholder": "New list title", "lists.replies_policy.followed": "Any followed user", "lists.replies_policy.list": "Members of the list", "lists.replies_policy.none": "No one", - "lists.replies_policy.title": "Show replies to:", - "lists.search": "Search among people you follow", - "lists.subheading": "Your lists", "load_pending": "{count, plural, one {# new item} other {# new items}}", "loading_indicator.label": "Loading…", "media_gallery.hide": "Hide", @@ -503,9 +517,11 @@ "notification.admin.report_statuses_other": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.admin.sign_up.name_and_others": "{name} and {count, plural, one {# other} other {# others}} signed up", + "notification.annual_report.message": "Your {year} #Wrapstodon awaits! Unveil your year's highlights and memorable moments on Mastodon!", "notification.favourite": "{name} favourited your post", "notification.favourite.name_and_others_with_link": "{name} and {count, plural, one {# other} other {# others}} favourited your post", "notification.follow": "{name} followed you", + "notification.follow.name_and_others": "{name} and {count, plural, one {# other} other {# others}} followed you", "notification.follow_request": "{name} has requested to follow you", "notification.follow_request.name_and_others": "{name} and {count, plural, one {# other} other {# others}} has requested to follow you", "notification.label.mention": "Mention", @@ -513,6 +529,7 @@ "notification.label.private_reply": "Private reply", "notification.label.reply": "Reply", "notification.mention": "Mention", + "notification.mentioned_you": "{name} mentioned you", "notification.moderation-warning.learn_more": "Learn more", "notification.moderation_warning": "You have received a moderation warning", "notification.moderation_warning.action_delete_statuses": "Some of your posts have been removed.", @@ -563,6 +580,7 @@ "notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.follow": "New followers:", "notifications.column_settings.follow_request": "New follow requests:", + "notifications.column_settings.group": "Group", "notifications.column_settings.mention": "Mentions:", "notifications.column_settings.poll": "Poll results:", "notifications.column_settings.push": "Push notifications", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 6d8c82385b..730c301769 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -280,7 +280,6 @@ "empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.", "empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.", "empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn afiŝojn, ili aperos ĉi tie.", - "empty_column.lists": "Vi ankoraŭ ne havas liston. Kiam vi kreos iun, ĝi aperos ĉi tie.", "empty_column.mutes": "Vi ne ankoraŭ silentigis iun uzanton.", "empty_column.notification_requests": "Ĉio klara! Estas nenio tie ĉi. Kiam vi ricevas novajn sciigojn, ili aperos ĉi tie laŭ viaj agordoj.", "empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.", @@ -453,20 +452,11 @@ "link_preview.author": "De {name}", "link_preview.more_from_author": "Pli de {name}", "link_preview.shares": "{count, plural, one {{counter} afiŝo} other {{counter} afiŝoj}}", - "lists.account.add": "Aldoni al la listo", - "lists.account.remove": "Forigi de la listo", "lists.delete": "Forigi la liston", "lists.edit": "Redakti la liston", - "lists.edit.submit": "Ŝanĝi titolon", - "lists.exclusive": "Kaŝi ĉi tiujn afiŝojn de hejmo", - "lists.new.create": "Aldoni liston", - "lists.new.title_placeholder": "Titolo de la nova listo", "lists.replies_policy.followed": "Iu sekvanta uzanto", "lists.replies_policy.list": "Membroj de la listo", "lists.replies_policy.none": "Neniu", - "lists.replies_policy.title": "Montri respondojn al:", - "lists.search": "Serĉi inter la homoj, kiujn vi sekvas", - "lists.subheading": "Viaj listoj", "load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}", "loading_indicator.label": "Ŝargado…", "media_gallery.hide": "Kaŝi", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 406c526983..2dea704a72 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Todavía no hay nada con esta etiqueta.", "empty_column.home": "¡Tu línea temporal principal está vacía! Seguí a más cuentas para llenarla.", "empty_column.list": "Todavía no hay nada en esta lista. Cuando miembros de esta lista envíen nuevos mensaje, se mostrarán acá.", - "empty_column.lists": "Todavía no tenés ninguna lista. Cuando creés una, se mostrará acá.", "empty_column.mutes": "Todavía no silenciaste a ningún usuario.", "empty_column.notification_requests": "¡Todo limpio! No hay nada acá. Cuando recibás nuevas notificaciones, aparecerán acá, acorde a tu configuración.", "empty_column.notifications": "Todavía no tenés ninguna notificación. Cuando otras cuentas interactúen con vos, vas a ver la notificación acá.", @@ -465,20 +464,11 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Más de {name}", "link_preview.shares": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}", - "lists.account.add": "Agregar a lista", - "lists.account.remove": "Quitar de lista", "lists.delete": "Eliminar lista", "lists.edit": "Editar lista", - "lists.edit.submit": "Cambiar título", - "lists.exclusive": "Ocultar estos mensajes del inicio", - "lists.new.create": "Agregar lista", - "lists.new.title_placeholder": "Título de nueva lista", "lists.replies_policy.followed": "Cualquier cuenta seguida", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Nadie", - "lists.replies_policy.title": "Mostrar respuestas a:", - "lists.search": "Buscar entre la gente que seguís", - "lists.subheading": "Tus listas", "load_pending": "{count, plural, one {# elemento nuevo} other {# elementos nuevos}}", "loading_indicator.label": "Cargando…", "media_gallery.hide": "Ocultar", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 63dc31c6df..d863873418 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "No hay nada en esta etiqueta aún.", "empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.", "empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.", - "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.", "empty_column.mutes": "Aún no has silenciado a ningún usuario.", "empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.", "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.", @@ -465,20 +464,11 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Más de {name}", "link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", - "lists.account.add": "Añadir a lista", - "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", "lists.edit": "Editar lista", - "lists.edit.submit": "Cambiar título", - "lists.exclusive": "Ocultar estas publicaciones en inicio", - "lists.new.create": "Añadir lista", - "lists.new.title_placeholder": "Título de la nueva lista", "lists.replies_policy.followed": "Cualquier usuario seguido", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Nadie", - "lists.replies_policy.title": "Mostrar respuestas a:", - "lists.search": "Buscar entre la gente a la que sigues", - "lists.subheading": "Tus listas", "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}", "loading_indicator.label": "Cargando…", "media_gallery.hide": "Ocultar", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 258b19f411..bfb16e9fd8 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "No hay nada en esta etiqueta todavía.", "empty_column.home": "¡Tu línea temporal está vacía! Sigue a más personas para rellenarla.", "empty_column.list": "Aún no hay nada en esta lista. Cuando los miembros de esta lista publiquen nuevos estados, estos aparecerán aquí.", - "empty_column.lists": "No tienes ninguna lista. Cuando crees una, se mostrará aquí.", "empty_column.mutes": "Aún no has silenciado a ningún usuario.", "empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.", "empty_column.notifications": "Aún no tienes ninguna notificación. Cuando otras personas interactúen contigo, aparecerán aquí.", @@ -465,20 +464,11 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Más de {name}", "link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", - "lists.account.add": "Añadir a lista", - "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", "lists.edit": "Editar lista", - "lists.edit.submit": "Cambiar título", - "lists.exclusive": "Ocultar estas publicaciones de inicio", - "lists.new.create": "Añadir lista", - "lists.new.title_placeholder": "Título de la nueva lista", "lists.replies_policy.followed": "Cualquier usuario seguido", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Nadie", - "lists.replies_policy.title": "Mostrar respuestas a:", - "lists.search": "Buscar entre las personas a las que sigues", - "lists.subheading": "Tus listas", "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}", "loading_indicator.label": "Cargando…", "media_gallery.hide": "Ocultar", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 8376641179..1db32efe09 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -273,7 +273,6 @@ "empty_column.hashtag": "Selle sildi all ei ole ühtegi postitust.", "empty_column.home": "Su koduajajoon on tühi. Jälgi rohkemaid inimesi, et seda täita {suggestions}", "empty_column.list": "Siin loetelus pole veel midagi. Kui loetelu liikmed teevad uusi postitusi, näed neid siin.", - "empty_column.lists": "Pole veel ühtegi nimekirja. Kui lood mõne, näed neid siin.", "empty_column.mutes": "Sa pole veel ühtegi kasutajat vaigistanud.", "empty_column.notification_requests": "Kõik tühi! Siin pole mitte midagi. Kui saad uusi teavitusi, ilmuvad need siin vastavalt sinu seadistustele.", "empty_column.notifications": "Ei ole veel teateid. Kui keegi suhtleb sinuga, näed seda siin.", @@ -446,20 +445,11 @@ "link_preview.author": "{name} poolt", "link_preview.more_from_author": "Veel kasutajalt {name}", "link_preview.shares": "{count, plural, one {{counter} postitus} other {{counter} postitust}}", - "lists.account.add": "Lisa nimekirja", - "lists.account.remove": "Eemalda nimekirjast", "lists.delete": "Kustuta nimekiri", "lists.edit": "Muuda nimekirja", - "lists.edit.submit": "Pealkirja muutmine", - "lists.exclusive": "Peida koduvaatest need postitused", - "lists.new.create": "Lisa nimekiri", - "lists.new.title_placeholder": "Uue nimekirja pealkiri", "lists.replies_policy.followed": "Igalt jälgitud kasutajalt", "lists.replies_policy.list": "Listi liikmetelt", "lists.replies_policy.none": "Mitte kelleltki", - "lists.replies_policy.title": "Näita vastuseid nendele:", - "lists.search": "Otsi enda jälgitavate inimeste hulgast", - "lists.subheading": "Sinu nimekirjad", "load_pending": "{count, plural, one {# uus kirje} other {# uut kirjet}}", "loading_indicator.label": "Laadimine…", "media_gallery.hide": "Peida", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index c8349dc6a1..c77ca93f9e 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -269,7 +269,6 @@ "empty_column.hashtag": "Ez dago ezer traola honetan oraindik.", "empty_column.home": "Zure hasierako denbora-lerroa hutsik dago! Jarraitu jende gehiago betetzeko.", "empty_column.list": "Ez dago ezer zerrenda honetan. Zerrenda honetako kideek bidalketa berriak argitaratzean, hemen agertuko dira.", - "empty_column.lists": "Ez duzu zerrendarik oraindik. Baten bat sortzen duzunean hemen agertuko da.", "empty_column.mutes": "Ez duzu erabiltzailerik mututu oraindik.", "empty_column.notification_requests": "Garbi-garbi! Ezertxo ere ez hemen. Jakinarazpenak jasotzen dituzunean, hemen agertuko dira zure ezarpenen arabera.", "empty_column.notifications": "Ez duzu jakinarazpenik oraindik. Jarri besteekin harremanetan elkarrizketa abiatzeko.", @@ -437,20 +436,11 @@ "link_preview.author": "Egilea: {name}", "link_preview.more_from_author": "{name} erabiltzaileaz gehiago jakin", "link_preview.shares": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}", - "lists.account.add": "Gehitu zerrendara", - "lists.account.remove": "Kendu zerrendatik", "lists.delete": "Ezabatu zerrenda", "lists.edit": "Editatu zerrenda", - "lists.edit.submit": "Aldatu izenburua", - "lists.exclusive": "Ezkutatu argitalpen hauek hasieratik", - "lists.new.create": "Gehitu zerrenda", - "lists.new.title_placeholder": "Zerrenda berriaren izena", "lists.replies_policy.followed": "Jarraitutako edozein erabiltzaile", "lists.replies_policy.list": "Zerrendako kideak", "lists.replies_policy.none": "Bat ere ez", - "lists.replies_policy.title": "Erakutsi erantzunak:", - "lists.search": "Bilatu jarraitzen dituzun pertsonen artean", - "lists.subheading": "Zure zerrendak", "load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}", "loading_indicator.label": "Kargatzen…", "media_gallery.hide": "Ezkutatu", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 3bc96cf9f2..608c1321b7 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -272,7 +272,6 @@ "empty_column.hashtag": "هنوز هیچ چیزی در این برچسب نیست.", "empty_column.home": "خط زمانی خانگیتان خالی است! برای پر کردنش، افراد بیشتری را پی بگیرید. {suggestions}", "empty_column.list": "هنوز چیزی در این سیاهه نیست. هنگامی که اعضایش فرسته‌های جدیدی بفرستند، این‌جا ظاهر خواهند شد.", - "empty_column.lists": "هنوز هیچ سیاهه‌ای ندارید. هنگامی که یکی بسازید، این‌جا نشان داده خواهد شد.", "empty_column.mutes": "هنوز هیچ کاربری را خموش نکرده‌اید.", "empty_column.notifications": "هنوز هیچ آگاهی‌آی ندارید. هنگامی که دیگران با شما برهم‌کنش داشته باشند،‌این‌حا خواهید دیدش.", "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران کارسازهای دیگر را پی‌گیری کنید تا این‌جا پُر شود", @@ -437,20 +436,11 @@ "link_preview.author": "از {name}", "link_preview.more_from_author": "بیش‌تر از {name}", "link_preview.shares": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}", - "lists.account.add": "افزودن به سیاهه", - "lists.account.remove": "برداشتن از سیاهه", "lists.delete": "حذف سیاهه", "lists.edit": "ویرایش سیاهه", - "lists.edit.submit": "تغییر عنوان", - "lists.exclusive": "نهفتن این فرسته‌ها از خانه", - "lists.new.create": "افزودن سیاهه", - "lists.new.title_placeholder": "عنوان سیاههٔ جدید", "lists.replies_policy.followed": "هر کاربر پی‌گرفته", "lists.replies_policy.list": "اعضای سیاهه", "lists.replies_policy.none": "هیچ کدام", - "lists.replies_policy.title": "نمایش پاسخ‌ها به:", - "lists.search": "جست‌وجو بین کسانی که پی‌گرفته‌اید", - "lists.subheading": "سیاهه‌هایتان", "load_pending": "{count, plural, one {# مورد جدید} other {# مورد جدید}}", "loading_indicator.label": "در حال بارگذاری…", "media_gallery.hide": "نهفتن", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 2c0aacc535..a987c4bad2 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -139,13 +139,16 @@ "column.blocks": "Estetyt käyttäjät", "column.bookmarks": "Kirjanmerkit", "column.community": "Paikallinen aikajana", + "column.create_list": "Luo lista", "column.direct": "Yksityismaininnat", "column.directory": "Selaa profiileja", "column.domain_blocks": "Estetyt verkkotunnukset", + "column.edit_list": "Muokkaa listaa", "column.favourites": "Suosikit", "column.firehose": "Livesyötteet", "column.follow_requests": "Seurantapyynnöt", "column.home": "Koti", + "column.list_members": "Hallitse listan jäseniä", "column.lists": "Listat", "column.mutes": "Mykistetyt käyttäjät", "column.notifications": "Ilmoitukset", @@ -291,7 +294,6 @@ "empty_column.hashtag": "Tällä aihetunnisteella ei löydy vielä sisältöä.", "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia käyttäjiä, niin näet enemmän sisältöä.", "empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.", - "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.notification_requests": "Olet ajan tasalla! Täällä ei ole mitään uutta kerrottavaa. Kun saat uusia ilmoituksia, ne näkyvät täällä asetustesi mukaisesti.", "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun muut ovat vuorovaikutuksessa kanssasi, näet sen täällä.", @@ -464,20 +466,32 @@ "link_preview.author": "Tehnyt {name}", "link_preview.more_from_author": "Lisää tekijältä {name}", "link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", - "lists.account.add": "Lisää listalle", - "lists.account.remove": "Poista listalta", + "lists.add_member": "Lisää", + "lists.add_to_list": "Lisää listalle", + "lists.add_to_lists": "Lisää {name} listalle", + "lists.create": "Luo", + "lists.create_a_list_to_organize": "Luo uusi lista kotisyötteesi järjestämiseksi", + "lists.create_list": "Luo lista", "lists.delete": "Poista lista", + "lists.done": "Valmis", "lists.edit": "Muokkaa listaa", - "lists.edit.submit": "Vaihda nimi", - "lists.exclusive": "Piilota nämä julkaisut kotisyötteestä", - "lists.new.create": "Lisää lista", - "lists.new.title_placeholder": "Uuden listan nimi", + "lists.exclusive": "Piilota jäsenet kotisyötteestä", + "lists.exclusive_hint": "Jos joku on tällä listalla, piilota hänet kotisyötteestäsi, jotta et näe hänen julkaisujaan kahteen kertaan.", + "lists.find_users_to_add": "Etsi lisättäviä käyttäjiä", + "lists.list_members": "Listan jäsenet", + "lists.list_members_count": "{count, plural, one {# jäsen} other {# jäsentä}}", + "lists.list_name": "Listan nimi", + "lists.new_list_name": "Uuden listan nimi", + "lists.no_lists_yet": "Ei vielä listoja.", + "lists.no_members_yet": "Ei vielä jäseniä.", + "lists.no_results_found": "Tuloksia ei löytynyt.", + "lists.remove_member": "Poista", "lists.replies_policy.followed": "Jokaiselle seuratulle käyttäjälle", "lists.replies_policy.list": "Listan jäsenille", "lists.replies_policy.none": "Ei kellekään", - "lists.replies_policy.title": "Näytä vastaukset:", - "lists.search": "Hae seuraamistasi käyttäjistä", - "lists.subheading": "Omat listasi", + "lists.save": "Tallenna", + "lists.search_placeholder": "Hae käyttäjiä seurattavaksi", + "lists.show_replies_to": "Sisällytä listan jäsenten vastaukset kohteeseen", "load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}", "loading_indicator.label": "Ladataan…", "media_gallery.hide": "Piilota", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index 14c7b70bd2..1ccc6f036d 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -184,7 +184,6 @@ "empty_column.hashtag": "Wala pang laman ang hashtag na ito.", "empty_column.home": "Walang laman ang timeline ng tahanan mo! Sumunod sa marami pang tao para mapunan ito.", "empty_column.list": "Wala pang laman ang listahang ito. Kapag naglathala ng mga bagong post ang mga miyembro ng listahang ito, makikita iyon dito.", - "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito.", "errors.unexpected_crash.report_issue": "Iulat ang isyu", "explore.search_results": "Mga resulta ng paghahanap", "explore.suggested_follows": "Mga tao", @@ -234,15 +233,8 @@ "lightbox.next": "Susunod", "lightbox.previous": "Nakaraan", "link_preview.author": "Ni/ng {name}", - "lists.account.add": "Idagdag sa talaan", - "lists.account.remove": "Tanggalin mula sa talaan", "lists.delete": "Burahin ang listahan", - "lists.edit.submit": "Baguhin ang pamagat", - "lists.new.create": "Idagdag sa talaan", - "lists.new.title_placeholder": "Bagong pangalan ng talaan", "lists.replies_policy.none": "Walang simuman", - "lists.replies_policy.title": "Ipakita ang mga tugon sa:", - "lists.subheading": "Iyong mga talaan", "loading_indicator.label": "Kumakarga…", "media_gallery.hide": "Itago", "mute_modal.hide_from_notifications": "Itago mula sa mga abiso", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 789efaa40e..bc56152f37 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Einki er í hesum frámerkinum enn.", "empty_column.home": "Heima-tíðarlinjan hjá tær er tóm! Fylg fleiri fyri at fylla hana. {suggestions}", "empty_column.list": "Einki er í hesum listanum enn. Tá limir í hesum listanum posta nýggjar postar, so síggjast teir her.", - "empty_column.lists": "Tú hevur ongar goymdar listar enn. Tá tú gert ein lista, so sært tú hann her.", "empty_column.mutes": "Tú hevur enn ikki doyvt nakran brúkara.", "empty_column.notification_requests": "Alt er klárt! Her er einki. Tá tú fært nýggjar fráboðanir, síggjast tær her sambært tínum stillingum.", "empty_column.notifications": "Tú hevur ongar fráboðanir enn. Tá onnur samskifta við teg, so sær tú fráboðaninar her.", @@ -465,20 +464,11 @@ "link_preview.author": "Av {name}", "link_preview.more_from_author": "Meira frá {name}", "link_preview.shares": "{count, plural, one {{counter} postur} other {{counter} postar}}", - "lists.account.add": "Legg afturat lista", - "lists.account.remove": "Tak av lista", "lists.delete": "Strika lista", "lists.edit": "Broyt lista", - "lists.edit.submit": "Broyt heiti", - "lists.exclusive": "Fjal hesar postarnar frá heima", - "lists.new.create": "Ger nýggjan lista", - "lists.new.title_placeholder": "Nýtt navn á lista", "lists.replies_policy.followed": "Øllum fylgdum brúkarum", "lists.replies_policy.list": "Listalimunum", "lists.replies_policy.none": "Eingin", - "lists.replies_policy.title": "Vís svarini fyri:", - "lists.search": "Leita millum fólk, sum tú fylgir", - "lists.subheading": "Tínir listar", "load_pending": "{count, plural, one {# nýtt evni} other {# nýggj evni}}", "loading_indicator.label": "Innlesur…", "media_gallery.hide": "Fjal", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index fed111e7e8..a1134e0de3 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -275,7 +275,6 @@ "empty_column.hashtag": "Il n’y a pas encore de contenu associé à ce hashtag.", "empty_column.home": "Votre fil d'accueil est vide! Suivez plus de personnes pour la remplir. {suggestions}", "empty_column.list": "Il n’y a rien dans cette liste pour l’instant. Quand des membres de cette liste publieront de nouvelles publications, elles apparaîtront ici.", - "empty_column.lists": "Vous n’avez pas encore de liste. Lorsque vous en créerez une, elle apparaîtra ici.", "empty_column.mutes": "Vous n’avez masqué aucun compte pour le moment.", "empty_column.notification_requests": "C'est fini ! Il n'y a plus rien ici. Lorsque vous recevez de nouvelles notifications, elles apparaitront ici conformément à vos préférences.", "empty_column.notifications": "Vous n'avez pas encore de notifications. Quand d'autres personnes interagissent avec vous, vous en verrez ici.", @@ -445,20 +444,11 @@ "link_preview.author": "Par {name}", "link_preview.more_from_author": "Plus via {name}", "link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}", - "lists.account.add": "Ajouter à une liste", - "lists.account.remove": "Retirer d'une liste", "lists.delete": "Supprimer la liste", "lists.edit": "Modifier la liste", - "lists.edit.submit": "Modifier le titre", - "lists.exclusive": "Cacher ces publications depuis la page d'accueil", - "lists.new.create": "Ajouter une liste", - "lists.new.title_placeholder": "Titre de la nouvelle liste", "lists.replies_policy.followed": "N'importe quel compte suivi", "lists.replies_policy.list": "Membres de la liste", "lists.replies_policy.none": "Personne", - "lists.replies_policy.title": "Afficher les réponses à:", - "lists.search": "Rechercher parmi les gens que vous suivez", - "lists.subheading": "Vos listes", "load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}", "loading_indicator.label": "Chargement…", "media_gallery.hide": "Masquer", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 10bfc22bd8..8597152f00 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -275,7 +275,6 @@ "empty_column.hashtag": "Il n’y a encore aucun contenu associé à ce hashtag.", "empty_column.home": "Votre fil principal est vide ! Suivez plus de personnes pour le remplir.", "empty_column.list": "Il n’y a rien dans cette liste pour l’instant. Quand des membres de cette liste publieront de nouveaux messages, ils apparaîtront ici.", - "empty_column.lists": "Vous n’avez pas encore de liste. Lorsque vous en créerez une, elle apparaîtra ici.", "empty_column.mutes": "Vous n’avez masqué aucun compte pour le moment.", "empty_column.notification_requests": "C'est fini ! Il n'y a plus rien ici. Lorsque vous recevez de nouvelles notifications, elles apparaitront ici conformément à vos préférences.", "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour débuter la conversation.", @@ -445,20 +444,11 @@ "link_preview.author": "Par {name}", "link_preview.more_from_author": "Plus via {name}", "link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}", - "lists.account.add": "Ajouter à la liste", - "lists.account.remove": "Supprimer de la liste", "lists.delete": "Supprimer la liste", "lists.edit": "Modifier la liste", - "lists.edit.submit": "Modifier le titre", - "lists.exclusive": "Cacher ces publications sur le fil principal", - "lists.new.create": "Ajouter une liste", - "lists.new.title_placeholder": "Titre de la nouvelle liste", "lists.replies_policy.followed": "N'importe quel compte suivi", "lists.replies_policy.list": "Membres de la liste", "lists.replies_policy.none": "Personne", - "lists.replies_policy.title": "Afficher les réponses à :", - "lists.search": "Rechercher parmi les gens que vous suivez", - "lists.subheading": "Vos listes", "load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}", "loading_indicator.label": "Chargement…", "media_gallery.hide": "Masquer", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 3f4d942b61..a5e8f924dd 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -273,7 +273,6 @@ "empty_column.hashtag": "Der is noch neat te finen ûnder dizze hashtag.", "empty_column.home": "Dizze tiidline is leech! Folgje mear minsken om it te foljen. {suggestions}", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "Jo hawwe noch gjin inkelde list. Wannear’t jo der ien oanmakke hawwe, falt dat hjir te sjen.", "empty_column.mutes": "Jo hawwe noch gjin brûkers negearre.", "empty_column.notification_requests": "Hielendal leech! Der is hjir neat. Wannear’t jo nije meldingen ûntfange, ferskine dizze hjir neffens jo ynstellingen.", "empty_column.notifications": "Jo hawwe noch gjin meldingen. Ynteraksjes mei oare minsken sjogge jo hjir.", @@ -446,20 +445,11 @@ "link_preview.author": "Troch {name}", "link_preview.more_from_author": "Mear fan {name}", "link_preview.shares": "{count, plural, one {{counter} berjocht} other {{counter} berjochten}}", - "lists.account.add": "Oan list tafoegje", - "lists.account.remove": "Ut list fuortsmite", "lists.delete": "List fuortsmite", "lists.edit": "List bewurkje", - "lists.edit.submit": "Titel wizigje", - "lists.exclusive": "Ferstopje dizze berjochten op jo startside", - "lists.new.create": "List tafoegje", - "lists.new.title_placeholder": "Nije listtitel", "lists.replies_policy.followed": "Elke folge brûker", "lists.replies_policy.list": "Leden fan de list", "lists.replies_policy.none": "Net ien", - "lists.replies_policy.title": "Reaksjes toane oan:", - "lists.search": "Sykje nei minsken dy’t jo folgje", - "lists.subheading": "Jo listen", "load_pending": "{count, plural, one {# nij item} other {# nije items}}", "loading_indicator.label": "Lade…", "media_gallery.hide": "Ferstopje", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 137a7c591f..31418c8e72 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Níl rud ar bith faoin haischlib seo go fóill.", "empty_column.home": "Tá d'amlíne baile folamh! B'fhiú duit cúpla duine eile a leanúint lena líonadh! {suggestions}", "empty_column.list": "Níl aon rud ar an liosta seo fós. Nuair a fhoilseoidh baill an liosta seo postálacha nua, beidh siad le feiceáil anseo.", - "empty_column.lists": "Níl aon liostaí fós agat. Nuair a chruthaíonn tú ceann, feicfear anseo é.", "empty_column.mutes": "Níl aon úsáideoir balbhaithe agat fós.", "empty_column.notification_requests": "Gach soiléir! Níl aon rud anseo. Nuair a gheobhaidh tú fógraí nua, beidh siad le feiceáil anseo de réir do shocruithe.", "empty_column.notifications": "Níl aon fógraí agat fós. Nuair a dhéanann daoine eile idirghníomhú leat, feicfear anseo é.", @@ -465,20 +464,11 @@ "link_preview.author": "Le {name}", "link_preview.more_from_author": "Tuilleadh ó {name}", "link_preview.shares": "{count, plural, one {{counter} post} other {{counter} poist}}", - "lists.account.add": "Cuir leis an liosta", - "lists.account.remove": "Scrios as an liosta", "lists.delete": "Scrios liosta", "lists.edit": "Cuir an liosta in eagar", - "lists.edit.submit": "Athraigh teideal", - "lists.exclusive": "Folaigh na poist seo ón mbaile", - "lists.new.create": "Cruthaigh liosta", - "lists.new.title_placeholder": "Teideal liosta nua", "lists.replies_policy.followed": "Úsáideoir ar bith atá á leanúint", "lists.replies_policy.list": "Baill an liosta", "lists.replies_policy.none": "Duine ar bith", - "lists.replies_policy.title": "Taispeáin freagraí:", - "lists.search": "Cuardaigh i measc daoine atá á leanúint agat", - "lists.subheading": "Do liostaí", "load_pending": "{count, plural, one {# mír nua} two {# mír nua} few {# mír nua} many {# mír nua} other {# mír nua}}", "loading_indicator.label": "Á lódáil…", "media_gallery.hide": "Folaigh", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index f459f50a80..17dbfc30e4 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.", "empty_column.home": "Tha loidhne-ama na dachaigh agad falamh! Lean barrachd dhaoine gus a lìonadh.", "empty_column.list": "Chan eil dad air an liosta seo fhathast. Nuair a phostaicheas buill a tha air an liosta seo postaichean ùra, nochdaidh iad an-seo.", - "empty_column.lists": "Chan eil liosta agad fhathast. Nuair chruthaicheas tu tè, nochdaidh i an-seo.", "empty_column.mutes": "Cha do mhùch thu cleachdaiche sam bith fhathast.", "empty_column.notification_requests": "Glan! Chan eil dad an-seo. Nuair a gheibh thu brathan ùra, nochdaidh iad an-seo a-rèir nan roghainnean agad.", "empty_column.notifications": "Cha d’ fhuair thu brath sam bith fhathast. Nuair a nì càch conaltradh leat, chì thu an-seo e.", @@ -465,20 +464,11 @@ "link_preview.author": "Le {name}", "link_preview.more_from_author": "Barrachd le {name}", "link_preview.shares": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", - "lists.account.add": "Cuir ris an liosta", - "lists.account.remove": "Thoir air falbh on liosta", "lists.delete": "Sguab às an liosta", "lists.edit": "Deasaich an liosta", - "lists.edit.submit": "Atharraich an tiotal", - "lists.exclusive": "Falaich na postaichean seo air an dachaigh", - "lists.new.create": "Cuir liosta ris", - "lists.new.title_placeholder": "Tiotal na liosta ùir", "lists.replies_policy.followed": "Cleachdaiche sam bith a leanas mi", "lists.replies_policy.list": "Buill na liosta", "lists.replies_policy.none": "Na seall idir", - "lists.replies_policy.title": "Seall freagairtean do:", - "lists.search": "Lorg am measg nan daoine a leanas tu", - "lists.subheading": "Na liostaichean agad", "load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}", "loading_indicator.label": "’Ga luchdadh…", "media_gallery.hide": "Falaich", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index c69a431f4b..e77aaade6b 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -291,7 +291,6 @@ "empty_column.hashtag": "Aínda non hai nada con este cancelo.", "empty_column.home": "A túa cronoloxía inicial está baleira! Sigue a outras usuarias para enchela.", "empty_column.list": "Aínda non hai nada nesta listaxe. Cando as usuarias incluídas na listaxe publiquen mensaxes, amosaranse aquí.", - "empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.", "empty_column.mutes": "Aínda non silenciaches a ningúnha usuaria.", "empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificacións aparecerán aquí seguindo o criterio dos teus axustes.", "empty_column.notifications": "Aínda non tes notificacións. Aparecerán cando outras persoas interactúen contigo.", @@ -464,20 +463,11 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Máis de {name}", "link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}", - "lists.account.add": "Engadir á listaxe", - "lists.account.remove": "Eliminar da listaxe", "lists.delete": "Eliminar listaxe", "lists.edit": "Editar listaxe", - "lists.edit.submit": "Mudar o título", - "lists.exclusive": "Agocha estas publicacións no Inicio", - "lists.new.create": "Engadir listaxe", - "lists.new.title_placeholder": "Título da nova listaxe", "lists.replies_policy.followed": "Calquera usuaria que siga", "lists.replies_policy.list": "Membros da lista", "lists.replies_policy.none": "Ninguén", - "lists.replies_policy.title": "Mostrar respostas a:", - "lists.search": "Procurar entre as persoas que segues", - "lists.subheading": "As túas listaxes", "load_pending": "{count, plural, one {# novo elemento} other {# novos elementos}}", "loading_indicator.label": "Estase a cargar…", "media_gallery.hide": "Agochar", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 52d61b737b..57f0ee9e5e 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -140,13 +140,16 @@ "column.blocks": "משתמשים חסומים", "column.bookmarks": "סימניות", "column.community": "פיד שרת מקומי", + "column.create_list": "יצירת רשימה", "column.direct": "הודעות פרטיות", "column.directory": "עיין בפרופילים", "column.domain_blocks": "קהילות (שמות מתחם) מוסתרות", + "column.edit_list": "עריכת רשימה", "column.favourites": "חיבובים", "column.firehose": "פידים עדכניים", "column.follow_requests": "בקשות מעקב", "column.home": "פיד הבית", + "column.list_members": "ניהול חברי הרשימה", "column.lists": "רשימות", "column.mutes": "משתמשים בהשתקה", "column.notifications": "התראות", @@ -292,7 +295,6 @@ "empty_column.hashtag": "אין כלום בתגית הזאת עדיין.", "empty_column.home": "פיד הבית ריק ! אפשר לבקר ב{public} או להשתמש בחיפוש כדי להתחיל ולהכיר משתמשים/ות אחרים/ות. {suggestions}", "empty_column.list": "אין עדיין פריטים ברשימה. כאשר חברים ברשימה הזאת יפרסמו הודעות חדשות, הן יופיעו פה.", - "empty_column.lists": "אין לך שום רשימות עדיין. לכשיהיו, הן תופענה כאן.", "empty_column.mutes": "עוד לא השתקת שום משתמש.", "empty_column.notification_requests": "בום! אין פה כלום. כשיווצרו עוד התראות, הן יופיעו כאן על בסיס ההעדפות שלך.", "empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.", @@ -465,20 +467,32 @@ "link_preview.author": "מאת {name}", "link_preview.more_from_author": "עוד מאת {name}", "link_preview.shares": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}}", - "lists.account.add": "הוסף לרשימה", - "lists.account.remove": "הסר מרשימה", + "lists.add_member": "הוספה", + "lists.add_to_list": "הוספה לרשימה", + "lists.add_to_lists": "הוספת {name} לרשימות", + "lists.create": "יצירה", + "lists.create_a_list_to_organize": "יצירת רשימה חדשה לארגון פיד הבית שלך", + "lists.create_list": "יצירת רשימה", "lists.delete": "מחיקת רשימה", + "lists.done": "בוצע", "lists.edit": "עריכת רשימה", - "lists.edit.submit": "שנה/י כותרת", - "lists.exclusive": "להסתיר את ההודעות האלו מפיד הבית", - "lists.new.create": "הוספת רשימה", - "lists.new.title_placeholder": "כותרת הרשימה החדשה", + "lists.exclusive": "הסתרת החברים בפיד הבית", + "lists.exclusive_hint": "אם שם כלשהו ברשימה זו, נסתיר אותי בפיד הבית כדי למנוע כפילות.", + "lists.find_users_to_add": "חיפוש משתמשים להוספה", + "lists.list_members": "פירוט חברי הרשימה", + "lists.list_members_count": "{count, plural, one {חבר רשימה אחד} other {# חברי רשימה}}", + "lists.list_name": "שם הרשימה", + "lists.new_list_name": "שם רשימה חדשה", + "lists.no_lists_yet": "אין רשימות עדיין.", + "lists.no_members_yet": "עוד אין חברים ברשימה.", + "lists.no_results_found": "לא נמצאו תוצאות.", + "lists.remove_member": "הסרה", "lists.replies_policy.followed": "משתמשים שאני עוקב אחריהם", "lists.replies_policy.list": "משתמשים שברשימה", "lists.replies_policy.none": "אף אחד", - "lists.replies_policy.title": "הצג תגובות ל:", - "lists.search": "חיפוש בין אנשים שאני עוקב\\ת אחריהם", - "lists.subheading": "הרשימות שלך", + "lists.save": "שמירה", + "lists.search_placeholder": "חיפוש אנשים שאני עוקב\\ת אחריהם", + "lists.show_replies_to": "לכלול תשובות מחברי הרשימה אל", "load_pending": "{count, plural, one {# פריט חדש} other {# פריטים חדשים}}", "loading_indicator.label": "בטעינה…", "media_gallery.hide": "להסתיר", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index e0de4c8452..eebf0dd9da 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -237,7 +237,6 @@ "empty_column.hashtag": "यह हैशटैग अभी तक खाली है।", "empty_column.home": "आपकी मुख्य कालक्रम अभी खली है. अन्य उपयोगकर्ताओं से मिलने के लिए और अपनी गतिविधियां शुरू करने के लिए या तो {public} पर जाएं या खोज का उपयोग करें।", "empty_column.list": "यह सूची अभी खाली है. जब इसके सदस्य कोई अभिव्यक्ति देंगे, तो वो यहां दिखाई देंगी.", - "empty_column.lists": "आपके पास अभी तक कोई सूची नहीं है। जब आप एक बनाते हैं, तो यह यहां दिखाई देगा।", "empty_column.mutes": "आपने अभी तक किसी भी उपयोगकर्ता को म्यूट नहीं किया है।", "empty_column.notifications": "आपके पास अभी तक कोई सूचना नहीं है। बातचीत शुरू करने के लिए दूसरों के साथ बातचीत करें।", "empty_column.public": "यहां कुछ नहीं है! सार्वजनिक रूप से कुछ लिखें, या इसे भरने के लिए अन्य सर्वर से उपयोगकर्ताओं का मैन्युअल रूप से अनुसरण करें", @@ -352,18 +351,11 @@ "lightbox.previous": "पिछला", "limited_account_hint.action": "फिर भी प्रोफाइल दिखाओ", "limited_account_hint.title": "यह प्रोफ़ाइल {domain} के मॉडरेटर द्वारा छिपाई गई है.", - "lists.account.add": "ऐड तो लिस्ट", - "lists.account.remove": "सूची से निकालें", "lists.delete": "सूची हटाएँ", "lists.edit": "सूची संपादित करें", - "lists.edit.submit": "शीर्षक बदलें", - "lists.new.create": "सूची जोड़ें", - "lists.new.title_placeholder": "नये सूची का शीर्षक", "lists.replies_policy.followed": "अन्य फोल्लोवेद यूजर", "lists.replies_policy.list": "सूची के सदस्य", "lists.replies_policy.none": "कोई नहीं", - "lists.replies_policy.title": "इसके जवाब दिखाएं:", - "lists.subheading": "आपकी सूचियाँ", "media_gallery.hide": "छिपाएं", "navigation_bar.about": "विवरण", "navigation_bar.blocks": "ब्लॉक्ड यूज़र्स", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 26c527f2fe..f09cd71c7c 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -199,7 +199,6 @@ "empty_column.hashtag": "Još ne postoji ništa s ovim hashtagom.", "empty_column.home": "Vaša početna vremenska crta je prazna! Posjetite {public} ili koristite tražilicu kako biste započeli i upoznali druge korisnike.", "empty_column.list": "Na ovoj listi još nema ničega. Kada članovi ove liste objave nove tootove, oni će se pojaviti ovdje.", - "empty_column.lists": "Nemaš niti jednu listu. Kada je kreiraš, prikazat će se ovdje.", "empty_column.mutes": "Niste utišali nijednog korisnika.", "empty_column.notifications": "Još nemate obavijesti. Komunicirajte s drugima kako biste započeli razgovor.", "empty_column.public": "Ovdje nema ništa! Napišite nešto javno ili ručno pratite korisnike s drugi poslužitelja da biste ovo popunili", @@ -298,18 +297,11 @@ "lightbox.next": "Sljedeće", "lightbox.previous": "Prethodno", "limited_account_hint.action": "Svejedno prikaži profil", - "lists.account.add": "Dodaj na listu", - "lists.account.remove": "Ukloni s liste", "lists.delete": "Izbriši listu", "lists.edit": "Uredi listu", - "lists.edit.submit": "Promijeni naslov", - "lists.new.create": "Dodaj listu", - "lists.new.title_placeholder": "Naziv nove liste", "lists.replies_policy.followed": "Bilo koji praćeni korisnik", "lists.replies_policy.list": "Članovi liste", "lists.replies_policy.none": "Nitko", - "lists.search": "Traži među praćenim ljudima", - "lists.subheading": "Vaše liste", "navigation_bar.about": "O aplikaciji", "navigation_bar.advanced_interface": "Otvori u naprednom web sučelju", "navigation_bar.blocks": "Blokirani korisnici", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 2ba7aef34b..9a76a21e93 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Jelenleg nem található semmi ezzel a hashtaggel.", "empty_column.home": "A saját idővonalad üres! Kövess további embereket ennek megtöltéséhez.", "empty_column.list": "A lista jelenleg üres. Ha a listatagok bejegyzést tesznek közzé, itt fog megjelenni.", - "empty_column.lists": "Még nincs egyetlen listád sem. Ha létrehozol egyet, itt fog megjelenni.", "empty_column.mutes": "Még egy felhasználót sem némítottál le.", "empty_column.notification_requests": "Minden tiszta! Itt nincs semmi. Ha új értesítéseket kapsz, azok itt jelennek meg a beállításoknak megfelelően.", "empty_column.notifications": "Jelenleg még nincsenek értesítéseid. Ha mások kapcsolatba lépnek veled, ezek itt lesznek láthatóak.", @@ -465,20 +464,11 @@ "link_preview.author": "{name} szerint", "link_preview.more_from_author": "Több tőle: {name}", "link_preview.shares": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}", - "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", "lists.edit": "Lista szerkesztése", - "lists.edit.submit": "Cím megváltoztatása", - "lists.exclusive": "Ezen bejegyzések elrejtése a kezdőoldalról", - "lists.new.create": "Lista hozzáadása", - "lists.new.title_placeholder": "Új lista címe", "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.search": "Keresés a követett emberek között", - "lists.subheading": "Saját listák", "load_pending": "{count, plural, one {# új elem} other {# új elem}}", "loading_indicator.label": "Betöltés…", "media_gallery.hide": "Elrejtés", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 9e5ae79045..b5faf7e720 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -174,7 +174,6 @@ "empty_column.hashtag": "Այս պիտակով դեռ ոչինչ չկայ։", "empty_column.home": "Քո հիմնական հոսքը դատարկ է։ Այցելի՛ր {public}ը կամ օգտուիր որոնումից՝ այլ մարդկանց հանդիպելու համար։", "empty_column.list": "Այս ցանկում դեռ ոչինչ չկայ։ Երբ ցանկի անդամներից որեւէ մէկը նոր գրառում անի, այն կը յայտնուի այստեղ։", - "empty_column.lists": "Դուք դեռ չունէք ստեղծած ցանկ։ Ցանկ ստեղծելուն պէս այն կը յայտնուի այստեղ։", "empty_column.mutes": "Առայժմ ոչ ոքի չէք լռեցրել։", "empty_column.notifications": "Ոչ մի ծանուցում դեռ չունես։ Բզիր միւսներին՝ խօսակցութիւնը սկսելու համար։", "empty_column.public": "Այստեղ բան չկա՛յ։ Հրապարակային մի բան գրիր կամ հետեւիր այլ հանգոյցներից էակների՝ այն լցնելու համար։", @@ -273,19 +272,11 @@ "lightbox.close": "Փակել", "lightbox.next": "Յաջորդ", "lightbox.previous": "Նախորդ", - "lists.account.add": "Աւելացնել ցանկին", - "lists.account.remove": "Հանել ցանկից", "lists.delete": "Ջնջել ցանկը", "lists.edit": "Փոփոխել ցանկը", - "lists.edit.submit": "Փոխել վերնագիրը", - "lists.new.create": "Աւելացնել ցանկ", - "lists.new.title_placeholder": "Նոր ցանկի վերնագիր", "lists.replies_policy.followed": "Ցանկացած հետեւող օգտատէր", "lists.replies_policy.list": "Ցանկի անդամներ", "lists.replies_policy.none": "Ոչ ոք", - "lists.replies_policy.title": "Ցուցադրել պատասխանները՝", - "lists.search": "Փնտրել քո հետեւած մարդկանց մէջ", - "lists.subheading": "Քո ցանկերը", "load_pending": "{count, plural, one {# նոր նիւթ} other {# նոր նիւթ}}", "navigation_bar.about": "Մասին", "navigation_bar.blocks": "Արգելափակուած օգտատէրեր", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 402829817f..891c293d50 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Il non ha ancora alcun cosa in iste hashtag.", "empty_column.home": "Tu chronologia de initio es vacue! Seque plus personas pro plenar lo.", "empty_column.list": "Iste lista es ancora vacue. Quando le membros de iste lista publica nove messages, illos apparera hic.", - "empty_column.lists": "Tu non ha ancora listas. Quando tu crea un, illo apparera hic.", "empty_column.mutes": "Tu non ha ancora silentiate alcun usator.", "empty_column.notification_requests": "Iste lista es toto vacue! Quando tu recipe notificationes, illos apparera hic como configurate in tu parametros.", "empty_column.notifications": "Tu non ha ancora notificationes. Quando altere personas interage con te, tu lo videra hic.", @@ -465,20 +464,11 @@ "link_preview.author": "Per {name}", "link_preview.more_from_author": "Plus de {name}", "link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}", - "lists.account.add": "Adder al lista", - "lists.account.remove": "Remover del lista", "lists.delete": "Deler lista", "lists.edit": "Modificar lista", - "lists.edit.submit": "Cambiar titulo", - "lists.exclusive": "Celar iste messages sur le pagina de initio", - "lists.new.create": "Adder lista", - "lists.new.title_placeholder": "Nove titulo del lista", "lists.replies_policy.followed": "Qualcunque usator sequite", "lists.replies_policy.list": "Membros del lista", "lists.replies_policy.none": "Nemo", - "lists.replies_policy.title": "Monstrar responsas a:", - "lists.search": "Cercar inter le gente que tu seque", - "lists.subheading": "Tu listas", "load_pending": "{count, plural, one {# nove entrata} other {# nove entratas}}", "loading_indicator.label": "Cargante…", "media_gallery.hide": "Celar", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 4b43363960..c966ea0ab0 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -267,7 +267,6 @@ "empty_column.hashtag": "Tidak ada apa pun dalam hashtag ini.", "empty_column.home": "Linimasa anda kosong! Kunjungi {public} atau gunakan pencarian untuk memulai dan bertemu pengguna lain.", "empty_column.list": "Belum ada apa pun di daftar ini. Ketika anggota dari daftar ini mengirim kiriman baru, mereka akan tampil di sini.", - "empty_column.lists": "Anda belum memiliki daftar. Ketika Anda membuatnya, maka akan muncul di sini.", "empty_column.mutes": "Anda belum membisukan siapa pun.", "empty_column.notifications": "Anda belum memiliki notifikasi. Ketika orang lain berinteraksi dengan Anda, Anda akan melihatnya di sini.", "empty_column.public": "Tidak ada apa pun di sini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini", @@ -393,19 +392,11 @@ "limited_account_hint.action": "Tetap tampilkan profil", "limited_account_hint.title": "Profil ini telah disembunyikan oleh moderator {domain}.", "link_preview.author": "Oleh {name}", - "lists.account.add": "Tambah ke daftar", - "lists.account.remove": "Hapus dari daftar", "lists.delete": "Hapus daftar", "lists.edit": "Sunting daftar", - "lists.edit.submit": "Ubah judul", - "lists.new.create": "Tambah daftar", - "lists.new.title_placeholder": "Judul daftar baru", "lists.replies_policy.followed": "Siapa pun pengguna yang diikuti", "lists.replies_policy.list": "Anggota di daftar tersebut", "lists.replies_policy.none": "Tidak ada satu pun", - "lists.replies_policy.title": "Tampilkan balasan ke:", - "lists.search": "Cari di antara orang yang Anda ikuti", - "lists.subheading": "Daftar Anda", "load_pending": "{count, plural, other {# item baru}}", "loading_indicator.label": "Memuat…", "moved_to_account_banner.text": "Akun {disabledAccount} Anda kini dinonaktifkan karena Anda pindah ke {movedToAccount}.", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index f58cf1c71c..2be72b0488 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -253,7 +253,6 @@ "empty_column.hashtag": "Hay nullcos en ti-ci hashtag ancor.", "empty_column.home": "Tui hemal témpor-linea es vacui! Sequer plu gente por plenar it.", "empty_column.list": "Ancor ne hay quocunc in ti-ci liste. Quande membres de ti-ci liste publica nov postas, ili va aparir ci.", - "empty_column.lists": "Tu ancor have null listes. Quande tu crea un, it va aparir ci.", "empty_column.mutes": "Tu ancor ha silentiat null usatores.", "empty_column.notification_requests": "Omnicos clar! Hay necos ci. Nov notificationes va venir ci quande tu recive les secun tui parametres.", "empty_column.notifications": "Tu have null notificationes. Quande altri persones interacte con te, tu va vider it ci.", @@ -399,20 +398,11 @@ "limited_account_hint.action": "Monstrar profil totvez", "limited_account_hint.title": "Ti-ci profil ha esset celat del moderatores de {domain}.", "link_preview.author": "De {name}", - "lists.account.add": "Adjunter a liste", - "lists.account.remove": "Remover de liste", "lists.delete": "Deleter liste", "lists.edit": "Redacter liste", - "lists.edit.submit": "Changear titul", - "lists.exclusive": "Celar ti-ci postas del hemal témpor-linea", - "lists.new.create": "Adjunter liste", - "lists.new.title_placeholder": "Titul del nov liste", "lists.replies_policy.followed": "Quelcunc sequet usator", "lists.replies_policy.list": "Membres del liste", "lists.replies_policy.none": "Nequi", - "lists.replies_policy.title": "Monstrar responses a:", - "lists.search": "Serchar inter li persones quem tu seque", - "lists.subheading": "Tui listes", "load_pending": "{count, plural, one {# nov element} other {# nov elementes}}", "loading_indicator.label": "Cargant…", "moved_to_account_banner.text": "Tui conto {disabledAccount} es actualmen desactivisat pro que tu movet te a {movedToAccount}.", diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json index bcd62187af..60cb9b7c36 100644 --- a/app/javascript/mastodon/locales/ig.json +++ b/app/javascript/mastodon/locales/ig.json @@ -110,7 +110,6 @@ "lightbox.close": "Mechie", "lists.delete": "Hichapụ ndepụta", "lists.edit": "Dezie ndepụta", - "lists.subheading": "Ndepụta gị", "navigation_bar.about": "Maka", "navigation_bar.bookmarks": "Ebenrụtụakā", "navigation_bar.discover": "Chọpụta", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index f9173b65f9..8e2ea3dea4 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -271,7 +271,6 @@ "empty_column.hashtag": "Esas ankore nulo en ta gretovorto.", "empty_column.home": "Vua hemtempolineo esas vakua! Sequez plu multa personi por plenigar lu. {suggestions}", "empty_column.list": "There is nothing in this list yet.", - "empty_column.lists": "Vu ne havas irga listi til nun. Kande vu kreas talo, ol montresos hike.", "empty_column.mutes": "Vu ne silencigis irga uzanti til nun.", "empty_column.notification_requests": "Finis. Kande vu recevas nova savigi, oli aparos hike segun vua preferaji.", "empty_column.notifications": "Tu havas ankore nula savigo. Komunikez kun altri por debutar la konverso.", @@ -441,20 +440,11 @@ "link_preview.author": "Da {name}", "link_preview.more_from_author": "Plua de {name}", "link_preview.shares": "{count, plural,one {{counter} posto} other {{counter} posti}}", - "lists.account.add": "Insertez a listo", - "lists.account.remove": "Efacez de listo", "lists.delete": "Efacez listo", "lists.edit": "Modifikez listo", - "lists.edit.submit": "Chanjez titulo", - "lists.exclusive": "Celar ca posti del hemo", - "lists.new.create": "Insertez listo", - "lists.new.title_placeholder": "Nova listotitulo", "lists.replies_policy.followed": "Irga sequita uzanto", "lists.replies_policy.list": "Membro di listo", "lists.replies_policy.none": "Nulu", - "lists.replies_policy.title": "Montrez respondi a:", - "lists.search": "Trovez inter personi quon vu sequas", - "lists.subheading": "Vua listi", "load_pending": "{count, plural, one {# nova kozo} other {# nova kozi}}", "loading_indicator.label": "Kargante…", "media_gallery.hide": "Celez", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index ecfc642969..ce4c21e18b 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -140,13 +140,16 @@ "column.blocks": "Útilokaðir notendur", "column.bookmarks": "Bókamerki", "column.community": "Staðvær tímalína", + "column.create_list": "Búa til lista", "column.direct": "Einkaspjall", "column.directory": "Skoða notendasnið", "column.domain_blocks": "Útilokuð lén", + "column.edit_list": "Breyta lista", "column.favourites": "Eftirlæti", "column.firehose": "Bein streymi", "column.follow_requests": "Beiðnir um að fylgjast með", "column.home": "Heim", + "column.list_members": "Sýsla með meðlimi listans", "column.lists": "Listar", "column.mutes": "Þaggaðir notendur", "column.notifications": "Tilkynningar", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Það er ekkert ennþá undir þessu myllumerki.", "empty_column.home": "Heimatímalínan þín er tóm! Fylgstu með fleira fólki til að fylla hana. {suggestions}", "empty_column.list": "Það er ennþá ekki neitt á þessum lista. Þegar meðlimir á listanum senda inn nýjar færslur, munu þær birtast hér.", - "empty_column.lists": "Þú ert ennþá ekki með neina lista. Þegar þú býrð til einhvern lista, munu hann birtast hér.", "empty_column.mutes": "Þú hefur ekki þaggað niður í neinum notendum ennþá.", "empty_column.notification_requests": "Allt hreint! Það er ekkert hér. Þegar þú færð nýjar tilkynningar, munu þær birtast hér í samræmi við stillingarnar þínar.", "empty_column.notifications": "Þú ert ekki ennþá með neinar tilkynningar. Vertu í samskiptum við aðra til að umræður fari af stað.", @@ -465,20 +467,32 @@ "link_preview.author": "Frá {name}", "link_preview.more_from_author": "Meira frá {name}", "link_preview.shares": "{count, plural, one {{counter} færsla} other {{counter} færslur}}", - "lists.account.add": "Bæta á lista", - "lists.account.remove": "Fjarlægja af lista", + "lists.add_member": "Bæta við", + "lists.add_to_list": "Bæta á lista", + "lists.add_to_lists": "Bæta {name} á lista", + "lists.create": "Búa til", + "lists.create_a_list_to_organize": "Búðu til nýjan lista til að skipuleggja heimastreymið þitt", + "lists.create_list": "Búa til lista", "lists.delete": "Eyða lista", + "lists.done": "Lokið", "lists.edit": "Breyta lista", - "lists.edit.submit": "Breyta titli", - "lists.exclusive": "Hylja þessar færslur í heimastreymi", - "lists.new.create": "Bæta við lista", - "lists.new.title_placeholder": "Titill á nýjum lista", + "lists.exclusive": "Fela meðlimi í heimastreyminu", + "lists.exclusive_hint": "Ef einhver er á þessum lista, geturðu falið viðkomandi í heimastreyminu þínu til að komast hjá því að sjá færslurnar þeirra í tvígang.", + "lists.find_users_to_add": "Finndu notendur til að bæta við", + "lists.list_members": "Meðlimir lista", + "lists.list_members_count": "{count, plural, one {# meðlimur} other {# meðlimir}}", + "lists.list_name": "Heiti lista", + "lists.new_list_name": "Heiti á nýjum lista", + "lists.no_lists_yet": "Ennþá engir listar.", + "lists.no_members_yet": "Ennþá engir meðlimir.", + "lists.no_results_found": "Engar niðurstöður fundust.", + "lists.remove_member": "Fjarlægja", "lists.replies_policy.followed": "Allra notenda sem fylgst er með", "lists.replies_policy.list": "Meðlima listans", "lists.replies_policy.none": "Engra", - "lists.replies_policy.title": "Sýna svör til:", - "lists.search": "Leita meðal þeirra sem þú fylgist með", - "lists.subheading": "Listarnir þínir", + "lists.save": "Vista", + "lists.search_placeholder": "Leitaðu að fólki sem þú fylgist með", + "lists.show_replies_to": "Hafa með svör frá meðlimum lista til", "load_pending": "{count, plural, one {# nýtt atriði} other {# ný atriði}}", "loading_indicator.label": "Hleð inn…", "media_gallery.hide": "Fela", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index c4fcbdc3a4..d947b59eae 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -289,7 +289,6 @@ "empty_column.hashtag": "Non c'è ancora nulla in questo hashtag.", "empty_column.home": "La cronologia della tua home è vuota! Segui altre persone per riempirla. {suggestions}", "empty_column.list": "Non c'è ancora nulla in questo elenco. Quando i membri di questo elenco pubblicheranno nuovi post, appariranno qui.", - "empty_column.lists": "Non hai ancora nessun elenco. Quando ne creerai uno, apparirà qui.", "empty_column.mutes": "Non hai ancora silenziato alcun utente.", "empty_column.notification_requests": "Tutto chiaro! Non c'è niente qui. Quando ricevi nuove notifiche, verranno visualizzate qui in base alle tue impostazioni.", "empty_column.notifications": "Non hai ancora nessuna notifica. Quando altre persone interagiranno con te, le vedrai qui.", @@ -462,20 +461,11 @@ "link_preview.author": "Di {name}", "link_preview.more_from_author": "Altro da {name}", "link_preview.shares": "{count, plural, one {{counter} post} other {{counter} post}}", - "lists.account.add": "Aggiungi all'elenco", - "lists.account.remove": "Rimuovi dall'elenco", "lists.delete": "Elimina elenco", "lists.edit": "Modifica elenco", - "lists.edit.submit": "Cambia il titolo", - "lists.exclusive": "Nascondi questi post dalla home", - "lists.new.create": "Aggiungi lista", - "lists.new.title_placeholder": "Titolo del nuovo elenco", "lists.replies_policy.followed": "Qualsiasi utente seguito", "lists.replies_policy.list": "Membri dell'elenco", "lists.replies_policy.none": "Nessuno", - "lists.replies_policy.title": "Mostra risposte a:", - "lists.search": "Cerca tra le persone che segui", - "lists.subheading": "Le tue liste", "load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}", "loading_indicator.label": "Caricamento…", "media_gallery.hide": "Nascondi", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index b839764242..1f891b9f90 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -291,7 +291,6 @@ "empty_column.hashtag": "このハッシュタグはまだ使われていません。", "empty_column.home": "ホームタイムラインはまだ空っぽです。だれかをフォローして埋めてみましょう。", "empty_column.list": "このリストにはまだなにもありません。このリストのメンバーが新しい投稿をするとここに表示されます。", - "empty_column.lists": "まだリストがありません。リストを作るとここに表示されます。", "empty_column.mutes": "まだ誰もミュートしていません。", "empty_column.notification_requests": "ここに表示するものはありません。新しい通知を受け取ったとき、フィルタリング設定で通知がブロックされたアカウントがある場合はここに表示されます。", "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。", @@ -464,20 +463,11 @@ "link_preview.author": "{name}", "link_preview.more_from_author": "{name}さんの投稿をもっと読む", "link_preview.shares": "{count, plural, other {{counter}件の投稿}}", - "lists.account.add": "リストに追加", - "lists.account.remove": "リストから外す", "lists.delete": "リストを削除", "lists.edit": "リストを編集", - "lists.edit.submit": "タイトルを変更", - "lists.exclusive": "ホームタイムラインからこれらの投稿を非表示にする", - "lists.new.create": "リストを作成", - "lists.new.title_placeholder": "新規リスト名", "lists.replies_policy.followed": "フォロー中のユーザー全員", "lists.replies_policy.list": "リストのメンバー", "lists.replies_policy.none": "表示しない", - "lists.replies_policy.title": "リプライを表示:", - "lists.search": "フォローしている人の中から検索", - "lists.subheading": "あなたのリスト", "load_pending": "{count}件の新着", "loading_indicator.label": "読み込み中…", "media_gallery.hide": "隠す", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index fc0ed0730d..b38cc0e44a 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -145,14 +145,8 @@ "lightbox.close": "დახურვა", "lightbox.next": "შემდეგი", "lightbox.previous": "წინა", - "lists.account.add": "სიაში დამატება", - "lists.account.remove": "სიიდან ამოშლა", "lists.delete": "სიის წაშლა", "lists.edit": "სიის შეცვლა", - "lists.new.create": "სიის დამატება", - "lists.new.title_placeholder": "ახალი სიის სათაური", - "lists.search": "ძებნა ადამიანებს შორის რომელთაც მიჰყვებით", - "lists.subheading": "თქვენი სიები", "navigation_bar.blocks": "დაბლოკილი მომხმარებლები", "navigation_bar.community_timeline": "ლოკალური თაიმლაინი", "navigation_bar.compose": "Compose new toot", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 9cf94f2606..74d8e5a194 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -219,7 +219,6 @@ "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaɣ ɣer uhacṭag-agi.", "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neɣ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.", "empty_column.list": "Ar tura ur yelli kra deg umuɣ-a. Ad d-yettwasken da ticki iɛeggalen n wumuɣ-a suffɣen-d kra.", - "empty_column.lists": "Ulac ɣur-k·m kra n wumuɣ yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", "empty_column.mutes": "Ulac ɣur-k·m imseqdacen i yettwasgugmen.", "empty_column.notifications": "Ulac ɣur-k·m alɣuten. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", "empty_column.public": "Ulac kra da! Aru kra, neɣ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt", @@ -341,20 +340,11 @@ "link_preview.author": "S-ɣur {name}", "link_preview.more_from_author": "Ugar sɣur {name}", "link_preview.shares": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", - "lists.account.add": "Rnu ɣer tebdart", - "lists.account.remove": "Kkes seg tebdart", "lists.delete": "Kkes tabdart", "lists.edit": "Ẓreg tabdart", - "lists.edit.submit": "Beddel azwel", - "lists.exclusive": "Ffer tisuffaɣ-a seg ugejdan", - "lists.new.create": "Rnu tabdart", - "lists.new.title_placeholder": "Azwel amaynut n tebdart", "lists.replies_policy.followed": "Kra n useqdac i yettwaḍefren", "lists.replies_policy.list": "Iɛeggalen n tebdart", "lists.replies_policy.none": "Ula yiwen·t", - "lists.replies_policy.title": "Ssken-d tiririyin i:", - "lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ", - "lists.subheading": "Tibdarin-ik·im", "load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}", "loading_indicator.label": "Yessalay-d …", "media_gallery.hide": "Seggelmes", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index f146fc652d..fad2807ffa 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -149,7 +149,6 @@ "empty_column.hashtag": "Бұндай хэштегпен әлі ешкім жазбапты.", "empty_column.home": "Әлі ешкімге жазылмапсыз. Бәлкім {public} жазбаларын қарап немесе іздеуді қолданып көрерсіз.", "empty_column.list": "Бұл тізімде ештеңе жоқ.", - "empty_column.lists": "Әзірше ешқандай тізіміңіз жоқ. Біреуін құрғаннан кейін осы жерде көрінетін болады.", "empty_column.mutes": "Әзірше ешқандай үнсізге қойылған қолданушы жоқ.", "empty_column.notifications": "Әзірше ешқандай ескертпе жоқ. Басқалармен араласуды бастаңыз және пікірталастарға қатысыңыз.", "empty_column.public": "Ештеңе жоқ бұл жерде! Өзіңіз бастап жазып көріңіз немесе басқаларға жазылыңыз", @@ -212,15 +211,8 @@ "lightbox.close": "Жабу", "lightbox.next": "Келесі", "lightbox.previous": "Алдыңғы", - "lists.account.add": "Тізімге қосу", - "lists.account.remove": "Тізімнен шығару", "lists.delete": "Тізімді өшіру", "lists.edit": "Тізімді өңдеу", - "lists.edit.submit": "Тақырыбын өзгерту", - "lists.new.create": "Тізім құру", - "lists.new.title_placeholder": "Жаңа тізім аты", - "lists.search": "Сіз іздеген адамдар арасында іздеу", - "lists.subheading": "Тізімдеріңіз", "load_pending": "{count, plural, one {# жаңа нәрсе} other {# жаңа нәрсе}}", "navigation_bar.blocks": "Бұғатталғандар", "navigation_bar.bookmarks": "Бетбелгілер", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 43f1e59e5e..ac19040d3a 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.", "empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람을 팔로우하여 채워보세요.", "empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.", - "empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.", "empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.", "empty_column.notification_requests": "깔끔합니다! 여기엔 아무 것도 없습니다. 알림을 받게 되면 설정에 따라 여기에 나타나게 됩니다.", "empty_column.notifications": "아직 알림이 없습니다. 다른 사람들이 당신에게 반응했을 때, 여기에서 볼 수 있습니다.", @@ -465,20 +464,11 @@ "link_preview.author": "{name}", "link_preview.more_from_author": "{name} 프로필 보기", "link_preview.shares": "{count, plural, other {{counter} 개의 게시물}}", - "lists.account.add": "리스트에 추가", - "lists.account.remove": "리스트에서 제거", "lists.delete": "리스트 삭제", "lists.edit": "리스트 편집", - "lists.edit.submit": "제목 수정", - "lists.exclusive": "홈에서 이 게시물들 숨기기", - "lists.new.create": "리스트 추가", - "lists.new.title_placeholder": "새 리스트의 이름", "lists.replies_policy.followed": "팔로우 한 사용자 누구나", "lists.replies_policy.list": "리스트의 구성원", "lists.replies_policy.none": "모두 제외", - "lists.replies_policy.title": "답글 표시:", - "lists.search": "팔로우 중인 사람들 중에서 찾기", - "lists.subheading": "리스트", "load_pending": "{count, plural, other {#}} 개의 새 항목", "loading_indicator.label": "불러오는 중...", "media_gallery.hide": "숨기기", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 86ecf98446..d15fbb6762 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -190,7 +190,6 @@ "empty_column.hashtag": "Di vê hashtagê de hêj tiştekî tune.", "empty_column.home": "Rojeva demnameya te vala ye! Ji bona tijîkirinê bêtir mirovan bişopîne. {suggestions}", "empty_column.list": "Di vê rêzokê de hîn tiştek tune ye. Gava ku endamên vê rêzokê peyamên nû biweşînin, ew ê li vir xuya bibin.", - "empty_column.lists": "Hîn tu rêzokên te tune ne. Dema yekî çê bikî, ew ê li vir xuya bibe.", "empty_column.mutes": "Te tu bikarhêner bêdeng nekiriye.", "empty_column.notifications": "Hêj hişyariyên te tunene. Dema ku mirovên din bi we re têkilî danîn, hûn ê wê li vir bibînin.", "empty_column.public": "Li vir tiştekî tuneye! Ji raya giştî re tiştekî binivîsîne, an ji bo tijîkirinê ji rajekerên din bikarhêneran bi destan bişopînin", @@ -297,19 +296,11 @@ "lightbox.previous": "Paş", "limited_account_hint.action": "Bi heman awayî profîlê nîşan bide", "limited_account_hint.title": "Profîl ji aliyê rêveberên {domain}ê ve hatiye veşartin.", - "lists.account.add": "Li lîsteyê zêde bike", - "lists.account.remove": "Ji lîsteyê rake", "lists.delete": "Lîsteyê jê bibe", "lists.edit": "Lîsteyê serrast bike", - "lists.edit.submit": "Sernavê biguherîne", - "lists.new.create": "Li lîsteyê zêde bike", - "lists.new.title_placeholder": "Sernavê lîsteya nû", "lists.replies_policy.followed": "Bikarhênereke şopandî", "lists.replies_policy.list": "Endamên lîsteyê", "lists.replies_policy.none": "Ne yek", - "lists.replies_policy.title": "Bersivan nîşan bide:", - "lists.search": "Di navbera kesên ku te dişopînin bigere", - "lists.subheading": "Lîsteyên te", "load_pending": "{count, plural, one {# hêmaneke nû} other {#hêmaneke nû}}", "moved_to_account_banner.text": "Ajimêrê te {disabledAccount} niha neçalak e ji ber ku te bar kir bo {movedToAccount}.", "navigation_bar.about": "Derbar", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index cef24aa3b7..49f8149f65 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -131,7 +131,6 @@ "empty_column.hashtag": "Nyns eus travyth y'n bòlnos ma hwath.", "empty_column.home": "Agas amserlin dre yw gwag! Holyewgh moy a dus dh'y lenwel. {suggestions}", "empty_column.list": "Nyns eus travyth y'n rol ma hwath. Pan wra eseli an rol ma dyllo postow nowydh, i a wra omdhiskwedhes omma.", - "empty_column.lists": "Nyns eus dhywgh rolyow hwath. Pan wrewgh onan, hi a wra omdhiskwedhes omma.", "empty_column.mutes": "Ny wrussowgh tawhe devnydhyoryon vyth hwath.", "empty_column.notifications": "Nyns eus dhywgh gwarnyansow hwath. Pan wra tus erel ynterweythresa genowgh, hwi a'n gwel omma.", "empty_column.public": "Nyns eus travyth omma! Skrifewgh neppyth yn poblek, po holyewgh tus a leurennow erel dre leuv dh'y lenwel", @@ -197,19 +196,11 @@ "lightbox.close": "Degea", "lightbox.next": "Nessa", "lightbox.previous": "Kynsa", - "lists.account.add": "Keworra dhe rol", - "lists.account.remove": "Removya a rol", "lists.delete": "Dilea rol", "lists.edit": "Golegi rol", - "lists.edit.submit": "Chanjya titel", - "lists.new.create": "Keworra rol", - "lists.new.title_placeholder": "Titel rol nowydh", "lists.replies_policy.followed": "Py devnydhyer holys pynag", "lists.replies_policy.list": "Eseli an rol", "lists.replies_policy.none": "Nagonan", - "lists.replies_policy.title": "Diskwedhes gorthebow orth:", - "lists.search": "Hwilas yn-mysk tus a holyewgh", - "lists.subheading": "Agas rolyow", "load_pending": "{count, plural, one {# daklennowydh} other {# a daklennow nowydh}}", "navigation_bar.blocks": "Devnydhyoryon lettys", "navigation_bar.bookmarks": "Folennosow", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 55678dbdf8..fc36d89272 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -81,7 +81,6 @@ "empty_column.followed_tags": "Nōn adhūc aliquem hastāginem secūtus es. Cum id fēceris, hic ostendētur.", "empty_column.home": "Tua linea temporum domesticus vacua est! Sequere plures personas ut eam compleas.", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "Nōn adhūc habēs ullo tabellās. Cum creās, hīc apparēbunt.", "empty_column.mutes": "Nondum quemquam usorem tacuisti.", "empty_column.notification_requests": "Omnia clara sunt! Nihil hic est. Cum novās notificātiōnēs accipīs, hic secundum tua praecepta apparebunt.", "empty_column.notifications": "Nōn adhūc habēs ullo notificātiōnēs. Cum aliī tē interagunt, hīc videbis.", @@ -138,9 +137,6 @@ "keyboard_shortcuts.up": "to move up in the list", "lightbox.close": "Claudere", "lightbox.next": "Secundum", - "lists.account.add": "Adde ad tabellās", - "lists.new.create": "Addere tabella", - "lists.subheading": "Tuae tabulae", "load_pending": "{count, plural, one {# novum item} other {# nova itema}}", "moved_to_account_banner.text": "Tua ratione {disabledAccount} interdum reposita est, quod ad {movedToAccount} migrāvisti.", "mute_modal.you_wont_see_mentions": "Non videbis nuntios quī eōs commemorant.", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 0a5f82aee3..9f4f6e6cb9 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -270,7 +270,6 @@ "empty_column.hashtag": "Ainda no ay niente en esta etiketa.", "empty_column.home": "Tu linya de tiempo esta vaziya! Sige a mas personas para inchirla.", "empty_column.list": "Ainda no ay niente en esta lista. Kuando miembros de esta lista publiken muevas publikasyones, se amostraran aki.", - "empty_column.lists": "Ainda no tienes dinguna lista. Kuando kriyes una, aperesera aki.", "empty_column.mutes": "Ainda no tienes silensiado a dingun utilizador.", "empty_column.notifications": "Ainda no tienes dingun avizo. Kuando otras personas enteraktuen kontigo, se amostraran aki.", "empty_column.public": "No ay niente aki! Eskrive algo publikamente o manualmente sige utilizadores de otros sirvidores para inchirlo", @@ -433,20 +432,11 @@ "link_preview.author": "Publikasyon de {name}", "link_preview.more_from_author": "Mas de {name}", "link_preview.shares": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}", - "lists.account.add": "Adjusta a lista", - "lists.account.remove": "Kita de lista", "lists.delete": "Efasa lista", "lists.edit": "Edita lista", - "lists.edit.submit": "Troka titolo", - "lists.exclusive": "Eskonder estas publikasyones de linya prinsipala", - "lists.new.create": "Adjusta lista", - "lists.new.title_placeholder": "Titolo de mueva lista", "lists.replies_policy.followed": "Kualseker utilizador segido", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Dinguno", - "lists.replies_policy.title": "Amostra repuestas a:", - "lists.search": "Bushka entre personas a las kualas siges", - "lists.subheading": "Tus listas", "load_pending": "{count, plural, one {# muevo elemento} other {# muevos elementos}}", "loading_indicator.label": "Eskargando…", "media_gallery.hide": "Eskonde", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 6d4f46f1d4..f9080f96e5 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -140,13 +140,16 @@ "column.blocks": "Užblokuoti naudotojai", "column.bookmarks": "Žymės", "column.community": "Vietinė laiko skalė", + "column.create_list": "Kurti sąrašą", "column.direct": "Privatūs paminėjimai", "column.directory": "Naršyti profilius", "column.domain_blocks": "Užblokuoti serveriai", + "column.edit_list": "Redaguoti sąrašą", "column.favourites": "Mėgstami", "column.firehose": "Tiesioginiai srautai", "column.follow_requests": "Sekimo prašymai", "column.home": "Pagrindinis", + "column.list_members": "Tvarkyti sąrašo narius", "column.lists": "Sąrašai", "column.mutes": "Nutildyti naudotojai", "column.notifications": "Pranešimai", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Nėra nieko šiame saitažodyje kol kas.", "empty_column.home": "Tavo pagrindinio laiko skalė tuščia. Sek daugiau žmonių, kad ją užpildytum.", "empty_column.list": "Nėra nieko šiame sąraše kol kas. Kai šio sąrašo nariai paskelbs naujų įrašų, jie bus rodomi čia.", - "empty_column.lists": "Dar neturi jokių sąrašų. Kai jį sukursi, jis bus rodomas čia.", "empty_column.mutes": "Dar nesi nutildęs (-usi) nė vieno naudotojo.", "empty_column.notification_requests": "Viskas švaru! Čia nieko nėra. Kai gausi naujų pranešimų, jie bus rodomi čia pagal tavo nustatymus.", "empty_column.notifications": "Dar neturi jokių pranešimų. Kai kiti žmonės su tavimi sąveikaus, matysi tai čia.", @@ -465,20 +467,32 @@ "link_preview.author": "Sukūrė {name}", "link_preview.more_from_author": "Daugiau iš {name}", "link_preview.shares": "{count, plural, one {{counter} įrašas} few {{counter} įrašai} many {{counter} įrašo} other {{counter} įrašų}}", - "lists.account.add": "Pridėti į sąrašą", - "lists.account.remove": "Pašalinti iš sąrašo", + "lists.add_member": "Pridėti", + "lists.add_to_list": "Pridėti į sąrašą", + "lists.add_to_lists": "Pridėti {name} į sąrašą", + "lists.create": "Kurti", + "lists.create_a_list_to_organize": "Sukurkite naują sąrašą, kad sutvarkytumėte pagrindinį srautą", + "lists.create_list": "Kurti sąrašą", "lists.delete": "Ištrinti sąrašą", + "lists.done": "Atlikta", "lists.edit": "Redaguoti sąrašą", - "lists.edit.submit": "Keisti pavadinimą", - "lists.exclusive": "Slėpti šiuos įrašus iš pagrindinio", - "lists.new.create": "Pridėti sąrašą", - "lists.new.title_placeholder": "Naujas sąrašo pavadinimas", + "lists.exclusive": "Slėpti narius pagrindiniame", + "lists.exclusive_hint": "Jei kas nors yra šiame sąraše, paslėpkite juos pagrindinio srauto laiko skalėje, kad nematytumėte jų įrašus dukart.", + "lists.find_users_to_add": "Raskite naudotojų, kurių pridėti", + "lists.list_members": "Sąrašo nariai", + "lists.list_members_count": "{count, plural, one {# narys} few {# nariai} many {# nario} other {# narių}}", + "lists.list_name": "Sąrašo pavadinimas", + "lists.new_list_name": "Naujas sąrašo pavadinimas", + "lists.no_lists_yet": "Kol kas nėra sąrašų.", + "lists.no_members_yet": "Kol kas nėra narių.", + "lists.no_results_found": "Rezultatų nerasta.", + "lists.remove_member": "Šalinti", "lists.replies_policy.followed": "Bet kuriam sekamam naudotojui", "lists.replies_policy.list": "Sąrašo nariams", "lists.replies_policy.none": "Nei vienam", - "lists.replies_policy.title": "Rodyti atsakymus:", - "lists.search": "Ieškoti tarp sekamų žmonių", - "lists.subheading": "Tavo sąrašai", + "lists.save": "Išsaugoti", + "lists.search_placeholder": "Ieškokite asmenų, kuriuos sekate", + "lists.show_replies_to": "Įtraukti atsakymus iš sąrašo narių į", "load_pending": "{count, plural, one {# naujas elementas} few {# nauji elementai} many {# naujo elemento} other {# naujų elementų}}", "loading_indicator.label": "Kraunama…", "media_gallery.hide": "Slėpti", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index d6fcb34828..542231f05f 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -262,7 +262,6 @@ "empty_column.hashtag": "Ar šo tēmturi nekas nav atrodams.", "empty_column.home": "Tava mājas laikjosla ir tukša. Seko vairāk cilvēkiem, lai to piepildītu!", "empty_column.list": "Pagaidām šajā sarakstā nekā nav. Kad šī saraksta dalībnieki ievietos jaunus ierakstus, tie parādīsies šeit.", - "empty_column.lists": "Pašlaik Tev nav neviena saraksta. Kad tādu izveidosi, tas parādīsies šeit.", "empty_column.mutes": "Neviens lietotājs vēl nav apklusināts.", "empty_column.notifications": "Tev vēl nav paziņojumu. Kad citi cilvēki ar Tevi mijiedarbosies, Tu to redzēsi šeit.", "empty_column.public": "Šeit nekā nav. Ieraksti kaut ko publiski vai seko lietotājiem no citiem serveriem, lai iegūtu saturu", @@ -405,20 +404,11 @@ "limited_account_hint.title": "{domain} moderatori ir paslēpuši šo profilu.", "link_preview.author": "Pēc {name}", "link_preview.more_from_author": "Vairāk no {name}", - "lists.account.add": "Pievienot sarakstam", - "lists.account.remove": "Noņemt no saraksta", "lists.delete": "Izdzēst sarakstu", "lists.edit": "Labot sarakstu", - "lists.edit.submit": "Mainīt virsrakstu", - "lists.exclusive": "Nerādīt šos ierakstus sākumā", - "lists.new.create": "Pievienot sarakstu", - "lists.new.title_placeholder": "Jaunā saraksta nosaukums", "lists.replies_policy.followed": "Jebkuram sekotajam lietotājam", "lists.replies_policy.list": "Saraksta dalībniekiem", "lists.replies_policy.none": "Nevienam", - "lists.replies_policy.title": "Rādīt atbildes:", - "lists.search": "Meklēt starp cilvēkiem, kuriem tu seko", - "lists.subheading": "Tavi saraksti", "load_pending": "{count, plural, one {# jauna lieta} other {# jaunas lietas}}", "loading_indicator.label": "Ielādē…", "media_gallery.hide": "Paslēpt", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index b7a2ad2a3f..de4f565a5f 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -275,17 +275,9 @@ "lightbox.previous": "പുറകോട്ട്", "limited_account_hint.action": "എന്നാലും രൂപരേഖ കാണിക്കുക", "link_preview.author": "{name}-നിന്നു്", - "lists.account.add": "പട്ടികയിലേക്ക് ചേർക്കുക", - "lists.account.remove": "പട്ടികയിൽ നിന്ന് ഒഴിവാക്കുക", "lists.delete": "പട്ടിക ഒഴിവാക്കുക", "lists.edit": "പട്ടിക തിരുത്തുക", - "lists.edit.submit": "തലക്കെട്ട് മാറ്റുക", - "lists.exclusive": "ഈ എഴുത്തുകൾ ആമുഖം നിന്നു് മറയ്ക്കുക", - "lists.new.create": "പുതിയ പട്ടിക ചേർക്കുക", - "lists.new.title_placeholder": "പുതിയ പട്ടിക തലക്കെട്ടു്", "lists.replies_policy.none": "ആരുമില്ല", - "lists.replies_policy.title": "ഇതിനുള്ള മറുപടികൾ കാണിക്കുക:", - "lists.subheading": "എന്റെ പട്ടികകൾ", "media_gallery.hide": "മറയ്ക്കുക", "navigation_bar.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", "navigation_bar.bookmarks": "ബുക്ക്മാർക്കുകൾ", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index aa8169616e..363269541b 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -173,19 +173,11 @@ "lightbox.previous": "मागील", "limited_account_hint.action": "तरीही प्रोफाइल दाखवा", "limited_account_hint.title": "हे प्रोफाइल {domain} च्या नियंत्रकांनी लपवले आहे.", - "lists.account.add": "यादीमध्ये जोडा", - "lists.account.remove": "यादीमधून काढा", "lists.delete": "सूची हटवा", "lists.edit": "सूची संपादित करा", - "lists.edit.submit": "शीर्षक बदला", - "lists.new.create": "यादी जोडा", - "lists.new.title_placeholder": "नवीन सूची शीर्षक", "lists.replies_policy.followed": "कोणताही फॉलो केलेला वापरकर्ता", "lists.replies_policy.list": "यादीतील सदस्य", "lists.replies_policy.none": "कोणीच नाही", - "lists.replies_policy.title": "यांना उत्तरे दाखवा:", - "lists.search": "तुम्ही फॉलो करत असलेल्या लोकांमध्ये शोधा", - "lists.subheading": "तुमच्या याद्या", "load_pending": "{count, plural, one {# new item} other {# new items}}", "navigation_bar.compose": "Compose new toot", "navigation_bar.domain_blocks": "Hidden domains", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 9dea731397..f2af798d4e 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -229,7 +229,6 @@ "empty_column.hashtag": "Belum ada apa-apa dengan tanda pagar ini.", "empty_column.home": "Garis masa laman utama anda kosong! Ikuti lebih ramai orang untuk mengisinya. {suggestions}", "empty_column.list": "Tiada apa-apa di senarai ini lagi. Apabila ahli senarai ini menerbitkan hantaran baharu, ia akan dipaparkan di sini.", - "empty_column.lists": "Anda belum ada sebarang senarai. Apabila anda menciptanya, ia akan muncul di sini.", "empty_column.mutes": "Anda belum membisukan sesiapa.", "empty_column.notifications": "Anda belum ada sebarang pemberitahuan. Apabila orang lain berinteraksi dengan anda, ia akan muncul di sini.", "empty_column.public": "Tiada apa-apa di sini! Tulis sesuatu secara awam, atau ikuti pengguna daripada pelayan lain secara manual untuk mengisinya", @@ -366,20 +365,11 @@ "limited_account_hint.action": "Paparkan profil", "limited_account_hint.title": "Profil ini telah disembunyikan oleh moderator {domain}.", "link_preview.author": "Dengan {name}", - "lists.account.add": "Tambah ke senarai", - "lists.account.remove": "Buang daripada senarai", "lists.delete": "Padam senarai", "lists.edit": "Sunting senarai", - "lists.edit.submit": "Ubah tajuk", - "lists.exclusive": "Sembunyikan pos ini dari rumah", - "lists.new.create": "Tambah senarai", - "lists.new.title_placeholder": "Tajuk senarai baharu", "lists.replies_policy.followed": "Sesiapa yang diikuti", "lists.replies_policy.list": "Ahli-ahli dalam senarai", "lists.replies_policy.none": "Tiada sesiapa", - "lists.replies_policy.title": "Tunjukkan balasan kepada:", - "lists.search": "Cari dalam kalangan orang yang anda ikuti", - "lists.subheading": "Senarai anda", "load_pending": "{count, plural, one {# item baharu} other {# item baharu}}", "loading_indicator.label": "Memuatkan…", "moved_to_account_banner.text": "Akaun anda {disabledAccount} kini dinyahdayakan kerana anda berpindah ke {movedToAccount}.", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index c97de73335..a82e56e6f2 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -215,7 +215,6 @@ "empty_column.hashtag": "ဤ hashtag တွင် မည်သည့်အရာမျှ မရှိသေးပါ။", "empty_column.home": "သင့်ပင်မစာမျက်နှာမှာ အလွတ်ဖြစ်နေပါသည်။ ဖြည့်ရန်အတွက် လူများကို စောင့်ကြည့်ပါ {suggestions}", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "သင့်တွင် List မရှိသေးပါ။ List အသစ်ဖွင့်လျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်မည်", "empty_column.mutes": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ", "empty_column.notifications": "သတိပေးချက်မရှိသေးပါ။ သတိပေးချက်အသစ်ရှိလျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်သည်", "empty_column.public": "ဤနေရာတွင် မည်သည့်အရာမျှမရှိပါ။ တစ်ခုခုရေးပါ သို့မဟုတ် ဖြည့်စွက်ရန်အတွက် အခြားဆာဗာ အသုံးပြုသူများကို စောင့်ကြည့်ပါ။", @@ -344,20 +343,11 @@ "limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ", "limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။", "link_preview.author": "{name} ဖြင့်", - "lists.account.add": "စာရင်းထဲသို့ထည့်ပါ", - "lists.account.remove": "စာရင်းမှ ဖယ်ရှားလိုက်ပါ။", "lists.delete": "စာရင်းကိုဖျက်ပါ", "lists.edit": "စာရင်းကိုပြင်ဆင်ပါ", - "lists.edit.submit": "ခေါင်းစဥ် ပြောင်းလဲရန်", - "lists.exclusive": "ဤပို့စ်များကို ပင်မစာမျက်နှာတွင် မပြပါနှင့်", - "lists.new.create": "စာရင်းသွင်းပါ", - "lists.new.title_placeholder": "စာရင်းသစ်ခေါင်းစဥ်", "lists.replies_policy.followed": "မည်သည့်စောင့်ကြည့်သူမဆို", "lists.replies_policy.list": "စာရင်းထဲမှ အဖွဲ့ဝင်များ", "lists.replies_policy.none": "တစ်ယောက်မှမရှိပါ", - "lists.replies_policy.title": "ပြန်စာများကို ပြရန် -", - "lists.search": "မိမိဖောလိုးထားသူများမှရှာဖွေမည်", - "lists.subheading": "သင့်၏စာရင်းများ", "load_pending": "{count, plural, one {# new item} other {# new items}}", "loading_indicator.label": "လုပ်ဆောင်နေသည်…", "moved_to_account_banner.text": "{movedToAccount} အကောင့်သို့ပြောင်းလဲထားသဖြင့် {disabledAccount} အကောင့်မှာပိတ်ထားသည်", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index eb21d2ad1d..1828fc8f02 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -140,13 +140,16 @@ "column.blocks": "Geblokkeerde gebruikers", "column.bookmarks": "Bladwijzers", "column.community": "Lokale tijdlijn", + "column.create_list": "Lijst aanmaken", "column.direct": "Privéberichten", "column.directory": "Gebruikersgids", "column.domain_blocks": "Geblokkeerde servers", + "column.edit_list": "Lijst bewerken", "column.favourites": "Favorieten", "column.firehose": "Openbare tijdlijnen", "column.follow_requests": "Volgverzoeken", "column.home": "Start", + "column.list_members": "Lijstleden beheren", "column.lists": "Lijsten", "column.mutes": "Genegeerde gebruikers", "column.notifications": "Meldingen", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.", "empty_column.home": "Deze tijdlijn is leeg! Volg meer mensen om het te vullen.", "empty_column.list": "Er is nog niks te zien in deze lijst. Wanneer lijstleden nieuwe berichten plaatsen, zijn deze hier te zien.", - "empty_column.lists": "Je hebt nog geen lijsten. Wanneer je er een aanmaakt, valt dat hier te zien.", "empty_column.mutes": "Jij hebt nog geen gebruikers genegeerd.", "empty_column.notification_requests": "Helemaal leeg! Er is hier niets. Wanneer je nieuwe meldingen ontvangt, verschijnen deze hier volgens jouw instellingen.", "empty_column.notifications": "Je hebt nog geen meldingen. Begin met iemand een gesprek.", @@ -465,20 +467,32 @@ "link_preview.author": "Door {name}", "link_preview.more_from_author": "Meer van {name}", "link_preview.shares": "{count, plural, one {{counter} bericht} other {{counter} berichten}}", - "lists.account.add": "Aan lijst toevoegen", - "lists.account.remove": "Uit lijst verwijderen", + "lists.add_member": "Toevoegen", + "lists.add_to_list": "Aan lijst toevoegen", + "lists.add_to_lists": "{name} aan lijsten toevoegen", + "lists.create": "Aanmaken", + "lists.create_a_list_to_organize": "Maak een nieuwe lijst aan om je Startpagina te organiseren", + "lists.create_list": "Lijst aanmaken", "lists.delete": "Lijst verwijderen", + "lists.done": "Klaar", "lists.edit": "Lijst bewerken", - "lists.edit.submit": "Titel veranderen", - "lists.exclusive": "Verberg lijstleden op je starttijdlijn", - "lists.new.create": "Lijst toevoegen", - "lists.new.title_placeholder": "Naam nieuwe lijst", + "lists.exclusive": "Leden op je Startpagina verbergen", + "lists.exclusive_hint": "Als iemand op deze lijst staat, verberg hem dan op je Startpagina om te voorkomen dat zijn berichten twee keer worden getoond.", + "lists.find_users_to_add": "Vind gebruikers om toe te voegen", + "lists.list_members": "Lijstleden", + "lists.list_members_count": "{count, plural, one{# lid} other{# leden}}", + "lists.list_name": "Lijstnaam", + "lists.new_list_name": "Nieuwe lijstnaam", + "lists.no_lists_yet": "Nog geen lijsten.", + "lists.no_members_yet": "Nog geen leden.", + "lists.no_results_found": "Geen resultaten gevonden.", + "lists.remove_member": "Verwijderen", "lists.replies_policy.followed": "Elke gevolgde gebruiker", "lists.replies_policy.list": "Leden van de lijst", "lists.replies_policy.none": "Niemand", - "lists.replies_policy.title": "Toon reacties aan:", - "lists.search": "Zoek naar mensen die je volgt", - "lists.subheading": "Jouw lijsten", + "lists.save": "Opslaan", + "lists.search_placeholder": "Zoek mensen die je volgt", + "lists.show_replies_to": "Voeg antwoorden van lijstleden toe aan", "load_pending": "{count, plural, one {# nieuw item} other {# nieuwe items}}", "loading_indicator.label": "Laden…", "media_gallery.hide": "Verberg", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 85d19c4f93..440387e1a9 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Det er ingenting i denne emneknaggen enno.", "empty_column.home": "Heime-tidslina di er tom! Fylg fleire folk for å fylla ho med innhald. {suggestions}.", "empty_column.list": "Det er ingenting i denne lista enno. Når medlemer av denne lista legg ut nye statusar, så dukkar dei opp her.", - "empty_column.lists": "Du har ingen lister enno. Når du lagar ei, så dukkar ho opp her.", "empty_column.mutes": "Du har ikkje målbunde nokon enno.", "empty_column.notification_requests": "Ferdig! Her er det ingenting. Når du får nye varsel, kjem dei opp her slik du har valt.", "empty_column.notifications": "Du har ingen varsel enno. Kommuniser med andre for å starte samtalen.", @@ -465,20 +464,11 @@ "link_preview.author": "Av {name}", "link_preview.more_from_author": "Meir frå {name}", "link_preview.shares": "{count, plural,one {{counter} innlegg} other {{counter} innlegg}}", - "lists.account.add": "Legg til i liste", - "lists.account.remove": "Fjern frå liste", "lists.delete": "Slett liste", "lists.edit": "Rediger liste", - "lists.edit.submit": "Endre tittel", - "lists.exclusive": "Skjul desse innlegga frå heimestraumen din", - "lists.new.create": "Legg til liste", - "lists.new.title_placeholder": "Ny listetittel", "lists.replies_policy.followed": "Alle fylgde brukarar", "lists.replies_policy.list": "Medlemar i lista", "lists.replies_policy.none": "Ingen", - "lists.replies_policy.title": "Vis svar på:", - "lists.search": "Søk blant folk du fylgjer", - "lists.subheading": "Listene dine", "load_pending": "{count, plural, one {# nytt element} other {# nye element}}", "loading_indicator.label": "Lastar…", "media_gallery.hide": "Gøym", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 9a5f379797..b461d3049f 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -268,7 +268,6 @@ "empty_column.hashtag": "Det er ingenting i denne emneknaggen ennå.", "empty_column.home": "Hjem-tidslinjen din er tom! Følg flere folk for å fylle den. {suggestions}", "empty_column.list": "Det er ingenting i denne listen ennå. Når medlemmene av denne listen legger ut nye statuser vil de dukke opp her.", - "empty_column.lists": "Du har ingen lister enda. Når du lager en, vil den dukke opp her.", "empty_column.mutes": "Du har ikke dempet noen brukere enda.", "empty_column.notification_requests": "Alt klart! Det er ingenting her. Når du mottar nye varsler, vises de her i henhold til dine innstillinger.", "empty_column.notifications": "Du har ingen varsler ennå. Kommuniser med andre for å begynne samtalen.", @@ -436,20 +435,11 @@ "link_preview.author": "Av {name}", "link_preview.more_from_author": "Mer fra {name}", "link_preview.shares": "{count, plural, one {{counter} innlegg} other {{counter} innlegg}}", - "lists.account.add": "Legg til i listen", - "lists.account.remove": "Fjern fra listen", "lists.delete": "Slett listen", "lists.edit": "Rediger listen", - "lists.edit.submit": "Endre tittel", - "lists.exclusive": "Skjul disse innleggene i tidslinjen", - "lists.new.create": "Legg til liste", - "lists.new.title_placeholder": "Ny listetittel", "lists.replies_policy.followed": "Enhver fulgt bruker", "lists.replies_policy.list": "Medlemmer i listen", "lists.replies_policy.none": "Ingen", - "lists.replies_policy.title": "Vis svar på:", - "lists.search": "Søk blant personer du følger", - "lists.subheading": "Dine lister", "load_pending": "{count, plural,one {# ny gjenstand} other {# nye gjenstander}}", "loading_indicator.label": "Laster…", "moved_to_account_banner.text": "Din konto {disabledAccount} er for øyeblikket deaktivert fordi du flyttet til {movedToAccount}.", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 37687bc844..ddaf949873 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -202,7 +202,6 @@ "empty_column.hashtag": "I a pas encara de contengut ligat a aquesta etiqueta.", "empty_column.home": "Vòstre flux d’acuèlh es void. Visitatz {public} o utilizatz la recèrca per vos connectar a d’autras personas.", "empty_column.list": "I a pas res dins la lista pel moment. Quand de membres d’aquesta lista publiquen de novèls estatuts los veiretz aquí.", - "empty_column.lists": "Encara avètz pas cap de lista. Quand ne creetz una, apareisserà aquí.", "empty_column.mutes": "Encara avètz pas mes en silenci degun.", "empty_column.notifications": "Avètz pas encara de notificacions. Respondètz a qualqu’un per començar una conversacion.", "empty_column.public": "I a pas res aquí ! Escrivètz quicòm de public, o seguètz de personas d’autres servidors per garnir lo flux public", @@ -311,19 +310,11 @@ "limited_account_hint.action": "Afichar lo perfil de tota manièra", "limited_account_hint.title": "Aqueste perfil foguèt rescondut per la moderacion de {domain}.", "link_preview.author": "Per {name}", - "lists.account.add": "Ajustar a la lista", - "lists.account.remove": "Levar de la lista", "lists.delete": "Suprimir la lista", "lists.edit": "Modificar la lista", - "lists.edit.submit": "Cambiar lo títol", - "lists.new.create": "Ajustar una lista", - "lists.new.title_placeholder": "Títol de la nòva lista", "lists.replies_policy.followed": "Quin seguidor que siá", "lists.replies_policy.list": "Membres de la lista", "lists.replies_policy.none": "Degun", - "lists.replies_policy.title": "Mostrar las responsas a :", - "lists.search": "Cercar demest lo mond que seguètz", - "lists.subheading": "Vòstras listas", "load_pending": "{count, plural, one {# nòu element} other {# nòu elements}}", "loading_indicator.label": "Cargament…", "navigation_bar.about": "A prepaus", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 5da88ff08f..86226f4cde 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -201,8 +201,6 @@ "lightbox.next": "ਅਗਲੀ", "lightbox.previous": "ਪਿਛਲੀ", "link_preview.author": "{name} ਵਲੋਂ", - "lists.account.add": "ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ", - "lists.account.remove": "ਸੂਚੀ ਵਿਚੋਂ ਹਟਾਓ", "lists.delete": "ਸੂਚੀ ਹਟਾਓ", "lists.replies_policy.followed": "ਕੋਈ ਵੀ ਫ਼ਾਲੋ ਕੀਤਾ ਵਰਤੋਂਕਾਰ", "lists.replies_policy.none": "ਕੋਈ ਨਹੀਂ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 4558e29cb8..86c02a6a87 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -291,7 +291,6 @@ "empty_column.hashtag": "Nie ma wpisów oznaczonych tym hasztagiem. Możesz napisać pierwszy(-a).", "empty_column.home": "Nie obserwujesz nikogo. Odwiedź globalną oś czasu lub użyj wyszukiwarki, aby znaleźć interesujące Cię profile.", "empty_column.list": "Nie ma nic na tej liście. Kiedy członkowie listy dodadzą nowe wpisy, pojawia się one tutaj.", - "empty_column.lists": "Nie masz żadnych list. Kiedy utworzysz jedną, pojawi się tutaj.", "empty_column.mutes": "Nie wyciszyłeś(-aś) jeszcze żadnego użytkownika.", "empty_column.notification_requests": "To wszystko – kiedy otrzymasz nowe powiadomienia, pokażą się tutaj zgodnie z twoimi ustawieniami.", "empty_column.notifications": "Nie masz żadnych powiadomień. Rozpocznij interakcje z innymi użytkownikami.", @@ -464,20 +463,11 @@ "link_preview.author": "{name}", "link_preview.more_from_author": "Więcej od {name}", "link_preview.shares": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}", - "lists.account.add": "Dodaj do listy", - "lists.account.remove": "Usunąć z listy", "lists.delete": "Usuń listę", "lists.edit": "Edytuj listę", - "lists.edit.submit": "Zmień tytuł", - "lists.exclusive": "Ukryj te posty w lokalnej osi czasu", - "lists.new.create": "Utwórz listę", - "lists.new.title_placeholder": "Wprowadź tytuł listy", "lists.replies_policy.followed": "Dowolny obserwowany użytkownik", "lists.replies_policy.list": "Członkowie listy", "lists.replies_policy.none": "Nikt", - "lists.replies_policy.title": "Pokazuj odpowiedzi dla:", - "lists.search": "Szukaj wśród osób które obserwujesz", - "lists.subheading": "Twoje listy", "load_pending": "{count, plural, one {# nowa pozycja} other {nowe pozycje}}", "loading_indicator.label": "Ładowanie…", "media_gallery.hide": "Ukryj", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index e2fbaff02b..8740cd13de 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -140,13 +140,16 @@ "column.blocks": "Usuários bloqueados", "column.bookmarks": "Salvos", "column.community": "Linha local", + "column.create_list": "Criar lista", "column.direct": "Menções privadas", "column.directory": "Explorar perfis", "column.domain_blocks": "Domínios bloqueados", + "column.edit_list": "Editar lista", "column.favourites": "Favoritos", "column.firehose": "Feeds ao vivo", "column.follow_requests": "Seguidores pendentes", "column.home": "Página inicial", + "column.list_members": "Gerenciar membros da lista", "column.lists": "Listas", "column.mutes": "Usuários silenciados", "column.notifications": "Notificações", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Nada aqui.", "empty_column.home": "Sua página inicial está vazia! Siga mais pessoas para começar: {suggestions}", "empty_column.list": "Nada aqui. Quando membros da lista tootarem, eles aparecerão aqui.", - "empty_column.lists": "Nada aqui. Quando você criar listas, elas aparecerão aqui.", "empty_column.mutes": "Nada aqui.", "empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui de acordo com suas configurações.", "empty_column.notifications": "Interaja com outros usuários para começar a conversar.", @@ -465,20 +467,32 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Mais de {name}", "link_preview.shares": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", - "lists.account.add": "Adicionar à lista", - "lists.account.remove": "Remover da lista", + "lists.add_member": "Adicionar", + "lists.add_to_list": "Adicionar à lista", + "lists.add_to_lists": "Adicionar {name} à lista", + "lists.create": "Criar", + "lists.create_a_list_to_organize": "Crie uma lista para organizar seu feed inicial", + "lists.create_list": "Criar lista", "lists.delete": "Excluir lista", + "lists.done": "Concluído", "lists.edit": "Editar lista", - "lists.edit.submit": "Renomear lista", - "lists.exclusive": "Ocultar estes posts da página inicial", - "lists.new.create": "Criar lista", - "lists.new.title_placeholder": "Nome da lista", + "lists.exclusive": "Ocultar membros no início", + "lists.exclusive_hint": "Se existe alguém nesta lista, oculte-os no seu feed inicial para evitar ver suas publicações duas vezes.", + "lists.find_users_to_add": "Encontrar usuários para adicionar", + "lists.list_members": "Membros da lista", + "lists.list_members_count": "{count, plural, one {# membro} other {# membros}}", + "lists.list_name": "Nome da lista", + "lists.new_list_name": "Nome novo da lista", + "lists.no_lists_yet": "Sem listas ainda.", + "lists.no_members_yet": "Nenhum membro ainda.", + "lists.no_results_found": "Nenhum resultado encontrado.", + "lists.remove_member": "Remover", "lists.replies_policy.followed": "Qualquer usuário seguido", "lists.replies_policy.list": "Membros da lista", "lists.replies_policy.none": "Ninguém", - "lists.replies_policy.title": "Mostrar respostas para:", - "lists.search": "Procurar entre as pessoas que segue", - "lists.subheading": "Suas listas", + "lists.save": "Salvar", + "lists.search_placeholder": "Buscar pessoas que você segue", + "lists.show_replies_to": "Incluir respostas de membros da lista para", "load_pending": "{count, plural, one {# novo item} other {# novos items}}", "loading_indicator.label": "Carregando…", "media_gallery.hide": "Ocultar", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index a06d259be2..6a6b5549ed 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -272,7 +272,6 @@ "empty_column.hashtag": "Não foram encontradas publicações com essa #etiqueta.", "empty_column.home": "A sua linha cronológica inicial está vazia! Siga mais pessoas para a preencher.", "empty_column.list": "Ainda não existem publicações nesta lista. Quando membros desta lista fizerem novas publicações, elas aparecerão aqui.", - "empty_column.lists": "Ainda não tem qualquer lista. Quando criar uma, ela irá aparecer aqui.", "empty_column.mutes": "Ainda não silenciaste qualquer utilizador.", "empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui conforme as suas configurações.", "empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.", @@ -440,20 +439,11 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Mais de {name}", "link_preview.shares": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", - "lists.account.add": "Adicionar à lista", - "lists.account.remove": "Remover da lista", "lists.delete": "Eliminar lista", "lists.edit": "Editar lista", - "lists.edit.submit": "Mudar o título", - "lists.exclusive": "Ocultar essas publicações da página inicial", - "lists.new.create": "Adicionar lista", - "lists.new.title_placeholder": "Título da nova lista", "lists.replies_policy.followed": "Qualquer utilizador seguido", "lists.replies_policy.list": "Membros da lista", "lists.replies_policy.none": "Ninguém", - "lists.replies_policy.title": "Mostrar respostas para:", - "lists.search": "Pesquisa entre as pessoas que segues", - "lists.subheading": "As tuas listas", "load_pending": "{count, plural, one {# novo item} other {# novos itens}}", "loading_indicator.label": "A carregar…", "media_gallery.hide": "Esconder", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 96f9eac2b3..f21ce027f4 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -213,7 +213,6 @@ "empty_column.hashtag": "Acest hashtag încă nu a fost folosit.", "empty_column.home": "Nu există nimic în cronologia ta! Abonează-te la mai multe persoane pentru a o umple. {suggestions}", "empty_column.list": "Momentan nu există nimic în această listă. Când membrii ei vor posta ceva nou, vor apărea aici.", - "empty_column.lists": "Momentan nu ai nicio listă. Când vei crea una, va apărea aici.", "empty_column.mutes": "Momentan nu ai ignorat niciun utilizator.", "empty_column.notifications": "Momentan nu ai nicio notificare. Când alte persoane vor interacționa cu tine, îl vei vedea aici.", "empty_column.public": "Nu există nimic aici! Postează ceva public, sau abonează-te manual la utilizatori din alte servere pentru a umple cronologia", @@ -338,19 +337,11 @@ "limited_account_hint.action": "Afișează profilul oricum", "limited_account_hint.title": "Acest profil a fost ascuns de moderatorii domeniului {domain}.", "link_preview.author": "De {name}", - "lists.account.add": "Adaugă în listă", - "lists.account.remove": "Elimină din listă", "lists.delete": "Șterge lista", "lists.edit": "Modifică lista", - "lists.edit.submit": "Schimbă titlul", - "lists.new.create": "Adaugă o listă", - "lists.new.title_placeholder": "Titlu pentru noua listă", "lists.replies_policy.followed": "Tuturor persoanelor la care te-ai abonat", "lists.replies_policy.list": "Membrilor din listă", "lists.replies_policy.none": "Nu afișa nimănui", - "lists.replies_policy.title": "Afișează răspunsurile:", - "lists.search": "Caută printre persoanele la care ești abonat", - "lists.subheading": "Listele tale", "load_pending": "{count, plural, one {# element nou} other {# elemente noi}}", "moved_to_account_banner.text": "Contul tău {disabledAccount} este în acest moment dezactivat deoarece te-ai mutat la {movedToAccount}.", "navigation_bar.about": "Despre", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index e336e39e01..90af458cdc 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -291,7 +291,6 @@ "empty_column.hashtag": "С этим хэштегом пока ещё ничего не постили.", "empty_column.home": "Ваша лента совсем пуста! Подписывайтесь на других, чтобы заполнить её.", "empty_column.list": "В этом списке пока ничего нет.", - "empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.", "empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.", "empty_column.notification_requests": "Здесь ничего нет! Когда вы получите новые уведомления, они здесь появятся согласно вашим настройкам.", "empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.", @@ -464,20 +463,11 @@ "link_preview.author": "Автор: {name}", "link_preview.more_from_author": "Больше от {name}", "link_preview.shares": "{count, plural, one {{counter} пост} other {{counter} посты}}", - "lists.account.add": "Добавить в список", - "lists.account.remove": "Убрать из списка", "lists.delete": "Удалить список", "lists.edit": "Изменить список", - "lists.edit.submit": "Изменить название", - "lists.exclusive": "Скрыть эти сообщения из дома", - "lists.new.create": "Создать список", - "lists.new.title_placeholder": "Название для нового списка", "lists.replies_policy.followed": "Любой подписанный пользователь", "lists.replies_policy.list": "Пользователи в списке", "lists.replies_policy.none": "Никого", - "lists.replies_policy.title": "Показать ответы только:", - "lists.search": "Искать среди подписок", - "lists.subheading": "Ваши списки", "load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}", "loading_indicator.label": "Загрузка…", "media_gallery.hide": "Скрыть", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 2d48f688d5..a12bb6bde7 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -194,7 +194,6 @@ "empty_column.hashtag": "नाऽस्मिन् प्रचलितवस्तुचिह्ने किमपि ।", "empty_column.home": "गृहसमयतालिका रिक्ताऽस्ति । गम्यतां {public} वाऽन्वेषणैः प्रारभ्यतां मेलनं क्रियताञ्च ।", "empty_column.list": "न किमपि वर्तते सूच्यामस्याम् । यदा सूच्याः सदस्या नवपत्राणि प्रकटीकुर्वन्ति तदाऽत्राऽऽयान्ति ।", - "empty_column.lists": "तव पार्श्वे न कापि सूचिर्वर्तते। यदैकां सृजसि तदा अत्र दृश्यते।", "empty_column.mutes": "त्वया अद्यापि नैकोऽप्युपभोक्ता मूकीकृतो वर्तते।", "empty_column.notifications": "तव पार्श्वे न अधुना पर्यन्तं किमपि विज्ञापनं वर्तते। यदा अन्या जना त्वया संयोजयन्ति तदा इह पश्यसि।", "empty_column.public": "न इह किमपि वर्तते! किञ्चिल्लिख सार्वजनिकरूपेण, उत स्वयमन्यसर्वर्तः उपभोक्तॄननुसर एतत्पूरयितुम्", @@ -303,19 +302,11 @@ "lightbox.previous": "पूर्वः", "limited_account_hint.action": "प्रोफैलं दर्शय कथञ्चित्", "limited_account_hint.title": "{domain} इत्यस्य प्रशासकैरयं प्रोफैल्प्रच्छन्नः।", - "lists.account.add": "सूचेर्मध्ये योजय", - "lists.account.remove": "सूचेर्मार्जय", "lists.delete": "सूचिं मार्जय", "lists.edit": "सूचिं सम्पादय", - "lists.edit.submit": "उपाधिं परिवर्तय", - "lists.new.create": "सूचिं योजय", - "lists.new.title_placeholder": "नूतनसूच्युपाधिः", "lists.replies_policy.followed": "कोऽप्यनुसारितोपभोक्ता", "lists.replies_policy.list": "सूचेस्सदस्याः", "lists.replies_policy.none": "न कोऽपि", - "lists.replies_policy.title": "एतमुत्तराणि दर्शय :", - "lists.search": "त्वया अनुसारितजनेषु अन्विष्य", - "lists.subheading": "तव सूचयः", "load_pending": "{count, plural, one {# नूतनवस्तु} other {# नूतनवस्तूनि}}", "moved_to_account_banner.text": "तव एकौण्ट् {disabledAccount} अधुना निष्कृतो यतोहि {movedToAccount} अस्मिन्त्वमसार्षीः।", "navigation_bar.about": "विषये", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 71bcaef7ab..19bdba818c 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -257,7 +257,6 @@ "empty_column.hashtag": "Ancora nudda in custa eticheta.", "empty_column.home": "Sa lìnia de tempus printzipale tua est bòida. Visita {public} o imprea sa chirca pro cumintzare e agatare àteras persones.", "empty_column.list": "Nudda ancora in custa lista. Cando is persones de custa lista ant a publicare, is publicatziones ant a aparèssere inoghe.", - "empty_column.lists": "Non tenes ancora peruna lista. Cando nd'as a creare una, at a èssere ammustrada inoghe.", "empty_column.mutes": "No as postu ancora nemos a sa muda.", "empty_column.notifications": "Non tenes ancora peruna notìfica. Chistiona cun una persone pro cumintzare un'arresonada.", "empty_column.public": "Nudda inoghe. Iscrie calicuna cosa pùblica, o sighi àteras persones de àteros serbidores pro prenare custu ispàtziu", @@ -392,20 +391,11 @@ "lightbox.previous": "Pretzedente", "limited_account_hint.title": "Custu profilu est istadu cuadu dae sa moderatzione de {domain}.", "link_preview.shares": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}", - "lists.account.add": "Agiunghe a sa lista", - "lists.account.remove": "Boga dae sa lista", "lists.delete": "Cantzella sa lista", "lists.edit": "Modìfica sa lista", - "lists.edit.submit": "Muda su tìtulu", - "lists.exclusive": "Cua custas publicatziones dae sa pàgina printzipale", - "lists.new.create": "Agiunghe lista", - "lists.new.title_placeholder": "Tìtulu de sa lista noa", "lists.replies_policy.followed": "Cale si siat persone chi sighis", "lists.replies_policy.list": "Persones de sa lista", "lists.replies_policy.none": "Nemos", - "lists.replies_policy.title": "Ammustra is rispostas a:", - "lists.search": "Chirca intre sa gente chi ses sighende", - "lists.subheading": "Is listas tuas", "load_pending": "{count, plural, one {# elementu nou} other {# elementos noos}}", "loading_indicator.label": "Carrighende…", "media_gallery.hide": "Cua", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index c14f1cc51a..196b4cdb08 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -185,7 +185,6 @@ "empty_column.hashtag": "There naethin in this hashtag yit.", "empty_column.home": "Yer hame timeline is toum! Follae mair fowk fir tae full it up. {suggestions}", "empty_column.list": "There naethin in this list yit. Whan memmers o this list publish new posts, ye'll see them here.", - "empty_column.lists": "Ye dinnae hae onie lists yit. Ance ye mak ane, it'll shaw up here.", "empty_column.mutes": "Ye'v no wheesht onie uisers yit.", "empty_column.notifications": "Ye dinnae hae onie notes yit. Whan ither fowk interacks wi ye, ye'll see it here.", "empty_column.public": "There naethin here! Scrieve socht public, or follae uisers fae ither servers fir tae full it up", @@ -288,19 +287,11 @@ "lightbox.previous": "Last ane", "limited_account_hint.action": "Shaw profile onieweys", "limited_account_hint.title": "This profile haes been planked bi the moderators o {domain}.", - "lists.account.add": "Add tae list", - "lists.account.remove": "Tak aff o the list", "lists.delete": "Delete list", "lists.edit": "Edit list", - "lists.edit.submit": "Chynge title", - "lists.new.create": "Add list", - "lists.new.title_placeholder": "New list title", "lists.replies_policy.followed": "Onie follaed uiser", "lists.replies_policy.list": "Memmers o the list", "lists.replies_policy.none": "Naebody", - "lists.replies_policy.title": "Shaw replies tae:", - "lists.search": "Seirch amang the fowk ye ken", - "lists.subheading": "Yer lists", "load_pending": "{count, plural, one {# new item} other {# new items}}", "moved_to_account_banner.text": "Yer accoont {disabledAccount} is disabilt the noo acause ye flittit tae {movedToAccount}.", "navigation_bar.about": "Aboot", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 93ce9dd7e2..dbf6a41f6f 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -166,7 +166,6 @@ "empty_column.favourited_statuses": "ඔබ සතුව ප්‍රියතම ලිපි කිසිවක් නැත. ඔබ යමකට ප්‍රිය කළ විට එය මෙහි පෙන්වනු ඇත.", "empty_column.follow_requests": "ඔබට තවමත් අනුගමන ඉල්ලීම් ලැබී නැත. ඉල්ලීමක් ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.", "empty_column.home": "මුල් පිටුව හිස් ය! මෙය පිරවීමට බොහෝ පුද්ගලයින් අනුගමනය කරන්න.", - "empty_column.lists": "ඔබට තවමත් ලැයිස්තු කිසිවක් නැත. ඔබ එකක් සාදන විට, එය මෙහි පෙන්වනු ඇත.", "empty_column.mutes": "ඔබ තවමත් කිසිදු පරිශීලකයෙකු නිහඬ කර නැත.", "empty_column.notifications": "ඔබට දැනුම්දීම් ලැබී නැත. අන් අය සහ ඔබ අතර අන්‍යෝන්‍ය බලපවත්වන දෑ මෙහි දිස්වනු ඇත.", "error.unexpected_crash.explanation": "අපගේ කේතයේ දෝෂයක් හෝ බ්‍රවුසර ගැළපුම් ගැටලුවක් හේතුවෙන්, මෙම පිටුව නිවැරදිව ප්‍රදර්ශනය කළ නොහැක.", @@ -250,17 +249,10 @@ "lightbox.next": "ඊළඟ", "lightbox.previous": "පෙර", "limited_account_hint.action": "කෙසේ හෝ පැතිකඩ පෙන්වන්න", - "lists.account.add": "ලැයිස්තුවට දමන්න", - "lists.account.remove": "ලැයිස්තුවෙන් ඉවතලන්න", "lists.delete": "ලැයිස්තුව මකන්න", "lists.edit": "ලැයිස්තුව සංස්කරණය", - "lists.edit.submit": "සිරැසිය සංශෝධනය", - "lists.new.create": "එකතු", - "lists.new.title_placeholder": "නව ලැයිස්තුවේ සිරැසිය", "lists.replies_policy.list": "ලැයිස්තුවේ සාමාජිකයින්", "lists.replies_policy.none": "කිසිවෙක් නැත", - "lists.replies_policy.title": "පිළිතුරු පෙන්වන්න:", - "lists.subheading": "ඔබගේ ලැයිස්තු", "navigation_bar.about": "පිළිබඳව", "navigation_bar.blocks": "අවහිර කළ අය", "navigation_bar.bookmarks": "පොත්යොමු", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 1ecbaaffdd..d7e396c69b 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -269,7 +269,6 @@ "empty_column.hashtag": "Pod týmto hashtagom sa ešte nič nenachádza.", "empty_column.home": "Vaša domáca časová os je zatiaľ prázdna. Začnite sledovať ostatných a naplňte si ju.", "empty_column.list": "Tento zoznam je zatiaľ prázdny. Keď ale členovia tohoto zoznamu uverejnia nové príspevky, objavia sa tu.", - "empty_column.lists": "Zatiaľ nemáte žiadne zoznamy. Keď nejaký vytvoríte, zobrazí sa tu.", "empty_column.mutes": "Zatiaľ ste si nikoho nestíšili.", "empty_column.notification_requests": "Všetko čisté! Nič tu nieje. Keď dostaneš nové oboznámenia, zobrazia sa tu podľa tvojich nastavení.", "empty_column.notifications": "Zatiaľ nemáte žiadne upozornenia. Začnú vám pribúdať, keď s vami začnú interagovať ostatní.", @@ -428,20 +427,11 @@ "link_preview.author": "Autor: {name}", "link_preview.more_from_author": "Viac od {name}", "link_preview.shares": "{count, plural, one {{counter} príspevok} other {{counter} príspevkov}}", - "lists.account.add": "Pridať do zoznamu", - "lists.account.remove": "Odstrániť zo zoznamu", "lists.delete": "Vymazať zoznam", "lists.edit": "Upraviť zoznam", - "lists.edit.submit": "Zmeniť názov", - "lists.exclusive": "Skryť tieto príspevky z domovskej stránky", - "lists.new.create": "Pridať zoznam", - "lists.new.title_placeholder": "Názov nového zoznamu", "lists.replies_policy.followed": "Akémukoľvek sledovanému účtu", "lists.replies_policy.list": "Členom zoznamu", "lists.replies_policy.none": "Nikomu", - "lists.replies_policy.title": "Zobraziť odpovede:", - "lists.search": "Vyhľadávať medzi účtami, ktoré sledujete", - "lists.subheading": "Vaše zoznamy", "load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položiek} other {# nových položiek}}", "loading_indicator.label": "Načítavanie…", "media_gallery.hide": "Skryť", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 3690c612b7..84141a779d 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -85,9 +85,14 @@ "alert.rate_limited.title": "Hitrost omejena", "alert.unexpected.message": "Zgodila se je nepričakovana napaka.", "alert.unexpected.title": "Ojoj!", + "alt_text_badge.title": "Nadomestno besedilo", "announcement.announcement": "Obvestilo", + "annual_report.summary.followers.followers": "sledilcev", + "annual_report.summary.followers.total": "", + "annual_report.summary.highlighted_post.by_favourites": "- najpriljubljenejša objava", "annual_report.summary.most_used_hashtag.none": "Brez", "annual_report.summary.new_posts.new_posts": "nove objave", + "annual_report.summary.thanks": "Hvala, ker ste del Mastodona!", "attachments_list.unprocessed": "(neobdelano)", "audio.hide": "Skrij zvok", "block_modal.remote_users_caveat": "Od strežnika {domain} bomo zahtevali, da spoštuje vašo odločitev. Izpolnjevanje zahteve ni zagotovljeno, ker nekateri strežniki blokiranja obravnavajo drugače. Javne objave bodo morda še vedno vidne neprijavljenim uporabnikom.", @@ -99,6 +104,8 @@ "block_modal.title": "Blokiraj uporabnika?", "block_modal.you_wont_see_mentions": "Objav, ki jih omenjajo, ne boste videli.", "boost_modal.combo": "Če želite preskočiti to, lahko pritisnete {combo}", + "boost_modal.reblog": "Izpostavi objavo?", + "boost_modal.undo_reblog": "Ali želite preklicati izpostavitev objave?", "bundle_column_error.copy_stacktrace": "Kopiraj poročilo o napaki", "bundle_column_error.error.body": "Zahtevane strani ni mogoče upodobiti. Vzrok težave je morda hrošč v naši kodi ali pa nezdružljivost z brskalnikom.", "bundle_column_error.error.title": "Oh, ne!", @@ -120,13 +127,16 @@ "column.blocks": "Blokirani uporabniki", "column.bookmarks": "Zaznamki", "column.community": "Krajevna časovnica", + "column.create_list": "Ustvari seznam", "column.direct": "Zasebne omembe", "column.directory": "Prebrskaj profile", "column.domain_blocks": "Blokirane domene", + "column.edit_list": "Uredi seznam", "column.favourites": "Priljubljeni", "column.firehose": "Viri v živo", "column.follow_requests": "Sledi prošnjam", "column.home": "Domov", + "column.list_members": "Upravljaj člane seznama", "column.lists": "Seznami", "column.mutes": "Utišani uporabniki", "column.notifications": "Obvestila", @@ -157,6 +167,7 @@ "compose_form.poll.duration": "Trajanje ankete", "compose_form.poll.multiple": "Več možnosti", "compose_form.poll.option_placeholder": "Možnost {number}", + "compose_form.poll.single": "Ena izbira", "compose_form.poll.switch_to_multiple": "Spremenite anketo, da omogočite več izbir", "compose_form.poll.switch_to_single": "Spremenite anketo, da omogočite eno izbiro", "compose_form.poll.type": "Slog", @@ -193,6 +204,9 @@ "confirmations.unfollow.confirm": "Ne sledi več", "confirmations.unfollow.message": "Ali ste prepričani, da ne želite več slediti {name}?", "confirmations.unfollow.title": "Želite nehati spremljati uporabnika?", + "content_warning.hide": "Skrij objavo", + "content_warning.show": "Vseeno pokaži", + "content_warning.show_more": "Pokaži več", "conversation.delete": "Izbriši pogovor", "conversation.mark_as_read": "Označi kot prebrano", "conversation.open": "Pokaži pogovor", @@ -266,7 +280,6 @@ "empty_column.hashtag": "V tem ključniku še ni nič.", "empty_column.home": "Vaša domača časovnica je prazna! Sledite več osebam, da jo zapolnite. {suggestions}", "empty_column.list": "Na tem seznamu ni ničesar. Ko bodo člani tega seznama objavili nove statuse, se bodo pojavili tukaj.", - "empty_column.lists": "Nimate seznamov. Ko ga boste ustvarili, se bo prikazal tukaj.", "empty_column.mutes": "Niste utišali še nobenega uporabnika.", "empty_column.notification_requests": "Vse prebrano! Tu ni ničesar več. Ko prejmete nova obvestila, se bodo pojavila tu glede na vaše nastavitve.", "empty_column.notifications": "Nimate še nobenih obvestil. Povežite se z drugimi, da začnete pogovor.", @@ -348,7 +361,10 @@ "hashtag.unfollow": "Nehaj slediti ključniku", "hashtags.and_other": "…in še {count, plural, other {#}}", "hints.profiles.posts_may_be_missing": "Nekatere objave s tega profila morda manjkajo.", + "hints.profiles.see_more_followers": "Pokaži več sledilcev na {domain}", + "hints.profiles.see_more_posts": "Pokaži več objav na {domain}", "hints.threads.replies_may_be_missing": "Odgovori z drugih strežnikov morda manjkajo.", + "hints.threads.see_more": "Pokaži več odgovorov na {domain}", "home.column_settings.show_reblogs": "Pokaži izpostavitve", "home.column_settings.show_replies": "Pokaži odgovore", "home.hide_announcements": "Skrij obvestila", @@ -419,20 +435,25 @@ "link_preview.author": "Avtor_ica {name}", "link_preview.more_from_author": "Več od {name}", "link_preview.shares": "{count, plural, one {{counter} objava} two {{counter} objavi} few {{counter} objave} other {{counter} objav}}", - "lists.account.add": "Dodaj na seznam", - "lists.account.remove": "Odstrani s seznama", + "lists.add_member": "Dodaj", + "lists.add_to_list": "Dodaj na seznam", + "lists.create": "Ustvari", + "lists.create_list": "Ustvari seznam", "lists.delete": "Izbriši seznam", + "lists.done": "Opravljeno", "lists.edit": "Uredi seznam", - "lists.edit.submit": "Spremeni naslov", - "lists.exclusive": "Skrij te objave od doma", - "lists.new.create": "Dodaj seznam", - "lists.new.title_placeholder": "Nov naslov seznama", + "lists.find_users_to_add": "Poišči člane za dodajanje", + "lists.list_name": "Ime seznama", + "lists.new_list_name": "Novo ime seznama", + "lists.no_lists_yet": "Ni seznamov.", + "lists.no_members_yet": "Ni še nobenega člana.", + "lists.no_results_found": "Ni rezultatov.", + "lists.remove_member": "Odstrani", "lists.replies_policy.followed": "Vsem sledenim uporabnikom", "lists.replies_policy.list": "Članom seznama", "lists.replies_policy.none": "Nikomur", - "lists.replies_policy.title": "Pokaži odgovore:", - "lists.search": "Iščite med ljudmi, katerim sledite", - "lists.subheading": "Vaši seznami", + "lists.save": "Shrani", + "lists.search_placeholder": "Iščite ljudi, katerim sledite", "load_pending": "{count, plural, one {# nov element} two {# nova elementa} few {# novi elementi} other {# novih elementov}}", "loading_indicator.label": "Nalaganje …", "media_gallery.hide": "Skrij", @@ -464,6 +485,7 @@ "navigation_bar.follows_and_followers": "Sledenja in sledilci", "navigation_bar.lists": "Seznami", "navigation_bar.logout": "Odjava", + "navigation_bar.moderation": "Moderiranje", "navigation_bar.mutes": "Utišani uporabniki", "navigation_bar.opened_in_classic_interface": "Objave, računi in druge specifične strani se privzeto odprejo v klasičnem spletnem vmesniku.", "navigation_bar.personal": "Osebno", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index d1d92c69f6..c2781a2b6a 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -135,13 +135,16 @@ "column.blocks": "Përdorues të bllokuar", "column.bookmarks": "Faqerojtës", "column.community": "Rrjedhë kohore vendore", + "column.create_list": "Krijo listë", "column.direct": "Përmendje private", "column.directory": "Shfletoni profile", "column.domain_blocks": "Përkatësi të bllokuara", + "column.edit_list": "Përpunoni listën", "column.favourites": "Të parapëlqyer", "column.firehose": "Prurje “live”", "column.follow_requests": "Kërkesa për ndjekje", "column.home": "Kreu", + "column.list_members": "Administroni anëtarë liste", "column.lists": "Lista", "column.mutes": "Përdorues të heshtuar", "column.notifications": "Njoftime", @@ -287,7 +290,6 @@ "empty_column.hashtag": "Ende s’ka gjë nën këtë hashtag.", "empty_column.home": "Rrjedha juaj kohore është e zbrazët! Vizitoni {public} ose përdorni kërkimin që t’ia filloni dhe të takoni përdorues të tjerë.", "empty_column.list": "Në këtë listë ende s’ka gjë. Kur anëtarë të kësaj liste postojnë gjendje të reja, ato do të shfaqen këtu.", - "empty_column.lists": "Ende s’keni ndonjë listë. Kur të krijoni një të tillë, do të duket këtu.", "empty_column.mutes": "S’keni heshtuar ende ndonjë përdorues.", "empty_column.notification_requests": "Gjithçka si duhet! S’ka ç’bëhet këtu. Kur merrni njoftime të reja, do të shfaqen këtu, në përputhje me rregullimet tuaja.", "empty_column.notifications": "Ende s’keni ndonjë njoftim. Ndërveproni me të tjerët që të nisë biseda.", @@ -460,20 +462,32 @@ "link_preview.author": "Nga {name}", "link_preview.more_from_author": "Më tepër nga {name}", "link_preview.shares": "{count, plural, one {{counter} post} other {{counter} postime}}", - "lists.account.add": "Shto në listë", - "lists.account.remove": "Hiqe nga lista", + "lists.add_member": "Shtoje", + "lists.add_to_list": "Shto në listë", + "lists.add_to_lists": "Shtoje {name} në lista", + "lists.create": "Krijoje", + "lists.create_a_list_to_organize": "Krijoni një listë të re të sistemoni prurjen tuaj Kreu", + "lists.create_list": "Krijo listë", "lists.delete": "Fshije listën", + "lists.done": "U bë", "lists.edit": "Përpunoni listën", - "lists.edit.submit": "Ndryshoni titullin", - "lists.exclusive": "Fshihi këto postime prej kreut", - "lists.new.create": "Shtoni listë", - "lists.new.title_placeholder": "Titull liste të re", + "lists.exclusive": "Fshihni anëtarët në Krye", + "lists.exclusive_hint": "Nëse dikush gjendje në këtë listë, fshihini ata te prurja juaj e Kreut, që të shmangni parjen dy herë të postimeve të tyre.", + "lists.find_users_to_add": "Gjeni përdorues për t’i shtuar", + "lists.list_members": "Shfaq anëtarë", + "lists.list_members_count": "{count, plural, one {# anëtar} other {# anëtarë}}", + "lists.list_name": "Emër liste", + "lists.new_list_name": "Emër liste të re", + "lists.no_lists_yet": "Ende pa lista.", + "lists.no_members_yet": "Ende pa anëtarë.", + "lists.no_results_found": "S’u gjetën përfundime.", + "lists.remove_member": "Hiqe", "lists.replies_policy.followed": "Cilido përdorues i ndjekur", "lists.replies_policy.list": "Anëtarë të listës", "lists.replies_policy.none": "Askush", - "lists.replies_policy.title": "Shfaq përgjigje për:", - "lists.search": "Kërkoni mes personash që ndiqni", - "lists.subheading": "Listat tuaja", + "lists.save": "Ruaje", + "lists.search_placeholder": "Kërkoni persona që ndiqni", + "lists.show_replies_to": "Përfshi përgjigje nga anëtarë liste te", "load_pending": "{count, plural,one {# objekt i ri }other {# objekte të rinj }}", "loading_indicator.label": "Po ngarkohet…", "media_gallery.hide": "Fshihe", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 4a33c2f5ca..5a587f2666 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -256,7 +256,6 @@ "empty_column.hashtag": "Još uvek nema ničega u ovoj heš oznaci.", "empty_column.home": "Vaša početna vremenska linija je prazna! Pratite više ljudi da biste je popunili.", "empty_column.list": "U ovoj listi još nema ničega. Kada članovi ove liste objave nešto novo, pojaviće se ovde.", - "empty_column.lists": "Još uvek nemate nijednu listu. Kada napravite jednu, ona će se pojaviti ovde.", "empty_column.mutes": "Još uvek ne ignorišete nijednog korisnika.", "empty_column.notification_requests": "Sve je čisto! Ovde nema ničega. Kada dobijete nova obaveštenja, ona će se pojaviti ovde u skladu sa vašim podešavanjima.", "empty_column.notifications": "Još uvek nemate nikakva obaveštenja. Kada drugi ljudi budu u interakciji sa vama, videćete to ovde.", @@ -404,20 +403,11 @@ "link_preview.author": "Po {name}", "link_preview.more_from_author": "Više od {name}", "link_preview.shares": "{count, plural, one {{counter} objava} few {{counter} objave} other {{counter} objava}}", - "lists.account.add": "Dodaj na listu", - "lists.account.remove": "Ukloni sa liste", "lists.delete": "Izbriši listu", "lists.edit": "Uredi listu", - "lists.edit.submit": "Promeni naslov", - "lists.exclusive": "Sakrijte ove objave sa početne stranice", - "lists.new.create": "Dodaj listu", - "lists.new.title_placeholder": "Naslov nove liste", "lists.replies_policy.followed": "Svakom praćenom korisniku", "lists.replies_policy.list": "Članovima liste", "lists.replies_policy.none": "Nikome", - "lists.replies_policy.title": "Prikaži odgovore:", - "lists.search": "Pretraži među ljudima koje pratite", - "lists.subheading": "Vaše liste", "load_pending": "{count, plural, one {# nova stavka} few {# nove stavke} other {# novih stavki}}", "loading_indicator.label": "Učitavanje…", "moved_to_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen jer ste prešli na {movedToAccount}.", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index d80411859e..ea92a3bf10 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -256,7 +256,6 @@ "empty_column.hashtag": "Још увек нема ничега у овој хеш ознаци.", "empty_column.home": "Ваша почетна временска линија је празна! Пратите више људи да бисте је попунили.", "empty_column.list": "У овој листи још нема ничега. Када чланови ове листе објаве нешто ново, појавиће се овде.", - "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, она ће се појавити овде.", "empty_column.mutes": "Још увек не игноришете ниједног корисника.", "empty_column.notification_requests": "Све је чисто! Овде нема ничега. Када добијете нова обавештења, она ће се појавити овде у складу са вашим подешавањима.", "empty_column.notifications": "Још увек немате никаква обавештења. Када други људи буду у интеракцији са вама, видећете то овде.", @@ -404,20 +403,11 @@ "link_preview.author": "По {name}", "link_preview.more_from_author": "Више од {name}", "link_preview.shares": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}}", - "lists.account.add": "Додај на листу", - "lists.account.remove": "Уклони са листе", "lists.delete": "Избриши листу", "lists.edit": "Уреди листу", - "lists.edit.submit": "Промени наслов", - "lists.exclusive": "Сакријте ове објаве са почетне странице", - "lists.new.create": "Додај листу", - "lists.new.title_placeholder": "Наслов нове листе", "lists.replies_policy.followed": "Сваком праћеном кориснику", "lists.replies_policy.list": "Члановима листе", "lists.replies_policy.none": "Никоме", - "lists.replies_policy.title": "Прикажи одговоре:", - "lists.search": "Претражи међу људима које пратите", - "lists.subheading": "Ваше листе", "load_pending": "{count, plural, one {# нова ставка} few {# нове ставке} other {# нових ставки}}", "loading_indicator.label": "Учитавање…", "moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index df24db9634..0fb714d9a7 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -292,7 +292,6 @@ "empty_column.hashtag": "Det finns inget i denna hashtag ännu.", "empty_column.home": "Din hemma-tidslinje är tom! Följ fler användare för att fylla den.", "empty_column.list": "Det finns inget i denna lista än. När listmedlemmar publicerar nya inlägg kommer de synas här.", - "empty_column.lists": "Du har inga listor än. När skapar en kommer den dyka upp här.", "empty_column.mutes": "Du har ännu inte tystat några användare.", "empty_column.notification_requests": "Allt klart! Det finns inget mer här. När du får nya meddelanden visas de här enligt dina inställningar.", "empty_column.notifications": "Du har inga meddelanden än. Interagera med andra för att starta konversationen.", @@ -465,20 +464,11 @@ "link_preview.author": "Av {name}", "link_preview.more_from_author": "Mer från {name}", "link_preview.shares": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}}", - "lists.account.add": "Lägg till i lista", - "lists.account.remove": "Ta bort från lista", "lists.delete": "Radera lista", "lists.edit": "Redigera lista", - "lists.edit.submit": "Ändra titel", - "lists.exclusive": "Dölj dessa inlägg från hemflödet", - "lists.new.create": "Lägg till lista", - "lists.new.title_placeholder": "Ny listrubrik", "lists.replies_policy.followed": "Alla användare som följs", "lists.replies_policy.list": "Medlemmar i listan", "lists.replies_policy.none": "Ingen", - "lists.replies_policy.title": "Visa svar till:", - "lists.search": "Sök bland personer du följer", - "lists.subheading": "Dina listor", "load_pending": "{count, plural, one {# nytt objekt} other {# nya objekt}}", "loading_indicator.label": "Laddar…", "media_gallery.hide": "Dölj", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 87d6660f05..1465fcb51f 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -174,7 +174,6 @@ "empty_column.hashtag": "இந்த சிட்டையில் இதுவரை ஏதும் இல்லை.", "empty_column.home": "உங்கள் மாஸ்டடான் வீட்டில் யாரும் இல்லை. {public} -இல் சென்று பார்க்கவும், அல்லது தேடல் கருவியைப் பயன்படுத்திப் பிற பயனர்களைக் கண்டடையவும்.", "empty_column.list": "இந்தப் பட்டியலில் இதுவரை ஏதும் இல்லை. இப்பட்டியலின் உறுப்பினர்கள் புதிய டூட்டுகளை இட்டால். அவை இங்கே காண்பிக்கப்படும்.", - "empty_column.lists": "இதுவரை நீங்கள் எந்தப் பட்டியலையும் உருவாக்கவில்லை. உருவாக்கினால், அது இங்கே காண்பிக்கப்படும்.", "empty_column.mutes": "நீங்கள் இதுவரை எந்தப் பயனர்களையும் முடக்கியிருக்கவில்லை.", "empty_column.notifications": "உங்களுக்காக எந்த அறிவிப்புகளும் இல்லை. உரையாடலைத் துவங்க பிறரைத் தொடர்புகொள்ளவும்.", "empty_column.public": "இங்கு எதுவும் இல்லை! இவ்விடத்தை நிரப்ப எதையேனும் எழுதவும், அல்லது வேறு சர்வர்களில் உள்ள பயனர்களைப் பின்தொடரவும்", @@ -242,15 +241,8 @@ "lightbox.close": "நெருக்கமாக", "lightbox.next": "அடுத்த", "lightbox.previous": "சென்ற", - "lists.account.add": "பட்டியலில் சேர்", - "lists.account.remove": "பட்டியலில் இருந்து அகற்று", "lists.delete": "பட்டியலை நீக்கு", "lists.edit": "பட்டியலை திருத்து", - "lists.edit.submit": "தலைப்பு மாற்றவும்", - "lists.new.create": "பட்டியலில் சேர்", - "lists.new.title_placeholder": "புதிய பட்டியல் தலைப்பு", - "lists.search": "நீங்கள் பின்தொடரும் நபர்கள் மத்தியில் தேடுதல்", - "lists.subheading": "உங்கள் பட்டியல்கள்", "load_pending": "{count, plural,one {# புதியது}other {# புதியவை}}", "navigation_bar.blocks": "தடுக்கப்பட்ட பயனர்கள்", "navigation_bar.bookmarks": "அடையாளக்குறிகள்", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 40fbd7f7bd..d58a691635 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -106,7 +106,6 @@ "empty_column.hashtag": "ఇంకా హాష్ ట్యాగ్లో ఏమీ లేదు.", "empty_column.home": "మీ హోమ్ కాలక్రమం ఖాళీగా ఉంది! {Public} ను సందర్శించండి లేదా ఇతర వినియోగదారులను కలుసుకోవడానికి మరియు అన్వేషణ కోసం శోధనను ఉపయోగించండి.", "empty_column.list": "ఇంకా ఈ జాబితాలో ఏదీ లేదు. ఈ జాబితాలోని సభ్యులు కొత్త స్టేటస్ లను పోస్ట్ చేసినప్పుడు, అవి ఇక్కడ కనిపిస్తాయి.", - "empty_column.lists": "మీకు ఇంకా జాబితాలు ఏమీ లేవు. మీరు ఒకటి సృష్టించగానే, అది ఇక్కడ కనబడుతుంది.", "empty_column.mutes": "మీరు ఇంకా ఏ వినియోగదారులనూ మ్యూట్ చేయలేదు.", "empty_column.notifications": "మీకు ఇంకా ఏ నోటిఫికేషన్లు లేవు. సంభాషణను ప్రారంభించడానికి ఇతరులతో ప్రతిస్పందించండి.", "empty_column.public": "ఇక్కడ ఏమీ లేదు! దీన్ని నింపడానికి బహిరంగంగా ఏదైనా వ్రాయండి, లేదా ఇతర సేవికల నుండి వినియోగదారులను అనుసరించండి", @@ -158,15 +157,8 @@ "lightbox.close": "మూసివేయు", "lightbox.next": "తరువాత", "lightbox.previous": "మునుపటి", - "lists.account.add": "జాబితాకు జోడించు", - "lists.account.remove": "జాబితా నుండి తొలగించు", "lists.delete": "జాబితాను తొలగించు", "lists.edit": "జాబితాను సవరించు", - "lists.edit.submit": "శీర్షిక మార్చు", - "lists.new.create": "జాబితాను జోడించు", - "lists.new.title_placeholder": "కొత్త జాబితా శీర్షిక", - "lists.search": "మీరు అనుసరించే వ్యక్తులలో శోధించండి", - "lists.subheading": "మీ జాబితాలు", "navigation_bar.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "navigation_bar.community_timeline": "స్థానిక కాలక్రమం", "navigation_bar.compose": "కొత్త టూట్ను రాయండి", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 95e3e1e52b..b9fe9cf33b 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -280,7 +280,6 @@ "empty_column.hashtag": "ยังไม่มีสิ่งใดในแฮชแท็กนี้", "empty_column.home": "เส้นเวลาหน้าแรกของคุณว่างเปล่า! ติดตามผู้คนเพิ่มเติมเพื่อเติมเส้นเวลาให้เต็ม", "empty_column.list": "ยังไม่มีสิ่งใดในรายการนี้ เมื่อสมาชิกของรายการนี้โพสต์โพสต์ใหม่ โพสต์จะปรากฏที่นี่", - "empty_column.lists": "คุณยังไม่มีรายการใด ๆ เมื่อคุณสร้างรายการ รายการจะปรากฏที่นี่", "empty_column.mutes": "คุณยังไม่ได้ซ่อนผู้ใช้ใด ๆ", "empty_column.notification_requests": "โล่งทั้งหมด! ไม่มีสิ่งใดที่นี่ เมื่อคุณได้รับการแจ้งเตือนใหม่ การแจ้งเตือนจะปรากฏที่นี่ตามการตั้งค่าของคุณ", "empty_column.notifications": "คุณยังไม่มีการแจ้งเตือนใด ๆ เมื่อผู้คนอื่น ๆ โต้ตอบกับคุณ คุณจะเห็นการแจ้งเตือนที่นี่", @@ -453,20 +452,11 @@ "link_preview.author": "โดย {name}", "link_preview.more_from_author": "เพิ่มเติมจาก {name}", "link_preview.shares": "{count, plural, other {{counter} โพสต์}}", - "lists.account.add": "เพิ่มไปยังรายการ", - "lists.account.remove": "เอาออกจากรายการ", "lists.delete": "ลบรายการ", "lists.edit": "แก้ไขรายการ", - "lists.edit.submit": "เปลี่ยนชื่อเรื่อง", - "lists.exclusive": "ซ่อนโพสต์เหล่านี้จากหน้าแรก", - "lists.new.create": "เพิ่มรายการ", - "lists.new.title_placeholder": "ชื่อเรื่องรายการใหม่", "lists.replies_policy.followed": "ผู้ใช้ใด ๆ ที่ติดตาม", "lists.replies_policy.list": "สมาชิกของรายการ", "lists.replies_policy.none": "ไม่มีใคร", - "lists.replies_policy.title": "แสดงการตอบกลับแก่:", - "lists.search": "ค้นหาในหมู่ผู้คนที่คุณติดตาม", - "lists.subheading": "รายการของคุณ", "load_pending": "{count, plural, other {# รายการใหม่}}", "loading_indicator.label": "กำลังโหลด…", "media_gallery.hide": "ซ่อน", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index 2cf7f1929a..d526c271c6 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -191,7 +191,6 @@ "empty_column.hashtag": "ala li lon toki ni", "empty_column.home": "ala a li lon lipu open sina! sina wile lon e ijo lon ni la o kute e jan pi toki suli.", "empty_column.list": "ala li lon kulupu lipu ni. jan pi kulupu lipu ni li toki sin la toki ni li lon ni.", - "empty_column.lists": "sina jo ala e kulupu lipu. sina pali sin e kulupu lipu la ona li lon ni.", "empty_column.mutes": "jan ala li len tawa sina.", "error.unexpected_crash.explanation": "ilo li ken ala pana e lipu ni. ni li ken tan pakala mi tan pakala pi ilo sina.", "errors.unexpected_crash.report_issue": "o toki e pakala tawa lawa", @@ -253,17 +252,11 @@ "lightbox.next": "sinpin", "lightbox.previous": "monsi", "link_preview.author": "tan {name}", - "lists.account.add": "o pana tawa kulupu lipu", - "lists.account.remove": "o weka tan kulupu lipu", "lists.delete": "o weka e kulupu lipu", "lists.edit": "o ante e kulupu lipu", - "lists.edit.submit": "o ante e nimi", - "lists.exclusive": "o len e toki lon lipu open", - "lists.new.create": "o sin e kulupu lipu", "lists.replies_policy.followed": "jan kute ale", "lists.replies_policy.list": "jan pi kulupu ni taso", "lists.replies_policy.none": "jan ala", - "lists.subheading": "kulupu lipu sina", "load_pending": "{count, plural, other {ijo sin #}}", "loading_indicator.label": "ni li kama…", "mute_modal.title": "sina wile ala wile kute e jan ni?", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 061f9c6c28..7851da5ecb 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -140,13 +140,16 @@ "column.blocks": "Engellenen kullanıcılar", "column.bookmarks": "Yer İşaretleri", "column.community": "Yerel ağ akışı", + "column.create_list": "Liste oluştur", "column.direct": "Özel değinmeler", "column.directory": "Profillere göz at", "column.domain_blocks": "Engellenen alan adları", + "column.edit_list": "Listeyi düzenle", "column.favourites": "Gözdelerin", "column.firehose": "Anlık Akışlar", "column.follow_requests": "Takip istekleri", "column.home": "Anasayfa", + "column.list_members": "Liste üyelerini yönet", "column.lists": "Listeler", "column.mutes": "Sessize alınmış kullanıcılar", "column.notifications": "Bildirimler", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Henüz bu etikete sahip hiçbir gönderi yok.", "empty_column.home": "Ana zaman tünelin boş! Akışını doldurmak için daha fazla kişiyi takip ediniz.", "empty_column.list": "Henüz bu listede bir şey yok. Bu listenin üyeleri bir şey paylaşığında burada gözükecek.", - "empty_column.lists": "Henüz listen yok. Liste oluşturduğunda burada görünür.", "empty_column.mutes": "Henüz bir kullanıcıyı sessize almadınız.", "empty_column.notification_requests": "Hepsi tamam! Burada yeni bir şey yok. Yeni bildirim aldığınızda, ayarlarınıza göre burada görüntülenecekler.", "empty_column.notifications": "Henüz bildiriminiz yok. Sohbete başlamak için başkalarıyla etkileşim kurun.", @@ -465,20 +467,31 @@ "link_preview.author": "Yazar: {name}", "link_preview.more_from_author": "{name} kişisinden daha fazlası", "link_preview.shares": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}", - "lists.account.add": "Listeye ekle", - "lists.account.remove": "Listeden kaldır", + "lists.add_member": "Ekle", + "lists.add_to_list": "Listeye ekle", + "lists.add_to_lists": "{name} kişisini listelere ekle", + "lists.create": "Oluştur", + "lists.create_a_list_to_organize": "Anasayfa akışınızı düzenlemek için yeni bir liste oluşturun", + "lists.create_list": "Liste oluştur", "lists.delete": "Listeyi sil", + "lists.done": "Tamamlandı", "lists.edit": "Listeleri düzenle", - "lists.edit.submit": "Başlığı değiştir", - "lists.exclusive": "Bu gönderileri Anasayfadan gizle", - "lists.new.create": "Liste ekle", - "lists.new.title_placeholder": "Yeni liste başlığı", + "lists.exclusive": "Anasayfada üyeleri gizle", + "lists.exclusive_hint": "Birisi bu listede yer alıyorsa, gönderilerini iki kez görmekten kaçınmak için onu anasayfa akışınızda gizleyin.", + "lists.find_users_to_add": "Eklenecek kullanıcıları bul", + "lists.list_members": "Liste üyeleri", + "lists.list_members_count": "{count, plural, one {# üye} other {# üye}}", + "lists.list_name": "Liste adı", + "lists.new_list_name": "Yeni liste adı", + "lists.no_lists_yet": "Henüz liste yok.", + "lists.no_members_yet": "Henüz üye yok.", + "lists.no_results_found": "Sonuç bulunamadı.", + "lists.remove_member": "Kaldır", "lists.replies_policy.followed": "Takip edilen herhangi bir kullanıcı", "lists.replies_policy.list": "Listenin üyeleri", "lists.replies_policy.none": "Hiç kimse", - "lists.replies_policy.title": "Yanıtları göster:", - "lists.search": "Takip ettiğiniz kişiler arasından arayın", - "lists.subheading": "Listeleriniz", + "lists.save": "Kaydet", + "lists.search_placeholder": "Takip ettiğiniz kişilerde arama yapın", "load_pending": "{count, plural, one {# yeni öğe} other {# yeni öğe}}", "loading_indicator.label": "Yükleniyor…", "media_gallery.hide": "Gizle", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 08bb7979a1..07b9decc10 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -275,16 +275,10 @@ "lightbox.previous": "Алдагы", "limited_account_hint.action": "Барыбер профильне күрсәтергә", "limited_account_hint.title": "Бу профильне модераторлар яшергән {domain}.", - "lists.account.add": "Исемлеккә өстәргә", - "lists.account.remove": "Исемлектән бетерергә", "lists.delete": "Исемлекне бетерегез", "lists.edit": "Исемлекне үзгәртү", - "lists.edit.submit": "Исемен үзгәртү", - "lists.new.create": "Исемлек өстәгез", - "lists.new.title_placeholder": "Яңа исемлек башламы", "lists.replies_policy.list": "Исемлек әгъзалары", "lists.replies_policy.none": "Һичкем", - "lists.subheading": "Исемлегегегезләр", "load_pending": "{count, plural, one {# яңа элемент} other {# яңа элемент}}", "navigation_bar.about": "Проект турында", "navigation_bar.blocks": "Блокланган кулланучылар", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 0e0906eb37..a88c588350 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -140,9 +140,11 @@ "column.blocks": "Заблоковані користувачі", "column.bookmarks": "Закладки", "column.community": "Локальна стрічка", + "column.create_list": "Створити список", "column.direct": "Особисті згадки", "column.directory": "Переглянути профілі", "column.domain_blocks": "Заблоковані домени", + "column.edit_list": "Редагувати список", "column.favourites": "Уподобане", "column.firehose": "Стрічка новин", "column.follow_requests": "Запити на підписку", @@ -292,7 +294,6 @@ "empty_column.hashtag": "Дописів з цим гештеґом поки не існує.", "empty_column.home": "Ваша стрічка порожня! Підпишіться на інших, щоб її заповнити.", "empty_column.list": "Цей список порожній. Коли його учасники додадуть нові дописи, вони з'являться тут.", - "empty_column.lists": "У вас ще немає списків. Коли ви їх створите, вони з'являться тут.", "empty_column.mutes": "Ви ще не приховали жодного користувача.", "empty_column.notification_requests": "Усе чисто! Тут нічого немає. Коли ви отримаєте нові сповіщення, вони з'являться тут відповідно до ваших налаштувань.", "empty_column.notifications": "У вас ще немає сповіщень. Коли інші люди почнуть взаємодіяти з вами, ви побачите їх тут.", @@ -465,20 +466,11 @@ "link_preview.author": "Від {name}", "link_preview.more_from_author": "Більше від {name}", "link_preview.shares": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}", - "lists.account.add": "Додати до списку", - "lists.account.remove": "Вилучити зі списку", "lists.delete": "Видалити список", "lists.edit": "Редагувати список", - "lists.edit.submit": "Змінити назву", - "lists.exclusive": "Сховати ці дописи з домашньої сторінки", - "lists.new.create": "Додати список", - "lists.new.title_placeholder": "Нова назва списку", "lists.replies_policy.followed": "Будь-який відстежуваний користувач", "lists.replies_policy.list": "Учасники списку", "lists.replies_policy.none": "Ніхто", - "lists.replies_policy.title": "Показати відповіді для:", - "lists.search": "Шукати серед людей, на яких ви підписані", - "lists.subheading": "Ваші списки", "load_pending": "{count, plural, one {# новий елемент} other {# нових елементів}}", "loading_indicator.label": "Завантаження…", "media_gallery.hide": "Сховати", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index cb5dfa63cd..476b8c2afb 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -162,7 +162,6 @@ "empty_column.hashtag": "ابھی یہ ہیش ٹیگ خالی ہے.", "empty_column.home": "آپ کا خانگی جدول خالی ہے! {public} دیکھیں یا شروعات کیلئے تلاش کریں اور دیگر صارفین سے ملیں.", "empty_column.list": "یہ فہرست ابھی خالی ہے. جب اس فہرست کے ارکان کچھ تحریر کریں گے، یہاں نظر آئے گا.", - "empty_column.lists": "ابھی آپ کی کوئی فہرست نہیں ہے. جب آپ بنائیں گے، وہ یہاں نظر آئے گی.", "empty_column.mutes": "آپ نے ابھی کسی صارف کو خاموش نہیں کیا ہے.", "empty_column.notifications": "ابھی آپ کیلئے کوئی اطلاعات نہیں ہیں. گفتگو شروع کرنے کے لئے دیگر صارفین سے متعامل ہوں.", "empty_column.public": "یہاں کچھ بھی نہیں ہے! کچھ عمومی تحریر کریں یا اس جگہ کو پُر کرنے کے لئے از خود دیگر سرورس کے صارفین کی پیروی کریں", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index 6dae368ffc..dd67fc6c81 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -187,7 +187,6 @@ "empty_column.hashtag": "Ushbu hashtagda hali hech narsa yo'q.", "empty_column.home": "Bosh sahifa yilnomangiz boʻsh! Uni to'ldirish uchun ko'proq odamlarni kuzatib boring. {suggestions}", "empty_column.list": "Bu ro'yxatda hali hech narsa yo'q. Ushbu roʻyxat aʼzolari yangi xabarlarni nashr qilganda, ular shu yerda paydo boʻladi.", - "empty_column.lists": "Sizda hali hech qanday roʻyxat yoʻq. Uni yaratganingizda, u shu yerda paydo bo'ladi.", "empty_column.mutes": "Siz hali hech bir foydalanuvchining ovozini o‘chirmagansiz.", "empty_column.notifications": "Sizda hali hech qanday bildirishnoma yo‘q. Boshqa odamlar siz bilan muloqot qilganda, buni shu yerda ko'rasiz.", "empty_column.public": "Bu erda hech narsa yo'q! Biror narsani ochiq yozing yoki uni toʻldirish uchun boshqa serverlardagi foydalanuvchilarni qoʻlda kuzatib boring", @@ -288,16 +287,10 @@ "keyboard_shortcuts.up": "Roʻyxatda yuqoriga koʻtarish", "lightbox.close": "Yopish", "limited_account_hint.action": "Baribir profilni ko'rsatish", - "lists.account.add": "Ro‘yxatga qo‘shish", - "lists.account.remove": "Roʻyxatdan o'chirish", "lists.delete": "Roʻyxatni o'chirish", "lists.edit": "Roʻyxatni tahrirlash", - "lists.new.create": "Ro‘yxatga qo‘shish", "lists.replies_policy.list": "Ro'yxat a'zolari", "lists.replies_policy.none": "Hech kim", - "lists.replies_policy.title": "Javoblarni ko'rsatish:", - "lists.search": "Siz kuzatadigan odamlar orasidan qidiring", - "lists.subheading": "Sizning ro'yxatlaringiz", "load_pending": "{count, plural, one {# yangi element} other {# yangi elementlar}}", "moved_to_account_banner.text": "{movedToAccount} hisobiga koʻchganingiz uchun {disabledAccount} hisobingiz hozirda oʻchirib qoʻyilgan.", "navigation_bar.about": "Haqida", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 73016ed8c9..4ba36e0545 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -140,13 +140,16 @@ "column.blocks": "Người đã chặn", "column.bookmarks": "Những tút đã lưu", "column.community": "Máy chủ này", + "column.create_list": "Tạo danh sách", "column.direct": "Nhắn riêng", "column.directory": "Tìm người cùng sở thích", "column.domain_blocks": "Máy chủ đã chặn", + "column.edit_list": "Sửa danh sách", "column.favourites": "Những tút đã thích", "column.firehose": "Bảng tin", "column.follow_requests": "Yêu cầu theo dõi", "column.home": "Trang chủ", + "column.list_members": "Quản lý danh sách", "column.lists": "Danh sách", "column.mutes": "Người đã ẩn", "column.notifications": "Thông báo", @@ -292,7 +295,6 @@ "empty_column.hashtag": "Chưa có tút nào dùng hashtag này.", "empty_column.home": "Trang chủ của bạn đang trống! Hãy theo dõi nhiều người hơn để lấp đầy.", "empty_column.list": "Chưa có tút. Khi những người trong danh sách này đăng tút mới, chúng sẽ xuất hiện ở đây.", - "empty_column.lists": "Bạn chưa tạo danh sách nào.", "empty_column.mutes": "Bạn chưa ẩn bất kỳ ai.", "empty_column.notification_requests": "Sạch sẽ! Không còn gì ở đây. Khi bạn nhận được thông báo mới, chúng sẽ xuất hiện ở đây theo cài đặt của bạn.", "empty_column.notifications": "Bạn chưa có thông báo nào. Hãy thử theo dõi hoặc nhắn riêng cho ai đó.", @@ -465,20 +467,32 @@ "link_preview.author": "Bởi {name}", "link_preview.more_from_author": "Viết bởi {name}", "link_preview.shares": "{count, plural, other {{counter} lượt chia sẻ}}", - "lists.account.add": "Thêm vào danh sách", - "lists.account.remove": "Xóa khỏi danh sách", + "lists.add_member": "Thêm", + "lists.add_to_list": "Thêm vào danh sách", + "lists.add_to_lists": "Thêm {name} vào danh sách", + "lists.create": "Tạo", + "lists.create_a_list_to_organize": "Tạo một danh sách để sắp xếp Bảng tin", + "lists.create_list": "Tạo danh sách", "lists.delete": "Xóa danh sách", + "lists.done": "Xong", "lists.edit": "Sửa danh sách", - "lists.edit.submit": "Thay đổi tiêu đề", - "lists.exclusive": "Ẩn những tút này khỏi bảng tin", - "lists.new.create": "Tạo mới", - "lists.new.title_placeholder": "Tên danh sách", + "lists.exclusive": "Ẩn thành viên trong Trang chủ", + "lists.exclusive_hint": "Nếu ai đó có trong danh sách này, ẩn họ trong Trang chủ để tránh thấy tút của họ hiện trùng lặp.", + "lists.find_users_to_add": "Tìm người để thêm vào", + "lists.list_members": "Liệt kê các thành viên", + "lists.list_members_count": "{count, plural, other {# thành viên}}", + "lists.list_name": "Tên danh sách", + "lists.new_list_name": "Tên danh sách mới", + "lists.no_lists_yet": "Chưa có danh sách nào.", + "lists.no_members_yet": "Chưa có thành viên nào.", + "lists.no_results_found": "Không tìm thấy kết quả nào.", + "lists.remove_member": "Xóa", "lists.replies_policy.followed": "Người theo dõi", "lists.replies_policy.list": "Người trong danh sách", "lists.replies_policy.none": "Không ai", - "lists.replies_policy.title": "Cho phép trả lời với:", - "lists.search": "Tìm kiếm những người mà bạn quan tâm", - "lists.subheading": "Danh sách của bạn", + "lists.save": "Lưu", + "lists.search_placeholder": "Tìm những người mà bạn quan tâm", + "lists.show_replies_to": "Bao gồm lượt trả lời từ thành viên danh sách", "load_pending": "{count, plural, one {# tút mới} other {# tút mới}}", "loading_indicator.label": "Đang tải…", "media_gallery.hide": "Ẩn", diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index 2fe63fe83c..73a626d59f 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -107,16 +107,9 @@ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", "lightbox.close": "ⵔⴳⵍ", - "lists.account.add": "ⵔⵏⵓ ⵖⵔ ⵜⵍⴳⴰⵎⵜ", - "lists.account.remove": "ⴽⴽⵙ ⵙⴳ ⵜⵍⴳⴰⵎⵜ", "lists.delete": "ⴽⴽⵙ ⵜⴰⵍⴳⴰⵎⵜ", "lists.edit": "ⵙⵏⴼⵍ ⵜⴰⵍⴳⴰⵎⵜ", - "lists.edit.submit": "ⵙⵏⴼⵍ ⴰⵣⵡⵍ", - "lists.new.create": "ⵙⴽⵔ ⵜⴰⵍⴳⴰⵎⵜ", - "lists.new.title_placeholder": "ⴰⵣⵡⵍ ⵏ ⵜⵍⴳⴰⵎⵜ ⵜⴰⵎⴰⵢⵏⵓⵜ", "lists.replies_policy.none": "ⴰⵡⴷ ⵢⴰⵏ", - "lists.replies_policy.title": "ⵙⴽⵏ ⵜⵉⵔⴰⵔⵉⵏ ⵉ:", - "lists.subheading": "ⵜⵉⵍⴳⴰⵎⵉⵏ ⵏⵏⴽ", "load_pending": "{count, plural, one {# ⵓⴼⵔⴷⵉⵙ ⴰⵎⴰⵢⵏⵓ} other {# ⵉⴼⵔⴷⴰⵙ ⵉⵎⴰⵢⵏⵓⵜⵏ}}", "navigation_bar.compose": "Compose new toot", "navigation_bar.domain_blocks": "Hidden domains", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 463167e8f8..16d32417c6 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -140,13 +140,16 @@ "column.blocks": "屏蔽的用户", "column.bookmarks": "书签", "column.community": "本站时间线", + "column.create_list": "创建列表", "column.direct": "私下提及", "column.directory": "浏览用户资料", "column.domain_blocks": "已屏蔽的域名", + "column.edit_list": "编辑列表", "column.favourites": "喜欢", "column.firehose": "实时动态", "column.follow_requests": "关注请求", "column.home": "主页", + "column.list_members": "管理列表成员", "column.lists": "列表", "column.mutes": "已隐藏的用户", "column.notifications": "通知", @@ -292,7 +295,6 @@ "empty_column.hashtag": "这个话题标签下暂时没有内容。", "empty_column.home": "你的主页时间线还没有内容!快去关注更多人吧。", "empty_column.list": "列表中还没有任何内容。当列表成员发布新嘟文时,它们将出现在这里。", - "empty_column.lists": "你还没有创建过列表。你创建的列表会在这里显示。", "empty_column.mutes": "你没有隐藏任何用户。", "empty_column.notification_requests": "都看完了!这里没有任何未读通知。当收到新的通知时,它们将根据你的设置显示在这里。", "empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。", @@ -465,20 +467,32 @@ "link_preview.author": "由 {name}", "link_preview.more_from_author": "查看 {name} 的更多内容", "link_preview.shares": "{count, plural, other {{counter} 条嘟文}}", - "lists.account.add": "添加到列表", - "lists.account.remove": "从列表中移除", + "lists.add_member": "添加", + "lists.add_to_list": "添加到列表", + "lists.add_to_lists": "把 {name} 添加到列表", + "lists.create": "创建", + "lists.create_a_list_to_organize": "新建一个列表,整理你的主页动态", + "lists.create_list": "创建列表", "lists.delete": "删除列表", + "lists.done": "完成", "lists.edit": "编辑列表", - "lists.edit.submit": "更改标题", - "lists.exclusive": "在主页中隐藏这些嘟文", - "lists.new.create": "新建列表", - "lists.new.title_placeholder": "新列表的标题", + "lists.exclusive": "在主页动态中隐藏列表成员", + "lists.exclusive_hint": "列表成员的嘟文将不会在你的主页动态中显示,以免重复阅读。", + "lists.find_users_to_add": "查找要添加的用户", + "lists.list_members": "列表成员", + "lists.list_members_count": "{count, plural, other {# 人}}", + "lists.list_name": "列表名称", + "lists.new_list_name": "新列表名称", + "lists.no_lists_yet": "尚无列表。", + "lists.no_members_yet": "尚无成员。", + "lists.no_results_found": "未找到结果。", + "lists.remove_member": "移除", "lists.replies_policy.followed": "所有我关注的用户", "lists.replies_policy.list": "列表成员", "lists.replies_policy.none": "不显示", - "lists.replies_policy.title": "显示回复:", - "lists.search": "搜索你关注的人", - "lists.subheading": "你的列表", + "lists.save": "保存", + "lists.search_placeholder": "搜索你关注的人", + "lists.show_replies_to": "列表成员回复的显示范围", "load_pending": "{count} 项", "loading_indicator.label": "加载中…", "media_gallery.hide": "隐藏", @@ -691,7 +705,7 @@ "privacy.direct.short": "特定的人", "privacy.private.long": "仅限你的关注者", "privacy.private.short": "关注者", - "privacy.public.long": "所有 Mastodon 内外的人", + "privacy.public.long": "", "privacy.public.short": "公开", "privacy.unlisted.additional": "该模式的行为与“公开”完全相同,只是嘟文不会出现在实时动态、话题标签、探索或 Mastodon 搜索中,即使你已在账户级设置中选择加入。", "privacy.unlisted.long": "减少算法影响", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 8acd6df078..ff0a124fcf 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -263,7 +263,6 @@ "empty_column.hashtag": "這個標籤暫時未有內容。", "empty_column.home": "你還沒有關注任何使用者。快看看{public},向其他使用者搭訕吧。", "empty_column.list": "這個列表暫時未有內容。", - "empty_column.lists": "你還沒有建立任何名單。這裡將會顯示你所建立的名單。", "empty_column.mutes": "你尚未靜音任何使用者。", "empty_column.notification_requests": "沒有新通知了!當有新通知時,會根據設定顯示在這裏。", "empty_column.notifications": "你沒有任何通知紀錄,快向其他用戶搭訕吧。", @@ -410,20 +409,11 @@ "limited_account_hint.action": "一律顯示個人檔案", "limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。", "link_preview.author": "由 {name} 提供", - "lists.account.add": "新增到列表", - "lists.account.remove": "從列表刪除", "lists.delete": "刪除列表", "lists.edit": "編輯列表", - "lists.edit.submit": "變更標題", - "lists.exclusive": "從主頁隱藏這些帖文", - "lists.new.create": "新增列表", - "lists.new.title_placeholder": "新列表標題", "lists.replies_policy.followed": "任何已關注的用戶", "lists.replies_policy.list": "列表中的用戶", "lists.replies_policy.none": "無人", - "lists.replies_policy.title": "顯示回應文章︰", - "lists.search": "從你關注的人搜索", - "lists.subheading": "列表", "load_pending": "{count, plural, other {# 個新項目}}", "loading_indicator.label": "載入中…", "media_gallery.hide": "隱藏", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 56ddd9745e..355fecac4c 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -140,13 +140,16 @@ "column.blocks": "已封鎖的使用者", "column.bookmarks": "書籤", "column.community": "本站時間軸", + "column.create_list": "建立列表", "column.direct": "私訊", "column.directory": "瀏覽個人檔案", "column.domain_blocks": "已封鎖網域", + "column.edit_list": "編輯列表", "column.favourites": "最愛", "column.firehose": "即時內容", "column.follow_requests": "跟隨請求", "column.home": "首頁", + "column.list_members": "管理列表成員", "column.lists": "列表", "column.mutes": "已靜音的使用者", "column.notifications": "推播通知", @@ -292,7 +295,6 @@ "empty_column.hashtag": "這個主題標籤下什麼也沒有。", "empty_column.home": "您的首頁時間軸是空的!跟隨更多人來將它填滿吧!", "empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出新的嘟文時,它們將顯示於此。", - "empty_column.lists": "您還沒有新增任何列表。當您新增列表時,它將於此顯示。", "empty_column.mutes": "您尚未靜音任何使用者。", "empty_column.notification_requests": "清空啦!已經沒有任何推播通知。當您收到新推播通知時,它們將依照您的設定於此顯示。", "empty_column.notifications": "您還沒有收到任何推播通知,當您與別人開始互動時,它將於此顯示。", @@ -465,20 +467,32 @@ "link_preview.author": "來自 {name}", "link_preview.more_from_author": "來自 {name} 之更多內容", "link_preview.shares": "{count, plural, other {{count} 則嘟文}}", - "lists.account.add": "新增至列表", - "lists.account.remove": "自列表中移除", + "lists.add_member": "新增", + "lists.add_to_list": "新增至列表", + "lists.add_to_lists": "新增 {name} 至列表", + "lists.create": "建立", + "lists.create_a_list_to_organize": "建立新列表以整理您的首頁動態", + "lists.create_list": "建立列表", "lists.delete": "刪除列表", + "lists.done": "完成", "lists.edit": "編輯列表", - "lists.edit.submit": "變更標題", - "lists.exclusive": "於首頁時間軸隱藏這些嘟文", - "lists.new.create": "新增列表", - "lists.new.title_placeholder": "新列表標題", + "lists.exclusive": "在首頁隱藏成員", + "lists.exclusive_hint": "如果某個帳號於此列表中,將自您的首頁動態中隱藏此帳號,以防重複見到他們的嘟文。", + "lists.find_users_to_add": "尋找欲新增之使用者", + "lists.list_members": "列表成員", + "lists.list_members_count": "{count, plural, other {# 個成員}}", + "lists.list_name": "列表名稱", + "lists.new_list_name": "新列表名稱", + "lists.no_lists_yet": "尚無列表。", + "lists.no_members_yet": "尚無成員。", + "lists.no_results_found": "找不到結果。", + "lists.remove_member": "移除", "lists.replies_policy.followed": "任何跟隨的使用者", "lists.replies_policy.list": "列表成員", "lists.replies_policy.none": "沒有人", - "lists.replies_policy.title": "顯示回覆:", - "lists.search": "搜尋您跟隨之使用者", - "lists.subheading": "您的列表", + "lists.save": "儲存", + "lists.search_placeholder": "搜尋您跟隨的人", + "lists.show_replies_to": "包含來自列表成員的回覆到", "load_pending": "{count, plural, other {# 個新項目}}", "loading_indicator.label": "正在載入...", "media_gallery.hide": "隱藏", diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 61de577709..04c23f1706 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -311,7 +311,7 @@ zh-CN: text: 规则 settings: indexable: 允许搜索引擎索引个人资料页面 - show_application: 显示你发嘟所用的应用 + show_application: 显示 tag: listable: 允许这个话题标签在用户目录中显示 name: 话题标签 From d0753ec276502ea28a1e853cbc6487020a0602e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:54:58 +0100 Subject: [PATCH 006/246] Update dependency aws-sdk-s3 to v1.173.0 (#33019) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d005c744cc..471795a7e7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,7 +95,7 @@ GEM attr_required (1.0.2) awrence (1.2.1) aws-eventstream (1.3.0) - aws-partitions (1.1009.0) + aws-partitions (1.1012.0) aws-sdk-core (3.213.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -104,7 +104,7 @@ GEM aws-sdk-kms (1.96.0) aws-sdk-core (~> 3, >= 3.210.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.172.0) + aws-sdk-s3 (1.173.0) aws-sdk-core (~> 3, >= 3.210.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) From 9ebed5d410ddd1f7f427235a81096d13a2666657 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 22 Nov 2024 09:58:04 +0100 Subject: [PATCH 007/246] Fix CSS warnings (#32266) --- .../styles/mastodon/components.scss | 23 ++++--------------- app/javascript/styles/mastodon/polls.scss | 5 ---- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 8b95c3776e..2c6efb71b4 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6154,13 +6154,6 @@ a.status-card { } } -.onboard-sliders { - display: inline-block; - max-width: 30px; - max-height: auto; - margin-inline-start: 10px; -} - .safety-action-modal { width: 600px; flex-direction: column; @@ -8739,6 +8732,7 @@ noscript { &__item { flex-shrink: 0; background: lighten($ui-base-color, 12%); + color: $darker-text-color; border: 0; border-radius: 3px; margin: 2px; @@ -8775,7 +8769,6 @@ noscript { font-weight: 500; text-align: center; margin-inline-start: 6px; - color: $darker-text-color; } &:hover, @@ -8784,10 +8777,7 @@ noscript { background: lighten($ui-base-color, 16%); transition: all 200ms ease-out; transition-property: background-color, color; - - &__count { - color: lighten($darker-text-color, 4%); - } + color: lighten($darker-text-color, 4%); } &.active { @@ -8798,10 +8788,7 @@ noscript { $ui-highlight-color, 80% ); - - .reactions-bar__item__count { - color: lighten($highlight-text-color, 8%); - } + color: lighten($highlight-text-color, 8%); } } @@ -10416,7 +10403,7 @@ noscript { &__text { flex: 1 1 auto; - font-style: 14px; + font-size: 14px; line-height: 20px; strong { @@ -10474,7 +10461,7 @@ noscript { &__name { flex: 1 1 auto; color: $darker-text-color; - font-style: 14px; + font-size: 14px; line-height: 20px; overflow: hidden; text-overflow: ellipsis; diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss index 939fca3364..ced4c60c44 100644 --- a/app/javascript/styles/mastodon/polls.scss +++ b/app/javascript/styles/mastodon/polls.scss @@ -38,11 +38,6 @@ background: darken($ui-primary-color, 5%); } - &::-ms-fill { - border-radius: 4px; - background: darken($ui-primary-color, 5%); - } - &::-webkit-progress-value { border-radius: 4px; background: darken($ui-primary-color, 5%); From 0ad5c212c112716e67ce4e7e206a822e6cd13cbd Mon Sep 17 00:00:00 2001 From: Oliver Geer <69071853+WebCoder49@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:50:47 +0000 Subject: [PATCH 008/246] Fix accounts table long display name (#29316) --- app/javascript/styles/mastodon/widgets.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index d810ee4bfc..e1e8797460 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -82,6 +82,7 @@ .accounts-table { width: 100%; + table-layout: fixed; .account { padding: 0; From 35683ac154ee7c717246dcac0d791b3f93c3824a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=B7=E3=83=A5=E3=83=B3=E3=82=B8=E3=83=A7=E3=83=BC?= =?UTF-8?q?=E3=82=A1?= <68307970+mszpro@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:04:48 +0900 Subject: [PATCH 009/246] Remove webauthn credentials on `tootctl accounts modify --disable-2fa` (#29883) Co-authored-by: Claire --- lib/mastodon/cli/accounts.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mastodon/cli/accounts.rb b/lib/mastodon/cli/accounts.rb index c8e91224cf..41127741ef 100644 --- a/lib/mastodon/cli/accounts.rb +++ b/lib/mastodon/cli/accounts.rb @@ -164,7 +164,7 @@ module Mastodon::CLI user.disabled = false if options[:enable] user.disabled = true if options[:disable] user.approved = true if options[:approve] - user.otp_required_for_login = false if options[:disable_2fa] + user.disable_two_factor! if options[:disable_2fa] if user.save user.confirm if options[:confirm] From 9d34146aaae9e87384c3d16e04ed935a96049e3c Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 22 Nov 2024 15:19:11 +0100 Subject: [PATCH 010/246] Remove redundant temporary index creation in `tootctl status remove` (#33023) --- lib/mastodon/cli/statuses.rb | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/lib/mastodon/cli/statuses.rb b/lib/mastodon/cli/statuses.rb index f441dbcd84..7104181e97 100644 --- a/lib/mastodon/cli/statuses.rb +++ b/lib/mastodon/cli/statuses.rb @@ -40,17 +40,11 @@ module Mastodon::CLI def remove_statuses return if options[:skip_status_remove] - say('Creating temporary database indices...') - - ActiveRecord::Base.connection.add_index(:media_attachments, :remote_url, name: :index_media_attachments_remote_url, where: 'remote_url is not null', algorithm: :concurrently, if_not_exists: true) - - max_id = Mastodon::Snowflake.id_at(options[:days].days.ago, with_random: false) start_at = Time.now.to_f - unless options[:continue] && ActiveRecord::Base.connection.table_exists?('statuses_to_be_deleted') - ActiveRecord::Base.connection.add_index(:accounts, :id, name: :index_accounts_local, where: 'domain is null', algorithm: :concurrently, if_not_exists: true) - ActiveRecord::Base.connection.add_index(:status_pins, :status_id, name: :index_status_pins_status_id, algorithm: :concurrently, if_not_exists: true) + max_id = Mastodon::Snowflake.id_at(options[:days].days.ago, with_random: false) + unless options[:continue] && ActiveRecord::Base.connection.table_exists?('statuses_to_be_deleted') say('Extract the deletion target from statuses... This might take a while...') ActiveRecord::Base.connection.create_table('statuses_to_be_deleted', force: true) @@ -72,9 +66,6 @@ module Mastodon::CLI SQL say('Removing temporary database indices to restore write performance...') - - ActiveRecord::Base.connection.remove_index(:accounts, name: :index_accounts_local, if_exists: true) - ActiveRecord::Base.connection.remove_index(:status_pins, name: :index_status_pins_status_id, if_exists: true) end say('Beginning statuses removal... This might take a while...') @@ -102,12 +93,6 @@ module Mastodon::CLI ActiveRecord::Base.connection.drop_table('statuses_to_be_deleted') say("Done after #{Time.now.to_f - start_at}s, removed #{removed} out of #{processed} statuses.", :green) - ensure - say('Removing temporary database indices to restore write performance...') - - ActiveRecord::Base.connection.remove_index(:accounts, name: :index_accounts_local, if_exists: true) - ActiveRecord::Base.connection.remove_index(:status_pins, name: :index_status_pins_status_id, if_exists: true) - ActiveRecord::Base.connection.remove_index(:media_attachments, name: :index_media_attachments_remote_url, if_exists: true) end def remove_orphans_media_attachments From 04ce5939ae1d865b24e1ea8512c33bbb06889409 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 22 Nov 2024 15:36:08 +0100 Subject: [PATCH 011/246] Prevent delivery of new posts to suspended followers (#27509) --- app/lib/status_reach_finder.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/lib/status_reach_finder.rb b/app/lib/status_reach_finder.rb index 17e42e3ec3..d08c077c74 100644 --- a/app/lib/status_reach_finder.rb +++ b/app/lib/status_reach_finder.rb @@ -16,7 +16,9 @@ class StatusReachFinder private def reached_account_inboxes - Account.where(id: reached_account_ids).inboxes + scope = Account.where(id: reached_account_ids) + scope.merge!(Account.without_suspended) unless unsafe? + scope.inboxes end def reached_account_ids From 99f36f1b7b4350747de5043eed2528291aa4c469 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 22 Nov 2024 15:43:16 +0100 Subject: [PATCH 012/246] Tweak antispam a bit (#33024) --- app/lib/antispam.rb | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/app/lib/antispam.rb b/app/lib/antispam.rb index bc4841280f..4ebf192485 100644 --- a/app/lib/antispam.rb +++ b/app/lib/antispam.rb @@ -5,25 +5,36 @@ class Antispam ACCOUNT_AGE_EXEMPTION = 1.week.freeze + class DummyStatus < SimpleDelegator + def self.model_name + Mention.model_name + end + + def active_mentions + # Don't use the scope but the in-memory array + mentions.filter { |mention| !mention.silent? } + end + end + class SilentlyDrop < StandardError attr_reader :status def initialize(status) super() - @status = status - status.created_at = Time.now.utc status.id = Mastodon::Snowflake.id_at(status.created_at) status.in_reply_to_account_id = status.thread&.account_id status.delete # Make sure this is not persisted + + @status = DummyStatus.new(status) end end def local_preflight_check!(status) return unless spammy_texts.any? { |spammy_text| status.text.include?(spammy_text) } - return unless status.thread.present? && !status.thread.account.following?(status.account) + return unless suspicious_reply_or_mention?(status) return unless status.account.created_at >= ACCOUNT_AGE_EXEMPTION.ago report_if_needed!(status.account) @@ -37,6 +48,14 @@ class Antispam redis.smembers('antispam:spammy_texts') end + def suspicious_reply_or_mention?(status) + parent = status.thread + return true if parent.present? && !Follow.exists?(account_id: parent.account_id, target_account: status.account_id) + + account_ids = status.mentions.map(&:account_id).uniq + !Follow.exists?(account_id: account_ids, target_account_id: status.account.id) + end + def report_if_needed!(account) return if Report.unresolved.exists?(account: Account.representative, target_account: account) From 2e66dd09e2d2db54327188ae9e393d2004c7bb95 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Fri, 22 Nov 2024 15:48:41 +0100 Subject: [PATCH 013/246] Show default time zone (#31803) --- app/views/settings/preferences/appearance/show.html.haml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index 22f88c7cdd..1239b8bcd9 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -18,6 +18,7 @@ = f.input :time_zone, collection: ActiveSupport::TimeZone.all.map { |tz| ["(GMT#{tz.formatted_offset}) #{tz.name}", tz.tzinfo.name] }, hint: false, + selected: current_user.time_zone || Time.zone.tzinfo.name, wrapper: :with_label .fields-group From 21a8612aaba7ca871c7b45ef6ef84e7b20f97a22 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Fri, 22 Nov 2024 16:58:48 +0100 Subject: [PATCH 014/246] Prevent delivery of posts to (even more) suspended followers (#33030) --- app/lib/status_reach_finder.rb | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/app/lib/status_reach_finder.rb b/app/lib/status_reach_finder.rb index d08c077c74..5fb1964337 100644 --- a/app/lib/status_reach_finder.rb +++ b/app/lib/status_reach_finder.rb @@ -17,8 +17,7 @@ class StatusReachFinder def reached_account_inboxes scope = Account.where(id: reached_account_ids) - scope.merge!(Account.without_suspended) unless unsafe? - scope.inboxes + inboxes_without_suspended_for(scope) end def reached_account_ids @@ -71,13 +70,8 @@ class StatusReachFinder end def followers_inboxes - if @status.in_reply_to_local_account? && distributable? - @status.account.followers.or(@status.thread.account.followers.not_domain_blocked_by_account(@status.account)).inboxes - elsif @status.direct_visibility? || @status.limited_visibility? - [] - else - @status.account.followers.inboxes - end + scope = followers_scope + inboxes_without_suspended_for(scope) end def relay_inboxes @@ -95,4 +89,19 @@ class StatusReachFinder def unsafe? @options[:unsafe] end + + def followers_scope + if @status.in_reply_to_local_account? && distributable? + @status.account.followers.or(@status.thread.account.followers.not_domain_blocked_by_account(@status.account)) + elsif @status.direct_visibility? || @status.limited_visibility? + Account.none + else + @status.account.followers + end + end + + def inboxes_without_suspended_for(scope) + scope.merge!(Account.without_suspended) unless unsafe? + scope.inboxes + end end From 27e79da6b9d296ff20d8f1b800414ad039031fa5 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 22 Nov 2024 17:23:02 -0500 Subject: [PATCH 015/246] Update immutable imports for v5 (#33037) --- .../features/status/components/card.jsx | 4 ++-- .../mastodon/features/status/index.jsx | 10 ++++---- .../subscribed_languages_modal/index.jsx | 2 +- app/javascript/mastodon/models/account.ts | 24 +++++++++++-------- .../mastodon/reducers/push_notifications.js | 12 +++++----- 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/app/javascript/mastodon/features/status/components/card.jsx b/app/javascript/mastodon/features/status/components/card.jsx index ee1fbe0f8f..136a5568a4 100644 --- a/app/javascript/mastodon/features/status/components/card.jsx +++ b/app/javascript/mastodon/features/status/components/card.jsx @@ -8,7 +8,7 @@ import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; -import Immutable from 'immutable'; +import { is } from 'immutable'; import ImmutablePropTypes from 'react-immutable-proptypes'; import DescriptionIcon from '@/material-icons/400-24px/description-fill.svg?react'; @@ -73,7 +73,7 @@ export default class Card extends PureComponent { }; UNSAFE_componentWillReceiveProps (nextProps) { - if (!Immutable.is(this.props.card, nextProps.card)) { + if (!is(this.props.card, nextProps.card)) { this.setState({ embedded: false, previewLoaded: false }); } diff --git a/app/javascript/mastodon/features/status/index.jsx b/app/javascript/mastodon/features/status/index.jsx index c115f77755..8da3d7e11a 100644 --- a/app/javascript/mastodon/features/status/index.jsx +++ b/app/javascript/mastodon/features/status/index.jsx @@ -7,7 +7,7 @@ import { Helmet } from 'react-helmet'; import { withRouter } from 'react-router-dom'; import { createSelector } from '@reduxjs/toolkit'; -import Immutable from 'immutable'; +import { List as ImmutableList } from 'immutable'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { connect } from 'react-redux'; @@ -87,7 +87,7 @@ const makeMapStateToProps = () => { (_, { id }) => id, state => state.getIn(['contexts', 'inReplyTos']), ], (statusId, inReplyTos) => { - let ancestorsIds = Immutable.List(); + let ancestorsIds = ImmutableList(); ancestorsIds = ancestorsIds.withMutations(mutable => { let id = statusId; @@ -134,14 +134,14 @@ const makeMapStateToProps = () => { }); } - return Immutable.List(descendantsIds); + return ImmutableList(descendantsIds); }); const mapStateToProps = (state, props) => { const status = getStatus(state, { id: props.params.statusId }); - let ancestorsIds = Immutable.List(); - let descendantsIds = Immutable.List(); + let ancestorsIds = ImmutableList(); + let descendantsIds = ImmutableList(); if (status) { ancestorsIds = getAncestorsIds(state, { id: status.get('in_reply_to_id') }); diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx index 0531346f91..895a2686e8 100644 --- a/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx +++ b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx @@ -23,7 +23,7 @@ const getAccountLanguages = createSelector([ (state, accountId) => state.getIn(['timelines', `account:${accountId}`, 'items'], ImmutableList()), state => state.get('statuses'), ], (statusIds, statuses) => - new ImmutableSet(statusIds.map(statusId => statuses.get(statusId)).filter(status => !status.get('reblog')).map(status => status.get('language')))); + ImmutableSet(statusIds.map(statusId => statuses.get(statusId)).filter(status => !status.get('reblog')).map(status => status.get('language')))); const mapStateToProps = (state, { accountId }) => ({ acct: state.getIn(['accounts', accountId, 'acct']), diff --git a/app/javascript/mastodon/models/account.ts b/app/javascript/mastodon/models/account.ts index 8e8e3b0e8d..34fd1b57e9 100644 --- a/app/javascript/mastodon/models/account.ts +++ b/app/javascript/mastodon/models/account.ts @@ -1,5 +1,5 @@ import type { RecordOf } from 'immutable'; -import { List, Record as ImmutableRecord } from 'immutable'; +import { List as ImmutableList, Record as ImmutableRecord } from 'immutable'; import escapeTextContentForBrowser from 'escape-html'; @@ -48,9 +48,9 @@ export interface AccountShape extends Required< Omit > { - emojis: List; - fields: List; - roles: List; + emojis: ImmutableList; + fields: ImmutableList; + roles: ImmutableList; display_name_html: string; note_emojified: string; note_plain: string | null; @@ -70,8 +70,8 @@ export const accountDefaultValues: AccountShape = { indexable: false, display_name: '', display_name_html: '', - emojis: List(), - fields: List(), + emojis: ImmutableList(), + fields: ImmutableList(), group: false, header: '', header_static: '', @@ -82,7 +82,7 @@ export const accountDefaultValues: AccountShape = { note: '', note_emojified: '', note_plain: 'string', - roles: List(), + roles: ImmutableList(), uri: '', url: '', username: '', @@ -139,11 +139,15 @@ export function createAccountFromServerJSON(serverJSON: ApiAccountJSON) { return AccountFactory({ ...accountJSON, moved: moved?.id, - fields: List( + fields: ImmutableList( serverJSON.fields.map((field) => createAccountField(field, emojiMap)), ), - emojis: List(serverJSON.emojis.map((emoji) => CustomEmojiFactory(emoji))), - roles: List(serverJSON.roles?.map((role) => AccountRoleFactory(role))), + emojis: ImmutableList( + serverJSON.emojis.map((emoji) => CustomEmojiFactory(emoji)), + ), + roles: ImmutableList( + serverJSON.roles?.map((role) => AccountRoleFactory(role)), + ), display_name_html: emojify( escapeTextContentForBrowser(displayName), emojiMap, diff --git a/app/javascript/mastodon/reducers/push_notifications.js b/app/javascript/mastodon/reducers/push_notifications.js index fa8af0e8cc..35c2955b85 100644 --- a/app/javascript/mastodon/reducers/push_notifications.js +++ b/app/javascript/mastodon/reducers/push_notifications.js @@ -1,11 +1,11 @@ -import Immutable from 'immutable'; +import { Map as ImmutableMap } from 'immutable'; import { SET_BROWSER_SUPPORT, SET_SUBSCRIPTION, CLEAR_SUBSCRIPTION, SET_ALERTS } from '../actions/push_notifications'; import { STORE_HYDRATE } from '../actions/store'; -const initialState = Immutable.Map({ +const initialState = ImmutableMap({ subscription: null, - alerts: new Immutable.Map({ + alerts: ImmutableMap({ follow: false, follow_request: false, favourite: false, @@ -24,7 +24,7 @@ export default function push_subscriptions(state = initialState, action) { if (push_subscription) { return state - .set('subscription', new Immutable.Map({ + .set('subscription', ImmutableMap({ id: push_subscription.get('id'), endpoint: push_subscription.get('endpoint'), })) @@ -36,11 +36,11 @@ export default function push_subscriptions(state = initialState, action) { } case SET_SUBSCRIPTION: return state - .set('subscription', new Immutable.Map({ + .set('subscription', ImmutableMap({ id: action.subscription.id, endpoint: action.subscription.endpoint, })) - .set('alerts', new Immutable.Map(action.subscription.alerts)) + .set('alerts', ImmutableMap(action.subscription.alerts)) .set('isSubscribed', true); case SET_BROWSER_SUPPORT: return state.set('browserSupport', action.value); From 91cc180cd022cf2d0557c9b674c0ac6c76e7ea13 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Nov 2024 11:28:09 +0100 Subject: [PATCH 016/246] Update dependency puma to v6.5.0 (#33041) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 471795a7e7..d5a78f1116 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -424,7 +424,7 @@ GEM timeout net-smtp (0.5.0) net-protocol - nio4r (2.7.3) + nio4r (2.7.4) nokogiri (1.16.7) mini_portile2 (~> 2.8.2) racc (~> 1.4) @@ -580,7 +580,7 @@ GEM psych (5.2.0) stringio public_suffix (6.0.1) - puma (6.4.3) + puma (6.5.0) nio4r (~> 2.0) pundit (2.4.0) activesupport (>= 3.0.0) From 8c322cca192179a611774624ba95869e5e51bce6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Nov 2024 10:29:04 +0000 Subject: [PATCH 017/246] Update dependency mutex_m to v0.3.0 (#32991) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d5a78f1116..842d25dd1b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -411,7 +411,7 @@ GEM minitest (5.25.1) msgpack (1.7.5) multi_json (1.15.0) - mutex_m (0.2.0) + mutex_m (0.3.0) net-http (0.5.0) uri net-imap (0.5.1) From a20dca73277acd305f1e804bf8d778a5deaef658 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sun, 24 Nov 2024 15:00:37 -0500 Subject: [PATCH 018/246] Restore stdout logging setting in development environment (#33057) --- config/environments/development.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/environments/development.rb b/config/environments/development.rb index 8533935a88..bbdd9e2fce 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -37,6 +37,11 @@ Rails.application.configure do config.action_controller.forgery_protection_origin_check = ENV['DISABLE_FORGERY_REQUEST_PROTECTION'].nil? + ActiveSupport::Logger.new($stdout).tap do |logger| + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + # Generate random VAPID keys Webpush.generate_key.tap do |vapid_key| config.x.vapid_private_key = vapid_key.private_key From 1333ed4d4e3d5cae73b04ac10184a3002dba58b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 08:58:05 +0100 Subject: [PATCH 019/246] Update docker/dockerfile Docker tag to v1.11 (#33060) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- streaming/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c91f10de0f..4d6287912e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.10 +# syntax=docker/dockerfile:1.11 # This file is designed for production server deployment, not local development work # For a containerized local dev environment, see: https://github.com/mastodon/mastodon/blob/main/README.md#docker diff --git a/streaming/Dockerfile b/streaming/Dockerfile index f94c04e7a2..52c4a1a3d0 100644 --- a/streaming/Dockerfile +++ b/streaming/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.10 +# syntax=docker/dockerfile:1.11 # Please see https://docs.docker.com/engine/reference/builder for information about # the extended buildx capabilities used in this file. From 452139016353b41dea5fcd9cf3f9fc6ba078c1a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:17:41 +0100 Subject: [PATCH 020/246] New Crowdin Translations (automated) (#33043) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/bg.json | 13 ++ app/javascript/mastodon/locales/ca.json | 34 ++- app/javascript/mastodon/locales/de.json | 16 +- app/javascript/mastodon/locales/eo.json | 13 ++ app/javascript/mastodon/locales/es-AR.json | 24 +++ app/javascript/mastodon/locales/es-MX.json | 24 +++ app/javascript/mastodon/locales/es.json | 38 +++- app/javascript/mastodon/locales/fa.json | 3 + app/javascript/mastodon/locales/fo.json | 24 +++ app/javascript/mastodon/locales/fr-CA.json | 40 ++++ app/javascript/mastodon/locales/fr.json | 40 ++++ app/javascript/mastodon/locales/gl.json | 25 +++ app/javascript/mastodon/locales/hu.json | 32 ++- app/javascript/mastodon/locales/it.json | 27 +++ app/javascript/mastodon/locales/pa.json | 228 +++++++++++++++++++-- app/javascript/mastodon/locales/ru.json | 27 ++- app/javascript/mastodon/locales/th.json | 31 +++ app/javascript/mastodon/locales/tr.json | 1 + app/javascript/mastodon/locales/zh-CN.json | 156 +++++++------- app/javascript/mastodon/locales/zh-TW.json | 6 +- config/locales/ca.yml | 10 + config/locales/doorkeeper.zh-CN.yml | 8 +- config/locales/es.yml | 26 +-- config/locales/hu.yml | 2 +- config/locales/lv.yml | 5 + config/locales/simple_form.ca.yml | 2 + config/locales/simple_form.es.yml | 14 +- config/locales/simple_form.th.yml | 1 + config/locales/simple_form.zh-CN.yml | 32 +-- config/locales/th.yml | 15 ++ config/locales/zh-CN.yml | 70 +++---- config/locales/zh-TW.yml | 2 +- 32 files changed, 785 insertions(+), 204 deletions(-) diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 32d61423d6..3e6a2c64be 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -244,6 +244,8 @@ "domain_block_modal.they_cant_follow": "Никого от този сървър не може да ви последва.", "domain_block_modal.they_wont_know": "Няма да узнаят, че са били блокирани.", "domain_block_modal.title": "Блокирате ли домейн?", + "domain_block_modal.you_will_lose_num_followers": "Ще загубите {followersCount, plural, one {{followersCountDisplay} последовател} other {{followersCountDisplay} последователи}} и {followingCount, plural, one {{followingCountDisplay} лице, което следвате} other {{followingCountDisplay} души, които следвате}}.", + "domain_block_modal.you_will_lose_relationships": "Ще загубите всичките си последователи и хората, които следвате от този сървър.", "domain_block_modal.you_wont_see_posts": "Няма да виждате публикации или известия от потребителите на този сървър.", "domain_pill.activitypub_lets_connect": "Позволява ви да се свързвате и взаимодействате с хора не само в Mastodon, но и през различни социални приложения.", "domain_pill.activitypub_like_language": "ActivityPub е като език на Mastodon, говорещ с други социални мрежи.", @@ -391,11 +393,13 @@ "ignore_notifications_modal.disclaimer": "Mastodon не може да осведоми потребители, че сте пренебрегнали известията им. Пренебрегването на известията няма да спре самите съобщения да не бъдат изпращани.", "ignore_notifications_modal.filter_to_act_users": "Вие все още ще може да приемате, отхвърляте или докладвате потребители", "ignore_notifications_modal.filter_to_avoid_confusion": "Прецеждането помага за избягване на възможно объркване", + "ignore_notifications_modal.filter_to_review_separately": "Може да разгледате отделно филтрираните известия", "ignore_notifications_modal.ignore": "Пренебрегване на известията", "ignore_notifications_modal.limited_accounts_title": "Пренебрегвате ли известията от модерирани акаунти?", "ignore_notifications_modal.new_accounts_title": "Пренебрегвате ли известията от нови акаунти?", "ignore_notifications_modal.not_followers_title": "Пренебрегвате ли известията от хора, които не са ви последвали?", "ignore_notifications_modal.not_following_title": "Пренебрегвате ли известията от хора, които не сте последвали?", + "ignore_notifications_modal.private_mentions_title": "Пренебрегвате ли известия от непоискани лични споменавания?", "interaction_modal.description.favourite": "Имайки акаунт в Mastodon, може да сложите тази публикации в любими, за да позволите на автора да узнае, че я цените и да я запазите за по-късно.", "interaction_modal.description.follow": "С акаунт в Mastodon може да последвате {name}, за да получавате публикациите от този акаунт в началния си инфоканал.", "interaction_modal.description.reblog": "С акаунт в Mastodon може да подсилите тази публикация, за да я споделите с последователите си.", @@ -460,10 +464,17 @@ "link_preview.author": "От {name}", "link_preview.more_from_author": "Още от {name}", "link_preview.shares": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", + "lists.add_member": "Добавяне", + "lists.add_to_list": "Добавяне в списък", + "lists.add_to_lists": "Добавяне на {name} в списъци", + "lists.create": "Създаване", + "lists.create_a_list_to_organize": "Сътворете нов списък, за да организирате инфоканала си на Начало", "lists.create_list": "Създаване на списък", "lists.delete": "Изтриване на списъка", "lists.done": "Готово", "lists.edit": "Промяна на списъка", + "lists.exclusive": "Скриване на членуващи в Начало", + "lists.exclusive_hint": "Ако някой е в този списък, то скрийте го в инфоканала си на Начало, за да избегнете виждането на публикациите му два пъти.", "lists.find_users_to_add": "Намерете потребители за добавяне", "lists.list_members": "Списък членуващи", "lists.list_name": "Име на списък", @@ -524,6 +535,7 @@ "notification.admin.report_statuses_other": "{name} докладва {target}", "notification.admin.sign_up": "{name} се регистрира", "notification.admin.sign_up.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} се регистрираха", + "notification.annual_report.view": "Преглед на #Wrapstodon", "notification.favourite": "{name} направи любима публикацията ви", "notification.favourite.name_and_others_with_link": "{name} и {count, plural, one {# друг} other {# други}} направиха любима ваша публикация", "notification.follow": "{name} ви последва", @@ -559,6 +571,7 @@ "notification_requests.accept": "Приемам", "notification_requests.confirm_accept_multiple.message": "На път сте да приемете {count, plural, one {едно известие за заявка} other {# известия за заявки}}. Наистина ли искате да продължите?", "notification_requests.confirm_accept_multiple.title": "Приемате ли заявките за известие?", + "notification_requests.confirm_dismiss_multiple.message": "На път сте да отхвърлите {count, plural, one {една заявка за известие} other {# заявки за известие}}. Няма да имате лесен достъп до {count, plural, one {това лице} other {тях}} отново. Наистина ли искате да продължите?", "notification_requests.confirm_dismiss_multiple.title": "Отхвърляте ли заявките за известие?", "notification_requests.dismiss": "Отхвърлям", "notification_requests.edit_selection": "Редактиране", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index fc100d7c01..41b5608d0b 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -134,13 +134,16 @@ "column.blocks": "Usuaris blocats", "column.bookmarks": "Marcadors", "column.community": "Línia de temps local", + "column.create_list": "Crea una llista", "column.direct": "Mencions privades", "column.directory": "Navega pels perfils", "column.domain_blocks": "Dominis blocats", + "column.edit_list": "Edita la llista", "column.favourites": "Favorits", "column.firehose": "Tuts en directe", "column.follow_requests": "Peticions de seguir-te", "column.home": "Inici", + "column.list_members": "Gestiona els membres de la llista", "column.lists": "Llistes", "column.mutes": "Usuaris silenciats", "column.notifications": "Notificacions", @@ -458,11 +461,32 @@ "link_preview.author": "Per {name}", "link_preview.more_from_author": "Més de {name}", "link_preview.shares": "{count, plural, one {{counter} publicació} other {{counter} publicacions}}", + "lists.add_member": "Afegeix", + "lists.add_to_list": "Afegeix a la llista", + "lists.add_to_lists": "Afegeix {name} a les llistes", + "lists.create": "Crea", + "lists.create_a_list_to_organize": "Creeu una nova llista per a organitzar la pantalla d'inici", + "lists.create_list": "Crea una llista", "lists.delete": "Elimina la llista", + "lists.done": "Fet", "lists.edit": "Edita la llista", + "lists.exclusive": "Amaga membres a Inici", + "lists.exclusive_hint": "Si algú és a la llista, amagueu-los de la pantalla d'inici, per a no veure'n les publicacions duplicades.", + "lists.find_users_to_add": "Troba usuaris per a afegir", + "lists.list_members": "Membres de la llista", + "lists.list_members_count": "{count, plural, one {# membre} other {# membres}}", + "lists.list_name": "Nom de la llista", + "lists.new_list_name": "Nom de la nova llista", + "lists.no_lists_yet": "Encara no hi ha cap llista.", + "lists.no_members_yet": "Encara no hi ha membres.", + "lists.no_results_found": "No s'han trobat resultats.", + "lists.remove_member": "Elimina", "lists.replies_policy.followed": "Qualsevol usuari que segueixis", "lists.replies_policy.list": "Membres de la llista", "lists.replies_policy.none": "Ningú", + "lists.save": "Desa", + "lists.search_placeholder": "Cerca persones que seguiu", + "lists.show_replies_to": "Inclou respostes de membres de la llista a", "load_pending": "{count, plural, one {# element nou} other {# elements nous}}", "loading_indicator.label": "Es carrega…", "media_gallery.hide": "Amaga", @@ -620,11 +644,11 @@ "onboarding.action.back": "Porta'm enrere", "onboarding.actions.back": "Porta'm enrere", "onboarding.actions.go_to_explore": "Mira què és tendència", - "onboarding.actions.go_to_home": "Ves a la teva línia de temps", + "onboarding.actions.go_to_home": "Aneu a la vostra pantalla d'inici", "onboarding.compose.template": "Hola Mastodon!", "onboarding.follows.empty": "Malauradament, cap resultat pot ser mostrat ara mateix. Pots provar de fer servir la cerca o visitar la pàgina Explora per a trobar gent a qui seguir o provar-ho de nou més tard.", - "onboarding.follows.lead": "La teva línia de temps inici només està a les teves mans. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant de seguir-los!:", - "onboarding.follows.title": "Personalitza la pantalla d'inci", + "onboarding.follows.lead": "La vostra pantalla d'inici és la manera principal d'experimentar Mastodon. Com més gent seguiu, més activa i interessant serà. Per a començar, alguns suggeriments:", + "onboarding.follows.title": "Personalitzeu la pantalla d'inci", "onboarding.profile.discoverable": "Fes el meu perfil descobrible", "onboarding.profile.discoverable_hint": "En acceptar d'ésser descobert a Mastodon els teus missatges poden aparèixer dins les tendències i els resultats de cerques, i el teu perfil es pot suggerir a qui tingui interessos semblants als teus.", "onboarding.profile.display_name": "Nom que es mostrarà", @@ -644,7 +668,7 @@ "onboarding.start.skip": "Vols saltar-te tota la resta?", "onboarding.start.title": "Llestos!", "onboarding.steps.follow_people.body": "Mastodon va de seguir a gent interessant.", - "onboarding.steps.follow_people.title": "Personalitza la pantalla d'inci", + "onboarding.steps.follow_people.title": "Personalitzeu la pantalla d'inici", "onboarding.steps.publish_status.body": "Saluda al món amb text, fotos, vídeos o enquestes {emoji}", "onboarding.steps.publish_status.title": "Fes el teu primer tut", "onboarding.steps.setup_profile.body": "És més fàcil que altres interactuïn amb tu si tens un perfil complet.", @@ -683,7 +707,7 @@ "recommended": "Recomanat", "refresh": "Actualitza", "regeneration_indicator.label": "Es carrega…", - "regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!", + "regeneration_indicator.sublabel": "Es prepara la vostra pantalla d'Inici!", "relative_time.days": "{number}d", "relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}", "relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index b47007522b..6a28617106 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -89,9 +89,9 @@ "announcement.announcement": "Ankündigung", "annual_report.summary.archetype.booster": "Trendjäger*in", "annual_report.summary.archetype.lurker": "Beobachter*in", - "annual_report.summary.archetype.oracle": "Orakel", + "annual_report.summary.archetype.oracle": "Universaltalent", "annual_report.summary.archetype.pollster": "Meinungsforscher*in", - "annual_report.summary.archetype.replier": "Geselliger Schmetterling", + "annual_report.summary.archetype.replier": "Sozialer Schmetterling", "annual_report.summary.followers.followers": "Follower", "annual_report.summary.followers.total": "{count} insgesamt", "annual_report.summary.here_it_is": "Dein Jahresrückblick für {year}:", @@ -113,7 +113,7 @@ "block_modal.show_more": "Mehr anzeigen", "block_modal.they_cant_mention": "Das Profil wird dich nicht erwähnen oder dir folgen können.", "block_modal.they_cant_see_posts": "Deine Beiträge können nicht mehr angesehen werden und du wirst deren Beiträge nicht mehr sehen.", - "block_modal.they_will_know": "Es wird erkennbar sein, dass dieses Profil blockiert wurde.", + "block_modal.they_will_know": "Das Profil wird erkennen können, dass du es blockiert hast.", "block_modal.title": "Profil blockieren?", "block_modal.you_wont_see_mentions": "Du wirst keine Beiträge sehen, die dieses Profil erwähnen.", "boost_modal.combo": "Mit {combo} erscheint dieses Fenster beim nächsten Mal nicht mehr", @@ -255,7 +255,7 @@ "domain_pill.their_server": "Deren digitale Heimat. Hier „leben“ alle Beiträge von diesem Profil.", "domain_pill.their_username": "Deren eindeutigen Identität auf dem betreffenden Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.", "domain_pill.username": "Profilname", - "domain_pill.whats_in_a_handle": "Was ist Teil der Adresse?", + "domain_pill.whats_in_a_handle": "Woraus besteht eine Adresse?", "domain_pill.who_they_are": "Adressen teilen mit, wer jemand ist und wo sich jemand aufhält. Daher kannst du mit Leuten im gesamten Social Web interagieren, wenn es eine durch ist.", "domain_pill.who_you_are": "Deine Adresse teilt mit, wer du bist und wo du dich aufhältst. Daher können andere Leute im gesamten Social Web mit dir interagieren, wenn es eine durch ist.", "domain_pill.your_handle": "Deine Adresse:", @@ -330,9 +330,9 @@ "filter_warning.matches_filter": "Übereinstimmend mit dem Filter „{title}“", "filtered_notifications_banner.pending_requests": "Von {count, plural, =0 {keinem, den} one {einer Person, die} other {# Personen, die}} du möglicherweise kennst", "filtered_notifications_banner.title": "Gefilterte Benachrichtigungen", - "firehose.all": "Alles", + "firehose.all": "Alle Server", "firehose.local": "Dieser Server", - "firehose.remote": "Andere Server", + "firehose.remote": "Externe Server", "follow_request.authorize": "Genehmigen", "follow_request.reject": "Ablehnen", "follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.", @@ -492,7 +492,7 @@ "lists.replies_policy.none": "Niemanden", "lists.save": "Speichern", "lists.search_placeholder": "Nach Profilen suchen, denen du folgst", - "lists.show_replies_to": "Antworten von Listenmitgliedern anzeigen für …", + "lists.show_replies_to": "Antworten von Listenmitgliedern einbeziehen für …", "load_pending": "{count, plural, one {# neuer Beitrag} other {# neue Beiträge}}", "loading_indicator.label": "Wird geladen …", "media_gallery.hide": "Ausblenden", @@ -541,7 +541,7 @@ "notification.admin.report_statuses_other": "{name} meldete {target}", "notification.admin.sign_up": "{name} registrierte sich", "notification.admin.sign_up.name_and_others": "{name} und {count, plural, one {# weiteres Profil} other {# weitere Profile}} registrierten sich", - "notification.annual_report.message": "Dein {year} #Wrapstodon erwartet dich! Lass deine Highlights und unvergesslichen Momente auf Mastodon erneut aufleben!", + "notification.annual_report.message": "Dein #Wrapstodon für {year} erwartet dich! Lass deine Highlights und unvergesslichen Momente auf Mastodon erneut aufleben!", "notification.annual_report.view": "#Wrapstodon ansehen", "notification.favourite": "{name} favorisierte deinen Beitrag", "notification.favourite.name_and_others_with_link": "{name} und {count, plural, one {# weiteres Profil} other {# weitere Profile}} favorisierten deinen Beitrag", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 730c301769..4f4cf136bb 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -128,9 +128,11 @@ "column.blocks": "Blokitaj uzantoj", "column.bookmarks": "Legosignoj", "column.community": "Loka templinio", + "column.create_list": "Krei liston", "column.direct": "Privataj mencioj", "column.directory": "Foliumi la profilojn", "column.domain_blocks": "Blokitaj domajnoj", + "column.edit_list": "Redakti liston", "column.favourites": "Stelumoj", "column.firehose": "Rektaj fluoj", "column.follow_requests": "Petoj de sekvado", @@ -452,11 +454,22 @@ "link_preview.author": "De {name}", "link_preview.more_from_author": "Pli de {name}", "link_preview.shares": "{count, plural, one {{counter} afiŝo} other {{counter} afiŝoj}}", + "lists.add_member": "Aldoni", + "lists.add_to_list": "Aldoni al la listo", + "lists.add_to_lists": "Aldoni {name} al la listo", + "lists.create": "Krei", + "lists.create_list": "Krei liston", "lists.delete": "Forigi la liston", + "lists.done": "Farita", "lists.edit": "Redakti la liston", + "lists.no_lists_yet": "Ankoraŭ ne estas listoj.", + "lists.no_members_yet": "Ankoraŭ neniuj membroj.", + "lists.no_results_found": "Neniuj rezultoj trovitaj.", + "lists.remove_member": "Forigi", "lists.replies_policy.followed": "Iu sekvanta uzanto", "lists.replies_policy.list": "Membroj de la listo", "lists.replies_policy.none": "Neniu", + "lists.save": "Konservi", "load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}", "loading_indicator.label": "Ŝargado…", "media_gallery.hide": "Kaŝi", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 2dea704a72..56cc2b33d3 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -140,13 +140,16 @@ "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea temporal local", + "column.create_list": "Crear una lista", "column.direct": "Menciones privadas", "column.directory": "Explorar perfiles", "column.domain_blocks": "Dominios bloqueados", + "column.edit_list": "Editar lista", "column.favourites": "Favoritos", "column.firehose": "Líneas temporales en vivo", "column.follow_requests": "Solicitudes de seguimiento", "column.home": "Principal", + "column.list_members": "Administrar miembros de la lista", "column.lists": "Listas", "column.mutes": "Usuarios silenciados", "column.notifications": "Notificaciones", @@ -464,11 +467,32 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Más de {name}", "link_preview.shares": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}", + "lists.add_member": "Añadir", + "lists.add_to_list": "Añadir a la lista", + "lists.add_to_lists": "Añadir {name} a las listas", + "lists.create": "Crear", + "lists.create_a_list_to_organize": "Crea una nueva lista para organizar tu página de inicio", + "lists.create_list": "Crear una lista", "lists.delete": "Eliminar lista", + "lists.done": "Hecho", "lists.edit": "Editar lista", + "lists.exclusive": "Ocultar miembros en Inicio", + "lists.exclusive_hint": "Si alguien está en esta lista, escóndelo en tu página de inicio para evitar ver sus publicaciones dos veces.", + "lists.find_users_to_add": "Buscar usuarios para añadir", + "lists.list_members": "Miembros de la lista", + "lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}", + "lists.list_name": "Nombre de la lista", + "lists.new_list_name": "Nombre de la nueva lista", + "lists.no_lists_yet": "Aún no hay listas.", + "lists.no_members_yet": "Aún no hay miembros.", + "lists.no_results_found": "No se encontraron resultados.", + "lists.remove_member": "Eliminar", "lists.replies_policy.followed": "Cualquier cuenta seguida", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Nadie", + "lists.save": "Guardar", + "lists.search_placeholder": "Buscar gente a la que sigues", + "lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a", "load_pending": "{count, plural, one {# elemento nuevo} other {# elementos nuevos}}", "loading_indicator.label": "Cargando…", "media_gallery.hide": "Ocultar", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index d863873418..9a61e0fbc5 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -140,13 +140,16 @@ "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea de tiempo local", + "column.create_list": "Crear una lista", "column.direct": "Menciones privadas", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios ocultados", + "column.edit_list": "Editar lista", "column.favourites": "Favoritos", "column.firehose": "Cronologías", "column.follow_requests": "Solicitudes de seguimiento", "column.home": "Inicio", + "column.list_members": "Administrar miembros de la lista", "column.lists": "Listas", "column.mutes": "Usuarios silenciados", "column.notifications": "Notificaciones", @@ -464,11 +467,32 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Más de {name}", "link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", + "lists.add_member": "Añadir", + "lists.add_to_list": "Añadir a la lista", + "lists.add_to_lists": "Añadir {name} a las listas", + "lists.create": "Crear", + "lists.create_a_list_to_organize": "Crea una nueva lista para organizar tu página de inicio", + "lists.create_list": "Crear una lista", "lists.delete": "Borrar lista", + "lists.done": "Hecho", "lists.edit": "Editar lista", + "lists.exclusive": "Ocultar miembros en Inicio", + "lists.exclusive_hint": "Si alguien está en esta lista, escóndelo en tu página de inicio para evitar ver sus publicaciones dos veces.", + "lists.find_users_to_add": "Buscar usuarios para añadir", + "lists.list_members": "Miembros de la lista", + "lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}", + "lists.list_name": "Nombre de la lista", + "lists.new_list_name": "Nombre de la nueva lista", + "lists.no_lists_yet": "Aún no hay listas.", + "lists.no_members_yet": "Aún no hay miembros.", + "lists.no_results_found": "No se encontraron resultados.", + "lists.remove_member": "Eliminar", "lists.replies_policy.followed": "Cualquier usuario seguido", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Nadie", + "lists.save": "Guardar", + "lists.search_placeholder": "Buscar gente a la que sigues", + "lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a", "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}", "loading_indicator.label": "Cargando…", "media_gallery.hide": "Ocultar", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index bfb16e9fd8..86083afcbf 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -140,13 +140,16 @@ "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Cronología local", + "column.create_list": "Crear una lista", "column.direct": "Menciones privadas", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios bloqueados", + "column.edit_list": "Editar lista", "column.favourites": "Favoritos", "column.firehose": "Cronologías", "column.follow_requests": "Solicitudes de seguimiento", "column.home": "Inicio", + "column.list_members": "Administrar miembros de la lista", "column.lists": "Listas", "column.mutes": "Usuarios silenciados", "column.notifications": "Notificaciones", @@ -401,7 +404,7 @@ "ignore_notifications_modal.not_following_title": "¿Ignorar notificaciones de personas a las que no sigues?", "ignore_notifications_modal.private_mentions_title": "¿Ignorar notificaciones de menciones privadas no solicitadas?", "interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta, y guardala para más adelante.", - "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.", + "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu página de inicio.", "interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.", "interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.", "interaction_modal.description.vote": "Con una cuenta en Mastodon, puedes votar en esta encuesta.", @@ -464,11 +467,32 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Más de {name}", "link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", + "lists.add_member": "Añadir", + "lists.add_to_list": "Añadir a la lista", + "lists.add_to_lists": "Añadir {name} a las listas", + "lists.create": "Crear", + "lists.create_a_list_to_organize": "Crea una nueva lista para organizar tu página de inicio", + "lists.create_list": "Crear una lista", "lists.delete": "Borrar lista", + "lists.done": "Hecho", "lists.edit": "Editar lista", + "lists.exclusive": "Ocultar miembros en Inicio", + "lists.exclusive_hint": "Si alguien está en esta lista, escóndelo en tu página de inicio para evitar ver sus publicaciones dos veces.", + "lists.find_users_to_add": "Buscar usuarios para añadir", + "lists.list_members": "Miembros de la lista", + "lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}", + "lists.list_name": "Nombre de la lista", + "lists.new_list_name": "Nombre de la nueva lista", + "lists.no_lists_yet": "Aún no hay listas.", + "lists.no_members_yet": "Aún no hay miembros.", + "lists.no_results_found": "No se encontraron resultados.", + "lists.remove_member": "Eliminar", "lists.replies_policy.followed": "Cualquier usuario seguido", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Nadie", + "lists.save": "Guardar", + "lists.search_placeholder": "Buscar gente a la que sigues", + "lists.show_replies_to": "Incluir las respuestas de los miembros de la lista a", "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}", "loading_indicator.label": "Cargando…", "media_gallery.hide": "Ocultar", @@ -628,11 +652,11 @@ "onboarding.action.back": "Llévame atrás", "onboarding.actions.back": "Llévame atrás", "onboarding.actions.go_to_explore": "Llévame a tendencias", - "onboarding.actions.go_to_home": "Ir a mi inicio", + "onboarding.actions.go_to_home": "Ir a mi página de inicio", "onboarding.compose.template": "¡Hola #Mastodon!", "onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Puedes intentar usar la búsqueda o navegar por la página de exploración para encontrar personas a las que seguir, o inténtalo de nuevo más tarde.", - "onboarding.follows.lead": "Tu línea de inicio es la forma principal de experimentar Mastodon. Cuanta más personas sigas, más activa e interesante será. Para empezar, aquí hay algunas sugerencias:", - "onboarding.follows.title": "Personaliza tu línea de inicio", + "onboarding.follows.lead": "Tu página de inicio es la forma principal de experimentar Mastodon. Cuanta más personas sigas, más activa e interesante será. Para empezar, aquí hay algunas sugerencias:", + "onboarding.follows.title": "Personaliza tu página de inicio", "onboarding.profile.discoverable": "Hacer que mi perfil aparezca en búsquedas", "onboarding.profile.discoverable_hint": "Cuando permites que tu perfil aparezca en búsquedas en Mastodon, tus publicaciones podrán aparecer en los resultados de búsqueda y en tendencias, y tu perfil podrá recomendarse a gente con intereses similares a los tuyos.", "onboarding.profile.display_name": "Nombre para mostrar", @@ -652,7 +676,7 @@ "onboarding.start.skip": "¿No necesitas ayuda para empezar?", "onboarding.start.title": "¡Lo has logrado!", "onboarding.steps.follow_people.body": "Seguir personas interesante es de lo que trata Mastodon.", - "onboarding.steps.follow_people.title": "Personaliza tu línea de inicio", + "onboarding.steps.follow_people.title": "Personaliza tu página de inicio", "onboarding.steps.publish_status.body": "Di hola al mundo con texto, fotos, vídeos o encuestas {emoji}", "onboarding.steps.publish_status.title": "Escribe tu primera publicación", "onboarding.steps.setup_profile.body": "Aumenta tus interacciones con un perfil completo.", @@ -691,7 +715,7 @@ "recommended": "Recomendado", "refresh": "Actualizar", "regeneration_indicator.label": "Cargando…", - "regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!", + "regeneration_indicator.sublabel": "¡Tu página de inicio se está preparando!", "relative_time.days": "{number} d", "relative_time.full.days": "hace {number, plural, one {# día} other {# días}}", "relative_time.full.hours": "hace {number, plural, one {# hora} other {# horas}}", @@ -745,7 +769,7 @@ "report.thanks.title": "¿No quieres esto?", "report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.", "report.unfollow": "Dejar de seguir a @{name}", - "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu muro de inicio, deja de seguirla.", + "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para dejar de ver sus publicaciones en tu página de inicio, deja de seguirla.", "report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)", "report_notification.categories.legal": "Legal", "report_notification.categories.legal_sentence": "contenido ilegal", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 608c1321b7..fdab913550 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -87,6 +87,7 @@ "alert.unexpected.title": "ای وای!", "alt_text_badge.title": "متن جایگزین", "announcement.announcement": "اعلامیه", + "annual_report.summary.followers.followers": "دنبال کننده", "attachments_list.unprocessed": "(پردازش نشده)", "audio.hide": "نهفتن صدا", "block_modal.remote_users_caveat": "ما از کارساز {domain} خواهیم خواست که به تصمیم شما احترام بگذارد. با این حال، تضمینی برای رعایت آن وجود ندارد زیرا برخی کارسازها ممکن است بلوک‌ها را به‌طور متفاوتی مدیریت کنند. فرسته‌های عمومی ممکن است همچنان برای کاربران که وارد نشده قابل مشاهده باشند.", @@ -438,9 +439,11 @@ "link_preview.shares": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}", "lists.delete": "حذف سیاهه", "lists.edit": "ویرایش سیاهه", + "lists.remove_member": "حذف", "lists.replies_policy.followed": "هر کاربر پی‌گرفته", "lists.replies_policy.list": "اعضای سیاهه", "lists.replies_policy.none": "هیچ کدام", + "lists.save": "ذخیره", "load_pending": "{count, plural, one {# مورد جدید} other {# مورد جدید}}", "loading_indicator.label": "در حال بارگذاری…", "media_gallery.hide": "نهفتن", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index bc56152f37..9a15dbc519 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -140,13 +140,16 @@ "column.blocks": "Bannaðir brúkarar", "column.bookmarks": "Bókamerki", "column.community": "Lokal tíðarlinja", + "column.create_list": "Ger lista", "column.direct": "Privatar umrøður", "column.directory": "Blaða gjøgnum vangar", "column.domain_blocks": "Bannað økisnøvn", + "column.edit_list": "Broyt lista", "column.favourites": "Dámdir postar", "column.firehose": "Beinleiðis rásir", "column.follow_requests": "Umbønir at fylgja", "column.home": "Heim", + "column.list_members": "Rætta limalista", "column.lists": "Listar", "column.mutes": "Sløktir brúkarar", "column.notifications": "Fráboðanir", @@ -464,11 +467,32 @@ "link_preview.author": "Av {name}", "link_preview.more_from_author": "Meira frá {name}", "link_preview.shares": "{count, plural, one {{counter} postur} other {{counter} postar}}", + "lists.add_member": "Legg afturat", + "lists.add_to_list": "Legg afturat lista", + "lists.add_to_lists": "Legg {name} afturat lista", + "lists.create": "Ger", + "lists.create_a_list_to_organize": "Ger ein nýggjan lista til heimarásina hjá tær", + "lists.create_list": "Ger lista", "lists.delete": "Strika lista", + "lists.done": "Liðugt", "lists.edit": "Broyt lista", + "lists.exclusive": "Fjal limir á heimarás", + "lists.exclusive_hint": "Um onkur er á hesum listanum, so skulu tey fjalast á heimarásini, so tú sleppir undan at síggja postar teirra tvær ferðir.", + "lists.find_users_to_add": "Finn brúkarar at leggja afturat", + "lists.list_members": "Lista limir", + "lists.list_members_count": "{count, plural, one {# limur} other {# limir}}", + "lists.list_name": "Listanavn", + "lists.new_list_name": "Nýtt listanavn", + "lists.no_lists_yet": "Ongir listar enn.", + "lists.no_members_yet": "Eingir limir enn.", + "lists.no_results_found": "Eingi úrslit funnin.", + "lists.remove_member": "Burturbein", "lists.replies_policy.followed": "Øllum fylgdum brúkarum", "lists.replies_policy.list": "Listalimunum", "lists.replies_policy.none": "Eingin", + "lists.save": "Goym", + "lists.search_placeholder": "Leita eftir fólki, sum tú fylgir", + "lists.show_replies_to": "Írokna svar frá limum á listanum til", "load_pending": "{count, plural, one {# nýtt evni} other {# nýggj evni}}", "loading_indicator.label": "Innlesur…", "media_gallery.hide": "Fjal", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index a1134e0de3..f241a44217 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -87,9 +87,21 @@ "alert.unexpected.title": "Oups!", "alt_text_badge.title": "Texte Alt", "announcement.announcement": "Annonce", + "annual_report.summary.archetype.lurker": "Le faucheur", "annual_report.summary.archetype.oracle": "L’oracle", + "annual_report.summary.followers.followers": "abonné·e·s", + "annual_report.summary.followers.total": "{count} au total", "annual_report.summary.here_it_is": "Voici votre récap de {year} :", + "annual_report.summary.highlighted_post.by_favourites": "post le plus aimé", + "annual_report.summary.highlighted_post.by_reblogs": "post le plus boosté", + "annual_report.summary.highlighted_post.by_replies": "post avec le plus de réponses", "annual_report.summary.most_used_app.most_used_app": "appli la plus utilisée", + "annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus utilisé", + "annual_report.summary.most_used_hashtag.none": "Aucun", + "annual_report.summary.new_posts.new_posts": "nouveaux posts", + "annual_report.summary.percentile.text": "Cela vous place dans le topdes utilisateurs de Mastodon.", + "annual_report.summary.percentile.we_wont_tell_bernie": "Nous ne le dirons pas à Bernie.", + "annual_report.summary.thanks": "Merci de faire partie de Mastodon!", "attachments_list.unprocessed": "(non traité)", "audio.hide": "Masquer l'audio", "block_modal.remote_users_caveat": "Nous allons demander au serveur {domain} de respecter votre décision. Cependant, ce respect n'est pas garanti, car certains serveurs peuvent gérer différemment les blocages. Les messages publics peuvent rester visibles par les utilisateur·rice·s non connecté·e·s.", @@ -124,13 +136,16 @@ "column.blocks": "Comptes bloqués", "column.bookmarks": "Signets", "column.community": "Fil local", + "column.create_list": "Créer une liste", "column.direct": "Mention privée", "column.directory": "Parcourir les profils", "column.domain_blocks": "Domaines bloqués", + "column.edit_list": "Modifier la liste", "column.favourites": "Favoris", "column.firehose": "Flux en direct", "column.follow_requests": "Demande d'abonnement", "column.home": "Accueil", + "column.list_members": "Gérer les membres de la liste", "column.lists": "Listes", "column.mutes": "Comptes masqués", "column.notifications": "Notifications", @@ -200,6 +215,7 @@ "confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?", "content_warning.hide": "Masquer le message", "content_warning.show": "Afficher quand même", + "content_warning.show_more": "Déplier", "conversation.delete": "Supprimer cette conversation", "conversation.mark_as_read": "Marquer comme lu", "conversation.open": "Afficher cette conversation", @@ -307,6 +323,7 @@ "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle", "filter_modal.select_filter.title": "Filtrer cette publication", "filter_modal.title.status": "Filtrer une publication", + "filter_warning.matches_filter": "Correspond au filtre « {title} »", "filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {d’aucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître", "filtered_notifications_banner.title": "Notifications filtrées", "firehose.all": "Tout", @@ -386,6 +403,7 @@ "interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs publications dans votre fil d'accueil.", "interaction_modal.description.reblog": "Avec un compte Mastodon, vous pouvez booster cette publication pour la partager avec vos propres abonné·e·s.", "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à cette publication.", + "interaction_modal.description.vote": "Avec un compte sur Mastodon, vous pouvez répondre à cette question.", "interaction_modal.login.action": "Aller à mon serveur", "interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social", "interaction_modal.no_account_yet": "Pas sur Mastodon ?", @@ -397,6 +415,7 @@ "interaction_modal.title.follow": "Suivre {name}", "interaction_modal.title.reblog": "Booster la publication de {name}", "interaction_modal.title.reply": "Répondre à la publication de {name}", + "interaction_modal.title.vote": "Voter pour le sondage de {name}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -444,11 +463,30 @@ "link_preview.author": "Par {name}", "link_preview.more_from_author": "Plus via {name}", "link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}", + "lists.add_member": "Ajouter", + "lists.add_to_list": "Ajouter à la liste", + "lists.add_to_lists": "Ajouter {name} aux listes", + "lists.create": "Créer", + "lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre Page d'accueil", + "lists.create_list": "Créer une liste", "lists.delete": "Supprimer la liste", + "lists.done": "Terminé", "lists.edit": "Modifier la liste", + "lists.exclusive": "Cacher les membres de la page d'accueil", + "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.", + "lists.find_users_to_add": "Trouver des utilisateurs à ajouter", + "lists.list_members": "Lister les membres", + "lists.list_name": "Nom de la liste", + "lists.new_list_name": "Nom de la nouvelle liste", + "lists.no_lists_yet": "Aucune liste pour l'instant.", + "lists.no_members_yet": "Aucun membre pour l'instant.", + "lists.no_results_found": "Aucun résultat.", + "lists.remove_member": "Supprimer", "lists.replies_policy.followed": "N'importe quel compte suivi", "lists.replies_policy.list": "Membres de la liste", "lists.replies_policy.none": "Personne", + "lists.save": "Enregistrer", + "lists.search_placeholder": "Rechercher parmi les gens que vous suivez", "load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}", "loading_indicator.label": "Chargement…", "media_gallery.hide": "Masquer", @@ -497,6 +535,7 @@ "notification.admin.report_statuses_other": "{name} a signalé {target}", "notification.admin.sign_up": "{name} s'est inscrit·e", "notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit", + "notification.annual_report.view": "Voir #Wrapstodon", "notification.favourite": "{name} a ajouté votre publication à ses favoris", "notification.favourite.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont mis votre message en favori", "notification.follow": "{name} vous suit", @@ -848,6 +887,7 @@ "upload_form.description": "Décrire pour les malvoyants", "upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.", "upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.", + "upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.", "upload_form.drag_and_drop.on_drag_over": "La pièce jointe du média {item} a été déplacée.", "upload_form.edit": "Modifier", "upload_form.thumbnail": "Changer la vignette", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 8597152f00..ac2d25ea3e 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -87,9 +87,21 @@ "alert.unexpected.title": "Oups !", "alt_text_badge.title": "Texte Alt", "announcement.announcement": "Annonce", + "annual_report.summary.archetype.lurker": "Le faucheur", "annual_report.summary.archetype.oracle": "L’oracle", + "annual_report.summary.followers.followers": "abonné·e·s", + "annual_report.summary.followers.total": "{count} au total", "annual_report.summary.here_it_is": "Voici votre récap de {year} :", + "annual_report.summary.highlighted_post.by_favourites": "post le plus aimé", + "annual_report.summary.highlighted_post.by_reblogs": "post le plus boosté", + "annual_report.summary.highlighted_post.by_replies": "post avec le plus de réponses", "annual_report.summary.most_used_app.most_used_app": "appli la plus utilisée", + "annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus utilisé", + "annual_report.summary.most_used_hashtag.none": "Aucun", + "annual_report.summary.new_posts.new_posts": "nouveaux posts", + "annual_report.summary.percentile.text": "Cela vous place dans le topdes utilisateurs de Mastodon.", + "annual_report.summary.percentile.we_wont_tell_bernie": "Nous ne le dirons pas à Bernie.", + "annual_report.summary.thanks": "Merci de faire partie de Mastodon!", "attachments_list.unprocessed": "(non traité)", "audio.hide": "Masquer l'audio", "block_modal.remote_users_caveat": "Nous allons demander au serveur {domain} de respecter votre décision. Cependant, ce respect n'est pas garanti, car certains serveurs peuvent gérer différemment les blocages. Les messages publics peuvent rester visibles par les utilisateur·rice·s non connecté·e·s.", @@ -124,13 +136,16 @@ "column.blocks": "Utilisateurs bloqués", "column.bookmarks": "Marque-pages", "column.community": "Fil public local", + "column.create_list": "Créer une liste", "column.direct": "Mentions privées", "column.directory": "Parcourir les profils", "column.domain_blocks": "Domaines bloqués", + "column.edit_list": "Modifier la liste", "column.favourites": "Favoris", "column.firehose": "Flux en direct", "column.follow_requests": "Demandes d'abonnement", "column.home": "Accueil", + "column.list_members": "Gérer les membres de la liste", "column.lists": "Listes", "column.mutes": "Comptes masqués", "column.notifications": "Notifications", @@ -200,6 +215,7 @@ "confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?", "content_warning.hide": "Masquer le message", "content_warning.show": "Afficher quand même", + "content_warning.show_more": "Déplier", "conversation.delete": "Supprimer la conversation", "conversation.mark_as_read": "Marquer comme lu", "conversation.open": "Afficher la conversation", @@ -307,6 +323,7 @@ "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou créez-en une nouvelle", "filter_modal.select_filter.title": "Filtrer ce message", "filter_modal.title.status": "Filtrer un message", + "filter_warning.matches_filter": "Correspond au filtre « {title} »", "filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {d’aucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître", "filtered_notifications_banner.title": "Notifications filtrées", "firehose.all": "Tout", @@ -386,6 +403,7 @@ "interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.", "interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez partager ce message pour le faire découvrir à vos propres abonné⋅e⋅s.", "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.", + "interaction_modal.description.vote": "Avec un compte sur Mastodon, vous pouvez répondre à cette question.", "interaction_modal.login.action": "Aller à mon serveur", "interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social", "interaction_modal.no_account_yet": "Pas sur Mastodon ?", @@ -397,6 +415,7 @@ "interaction_modal.title.follow": "Suivre {name}", "interaction_modal.title.reblog": "Partager le message de {name}", "interaction_modal.title.reply": "Répondre au message de {name}", + "interaction_modal.title.vote": "Voter pour le sondage de {name}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -444,11 +463,30 @@ "link_preview.author": "Par {name}", "link_preview.more_from_author": "Plus via {name}", "link_preview.shares": "{count, plural, one {{counter} message} other {{counter} messages}}", + "lists.add_member": "Ajouter", + "lists.add_to_list": "Ajouter à la liste", + "lists.add_to_lists": "Ajouter {name} aux listes", + "lists.create": "Créer", + "lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre Page d'accueil", + "lists.create_list": "Créer une liste", "lists.delete": "Supprimer la liste", + "lists.done": "Terminé", "lists.edit": "Modifier la liste", + "lists.exclusive": "Cacher les membres de la page d'accueil", + "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.", + "lists.find_users_to_add": "Trouver des utilisateurs à ajouter", + "lists.list_members": "Lister les membres", + "lists.list_name": "Nom de la liste", + "lists.new_list_name": "Nom de la nouvelle liste", + "lists.no_lists_yet": "Aucune liste pour l'instant.", + "lists.no_members_yet": "Aucun membre pour l'instant.", + "lists.no_results_found": "Aucun résultat.", + "lists.remove_member": "Supprimer", "lists.replies_policy.followed": "N'importe quel compte suivi", "lists.replies_policy.list": "Membres de la liste", "lists.replies_policy.none": "Personne", + "lists.save": "Enregistrer", + "lists.search_placeholder": "Rechercher parmi les gens que vous suivez", "load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}", "loading_indicator.label": "Chargement…", "media_gallery.hide": "Masquer", @@ -497,6 +535,7 @@ "notification.admin.report_statuses_other": "{name} a signalé {target}", "notification.admin.sign_up": "{name} s'est inscrit", "notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit", + "notification.annual_report.view": "Voir #Wrapstodon", "notification.favourite": "{name} a ajouté votre message à ses favoris", "notification.favourite.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont mis votre message en favori", "notification.follow": "{name} vous suit", @@ -848,6 +887,7 @@ "upload_form.description": "Décrire pour les malvoyant·e·s", "upload_form.drag_and_drop.instructions": "Pour choisir un média joint, appuyez sur la touche espace ou entrée. Tout en faisant glisser, utilisez les touches fléchées pour déplacer le fichier média dans une direction donnée. Appuyez à nouveau sur la touche espace ou entrée pour déposer le fichier média dans sa nouvelle position, ou appuyez sur la touche Echap pour annuler.", "upload_form.drag_and_drop.on_drag_cancel": "Le glissement a été annulé. La pièce jointe {item} n'a pas été ajoutée.", + "upload_form.drag_and_drop.on_drag_end": "La pièce jointe du média {item} a été déplacée.", "upload_form.drag_and_drop.on_drag_over": "La pièce jointe du média {item} a été déplacée.", "upload_form.edit": "Modifier", "upload_form.thumbnail": "Changer la vignette", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index e77aaade6b..d4283ed18b 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -104,6 +104,7 @@ "annual_report.summary.most_used_hashtag.none": "Nada", "annual_report.summary.new_posts.new_posts": "novas publicacións", "annual_report.summary.percentile.text": "Sitúante no top das usuarias de Mastodon.", + "annual_report.summary.percentile.we_wont_tell_bernie": "Moito tes que contarnos!", "annual_report.summary.thanks": "Grazas por ser parte de Mastodon!", "attachments_list.unprocessed": "(sen procesar)", "audio.hide": "Agochar audio", @@ -139,13 +140,16 @@ "column.blocks": "Usuarias bloqueadas", "column.bookmarks": "Marcadores", "column.community": "Cronoloxía local", + "column.create_list": "Crear lista", "column.direct": "Mencións privadas", "column.directory": "Procurar perfís", "column.domain_blocks": "Dominios agochados", + "column.edit_list": "Editar lista", "column.favourites": "Favoritas", "column.firehose": "O que acontece", "column.follow_requests": "Peticións de seguimento", "column.home": "Inicio", + "column.list_members": "Xestionar membros da lista", "column.lists": "Listaxes", "column.mutes": "Usuarias acaladas", "column.notifications": "Notificacións", @@ -463,11 +467,32 @@ "link_preview.author": "Por {name}", "link_preview.more_from_author": "Máis de {name}", "link_preview.shares": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}", + "lists.add_member": "Engadir", + "lists.add_to_list": "Engadir á lista", + "lists.add_to_lists": "Engadir {name} ás listas", + "lists.create": "Crear", + "lists.create_a_list_to_organize": "Crear unha nova lista para organizar o teu Inicio", + "lists.create_list": "Crear lista", "lists.delete": "Eliminar listaxe", + "lists.done": "Feito", "lists.edit": "Editar listaxe", + "lists.exclusive": "Ocultar membros no Inicio", + "lists.exclusive_hint": "Se alguén está nesta lista non aparerá na cronoloxía de Inicio para evitar duplicidades das publicacións.", + "lists.find_users_to_add": "Buscar persoas que engadir", + "lists.list_members": "Membros da lista", + "lists.list_members_count": "{count, plural, one {# membro} other {# membros}}", + "lists.list_name": "Nome da lista", + "lists.new_list_name": "Novo nome da lista", + "lists.no_lists_yet": "Aínda non hai listas.", + "lists.no_members_yet": "Aínda non hai membros.", + "lists.no_results_found": "Non se atoparon resultados.", + "lists.remove_member": "Retirar", "lists.replies_policy.followed": "Calquera usuaria que siga", "lists.replies_policy.list": "Membros da lista", "lists.replies_policy.none": "Ninguén", + "lists.save": "Gardar", + "lists.search_placeholder": "Buscar persoas que segues", + "lists.show_replies_to": "Incluír respostas dos membros das listas a", "load_pending": "{count, plural, one {# novo elemento} other {# novos elementos}}", "loading_indicator.label": "Estase a cargar…", "media_gallery.hide": "Agochar", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 9a76a21e93..c061b58840 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -140,13 +140,16 @@ "column.blocks": "Letiltott felhasználók", "column.bookmarks": "Könyvjelzők", "column.community": "Helyi idővonal", + "column.create_list": "Lista létrehozása", "column.direct": "Személyes említések", "column.directory": "Profilok böngészése", "column.domain_blocks": "Letiltott domainek", + "column.edit_list": "Lista módosítása", "column.favourites": "Kedvencek", "column.firehose": "Hírfolyamok", "column.follow_requests": "Követési kérések", "column.home": "Kezdőlap", + "column.list_members": "Listatagok kezelése", "column.lists": "Listák", "column.mutes": "Némított felhasználók", "column.notifications": "Értesítések", @@ -464,11 +467,32 @@ "link_preview.author": "{name} szerint", "link_preview.more_from_author": "Több tőle: {name}", "link_preview.shares": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}", + "lists.add_member": "Hozzáadás", + "lists.add_to_list": "Hozzáadás a listához", + "lists.add_to_lists": "{name} hozzáadása a listához", + "lists.create": "Létrehozás", + "lists.create_a_list_to_organize": "Új lista létrehozása a kezdőlapod szervezéséhez", + "lists.create_list": "Lista létrehozása", "lists.delete": "Lista törlése", + "lists.done": "Kész", "lists.edit": "Lista szerkesztése", + "lists.exclusive": "Tagok elrejtése a kezdőlapon", + "lists.exclusive_hint": "Ha valaki szerepel ezen a listán, el lesz rejtve a kezdőlapod hírfolyamán, hogy ne lásd kétszer a bejegyzéseit.", + "lists.find_users_to_add": "Hozzáadandó felhasználók keresése", + "lists.list_members": "Tagok listázása", + "lists.list_members_count": "{count, plural, one {# tag} other {# tag}}", + "lists.list_name": "Lista neve", + "lists.new_list_name": "Új lista neve", + "lists.no_lists_yet": "Nincsenek még listák.", + "lists.no_members_yet": "Nincsenek még tagok.", + "lists.no_results_found": "Nincs találat.", + "lists.remove_member": "Eltávolítás", "lists.replies_policy.followed": "Bármely követett felhasználó", "lists.replies_policy.list": "A lista tagjai", "lists.replies_policy.none": "Senki", + "lists.save": "Mentés", + "lists.search_placeholder": "Keresés a követett személyek között", + "lists.show_replies_to": "Listatagok válaszainak hozzávétele", "load_pending": "{count, plural, one {# új elem} other {# új elem}}", "loading_indicator.label": "Betöltés…", "media_gallery.hide": "Elrejtés", @@ -628,7 +652,7 @@ "onboarding.action.back": "Vissza", "onboarding.actions.back": "Vissza", "onboarding.actions.go_to_explore": "Felkapottak megtekintése", - "onboarding.actions.go_to_home": "Ugrás a saját hírfolyamra", + "onboarding.actions.go_to_home": "Ugrás a kezdőlapod hírfolyamára", "onboarding.compose.template": "Üdvözlet, #Mastodon!", "onboarding.follows.empty": "Sajnos jelenleg nem jeleníthető meg eredmény. Kipróbálhatod a keresést vagy böngészheted a felfedező oldalon a követni kívánt személyeket, vagy próbáld meg később.", "onboarding.follows.lead": "A kezdőlapod a Mastodon használatának elsődleges módja. Minél több embert követsz, annál aktívabbak és érdekesebbek lesznek a dolgok. Az induláshoz itt van néhány javaslat:", @@ -691,7 +715,7 @@ "recommended": "Ajánlott", "refresh": "Frissítés", "regeneration_indicator.label": "Betöltés…", - "regeneration_indicator.sublabel": "A saját idővonalad épp készül!", + "regeneration_indicator.sublabel": "A kezdőlapod hírfolyama épp készül!", "relative_time.days": "{number}n", "relative_time.full.days": "{number, plural, one {# napja} other {# napja}}", "relative_time.full.hours": "{number, plural, one {# órája} other {# órája}}", @@ -745,7 +769,7 @@ "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", - "report.unfollow_explanation": "Követed ezt a fiókot. Hogy ne lásd a bejegyzéseit a saját idővonaladon, szüntesd meg a követését.", + "report.unfollow_explanation": "Követed ezt a fiókot. Hogy ne lásd a bejegyzéseit a kezdőlapi hírfolyamban, szüntesd meg a követését.", "report_notification.attached_statuses": "{count} bejegyzés mellékelve", "report_notification.categories.legal": "Jogi", "report_notification.categories.legal_sentence": "illegális tartalom", @@ -849,7 +873,7 @@ "subscribed_languages.lead": "A változtatás után csak a kiválasztott nyelvű bejegyzések fognak megjelenni a kezdőlapon és az idővonalakon. Ha egy sincs kiválasztva, akkor minden nyelven megjelennek a bejegyzések.", "subscribed_languages.save": "Változások mentése", "subscribed_languages.target": "Feliratkozott nyelvek módosítása {target} esetében", - "tabs_bar.home": "Kezdőoldal", + "tabs_bar.home": "Kezdőlap", "tabs_bar.notifications": "Értesítések", "time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra", "time_remaining.hours": "{number, plural, one {# óra} other {# óra}} van hátra", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index d947b59eae..ff5526a71f 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -87,8 +87,11 @@ "alert.unexpected.title": "Oops!", "alt_text_badge.title": "Testo alternativo", "announcement.announcement": "Annuncio", + "annual_report.summary.archetype.booster": "Cacciatore/trice di tendenze", + "annual_report.summary.archetype.lurker": "L'osservatore/trice", "annual_report.summary.archetype.oracle": "L'oracolo", "annual_report.summary.archetype.pollster": "Sondaggista", + "annual_report.summary.archetype.replier": "Utente socievole", "annual_report.summary.followers.followers": "seguaci", "annual_report.summary.followers.total": "{count} in totale", "annual_report.summary.here_it_is": "Ecco il tuo {year} in sintesi:", @@ -137,13 +140,16 @@ "column.blocks": "Utenti bloccati", "column.bookmarks": "Segnalibri", "column.community": "Cronologia locale", + "column.create_list": "Crea lista", "column.direct": "Menzioni private", "column.directory": "Sfoglia profili", "column.domain_blocks": "Domini bloccati", + "column.edit_list": "Modifica lista", "column.favourites": "Preferiti", "column.firehose": "Feed dal vivo", "column.follow_requests": "Richieste di seguirti", "column.home": "Home", + "column.list_members": "Gestisci i membri della lista", "column.lists": "Liste", "column.mutes": "Utenti silenziati", "column.notifications": "Notifiche", @@ -461,11 +467,32 @@ "link_preview.author": "Di {name}", "link_preview.more_from_author": "Altro da {name}", "link_preview.shares": "{count, plural, one {{counter} post} other {{counter} post}}", + "lists.add_member": "Aggiungi", + "lists.add_to_list": "Aggiungi alla lista", + "lists.add_to_lists": "Aggiungi {name} alle liste", + "lists.create": "Crea", + "lists.create_a_list_to_organize": "Crea una nuova lista per organizzare il tuo feed Home", + "lists.create_list": "Crea lista", "lists.delete": "Elimina elenco", + "lists.done": "Fatto", "lists.edit": "Modifica elenco", + "lists.exclusive": "Nascondi i membri in Home", + "lists.exclusive_hint": "Se qualcuno è presente in questa lista, nascondilo nel tuo feed Home per evitare di vedere i suoi post due volte.", + "lists.find_users_to_add": "Trova utenti da aggiungere", + "lists.list_members": "Membri della lista", + "lists.list_members_count": "{count, plural, one {# membro} other {# membri}}", + "lists.list_name": "Nome della lista", + "lists.new_list_name": "Nuovo nome della lista", + "lists.no_lists_yet": "Non ci sono ancora liste.", + "lists.no_members_yet": "Non ci sono ancora membri.", + "lists.no_results_found": "Nessun risultato trovato.", + "lists.remove_member": "Rimuovi", "lists.replies_policy.followed": "Qualsiasi utente seguito", "lists.replies_policy.list": "Membri dell'elenco", "lists.replies_policy.none": "Nessuno", + "lists.save": "Salva", + "lists.search_placeholder": "Cerca le persone che segui", + "lists.show_replies_to": "Includi le risposte dei membri della lista a", "load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}", "loading_indicator.label": "Caricamento…", "media_gallery.hide": "Nascondi", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 86226f4cde..0557951a7f 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -4,6 +4,7 @@ "about.domain_blocks.silenced.title": "ਸੀਮਿਤ", "about.domain_blocks.suspended.title": "ਮੁਅੱਤਲ ਕੀਤੀ", "about.rules": "ਸਰਵਰ ਨਿਯਮ", + "account.account_note_header": "ਨਿੱਜੀ ਨੋਟ", "account.add_or_remove_from_list": "ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ ਜਾਂ ਹਟਾਓ", "account.badges.bot": "ਆਟੋਮੇਟ ਕੀਤਾ", "account.badges.group": "ਗਰੁੱਪ", @@ -27,7 +28,9 @@ "account.following": "ਫ਼ਾਲੋ ਕੀਤਾ", "account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।", "account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ", + "account.joined_short": "ਜੁਆਇਨ ਕੀਤਾ", "account.media": "ਮੀਡੀਆ", + "account.mention": "@{name} ਦਾ ਜ਼ਿਕਰ", "account.mute": "{name} ਨੂੰ ਮੌਨ ਕਰੋ", "account.mute_notifications_short": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਮੌਨ ਕਰੋ", "account.mute_short": "ਮੌਨ ਕਰੋ", @@ -44,16 +47,32 @@ "account.unblock": "@{name} ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਓ", "account.unblock_domain": "{domain} ਡੋਮੇਨ ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਓ", "account.unblock_short": "ਪਾਬੰਦੀ ਹਟਾਓ", + "account.unendorse": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਫ਼ੀਚਰ ਨਾ ਕਰੋ", "account.unfollow": "ਅਣ-ਫ਼ਾਲੋ", + "account.unmute": "@{name} ਲਈ ਮੌਨ ਹਟਾਓ", + "account.unmute_notifications_short": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਅਣ-ਮੌਨ ਕਰੋ", "account.unmute_short": "ਮੌਨ-ਰਹਿਤ ਕਰੋ", "account_note.placeholder": "Click to add a note", "admin.dashboard.retention.average": "ਔਸਤ", "admin.dashboard.retention.cohort_size": "ਨਵੇਂ ਵਰਤੋਂਕਾਰ", "alert.unexpected.title": "ਓਹੋ!", + "alt_text_badge.title": "ਬਦਲੀ ਲਿਖਤ", "announcement.announcement": "ਹੋਕਾ", + "annual_report.summary.followers.followers": "ਫ਼ਾਲੋਅਰ", + "annual_report.summary.followers.total": "{count} ਕੁੱਲ", + "annual_report.summary.highlighted_post.by_favourites": "ਸਭ ਤੋਂ ਵੱਧ ਪਸੰਦ ਕੀਤੀ ਪੋਸਟ", + "annual_report.summary.highlighted_post.by_reblogs": "ਸਭ ਤੋਂ ਵੱਧ ਬੂਸਟ ਕੀਤੀ ਪੋਸਟ", + "annual_report.summary.highlighted_post.by_replies": "ਸਭ ਤੋਂ ਵੱਧ ਜਵਾਬ ਦਿੱਤੀ ਗਈ ਪੋਸਟ", + "annual_report.summary.highlighted_post.possessive": "{name}", + "annual_report.summary.most_used_app.most_used_app": "ਸਭ ਤੋਂ ਵੱਧ ਵਰਤੀ ਐਪ", + "annual_report.summary.most_used_hashtag.none": "ਕੋਈ ਨਹੀਂ", + "annual_report.summary.new_posts.new_posts": "ਨਵੀਆਂ ਪੋਸਟਾਂ", + "annual_report.summary.thanks": "Mastodon ਦਾ ਹਿੱਸਾ ਬਣਨ ਵਾਸਤੇ ਧੰਨਵਾਦ ਹੈ!", + "audio.hide": "ਆਡੀਓ ਨੂੰ ਲੁਕਾਓ", "block_modal.show_less": "ਘੱਟ ਦਿਖਾਓ", "block_modal.show_more": "ਵੱਧ ਦਿਖਾਓ", "block_modal.title": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਹੈ?", + "boost_modal.reblog": "ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰਨਾ ਹੈ?", "bundle_column_error.error.title": "ਓਹ ਹੋ!", "bundle_column_error.network.title": "ਨੈੱਟਵਰਕ ਦੀ ਸਮੱਸਿਆ", "bundle_column_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ", @@ -62,18 +81,29 @@ "bundle_modal_error.close": "ਬੰਦ ਕਰੋ", "bundle_modal_error.message": "ਭਾਗ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਕੁਝ ਗਲਤ ਵਾਪਰਿਆ ਹੈ।", "bundle_modal_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ", + "closed_registrations_modal.title": "Mastodon ਲਈ ਸਾਈਨ ਅੱਪ ਕਰੋ", "column.about": "ਸਾਡੇ ਬਾਰੇ", "column.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ", "column.bookmarks": "ਬੁੱਕਮਾਰਕ", "column.community": "ਲੋਕਲ ਸਮਾਂ-ਲਾਈਨ", + "column.create_list": "ਸੂਚੀ ਬਣਾਓ", "column.direct": "ਨਿੱਜੀ ਜ਼ਿਕਰ", + "column.directory": "ਪ੍ਰੋਫਾਈਲਾਂ ਨੂੰ ਦੇਖੋ", + "column.domain_blocks": "ਪਾਬੰਦੀ ਲਾਏ ਡੋਮੇਨ", + "column.edit_list": "ਸੂਚੀ ਨੂੰ ਸੋਧੋ", "column.favourites": "ਮਨਪਸੰਦ", + "column.firehose": "ਲਾਈਵ ਫੀਡ", "column.follow_requests": "ਫ਼ਾਲੋ ਦੀਆਂ ਬੇਨਤੀਆਂ", "column.home": "ਮੁੱਖ ਸਫ਼ਾ", + "column.list_members": "ਸੂਚੀ ਦੇ ਮੈਂਬਰ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ", "column.lists": "ਸੂਚੀਆਂ", + "column.mutes": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ", "column.notifications": "ਸੂਚਨਾਵਾਂ", "column.pins": "ਟੰਗੀਆਂ ਪੋਸਟਾਂ", "column_back_button.label": "ਪਿੱਛੇ", + "column_header.hide_settings": "ਸੈਟਿੰਗਾਂ ਨੂੰ ਲੁਕਾਓ", + "column_header.moveLeft_settings": "ਕਾਲਮ ਨੂੰ ਖੱਬੇ ਪਾਸੇ ਭੇਜੋ", + "column_header.moveRight_settings": "ਕਾਲਮ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਭੇਜੋ", "column_header.pin": "ਟੰਗੋ", "column_header.show_settings": "ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ", "column_header.unpin": "ਲਾਹੋ", @@ -83,16 +113,20 @@ "community.column_settings.remote_only": "ਸਿਰਫ਼ ਰਿਮੋਟ ਹੀ", "compose.language.change": "ਭਾਸ਼ਾ ਬਦਲੋ", "compose.language.search": "ਭਾਸ਼ਾਵਾਂ ਦੀ ਖੋਜ...", + "compose.published.body": "ਪੋਸਟ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤੀ।", "compose.published.open": "ਖੋਲ੍ਹੋ", "compose.saved.body": "ਪੋਸਟ ਸੰਭਾਲੀ ਗਈ।", "compose_form.direct_message_warning_learn_more": "ਹੋਰ ਜਾਣੋ", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", + "compose_form.lock_disclaimer": "ਤੁਹਾਡਾ ਖਾਤਾ {locked} ਨਹੀਂ ਹੈ। ਕੋਈ ਵੀ ਤੁਹਾਡੀਆਂ ਸਿਰਫ਼-ਫ਼ਾਲੋਅਰ ਪੋਸਟਾਂ ਵੇਖਣ ਵਾਸਤੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰ ਸਕਦਾ ਹੈ।", "compose_form.lock_disclaimer.lock": "ਲਾਕ ਹੈ", - "compose_form.placeholder": "What is on your mind?", + "compose_form.placeholder": "ਤੁਹਾਡੇ ਮਨ ਵਿੱਚ ਕੀ ਹੈ?", + "compose_form.poll.option_placeholder": "{number} ਚੋਣ", + "compose_form.poll.single": "ਇਕੱਲੀ ਚੋਣ", "compose_form.poll.type": "ਸਟਾਈਲ", "compose_form.publish": "ਪੋਸਟ", - "compose_form.publish_form": "Publish", + "compose_form.publish_form": "ਨਵੀਂ ਪੋਸਟ", "compose_form.reply": "ਜਵਾਬ ਦਿਓ", "compose_form.save_changes": "ਅੱਪਡੇਟ", "compose_form.spoiler.marked": "ਸਮੱਗਰੀ ਚੇਤਾਵਨੀ ਨੂੰ ਹਟਾਓ", @@ -102,20 +136,49 @@ "confirmations.block.confirm": "ਪਾਬੰਦੀ", "confirmations.delete.confirm": "ਹਟਾਓ", "confirmations.delete.message": "ਕੀ ਤੁਸੀਂ ਇਹ ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?", + "confirmations.delete.title": "ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?", "confirmations.delete_list.confirm": "ਹਟਾਓ", + "confirmations.delete_list.message": "ਕੀ ਤੁਸੀਂ ਇਸ ਸੂਚੀ ਨੂੰ ਪੱਕੇ ਤੌਰ ਉੱਤੇ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?", + "confirmations.delete_list.title": "ਸੂਚੀ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?", "confirmations.discard_edit_media.confirm": "ਰੱਦ ਕਰੋ", "confirmations.edit.confirm": "ਸੋਧ", "confirmations.logout.confirm": "ਬਾਹਰ ਹੋਵੋ", + "confirmations.logout.message": "ਕੀ ਤੁਸੀਂ ਲਾਗ ਆਉਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?", + "confirmations.logout.title": "ਲਾਗ ਆਉਟ ਕਰਨਾ ਹੈ?", "confirmations.mute.confirm": "ਮੌਨ ਕਰੋ", + "confirmations.redraft.confirm": "ਹਟਾਓ ਤੇ ਮੁੜ-ਡਰਾਫਟ", "confirmations.reply.confirm": "ਜਵਾਬ ਦੇਵੋ", "confirmations.unfollow.confirm": "ਅਣ-ਫ਼ਾਲੋ", + "confirmations.unfollow.message": "ਕੀ ਤੁਸੀਂ {name} ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?", + "confirmations.unfollow.title": "ਵਰਤੋਂਕਾਰ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰਨਾ ਹੈ?", + "content_warning.hide": "ਪੋਸਟ ਨੂੰ ਲੁਕਾਓ", + "content_warning.show": "ਕਿਵੇਂ ਵੀ ਵੇਖਾਓ", + "content_warning.show_more": "ਹੋਰ ਵੇਖਾਓ", + "conversation.delete": "ਗੱਲਬਾਤ ਨੂੰ ਹਟਾਓ", + "conversation.mark_as_read": "ਪੜ੍ਹੇ ਵਜੋਂ ਨਿਸ਼ਾਨੀ ਲਾਓ", + "conversation.open": "ਗੱਲਬਾਤ ਨੂੰ ਵੇਖੋ", + "conversation.with": "{names} ਨਾਲ", + "copy_icon_button.copied": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ", "copypaste.copied": "ਕਾਪੀ ਕੀਤਾ", "copypaste.copy_to_clipboard": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ", + "directory.local": "ਸਿਰਫ਼ {domain} ਤੋਂ", + "directory.new_arrivals": "ਨਵੇਂ ਆਉਣ ਵਾਲੇ", + "directory.recently_active": "ਸੱਜਰੇ ਸਰਗਰਮ", "disabled_account_banner.account_settings": "ਖਾਤੇ ਦੀਆਂ ਸੈਟਿੰਗਾਂ", + "disabled_account_banner.text": "ਤੁਹਾਡਾ ਖਾਤਾ {disabledAccount} ਇਸ ਵੇਲੇ ਅਸਮਰੱਥ ਕੀਤਾ ਹੈ।", "dismissable_banner.dismiss": "ਰੱਦ ਕਰੋ", "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", - "embed.instructions": "Embed this status on your website by copying the code below.", + "domain_block_modal.block": "ਸਰਵਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", + "domain_block_modal.block_account_instead": "ਇਸ ਦੀ ਬਜਾਏ @{name} ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", + "domain_block_modal.title": "ਡੋਮੇਨ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਹੈ?", + "domain_pill.server": "ਸਰਵਰ", + "domain_pill.their_handle": "ਇਹ ਹੈਂਡਲ:", + "domain_pill.their_server": "ਉਹਨਾਂ ਦਾ ਡਿਜ਼ਿਟਲ ਘਰ, ਜਿੱਥੇ ਉਹਨਾਂ ਦੀਆਂ ਸਾਰੀਆਂ ਪੋਸਟਾਂ ਹੁੰਦੀਆਂ ਹਨ।", + "domain_pill.username": "ਵਰਤੋਂਕਾਰ-ਨਾਂ", + "domain_pill.whats_in_a_handle": "ਹੈਂਡਲ ਕੀ ਹੁੰਦਾ ਹੈ?", + "domain_pill.your_handle": "ਤੁਹਾਡਾ ਹੈਂਡਲ:", + "embed.instructions": "ਹੇਠਲੇ ਕੋਡ ਨੂੰ ਕਾਪੀ ਕਰਕੇ ਆਪਣੀ ਵੈੱਬਸਾਈਟ ਉੱਤੇ ਇਸ ਪੋਸਟ ਨੂੰ ਇੰਬੈੱਡ ਕਰੋ।", "emoji_button.activity": "ਗਤੀਵਿਧੀ", "emoji_button.clear": "ਮਿਟਾਓ", "emoji_button.custom": "ਕਸਟਮ", @@ -124,27 +187,43 @@ "emoji_button.nature": "ਕੁਦਰਤ", "emoji_button.objects": "ਇਕਾਈ", "emoji_button.people": "ਲੋਕ", + "emoji_button.recent": "ਅਕਸਰ ਵਰਤੇ", "emoji_button.search": "ਖੋਜ ਕਰੋ...", "emoji_button.search_results": "ਖੋਜ ਨਤੀਜੇ", "emoji_button.symbols": "ਚਿੰਨ੍ਹ", "emoji_button.travel": "ਸੈਰ ਸਪਾਟਾ ਤੇ ਥਾਵਾਂ", + "empty_column.account_suspended": "ਖਾਤਾ ਸਸਪੈਂਡ ਕੀਤਾ", "empty_column.account_timeline": "ਇੱਥੇ ਕੋਈ ਪੋਸਟ ਨਹੀਂ ਹੈ!", - "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", + "empty_column.account_unavailable": "ਪ੍ਰੋਫਾਈਲ ਅਣ-ਉਪਲਬਧ ਹੈ", + "empty_column.blocks": "ਤੁਸੀਂ ਹਾਲੇ ਕਿਸੇ ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਨਹੀਂ ਲਾਈ ਹੈ।", + "empty_column.bookmarked_statuses": "ਤੁਸੀਂ ਹਾਲੇ ਕਿਸੇ ਵੀ ਪੋਸਟ ਨੂੰ ਬੁੱਕਮਾਰਕ ਨਹੀਂ ਕੀਤਾ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ ਬੁੱਕਮਾਰਕ ਕੀਤਾ ਤਾਂ ਉਹ ਇੱਥੇ ਦਿਖਾਈ ਦਾਵੇਗਾ।", "empty_column.home": "ਤੁਹਾਡੀ ਟਾਈਮ-ਲਾਈਨ ਖਾਲੀ ਹੈ! ਇਸ ਨੂੰ ਭਰਨ ਲਈ ਹੋਰ ਲੋਕਾਂ ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ।", - "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "empty_column.list": "ਇਸ ਸੂਚੀ ਵਿੱਚ ਹਾਲੇ ਕੁਝ ਵੀ ਨਹੀਂ ਹੈ। ਜਦੋਂ ਇਸ ਸੂਚੀ ਦੇ ਮੈਂਬਰ ਨਵੀਆਂ ਪੋਸਟਾਂ ਪਾਉਂਦੇ ਹਨ ਤਾਂ ਉਹ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ।", "errors.unexpected_crash.report_issue": "ਮੁੱਦੇ ਦੀ ਰਿਪੋਰਟ ਕਰੋ", + "explore.search_results": "ਖੋਜ ਦੇ ਨਤੀਜੇ", "explore.suggested_follows": "ਲੋਕ", "explore.title": "ਪੜਚੋਲ ਕਰੋ", "explore.trending_links": "ਖ਼ਬਰਾਂ", "explore.trending_statuses": "ਪੋਸਟਾਂ", "explore.trending_tags": "ਹੈਸ਼ਟੈਗ", + "filter_modal.added.expired_title": "ਫਿਲਟਰ ਦੀ ਮਿਆਦ ਪੁੱਗੀ!", + "filter_modal.added.review_and_configure_title": "ਫਿਲਟਰ ਸੈਟਿੰਗਾਂ", "filter_modal.added.settings_link": "ਸੈਟਿੰਗਾਂ ਸਫ਼ਾ", + "filter_modal.added.title": "ਫਿਲਟਰ ਨੂੰ ਜੋੜਿਆ!", + "filter_modal.select_filter.expired": "ਮਿਆਦ ਪੁੱਗੀ", + "filter_modal.select_filter.prompt_new": "ਨਵੀਂ ਕੈਟਾਗਰੀ: {name}", + "filter_modal.select_filter.search": "ਖੋਜੋ ਜਾਂ ਬਣਾਓ", "firehose.all": "ਸਭ", "firehose.local": "ਇਹ ਸਰਵਰ", "firehose.remote": "ਹੋਰ ਸਰਵਰ", "follow_request.reject": "ਰੱਦ ਕਰੋ", "follow_suggestions.dismiss": "ਮੁੜ ਨਾ ਵੇਖਾਓ", + "follow_suggestions.personalized_suggestion": "ਨਿੱਜੀ ਸੁਝਾਅ", + "follow_suggestions.popular_suggestion": "ਹਰਮਨਪਿਆਰੇ ਸੁਝਾਅ", + "follow_suggestions.popular_suggestion_longer": "{domain} ਉੱਤੇ ਹਰਮਨਪਿਆਰੇ", "follow_suggestions.view_all": "ਸਭ ਵੇਖੋ", + "follow_suggestions.who_to_follow": "ਕਿਸ ਨੂੰ ਫ਼ਾਲੋ ਕਰੀਏ", + "followed_tags": "ਫ਼ਾਲੋ ਕੀਤੇ ਹੈਸ਼ਟੈਗ", "footer.about": "ਸਾਡੇ ਬਾਰੇ", "footer.directory": "ਪਰੋਫਾਇਲ ਡਾਇਰੈਕਟਰੀ", "footer.get_app": "ਐਪ ਲਵੋ", @@ -159,53 +238,94 @@ "hashtag.column_header.tag_mode.any": "ਜਾਂ {additional}", "hashtag.column_header.tag_mode.none": "{additional} ਬਿਨਾਂ", "hashtag.column_settings.select.no_options_message": "ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ ਲੱਭਾ", + "hashtag.column_settings.select.placeholder": "ਹੈਸ਼ਟੈਗ ਦਿਓ…", + "hashtag.column_settings.tag_mode.all": "ਇਹ ਸਭ", "hashtag.column_settings.tag_mode.any": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ", "hashtag.column_settings.tag_mode.none": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਹੀਂ", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ", "hashtag.unfollow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ", + "hints.profiles.see_more_followers": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋਅਰ ਵੇਖੋ", + "hints.profiles.see_more_follows": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋ ਨੂੰ ਵੇਖੋ", + "hints.profiles.see_more_posts": "{domain} ਉੱਤੇ ਹੋਰ ਪੋਸਟਾਂ ਨੂੰ ਵੇਖੋ", + "home.column_settings.show_reblogs": "ਬੂਸਟਾਂ ਨੂੰ ਵੇਖੋ", + "home.column_settings.show_replies": "ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ", + "home.hide_announcements": "ਐਲਾਨਾਂ ਨੂੰ ਓਹਲੇ ਕਰੋ", "home.pending_critical_update.link": "ਅੱਪਡੇਟ ਵੇਖੋ", + "ignore_notifications_modal.ignore": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ", + "interaction_modal.login.action": "ਮੈਨੂੰ ਮੁੱਖ ਸਫ਼ੇ ਉੱਤੇ ਲੈ ਜਾਓ", + "interaction_modal.no_account_yet": "Mastodon ਉੱਤੇ ਨਹੀਂ ਹੋ?", + "interaction_modal.on_another_server": "ਵੱਖਰੇ ਸਰਵਰ ਉੱਤੇ", + "interaction_modal.on_this_server": "ਇਸ ਸਰਵਰ ਉੱਤੇ", + "interaction_modal.title.favourite": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ", "interaction_modal.title.follow": "{name} ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ", + "interaction_modal.title.reblog": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰੋ", + "interaction_modal.title.reply": "{name} ਦੀ ਪੋਸਟ ਦਾ ਜਵਾਬ ਦਿਓ", + "interaction_modal.title.vote": "{name} ਦੀ ਚੋਣ ਵਾਸਤੇ ਵੋਟ ਪਾਓ", + "intervals.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}}", + "intervals.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}}", + "intervals.full.minutes": "{number, plural, one {# ਮਿੰਟ} other {# ਮਿੰਟ}}", "keyboard_shortcuts.back": "ਪਿੱਛੇ ਜਾਓ", "keyboard_shortcuts.blocked": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰਾਂ ਦੀ ਸੂਚੀ ਖੋਲ੍ਹੋ", "keyboard_shortcuts.boost": "ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰੋ", "keyboard_shortcuts.column": "ਫੋਕਸ ਕਾਲਮ", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "ਵਰਣਨ", - "keyboard_shortcuts.direct": "to open direct messages column", - "keyboard_shortcuts.down": "to move down in the list", - "keyboard_shortcuts.enter": "to open status", - "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.direct": "ਪ੍ਰਾਈਵੇਟ ਜ਼ਿਕਰ ਕੀਤੇ ਕਾਲਮ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ", + "keyboard_shortcuts.down": "ਸੂਚੀ ਵਿੱਚ ਹੇਠਾਂ ਭੇਜੋ", + "keyboard_shortcuts.enter": "ਪੋਸਟ ਨੂੰ ਖੋਲ੍ਹੋ", + "keyboard_shortcuts.favourite": "ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ", + "keyboard_shortcuts.federated": "", "keyboard_shortcuts.heading": "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ", - "keyboard_shortcuts.home": "to open home timeline", - "keyboard_shortcuts.legend": "to display this legend", - "keyboard_shortcuts.local": "to open local timeline", - "keyboard_shortcuts.mention": "to mention author", - "keyboard_shortcuts.muted": "to open muted users list", - "keyboard_shortcuts.my_profile": "to open your profile", + "keyboard_shortcuts.home": "ਮੁੱਖ-ਸਫ਼ਾ ਟਾਈਮ-ਲਾਈਨ ਨੂੰ ਖੋਲ੍ਹੋ", + "keyboard_shortcuts.legend": "ਇਸ ਸੰਕੇਤ ਨੂੰ ਵੇਖਾਓ", + "keyboard_shortcuts.local": "ਲੋਕਲ ਸਮਾਂ-ਲਾਈਨ ਨੂੰ ਖੋਲ੍ਹੋ", + "keyboard_shortcuts.mention": "ਲੇਖਕ ਦਾ ਜ਼ਿਕਰ", + "keyboard_shortcuts.muted": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ ਦੀ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹੋ", + "keyboard_shortcuts.my_profile": "ਆਪਣੇ ਪਰੋਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹੋ", "keyboard_shortcuts.notifications": "ਨੋਟੀਫਿਕੇਸ਼ਨ ਕਾਲਮ ਖੋਲ੍ਹੋ", - "keyboard_shortcuts.open_media": "to open media", - "keyboard_shortcuts.pinned": "to open pinned toots list", + "keyboard_shortcuts.open_media": "ਮੀਡੀਏ ਨੂੰ ਖੋਲ੍ਹੋ", + "keyboard_shortcuts.pinned": "ਪਿੰਨ ਕੀਤੀਆਂ ਪੋਸਟਾਂ ਦੀ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹੋ", "keyboard_shortcuts.profile": "ਲੇਖਕ ਦਾ ਪਰੋਫਾਈਲ ਖੋਲ੍ਹੋ", "keyboard_shortcuts.reply": "ਪੋਸਟ ਨੂੰ ਜਵਾਬ ਦਿਓ", - "keyboard_shortcuts.requests": "to open follow requests list", - "keyboard_shortcuts.search": "to focus search", - "keyboard_shortcuts.spoilers": "to show/hide CW field", + "keyboard_shortcuts.requests": "ਫ਼ਾਲੋ ਦੀਆਂ ਬੇਨਤੀਆਂ ਦੀ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹੋ", + "keyboard_shortcuts.search": "ਖੋਜ ਪੱਟੀ ਨੂੰ ਫੋਕਸ ਕਰੋ", + "keyboard_shortcuts.spoilers": "CW ਖੇਤਰ ਨੂੰ ਵੇਖਾਓ/ਓਹਲੇ ਕਰੋ", "keyboard_shortcuts.start": "to open \"get started\" column", "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", "keyboard_shortcuts.toggle_sensitivity": "ਮੀਡੀਆ ਦਿਖਾਉਣ/ਲੁਕਾਉਣ ਲਈ", "keyboard_shortcuts.toot": "ਨਵੀਂ ਪੋਸਟ ਸ਼ੁਰੂ ਕਰੋ", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "to move up in the list", + "keyboard_shortcuts.up": "ਸੂਚੀ ਵਿੱਚ ਉੱਤੇ ਭੇਜੋ", "lightbox.close": "ਬੰਦ ਕਰੋ", "lightbox.next": "ਅਗਲੀ", "lightbox.previous": "ਪਿਛਲੀ", "link_preview.author": "{name} ਵਲੋਂ", + "link_preview.more_from_author": "{name} ਵਲੋਂ ਹੋਰ", + "link_preview.shares": "{count, plural, one {{counter} ਪੋਸਟ} other {{counter} ਪੋਸਟਾਂ}}", + "lists.add_member": "ਜੋੜੋ", + "lists.add_to_list": "ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ", + "lists.create": "ਬਣਾਓ", + "lists.create_list": "ਸੂਚੀ ਬਣਾਓ", "lists.delete": "ਸੂਚੀ ਹਟਾਓ", + "lists.done": "ਮੁਕੰਮਲ", + "lists.edit": "ਸੂਚੀ ਨੂੰ ਸੋਧੋ", + "lists.find_users_to_add": "ਜੋੜਨ ਲਈ ਵਰਤੋਂਕਾਰ ਲੱਭੋ", + "lists.list_members": "ਮੈਂਬਰਾਂ ਦੀ ਸੂਚੀ", + "lists.list_members_count": "{count, plural, one {# ਮੈਂਬਰ} other {# ਮੈਂਬਰ}}", + "lists.list_name": "ਸੂਚੀ ਦਾ ਨਾਂ", + "lists.new_list_name": "ਨਵੀਂ ਸੂਚੀਂ ਦਾ ਨਾਂ", + "lists.no_lists_yet": "ਹਾਲੇ ਕੋਈ ਵੀ ਸੂਚੀ ਨਹੀਂ ਹੈ।", + "lists.remove_member": "ਹਟਾਓ", "lists.replies_policy.followed": "ਕੋਈ ਵੀ ਫ਼ਾਲੋ ਕੀਤਾ ਵਰਤੋਂਕਾਰ", + "lists.replies_policy.list": "ਸੂਚੀ ਦੇ ਮੈਂਬਰ", "lists.replies_policy.none": "ਕੋਈ ਨਹੀਂ", + "lists.save": "ਸੰਭਾਲੋ", "loading_indicator.label": "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ…", + "media_gallery.hide": "ਲੁਕਾਓ", + "mute_modal.show_options": "ਚੋਣਾਂ ਨੂੰ ਵੇਖਾਓ", "navigation_bar.about": "ਇਸ ਬਾਰੇ", + "navigation_bar.administration": "ਪਰਸ਼ਾਸ਼ਨ", "navigation_bar.advanced_interface": "ਤਕਨੀਕੀ ਵੈੱਬ ਇੰਟਰਫੇਸ ਵਿੱਚ ਖੋਲ੍ਹੋ", "navigation_bar.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ", "navigation_bar.bookmarks": "ਬੁੱਕਮਾਰਕ", @@ -229,20 +349,57 @@ "navigation_bar.search": "ਖੋਜੋ", "navigation_bar.security": "ਸੁਰੱਖਿਆ", "not_signed_in_indicator.not_signed_in": "ਇਹ ਸਰੋਤ ਵਰਤਣ ਲਈ ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।", + "notification.admin.sign_up": "{name} ਨੇ ਸਾਈਨ ਅੱਪ ਕੀਤਾ", "notification.follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕੀਤਾ", + "notification.follow.name_and_others": "{name} ਅਤੇ {count, plural, one {# ਹੋਰ} other {# ਹੋਰਾਂ}} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕੀਤਾ", "notification.follow_request": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ", + "notification.label.mention": "ਜ਼ਿਕਰ", + "notification.label.private_mention": "ਨਿੱਜੀ ਜ਼ਿਕਰ", + "notification.label.private_reply": "ਪ੍ਰਾਈਵੇਟ ਜਵਾਬ", + "notification.label.reply": "ਜਵਾਬ", + "notification.mention": "ਜ਼ਿਕਰ", + "notification.mentioned_you": "{name} ਨੇ ਤੁਹਾਡਾ ਜ਼ਿਕਰ ਕੀਤਾ", + "notification.moderation-warning.learn_more": "ਹੋਰ ਜਾਣੋ", + "notification.moderation_warning.action_disable": "ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰਅਸਮਰੱਥ ਕੀਤਾ ਹੈ।", "notification.reblog": "{name} boosted your status", + "notification.relationships_severance_event.learn_more": "ਹੋਰ ਜਾਣੋ", + "notification.status": "{name} ਨੇ ਹੁਣੇ ਪੋਸਟ ਕੀਤਾ", + "notification.update": "{name} ਨੋ ਪੋਸਟ ਨੂੰ ਸੋਧਿਆ", + "notification_requests.accept": "ਮਨਜ਼ੂਰ", + "notification_requests.confirm_accept_multiple.title": "ਨੋਟੀਫਿਕੇਸ਼ਨ ਬੇਨਤੀਆਂ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨਾ ਹੈ?", + "notification_requests.confirm_dismiss_multiple.title": "ਨੋਟੀਫਿਕੇਸ਼ਨ ਬੇਨਤੀਆਂ ਨੂੰ ਖ਼ਾਰਜ ਕਰਨਾ ਹੈ?", + "notification_requests.dismiss": "ਖ਼ਾਰਜ ਕਰੋ", + "notification_requests.edit_selection": "ਸੋਧੋ", + "notification_requests.exit_selection": "ਮੁਕੰਮਲ", + "notification_requests.notifications_from": "{name} ਵਲੋਂ ਨੋਟੀਫਿਕੇਸ਼ਨ", + "notifications.clear_title": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?", + "notifications.column_settings.admin.report": "ਨਵੀਆਂ ਰਿਪੋਰਟਾਂ:", "notifications.column_settings.alert": "ਡੈਸਕਟਾਪ ਸੂਚਨਾਵਾਂ", "notifications.column_settings.favourite": "ਮਨਪਸੰਦ:", + "notifications.column_settings.filter_bar.category": "ਫੌਰੀ ਫਿਲਟਰ ਪੱਟੀ", "notifications.column_settings.follow": "ਨਵੇਂ ਫ਼ਾਲੋਅਰ:", "notifications.column_settings.follow_request": "ਨਵੀਆਂ ਫ਼ਾਲੋ ਬੇਨਤੀਆਂ:", + "notifications.column_settings.group": "ਗਰੁੱਪ", + "notifications.column_settings.mention": "ਜ਼ਿਕਰ:", + "notifications.column_settings.poll": "ਪੋਲ ਦੇ ਨਤੀਜੇ:", + "notifications.column_settings.reblog": "ਬੂਸਟ:", + "notifications.column_settings.show": "ਕਾਲਮ ਵਿੱਚ ਵੇਖਾਓ", + "notifications.column_settings.sound": "ਆਵਾਜ਼ ਚਲਾਓ", "notifications.column_settings.status": "ਨਵੀਆਂ ਪੋਸਟਾਂ:", + "notifications.column_settings.unread_notifications.category": "ਨਾ-ਪੜ੍ਹੇ ਨੋਟੀਫਿਕੇਸ਼ਨ", + "notifications.column_settings.unread_notifications.highlight": "ਨਾ-ਪੜ੍ਹੇ ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਉਘਾੜੋ", "notifications.column_settings.update": "ਸੋਧ:", "notifications.filter.all": "ਸਭ", "notifications.filter.boosts": "ਬੂਸਟ", "notifications.filter.favourites": "ਮਨਪਸੰਦ", "notifications.filter.follows": "ਫ਼ਾਲੋ", "notifications.filter.mentions": "ਜ਼ਿਕਰ", + "notifications.filter.polls": "ਪੋਲ ਦੇ ਨਤੀਜੇ", + "notifications.grant_permission": "ਇਜਾਜ਼ਤ ਦਿਓ।", + "notifications.group": "{count} ਨੋਟੀਫਿਕੇਸ਼ਨ", + "notifications.policy.accept": "ਮਨਜ਼ੂਰ", + "notifications.policy.accept_hint": "ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵੇਖਾਓ", + "notifications.policy.drop": "ਅਣਡਿੱਠਾ", "onboarding.actions.go_to_explore": "ਮੈਨੂੰ ਰੁਝਾਨ ਵੇਖਾਓ", "onboarding.actions.go_to_home": "ਮੇਰੀ ਮੁੱਖ ਫੀਡ ਉੱਤੇ ਲੈ ਜਾਓ", "onboarding.follows.lead": "", @@ -265,13 +422,23 @@ "onboarding.steps.share_profile.title": "ਆਪਣੇ ਮਸਟਾਡੋਨ ਪਰੋਫਾਈਲ ਨੂੰ ਸਾਂਝਾ ਕਰੋ", "poll.closed": "ਬੰਦ ਹੈ", "poll.refresh": "ਤਾਜ਼ਾ ਕਰੋ", + "poll.reveal": "ਨਤੀਜਿਆਂ ਨੂੰ ਵੇਖੋ", "poll.vote": "ਵੋਟ ਪਾਓ", + "poll.voted": "ਤੁਸੀਂ ਇਸ ਜਵਾਬ ਲਈ ਵੋਟ ਕੀਤਾ", "privacy.change": "ਪੋਸਟ ਦੀ ਪਰਦੇਦਾਰੀ ਨੂੰ ਬਦਲੋ", + "privacy.private.short": "ਫ਼ਾਲੋਅਰ", "privacy.public.short": "ਜਨਤਕ", "privacy_policy.title": "ਪਰਦੇਦਾਰੀ ਨੀਤੀ", + "recommended": "ਸਿਫ਼ਾਰਸ਼ੀ", "refresh": "ਤਾਜ਼ਾ ਕਰੋ", "regeneration_indicator.label": "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ...", + "relative_time.days": "{number}ਦਿਨ", + "relative_time.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}} ਪਹਿਲਾਂ", + "relative_time.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}} ਪਹਿਲਾਂ", "relative_time.full.just_now": "ਹੁਣੇ ਹੀ", + "relative_time.full.minutes": "{number, plural, one {# ਮਿੰਟ} other {# ਮਿੰਟ}} ਪਹਿਲਾਂ", + "relative_time.full.seconds": "{number, plural, one {# ਸਕਿੰਟ} other {# ਸਕਿੰਟ}} ਪਹਿਲਾਂ", + "relative_time.hours": "{number}ਘੰ", "relative_time.just_now": "ਹੁਣੇ", "relative_time.minutes": "{number}ਮਿੰ", "relative_time.seconds": "{number}ਸ", @@ -295,11 +462,19 @@ "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached", "report_notification.categories.legal": "ਕਨੂੰਨੀ", "report_notification.categories.other": "ਬਾਕੀ", + "report_notification.categories.other_sentence": "ਹੋਰ", "report_notification.categories.spam": "ਸਪੈਮ", + "report_notification.categories.spam_sentence": "ਸਪੈਮ", "report_notification.categories.violation": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ", + "report_notification.categories.violation_sentence": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ", "report_notification.open": "ਰਿਪੋਰਟ ਨੂੰ ਖੋਲ੍ਹੋ", "search.placeholder": "ਖੋਜੋ", + "search.quick_action.go_to_account": "ਪਰੋਫਾਈਲ {x} ਉੱਤੇ ਜਾਓ", + "search.quick_action.go_to_hashtag": "ਹੈਸ਼ਟੈਗ {x} ਉੱਤੇ ਜਾਓ", + "search_popout.language_code": "ISO ਭਾਸ਼ਾ ਕੋਡ", + "search_popout.options": "ਖੋਜ ਲਈ ਚੋਣਾਂ", "search_popout.quick_actions": "ਫੌਰੀ ਕਾਰਵਾਈਆਂ", + "search_popout.recent": "ਸੱਜਰੀਆਂ ਖੋਜੋ", "search_popout.specific_date": "ਖਾਸ ਤਾਰੀਖ", "search_popout.user": "ਵਰਤੋਂਕਾਰ", "search_results.accounts": "ਪਰੋਫਾਈਲ", @@ -308,6 +483,7 @@ "search_results.see_all": "ਸਭ ਵੇਖੋ", "search_results.statuses": "ਪੋਸਟਾਂ", "search_results.title": "{q} ਲਈ ਖੋਜ", + "server_banner.active_users": "ਸਰਗਰਮ ਵਰਤੋਂਕਾਰ", "sign_in_banner.create_account": "ਖਾਤਾ ਬਣਾਓ", "sign_in_banner.sign_in": "ਲਾਗਇਨ", "sign_in_banner.sso_redirect": "ਲਾਗਇਨ ਜਾਂ ਰਜਿਸਟਰ ਕਰੋ", @@ -316,7 +492,10 @@ "status.bookmark": "ਬੁੱਕਮਾਰਕ", "status.copy": "ਪੋਸਟ ਲਈ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", "status.delete": "ਹਟਾਓ", + "status.direct": "{name} ਪ੍ਰਾਈਵੇਟ ਜ਼ਿਕਰ", + "status.direct_indicator": "ਪ੍ਰਾਈਵੇਟ ਜ਼ਿਕਰ", "status.edit": "ਸੋਧ", + "status.edited": "ਆਖਰੀ ਸੋਧ ਦੀ ਤਾਰੀਖ {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.favourite": "ਪਸੰਦ", "status.history.created": "{name} ਨੇ {date} ਨੂੰ ਬਣਾਇਆ", @@ -340,10 +519,12 @@ "status.share": "ਸਾਂਝਾ ਕਰੋ", "status.title.with_attachments": "{user} ਨੇ {attachmentCount, plural,one {ਅਟੈਚਮੈਂਟ} other {{attachmentCount}ਅਟੈਚਮੈਂਟਾਂ}} ਪੋਸਟ ਕੀਤੀਆਂ", "status.translate": "ਉਲੱਥਾ ਕਰੋ", + "status.unpin": "ਪਰੋਫਾਈਲ ਤੋਂ ਲਾਹੋ", "subscribed_languages.save": "ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੋ", "tabs_bar.home": "ਘਰ", "tabs_bar.notifications": "ਸੂਚਨਾਵਾਂ", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}", + "trends.trending_now": "ਹੁਣ ਰੁਝਾਨ ਵਿੱਚ", "units.short.billion": "{count}ਿਬ", "units.short.million": "{count}ਮਿ", "units.short.thousand": "{count}ਹਜ਼ਾਰ", @@ -357,8 +538,13 @@ "upload_modal.edit_media": "ਮੀਡੀਆ ਸੋਧੋ", "upload_progress.label": "ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...", "upload_progress.processing": "ਕਾਰਵਾਈ ਚੱਲ ਰਹੀ ਹੈ…", + "username.taken": "ਉਹ ਵਰਤੋਂਕਾਰ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਲੈ ਲਿਆ ਹੈ। ਹੋਰ ਅਜ਼ਮਾਓ", + "video.close": "ਵੀਡੀਓ ਨੂੰ ਬੰਦ ਕਰੋ", + "video.download": "ਫ਼ਾਈਲ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰੋ", "video.exit_fullscreen": "ਪੂਰੀ ਸਕਰੀਨ ਵਿੱਚੋਂ ਬਾਹਰ ਨਿਕਲੋ", + "video.expand": "ਵੀਡੀਓ ਨੂੰ ਫੈਲਾਓ", "video.fullscreen": "ਪੂਰੀ ਸਕਰੀਨ", + "video.hide": "ਵੀਡੀਓ ਨੂੰ ਲੁਕਾਓ", "video.pause": "ਠਹਿਰੋ", "video.play": "ਚਲਾਓ" } diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 90af458cdc..50a431eb76 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -104,6 +104,7 @@ "annual_report.summary.most_used_hashtag.none": "Нет", "annual_report.summary.new_posts.new_posts": "новых постов", "annual_report.summary.percentile.text": "Всё это помещает вас в топпользователей Mastodon.", + "annual_report.summary.percentile.we_wont_tell_bernie": "Роскомнадзор об этом не узнает.", "annual_report.summary.thanks": "Спасибо за то, что были вместе с Mastodon!", "attachments_list.unprocessed": "(не обработан)", "audio.hide": "Скрыть аудио", @@ -139,13 +140,16 @@ "column.blocks": "Заблокированные пользователи", "column.bookmarks": "Закладки", "column.community": "Локальная лента", + "column.create_list": "Создать список", "column.direct": "Личные упоминания", "column.directory": "Просмотр профилей", "column.domain_blocks": "Заблокированные домены", + "column.edit_list": "Изменить список", "column.favourites": "Избранные", "column.firehose": "Живая лента", "column.follow_requests": "Запросы на подписку", "column.home": "Главная", + "column.list_members": "Управление участниками списка", "column.lists": "Списки", "column.mutes": "Игнорируемые пользователи", "column.notifications": "Уведомления", @@ -463,11 +467,32 @@ "link_preview.author": "Автор: {name}", "link_preview.more_from_author": "Больше от {name}", "link_preview.shares": "{count, plural, one {{counter} пост} other {{counter} посты}}", + "lists.add_member": "Добавить", + "lists.add_to_list": "Добавить в список", + "lists.add_to_lists": "Добавить {name} в списки", + "lists.create": "Создать", + "lists.create_a_list_to_organize": "Создать новый список, чтобы упорядочить домашнюю ленту", + "lists.create_list": "Создать список", "lists.delete": "Удалить список", + "lists.done": "Готово", "lists.edit": "Изменить список", - "lists.replies_policy.followed": "Любой подписанный пользователь", + "lists.exclusive": "Не показывать участников в домашней ленте", + "lists.exclusive_hint": "Если кто-то есть в этом списке, скрыть его в домашней ленте, чтобы не видеть его посты дважды.", + "lists.find_users_to_add": "Найти пользователей для добавления", + "lists.list_members": "Участники списка", + "lists.list_members_count": "{count, plural, one {# участник} few {# участника} other {# участников}}", + "lists.list_name": "Название списка", + "lists.new_list_name": "Новое имя списка", + "lists.no_lists_yet": "Пока нет списков.", + "lists.no_members_yet": "Пока нет участников.", + "lists.no_results_found": "Не найдено.", + "lists.remove_member": "Удалить", + "lists.replies_policy.followed": "Пользователи, на которых вы подписаны", "lists.replies_policy.list": "Пользователи в списке", "lists.replies_policy.none": "Никого", + "lists.save": "Сохранить", + "lists.search_placeholder": "Искать среди подписок", + "lists.show_replies_to": "Показывать ответы участников списка на посты", "load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}", "loading_indicator.label": "Загрузка…", "media_gallery.hide": "Скрыть", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index b9fe9cf33b..506a073287 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -87,10 +87,17 @@ "alert.unexpected.title": "อุปส์!", "alt_text_badge.title": "ข้อความแสดงแทน", "announcement.announcement": "ประกาศ", + "annual_report.summary.archetype.booster": "ผู้ล่าความเจ๋ง", + "annual_report.summary.archetype.lurker": "ผู้ซุ่มอ่านข่าว", + "annual_report.summary.archetype.oracle": "ผู้ให้คำปรึกษา", + "annual_report.summary.archetype.pollster": "ผู้สำรวจความคิดเห็น", + "annual_report.summary.archetype.replier": "ผู้ชอบเข้าสังคม", "annual_report.summary.followers.followers": "ผู้ติดตาม", + "annual_report.summary.followers.total": "รวม {count}", "annual_report.summary.highlighted_post.by_favourites": "โพสต์ที่ได้รับการชื่นชอบมากที่สุด", "annual_report.summary.highlighted_post.by_reblogs": "โพสต์ที่ได้รับการดันมากที่สุด", "annual_report.summary.highlighted_post.by_replies": "โพสต์ที่มีการตอบกลับมากที่สุด", + "annual_report.summary.most_used_hashtag.none": "ไม่มี", "annual_report.summary.new_posts.new_posts": "โพสต์ใหม่", "annual_report.summary.percentile.we_wont_tell_bernie": "เราจะไม่บอก Bernie", "annual_report.summary.thanks": "ขอบคุณสำหรับการเป็นส่วนหนึ่งของ Mastodon!", @@ -128,13 +135,16 @@ "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "column.bookmarks": "ที่คั่นหน้า", "column.community": "เส้นเวลาในเซิร์ฟเวอร์", + "column.create_list": "สร้างรายการ", "column.direct": "การกล่าวถึงแบบส่วนตัว", "column.directory": "เรียกดูโปรไฟล์", "column.domain_blocks": "โดเมนที่ปิดกั้นอยู่", + "column.edit_list": "แก้ไขรายการ", "column.favourites": "รายการโปรด", "column.firehose": "ฟีดสด", "column.follow_requests": "คำขอติดตาม", "column.home": "หน้าแรก", + "column.list_members": "จัดการสมาชิกของรายการ", "column.lists": "รายการ", "column.mutes": "ผู้ใช้ที่ซ่อนอยู่", "column.notifications": "การแจ้งเตือน", @@ -452,11 +462,32 @@ "link_preview.author": "โดย {name}", "link_preview.more_from_author": "เพิ่มเติมจาก {name}", "link_preview.shares": "{count, plural, other {{counter} โพสต์}}", + "lists.add_member": "เพิ่ม", + "lists.add_to_list": "เพิ่มไปยังรายการ", + "lists.add_to_lists": "เพิ่ม {name} ไปยังรายการ", + "lists.create": "สร้าง", + "lists.create_a_list_to_organize": "สร้างรายการใหม่เพื่อจัดระเบียบฟีดหน้าแรกของคุณ", + "lists.create_list": "สร้างรายการ", "lists.delete": "ลบรายการ", + "lists.done": "เสร็จสิ้น", "lists.edit": "แก้ไขรายการ", + "lists.exclusive": "ซ่อนสมาชิกในหน้าแรก", + "lists.exclusive_hint": "หากใครสักคนอยู่ในรายการนี้ ให้ซ่อนเขาในฟีดหน้าแรกของคุณเพื่อหลีกเลี่ยงการเห็นโพสต์ของเขาสองครั้ง", + "lists.find_users_to_add": "ค้นหาผู้ใช้ที่จะเพิ่ม", + "lists.list_members": "สมาชิกของรายการ", + "lists.list_members_count": "{count, plural, other {# สมาชิก}}", + "lists.list_name": "ชื่อรายการ", + "lists.new_list_name": "ชื่อรายการใหม่", + "lists.no_lists_yet": "ยังไม่มีรายการ", + "lists.no_members_yet": "ยังไม่มีสมาชิก", + "lists.no_results_found": "ไม่พบผลลัพธ์", + "lists.remove_member": "เอาออก", "lists.replies_policy.followed": "ผู้ใช้ใด ๆ ที่ติดตาม", "lists.replies_policy.list": "สมาชิกของรายการ", "lists.replies_policy.none": "ไม่มีใคร", + "lists.save": "บันทึก", + "lists.search_placeholder": "ค้นหาผู้คนที่คุณติดตาม", + "lists.show_replies_to": "รวมการตอบกลับจากสมาชิกของรายการถึง", "load_pending": "{count, plural, other {# รายการใหม่}}", "loading_indicator.label": "กำลังโหลด…", "media_gallery.hide": "ซ่อน", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 7851da5ecb..bd3c0a27ee 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -492,6 +492,7 @@ "lists.replies_policy.none": "Hiç kimse", "lists.save": "Kaydet", "lists.search_placeholder": "Takip ettiğiniz kişilerde arama yapın", + "lists.show_replies_to": "Liste üyelerinin yanıtlarını içer", "load_pending": "{count, plural, one {# yeni öğe} other {# yeni öğe}}", "loading_indicator.label": "Yükleniyor…", "media_gallery.hide": "Gizle", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 16d32417c6..4046225164 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -43,8 +43,8 @@ "account.in_memoriam": "谨此悼念。", "account.joined_short": "加入于", "account.languages": "更改订阅语言", - "account.link_verified_on": "此链接的所有权已在 {date} 检查", - "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注者。", + "account.link_verified_on": "已于 {date} 验证此链接的所有权", + "account.locked_info": "此账户已锁嘟。账户所有人会手动审核新关注者。", "account.media": "媒体", "account.mention": "提及 @{name}", "account.moved_to": "{name} 的新账号是:", @@ -60,9 +60,9 @@ "account.report": "举报 @{name}", "account.requested": "正在等待对方同意。点击取消发送关注请求", "account.requested_follow": "{name} 向你发送了关注请求", - "account.share": "分享 @{name} 的个人资料页", + "account.share": "分享 @{name} 的账户页", "account.show_reblogs": "显示来自 @{name} 的转嘟", - "account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}", + "account.statuses_counter": "{count, plural, other {{counter} 嘟文}}", "account.unblock": "取消屏蔽 @{name}", "account.unblock_domain": "取消屏蔽 {domain} 域名", "account.unblock_short": "取消屏蔽", @@ -77,7 +77,7 @@ "admin.dashboard.retention.average": "平均", "admin.dashboard.retention.cohort": "注册月份", "admin.dashboard.retention.cohort_size": "新用户", - "admin.impact_report.instance_accounts": "将要删除的账户资料", + "admin.impact_report.instance_accounts": "将被删除的账户", "admin.impact_report.instance_followers": "本实例用户即将丢失的关注者", "admin.impact_report.instance_follows": "对方实例用户将会丢失的关注者", "admin.impact_report.title": "影响摘要", @@ -102,7 +102,7 @@ "annual_report.summary.most_used_app.most_used_app": "最常用的应用", "annual_report.summary.most_used_hashtag.most_used_hashtag": "最常用的话题", "annual_report.summary.most_used_hashtag.none": "无", - "annual_report.summary.new_posts.new_posts": "新嘟嘟", + "annual_report.summary.new_posts.new_posts": "发嘟", "annual_report.summary.percentile.text": "这使你跻身 Mastodon 用户的前", "annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉扣税国王的(他知道的话要来收你发嘟税了)。", "annual_report.summary.thanks": "感谢你这一年与 Mastodon 一路同行!", @@ -131,7 +131,7 @@ "bundle_modal_error.close": "关闭", "bundle_modal_error.message": "载入这个组件时发生了错误。", "bundle_modal_error.retry": "重试", - "closed_registrations.other_server_instructions": "基于 Mastodon 去中心化的特性,你可以在其它服务器上创建账号并继续与此服务器互动。", + "closed_registrations.other_server_instructions": "基于 Mastodon 的去中心化特性,你可以在其它服务器上创建账号,并与本站用户保持互动。", "closed_registrations_modal.description": "你目前无法在 {domain} 上创建账户,但请注意,使用 Mastodon 并非需要专门在 {domain} 上注册账户。", "closed_registrations_modal.find_another_server": "查找其他服务器", "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以无论在哪个实例创建账号,都可以关注本服务器上的账号并与之交流。 或者你还可以自己搭建实例!", @@ -175,7 +175,7 @@ "compose_form.encryption_warning": "Mastodon 上的嘟文未经端到端加密。请勿在 Mastodon 上分享敏感信息。", "compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开的嘟文才能通过话题标签进行搜索。", "compose_form.lock_disclaimer": "你的账户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。", - "compose_form.lock_disclaimer.lock": "开启保护", + "compose_form.lock_disclaimer.lock": "锁嘟", "compose_form.placeholder": "想写什么?", "compose_form.poll.duration": "投票期限", "compose_form.poll.multiple": "多选", @@ -248,19 +248,19 @@ "domain_block_modal.you_will_lose_num_followers": "你将失去 {followersCount, plural, other {{followersCountDisplay} 名关注者}}和 {followingCount, plural, other {{followingCountDisplay} 名关注}}。", "domain_block_modal.you_will_lose_relationships": "你将失去在此实例上的所有关注和关注者。", "domain_block_modal.you_wont_see_posts": "你将不会看到此服务器上用户的嘟文或通知。", - "domain_pill.activitypub_lets_connect": "它让你不仅能与 Mastodon 上的人交流互动,还能与其它不同社交应用上的人联系。", + "domain_pill.activitypub_lets_connect": "它可以让你与不同社交应用上的人交流互动,而不仅限于 Mastodon。", "domain_pill.activitypub_like_language": "ActivityPub 好比 Mastodon 与其它社交网络交流时使用的语言。", "domain_pill.server": "服务器", - "domain_pill.their_handle": "对方代号:", + "domain_pill.their_handle": "对方用户名:", "domain_pill.their_server": "对方的数字家园,对方的所有嘟文都存放在那里。", - "domain_pill.their_username": "对方在其服务器上的唯一标识符。不同服务器上可能会存在相同用户名的用户。", + "domain_pill.their_username": "对方在其服务器上的唯一标识。不同服务器上可能会存在相同用户名的用户。", "domain_pill.username": "用户名", - "domain_pill.whats_in_a_handle": "代号里都有什么?", - "domain_pill.who_they_are": "代号可以表明用户和其所在站点,你可以在社交网络上与的人们互动。", - "domain_pill.who_you_are": "代号可以表明你自己和你所在站点,社交网络上来自的人们因此可以与你互动。", - "domain_pill.your_handle": "你的代号:", - "domain_pill.your_server": "你的数字家园,你的所有嘟文都存放在这里。不喜欢这个服务器吗?随时带上你的关注者一起迁移到其它服务器。", - "domain_pill.your_username": "你在这个服务器上的唯一标识符。不同服务器上可能会存在相同用户名的用户。", + "domain_pill.whats_in_a_handle": "用户名的构成", + "domain_pill.who_they_are": "用户名可以表明用户的身份和其所在站点,这样你就可以通过在社交网络和人们互动。", + "domain_pill.who_you_are": "用户名可以表明你的身份和你所在的站点,这样人们就可以通过在社交网络与你互动。", + "domain_pill.your_handle": "你的用户名:", + "domain_pill.your_server": "你的数字家园,你的所有嘟文都在此存储。不喜欢这里吗?你可以随时迁移到其它服务器,并带上你的关注者。", + "domain_pill.your_username": "你在此服务器上的唯一标识。不同服务器上可能存在相同用户名的用户。", "embed.instructions": "复制下列代码以在你的网站中嵌入此嘟文。", "embed.preview": "这是它的预览效果:", "emoji_button.activity": "活动", @@ -311,31 +311,31 @@ "explore.trending_links": "新闻", "explore.trending_statuses": "嘟文", "explore.trending_tags": "话题标签", - "filter_modal.added.context_mismatch_explanation": "此过滤器类别不适用访问过嘟文的环境中。如要在此环境中过滤嘟文,你必须编辑此过滤器。", - "filter_modal.added.context_mismatch_title": "环境不匹配!", - "filter_modal.added.expired_explanation": "此过滤器类别已过期,你需要修改到期日期才能应用。", - "filter_modal.added.expired_title": "过滤器已过期!", - "filter_modal.added.review_and_configure": "要审核并进一步配置此过滤器分类,请前往{settings_link}。", - "filter_modal.added.review_and_configure_title": "过滤器设置", + "filter_modal.added.context_mismatch_explanation": "这条过滤规则不适用于你当前访问此嘟文的场景。要在此场景下过滤嘟文,你必须编辑此过滤规则。", + "filter_modal.added.context_mismatch_title": "场景不匹配!", + "filter_modal.added.expired_explanation": "此过滤规则类别已过期,你需要修改到期日期才能应用。", + "filter_modal.added.expired_title": "过滤规则已过期!", + "filter_modal.added.review_and_configure": "要检查并进一步配置此过滤规则分类,请前往{settings_link}。", + "filter_modal.added.review_and_configure_title": "过滤规则设置", "filter_modal.added.settings_link": "设置页面", - "filter_modal.added.short_explanation": "此嘟文已添加到以下过滤器类别:{title}。", - "filter_modal.added.title": "过滤器已添加 !", - "filter_modal.select_filter.context_mismatch": "不适用于此环境", + "filter_modal.added.short_explanation": "此嘟文已被添加到以下过滤规则:{title}。", + "filter_modal.added.title": "已添加过滤规则 !", + "filter_modal.select_filter.context_mismatch": "不适用于此场景", "filter_modal.select_filter.expired": "已过期", - "filter_modal.select_filter.prompt_new": "新类别:{name}", + "filter_modal.select_filter.prompt_new": "新条目:{name}", "filter_modal.select_filter.search": "搜索或创建", - "filter_modal.select_filter.subtitle": "使用一个已存在类别,或创建一个新类别", + "filter_modal.select_filter.subtitle": "使用一个已存在条目,或创建新条目", "filter_modal.select_filter.title": "过滤此嘟文", "filter_modal.title.status": "过滤一条嘟文", "filter_warning.matches_filter": "命中过滤规则 “{title}”", "filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}", - "filtered_notifications_banner.title": "通知(已过滤)", + "filtered_notifications_banner.title": "被过滤的通知", "firehose.all": "全部", "firehose.local": "此服务器", "firehose.remote": "其他服务器", "follow_request.authorize": "同意", "follow_request.reject": "拒绝", - "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的站务人员认为你也许会想手动审核审核这些账号的关注请求。", + "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的站务人员认为你也许会想手动审核这些账号的关注请求。", "follow_suggestions.curated_suggestion": "站务人员精选", "follow_suggestions.dismiss": "不再显示", "follow_suggestions.featured_longer": "由 {domain} 管理团队精选", @@ -343,8 +343,8 @@ "follow_suggestions.hints.featured": "该用户已被 {domain} 管理团队精选。", "follow_suggestions.hints.friends_of_friends": "该用户在你关注的人中很受欢迎。", "follow_suggestions.hints.most_followed": "该用户是 {domain} 上关注度最高的用户之一。", - "follow_suggestions.hints.most_interactions": "该用户最近在 {domain} 上获得了很多关注。", - "follow_suggestions.hints.similar_to_recently_followed": "该用户与你最近关注的用户类似。", + "follow_suggestions.hints.most_interactions": "该用户最近在 {domain} 获得了很多关注。", + "follow_suggestions.hints.similar_to_recently_followed": "该用户与你最近关注的人类似。", "follow_suggestions.personalized_suggestion": "个性化建议", "follow_suggestions.popular_suggestion": "热门建议", "follow_suggestions.popular_suggestion_longer": "在 {domain} 上很受欢迎", @@ -353,7 +353,7 @@ "follow_suggestions.who_to_follow": "推荐关注", "followed_tags": "已关注话题标签", "footer.about": "关于", - "footer.directory": "用户目录", + "footer.directory": "用户列表", "footer.get_app": "获取应用", "footer.invite": "邀请", "footer.keyboard_shortcuts": "快捷键", @@ -395,7 +395,7 @@ "ignore_notifications_modal.disclaimer": "Mastodon无法通知对方用户你忽略了他们的通知。忽略通知不会阻止消息本身的发送。", "ignore_notifications_modal.filter_instead": "改为过滤", "ignore_notifications_modal.filter_to_act_users": "你仍然可以接受、拒绝或举报用户", - "ignore_notifications_modal.filter_to_avoid_confusion": "选择过滤有助于避免潜在的混淆", + "ignore_notifications_modal.filter_to_avoid_confusion": "过滤有助于避免潜在的混淆", "ignore_notifications_modal.filter_to_review_separately": "你可以单独查看被过滤的通知", "ignore_notifications_modal.ignore": "忽略通知", "ignore_notifications_modal.limited_accounts_title": "是否忽略来自受限账号的通知?", @@ -403,17 +403,17 @@ "ignore_notifications_modal.not_followers_title": "是否忽略未关注你的人的通知?", "ignore_notifications_modal.not_following_title": "是否忽略你未关注的人的通知?", "ignore_notifications_modal.private_mentions_title": "是否忽略不请自来的私下提及?", - "interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,对嘟文的作者展示你欣赏的态度,并保存嘟文以供日后使用。", - "interaction_modal.description.follow": "拥有一个 Mastodon 账号,你就可以关注 {name} 并在自己的主页上接收对方的新嘟文。", - "interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你就可以向自己的关注者们转发此嘟文。", - "interaction_modal.description.reply": "拥有一个 Mastodon 账号,你就可以回复此嘟文。", - "interaction_modal.description.vote": "拥有一个 Mastodon 账号,你就可以参与此投票。", + "interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,向作者展示你欣赏的态度,并将其保存以供日后查看。", + "interaction_modal.description.follow": "只需一个 Mastodon 账号,即可关注 {name} 并在自己的主页接收对方的新嘟文。", + "interaction_modal.description.reblog": "只需一个 Mastodon 账号,即可转发此嘟文,向你的关注者分享它。", + "interaction_modal.description.reply": "只需一个 Mastodon 账号,即可回复此嘟文。", + "interaction_modal.description.vote": "只需一个 Mastodon 账号,即可参与此投票。", "interaction_modal.login.action": "转到主页", "interaction_modal.login.prompt": "你所入驻的服务器域名,如:mastodon.social", - "interaction_modal.no_account_yet": "不在 Mastodon 上?", + "interaction_modal.no_account_yet": "还没加入 Mastodon?", "interaction_modal.on_another_server": "在另一服务器", "interaction_modal.on_this_server": "在此服务器", - "interaction_modal.sign_in": "你尚未登录此服务器,你的账号托管在哪?", + "interaction_modal.sign_in": "你尚未登录此服务器,你的账号是在哪里注册的?", "interaction_modal.sign_in_hint": "提示:这是你注册的网站,如果你不记得了,请在邮箱的收件箱中查找欢迎邮件。你还可以输入完整的用户名!(例如 @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "喜欢 {name} 的嘟文", "interaction_modal.title.follow": "关注 {name}", @@ -442,11 +442,11 @@ "keyboard_shortcuts.local": "打开本站时间线", "keyboard_shortcuts.mention": "提及嘟文作者", "keyboard_shortcuts.muted": "打开隐藏用户列表", - "keyboard_shortcuts.my_profile": "打开你的个人资料", + "keyboard_shortcuts.my_profile": "打开你的账户页", "keyboard_shortcuts.notifications": "打开通知栏", "keyboard_shortcuts.open_media": "打开媒体", "keyboard_shortcuts.pinned": "打开置顶嘟文列表", - "keyboard_shortcuts.profile": "打开作者的个人资料", + "keyboard_shortcuts.profile": "打开作者的账户页", "keyboard_shortcuts.reply": "回复嘟文", "keyboard_shortcuts.requests": "打开关注请求列表", "keyboard_shortcuts.search": "选中搜索框", @@ -526,7 +526,7 @@ "navigation_bar.logout": "退出登录", "navigation_bar.moderation": "审核", "navigation_bar.mutes": "已隐藏的用户", - "navigation_bar.opened_in_classic_interface": "嘟文、账户和其他特定页面默认在经典网页界面中打开。", + "navigation_bar.opened_in_classic_interface": "嘟文页、账户页与其他某些页面默认在经典网页界面中打开。", "navigation_bar.personal": "个人", "navigation_bar.pins": "置顶嘟文", "navigation_bar.preferences": "偏好设置", @@ -569,8 +569,8 @@ "notification.reblog": "{name} 转发了你的嘟文", "notification.reblog.name_and_others_with_link": "{name} 和 {count, plural, other {另外 # 人}} 转嘟了你的嘟文", "notification.relationships_severance_event": "与 {name} 的联系已断开", - "notification.relationships_severance_event.account_suspension": "来自 {from} 的管理员封禁了 {target},这意味着你将无法再收到对方的更新或与其互动。", - "notification.relationships_severance_event.domain_block": "来自 {from} 的管理员屏蔽了 {target},其中包括你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。", + "notification.relationships_severance_event.account_suspension": "{from} 的管理员封禁了 {target},这意味着你将无法再收到对方的更新或与其互动。", + "notification.relationships_severance_event.domain_block": "{from} 的管理员屏蔽了 {target},其中包括你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。", "notification.relationships_severance_event.learn_more": "了解更多", "notification.relationships_severance_event.user_domain_block": "你已经屏蔽了 {target},移除了你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。", "notification.status": "{name} 刚刚发布嘟文", @@ -587,12 +587,12 @@ "notification_requests.dismiss_multiple": "{count, plural, other {拒绝 # 个请求…}}", "notification_requests.edit_selection": "编辑", "notification_requests.exit_selection": "完成", - "notification_requests.explainer_for_limited_account": "来自该账户的通知已被过滤,因为该账户已被管理员限制。", - "notification_requests.explainer_for_limited_remote_account": "来自该账户的通知已被过滤,因为该账户或其所在的实例已被管理员限制。", + "notification_requests.explainer_for_limited_account": "来自此账户的通知已被过滤,因为此账户已被管理员限制。", + "notification_requests.explainer_for_limited_remote_account": "来自此账户的通知已被过滤,因为此账户或其所在的服务器已被管理员限制。", "notification_requests.maximize": "最大化", - "notification_requests.minimize_banner": "最小化被过滤通知的横幅", + "notification_requests.minimize_banner": "最小化被过滤通知横幅", "notification_requests.notifications_from": "来自 {name} 的通知", - "notification_requests.title": "通知(已过滤)", + "notification_requests.title": "被过滤的通知", "notification_requests.view": "查看通知", "notifications.clear": "清空通知列表", "notifications.clear_confirmation": "你确定要永久清空通知列表吗?", @@ -634,16 +634,16 @@ "notifications.policy.drop": "忽略", "notifications.policy.drop_hint": "送入虚空,再也不查看", "notifications.policy.filter": "过滤", - "notifications.policy.filter_hint": "发送到被过滤通知收件箱", - "notifications.policy.filter_limited_accounts_hint": "被实例管理员限制", + "notifications.policy.filter_hint": "发送到被过滤通知列表", + "notifications.policy.filter_limited_accounts_hint": "被服务器管理员限制的账号", "notifications.policy.filter_limited_accounts_title": "受限账号", - "notifications.policy.filter_new_accounts.hint": "在 {days, plural, other {# 天}}内创建的账户", + "notifications.policy.filter_new_accounts.hint": "注册未满 {days, plural, other {# 天}} 的账号", "notifications.policy.filter_new_accounts_title": "新账户", - "notifications.policy.filter_not_followers_hint": "包括关注你少于 {days, plural, other {# 天}}的人", - "notifications.policy.filter_not_followers_title": "未关注你的人", - "notifications.policy.filter_not_following_hint": "直到你手动批准", + "notifications.policy.filter_not_followers_hint": "包括关注你未满 {days, plural, other {# 天}}的人", + "notifications.policy.filter_not_followers_title": "没有关注你的人", + "notifications.policy.filter_not_following_hint": "需要你手动批准", "notifications.policy.filter_not_following_title": "你没有关注的人", - "notifications.policy.filter_private_mentions_hint": "过滤通知,除非通知是在回复提及你自己的内容,或发送者是你关注的人", + "notifications.policy.filter_private_mentions_hint": "过滤通知,除非对应嘟文是在回复你的私下提及,或来自你关注的人。", "notifications.policy.filter_private_mentions_title": "不请自来的私下提及", "notifications.policy.title": "管理来自 … 的通知", "notifications_permission_banner.enable": "启用桌面通知", @@ -657,21 +657,21 @@ "onboarding.follows.empty": "很抱歉,现在无法显示任何结果。你可以尝试使用搜索或浏览探索页面来查找要关注的人,或稍后再试。", "onboarding.follows.lead": "你管理你自己的家庭饲料。你关注的人越多,它将越活跃和有趣。 这些配置文件可能是一个很好的起点——你可以随时取消关注它们!", "onboarding.follows.title": "定制你的主页动态", - "onboarding.profile.discoverable": "让我的资料卡可被他人发现", - "onboarding.profile.discoverable_hint": "当你选择在 Mastodon 上启用发现功能时,你的嘟文可能会出现在搜索结果和热门中,你的账户可能会被推荐给与你兴趣相似的人。", + "onboarding.profile.discoverable": "让我的账户可被他人发现", + "onboarding.profile.discoverable_hint": "当你在 Mastodon 上启用发现功能时,你的嘟文可能会出现在搜索结果与热门中,你的账户可能会被推荐给与你兴趣相似的人。", "onboarding.profile.display_name": "昵称", "onboarding.profile.display_name_hint": "你的全名或昵称…", "onboarding.profile.lead": "你可以稍后在设置中完成此操作,设置中有更多的自定义选项。", "onboarding.profile.note": "简介", - "onboarding.profile.note_hint": "你可以提及 @其他人 或 #标签…", + "onboarding.profile.note_hint": "你可以提及 @其他人 或使用 #话题标签…", "onboarding.profile.save_and_continue": "保存并继续", "onboarding.profile.title": "设置个人资料", "onboarding.profile.upload_avatar": "上传头像", - "onboarding.profile.upload_header": "上传个人资料背景横幅", + "onboarding.profile.upload_header": "上传账户页封面图", "onboarding.share.lead": "让人们知道他们如何在Mastodon找到你!", "onboarding.share.message": "我是来自 #Mastodon 的 {username}!请在 {url} 关注我。", "onboarding.share.next_steps": "可能的下一步:", - "onboarding.share.title": "分享你的个人资料", + "onboarding.share.title": "分享你的账户页", "onboarding.start.lead": "你的新 Mastodon 账户已准备好。下面是如何最大限度地利用它:", "onboarding.start.skip": "想要在前面跳过吗?", "onboarding.start.title": "你已经成功了!", @@ -679,14 +679,14 @@ "onboarding.steps.follow_people.title": "定制你的主页动态", "onboarding.steps.publish_status.body": "向世界问声好吧。", "onboarding.steps.publish_status.title": "发布你的第一篇嘟文", - "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", - "onboarding.steps.setup_profile.title": "自定义你的个人资料", - "onboarding.steps.share_profile.body": "让你的朋友知道怎样在 Mastodon 找到你", - "onboarding.steps.share_profile.title": "分享你的个人资料", + "onboarding.steps.setup_profile.body": "完善个人资料,提升你的互动体验。", + "onboarding.steps.setup_profile.title": "自定义你的账户", + "onboarding.steps.share_profile.body": "让你的朋友知道如何在 Mastodon 找到你", + "onboarding.steps.share_profile.title": "分享你的账户页", "onboarding.tips.2fa": "你知道吗?你可以在账户设置中配置双因素认证来保护账户安全。可以使用你选择的任何 TOTP 应用,无需电话号码!", - "onboarding.tips.accounts_from_other_servers": "你知道吗? 既然Mastodon是去中心化的,你所看到的一些账户将被托管在你以外的服务器上。 但你可以无缝地与他们交互!他们的服务器在他们的用户名的后半部分!", + "onboarding.tips.accounts_from_other_servers": "你知道吗? Mastodon 是去中心化的,所以你看到的一些账号实际上是在别的服务器上。不过你仍然可以和他们无缝交流!他们的服务器地址就在他们用户名的后半部分!", "onboarding.tips.migration": "你知道吗?如果你将来觉得 {domain} 不再符合您的需求,你可以在保留现有关注者的情况下迁移至其他 Mastodon 服务器。你甚至可以部署自己的服务器!", - "onboarding.tips.verification": "你知道吗? 你可以通过在自己的网站上放置一个链接到你的 Mastodon 个人资料并将网站添加到你的个人资料来验证你的账户。 无需收费或文书工作!", + "onboarding.tips.verification": "你知道吗? 你可以在自己的网站上添加指向你 Mastodon 账户页的链接,并在你的 Mastodon 账户页中添加对应的网站链接,以此来验证您的账号。此验证方式无需任何费用或文件。", "password_confirmation.exceeds_maxlength": "密码确认超过最大密码长度", "password_confirmation.mismatching": "确认密码与密码不一致。", "picture_in_picture.restore": "恢复", @@ -705,9 +705,9 @@ "privacy.direct.short": "特定的人", "privacy.private.long": "仅限你的关注者", "privacy.private.short": "关注者", - "privacy.public.long": "", + "privacy.public.long": "所有 Mastodon 内外的人", "privacy.public.short": "公开", - "privacy.unlisted.additional": "该模式的行为与“公开”完全相同,只是嘟文不会出现在实时动态、话题标签、探索或 Mastodon 搜索中,即使你已在账户级设置中选择加入。", + "privacy.unlisted.additional": "此模式的行为与“公开”类似,只是嘟文不会出现在实时动态、话题标签、探索或 Mastodon 搜索页面中,即使您已全局开启了对应的发现设置。", "privacy.unlisted.long": "减少算法影响", "privacy.unlisted.short": "悄悄公开", "privacy_policy.last_updated": "最近更新于 {date}", @@ -738,7 +738,7 @@ "report.categories.violation": "内容违反一条或多条服务器规则", "report.category.subtitle": "选择最佳匹配", "report.category.title": "告诉我们此 {type} 存在的问题", - "report.category.title_account": "个人资料", + "report.category.title_account": "账户", "report.category.title_status": "嘟文", "report.close": "完成", "report.comment.title": "还有什么你认为我们应该知道的吗?", @@ -782,11 +782,11 @@ "report_notification.open": "打开举报", "search.no_recent_searches": "无最近搜索", "search.placeholder": "搜索", - "search.quick_action.account_search": "匹配 {x} 的个人资料", - "search.quick_action.go_to_account": "前往 {x} 个人资料", - "search.quick_action.go_to_hashtag": "前往标签 {x}", - "search.quick_action.open_url": "在 Mastodon 中打开网址", - "search.quick_action.status_search": "匹配 {x} 的嘟文", + "search.quick_action.account_search": "包含 {x} 的账户", + "search.quick_action.go_to_account": "打开 {x} 的账户页", + "search.quick_action.go_to_hashtag": "打开话题标签 {x}", + "search.quick_action.open_url": "在 Mastodon 中打开此链接", + "search.quick_action.status_search": "包含 {x} 的嘟文", "search.search_or_paste": "搜索或输入网址", "search_popout.full_text_search_disabled_message": "在 {domain} 不可用", "search_popout.full_text_search_logged_out_message": "只有登录后才可用。", @@ -844,7 +844,7 @@ "status.mute": "隐藏 @{name}", "status.mute_conversation": "禁用此对话的消息提醒", "status.open": "展开嘟文", - "status.pin": "在个人资料页面置顶", + "status.pin": "在账户页置顶", "status.pinned": "置顶嘟文", "status.read_more": "查看更多", "status.reblog": "转嘟", @@ -869,7 +869,7 @@ "status.translated_from_with": "由 {provider} 翻译自 {lang}", "status.uncached_media_warning": "预览不可用", "status.unmute_conversation": "恢复此对话的通知提醒", - "status.unpin": "在个人资料页面取消置顶", + "status.unpin": "在账户页取消置顶", "subscribed_languages.lead": "更改此选择后,只有选定语言的嘟文才会出现在你的主页和列表时间线上。选择「无」将显示所有语言的嘟文。", "subscribed_languages.save": "保存更改", "subscribed_languages.target": "更改 {target} 的订阅语言", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 355fecac4c..99f329ba4e 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -471,13 +471,13 @@ "lists.add_to_list": "新增至列表", "lists.add_to_lists": "新增 {name} 至列表", "lists.create": "建立", - "lists.create_a_list_to_organize": "建立新列表以整理您的首頁動態", + "lists.create_a_list_to_organize": "建立新列表以整理您的首頁時間軸", "lists.create_list": "建立列表", "lists.delete": "刪除列表", "lists.done": "完成", "lists.edit": "編輯列表", - "lists.exclusive": "在首頁隱藏成員", - "lists.exclusive_hint": "如果某個帳號於此列表中,將自您的首頁動態中隱藏此帳號,以防重複見到他們的嘟文。", + "lists.exclusive": "於首頁隱藏成員", + "lists.exclusive_hint": "如果某個帳號於此列表中,將自您的首頁時間軸中隱藏此帳號,以防重複見到他們的嘟文。", "lists.find_users_to_add": "尋找欲新增之使用者", "lists.list_members": "列表成員", "lists.list_members_count": "{count, plural, other {# 個成員}}", diff --git a/config/locales/ca.yml b/config/locales/ca.yml index b1af2d95d4..28caa1d1fc 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -826,8 +826,10 @@ ca: back_to_account: Torna a la pàgina del compte back_to_report: Torna a la pàgina de l'informe batch: + add_to_report: 'Afegiu a l''informe #%{id}' remove_from_report: Treu de l'informe report: Denuncia + contents: Continguts deleted: Eliminada favourites: Favorits history: Històric de versions @@ -836,12 +838,17 @@ ca: media: title: Contingut multimèdia metadata: Metadada + no_history: Aquesta publicació no s'ha editat no_status_selected: No s’han canviat els estatus perquè cap no ha estat seleccionat open: Obre la publicació original_status: Publicació original reblogs: Impulsos + replied_to_html: En resposta a %{acct_link} status_changed: Publicació canviada + status_title: Publicació de @%{name} + title: Publicacions del compte - @%{name} trending: Tendència + view_publicly: Vegeu en públic visibility: Visibilitat with_media: Amb contingut multimèdia strikes: @@ -1173,8 +1180,11 @@ ca: use_security_key: Usa clau de seguretat author_attribution: example_title: Text d'exemple + hint_html: Escriviu notícies o un blog fora de Mastodon? Controleu quin crèdit rebeu quan es comparteixen aquí. + instructions: 'Assegureu-vos que aquest codi és a l''HTML de l''article:' more_from_html: Més de %{name} s_blog: Blog de %{name} + then_instructions: Després, afegiu el nom del domini de la publicació aquí sota. title: Atribució d'autor challenge: confirm: Continua diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml index 848b0d6b6c..d14bd575f4 100644 --- a/config/locales/doorkeeper.zh-CN.yml +++ b/config/locales/doorkeeper.zh-CN.yml @@ -129,7 +129,7 @@ zh-CN: conversations: 会话 crypto: 端到端加密 favourites: 喜欢 - filters: 过滤器 + filters: 过滤规则 follow: 关注,隐藏与屏蔽 follows: 关注 lists: 列表 @@ -167,14 +167,14 @@ zh-CN: admin:write:reports: 对举报执行管理操作 crypto: 使用端到端加密 follow: 关注或屏蔽用户 - profile: 仅读取你账号的个人资料信息 + profile: 仅读取你账户的个人资料信息 push: 接收你的账户的推送通知 read: 读取你的账户数据 read:accounts: 查看账号信息 read:blocks: 查看你的屏蔽列表 read:bookmarks: 查看你的书签 read:favourites: 查看喜欢的嘟文 - read:filters: 查看你的过滤器 + read:filters: 查看你的过滤规则 read:follows: 查看你的关注 read:lists: 查看你的列表 read:mutes: 查看你的隐藏列表 @@ -188,7 +188,7 @@ zh-CN: write:bookmarks: 为嘟文添加书签 write:conversations: 静音并删除会话 write:favourites: 喜欢嘟文 - write:filters: 创建过滤器 + write:filters: 创建过滤规则 write:follows: 关注其他人 write:lists: 创建列表 write:media: 上传媒体文件 diff --git a/config/locales/es.yml b/config/locales/es.yml index 22123e4309..921db752ab 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1073,7 +1073,7 @@ es: remove: Desvincular alias appearance: advanced_web_interface: Interfaz web avanzada - advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, línea de tiempo federada, cualquier número de listas y etiquetas.' + advanced_web_interface_hint: 'Si quieres aprovechar todo el ancho de tu pantalla, la interfaz web avanzada te permite configurar muchas columnas diferentes para ver toda la información que quieras al mismo tiempo: Inicio, notificaciones, cronología federada, cualquier número de listas y etiquetas.' animations_and_accessibility: Animaciones y accesibilidad confirmation_dialogs: Diálogos de confirmación discovery: Descubrir @@ -1115,7 +1115,7 @@ es: welcome_title: "¡Te damos la bienvenida, %{name}!" wrong_email_hint: Si esa dirección de correo electrónico no es correcta, puedes cambiarla en la configuración de la cuenta. delete_account: Borrar cuenta - delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. + delete_account_html: Si deseas eliminar tu cuenta, puedes hacerlo aquí. Se te pedirá una confirmación. description: prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodon!" prefix_sign_up: "¡Únete a Mastodon hoy!" @@ -1157,7 +1157,7 @@ es: set_new_password: Establecer nueva contraseña setup: email_below_hint_html: Comprueba tu carpeta de correo no deseado o solicita otro enlace de confirmación. Puedes corregir tu dirección de correo electrónico si está mal. - email_settings_hint_html: Pulsa el enlace que te hemos enviado para verificar %{email}. Esperaremos aquí mismo. + email_settings_hint_html: Haz clic en el enlace que te hemos enviado para verificar %{email}. Te esperamos aquí. link_not_received: "¿No recibiste un enlace?" new_confirmation_instructions_sent: "¡Recibirás un nuevo correo electrónico con el enlace de confirmación en unos minutos!" title: Revisa tu bandeja de entrada @@ -1299,7 +1299,7 @@ es: featured_tags: add_new: Añadir nuevo errors: - limit: Ya has alcanzado la cantidad máxima de hashtags + limit: Ya has alcanzado la cantidad máxima de etiquetas hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." filters: contexts: @@ -1352,7 +1352,7 @@ es: one: "%{count} elemento que coincide con su búsqueda está seleccionado." other: Todos los %{count} elementos que coinciden con su búsqueda están seleccionados. cancel: Cancelar - changes_saved_msg: "¡Cambios guardados con éxito!" + changes_saved_msg: "¡Los cambios se han guardado correctamente!" confirm: Confirmar copy: Copiar delete: Eliminar @@ -1376,7 +1376,7 @@ es: too_large: El archivo es demasiado grande failures: Fallos imported: Importado - mismatched_types_warning: Parece que podrías haber seleccionado el tipo incorrecto para esta importación, por favor vuelve a verificarlo. + mismatched_types_warning: Parece que has seleccionado el tipo incorrecto para esta importación, vuelve a comprobarlo. modes: merge: Unir merge_long: Mantener registros existentes y añadir nuevos @@ -1737,7 +1737,7 @@ es: development: Desarrollo edit_profile: Editar perfil export: Exportar - featured_tags: Hashtags destacados + featured_tags: Etiquetas destacadas import: Importar import_and_export: Importar y exportar migrate: Migración de cuenta @@ -1777,8 +1777,8 @@ es: content_warning: 'Alerta de contenido: %{warning}' default_language: Igual que el idioma de la interfaz disallowed_hashtags: - one: 'contenía un hashtag no permitido: %{tags}' - other: 'contenía los hashtags no permitidos: %{tags}' + one: 'contenía una etiqueta no permitida: %{tags}' + other: 'contenía las etiquetas no permitidas: %{tags}' edited_at_html: Editado %{date} errors: in_reply_not_found: La publicación a la que intentas responder no existe. @@ -1803,9 +1803,9 @@ es: exceptions: Excepciones explanation: Debido a que la eliminación de mensajes es una operación costosa, esto se hace lentamente, a lo largo de un tiempo, cuando el servidor no está ocupado. Por este motivo, puede que tus publicaciones sean borradas algo después de que alcancen el umbral de tiempo especificado. ignore_favs: Ignorar favoritos - ignore_reblogs: Ignorar reblogueos + ignore_reblogs: Ignorar impulsos interaction_exceptions: Excepciones basadas en interacciones - interaction_exceptions_explanation: Ten en cuenta que no hay garantía de que se eliminen las publicaciones que están por debajo de los umbrales de favoritos o de reblogueos si los han superado en algún momento. + interaction_exceptions_explanation: Ten en cuenta que no hay garantía de que se eliminen las publicaciones que están por debajo de los umbrales de favoritos o de impulsos si los han superado en algún momento. keep_direct: Mantener mensajes directos keep_direct_hint: No elimina ninguno de tus mensajes directos keep_media: Mantener publicaciones con multimedia adjunto @@ -1831,7 +1831,7 @@ es: min_favs: Mantener mensajes con un número de favoritos mayor que min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos min_reblogs: Mantener publicaciones reblogueadas más de - min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos + min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido impulsadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de impulsos stream_entries: sensitive_content: Contenido sensible strikes: @@ -1982,7 +1982,7 @@ es: verification: extra_instructions_html: Consejo: El enlace en tu web puede ser invisible. La parte importante es rel="me", que evita la suplantación de identidad en sitios con contenido generado por el usuario. Puedes incluso usar una etiqueta enlace en el encabezado de la página en vez de a, pero el HTML debe ser accesible sin ejecutar JavaScript. here_is_how: Así es como se hace - hint_html: "Verificar tu identidad en Mastodon es para todos. Basado en estándares web abiertos, ahora y para siempre. Todo lo que necesitas es un sitio web propio que la gente reconozca. Cuando enlaces a este sitio web desde tu perfil, comprobaremos que el sitio web se enlaza a tu perfil y mostraremos un indicador visual en él." + hint_html: "Verificar tu identidad en Mastodon es para todos. Basado en estándares web abiertos, ahora y siempre gratis. Todo lo que necesitas es un sitio web personal por el que la gente te reconozca. Cuando enlaces a este sitio web desde tu perfil, comprobaremos que el sitio web enlaza con tu perfil y mostraremos un indicador visual en él." instructions_html: Copia y pega el siguiente código en el HTML de tu sitio web. A continuación, añade la dirección de su sitio web en uno de los campos extra de tu perfil desde la pestaña "Editar perfil" y guarda los cambios. verification: Verificación verified_links: Tus enlaces verificados diff --git a/config/locales/hu.yml b/config/locales/hu.yml index f23711d403..c3420205c8 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1945,7 +1945,7 @@ hu: feature_moderation_title: Moderálás, ahogy annak lennie kell follow_action: Követés follow_step: A Mastodon az érdekes emberek követéséről szól. - follow_title: Saját hírfolyam testreszabása + follow_title: Kezdőlapi hírfolyam testreszabása follows_subtitle: Jól ismert fiókok követése follows_title: Kit érdemes követni follows_view_more: További követendő személyek megtekintése diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 3e44adbf46..cc4f4d9cfc 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -190,6 +190,7 @@ lv: create_domain_block: Izveidot Domēna Bloku create_email_domain_block: Izveidot e-pasta domēna liegumu create_ip_block: Izveidot IP noteikumu + create_relay: Izveidot retranslāciju create_unavailable_domain: Izveidot Nepieejamu Domēnu create_user_role: Izveidot lomu demote_user: Pazemināt Lietotāju @@ -201,14 +202,17 @@ lv: destroy_email_domain_block: Izdzēst e-pasta domēna liegumu destroy_instance: Attīrīt domēnu destroy_ip_block: Dzēst IP noteikumu + destroy_relay: Izdzēst retranslāciju destroy_status: Izdzēst Rakstu destroy_unavailable_domain: Dzēst Nepieejamu Domēnu destroy_user_role: Iznīcināt lomu disable_2fa_user: Atspējot 2FA disable_custom_emoji: Atspējot pielāgotu emocijzīmi + disable_relay: Atspējot retranslāciju disable_sign_in_token_auth_user: Atspējot autentificēšanos ar e-pasta pilnvaru lietotājam disable_user: Atspējot Lietotāju enable_custom_emoji: Iespējot pielāgotu emocijzīmi + enable_relay: Iespējot retranslāciju enable_sign_in_token_auth_user: Iespējot autentificēšanos ar e-pasta pilnvaru lietotājam enable_user: Ieslēgt Lietotāju memorialize_account: Saglabāt Kontu Piemiņai @@ -817,6 +821,7 @@ lv: batch: remove_from_report: Noņemt no ziņojuma report: Ziņojums + contents: Saturs deleted: Dzēstie favourites: Izlase history: Versiju vēsture diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index defb13325b..3a70c41097 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -3,6 +3,7 @@ ca: simple_form: hints: account: + attribution_domains_as_text: Un per línia. Protegeix de falses atribucions. discoverable: El teu perfil i els teus tuts públics poden aparèixer o ser recomanats en diverses àreas de Mastodon i el teu perfil pot ser suggerit a altres usuaris. display_name: El teu nom complet o el teu nom divertit. fields: La teva pàgina d'inici, pronoms, edat, el que vulguis. @@ -143,6 +144,7 @@ ca: url: On els esdeveniments seran enviats labels: account: + attribution_domains_as_text: Webs que us poden donar crèdit discoverable: Permet el perfil i el tuts en els algorismes de descobriment fields: name: Etiqueta diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index a0338a3029..b668f32209 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -16,7 +16,7 @@ es: account_migration: acct: Especifica el nombre_de_usuario@dominio de la cuenta hacia la que quieres migrar account_warning_preset: - text: Puede usar sintaxis de publicaciones, como URLs, hashtags y menciones + text: Puede usar sintaxis de publicaciones, como URLs, etiquetas y menciones title: Opcional. No es visible para el destinatario admin_account_action: include_statuses: El usuario verá qué publicaciones han causado la acción de moderación o advertencia @@ -46,12 +46,12 @@ es: current_password: Por razones de seguridad por favor ingrese la contraseña de la cuenta actual current_username: Para confirmar, por favor ingrese el nombre de usuario de la cuenta actual digest: Solo enviado tras un largo periodo de inactividad y solo si has recibido mensajes personales durante tu ausencia - email: Se le enviará un correo de confirmación + email: Te enviaremos un correo electrónico de confirmación header: WEBP, PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px inbox_url: Copia la URL de la página principal del relés que quieres utilizar irreversible: Las publicaciones filtradas desaparecerán irreversiblemente, incluso si este filtro es eliminado más adelante locale: El idioma de la interfaz de usuario, correos y notificaciones push - password: Utilice al menos 8 caracteres + password: Utiliza al menos 8 caracteres phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de una publicación scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales. setting_aggregate_reblogs: No mostrar nuevos impulsos para las publicaciones que han sido recientemente impulsadas (sólo afecta a los impulsos recibidos recientemente) @@ -101,7 +101,7 @@ es: thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor. trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. - trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. + trends: Las tendencias muestran qué publicaciones, etiquetas y noticias están ganando tracción en tu servidor. trends_as_landing_page: Mostrar contenido en tendencia para usuarios y visitantes en lugar de una descripción de este servidor. Requiere que las tendencias estén habilitadas. form_challenge: current_password: Estás entrando en un área segura @@ -193,7 +193,7 @@ es: email: Dirección de correo electrónico expires_in: Expirar tras fields: Metadatos de perfil - header: Img. cabecera + header: Imagen de encabezado honeypot: "%{label} (no rellenar)" inbox_url: URL de la entrada de relés irreversible: Rechazar en lugar de ocultar @@ -208,7 +208,7 @@ es: setting_aggregate_reblogs: Agrupar impulsos en las líneas de tiempo setting_always_send_emails: Enviar siempre notificaciones por correo setting_auto_play_gif: Reproducir automáticamente los GIFs animados - setting_boost_modal: Mostrar ventana de confirmación antes de impulsar + setting_boost_modal: Mostrar diálogo de confirmación antes de impulsar una publicación setting_default_language: Idioma de publicación setting_default_privacy: Privacidad de publicaciones setting_default_sensitive: Marcar siempre imágenes como sensibles @@ -339,5 +339,5 @@ es: text: necesario title: sessions: - webauthn: Utilice una de sus claves de seguridad para iniciar sesión + webauthn: Utiliza una de sus claves de seguridad para iniciar sesión 'yes': Sí diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index 0ba54e26ce..f8f4d3f119 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -10,6 +10,7 @@ th: indexable: โพสต์สาธารณะของคุณอาจปรากฏในผลลัพธ์การค้นหาใน Mastodon ผู้คนที่ได้โต้ตอบกับโพสต์ของคุณอาจสามารถค้นหาโพสต์เหล่านั้นได้ไม่ว่าอย่างไรก็ตาม note: 'คุณสามารถ @กล่าวถึง ผู้คนอื่น ๆ หรือ #แฮชแท็ก' show_collections: ผู้คนจะสามารถเรียกดูการติดตามและผู้ติดตามของคุณ ผู้คนที่คุณติดตามจะเห็นว่าคุณติดตามเขาไม่ว่าอย่างไรก็ตาม + unlocked: ผู้คนจะสามารถติดตามคุณได้โดยไม่ต้องขอการอนุมัติ เลิกกาเครื่องหมายหากคุณต้องการตรวจทานคำขอติดตามและเลือกว่าจะยอมรับหรือปฏิเสธผู้ติดตามใหม่ account_alias: acct: ระบุ username@domain ของบัญชีที่คุณต้องการย้ายจาก account_migration: diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 04c23f1706..f0f1bf15c5 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -42,14 +42,14 @@ zh-CN: autofollow: 通过邀请链接注册的用户将会自动关注你 avatar: 支持WEBP、PNG、GIF 或 JPG。最大 %{size}。将缩小到 %{dimensions}px bot: 来自这个账户的绝大多数操作都是自动进行的,并且可能无人监控 - context: 过滤器的应用环境 + context: 过滤规则将被应用到的一个或多个场景 current_password: 为了安全起见,请输入当前账号的密码 current_username: 请输入当前账号的用户名以确认 digest: 仅在你长时间未登录,且收到了私信时发送 email: 我们会向你发送一封确认邮件 - header: 支持WEBP、PNG、GIF 或 JPG。最大 %{size}。将缩小到 %{dimensions}px + header: 支持WEBP、PNG、GIF 或 JPG。最大 %{size}。分辨率将被压缩至 %{dimensions}px inbox_url: 从你想要使用的中继站的主页上复制 URL - irreversible: 已过滤的嘟文会不可逆转地消失,即便移除过滤器之后也一样 + irreversible: 被过滤的嘟文会永久消失,移除过滤规则后也不会恢复 locale: 在用户界面、电子邮件和推送通知中使用的语言 password: 至少需要8个字符 phrase: 匹配将忽略嘟文或内容警告里的字母大小写 @@ -72,10 +72,10 @@ zh-CN: featured_tag: name: 以下是你最近使用过的标签: filters: - action: 选择在嘟文命中过滤器时要执行的操作 + action: 选择在嘟文命中过滤规则时要执行的操作 actions: - hide: 彻底屏蔽过滤内容,犹如它不曾存在过一般 - warn: 在警告中提及过滤器标题后,隐藏过滤内容 + hide: 彻底隐藏过滤内容,就像它从未存在过一样 + warn: 显示带有过滤规则标题的警告,并隐藏过滤内容 form_admin_settings: activity_api_enabled: 本站每周的嘟文数、活跃用户数和新注册用户数 app_icon: WEBP、PNG、GIF 或 JPG。使用自定义图标覆盖移动设备上的默认应用图标。 @@ -125,7 +125,7 @@ zh-CN: otp: 输入你手机应用上生成的双因素认证代码,或者任意一个恢复代码: webauthn: 如果是 USB 密钥,请确保将其插入,如有必要,请点击它。 settings: - indexable: 你的个人资料页面可能会出现在Google、Bing等搜索结果中。 + indexable: 你的账户页可能会出现在Google、Bing等的搜索结果中。 show_application: 无论如何,你始终可以看到是哪个应用发布了你的嘟文。 tag: name: 你只能改变字母的大小写,让它更易读 @@ -145,12 +145,12 @@ zh-CN: labels: account: attribution_domains_as_text: 授权展示你的署名的网站 - discoverable: 在发现算法中展示你的个人资料和嘟文 + discoverable: 在发现算法中展示你的账户与嘟文 fields: name: 标签 value: 内容 indexable: 将公开嘟文纳入搜索范围 - show_collections: 在个人资料中显示关注和关注者 + show_collections: 在账户页显示关注和关注者 unlocked: 自动接受新关注者 account_alias: acct: 处理旧账号 @@ -183,17 +183,17 @@ zh-CN: autofollow: 让被邀请人关注你的账户 avatar: 头像 bot: 这是一个机器人账户 - chosen_languages: 语言过滤 + chosen_languages: 过滤语言 confirm_new_password: 确认新密码 confirm_password: 确认密码 - context: 过滤环境 + context: 过滤规则生效场景 current_password: 当前密码 data: 数据文件 display_name: 昵称 email: 邮箱地址 expires_in: 失效时间 fields: 个人资料附加信息 - header: 个人资料页横幅图片 + header: 封面图 honeypot: "%{label} (请勿填写)" inbox_url: 中继站收件箱的 URL irreversible: 丢弃而非隐藏 @@ -213,7 +213,7 @@ zh-CN: setting_default_privacy: 嘟文默认可见范围 setting_default_sensitive: 始终标记媒体为敏感内容 setting_delete_modal: 在删除嘟文前询问我 - setting_disable_hover_cards: 禁用悬停资料预览 + setting_disable_hover_cards: 禁用悬停资料卡预览 setting_disable_swiping: 禁用滑动动作 setting_display_media: 媒体显示 setting_display_media_default: 默认 @@ -242,7 +242,7 @@ zh-CN: filters: actions: hide: 完全隐藏 - warn: 隐藏时显示警告信息 + warn: 隐藏时显示警告 form_admin_settings: activity_api_enabled: 在 API 中发布有关用户活动的汇总统计数据 app_icon: 应用图标 @@ -310,8 +310,8 @@ zh-CN: hint: 补充信息 text: 规则 settings: - indexable: 允许搜索引擎索引个人资料页面 - show_application: 显示 + indexable: 允许搜索引擎索引账户页 + show_application: 显示你发嘟所用的应用 tag: listable: 允许这个话题标签在用户目录中显示 name: 话题标签 diff --git a/config/locales/th.yml b/config/locales/th.yml index 5178506bab..6834f8ac26 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -184,6 +184,7 @@ th: create_domain_block: สร้างการปิดกั้นโดเมน create_email_domain_block: สร้างการปิดกั้นโดเมนอีเมล create_ip_block: สร้างกฎ IP + create_relay: สร้างรีเลย์ create_unavailable_domain: สร้างโดเมนที่ไม่พร้อมใช้งาน create_user_role: สร้างบทบาท demote_user: ลดขั้นผู้ใช้ @@ -195,14 +196,17 @@ th: destroy_email_domain_block: ลบการปิดกั้นโดเมนอีเมล destroy_instance: ล้างข้อมูลโดเมน destroy_ip_block: ลบกฎ IP + destroy_relay: ลบรีเลย์ destroy_status: ลบโพสต์ destroy_unavailable_domain: ลบโดเมนที่ไม่พร้อมใช้งาน destroy_user_role: ทำลายบทบาท disable_2fa_user: ปิดใช้งาน 2FA disable_custom_emoji: ปิดใช้งานอีโมจิที่กำหนดเอง + disable_relay: ปิดใช้งานรีเลย์ disable_sign_in_token_auth_user: ปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับผู้ใช้ disable_user: ปิดใช้งานผู้ใช้ enable_custom_emoji: เปิดใช้งานอีโมจิที่กำหนดเอง + enable_relay: เปิดใช้งานรีเลย์ enable_sign_in_token_auth_user: เปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับผู้ใช้ enable_user: เปิดใช้งานผู้ใช้ memorialize_account: ทำให้บัญชีเป็นอนุสรณ์ @@ -244,6 +248,7 @@ th: create_domain_block_html: "%{name} ได้ปิดกั้นโดเมน %{target}" create_email_domain_block_html: "%{name} ได้ปิดกั้นโดเมนอีเมล %{target}" create_ip_block_html: "%{name} ได้สร้างกฎสำหรับ IP %{target}" + create_relay_html: "%{name} ได้สร้างรีเลย์ %{target}" create_unavailable_domain_html: "%{name} ได้หยุดการจัดส่งไปยังโดเมน %{target}" create_user_role_html: "%{name} ได้สร้างบทบาท %{target}" demote_user_html: "%{name} ได้ลดขั้นผู้ใช้ %{target}" @@ -255,14 +260,17 @@ th: destroy_email_domain_block_html: "%{name} ได้เลิกปิดกั้นโดเมนอีเมล %{target}" destroy_instance_html: "%{name} ได้ล้างข้อมูลโดเมน %{target}" destroy_ip_block_html: "%{name} ได้ลบกฎสำหรับ IP %{target}" + destroy_relay_html: "%{name} ได้ลบรีเลย์ %{target}" destroy_status_html: "%{name} ได้เอาโพสต์โดย %{target} ออก" destroy_unavailable_domain_html: "%{name} ได้ทำการจัดส่งไปยังโดเมน %{target} ต่อ" destroy_user_role_html: "%{name} ได้ลบบทบาท %{target}" disable_2fa_user_html: "%{name} ได้ปิดใช้งานความต้องการสองปัจจัยสำหรับผู้ใช้ %{target}" disable_custom_emoji_html: "%{name} ได้ปิดใช้งานอีโมจิ %{target}" + disable_relay_html: "%{name} ได้ปิดใช้งานรีเลย์ %{target}" disable_sign_in_token_auth_user_html: "%{name} ได้ปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับ %{target}" disable_user_html: "%{name} ได้ปิดใช้งานการเข้าสู่ระบบสำหรับผู้ใช้ %{target}" enable_custom_emoji_html: "%{name} ได้เปิดใช้งานอีโมจิ %{target}" + enable_relay_html: "%{name} ได้เปิดใช้งานรีเลย์ %{target}" enable_sign_in_token_auth_user_html: "%{name} ได้เปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับ %{target}" enable_user_html: "%{name} ได้เปิดใช้งานการเข้าสู่ระบบสำหรับผู้ใช้ %{target}" memorialize_account_html: "%{name} ได้เปลี่ยนบัญชีของ %{target} เป็นหน้าอนุสรณ์" @@ -804,8 +812,10 @@ th: back_to_account: กลับไปที่หน้าบัญชี back_to_report: กลับไปที่หน้ารายงาน batch: + add_to_report: 'เพิ่มไปยังรายงาน #%{id}' remove_from_report: เอาออกจากรายงาน report: รายงาน + contents: เนื้อหา deleted: ลบแล้ว favourites: รายการโปรด history: ประวัติรุ่น @@ -814,12 +824,17 @@ th: media: title: สื่อ metadata: ข้อมูลอภิพันธุ์ + no_history: ไม่มีการแก้ไขโพสต์นี้ no_status_selected: ไม่มีการเปลี่ยนแปลงโพสต์เนื่องจากไม่มีการเลือก open: เปิดโพสต์ original_status: โพสต์ดั้งเดิม reblogs: การดัน + replied_to_html: ตอบกลับ %{acct_link} status_changed: เปลี่ยนโพสต์แล้ว + status_title: โพสต์โดย @%{name} + title: โพสต์ของบัญชี - @%{name} trending: กำลังนิยม + view_publicly: ดูแบบสาธารณะ visibility: การมองเห็น with_media: มีสื่อ strikes: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 1623f39ad6..d2170d3e11 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -11,8 +11,8 @@ zh-CN: other: 关注者 following: 正在关注 instance_actor_flash: 该账号用来代表虚拟角色,并不代表个人用户,仅代表服务器本身。该账号用于联合目的,不应该被停用。 - last_active: 最近活动 - link_verified_on: 此链接的所有权已在 %{date} 检查 + last_active: 上次活跃 + link_verified_on: 此链接的所有权已在 %{date} 验证 nothing_here: 空空如也! pin_errors: following: 你必须关注你要推荐的人 @@ -25,7 +25,7 @@ zh-CN: action: 执行操作 already_silenced: 此账户已受限。 already_suspended: 此账户已被封禁。 - title: 在 %{acct} 上执行管理操作 + title: 对 %{acct} 执行管理操作 account_moderation_notes: create: 新建记录 created_msg: 管理记录创建成功! @@ -73,7 +73,7 @@ zh-CN: enabled_msg: 成功解冻 %{username} 的账号 followers: 粉丝 follows: 关注 - header: 个人资料页横幅图片 + header: 封面图 inbox_url: 收件箱(Inbox)URL invite_request_text: 加入理由 invited_by: 邀请者为 @@ -82,7 +82,7 @@ zh-CN: location: all: 全部 local: 本站 - remote: 远端实例 + remote: 外站 title: 位置 login_status: 登录状态 media_attachments: 媒体文件 @@ -113,16 +113,16 @@ zh-CN: protocol: 协议 public: 公开页面 push_subscription_expires: PuSH 订阅过期时间 - redownload: 刷新个人资料 - redownloaded_msg: 成功从来源处刷新 %{username} 的用户资料 + redownload: 刷新账户信息 + redownloaded_msg: 成功从来源站点刷新 %{username} 的账户信息 reject: 拒绝 rejected_msg: 已拒绝 %{username} 的注册申请 remote_suspension_irreversible: 此账户的数据已被不可逆转地删除。 remote_suspension_reversible_hint_html: 账号已在他们的服务器上封禁,数据将在 %{date} 完全删除。 在此之前,远程服务器仍可恢复此账号,并且没有任何不良影响。 如果你想立即移除该账号的所有数据,可以在下面进行。 remove_avatar: 删除头像 - remove_header: 删除横幅图片 + remove_header: 移除封面图 removed_avatar_msg: 成功删除 %{username} 的头像 - removed_header_msg: 成功删除了 %{username} 的横幅图片 + removed_header_msg: 成功移除 %{username} 的封面图 resend_confirmation: already_confirmed: 该用户已被确认 send: 重新发送确认链接 @@ -299,8 +299,8 @@ zh-CN: update_user_role_html: "%{name} 更改了 %{target} 角色" deleted_account: 账号已注销 empty: 没有找到日志 - filter_by_action: 根据行为过滤 - filter_by_user: 根据用户过滤 + filter_by_action: 根据操作筛选 + filter_by_user: 根据用户筛选 title: 审核日志 unavailable_instance: "(域名不可用)" announcements: @@ -547,7 +547,7 @@ zh-CN: filter: all: 全部 available: 可用 - expired: 已失效 + expired: 已过期 title: 筛选 title: 邀请用户 ip_blocks: @@ -637,7 +637,7 @@ zh-CN: notes_description_html: 查看备注或向其他监察员留言 processed_msg: '举报 #%{id} 处理成功' quick_actions_description_html: 快捷选择操作或向下滚动以查看举报内容: - remote_user_placeholder: 来自 %{instance} 的远程实例用户 + remote_user_placeholder: 来自 %{instance} 的外站用户 reopen: 重开举报 report: '举报 #%{id}' reported_account: 举报用户 @@ -673,7 +673,7 @@ zh-CN: unknown_action_msg: 未知操作:%{action} unresolved: 未处理 updated_at: 更新时间 - view_profile: 查看资料 + view_profile: 查看账户 roles: add_new: 添加角色 assigned_users: @@ -1070,7 +1070,7 @@ zh-CN: settings: 更改邮件偏好: %{link} unsubscribe: 取消订阅 view: 点此链接查看详情: - view_profile: 查看个人资料页 + view_profile: 查看账户页 view_status: 查看嘟文 applications: created: 应用创建成功 @@ -1285,8 +1285,8 @@ zh-CN: hint_html: "什么是精选话题标签? 它们被显示在你的公开个人资料中的突出位置,人们可以在这些标签下浏览你的公共嘟文。 它们是跟踪创作或长期项目的进度的重要工具。" filters: contexts: - account: 个人资料 - home: 主页时间线 + account: 账户 + home: 主页与列表 notifications: 通知 public: 公共时间线 thread: 对话 @@ -1294,33 +1294,33 @@ zh-CN: add_keyword: 添加关键词 keywords: 关键词 statuses: 个别嘟文 - statuses_hint_html: 无论是否匹配下列关键词,此过滤器适用于选用个别嘟文。从过滤器中审核嘟文或移除嘟文。 - title: 编辑过滤器 + statuses_hint_html: 无论是否匹配下列关键词,此过滤规则均适用于选中的个别嘟文。在过滤规则页面检查或移除这些嘟文 + title: 编辑过滤规则 errors: - deprecated_api_multiple_keywords: 这些参数不能从此应用程序更改,因为它们应用于一个以上的过滤关键字。 使用较新的应用程序或网页界面。 - invalid_context: 提供的过滤器环境没有或无效 + deprecated_api_multiple_keywords: 不能在此应用中更改这些参数,因为它们应用于不止一个过滤关键词。请使用较新的应用程序或网页界面。 + invalid_context: 过滤规则生效场景为空或无效 index: - contexts: 在 %{contexts} 中的过滤器 + contexts: 过滤 %{contexts} delete: 删除 - empty: 你没有过滤器。 - expires_in: 在 %{distance} 后过期 - expires_on: "%{date} 后到期" + empty: 你没有过滤规则。 + expires_in: "%{distance} 后到期" + expires_on: 在 %{date} 到期 keywords: - other: "%{count} 关键词" + other: "%{count} 个关键词" statuses: other: "%{count} 条嘟文" statuses_long: - other: "%{count} 条个别嘟文已隐藏" - title: 过滤器 + other: 已隐藏 %{count} 条个别嘟文 + title: 过滤规则 new: - save: 保存新过滤器 - title: 添加新的过滤器 + save: 保存过滤规则 + title: 新建过滤规则 statuses: - back_to_filter: 返回过滤器 + back_to_filter: 返回过滤规则 batch: - remove: 从过滤器中移除 + remove: 从过滤规则中移除 index: - hint: 无论其他条件如何,此过滤器适用于选用个别嘟文。你可以从网页界面中向此过滤器加入更多嘟文。 + hint: 此过滤规则适用于选中的个别嘟文,不受其它条件限制。你可以通过网页界面向此过滤规则添加更多嘟文。 title: 过滤的嘟文 generic: all: 全部 @@ -1752,7 +1752,7 @@ zh-CN: private: 仅关注者 private_long: 只有关注你的用户能看到 public: 公开 - public_long: 所有人可见,并会出现在公共时间线上 + public_long: 所有人可见 unlisted: 悄悄公开 unlisted_long: 对所有人可见,但不出现在公共时间线上 statuses_cleanup: @@ -1910,7 +1910,7 @@ zh-CN: feature_moderation_title: 管理,本应如此 follow_action: 关注 follow_step: 关注有趣的人,这就是 Mastodon 的意义所在。 - follow_title: 个性化你的首页动态 + follow_title: 个性化你的主页动态 follows_subtitle: 关注知名账户 follows_title: 推荐关注 follows_view_more: 查看更多可关注的人 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 701ea0ea53..d14bfee1b4 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1904,7 +1904,7 @@ zh-TW: feature_action: 了解更多 feature_audience: Mastodon 為您打開了一扇獨特的門,使您不受平台干擾,自由地管理您的受眾。只需將 Mastodon 部署於您自己的基礎設施上,您便能與線上任何 Mastodon 伺服器互動,而且控制權只在您手中。 feature_audience_title: 自信地建立您的受眾 - feature_control: 您最清楚自己想於首頁動態看到什麼內容,別讓演算法與廣告浪費您寶貴的時間。自同一帳號跟隨任何 Mastodon 伺服器上的任何一個人,依時間順序接收他們的嘟文,建立屬於自己的網路小角落。 + feature_control: 您最清楚自己想於首頁時間軸看到什麼內容,別讓演算法與廣告浪費您寶貴的時間。自同一帳號跟隨任何 Mastodon 伺服器上的任何一個人,依時間順序接收他們的嘟文,建立屬於自己的網路小角落。 feature_control_title: 掌控自己的時間軸 feature_creativity: Mastodon 支援音訊、影片及圖片嘟文、無障礙說明文字、投票、內容警告、動畫大頭貼、自訂 emoji 表情符號、縮圖裁剪控制等等,協助您表達自我。無論是發佈藝術作品、音樂,或是 podcast,Mastodon 將隨時陪伴著您。 feature_creativity_title: 無與倫比的創意 From 7fb0880e1e8325973ef2774f9fea159495d647d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:17:52 +0100 Subject: [PATCH 021/246] Update dependency husky to v9.1.7 (#33058) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 20d00347b8..86fbc7e184 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9534,11 +9534,11 @@ __metadata: linkType: hard "husky@npm:^9.0.11": - version: 9.1.6 - resolution: "husky@npm:9.1.6" + version: 9.1.7 + resolution: "husky@npm:9.1.7" bin: husky: bin.js - checksum: 10c0/705673db4a247c1febd9c5df5f6a3519106cf0335845027bb50a15fba9b1f542cb2610932ede96fd08008f6d9f49db0f15560509861808b0031cdc0e7c798bac + checksum: 10c0/35bb110a71086c48906aa7cd3ed4913fb913823715359d65e32e0b964cb1e255593b0ae8014a5005c66a68e6fa66c38dcfa8056dbbdfb8b0187c0ffe7ee3a58f languageName: node linkType: hard From fd90f04f0ea630f24d69084263b3a1fa90e479e7 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 25 Nov 2024 03:18:07 -0500 Subject: [PATCH 022/246] Add coverage for `UserRole` validations (#33029) --- spec/models/user_role_spec.rb | 64 ++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb index 4ab66c3260..4ad7e04217 100644 --- a/spec/models/user_role_spec.rb +++ b/spec/models/user_role_spec.rb @@ -3,9 +3,69 @@ require 'rails_helper' RSpec.describe UserRole do - subject { described_class.create(name: 'Foo', position: 1) } + describe 'Validations' do + describe 'name' do + context 'when everyone' do + subject { described_class.everyone } + + it { is_expected.to_not validate_presence_of(:name) } + end + + context 'when not everyone' do + subject { Fabricate.build :user_role } + + it { is_expected.to validate_presence_of(:name) } + end + end + + describe 'color' do + it { is_expected.to allow_values('#112233', '#aabbcc', '').for(:color) } + it { is_expected.to_not allow_values('x', '112233445566', '#xxyyzz').for(:color) } + end + + context 'when current_account is set' do + subject { Fabricate :user_role } + + let(:account) { Fabricate :account } + + before { subject.current_account = account } + + it { is_expected.to_not allow_value(999_999).for(:position).with_message(:elevated) } + + it { is_expected.to_not allow_value(999_999).for(:permissions).against(:permissions_as_keys).with_message(:elevated) } + + context 'when current_account is changing their own role' do + let(:account) { Fabricate :account, user: Fabricate(:user, role: subject) } + + it { is_expected.to_not allow_value(100).for(:permissions).against(:permissions_as_keys).with_message(:own_role) } + it { is_expected.to_not allow_value(100).for(:position).with_message(:own_role) } + end + end + end + + describe 'Callback for position' do + context 'when everyone' do + subject { Fabricate.build :user_role, id: described_class::EVERYONE_ROLE_ID } + + it 'sets the position to nobody position' do + expect { subject.valid? } + .to change(subject, :position).to(described_class::NOBODY_POSITION) + end + end + + context 'when not everyone' do + subject { Fabricate.build :user_role } + + it 'does not change the position' do + expect { subject.valid? } + .to_not change(subject, :position) + end + end + end describe '#can?' do + subject { Fabricate :user_role } + context 'with a single flag' do it 'returns true if any of them are present' do subject.permissions = described_class::FLAGS[:manage_reports] @@ -92,6 +152,8 @@ RSpec.describe UserRole do end describe '#computed_permissions' do + subject { Fabricate :user_role } + context 'when the role is nobody' do subject { described_class.nobody } From ab9c62e8c7d71296f426b8c1a8c5c892bc570523 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 25 Nov 2024 03:18:10 -0500 Subject: [PATCH 023/246] Add coverage for `User` validations (#33028) --- spec/models/user_spec.rb | 49 +++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 9a5a070d25..f39b80c942 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -33,14 +33,12 @@ RSpec.describe User do end end - describe 'validations' do + describe 'Associations' do it { is_expected.to belong_to(:account).required } + end - it 'is invalid without a valid email' do - user = Fabricate.build(:user, email: 'john@') - user.valid? - expect(user).to model_have_error_on_field(:email) - end + describe 'Validations' do + it { is_expected.to_not allow_value('john@').for(:email) } it 'is valid with an invalid e-mail that has already been saved' do user = Fabricate.build(:user, email: 'invalid-email') @@ -48,11 +46,7 @@ RSpec.describe User do expect(user.valid?).to be true end - it 'is valid with a localhost e-mail address' do - user = Fabricate.build(:user, email: 'admin@localhost') - user.valid? - expect(user.valid?).to be true - end + it { is_expected.to allow_value('admin@localhost').for(:email) } end describe 'Normalizations' do @@ -183,6 +177,39 @@ RSpec.describe User do end end + describe '#update_sign_in!' do + context 'with an existing user' do + let!(:user) { Fabricate :user, last_sign_in_at: 10.days.ago, current_sign_in_at: 1.hour.ago, sign_in_count: 123 } + + context 'with new sign in false' do + it 'updates timestamps but not counts' do + expect { user.update_sign_in!(new_sign_in: false) } + .to change(user, :last_sign_in_at) + .and change(user, :current_sign_in_at) + .and not_change(user, :sign_in_count) + end + end + + context 'with new sign in true' do + it 'updates timestamps and counts' do + expect { user.update_sign_in!(new_sign_in: true) } + .to change(user, :last_sign_in_at) + .and change(user, :current_sign_in_at) + .and change(user, :sign_in_count).by(1) + end + end + end + + context 'with a new user' do + let(:user) { Fabricate.build :user } + + it 'does not persist the user' do + expect { user.update_sign_in! } + .to_not change(user, :persisted?).from(false) + end + end + end + describe '#confirmed?' do it 'returns true when a confirmed_at is set' do user = Fabricate.build(:user, confirmed_at: Time.now.utc) From 74df47ad9cc5801041b4fc19d542bc79f000026c Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 25 Nov 2024 03:19:16 -0500 Subject: [PATCH 024/246] Add coverage for `Webhook` validations (#33026) --- app/models/webhook.rb | 2 +- spec/models/webhook_spec.rb | 116 +++++++++++++++++++++++++++++++++--- 2 files changed, 108 insertions(+), 10 deletions(-) diff --git a/app/models/webhook.rb b/app/models/webhook.rb index 304b2b1f18..f9d6564c92 100644 --- a/app/models/webhook.rb +++ b/app/models/webhook.rb @@ -53,7 +53,7 @@ class Webhook < ApplicationRecord end def required_permissions - events.map { |event| Webhook.permission_for_event(event) } + events.map { |event| Webhook.permission_for_event(event) }.uniq end def self.permission_for_event(event) diff --git a/spec/models/webhook_spec.rb b/spec/models/webhook_spec.rb index 03ef1dcc68..18a6047dd0 100644 --- a/spec/models/webhook_spec.rb +++ b/spec/models/webhook_spec.rb @@ -6,20 +6,28 @@ RSpec.describe Webhook do let(:webhook) { Fabricate(:webhook) } describe 'Validations' do + subject { Fabricate.build :webhook } + it { is_expected.to validate_presence_of(:events) } - it 'requires non-empty events value' do - record = described_class.new(events: []) - record.valid? + it { is_expected.to_not allow_values([], %w(account.invalid)).for(:events) } - expect(record).to model_have_error_on_field(:events) - end + it { is_expected.to_not allow_values('{{account }').for(:template) } - it 'requires valid events value from EVENTS' do - record = described_class.new(events: ['account.invalid']) - record.valid? + context 'when current_account is assigned' do + subject { Fabricate.build :webhook, current_account: account } - expect(record).to model_have_error_on_field(:events) + context 'with account that has permissions' do + let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } + + it { is_expected.to allow_values(%w(account.created)).for(:events) } + end + + context 'with account lacking permissions' do + let(:account) { Fabricate :account } + + it { is_expected.to_not allow_values(%w(account.created)).for(:events) } + end end end @@ -29,6 +37,96 @@ RSpec.describe Webhook do end end + describe 'Callbacks' do + describe 'Generating a secret' do + context 'when secret exists already' do + subject { described_class.new(secret: 'secret') } + + it 'does not override' do + expect { subject.valid? } + .to_not change(subject, :secret) + end + end + + context 'when secret does not exist' do + subject { described_class.new(secret: nil) } + + it 'does not override' do + expect { subject.valid? } + .to change(subject, :secret) + end + end + end + end + + describe '.permission_for_event' do + subject { described_class.permission_for_event(event) } + + context 'with a nil value' do + let(:event) { nil } + + it { is_expected.to be_nil } + end + + context 'with an account approved event' do + let(:event) { 'account.approved' } + + it { is_expected.to eq(:manage_users) } + end + + context 'with an account created event' do + let(:event) { 'account.created' } + + it { is_expected.to eq(:manage_users) } + end + + context 'with an account updated event' do + let(:event) { 'account.updated' } + + it { is_expected.to eq(:manage_users) } + end + + context 'with an report created event' do + let(:event) { 'report.created' } + + it { is_expected.to eq(:manage_reports) } + end + + context 'with an report updated event' do + let(:event) { 'report.updated' } + + it { is_expected.to eq(:manage_reports) } + end + + context 'with an status created event' do + let(:event) { 'status.created' } + + it { is_expected.to eq(:view_devops) } + end + + context 'with an status updated event' do + let(:event) { 'status.updated' } + + it { is_expected.to eq(:view_devops) } + end + end + + describe '#required_permissions' do + subject { described_class.new(events:).required_permissions } + + context 'with empty events' do + let(:events) { [] } + + it { is_expected.to eq([]) } + end + + context 'with multiple event types' do + let(:events) { %w(account.created account.updated status.created) } + + it { is_expected.to eq %i(manage_users view_devops) } + end + end + describe '#rotate_secret!' do it 'changes the secret' do expect { webhook.rotate_secret! } From 1be83c698231b1d4dacbf2a092af3dfba6faffbb Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 25 Nov 2024 10:18:06 +0100 Subject: [PATCH 025/246] Fix username and display name being hidden on narrow screens in moderation interface (#33064) --- app/javascript/styles/mastodon/widgets.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index e1e8797460..f467069052 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -82,9 +82,9 @@ .accounts-table { width: 100%; - table-layout: fixed; .account { + max-width: calc(56px + 30ch); padding: 0; border: 0; } From 1a88c052746e2454497e25e9c7d41f290468cf83 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 25 Nov 2024 11:23:09 +0100 Subject: [PATCH 026/246] Fix arrow in the wrong place on empty list members screen in web UI (#33054) --- app/javascript/mastodon/features/lists/members.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/lists/members.tsx b/app/javascript/mastodon/features/lists/members.tsx index bdd5064ce4..a1b50ffaf8 100644 --- a/app/javascript/mastodon/features/lists/members.tsx +++ b/app/javascript/mastodon/features/lists/members.tsx @@ -312,7 +312,7 @@ const ListMembers: React.FC<{ footer={ mode === 'remove' && ( <> -
+ {displayedAccountIds.length > 0 &&
}
From 2d8fed23e62521c2aba5cdbd5380906e955c665e Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 25 Nov 2024 11:27:58 +0100 Subject: [PATCH 027/246] Fix `TagFollow` records not being correctly handled in account operations (#33063) --- app/models/concerns/account/interactions.rb | 3 +++ app/models/concerns/account/merging.rb | 2 +- app/services/delete_account_service.rb | 1 + lib/mastodon/cli/maintenance.rb | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/account/interactions.rb b/app/models/concerns/account/interactions.rb index 6f6b8c16d0..6e2dc9126c 100644 --- a/app/models/concerns/account/interactions.rb +++ b/app/models/concerns/account/interactions.rb @@ -88,6 +88,9 @@ module Account::Interactions has_many :remote_severed_relationships, foreign_key: 'remote_account_id', inverse_of: :remote_account end + # Hashtag follows + has_many :tag_follows, inverse_of: :account, dependent: :destroy + # Account notes has_many :account_notes, dependent: :destroy diff --git a/app/models/concerns/account/merging.rb b/app/models/concerns/account/merging.rb index bd8b162238..181061c37e 100644 --- a/app/models/concerns/account/merging.rb +++ b/app/models/concerns/account/merging.rb @@ -16,7 +16,7 @@ module Account::Merging Follow, FollowRequest, Block, Mute, AccountModerationNote, AccountPin, AccountStat, ListAccount, PollVote, Mention, AccountDeletionRequest, AccountNote, FollowRecommendationSuppression, - Appeal + Appeal, TagFollow ] owned_classes.each do |klass| diff --git a/app/services/delete_account_service.rb b/app/services/delete_account_service.rb index 0c03267d43..7d06302af5 100644 --- a/app/services/delete_account_service.rb +++ b/app/services/delete_account_service.rb @@ -50,6 +50,7 @@ class DeleteAccountService < BaseService owned_lists scheduled_statuses status_pins + tag_follows ) ASSOCIATIONS_ON_DESTROY = %w( diff --git a/lib/mastodon/cli/maintenance.rb b/lib/mastodon/cli/maintenance.rb index 0b84047a1c..532fbc328a 100644 --- a/lib/mastodon/cli/maintenance.rb +++ b/lib/mastodon/cli/maintenance.rb @@ -43,6 +43,7 @@ module Mastodon::CLI class BulkImport < ApplicationRecord; end class SoftwareUpdate < ApplicationRecord; end class SeveredRelationship < ApplicationRecord; end + class TagFollow < ApplicationRecord; end class DomainBlock < ApplicationRecord enum :severity, { silence: 0, suspend: 1, noop: 2 } @@ -102,6 +103,7 @@ module Mastodon::CLI owned_classes << AccountIdentityProof if db_table_exists?(:account_identity_proofs) owned_classes << Appeal if db_table_exists?(:appeals) owned_classes << BulkImport if db_table_exists?(:bulk_imports) + owned_classes << TagFollow if db_table_exists?(:tag_follows) owned_classes.each do |klass| klass.where(account_id: other_account.id).find_each do |record| From 9a7130d6daf8f41962de03995592924e40cff0b3 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 25 Nov 2024 16:54:18 +0100 Subject: [PATCH 028/246] Fix direct inbox delivery pushing posts into inactive followers' timelines (#33067) --- app/lib/feed_manager.rb | 5 ++++- app/models/user.rb | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index edd1162f4f..74bf534e80 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -58,6 +58,7 @@ class FeedManager # @param [Boolean] update # @return [Boolean] def push_to_home(account, status, update: false) + return false unless account.user&.signed_in_recently? return false unless add_to_feed(:home, account.id, status, aggregate_reblogs: account.user&.aggregates_reblogs?) trim(:home, account.id) @@ -83,7 +84,9 @@ class FeedManager # @param [Boolean] update # @return [Boolean] def push_to_list(list, status, update: false) - return false if filter_from_list?(status, list) || !add_to_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?) + return false if filter_from_list?(status, list) + return false unless list.account.user&.signed_in_recently? + return false unless add_to_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?) trim(:list, list.id) PushUpdateWorker.perform_async(list.account_id, status.id, "timeline:list:#{list.id}", { 'update' => update }) if push_update_required?("timeline:list:#{list.id}") diff --git a/app/models/user.rb b/app/models/user.rb index c90a78f0cc..310ec77a15 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -165,6 +165,10 @@ class User < ApplicationRecord end end + def signed_in_recently? + current_sign_in_at.present? && current_sign_in_at >= ACTIVE_DURATION.ago + end + def confirmed? confirmed_at.present? end From 6d62581da125856934438cf95c7eee5f8ed0979b Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 25 Nov 2024 11:49:24 -0500 Subject: [PATCH 029/246] =?UTF-8?q?Update=20=E2=9C=A8binstub=E2=9C=A8=20te?= =?UTF-8?q?mplates=20(#32335)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/bundler-audit.yml | 2 +- .github/workflows/check-i18n.yml | 10 +++---- .github/workflows/crowdin-download-stable.yml | 2 +- .github/workflows/crowdin-download.yml | 2 +- .github/workflows/lint-haml.yml | 2 +- Gemfile.lock | 4 +-- bin/bundler-audit | 27 +++++++++++++++++++ bin/haml-lint | 27 +++++++++++++++++++ bin/i18n-tasks | 27 +++++++++++++++++++ bin/rspec | 16 ++++++++--- lint-staged.config.js | 2 +- 11 files changed, 106 insertions(+), 15 deletions(-) create mode 100755 bin/bundler-audit create mode 100755 bin/haml-lint create mode 100755 bin/i18n-tasks diff --git a/.github/workflows/bundler-audit.yml b/.github/workflows/bundler-audit.yml index 2341d6e67f..fa28d28f74 100644 --- a/.github/workflows/bundler-audit.yml +++ b/.github/workflows/bundler-audit.yml @@ -36,4 +36,4 @@ jobs: bundler-cache: true - name: Run bundler-audit - run: bundle exec bundler-audit check --update + run: bin/bundler-audit check --update diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml index 7c1004329c..4f87f0fe5f 100644 --- a/.github/workflows/check-i18n.yml +++ b/.github/workflows/check-i18n.yml @@ -35,18 +35,18 @@ jobs: git diff --exit-code - name: Check locale file normalization - run: bundle exec i18n-tasks check-normalized + run: bin/i18n-tasks check-normalized - name: Check for unused strings - run: bundle exec i18n-tasks unused + run: bin/i18n-tasks unused - name: Check for missing strings in English YML run: | - bundle exec i18n-tasks add-missing -l en + bin/i18n-tasks add-missing -l en git diff --exit-code - name: Check for wrong string interpolations - run: bundle exec i18n-tasks check-consistent-interpolations + run: bin/i18n-tasks check-consistent-interpolations - name: Check that all required locale files exist - run: bundle exec rake repo:check_locales_files + run: bin/rake repo:check_locales_files diff --git a/.github/workflows/crowdin-download-stable.yml b/.github/workflows/crowdin-download-stable.yml index de21e2e58f..ef28258cca 100644 --- a/.github/workflows/crowdin-download-stable.yml +++ b/.github/workflows/crowdin-download-stable.yml @@ -46,7 +46,7 @@ jobs: uses: ./.github/actions/setup-ruby - name: Run i18n normalize task - run: bundle exec i18n-tasks normalize + run: bin/i18n-tasks normalize # Create or update the pull request - name: Create Pull Request diff --git a/.github/workflows/crowdin-download.yml b/.github/workflows/crowdin-download.yml index 900899dd52..e9b909b9e0 100644 --- a/.github/workflows/crowdin-download.yml +++ b/.github/workflows/crowdin-download.yml @@ -48,7 +48,7 @@ jobs: uses: ./.github/actions/setup-ruby - name: Run i18n normalize task - run: bundle exec i18n-tasks normalize + run: bin/i18n-tasks normalize # Create or update the pull request - name: Create Pull Request diff --git a/.github/workflows/lint-haml.yml b/.github/workflows/lint-haml.yml index a1a9e99c90..499be2010a 100644 --- a/.github/workflows/lint-haml.yml +++ b/.github/workflows/lint-haml.yml @@ -43,4 +43,4 @@ jobs: - name: Run haml-lint run: | echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json" - bundle exec haml-lint --reporter github + bin/haml-lint --reporter github diff --git a/Gemfile.lock b/Gemfile.lock index 842d25dd1b..e87224236b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1031,7 +1031,7 @@ DEPENDENCIES xorcist (~> 1.1) RUBY VERSION - ruby 3.3.5p100 + ruby 3.3.6p108 BUNDLED WITH - 2.5.22 + 2.5.23 diff --git a/bin/bundler-audit b/bin/bundler-audit new file mode 100755 index 0000000000..334a73784f --- /dev/null +++ b/bin/bundler-audit @@ -0,0 +1,27 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'bundler-audit' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +bundle_binstub = File.expand_path("bundle", __dir__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300).include?("This file was generated by Bundler") + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("bundler-audit", "bundler-audit") diff --git a/bin/haml-lint b/bin/haml-lint new file mode 100755 index 0000000000..bd55739400 --- /dev/null +++ b/bin/haml-lint @@ -0,0 +1,27 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'haml-lint' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +bundle_binstub = File.expand_path("bundle", __dir__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300).include?("This file was generated by Bundler") + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("haml_lint", "haml-lint") diff --git a/bin/i18n-tasks b/bin/i18n-tasks new file mode 100755 index 0000000000..22cbc1f1b1 --- /dev/null +++ b/bin/i18n-tasks @@ -0,0 +1,27 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'i18n-tasks' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +bundle_binstub = File.expand_path("bundle", __dir__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300).include?("This file was generated by Bundler") + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("i18n-tasks", "i18n-tasks") diff --git a/bin/rspec b/bin/rspec index d738b23c0b..cb53ebe5f0 100755 --- a/bin/rspec +++ b/bin/rspec @@ -1,5 +1,6 @@ #!/usr/bin/env ruby # frozen_string_literal: true + # # This file was generated by Bundler. # @@ -7,9 +8,18 @@ # this file is here to facilitate running it. # -require "pathname" -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", - Pathname.new(__FILE__).realpath) +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +bundle_binstub = File.expand_path("bundle", __dir__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300).include?("This file was generated by Bundler") + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end require "rubygems" require "bundler/setup" diff --git a/lint-staged.config.js b/lint-staged.config.js index 6740def512..1ee6962c2a 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -3,7 +3,7 @@ const config = { 'Capfile|Gemfile|*.{rb,ruby,ru,rake}': 'bin/rubocop --force-exclusion -a', '*.{js,jsx,ts,tsx}': 'eslint --fix', '*.{css,scss}': 'stylelint --fix', - '*.haml': 'bundle exec haml-lint -a', + '*.haml': 'bin/haml-lint -a', '**/*.ts?(x)': () => 'tsc -p tsconfig.json --noEmit', }; From 0ea9d8164b8f5a45b0c636a654b732018f6cb1e6 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 26 Nov 2024 02:19:20 -0500 Subject: [PATCH 030/246] Remove `body_class_string` helper (#33072) --- app/controllers/application_controller.rb | 5 ----- app/helpers/application_helper.rb | 2 +- spec/helpers/application_helper_spec.rb | 20 +++++++++++++------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d493bd43bf..7a858ed059 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -22,7 +22,6 @@ class ApplicationController < ActionController::Base helper_method :use_seamless_external_login? helper_method :sso_account_settings helper_method :limited_federation_mode? - helper_method :body_class_string helper_method :skip_csrf_meta_tags? rescue_from ActionController::ParameterMissing, Paperclip::AdapterRegistry::NoHandlerError, with: :bad_request @@ -158,10 +157,6 @@ class ApplicationController < ActionController::Base current_user.setting_theme end - def body_class_string - @body_classes || '' - end - def respond_with_error(code) respond_to do |format| format.any { render "errors/#{code}", layout: 'error', status: code, formats: [:html] } diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3d5025724f..9861ee7e8e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -143,7 +143,7 @@ module ApplicationHelper end def body_classes - output = body_class_string.split + output = [] output << content_for(:body_classes) output << "theme-#{current_theme.parameterize}" output << 'system-font' if current_account&.user&.setting_system_font_ui diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 557d08e851..942cc5103c 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -5,12 +5,20 @@ require 'rails_helper' RSpec.describe ApplicationHelper do describe 'body_classes' do context 'with a body class string from a controller' do - before { helper.extend controller_helpers } + before do + user = Fabricate :user + user.settings['web.use_system_font'] = true + user.settings['web.reduce_motion'] = true + user.save - it 'uses the controller body classes in the result' do + helper.extend controller_helpers + end + + it 'uses the current theme and user settings classes in the result' do expect(helper.body_classes) - .to match(/modal-layout compose-standalone/) - .and match(/theme-default/) + .to match(/theme-default/) + .and match(/system-font/) + .and match(/reduce-motion/) end it 'includes values set via content_for' do @@ -24,10 +32,8 @@ RSpec.describe ApplicationHelper do def controller_helpers Module.new do - def body_class_string = 'modal-layout compose-standalone' - def current_account - @current_account ||= Fabricate(:account) + @current_account ||= Fabricate(:account, user: User.last) end def current_theme = 'default' From 3e901d108c5a73212e1f2a648456f1b12a3c32ed Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 08:19:35 +0100 Subject: [PATCH 031/246] Update dependency selenium-webdriver to v4.27.0 (#33071) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index e87224236b..cfda83d324 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -752,7 +752,7 @@ GEM activerecord (>= 4.0.0) railties (>= 4.0.0) securerandom (0.3.2) - selenium-webdriver (4.26.0) + selenium-webdriver (4.27.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) From 36496f4d73f30cfa0a22706b574c8ca57b4f0c4a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 08:19:48 +0100 Subject: [PATCH 032/246] Update Yarn to v4.5.3 (#33069) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- streaming/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4eb95d4389..e9f6364026 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@mastodon/mastodon", "license": "AGPL-3.0-or-later", - "packageManager": "yarn@4.5.2", + "packageManager": "yarn@4.5.3", "engines": { "node": ">=18" }, diff --git a/streaming/package.json b/streaming/package.json index 521544f42b..e40d262378 100644 --- a/streaming/package.json +++ b/streaming/package.json @@ -1,7 +1,7 @@ { "name": "@mastodon/streaming", "license": "AGPL-3.0-or-later", - "packageManager": "yarn@4.5.2", + "packageManager": "yarn@4.5.3", "engines": { "node": ">=18" }, From 6b1dd1bf2a7ac4658a06b5846cf9107f4462f004 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 08:24:28 +0100 Subject: [PATCH 033/246] New Crowdin Translations (automated) (#33074) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/zh-CN.json | 34 ++++++++--------- config/locales/bg.yml | 6 +++ config/locales/de.yml | 18 ++++----- config/locales/doorkeeper.zh-CN.yml | 6 +-- config/locales/es-AR.yml | 14 +++---- config/locales/simple_form.de.yml | 2 +- config/locales/zh-CN.yml | 44 +++++++++++----------- 7 files changed, 65 insertions(+), 59 deletions(-) diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 4046225164..6d86ed477e 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -26,8 +26,8 @@ "account.domain_blocked": "域名已屏蔽", "account.edit_profile": "修改个人资料", "account.enable_notifications": "当 @{name} 发布嘟文时通知我", - "account.endorse": "在个人资料中推荐此用户", - "account.featured_tags.last_status_at": "最近发言于 {date}", + "account.endorse": "在账户页推荐此用户", + "account.featured_tags.last_status_at": "上次发言于 {date}", "account.featured_tags.last_status_never": "暂无嘟文", "account.featured_tags.title": "{name} 的精选标签", "account.follow": "关注", @@ -105,7 +105,7 @@ "annual_report.summary.new_posts.new_posts": "发嘟", "annual_report.summary.percentile.text": "这使你跻身 Mastodon 用户的前", "annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉扣税国王的(他知道的话要来收你发嘟税了)。", - "annual_report.summary.thanks": "感谢你这一年与 Mastodon 一路同行!", + "annual_report.summary.thanks": "感谢你这一年和 Mastodon 上的大家一起嘟嘟!", "attachments_list.unprocessed": "(未处理)", "audio.hide": "隐藏音频", "block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重你的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。", @@ -138,7 +138,7 @@ "closed_registrations_modal.title": "注册 Mastodon 账号", "column.about": "关于", "column.blocks": "屏蔽的用户", - "column.bookmarks": "书签", + "column.bookmarks": "收藏夹", "column.community": "本站时间线", "column.create_list": "创建列表", "column.direct": "私下提及", @@ -510,7 +510,7 @@ "navigation_bar.administration": "管理", "navigation_bar.advanced_interface": "在高级网页界面中打开", "navigation_bar.blocks": "已屏蔽的用户", - "navigation_bar.bookmarks": "书签", + "navigation_bar.bookmarks": "收藏夹", "navigation_bar.community_timeline": "本站时间线", "navigation_bar.compose": "撰写新嘟文", "navigation_bar.direct": "私下提及", @@ -555,7 +555,7 @@ "notification.label.reply": "回复", "notification.mention": "提及", "notification.mentioned_you": "{name} 提到了你", - "notification.moderation-warning.learn_more": "了解更多", + "notification.moderation-warning.learn_more": "详细了解", "notification.moderation_warning": "你收到了一条管理警告", "notification.moderation_warning.action_delete_statuses": "你的一些嘟文已被移除。", "notification.moderation_warning.action_disable": "你的账号已被禁用。", @@ -571,7 +571,7 @@ "notification.relationships_severance_event": "与 {name} 的联系已断开", "notification.relationships_severance_event.account_suspension": "{from} 的管理员封禁了 {target},这意味着你将无法再收到对方的更新或与其互动。", "notification.relationships_severance_event.domain_block": "{from} 的管理员屏蔽了 {target},其中包括你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。", - "notification.relationships_severance_event.learn_more": "了解更多", + "notification.relationships_severance_event.learn_more": "详细了解", "notification.relationships_severance_event.user_domain_block": "你已经屏蔽了 {target},移除了你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。", "notification.status": "{name} 刚刚发布嘟文", "notification.update": "{name} 编辑了嘟文", @@ -717,11 +717,11 @@ "regeneration_indicator.label": "加载中…", "regeneration_indicator.sublabel": "你的主页动态正在准备中!", "relative_time.days": "{number} 天前", - "relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前", - "relative_time.full.hours": "{number, plural, one {# 小时} other {# 小时}}前", + "relative_time.full.days": "{number, plural, other {# 天}}前", + "relative_time.full.hours": "{number, plural, other {# 小时}}前", "relative_time.full.just_now": "刚刚", - "relative_time.full.minutes": "{number, plural, one {# 分钟} other {# 分钟}}前", - "relative_time.full.seconds": "{number, plural, one {# 秒} other {# 秒}}前", + "relative_time.full.minutes": "{number, plural, other {# 分钟}}前", + "relative_time.full.seconds": "{number, plural, other {# 秒}}前", "relative_time.hours": "{number} 小时前", "relative_time.just_now": "刚刚", "relative_time.minutes": "{number} 分钟前", @@ -817,7 +817,7 @@ "status.admin_domain": "打开 {domain} 的管理界面", "status.admin_status": "打开此帖的管理界面", "status.block": "屏蔽 @{name}", - "status.bookmark": "添加到书签", + "status.bookmark": "收藏", "status.cancel_reblog_private": "取消转贴", "status.cannot_reblog": "这条嘟文不允许被转嘟", "status.continued_thread": "上接嘟文串", @@ -853,7 +853,7 @@ "status.reblogs": "{count, plural, other {次转嘟}}", "status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。", "status.redraft": "删除并重新编辑", - "status.remove_bookmark": "移除书签", + "status.remove_bookmark": "取消收藏", "status.replied_in_thread": "回复给嘟文串", "status.replied_to": "回复给 {name}", "status.reply": "回复", @@ -875,11 +875,11 @@ "subscribed_languages.target": "更改 {target} 的订阅语言", "tabs_bar.home": "主页", "tabs_bar.notifications": "通知", - "time_remaining.days": "剩余 {number, plural, one {# 天} other {# 天}}", - "time_remaining.hours": "剩余 {number, plural, one {# 小时} other {# 小时}}", - "time_remaining.minutes": "剩余 {number, plural, one {# 分钟} other {# 分钟}}", + "time_remaining.days": "剩余 {number, plural, other {# 天}}", + "time_remaining.hours": "剩余 {number, plural, other {# 小时}}", + "time_remaining.minutes": "剩余 {number, plural, other {# 分钟}}", "time_remaining.moments": "即将结束", - "time_remaining.seconds": "剩余 {number, plural, one {# 秒} other {# 秒}}", + "time_remaining.seconds": "剩余 {number, plural, other {# 秒}}", "trends.counter_by_accounts": "过去 {days, plural, other {{days} 天}}有{count, plural, other { {counter} 人}}讨论", "trends.trending_now": "当前热门", "ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会丢失。", diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 20ee1f6c68..a51ef24262 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -226,20 +226,26 @@ bg: approve_appeal_html: "%{name} одобри обжалването на решение за модериране от %{target}" approve_user_html: "%{name} одобри регистрирането от %{target}" assigned_to_self_report_html: "%{name} възложи на себе си доклад %{target}" + change_email_user_html: "%{name} промени адреса на имейла на потребителя %{target}" change_role_user_html: "%{name} промени ролята на %{target}" + confirm_user_html: "%{name} потвърди адреса на имейла на потребителя %{target}" create_account_warning_html: "%{name} изпрати предупреждение до %{target}" create_announcement_html: "%{name} създаде ново оповестяване %{target}" + create_canonical_email_block_html: "%{name} блокира имейл с хеш %{target}" create_custom_emoji_html: "%{name} качи ново емоджи %{target}" create_domain_allow_html: "%{name} позволи федерирането с домейн %{target}" create_domain_block_html: "%{name} блокира домейн %{target}" + create_email_domain_block_html: "%{name} блокира домейн за е-поща %{target}" create_ip_block_html: "%{name} създаде правило за IP %{target}" create_unavailable_domain_html: "%{name} спря доставянето до домейн %{target}" create_user_role_html: "%{name} създаде роля %{target}" demote_user_html: "%{name} понижи потребителя %{target}" destroy_announcement_html: "%{name} изтри оповестяване %{target}" + destroy_canonical_email_block_html: "%{name} отблокира имейла с хеш %{target}" destroy_custom_emoji_html: "%{name} изтри емоджито %{target}" destroy_domain_allow_html: "%{name} забрани федерирация с домейн %{target}" destroy_domain_block_html: "%{name} отблокира домейн %{target}" + destroy_email_domain_block_html: "%{name} отблокира домейн за е-поща %{target}" destroy_instance_html: "%{name} прочисти домейн %{target}" destroy_ip_block_html: "%{name} изтри правило за IP %{target}" destroy_status_html: "%{name} премахна публикация от %{target}" diff --git a/config/locales/de.yml b/config/locales/de.yml index 26ccc8f3ee..1c82b4da3f 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1180,12 +1180,12 @@ de: use_security_key: Sicherheitsschlüssel verwenden author_attribution: example_title: Beispieltext - hint_html: Schreibst du außerhalb von Mastodon Nachrichtenartikel oder betreibst du einen Blog? Bestimme, wie du Anerkennungen durch geteilte Links auf Mastodon handhaben möchtest. - instructions: 'Der nachfolgende Code muss im HTML-Code deines Artikels sein:' + hint_html: Schreibst du außerhalb von Mastodon journalistische Artikel oder andere Texte, beispielsweise in einem Blog? Lege hier fest, wann auf dein Profil verwiesen werden soll, wenn Links zu deinen Werken auf Mastodon geteilt werden. + instructions: 'Der nachfolgende Code muss im HTML-Header deines zu verlinkenden Textes stehen:' more_from_html: Mehr von %{name} s_blog: Blog von %{name} - then_instructions: Ergänze die Domain, auf der deine Inhalte veröffentlicht werden in das unten stehende Feld. - title: Anerkennung als Autor*in + then_instructions: Ergänze anschließend im unteren Feld die Domain, auf der sich deine Inhalte befinden. + title: Verifizierung als Autor*in challenge: confirm: Fortfahren hint_html: "Hinweis: Wir werden dich für die nächste Stunde nicht erneut nach deinem Passwort fragen." @@ -1625,7 +1625,7 @@ de: posting_defaults: Standardeinstellungen für Beiträge public_timelines: Öffentliche Timelines privacy: - hint_html: "Bestimme, wie dein Profil und deine Beiträge gefunden werden sollen. Eine Vielzahl von Funktionen in Mastodon können dir helfen, eine größere Reichweite zu erlangen, wenn sie aktiviert sind. Nimm dir einen Moment Zeit, um diese Einstellungen zu überprüfen und sicherzustellen, dass sie für deinen Anwendungsfall geeignet sind." + hint_html: "Bestimme selbst, wie dein Profil und deine Beiträge gefunden werden sollen. Zahlreiche Mastodon-Funktionen können dir für eine größere Reichweite behilflich sein. Nimm dir einen Moment Zeit, um diese Einstellungen zu überprüfen." privacy: Datenschutz privacy_hint_html: Bestimme, wie viele Informationen du für andere preisgeben möchtest. Viele Menschen entdecken interessante Profile und coole Apps, indem sie die Follower anderer Profile durchstöbern und die Apps sehen, über die Beiträge veröffentlicht wurden – möglicherweise möchtest du diese Informationen ausblenden. reach: Reichweite @@ -1801,7 +1801,7 @@ de: enabled: Alte Beiträge automatisch entfernen enabled_hint: Löscht automatisch deine Beiträge, sobald sie die angegebene Altersgrenze erreicht haben, es sei denn, sie entsprechen einer der unten angegebenen Ausnahmen exceptions: Ausnahmen - explanation: Damit Mastodon nicht durch das Löschen von Beiträgen ausgebremst wird, wartet der Server damit, bis wenig los ist. Aus diesem Grund werden deine Beiträge ggf. erst einige Zeit nach Erreichen der Altersgrenze gelöscht. + explanation: Damit der Server nicht durch das Löschen von Beiträgen ausgebremst wird, wartet die Mastodon-Software, bis wenig(er) los ist. Deshalb könnten deine Beiträge ggf. erst einige Zeit nach Erreichen der Altersgrenze gelöscht werden. ignore_favs: Favoriten ignorieren ignore_reblogs: Geteilte Beiträge ignorieren interaction_exceptions: Ausnahmen basierend auf Interaktionen @@ -1980,13 +1980,13 @@ de: seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar. signed_in_as: 'Angemeldet als:' verification: - extra_instructions_html: Hinweis: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me", wodurch das Nachahmen von Personen auf Websites mit nutzergenerierten Inhalten verhindert wird. Du kannst auch ein link-Tag statt a im Header auf der Seite verwenden, jedoch muss der HTML-Code ohne das Ausführen von JavaScript zugänglich sein. + extra_instructions_html: Hinweis: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me". Du kannst auch den Tag link im head (statt a im body) verwenden, jedoch muss die Internetseite ohne JavaScript abrufbar sein. here_is_how: So funktioniert’s hint_html: "Alle können ihre Identität auf Mastodon verifizieren. Basierend auf offenen Standards – jetzt und für immer kostenlos. Alles, was du brauchst, ist eine eigene Website. Wenn du von deinem Profil auf diese Website verlinkst, überprüfen wir, ob die Website zu deinem Profil zurückverlinkt, und zeigen einen visuellen Hinweis an." instructions_html: Kopiere den unten stehenden Code und füge ihn in den HTML-Code deiner Website ein. Trage anschließend die Adresse deiner Website in ein Zusatzfeld auf deinem Profil ein und speichere die Änderungen. Die Zusatzfelder befinden sich im Reiter „Profil bearbeiten“. verification: Verifizierung - verified_links: Deine verifizierten Links - website_verification: Website-Verifizierung + verified_links: Deine verifizierten Domains + website_verification: Verifizierung einer Website webauthn_credentials: add: Sicherheitsschlüssel hinzufügen create: diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml index d14bd575f4..50705932e6 100644 --- a/config/locales/doorkeeper.zh-CN.yml +++ b/config/locales/doorkeeper.zh-CN.yml @@ -125,7 +125,7 @@ zh-CN: admin/reports: 举报管理 all: 完全访问你的Mastodon账户 blocks: 屏蔽 - bookmarks: 书签 + bookmarks: 收藏 conversations: 会话 crypto: 端到端加密 favourites: 喜欢 @@ -172,7 +172,7 @@ zh-CN: read: 读取你的账户数据 read:accounts: 查看账号信息 read:blocks: 查看你的屏蔽列表 - read:bookmarks: 查看你的书签 + read:bookmarks: 查看你的收藏夹 read:favourites: 查看喜欢的嘟文 read:filters: 查看你的过滤规则 read:follows: 查看你的关注 @@ -185,7 +185,7 @@ zh-CN: write: 修改你的账号数据 write:accounts: 修改你的个人资料 write:blocks: 屏蔽账号和域名 - write:bookmarks: 为嘟文添加书签 + write:bookmarks: 收藏嘟文 write:conversations: 静音并删除会话 write:favourites: 喜欢嘟文 write:filters: 创建过滤规则 diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 09163c2e4a..170c16f094 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -187,7 +187,7 @@ es-AR: create_domain_block: Crear bloqueo de dominio create_email_domain_block: Crear bloqueo de dominio de correo electrónico create_ip_block: Crear regla de dirección IP - create_relay: Crear Relé + create_relay: Crear relé create_unavailable_domain: Crear dominio no disponible create_user_role: Crear rol demote_user: Descender usuario @@ -199,17 +199,17 @@ es-AR: destroy_email_domain_block: Eliminar bloqueo de dominio de correo electrónico destroy_instance: Purgar dominio destroy_ip_block: Eliminar regla de dirección IP - destroy_relay: Eliminar Relé + destroy_relay: Eliminar relé destroy_status: Eliminar mensaje destroy_unavailable_domain: Eliminar dominio no disponible destroy_user_role: Destruir rol disable_2fa_user: Deshabilitar 2FA disable_custom_emoji: Deshabilitar emoji personalizado - disable_relay: Desactivar Relé + disable_relay: Deshabilitar relé disable_sign_in_token_auth_user: Deshabilitar autenticación de token por correo electrónico para el usuario disable_user: Deshabilitar usuario enable_custom_emoji: Habilitar emoji personalizado - enable_relay: Activar Relé + enable_relay: Habilitar relé enable_sign_in_token_auth_user: Habilitar autenticación de token por correo electrónico para el usuario enable_user: Habilitar usuario memorialize_account: Convertir en cuenta conmemorativa @@ -251,7 +251,7 @@ es-AR: create_domain_block_html: "%{name} bloqueó el dominio %{target}" create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}" create_ip_block_html: "%{name} creó la regla para la dirección IP %{target}" - create_relay_html: "%{name} creó un relé %{target}" + create_relay_html: "%{name} creó el relé %{target}" create_unavailable_domain_html: "%{name} detuvo la entrega al dominio %{target}" create_user_role_html: "%{name} creó el rol %{target}" demote_user_html: "%{name} bajó de nivel al usuario %{target}" @@ -269,11 +269,11 @@ es-AR: destroy_user_role_html: "%{name} eliminó el rol %{target}" disable_2fa_user_html: "%{name} deshabilitó el requerimiento de dos factores para el usuario %{target}" disable_custom_emoji_html: "%{name} deshabilitó el emoji %{target}" - disable_relay_html: "%{name} desactivó el relé %{target}" + disable_relay_html: "%{name} deshabilitó el relé %{target}" disable_sign_in_token_auth_user_html: "%{name} deshabilitó la autenticación de token por correo electrónico para %{target}" disable_user_html: "%{name} deshabilitó el inicio de sesión para el usuario %{target}" enable_custom_emoji_html: "%{name} habilitó el emoji %{target}" - enable_relay_html: "%{name} activó el relé %{target}" + enable_relay_html: "%{name} eliminó el relé %{target}" enable_sign_in_token_auth_user_html: "%{name} habilitó la autenticación de token por correo electrónico para %{target}" enable_user_html: "%{name} habilitó el inicio de sesión para el usuario %{target}" memorialize_account_html: "%{name} convirtió la cuenta de %{target} en una cuenta conmemorativa" diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 08d5331151..d6d6536737 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -144,7 +144,7 @@ de: url: Wohin Ereignisse gesendet werden labels: account: - attribution_domains_as_text: Websites, die dich anerkennen dürfen + attribution_domains_as_text: Websites, die auf dich verweisen dürfen discoverable: Profil und Beiträge in Suchalgorithmen berücksichtigen fields: name: Beschriftung diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index d2170d3e11..a87f8e64b0 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1272,7 +1272,7 @@ zh-CN: request: 请求你的存档 size: 大小 blocks: 屏蔽的用户 - bookmarks: 书签 + bookmarks: 收藏 csv: CSV domain_blocks: 域名屏蔽 lists: 列表 @@ -1361,7 +1361,7 @@ zh-CN: blocking_html: other: 你即将使用来自 %{filename} 的最多 %{count} 个账户替换你的屏蔽列表。 bookmarks_html: - other: 你即将使用来自 %{filename} 的最多 %{count} 条嘟文替换你的书签。 + other: 你即将使用来自 %{filename} 的最多 %{count} 条嘟文替换你的收藏列表。 domain_blocking_html: other: 你即将使用来自 %{filename} 的最多 %{count} 个域名替换你的域名屏蔽列表。 following_html: @@ -1374,7 +1374,7 @@ zh-CN: blocking_html: other: 你即将屏蔽来自 %{filename} 的最多 %{count} 个账号。 bookmarks_html: - other: 你即将把来自 %{filename} %{count} 篇嘟文添加到你的书签中。 + other: 你即将把来自 %{filename} %{count} 篇嘟文添加到你的收藏夹中。 domain_blocking_html: other: 你即将屏蔽来自 %{filename} 的最多 %{count} 个域名。 following_html: @@ -1395,18 +1395,18 @@ zh-CN: time_started: 开始于 titles: blocking: 正在导入被屏蔽的账户 - bookmarks: 正在导入书签 + bookmarks: 正在导入收藏 domain_blocking: 正在导入被屏蔽的域名 following: 正在导入关注的账户 lists: 导入列表 muting: 正在导入隐藏的账户 type: 导入类型 type_groups: - constructive: 关注和书签 + constructive: 关注与收藏 destructive: 屏蔽与隐藏 types: blocking: 屏蔽列表 - bookmarks: 书签 + bookmarks: 收藏 domain_blocking: 域名屏蔽列表 following: 关注列表 lists: 列表 @@ -1757,24 +1757,24 @@ zh-CN: unlisted_long: 对所有人可见,但不出现在公共时间线上 statuses_cleanup: enabled: 自动删除旧嘟文 - enabled_hint: 达到指定过期时间后自动删除你的嘟文,除非满足下列条件之一 + enabled_hint: 自动删除你发布的超过指定期限的嘟文,除非满足下列条件之一 exceptions: 例外 - explanation: 删除嘟文是一个消耗系统资源的耗时操作,所以这个操作会在服务器空闲时完成。因此,你的嘟文可能会在达到过期阈值之后一段时间才会被删除。 - ignore_favs: 取消喜欢 - ignore_reblogs: 忽略转嘟 + explanation: 删除嘟文会占用大量服务器资源,所以这个操作将在服务器空闲时完成。因此,你的嘟文可能会在达到删除期限之后一段时间才会被删除。 + ignore_favs: 喜欢数阈值 + ignore_reblogs: 转嘟数阈值 interaction_exceptions: 基于互动的例外 - interaction_exceptions_explanation: 请注意,如果嘟文超出转嘟和喜欢的阈值之后,又降到阈值以下,则可能不会被删除。 + interaction_exceptions_explanation: 请注意,如果嘟文的转嘟数和喜欢数超过保留阈值之后,又降到阈值以下,则可能不会被删除。 keep_direct: 保留私信 - keep_direct_hint: 不会删除你的任何私信 + keep_direct_hint: 不删除你的任何私信 keep_media: 保留带媒体附件的嘟文 - keep_media_hint: 不会删除任何包含媒体附件的嘟文 + keep_media_hint: 不删除任何包含媒体附件的嘟文 keep_pinned: 保留置顶嘟文 - keep_pinned_hint: 不会删除你的任何置顶嘟文 + keep_pinned_hint: 不删除你的任何置顶嘟文 keep_polls: 保留投票 - keep_polls_hint: 不会删除你的任何投票 - keep_self_bookmark: 保存被你加入书签的嘟文 - keep_self_bookmark_hint: 如果你已将自己的嘟文添加书签,就不会删除这些嘟文 - keep_self_fav: 保留你点赞的嘟文 + keep_polls_hint: 不删除你的任何投票 + keep_self_bookmark: 保存你收藏的的嘟文 + keep_self_bookmark_hint: 不删除你收藏的嘟文 + keep_self_fav: 保留你喜欢的嘟文 keep_self_fav_hint: 如果你喜欢了自己的嘟文,则不会删除这些嘟文 min_age: '1209600': 2周 @@ -1786,8 +1786,8 @@ zh-CN: '63113904': 两年 '7889238': 3个月 min_age_label: 过期阈值 - min_favs: 保留如下嘟文:点赞数超过 - min_favs_hint: 点赞数超过该阈值的的嘟文都不会被删除。如果留空,则无论嘟文获得多少点赞,都将被删除。 + min_favs: 保留如下嘟文:喜欢数超过 + min_favs_hint: 获得喜欢数超过该阈值的的嘟文都不会被删除。如果留空,则无论嘟文获得多少点赞,都将被删除。 min_reblogs: 保留如下嘟文:转嘟数超过 min_reblogs_hint: 转嘟数超过该阈值的的嘟文不会被删除。如果留空,则无论嘟文获得多少转嘟,都将被删除。 stream_entries: @@ -1899,13 +1899,13 @@ zh-CN: edit_profile_step: 完善个人资料,提升你的互动体验。 edit_profile_title: 个性化你的个人资料 explanation: 下面是几个小贴士,希望它们能帮到你 - feature_action: 了解更多 + feature_action: 详细了解 feature_audience: Mastodon 为你提供了无需中间商即可管理受众的独特可能。Mastodon 可被部署在你自己的基础设施上,允许你关注其它任何 Mastodon 在线服务器的用户,或被任何其他在线 Mastodon 服务器的用户关注,并且不受你之外的任何人控制。 feature_audience_title: 自由吸引你的受众 feature_control: 你最清楚你想在你自己的主页中看到什么动态。没有算法或广告浪费你的时间。你可以用一个账号关注任何 Mastodon 服务器上的任何人,并按时间顺序获得他们发布的嘟文,让你的互联网的角落更合自己的心意。 feature_control_title: 掌控自己的时间线 feature_creativity: Mastodon 支持音频、视频和图片、无障碍描述、投票、内容警告, 动画头像、自定义表情包、缩略图裁剪控制等功能,帮助你在网上尽情表达自己。无论你是要发布你的艺术作品、音乐还是播客,Mastodon 都能为你服务。 - feature_creativity_title: 无与伦比的创造力 + feature_creativity_title: 尽情发挥创造力 feature_moderation: Mastodon 将决策权交还给你。每个服务器都会创建自己的规则和条例,并在站点内施行,而不是像企业社交媒体那样居高临下,这使得它可以最灵活地响应不同人群的需求。加入一个你认同其规则的服务器,或托管你自己的服务器。 feature_moderation_title: 管理,本应如此 follow_action: 关注 From 72f623c391e2f27cd25cb22d78286ac9738aa8f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 07:26:47 +0000 Subject: [PATCH 034/246] Update dependency @dnd-kit/sortable to v9 (#33051) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index e9f6364026..3b828ce3f8 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@babel/preset-typescript": "^7.21.5", "@babel/runtime": "^7.22.3", "@dnd-kit/core": "^6.1.0", - "@dnd-kit/sortable": "^8.0.0", + "@dnd-kit/sortable": "^9.0.0", "@dnd-kit/utilities": "^3.2.2", "@formatjs/intl-pluralrules": "^5.2.2", "@gamestdio/websocket": "^0.3.2", diff --git a/yarn.lock b/yarn.lock index 86fbc7e184..28372d6ae3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2004,16 +2004,16 @@ __metadata: languageName: node linkType: hard -"@dnd-kit/sortable@npm:^8.0.0": - version: 8.0.0 - resolution: "@dnd-kit/sortable@npm:8.0.0" +"@dnd-kit/sortable@npm:^9.0.0": + version: 9.0.0 + resolution: "@dnd-kit/sortable@npm:9.0.0" dependencies: "@dnd-kit/utilities": "npm:^3.2.2" tslib: "npm:^2.0.0" peerDependencies: - "@dnd-kit/core": ^6.1.0 + "@dnd-kit/core": ^6.2.0 react: ">=16.8.0" - checksum: 10c0/a6066c652b892c6a11320c7d8f5c18fdf723e721e8eea37f4ab657dee1ac5e7ca710ac32ce0712a57fe968bc07c13bcea5d5599d90dfdd95619e162befd4d2fb + checksum: 10c0/30566ec05371bd59729c0fb87537d78cd1760f08e4b49b5fa8298ebd3cb9f29fc258a48425c6a060b9efeca88e36a059000e770d630681986626abcc3589e97a languageName: node linkType: hard @@ -2843,7 +2843,7 @@ __metadata: "@babel/preset-typescript": "npm:^7.21.5" "@babel/runtime": "npm:^7.22.3" "@dnd-kit/core": "npm:^6.1.0" - "@dnd-kit/sortable": "npm:^8.0.0" + "@dnd-kit/sortable": "npm:^9.0.0" "@dnd-kit/utilities": "npm:^3.2.2" "@formatjs/cli": "npm:^6.1.1" "@formatjs/intl-pluralrules": "npm:^5.2.2" From b702cd74f328fa6fa3d25fbc6ff9291c79812a80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 07:26:50 +0000 Subject: [PATCH 035/246] Update dependency @dnd-kit/core to v6.2.0 (#33050) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 28372d6ae3..a8fde8ab51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1979,28 +1979,28 @@ __metadata: languageName: node linkType: hard -"@dnd-kit/accessibility@npm:^3.1.0": - version: 3.1.0 - resolution: "@dnd-kit/accessibility@npm:3.1.0" +"@dnd-kit/accessibility@npm:^3.1.1": + version: 3.1.1 + resolution: "@dnd-kit/accessibility@npm:3.1.1" dependencies: tslib: "npm:^2.0.0" peerDependencies: react: ">=16.8.0" - checksum: 10c0/4f9d24e801d66d4fbb551ec389ed90424dd4c5bbdf527000a618e9abb9833cbd84d9a79e362f470ccbccfbd6d00217a9212c92f3cef66e01c951c7f79625b9d7 + checksum: 10c0/be0bf41716dc58f9386bc36906ec1ce72b7b42b6d1d0e631d347afe9bd8714a829bd6f58a346dd089b1519e93918ae2f94497411a61a4f5e4d9247c6cfd1fef8 languageName: node linkType: hard "@dnd-kit/core@npm:^6.1.0": - version: 6.1.0 - resolution: "@dnd-kit/core@npm:6.1.0" + version: 6.2.0 + resolution: "@dnd-kit/core@npm:6.2.0" dependencies: - "@dnd-kit/accessibility": "npm:^3.1.0" + "@dnd-kit/accessibility": "npm:^3.1.1" "@dnd-kit/utilities": "npm:^3.2.2" tslib: "npm:^2.0.0" peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 10c0/c793eb97cb59285ca8937ebcdfcd27cff09d750ae06722e36ca5ed07925e41abc36a38cff98f9f6056f7a07810878d76909826142a2968330e7e22060e6be584 + checksum: 10c0/478d6bb027441b0e5fa5ecd9a4da8a5876811505147303de1a5a0783a4418c5f7f464bd3eb07b4be77ef7626364d1b905dc2a4f9055093b845cf39e1d6f13b73 languageName: node linkType: hard From 6efa320feb1ea2dac253f4875559881765891cde Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 26 Nov 2024 03:09:04 -0500 Subject: [PATCH 036/246] Fix `Style/SafeNavigation` cop (#32970) --- app/controllers/concerns/cache_concern.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb index 1823b5b8ed..b1b09f2aab 100644 --- a/app/controllers/concerns/cache_concern.rb +++ b/app/controllers/concerns/cache_concern.rb @@ -28,7 +28,7 @@ module CacheConcern def render_with_cache(**options) raise ArgumentError, 'Only JSON render calls are supported' unless options.key?(:json) || block_given? - key = options.delete(:key) || [[params[:controller], params[:action]].join('/'), options[:json].respond_to?(:cache_key) ? options[:json].cache_key : nil, options[:fields].nil? ? nil : options[:fields].join(',')].compact.join(':') + key = options.delete(:key) || [[params[:controller], params[:action]].join('/'), options[:json].respond_to?(:cache_key) ? options[:json].cache_key : nil, options[:fields]&.join(',')].compact.join(':') expires_in = options.delete(:expires_in) || 3.minutes body = Rails.cache.read(key, raw: true) From 08914516d9915ddff499bb5d40b775bbf7a5adcc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:09:34 +0100 Subject: [PATCH 037/246] Update dependency postcss-preset-env to v10.1.1 (#32947) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index a8fde8ab51..a2c9dc80e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1837,7 +1837,7 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-random-function@npm:^1.0.0": +"@csstools/postcss-random-function@npm:^1.0.1": version: 1.0.1 resolution: "@csstools/postcss-random-function@npm:1.0.1" dependencies: @@ -1876,16 +1876,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-sign-functions@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-sign-functions@npm:1.0.0" +"@csstools/postcss-sign-functions@npm:^1.1.0": + version: 1.1.0 + resolution: "@csstools/postcss-sign-functions@npm:1.1.0" dependencies: "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/ec745b2f1e714ffead43ade5964234dfc1750c3a71d2e29df862ab3f79ba4a1275187b270b4c226bbb1155bee8e9e63c35597b4f4cb3effaa632e5e07e422344 + checksum: 10c0/503bbaa8fe1d1a619880d5d6b838f07f1898a5820889e5db3c4e02bb8b340dab18b88f439f9f1da44c6669bab2d4ba3f9543643ccc459d8a21191c5d22109c9b languageName: node linkType: hard @@ -13850,8 +13850,8 @@ __metadata: linkType: hard "postcss-preset-env@npm:^10.0.0": - version: 10.1.0 - resolution: "postcss-preset-env@npm:10.1.0" + version: 10.1.1 + resolution: "postcss-preset-env@npm:10.1.1" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.1" "@csstools/postcss-color-function": "npm:^4.0.6" @@ -13877,10 +13877,10 @@ __metadata: "@csstools/postcss-normalize-display-values": "npm:^4.0.0" "@csstools/postcss-oklab-function": "npm:^4.0.6" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-random-function": "npm:^1.0.0" + "@csstools/postcss-random-function": "npm:^1.0.1" "@csstools/postcss-relative-color-syntax": "npm:^3.0.6" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1" - "@csstools/postcss-sign-functions": "npm:^1.0.0" + "@csstools/postcss-sign-functions": "npm:^1.1.0" "@csstools/postcss-stepped-value-functions": "npm:^4.0.5" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" "@csstools/postcss-trigonometric-functions": "npm:^4.0.5" @@ -13918,7 +13918,7 @@ __metadata: postcss-selector-not: "npm:^8.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/bd157dbed38c3c125b3bf86f5437a8094539ec5bf24428487c7bbf29da393731e48053afc695494cc9dbe4d182cfe405c398fcf0b22eb326b6db395e7315f892 + checksum: 10c0/99931117735a66827c7318be023ddb614990457617ccbe7fd2fdc1f10345554652df180d4842768d68d57e14fc0be4d86d0b413c65e77e02db5511e57ed07c4f languageName: node linkType: hard From 7ba19ecf1e684781d4265cb076f10e1cf579eb87 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:09:54 +0100 Subject: [PATCH 038/246] Update dependency webauthn to v3.2.2 (#32879) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cfda83d324..ab60bd9d0a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,7 +93,6 @@ GEM annotaterb (4.13.0) ast (2.4.2) attr_required (1.0.2) - awrence (1.2.1) aws-eventstream (1.3.0) aws-partitions (1.1012.0) aws-sdk-core (3.213.0) @@ -349,7 +348,8 @@ GEM json-schema (5.1.0) addressable (~> 2.8) jsonapi-renderer (0.2.2) - jwt (2.7.1) + jwt (2.9.3) + base64 kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -844,9 +844,8 @@ GEM public_suffix warden (1.2.9) rack (>= 2.0.9) - webauthn (3.1.0) + webauthn (3.2.2) android_key_attestation (~> 0.3.0) - awrence (~> 1.1) bindata (~> 2.4) cbor (~> 0.5.9) cose (~> 1.1) From 5c3a64dd50f8279335ed4ad3df341c91e4f94024 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:10:08 +0100 Subject: [PATCH 039/246] Update dependency aws-sdk-s3 to v1.174.0 (#33076) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ab60bd9d0a..3bbfb33d74 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,8 +94,8 @@ GEM ast (2.4.2) attr_required (1.0.2) aws-eventstream (1.3.0) - aws-partitions (1.1012.0) - aws-sdk-core (3.213.0) + aws-partitions (1.1013.0) + aws-sdk-core (3.214.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) @@ -103,7 +103,7 @@ GEM aws-sdk-kms (1.96.0) aws-sdk-core (~> 3, >= 3.210.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.173.0) + aws-sdk-s3 (1.174.0) aws-sdk-core (~> 3, >= 3.210.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) From f0855fd41f0cc726c0d2dbdf19f311a1ee6729dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:10:19 +0100 Subject: [PATCH 040/246] Update dependency axios to v1.7.8 (#33075) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a2c9dc80e9..ae6e1aa9aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5156,13 +5156,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.7.7 - resolution: "axios@npm:1.7.7" + version: 1.7.8 + resolution: "axios@npm:1.7.8" dependencies: follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/4499efc89e86b0b49ffddc018798de05fab26e3bf57913818266be73279a6418c3ce8f9e934c7d2d707ab8c095e837fc6c90608fb7715b94d357720b5f568af7 + checksum: 10c0/23ae2d0105aea9170c34ac9b6f30d9b2ab2fa8b1370205d2f7ce98b9f9510ab420148c13359ee837ea5a4bf2fb028ff225bd2fc92052fb0c478c6b4a836e2d5f languageName: node linkType: hard From a27bafa59653328a0f06bedb1dfb2b6ee92af43d Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 26 Nov 2024 04:45:47 -0500 Subject: [PATCH 041/246] Add `UserRole#bypass_block?` method for notification check (#32974) --- app/models/user_role.rb | 4 ++++ app/services/notify_service.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/models/user_role.rb b/app/models/user_role.rb index 23cc28b9b7..815a894088 100644 --- a/app/models/user_role.rb +++ b/app/models/user_role.rb @@ -142,6 +142,10 @@ class UserRole < ApplicationRecord other_role.nil? || position > other_role.position end + def bypass_block?(role) + overrides?(role) && highlighted? && can?(*Flags::CATEGORIES[:moderation]) + end + def computed_permissions # If called on the everyone role, no further computation needed return permissions if everyone? diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index 0cf56c5a24..e87e5024fe 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -134,7 +134,7 @@ class NotifyService < BaseService end def from_staff? - @sender.local? && @sender.user.present? && @sender.user_role&.overrides?(@recipient.user_role) && @sender.user_role&.highlighted? && @sender.user_role&.can?(*UserRole::Flags::CATEGORIES[:moderation]) + @sender.local? && @sender.user.present? && @sender.user_role&.bypass_block?(@recipient.user_role) end def from_self? From 429e08e3d244b71e704fd54096c41b533b4ad2d5 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 26 Nov 2024 10:59:11 +0100 Subject: [PATCH 042/246] Remove old notifications route from web UI (#33038) --- .../notifications/components/filter_bar.jsx | 119 ------- .../containers/filter_bar_container.js | 17 - .../mastodon/features/notifications/index.jsx | 308 ------------------ .../features/notifications_wrapper.jsx | 9 - .../features/ui/components/columns_area.jsx | 4 +- app/javascript/mastodon/features/ui/index.jsx | 4 +- .../features/ui/util/async-components.js | 10 +- 7 files changed, 5 insertions(+), 466 deletions(-) delete mode 100644 app/javascript/mastodon/features/notifications/components/filter_bar.jsx delete mode 100644 app/javascript/mastodon/features/notifications/containers/filter_bar_container.js delete mode 100644 app/javascript/mastodon/features/notifications/index.jsx delete mode 100644 app/javascript/mastodon/features/notifications_wrapper.jsx diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.jsx b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx deleted file mode 100644 index c288c2c0de..0000000000 --- a/app/javascript/mastodon/features/notifications/components/filter_bar.jsx +++ /dev/null @@ -1,119 +0,0 @@ -import PropTypes from 'prop-types'; -import { PureComponent } from 'react'; - -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; - -import HomeIcon from '@/material-icons/400-24px/home-fill.svg?react'; -import InsertChartIcon from '@/material-icons/400-24px/insert_chart.svg?react'; -import PersonAddIcon from '@/material-icons/400-24px/person_add.svg?react'; -import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react'; -import ReplyAllIcon from '@/material-icons/400-24px/reply_all.svg?react'; -import StarIcon from '@/material-icons/400-24px/star.svg?react'; -import { Icon } from 'mastodon/components/icon'; - -const tooltips = defineMessages({ - mentions: { id: 'notifications.filter.mentions', defaultMessage: 'Mentions' }, - favourites: { id: 'notifications.filter.favourites', defaultMessage: 'Favorites' }, - boosts: { id: 'notifications.filter.boosts', defaultMessage: 'Boosts' }, - polls: { id: 'notifications.filter.polls', defaultMessage: 'Poll results' }, - follows: { id: 'notifications.filter.follows', defaultMessage: 'Follows' }, - statuses: { id: 'notifications.filter.statuses', defaultMessage: 'Updates from people you follow' }, -}); - -class FilterBar extends PureComponent { - - static propTypes = { - selectFilter: PropTypes.func.isRequired, - selectedFilter: PropTypes.string.isRequired, - advancedMode: PropTypes.bool.isRequired, - intl: PropTypes.object.isRequired, - }; - - onClick (notificationType) { - return () => this.props.selectFilter(notificationType); - } - - render () { - const { selectedFilter, advancedMode, intl } = this.props; - const renderedElement = !advancedMode ? ( -
- - -
- ) : ( -
- - - - - - - -
- ); - return renderedElement; - } - -} - -export default injectIntl(FilterBar); diff --git a/app/javascript/mastodon/features/notifications/containers/filter_bar_container.js b/app/javascript/mastodon/features/notifications/containers/filter_bar_container.js deleted file mode 100644 index 4e0184cef3..0000000000 --- a/app/javascript/mastodon/features/notifications/containers/filter_bar_container.js +++ /dev/null @@ -1,17 +0,0 @@ -import { connect } from 'react-redux'; - -import { setFilter } from '../../../actions/notifications'; -import FilterBar from '../components/filter_bar'; - -const makeMapStateToProps = state => ({ - selectedFilter: state.getIn(['settings', 'notifications', 'quickFilter', 'active']), - advancedMode: state.getIn(['settings', 'notifications', 'quickFilter', 'advanced']), -}); - -const mapDispatchToProps = (dispatch) => ({ - selectFilter (newActiveFilter) { - dispatch(setFilter(newActiveFilter)); - }, -}); - -export default connect(makeMapStateToProps, mapDispatchToProps)(FilterBar); diff --git a/app/javascript/mastodon/features/notifications/index.jsx b/app/javascript/mastodon/features/notifications/index.jsx deleted file mode 100644 index cefbd544b0..0000000000 --- a/app/javascript/mastodon/features/notifications/index.jsx +++ /dev/null @@ -1,308 +0,0 @@ -import PropTypes from 'prop-types'; -import { PureComponent } from 'react'; - -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; - -import { Helmet } from 'react-helmet'; - -import { createSelector } from '@reduxjs/toolkit'; -import { List as ImmutableList } from 'immutable'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { connect } from 'react-redux'; - -import { debounce } from 'lodash'; - -import DoneAllIcon from '@/material-icons/400-24px/done_all.svg?react'; -import NotificationsIcon from '@/material-icons/400-24px/notifications-fill.svg?react'; -import { compareId } from 'mastodon/compare_id'; -import { Icon } from 'mastodon/components/icon'; -import { NotSignedInIndicator } from 'mastodon/components/not_signed_in_indicator'; -import { identityContextPropShape, withIdentity } from 'mastodon/identity_context'; - -import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; -import { submitMarkers } from '../../actions/markers'; -import { - expandNotifications, - scrollTopNotifications, - loadPending, - mountNotifications, - unmountNotifications, - markNotificationsAsRead, -} from '../../actions/notifications'; -import Column from '../../components/column'; -import ColumnHeader from '../../components/column_header'; -import { LoadGap } from '../../components/load_gap'; -import ScrollableList from '../../components/scrollable_list'; - -import { - FilteredNotificationsBanner, - FilteredNotificationsIconButton, -} from './components/filtered_notifications_banner'; -import NotificationsPermissionBanner from './components/notifications_permission_banner'; -import ColumnSettingsContainer from './containers/column_settings_container'; -import FilterBarContainer from './containers/filter_bar_container'; -import NotificationContainer from './containers/notification_container'; - -const messages = defineMessages({ - title: { id: 'column.notifications', defaultMessage: 'Notifications' }, - markAsRead : { id: 'notifications.mark_as_read', defaultMessage: 'Mark every notification as read' }, -}); - -const getExcludedTypes = createSelector([ - state => state.getIn(['settings', 'notifications', 'shows']), -], (shows) => { - return ImmutableList(shows.filter(item => !item).keys()); -}); - -const getNotifications = createSelector([ - state => state.getIn(['settings', 'notifications', 'quickFilter', 'show']), - state => state.getIn(['settings', 'notifications', 'quickFilter', 'active']), - getExcludedTypes, - state => state.getIn(['notifications', 'items']), -], (showFilterBar, allowedType, excludedTypes, notifications) => { - if (!showFilterBar || allowedType === 'all') { - // used if user changed the notification settings after loading the notifications from the server - // otherwise a list of notifications will come pre-filtered from the backend - // we need to turn it off for FilterBar in order not to block ourselves from seeing a specific category - return notifications.filterNot(item => item !== null && excludedTypes.includes(item.get('type'))); - } - return notifications.filter(item => item === null || allowedType === item.get('type')); -}); - -const mapStateToProps = state => ({ - notifications: getNotifications(state), - isLoading: state.getIn(['notifications', 'isLoading'], 0) > 0, - isUnread: state.getIn(['notifications', 'unread']) > 0 || state.getIn(['notifications', 'pendingItems']).size > 0, - hasMore: state.getIn(['notifications', 'hasMore']), - numPending: state.getIn(['notifications', 'pendingItems'], ImmutableList()).size, - lastReadId: state.getIn(['settings', 'notifications', 'showUnread']) ? state.getIn(['notifications', 'readMarkerId']) : '0', - canMarkAsRead: state.getIn(['settings', 'notifications', 'showUnread']) && state.getIn(['notifications', 'readMarkerId']) !== '0' && getNotifications(state).some(item => item !== null && compareId(item.get('id'), state.getIn(['notifications', 'readMarkerId'])) > 0), - needsNotificationPermission: state.getIn(['settings', 'notifications', 'alerts']).includes(true) && state.getIn(['notifications', 'browserSupport']) && state.getIn(['notifications', 'browserPermission']) === 'default' && !state.getIn(['settings', 'notifications', 'dismissPermissionBanner']), -}); - -class Notifications extends PureComponent { - static propTypes = { - identity: identityContextPropShape, - columnId: PropTypes.string, - notifications: ImmutablePropTypes.list.isRequired, - dispatch: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, - isLoading: PropTypes.bool, - isUnread: PropTypes.bool, - multiColumn: PropTypes.bool, - hasMore: PropTypes.bool, - numPending: PropTypes.number, - lastReadId: PropTypes.string, - canMarkAsRead: PropTypes.bool, - needsNotificationPermission: PropTypes.bool, - }; - - static defaultProps = { - trackScroll: true, - }; - - UNSAFE_componentWillMount() { - this.props.dispatch(mountNotifications()); - } - - componentWillUnmount () { - this.handleLoadOlder.cancel(); - this.handleScrollToTop.cancel(); - this.handleScroll.cancel(); - this.props.dispatch(scrollTopNotifications(false)); - this.props.dispatch(unmountNotifications()); - } - - handleLoadGap = (maxId) => { - this.props.dispatch(expandNotifications({ maxId })); - }; - - handleLoadOlder = debounce(() => { - const last = this.props.notifications.last(); - this.props.dispatch(expandNotifications({ maxId: last && last.get('id') })); - }, 300, { leading: true }); - - handleLoadPending = () => { - this.props.dispatch(loadPending()); - }; - - handleScrollToTop = debounce(() => { - this.props.dispatch(scrollTopNotifications(true)); - }, 100); - - handleScroll = debounce(() => { - this.props.dispatch(scrollTopNotifications(false)); - }, 100); - - handlePin = () => { - const { columnId, dispatch } = this.props; - - if (columnId) { - dispatch(removeColumn(columnId)); - } else { - dispatch(addColumn('NOTIFICATIONS', {})); - } - }; - - handleMove = (dir) => { - const { columnId, dispatch } = this.props; - dispatch(moveColumn(columnId, dir)); - }; - - handleHeaderClick = () => { - this.column.scrollTop(); - }; - - setColumnRef = c => { - this.column = c; - }; - - handleMoveUp = id => { - const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) - 1; - this._selectChild(elementIndex, true); - }; - - handleMoveDown = id => { - const elementIndex = this.props.notifications.findIndex(item => item !== null && item.get('id') === id) + 1; - this._selectChild(elementIndex, false); - }; - - _selectChild (index, align_top) { - const container = this.column.node; - const element = container.querySelector(`article:nth-of-type(${index + 1}) .focusable`); - - if (element) { - if (align_top && container.scrollTop > element.offsetTop) { - element.scrollIntoView(true); - } else if (!align_top && container.scrollTop + container.clientHeight < element.offsetTop + element.offsetHeight) { - element.scrollIntoView(false); - } - element.focus(); - } - } - - handleMarkAsRead = () => { - this.props.dispatch(markNotificationsAsRead()); - this.props.dispatch(submitMarkers({ immediate: true })); - }; - - render () { - const { intl, notifications, isLoading, isUnread, columnId, multiColumn, hasMore, numPending, lastReadId, canMarkAsRead, needsNotificationPermission } = this.props; - const pinned = !!columnId; - const emptyMessage = ; - const { signedIn } = this.props.identity; - - let scrollableContent = null; - - const filterBarContainer = signedIn - ? () - : null; - - if (isLoading && this.scrollableContent) { - scrollableContent = this.scrollableContent; - } else if (notifications.size > 0 || hasMore) { - scrollableContent = notifications.map((item, index) => item === null ? ( - 0 ? notifications.getIn([index - 1, 'id']) : null} - onClick={this.handleLoadGap} - /> - ) : ( - 0} - /> - )); - } else { - scrollableContent = null; - } - - this.scrollableContent = scrollableContent; - - let scrollContainer; - - const prepend = ( - <> - {needsNotificationPermission && } - - - ); - - if (signedIn) { - scrollContainer = ( - - {scrollableContent} - - ); - } else { - scrollContainer = ; - } - - const extraButton = ( - <> - - {canMarkAsRead && ( - - )} - - ); - - return ( - - - - - - {filterBarContainer} - - {scrollContainer} - - - {intl.formatMessage(messages.title)} - - - - ); - } - -} - -export default connect(mapStateToProps)(withIdentity(injectIntl(Notifications))); diff --git a/app/javascript/mastodon/features/notifications_wrapper.jsx b/app/javascript/mastodon/features/notifications_wrapper.jsx deleted file mode 100644 index 50383d5ebf..0000000000 --- a/app/javascript/mastodon/features/notifications_wrapper.jsx +++ /dev/null @@ -1,9 +0,0 @@ -import Notifications_v2 from 'mastodon/features/notifications_v2'; - -export const NotificationsWrapper = (props) => { - return ( - - ); -}; - -export default NotificationsWrapper; \ No newline at end of file diff --git a/app/javascript/mastodon/features/ui/components/columns_area.jsx b/app/javascript/mastodon/features/ui/components/columns_area.jsx index de957a79b6..97b54e50d3 100644 --- a/app/javascript/mastodon/features/ui/components/columns_area.jsx +++ b/app/javascript/mastodon/features/ui/components/columns_area.jsx @@ -8,7 +8,7 @@ import { scrollRight } from '../../../scroll'; import BundleContainer from '../containers/bundle_container'; import { Compose, - NotificationsWrapper, + Notifications, HomeTimeline, CommunityTimeline, PublicTimeline, @@ -30,7 +30,7 @@ import NavigationPanel from './navigation_panel'; const componentMap = { 'COMPOSE': Compose, 'HOME': HomeTimeline, - 'NOTIFICATIONS': NotificationsWrapper, + 'NOTIFICATIONS': Notifications, 'PUBLIC': PublicTimeline, 'REMOTE': PublicTimeline, 'COMMUNITY': CommunityTimeline, diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx index daa4585ead..4e5cd4bd64 100644 --- a/app/javascript/mastodon/features/ui/index.jsx +++ b/app/javascript/mastodon/features/ui/index.jsx @@ -49,7 +49,7 @@ import { Favourites, DirectTimeline, HashtagTimeline, - NotificationsWrapper, + Notifications, NotificationRequests, NotificationRequest, FollowRequests, @@ -211,7 +211,7 @@ class SwitchingColumnsArea extends PureComponent { - + diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index 5a85c856d2..26bb7cd1e0 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -7,15 +7,7 @@ export function Compose () { } export function Notifications () { - return import(/* webpackChunkName: "features/notifications_v1" */'../../notifications'); -} - -export function Notifications_v2 () { - return import(/* webpackChunkName: "features/notifications_v2" */'../../notifications_v2'); -} - -export function NotificationsWrapper () { - return import(/* webpackChunkName: "features/notifications" */'../../notifications_wrapper'); + return import(/* webpackChunkName: "features/notifications" */'../../notifications_v2'); } export function HomeTimeline () { From 7a3dea385e48c72ff4d1553709f618bc5070b255 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 26 Nov 2024 17:10:12 +0100 Subject: [PATCH 043/246] Change onboarding flow in web UI (#32998) --- .../mastodon/actions/suggestions.js | 58 --- .../mastodon/actions/suggestions.ts | 24 ++ app/javascript/mastodon/api/suggestions.ts | 8 + .../mastodon/api_types/suggestions.ts | 13 + .../mastodon/components/account.jsx | 20 +- .../components/column_back_button.tsx | 2 +- .../components/column_search_header.tsx | 67 ++++ .../mastodon/components/follow_button.tsx | 7 +- .../mastodon/features/explore/suggestions.jsx | 19 +- .../components/inline_follow_suggestions.jsx | 217 ------------ .../components/inline_follow_suggestions.tsx | 326 +++++++++++++++++ .../mastodon/features/lists/members.tsx | 123 ++----- .../features/onboarding/components/step.jsx | 57 --- .../mastodon/features/onboarding/follows.jsx | 62 ---- .../mastodon/features/onboarding/follows.tsx | 191 ++++++++++ .../mastodon/features/onboarding/index.jsx | 91 ----- .../mastodon/features/onboarding/profile.jsx | 162 --------- .../mastodon/features/onboarding/profile.tsx | 329 ++++++++++++++++++ .../mastodon/features/onboarding/share.jsx | 120 ------- app/javascript/mastodon/features/ui/index.jsx | 6 +- .../features/ui/util/async-components.js | 8 +- app/javascript/mastodon/locales/en.json | 32 +- app/javascript/mastodon/models/suggestion.ts | 12 + app/javascript/mastodon/reducers/index.ts | 4 +- .../mastodon/reducers/suggestions.js | 40 --- .../mastodon/reducers/suggestions.ts | 60 ++++ .../styles/mastodon-light/diff.scss | 19 +- .../styles/mastodon-light/variables.scss | 1 + app/javascript/styles/mastodon/_mixins.scss | 2 +- .../styles/mastodon/components.scss | 237 ++----------- app/javascript/styles/mastodon/forms.scss | 6 +- app/javascript/styles/mastodon/variables.scss | 2 + 32 files changed, 1142 insertions(+), 1183 deletions(-) delete mode 100644 app/javascript/mastodon/actions/suggestions.js create mode 100644 app/javascript/mastodon/actions/suggestions.ts create mode 100644 app/javascript/mastodon/api/suggestions.ts create mode 100644 app/javascript/mastodon/api_types/suggestions.ts create mode 100644 app/javascript/mastodon/components/column_search_header.tsx delete mode 100644 app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx create mode 100644 app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx delete mode 100644 app/javascript/mastodon/features/onboarding/components/step.jsx delete mode 100644 app/javascript/mastodon/features/onboarding/follows.jsx create mode 100644 app/javascript/mastodon/features/onboarding/follows.tsx delete mode 100644 app/javascript/mastodon/features/onboarding/index.jsx delete mode 100644 app/javascript/mastodon/features/onboarding/profile.jsx create mode 100644 app/javascript/mastodon/features/onboarding/profile.tsx delete mode 100644 app/javascript/mastodon/features/onboarding/share.jsx create mode 100644 app/javascript/mastodon/models/suggestion.ts delete mode 100644 app/javascript/mastodon/reducers/suggestions.js create mode 100644 app/javascript/mastodon/reducers/suggestions.ts diff --git a/app/javascript/mastodon/actions/suggestions.js b/app/javascript/mastodon/actions/suggestions.js deleted file mode 100644 index 258ffa901d..0000000000 --- a/app/javascript/mastodon/actions/suggestions.js +++ /dev/null @@ -1,58 +0,0 @@ -import api from '../api'; - -import { fetchRelationships } from './accounts'; -import { importFetchedAccounts } from './importer'; - -export const SUGGESTIONS_FETCH_REQUEST = 'SUGGESTIONS_FETCH_REQUEST'; -export const SUGGESTIONS_FETCH_SUCCESS = 'SUGGESTIONS_FETCH_SUCCESS'; -export const SUGGESTIONS_FETCH_FAIL = 'SUGGESTIONS_FETCH_FAIL'; - -export const SUGGESTIONS_DISMISS = 'SUGGESTIONS_DISMISS'; - -export function fetchSuggestions(withRelationships = false) { - return (dispatch) => { - dispatch(fetchSuggestionsRequest()); - - api().get('/api/v2/suggestions', { params: { limit: 20 } }).then(response => { - dispatch(importFetchedAccounts(response.data.map(x => x.account))); - dispatch(fetchSuggestionsSuccess(response.data)); - - if (withRelationships) { - dispatch(fetchRelationships(response.data.map(item => item.account.id))); - } - }).catch(error => dispatch(fetchSuggestionsFail(error))); - }; -} - -export function fetchSuggestionsRequest() { - return { - type: SUGGESTIONS_FETCH_REQUEST, - skipLoading: true, - }; -} - -export function fetchSuggestionsSuccess(suggestions) { - return { - type: SUGGESTIONS_FETCH_SUCCESS, - suggestions, - skipLoading: true, - }; -} - -export function fetchSuggestionsFail(error) { - return { - type: SUGGESTIONS_FETCH_FAIL, - error, - skipLoading: true, - skipAlert: true, - }; -} - -export const dismissSuggestion = accountId => (dispatch) => { - dispatch({ - type: SUGGESTIONS_DISMISS, - id: accountId, - }); - - api().delete(`/api/v1/suggestions/${accountId}`).catch(() => {}); -}; diff --git a/app/javascript/mastodon/actions/suggestions.ts b/app/javascript/mastodon/actions/suggestions.ts new file mode 100644 index 0000000000..0eadfa6b47 --- /dev/null +++ b/app/javascript/mastodon/actions/suggestions.ts @@ -0,0 +1,24 @@ +import { + apiGetSuggestions, + apiDeleteSuggestion, +} from 'mastodon/api/suggestions'; +import { createDataLoadingThunk } from 'mastodon/store/typed_functions'; + +import { fetchRelationships } from './accounts'; +import { importFetchedAccounts } from './importer'; + +export const fetchSuggestions = createDataLoadingThunk( + 'suggestions/fetch', + () => apiGetSuggestions(20), + (data, { dispatch }) => { + dispatch(importFetchedAccounts(data.map((x) => x.account))); + dispatch(fetchRelationships(data.map((x) => x.account.id))); + + return data; + }, +); + +export const dismissSuggestion = createDataLoadingThunk( + 'suggestions/dismiss', + ({ accountId }: { accountId: string }) => apiDeleteSuggestion(accountId), +); diff --git a/app/javascript/mastodon/api/suggestions.ts b/app/javascript/mastodon/api/suggestions.ts new file mode 100644 index 0000000000..d4817698cc --- /dev/null +++ b/app/javascript/mastodon/api/suggestions.ts @@ -0,0 +1,8 @@ +import { apiRequestGet, apiRequestDelete } from 'mastodon/api'; +import type { ApiSuggestionJSON } from 'mastodon/api_types/suggestions'; + +export const apiGetSuggestions = (limit: number) => + apiRequestGet('v2/suggestions', { limit }); + +export const apiDeleteSuggestion = (accountId: string) => + apiRequestDelete(`v1/suggestions/${accountId}`); diff --git a/app/javascript/mastodon/api_types/suggestions.ts b/app/javascript/mastodon/api_types/suggestions.ts new file mode 100644 index 0000000000..7d91daf901 --- /dev/null +++ b/app/javascript/mastodon/api_types/suggestions.ts @@ -0,0 +1,13 @@ +import type { ApiAccountJSON } from 'mastodon/api_types/accounts'; + +export type ApiSuggestionSourceJSON = + | 'featured' + | 'most_followed' + | 'most_interactions' + | 'similar_to_recently_followed' + | 'friends_of_friends'; + +export interface ApiSuggestionJSON { + sources: [ApiSuggestionSourceJSON, ...ApiSuggestionSourceJSON[]]; + account: ApiAccountJSON; +} diff --git a/app/javascript/mastodon/components/account.jsx b/app/javascript/mastodon/components/account.jsx index 265c68697b..fa66fd56bb 100644 --- a/app/javascript/mastodon/components/account.jsx +++ b/app/javascript/mastodon/components/account.jsx @@ -10,6 +10,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react'; import { EmptyAccount } from 'mastodon/components/empty_account'; +import { FollowButton } from 'mastodon/components/follow_button'; import { ShortNumber } from 'mastodon/components/short_number'; import { VerifiedBadge } from 'mastodon/components/verified_badge'; @@ -23,9 +24,6 @@ import { DisplayName } from './display_name'; import { RelativeTimestamp } from './relative_timestamp'; const messages = defineMessages({ - follow: { id: 'account.follow', defaultMessage: 'Follow' }, - unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, - cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request' }, unblock: { id: 'account.unblock_short', defaultMessage: 'Unblock' }, unmute: { id: 'account.unmute_short', defaultMessage: 'Unmute' }, mute_notifications: { id: 'account.mute_notifications_short', defaultMessage: 'Mute notifications' }, @@ -35,13 +33,9 @@ const messages = defineMessages({ more: { id: 'status.more', defaultMessage: 'More' }, }); -const Account = ({ size = 46, account, onFollow, onBlock, onMute, onMuteNotifications, hidden, minimal, defaultAction, withBio }) => { +const Account = ({ size = 46, account, onBlock, onMute, onMuteNotifications, hidden, minimal, defaultAction, withBio }) => { const intl = useIntl(); - const handleFollow = useCallback(() => { - onFollow(account); - }, [onFollow, account]); - const handleBlock = useCallback(() => { onBlock(account); }, [onBlock, account]); @@ -74,13 +68,12 @@ const Account = ({ size = 46, account, onFollow, onBlock, onMute, onMuteNotifica let buttons; if (account.get('id') !== me && account.get('relationship', null) !== null) { - const following = account.getIn(['relationship', 'following']); const requested = account.getIn(['relationship', 'requested']); const blocking = account.getIn(['relationship', 'blocking']); const muting = account.getIn(['relationship', 'muting']); if (requested) { - buttons = + )} + + ); +}; diff --git a/app/javascript/mastodon/components/follow_button.tsx b/app/javascript/mastodon/components/follow_button.tsx index 46314af309..faf9d8bdb8 100644 --- a/app/javascript/mastodon/components/follow_button.tsx +++ b/app/javascript/mastodon/components/follow_button.tsx @@ -99,7 +99,12 @@ export const FollowButton: React.FC<{ return ( - -
-
- -
-
- {suggestions.map(suggestion => ( - - ))} -
- - {canScrollLeft && ( - - )} - - {canScrollRight && ( - - )} -
-
- ); -}; - -InlineFollowSuggestions.propTypes = { - hidden: PropTypes.bool, -}; diff --git a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx new file mode 100644 index 0000000000..5fd47443d9 --- /dev/null +++ b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx @@ -0,0 +1,326 @@ +import { useEffect, useCallback, useRef, useState } from 'react'; + +import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; + +import { Link } from 'react-router-dom'; + +import ChevronLeftIcon from '@/material-icons/400-24px/chevron_left.svg?react'; +import ChevronRightIcon from '@/material-icons/400-24px/chevron_right.svg?react'; +import CloseIcon from '@/material-icons/400-24px/close.svg?react'; +import InfoIcon from '@/material-icons/400-24px/info.svg?react'; +import { changeSetting } from 'mastodon/actions/settings'; +import { + fetchSuggestions, + dismissSuggestion, +} from 'mastodon/actions/suggestions'; +import type { ApiSuggestionSourceJSON } from 'mastodon/api_types/suggestions'; +import { Avatar } from 'mastodon/components/avatar'; +import { DisplayName } from 'mastodon/components/display_name'; +import { FollowButton } from 'mastodon/components/follow_button'; +import { Icon } from 'mastodon/components/icon'; +import { IconButton } from 'mastodon/components/icon_button'; +import { VerifiedBadge } from 'mastodon/components/verified_badge'; +import { domain } from 'mastodon/initial_state'; +import { useAppDispatch, useAppSelector } from 'mastodon/store'; + +const messages = defineMessages({ + follow: { id: 'account.follow', defaultMessage: 'Follow' }, + unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, + previous: { id: 'lightbox.previous', defaultMessage: 'Previous' }, + next: { id: 'lightbox.next', defaultMessage: 'Next' }, + dismiss: { + id: 'follow_suggestions.dismiss', + defaultMessage: "Don't show again", + }, + friendsOfFriendsHint: { + id: 'follow_suggestions.hints.friends_of_friends', + defaultMessage: 'This profile is popular among the people you follow.', + }, + similarToRecentlyFollowedHint: { + id: 'follow_suggestions.hints.similar_to_recently_followed', + defaultMessage: + 'This profile is similar to the profiles you have most recently followed.', + }, + featuredHint: { + id: 'follow_suggestions.hints.featured', + defaultMessage: 'This profile has been hand-picked by the {domain} team.', + }, + mostFollowedHint: { + id: 'follow_suggestions.hints.most_followed', + defaultMessage: 'This profile is one of the most followed on {domain}.', + }, + mostInteractionsHint: { + id: 'follow_suggestions.hints.most_interactions', + defaultMessage: + 'This profile has been recently getting a lot of attention on {domain}.', + }, +}); + +const Source: React.FC<{ + id: ApiSuggestionSourceJSON; +}> = ({ id }) => { + const intl = useIntl(); + + let label, hint; + + switch (id) { + case 'friends_of_friends': + hint = intl.formatMessage(messages.friendsOfFriendsHint); + label = ( + + ); + break; + case 'similar_to_recently_followed': + hint = intl.formatMessage(messages.similarToRecentlyFollowedHint); + label = ( + + ); + break; + case 'featured': + hint = intl.formatMessage(messages.featuredHint, { domain }); + label = ( + + ); + break; + case 'most_followed': + hint = intl.formatMessage(messages.mostFollowedHint, { domain }); + label = ( + + ); + break; + case 'most_interactions': + hint = intl.formatMessage(messages.mostInteractionsHint, { domain }); + label = ( + + ); + break; + } + + return ( +
+ + {label} +
+ ); +}; + +const Card: React.FC<{ + id: string; + sources: [ApiSuggestionSourceJSON, ...ApiSuggestionSourceJSON[]]; +}> = ({ id, sources }) => { + const intl = useIntl(); + const account = useAppSelector((state) => state.accounts.get(id)); + const firstVerifiedField = account?.fields.find((item) => !!item.verified_at); + const dispatch = useAppDispatch(); + + const handleDismiss = useCallback(() => { + void dispatch(dismissSuggestion({ accountId: id })); + }, [id, dispatch]); + + return ( +
+ + +
+ + + +
+ +
+ + + + {firstVerifiedField ? ( + + ) : ( + + )} +
+ + +
+ ); +}; + +const DISMISSIBLE_ID = 'home/follow-suggestions'; + +export const InlineFollowSuggestions: React.FC<{ + hidden?: boolean; +}> = ({ hidden }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + const suggestions = useAppSelector((state) => state.suggestions.items); + const isLoading = useAppSelector((state) => state.suggestions.isLoading); + const dismissed = useAppSelector( + (state) => + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call + state.settings.getIn(['dismissed_banners', DISMISSIBLE_ID]) as boolean, + ); + const bodyRef = useRef(null); + const [canScrollLeft, setCanScrollLeft] = useState(false); + const [canScrollRight, setCanScrollRight] = useState(true); + + useEffect(() => { + void dispatch(fetchSuggestions()); + }, [dispatch]); + + useEffect(() => { + if (!bodyRef.current) { + return; + } + + if (getComputedStyle(bodyRef.current).direction === 'rtl') { + setCanScrollLeft( + bodyRef.current.clientWidth - bodyRef.current.scrollLeft < + bodyRef.current.scrollWidth, + ); + setCanScrollRight(bodyRef.current.scrollLeft < 0); + } else { + setCanScrollLeft(bodyRef.current.scrollLeft > 0); + setCanScrollRight( + bodyRef.current.scrollLeft + bodyRef.current.clientWidth < + bodyRef.current.scrollWidth, + ); + } + }, [setCanScrollRight, setCanScrollLeft, suggestions]); + + const handleLeftNav = useCallback(() => { + if (!bodyRef.current) { + return; + } + + bodyRef.current.scrollLeft -= 200; + }, []); + + const handleRightNav = useCallback(() => { + if (!bodyRef.current) { + return; + } + + bodyRef.current.scrollLeft += 200; + }, []); + + const handleScroll = useCallback(() => { + if (!bodyRef.current) { + return; + } + + if (getComputedStyle(bodyRef.current).direction === 'rtl') { + setCanScrollLeft( + bodyRef.current.clientWidth - bodyRef.current.scrollLeft < + bodyRef.current.scrollWidth, + ); + setCanScrollRight(bodyRef.current.scrollLeft < 0); + } else { + setCanScrollLeft(bodyRef.current.scrollLeft > 0); + setCanScrollRight( + bodyRef.current.scrollLeft + bodyRef.current.clientWidth < + bodyRef.current.scrollWidth, + ); + } + }, [setCanScrollRight, setCanScrollLeft]); + + const handleDismiss = useCallback(() => { + dispatch(changeSetting(['dismissed_banners', DISMISSIBLE_ID], true)); + }, [dispatch]); + + if (dismissed || (!isLoading && suggestions.length === 0)) { + return null; + } + + if (hidden) { + return
; + } + + return ( +
+
+

+ +

+ +
+ + + + +
+
+ +
+
+ {suggestions.map((suggestion) => ( + + ))} +
+ + {canScrollLeft && ( + + )} + + {canScrollRight && ( + + )} +
+
+ ); +}; diff --git a/app/javascript/mastodon/features/lists/members.tsx b/app/javascript/mastodon/features/lists/members.tsx index a1b50ffaf8..184b54b92d 100644 --- a/app/javascript/mastodon/features/lists/members.tsx +++ b/app/javascript/mastodon/features/lists/members.tsx @@ -7,11 +7,8 @@ import { useParams, Link } from 'react-router-dom'; import { useDebouncedCallback } from 'use-debounce'; -import AddIcon from '@/material-icons/400-24px/add.svg?react'; -import ArrowBackIcon from '@/material-icons/400-24px/arrow_back.svg?react'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import SquigglyArrow from '@/svg-icons/squiggly_arrow.svg?react'; -import { fetchFollowing } from 'mastodon/actions/accounts'; import { importFetchedAccounts } from 'mastodon/actions/importer'; import { fetchList } from 'mastodon/actions/lists'; import { apiRequest } from 'mastodon/api'; @@ -25,14 +22,12 @@ import { Avatar } from 'mastodon/components/avatar'; import { Button } from 'mastodon/components/button'; import Column from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; +import { ColumnSearchHeader } from 'mastodon/components/column_search_header'; import { FollowersCounter } from 'mastodon/components/counters'; import { DisplayName } from 'mastodon/components/display_name'; -import { Icon } from 'mastodon/components/icon'; import ScrollableList from 'mastodon/components/scrollable_list'; import { ShortNumber } from 'mastodon/components/short_number'; import { VerifiedBadge } from 'mastodon/components/verified_badge'; -import { ButtonInTabsBar } from 'mastodon/features/ui/util/columns_context'; -import { me } from 'mastodon/initial_state'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; const messages = defineMessages({ @@ -49,54 +44,6 @@ const messages = defineMessages({ type Mode = 'remove' | 'add'; -const ColumnSearchHeader: React.FC<{ - onBack: () => void; - onSubmit: (value: string) => void; -}> = ({ onBack, onSubmit }) => { - const intl = useIntl(); - const [value, setValue] = useState(''); - - const handleChange = useCallback( - ({ target: { value } }: React.ChangeEvent) => { - setValue(value); - onSubmit(value); - }, - [setValue, onSubmit], - ); - - const handleSubmit = useCallback(() => { - onSubmit(value); - }, [onSubmit, value]); - - return ( - -
- - - -
-
- ); -}; - const AccountItem: React.FC<{ accountId: string; listId: string; @@ -156,6 +103,7 @@ const AccountItem: React.FC<{ text={intl.formatMessage( partOfList ? messages.remove : messages.add, )} + secondary={partOfList} onClick={handleClick} />
@@ -171,9 +119,6 @@ const ListMembers: React.FC<{ const { id } = useParams<{ id: string }>(); const intl = useIntl(); - const followingAccountIds = useAppSelector( - (state) => state.user_lists.getIn(['following', me, 'items']) as string[], - ); const [searching, setSearching] = useState(false); const [accountIds, setAccountIds] = useState([]); const [searchAccountIds, setSearchAccountIds] = useState([]); @@ -195,8 +140,6 @@ const ListMembers: React.FC<{ .catch(() => { setLoading(false); }); - - dispatch(fetchFollowing(me)); } }, [dispatch, id]); @@ -265,8 +208,8 @@ const ListMembers: React.FC<{ let displayedAccountIds: string[]; - if (mode === 'add') { - displayedAccountIds = searching ? searchAccountIds : followingAccountIds; + if (mode === 'add' && searching) { + displayedAccountIds = searchAccountIds; } else { displayedAccountIds = accountIds; } @@ -276,31 +219,21 @@ const ListMembers: React.FC<{ bindToDocument={!multiColumn} label={intl.formatMessage(messages.heading)} > - {mode === 'remove' ? ( - - - - } - /> - ) : ( - - )} + + + - {displayedAccountIds.length > 0 &&
} + <> + {displayedAccountIds.length > 0 &&
} -
- - - -
- - ) +
+ + + +
+ } emptyMessage={ mode === 'remove' ? ( diff --git a/app/javascript/mastodon/features/onboarding/components/step.jsx b/app/javascript/mastodon/features/onboarding/components/step.jsx deleted file mode 100644 index a2a1653b8a..0000000000 --- a/app/javascript/mastodon/features/onboarding/components/step.jsx +++ /dev/null @@ -1,57 +0,0 @@ -import PropTypes from 'prop-types'; - -import { Link } from 'react-router-dom'; - -import ArrowRightAltIcon from '@/material-icons/400-24px/arrow_right_alt.svg?react'; -import CheckIcon from '@/material-icons/400-24px/done.svg?react'; -import { Icon } from 'mastodon/components/icon'; - -export const Step = ({ label, description, icon, iconComponent, completed, onClick, href, to }) => { - const content = ( - <> -
- -
- -
-
{label}
-

{description}

-
- -
- {completed ? : } -
- - ); - - if (href) { - return ( - - {content} - - ); - } else if (to) { - return ( - - {content} - - ); - } - - return ( - - ); -}; - -Step.propTypes = { - label: PropTypes.node, - description: PropTypes.node, - icon: PropTypes.string, - iconComponent: PropTypes.func, - completed: PropTypes.bool, - href: PropTypes.string, - to: PropTypes.string, - onClick: PropTypes.func, -}; diff --git a/app/javascript/mastodon/features/onboarding/follows.jsx b/app/javascript/mastodon/features/onboarding/follows.jsx deleted file mode 100644 index e23a335c06..0000000000 --- a/app/javascript/mastodon/features/onboarding/follows.jsx +++ /dev/null @@ -1,62 +0,0 @@ -import { useEffect } from 'react'; - -import { FormattedMessage } from 'react-intl'; - -import { Link } from 'react-router-dom'; - -import { useDispatch } from 'react-redux'; - - -import { fetchSuggestions } from 'mastodon/actions/suggestions'; -import { markAsPartial } from 'mastodon/actions/timelines'; -import { ColumnBackButton } from 'mastodon/components/column_back_button'; -import { EmptyAccount } from 'mastodon/components/empty_account'; -import Account from 'mastodon/containers/account_container'; -import { useAppSelector } from 'mastodon/store'; - -export const Follows = () => { - const dispatch = useDispatch(); - const isLoading = useAppSelector(state => state.getIn(['suggestions', 'isLoading'])); - const suggestions = useAppSelector(state => state.getIn(['suggestions', 'items'])); - - useEffect(() => { - dispatch(fetchSuggestions(true)); - - return () => { - dispatch(markAsPartial('home')); - }; - }, [dispatch]); - - let loadedContent; - - if (isLoading) { - loadedContent = (new Array(8)).fill().map((_, i) => ); - } else if (suggestions.isEmpty()) { - loadedContent =
; - } else { - loadedContent = suggestions.map(suggestion => ); - } - - return ( - <> - - -
-
-

-

-
- -
- {loadedContent} -
- -

{chunks} }} />

- -
- -
-
- - ); -}; diff --git a/app/javascript/mastodon/features/onboarding/follows.tsx b/app/javascript/mastodon/features/onboarding/follows.tsx new file mode 100644 index 0000000000..25ee48c8ac --- /dev/null +++ b/app/javascript/mastodon/features/onboarding/follows.tsx @@ -0,0 +1,191 @@ +import { useEffect, useState, useCallback, useRef } from 'react'; + +import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; + +import { Helmet } from 'react-helmet'; +import { Link } from 'react-router-dom'; + +import { useDebouncedCallback } from 'use-debounce'; + +import PersonIcon from '@/material-icons/400-24px/person.svg?react'; +import { fetchRelationships } from 'mastodon/actions/accounts'; +import { importFetchedAccounts } from 'mastodon/actions/importer'; +import { fetchSuggestions } from 'mastodon/actions/suggestions'; +import { markAsPartial } from 'mastodon/actions/timelines'; +import { apiRequest } from 'mastodon/api'; +import type { ApiAccountJSON } from 'mastodon/api_types/accounts'; +import Column from 'mastodon/components/column'; +import { ColumnHeader } from 'mastodon/components/column_header'; +import { ColumnSearchHeader } from 'mastodon/components/column_search_header'; +import ScrollableList from 'mastodon/components/scrollable_list'; +import Account from 'mastodon/containers/account_container'; +import { useAppSelector, useAppDispatch } from 'mastodon/store'; + +const messages = defineMessages({ + title: { + id: 'onboarding.follows.title', + defaultMessage: 'Follow people to get started', + }, + search: { id: 'onboarding.follows.search', defaultMessage: 'Search' }, + back: { id: 'onboarding.follows.back', defaultMessage: 'Back' }, +}); + +type Mode = 'remove' | 'add'; + +export const Follows: React.FC<{ + multiColumn?: boolean; +}> = ({ multiColumn }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + const isLoading = useAppSelector((state) => state.suggestions.isLoading); + const suggestions = useAppSelector((state) => state.suggestions.items); + const [searchAccountIds, setSearchAccountIds] = useState([]); + const [mode, setMode] = useState('remove'); + const [isLoadingSearch, setIsLoadingSearch] = useState(false); + const [isSearching, setIsSearching] = useState(false); + + useEffect(() => { + void dispatch(fetchSuggestions()); + + return () => { + dispatch(markAsPartial('home')); + }; + }, [dispatch]); + + const handleSearchClick = useCallback(() => { + setMode('add'); + }, [setMode]); + + const handleDismissSearchClick = useCallback(() => { + setMode('remove'); + setIsSearching(false); + }, [setMode, setIsSearching]); + + const searchRequestRef = useRef(null); + + const handleSearch = useDebouncedCallback( + (value: string) => { + if (searchRequestRef.current) { + searchRequestRef.current.abort(); + } + + if (value.trim().length === 0) { + setIsSearching(false); + setSearchAccountIds([]); + return; + } + + setIsSearching(true); + setIsLoadingSearch(true); + + searchRequestRef.current = new AbortController(); + + void apiRequest('GET', 'v1/accounts/search', { + signal: searchRequestRef.current.signal, + params: { + q: value, + }, + }) + .then((data) => { + dispatch(importFetchedAccounts(data)); + dispatch(fetchRelationships(data.map((a) => a.id))); + setSearchAccountIds(data.map((a) => a.id)); + setIsLoadingSearch(false); + return ''; + }) + .catch(() => { + setIsLoadingSearch(false); + }); + }, + 500, + { leading: true, trailing: true }, + ); + + let displayedAccountIds: string[]; + + if (mode === 'add' && isSearching) { + displayedAccountIds = searchAccountIds; + } else { + displayedAccountIds = suggestions.map( + (suggestion) => suggestion.account_id, + ); + } + + return ( + + + + + + + {displayedAccountIds.length > 0 &&
} + +
+ + + +
+ + } + emptyMessage={ + mode === 'remove' ? ( + + ) : ( + + ) + } + > + {displayedAccountIds.map((accountId) => ( + + ))} + + + + {intl.formatMessage(messages.title)} + + + + ); +}; + +// eslint-disable-next-line import/no-default-export +export default Follows; diff --git a/app/javascript/mastodon/features/onboarding/index.jsx b/app/javascript/mastodon/features/onboarding/index.jsx deleted file mode 100644 index d100a1c3d5..0000000000 --- a/app/javascript/mastodon/features/onboarding/index.jsx +++ /dev/null @@ -1,91 +0,0 @@ -import { useCallback } from 'react'; - -import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; - -import { Helmet } from 'react-helmet'; -import { Link, Switch, Route } from 'react-router-dom'; - -import { useDispatch } from 'react-redux'; - - -import illustration from '@/images/elephant_ui_conversation.svg'; -import AccountCircleIcon from '@/material-icons/400-24px/account_circle.svg?react'; -import ArrowRightAltIcon from '@/material-icons/400-24px/arrow_right_alt.svg?react'; -import ContentCopyIcon from '@/material-icons/400-24px/content_copy.svg?react'; -import EditNoteIcon from '@/material-icons/400-24px/edit_note.svg?react'; -import PersonAddIcon from '@/material-icons/400-24px/person_add.svg?react'; -import { focusCompose } from 'mastodon/actions/compose'; -import { Icon } from 'mastodon/components/icon'; -import { NotSignedInIndicator } from 'mastodon/components/not_signed_in_indicator'; -import Column from 'mastodon/features/ui/components/column'; -import { me } from 'mastodon/initial_state'; -import { useAppSelector } from 'mastodon/store'; -import { assetHost } from 'mastodon/utils/config'; - -import { Step } from './components/step'; -import { Follows } from './follows'; -import { Profile } from './profile'; -import { Share } from './share'; - -const messages = defineMessages({ - template: { id: 'onboarding.compose.template', defaultMessage: 'Hello #Mastodon!' }, -}); - -const Onboarding = () => { - const account = useAppSelector(state => state.getIn(['accounts', me])); - const dispatch = useDispatch(); - const intl = useIntl(); - - const handleComposeClick = useCallback(() => { - dispatch(focusCompose(intl.formatMessage(messages.template))); - }, [dispatch, intl]); - - return ( - - {account ? ( - - -
-
- -

-

-
- -
- 0 && account.get('note').length > 0)} icon='address-book-o' iconComponent={AccountCircleIcon} label={} description={} /> - = 1} icon='user-plus' iconComponent={PersonAddIcon} label={} description={} /> - = 1} icon='pencil-square-o' iconComponent={EditNoteIcon} label={} description={ }} />} /> - } description={} /> -
- -

- -
- - - - - - - - - -
-
-
- - - - -
- ) : } - - - - -
- ); -}; - -export default Onboarding; diff --git a/app/javascript/mastodon/features/onboarding/profile.jsx b/app/javascript/mastodon/features/onboarding/profile.jsx deleted file mode 100644 index 14250ae39b..0000000000 --- a/app/javascript/mastodon/features/onboarding/profile.jsx +++ /dev/null @@ -1,162 +0,0 @@ -import { useState, useMemo, useCallback, createRef } from 'react'; - -import { useIntl, defineMessages, FormattedMessage } from 'react-intl'; - -import classNames from 'classnames'; -import { useHistory } from 'react-router-dom'; - - -import { useDispatch } from 'react-redux'; - -import Toggle from 'react-toggle'; - -import AddPhotoAlternateIcon from '@/material-icons/400-24px/add_photo_alternate.svg?react'; -import EditIcon from '@/material-icons/400-24px/edit.svg?react'; -import { updateAccount } from 'mastodon/actions/accounts'; -import { Button } from 'mastodon/components/button'; -import { ColumnBackButton } from 'mastodon/components/column_back_button'; -import { Icon } from 'mastodon/components/icon'; -import { LoadingIndicator } from 'mastodon/components/loading_indicator'; -import { me } from 'mastodon/initial_state'; -import { useAppSelector } from 'mastodon/store'; -import { unescapeHTML } from 'mastodon/utils/html'; - -const messages = defineMessages({ - uploadHeader: { id: 'onboarding.profile.upload_header', defaultMessage: 'Upload profile header' }, - uploadAvatar: { id: 'onboarding.profile.upload_avatar', defaultMessage: 'Upload profile picture' }, -}); - -const nullIfMissing = path => path.endsWith('missing.png') ? null : path; - -export const Profile = () => { - const account = useAppSelector(state => state.getIn(['accounts', me])); - const [displayName, setDisplayName] = useState(account.get('display_name')); - const [note, setNote] = useState(unescapeHTML(account.get('note'))); - const [avatar, setAvatar] = useState(null); - const [header, setHeader] = useState(null); - const [discoverable, setDiscoverable] = useState(account.get('discoverable')); - const [isSaving, setIsSaving] = useState(false); - const [errors, setErrors] = useState(); - const avatarFileRef = createRef(); - const headerFileRef = createRef(); - const dispatch = useDispatch(); - const intl = useIntl(); - const history = useHistory(); - - const handleDisplayNameChange = useCallback(e => { - setDisplayName(e.target.value); - }, [setDisplayName]); - - const handleNoteChange = useCallback(e => { - setNote(e.target.value); - }, [setNote]); - - const handleDiscoverableChange = useCallback(e => { - setDiscoverable(e.target.checked); - }, [setDiscoverable]); - - const handleAvatarChange = useCallback(e => { - setAvatar(e.target?.files?.[0]); - }, [setAvatar]); - - const handleHeaderChange = useCallback(e => { - setHeader(e.target?.files?.[0]); - }, [setHeader]); - - const avatarPreview = useMemo(() => avatar ? URL.createObjectURL(avatar) : nullIfMissing(account.get('avatar')), [avatar, account]); - const headerPreview = useMemo(() => header ? URL.createObjectURL(header) : nullIfMissing(account.get('header')), [header, account]); - - const handleSubmit = useCallback(() => { - setIsSaving(true); - - dispatch(updateAccount({ - displayName, - note, - avatar, - header, - discoverable, - indexable: discoverable, - })).then(() => history.push('/start/follows')).catch(err => { - setIsSaving(false); - setErrors(err.response.data.details); - }); - }, [dispatch, displayName, note, avatar, header, discoverable, history]); - - return ( - <> - - -
-
-

-

-
- -
-
- - - -
- -
- - -
- -
-
- -
- - -
-