diff --git a/app/helpers/theme_helper.rb b/app/helpers/theme_helper.rb
index bb8ef4547c..c5d226f70e 100644
--- a/app/helpers/theme_helper.rb
+++ b/app/helpers/theme_helper.rb
@@ -5,8 +5,10 @@ module ThemeHelper
flavour, theme = flavour_and_skin
if theme == 'system'
- stylesheet_pack_tag("skins/#{flavour}/mastodon-light", media: 'not all and (prefers-color-scheme: dark)', crossorigin: 'anonymous') +
- stylesheet_pack_tag("skins/#{flavour}/default", media: '(prefers-color-scheme: dark)', crossorigin: 'anonymous')
+ ''.html_safe.tap do |tags|
+ tags << stylesheet_pack_tag("skins/#{flavour}/mastodon-light", media: 'not all and (prefers-color-scheme: dark)', crossorigin: 'anonymous')
+ tags << stylesheet_pack_tag("skins/#{flavour}/default", media: '(prefers-color-scheme: dark)', crossorigin: 'anonymous')
+ end
else
stylesheet_pack_tag "skins/#{flavour}/#{theme}", media: 'all', crossorigin: 'anonymous'
end
@@ -16,8 +18,10 @@ module ThemeHelper
_, theme = flavour_and_skin
if theme == 'system'
- tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:dark], media: '(prefers-color-scheme: dark)') +
- tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:light], media: '(prefers-color-scheme: light)')
+ ''.html_safe.tap do |tags|
+ tags << tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:dark], media: '(prefers-color-scheme: dark)')
+ tags << tag.meta(name: 'theme-color', content: Themes::THEME_COLORS[:light], media: '(prefers-color-scheme: light)')
+ end
else
tag.meta name: 'theme-color', content: theme_color_for(theme)
end
diff --git a/app/javascript/mastodon/features/notifications/index.jsx b/app/javascript/mastodon/features/notifications/index.jsx
index d45f517152..54883096ef 100644
--- a/app/javascript/mastodon/features/notifications/index.jsx
+++ b/app/javascript/mastodon/features/notifications/index.jsx
@@ -223,6 +223,13 @@ class Notifications extends PureComponent {
let scrollContainer;
+ const prepend = (
+ <>
+ {needsNotificationPermission && }
+
+ >
+ );
+
if (signedIn) {
scrollContainer = (
}
+ prepend={prepend}
alwaysPrepend
emptyMessage={emptyMessage}
onLoadMore={this.handleLoadOlder}
@@ -282,8 +289,6 @@ class Notifications extends PureComponent {
{filterBarContainer}
-
-
{scrollContainer}
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 115f6335b6..5509769e04 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -35,6 +35,7 @@
"account.follow_back": "تابعهم بالمثل",
"account.followers": "مُتابِعون",
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
+ "account.followers_counter": "{count, plural, zero {}one {{counter} متابع} two {{counter} متابعين} few {{counter} متابعين} many {{counter} متابعين} other {{counter} متابعين}}",
"account.following": "الاشتراكات",
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
"account.go_to_profile": "اذهب إلى الملف الشخصي",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 86438757a3..0f3b3c91a9 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -205,10 +205,10 @@
"disabled_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert.",
"dismissable_banner.community_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen, deren Konten von {domain} verwaltet werden.",
"dismissable_banner.dismiss": "Ablehnen",
- "dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im sozialen Netzwerk geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen veröffentlicht wurden, werden höher eingestuft.",
- "dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netzwerk und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.",
- "dismissable_banner.explore_tags": "Das sind Hashtags, die derzeit an Reichweite gewinnen. Hashtags, die von vielen verschiedenen Profilen verwendet werden, werden höher eingestuft.",
- "dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im sozialen Netzwerk, denen Leute auf {domain} folgen.",
+ "dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im Social Web geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen geteilt wurden, erscheinen weiter oben.",
+ "dismissable_banner.explore_statuses": "Diese Beiträge sind heute im Social Web sehr beliebt. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, erscheinen weiter oben.",
+ "dismissable_banner.explore_tags": "Diese Hashtags sind heute im Social Web sehr beliebt. Hashtags, die von vielen verschiedenen Profilen verwendet werden, erscheinen weiter oben.",
+ "dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im Social Web, denen Leute auf {domain} folgen.",
"domain_block_modal.block": "Server blockieren",
"domain_block_modal.block_account_instead": "Stattdessen @{name} blockieren",
"domain_block_modal.they_can_interact_with_old_posts": "Profile von diesem Server werden mit deinen älteren Beiträgen interagieren können.",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index f3ba028eab..36974c7602 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -35,7 +35,9 @@
"account.follow_back": "フォローバック",
"account.followers": "フォロワー",
"account.followers.empty": "まだ誰もフォローしていません。",
+ "account.followers_counter": "{count, plural, other {{counter} フォロワー}}",
"account.following": "フォロー中",
+ "account.following_counter": "{count, plural, other {{counter} フォロー}}",
"account.follows.empty": "まだ誰もフォローしていません。",
"account.go_to_profile": "プロフィールページへ",
"account.hide_reblogs": "@{name}さんからのブーストを非表示",
@@ -61,6 +63,7 @@
"account.requested_follow": "{name}さんがあなたにフォローリクエストしました",
"account.share": "@{name}さんのプロフィールを共有する",
"account.show_reblogs": "@{name}さんからのブーストを表示",
+ "account.statuses_counter": "{count, plural, other {{counter} 投稿}}",
"account.unblock": "@{name}さんのブロックを解除",
"account.unblock_domain": "{domain}のブロックを解除",
"account.unblock_short": "ブロック解除",
@@ -412,6 +415,7 @@
"limited_account_hint.title": "このプロフィールは{domain}のモデレーターによって非表示にされています。",
"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": "リストを削除",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index fbfdfaa659..3a67beed52 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -33,6 +33,7 @@
"account.mute": "@{name} නිහඬ කරන්න",
"account.mute_short": "නිහඬ",
"account.muted": "නිහඬ කළා",
+ "account.open_original_page": "මුල් පිටුව අරින්න",
"account.posts": "ලිපි",
"account.posts_with_replies": "ලිපි සහ පිළිතුරු",
"account.report": "@{name} වාර්තා කරන්න",
@@ -51,6 +52,10 @@
"alert.unexpected.title": "අපොයි!",
"announcement.announcement": "නිවේදනය",
"audio.hide": "හඬපටය සඟවන්න",
+ "block_modal.show_less": "අඩුවෙන් පෙන්වන්න",
+ "block_modal.show_more": "තව පෙන්වන්න",
+ "block_modal.they_will_know": "අවහිර කළ බව දකිනු ඇත.",
+ "block_modal.title": "අවහිර කරන්නද?",
"boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට {combo} එබීමට හැකිය",
"bundle_column_error.copy_stacktrace": "දෝෂ වාර්තාවේ පිටපතක්",
"bundle_column_error.error.title": "අපොයි!",
@@ -100,10 +105,13 @@
"compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත",
"compose_form.placeholder": "ඔබගේ සිතුවිලි මොනවාද?",
"compose_form.poll.duration": "මත විමසීමේ කාලය",
+ "compose_form.poll.option_placeholder": "විකල්පය {number}",
"compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයකට මත විමසුම වෙනස් කරන්න",
"compose_form.poll.switch_to_single": "තනි තේරීමකට මත විමසුම වෙනස් කරන්න",
+ "compose_form.poll.type": "ශෛලිය",
"compose_form.publish": "ප්රකාශනය",
"compose_form.publish_form": "නව ලිපිය",
+ "compose_form.reply": "පිළිතුරු",
"compose_form.spoiler.marked": "අන්තර්ගත අවවාදය ඉවත් කරන්න",
"compose_form.spoiler.unmarked": "අන්තර්ගත අවවාදයක් එක් කරන්න",
"confirmation_modal.cancel": "අවලංගු",
@@ -123,6 +131,7 @@
"conversation.mark_as_read": "කියවූ බව යොදන්න",
"conversation.open": "සංවාදය බලන්න",
"conversation.with": "{names} සමඟ",
+ "copy_icon_button.copied": "පසුරුපුවරුවට පිටපත් විය",
"copypaste.copied": "පිටපත් විය",
"copypaste.copy_to_clipboard": "පසුරුපුවරුවට පිටපතක්",
"directory.federated": "දන්නා ෆෙඩිවර්ස් වෙතින්",
@@ -130,6 +139,9 @@
"directory.new_arrivals": "නව පැමිණීම්",
"directory.recently_active": "මෑත දී සක්රියයි",
"disabled_account_banner.account_settings": "ගිණුමේ සැකසුම්",
+ "dismissable_banner.dismiss": "ඉවතලන්න",
+ "domain_pill.server": "සේවාදායකය",
+ "domain_pill.username": "පරිශ්රීලක නාමය",
"embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම ලිපිය ඔබගේ අඩවියට කාවද්දන්න.",
"embed.preview": "මෙන්න එය පෙනෙන අන්දම:",
"emoji_button.activity": "ක්රියාකාරකම",
@@ -178,9 +190,13 @@
"filter_modal.select_filter.search": "සොයන්න හෝ සාදන්න",
"filter_modal.select_filter.title": "මෙම ලිපිය පෙරන්න",
"filter_modal.title.status": "ලිපියක් පෙරන්න",
+ "filtered_notifications_banner.title": "පෙරූ දැනුම්දීම්",
+ "firehose.all": "සියල්ල",
"firehose.local": "මෙම සේවාදායකය",
"firehose.remote": "වෙනත් සේවාදායක",
"follow_request.reject": "ප්රතික්ෂේප",
+ "follow_suggestions.dismiss": "නැවත පෙන්වන්න එපා",
+ "follow_suggestions.view_all": "සියල්ල බලන්න",
"footer.about": "පිළිබඳව",
"footer.directory": "පැතිකඩ නාමාවලිය",
"footer.get_app": "යෙදුම ගන්න",
@@ -202,6 +218,7 @@
"home.pending_critical_update.link": "යාවත්කාල බලන්න",
"home.show_announcements": "නිවේදන පෙන්වන්න",
"interaction_modal.login.action": "මුලට ගෙනයන්න",
+ "interaction_modal.on_another_server": "වෙනත් සේවාදායකයක",
"interaction_modal.on_this_server": "මෙම සේවාදායකයෙහි",
"interaction_modal.title.favourite": "{name}ගේ ලිපිය ප්රිය කරන්න",
"interaction_modal.title.follow": "{name} අනුගමනය",
diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json
index 80d412a20b..fcdef5f32c 100644
--- a/app/javascript/mastodon/locales/tok.json
+++ b/app/javascript/mastodon/locales/tok.json
@@ -170,6 +170,8 @@
"domain_block_modal.block": "o weka e ma",
"domain_block_modal.you_will_lose_followers": "ma ni la jan alasa ale sina li weka",
"domain_block_modal.you_wont_see_posts": "sina ken ala lukin e toki tan jan pi ma ni",
+ "domain_pill.server": "ma",
+ "domain_pill.username": "nimi jan",
"embed.preview": "ni li jo e sitelen ni:",
"emoji_button.activity": "musi",
"emoji_button.flags": "len ma",
@@ -274,6 +276,7 @@
"load_pending": "{count, plural, other {ijo sin #}}",
"loading_indicator.label": "ni li kama…",
"media_gallery.toggle_visible": "{number, plural, other {o len e sitelen}}",
+ "mute_modal.title": "sina wile ala wile kute e jan ni?",
"navigation_bar.about": "sona",
"navigation_bar.blocks": "jan weka",
"navigation_bar.compose": "o pali e toki sin",
@@ -290,24 +293,33 @@
"notification.follow": " {name} li kute e sina",
"notification.follow_request": "{name} li wile kute e sina",
"notification.mention": "jan {name} li toki e sina",
+ "notification.moderation-warning.learn_more": "o kama sona e ijo ante",
"notification.poll": "sina pana lon pana la pana ni li pini",
"notification.reblog": "{name} li wawa e toki sina",
"notification.status": "{name} li toki",
"notification.update": "{name} li ante e toki",
+ "notification_requests.dismiss": "o weka",
"notifications.column_settings.favourite": "ijo pona:",
"notifications.column_settings.follow": "jan kute sin",
"notifications.column_settings.poll": "pana lon pana ni:",
"notifications.column_settings.reblog": "wawa:",
+ "notifications.column_settings.status": "toki sin:",
"notifications.column_settings.update": "ante toki:",
"notifications.filter.all": "ale",
+ "notifications.filter.boosts": "wawa",
"notifications.filter.favourites": "ijo pona",
+ "notifications.filter.mentions": "toki pi toki sina",
"notifications.filter.polls": "pana lon pana ni",
+ "onboarding.action.back": "o tawa monsi",
+ "onboarding.actions.back": "o tawa monsi",
"onboarding.compose.template": "toki a, #Mastodon o!",
"onboarding.profile.display_name": "nimi tawa jan ante",
+ "onboarding.profile.note": "sona sina",
"onboarding.share.lead": "o toki lon nasin Masoton pi alasa sina tawa jan",
"onboarding.share.message": "ilo #Mastodon la mi jan {username} a! o kute e mi lon ni: {url}",
"onboarding.start.title": "sina o kama pona a!",
"onboarding.tips.migration": "sina sona ala sona e ni? tenpo kama la sina pilin ike tawa ma {domain} la, sina ken tawa ma ante lon ilo Masoton. jan li kute e sina la jan ni li awen kute e sina. kin la sina ken lawa e ma pi sina taso a!",
+ "poll.closed": "ona li pini",
"poll.total_people": "{count, plural, other {jan #}}",
"poll.total_votes": "{count, plural, other {pana #}}",
"poll.vote": "o pana",
@@ -315,9 +327,15 @@
"poll.votes": "{votes, plural, other {pana #}}",
"privacy.direct.long": "jan ale lon toki",
"privacy.public.short": "tawa ale",
+ "regeneration_indicator.label": "ni li kama…",
+ "relative_time.days": "{number}d",
"relative_time.full.just_now": "tenpo ni",
+ "relative_time.hours": "{number}h",
"relative_time.just_now": "tenpo ni",
+ "relative_time.minutes": "{number}m",
+ "relative_time.seconds": "{number}s",
"relative_time.today": "tenpo suno ni",
+ "reply_indicator.cancel": "o ala",
"report.block": "o weka e jan",
"report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.",
"report.categories.other": "ante",
@@ -336,6 +354,7 @@
"report.thanks.title": "sina wile ala lukin e ni anu seme?",
"report.unfollow": "o pini kute e {name}",
"report_notification.categories.legal": "ike tawa nasin lawa",
+ "report_notification.categories.other": "ante",
"search.placeholder": "o alasa",
"search.quick_action.go_to_account": "o tawa lipu jan {x}",
"search_popout.language_code": "nimi toki kepeken nasin ISO",
@@ -343,6 +362,7 @@
"search_results.see_all": "ale",
"search_results.statuses": "toki",
"search_results.title": "o alasa e {q}",
+ "server_banner.administered_by": "jan lawa:",
"status.block": "o weka e @{name}",
"status.cancel_reblog_private": "o pini e pana",
"status.delete": "o weka",
@@ -356,12 +376,14 @@
"status.media.open": "o open",
"status.media.show": "o lukin",
"status.media_hidden": "sitelen li len",
+ "status.more": "kin",
"status.mute": "o len e @{name}",
"status.mute_conversation": "o kute ala e ijo pi toki ni",
"status.pin": "o sewi lon lipu sina",
"status.pinned": "toki sewi",
"status.reblog": "o wawa",
"status.share": "o pana tawa ante",
+ "status.show_filter_reason": "o lukin",
"status.show_less": "o lili e ni",
"status.show_less_all": "o lili e ale",
"status.show_more": "o suli e ni",
@@ -378,7 +400,9 @@
"timeline_hint.resources.follows": "jan lukin",
"timeline_hint.resources.statuses": "ijo pi tenpo suli",
"trends.trending_now": "jan mute li toki",
+ "units.short.billion": "{count}B",
"units.short.million": "{count}AAA",
+ "units.short.thousand": "{count}K",
"upload_button.label": "o pana e sitelen anu kalama",
"upload_error.limit": "ilo li ken ala e suli pi ijo ni.",
"upload_form.audio_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili",
@@ -386,6 +410,7 @@
"upload_form.edit": "o ante",
"upload_form.thumbnail": "o ante e sitelen lili",
"upload_form.video_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili, e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
+ "upload_modal.analyzing_picture": "ilo li lukin e sitelen...",
"upload_modal.choose_image": "o wile e sitelen",
"upload_modal.description_placeholder": "mi pu jaki tan soweli",
"upload_modal.detect_text": "ilo o alasa e nimi tan sitelen",
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 385b9af877..30d208c9e8 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -10192,8 +10192,7 @@ noscript {
.filtered-notifications-banner {
display: flex;
align-items: center;
- border: 1px solid var(--background-border-color);
- border-top: 0;
+ border-bottom: 1px solid var(--background-border-color);
padding: 24px 32px;
gap: 16px;
color: $darker-text-color;
diff --git a/app/serializers/rest/notification_serializer.rb b/app/serializers/rest/notification_serializer.rb
index 966819585f..ee17af8076 100644
--- a/app/serializers/rest/notification_serializer.rb
+++ b/app/serializers/rest/notification_serializer.rb
@@ -3,6 +3,8 @@
class REST::NotificationSerializer < ActiveModel::Serializer
attributes :id, :type, :created_at, :group_key
+ attribute :filtered, if: :filtered?
+
belongs_to :from_account, key: :account, serializer: REST::AccountSerializer
belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer
@@ -32,4 +34,6 @@ class REST::NotificationSerializer < ActiveModel::Serializer
def moderation_warning_event?
object.type == :moderation_warning
end
+
+ delegate :filtered?, to: :object
end
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index ab6ae84db4..662401a57a 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -75,7 +75,7 @@ nl:
title: Een van jouw beveiligingssleutels is verwijderd
webauthn_disabled:
explanation: Verificatie met beveiligingssleutels is uitgeschakeld voor je account.
- extra: Het is nu alleen mogelijk om in te loggen met een door de authenticatie-app gegeneerde toegangscode.
+ extra: Het is nu alleen mogelijk om in te loggen met een door de authenticatie-app gegeneerde toegangscode als extra controle.
subject: 'Mastodon: Verificatie met beveiligingssleutels is uitgeschakeld'
title: Beveiligingssleutels uitgeschakeld
webauthn_enabled:
diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml
index 4115e0a17e..0a3d8fd081 100644
--- a/config/locales/doorkeeper.nl.yml
+++ b/config/locales/doorkeeper.nl.yml
@@ -129,7 +129,7 @@ nl:
crypto: End-to-end-encryptie
favourites: Favorieten
filters: Filters
- follow: Volgers, genegeerde en geblokkeerde gebruikers
+ follow: Gevolgde, genegeerde en geblokkeerde gebruikers
follows: Volgend
lists: Lijsten
media: Mediabijlagen
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index ec6963517a..5142b55032 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -290,6 +290,7 @@ ja:
filter_by_action: アクションでフィルター
filter_by_user: ユーザーでフィルター
title: 操作履歴
+ unavailable_instance: "(ドメイン名が利用できません)"
announcements:
destroyed_msg: お知らせが削除されました
edit:
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index d3dc4b13f1..4bb906abdb 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -211,6 +211,7 @@ ca:
setting_default_privacy: Privacitat dels tuts
setting_default_sensitive: Marcar sempre el contingut gràfic com a sensible
setting_delete_modal: Mostra la finestra de confirmació abans d'esborrar un tut
+ setting_disable_hover_cards: Deshabilita la vista prèvia del perfil en passar-hi per sobre
setting_disable_swiping: Desactiva les animacions
setting_display_media: Visualització multimèdia
setting_display_media_default: Per defecte
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index 0313d4683e..6bc7c6ac52 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -243,11 +243,13 @@ en:
warn: Hide with a warning
form_admin_settings:
activity_api_enabled: Publish aggregate statistics about user activity in the API
+ app_icon: App icon
backups_retention_period: User archive retention period
bootstrap_timeline_accounts: Always recommend these accounts to new users
closed_registrations_message: Custom message when sign-ups are not available
content_cache_retention_period: Remote content retention period
custom_css: Custom CSS
+ favicon: Favicon
mascot: Custom mascot (legacy)
media_cache_retention_period: Media cache retention period
peers_api_enabled: Publish list of discovered servers in the API
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index e83f71a2cb..40535bf96b 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -203,6 +203,7 @@ eo:
setting_default_privacy: Privateco de afiŝado
setting_default_sensitive: Ĉiam marki plurmediojn kiel tiklaj
setting_delete_modal: Montri konfirman fenestron antaŭ ol forigi mesaĝon
+ setting_disable_hover_cards: Malebligi profilan antaŭmontron kiam oni musumas
setting_disable_swiping: Malebligi svingajn movojn
setting_display_media: Montrado de plurmedioj
setting_display_media_default: Implicita
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index 65c6f6110f..1331d2f62b 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -211,6 +211,7 @@ he:
setting_default_privacy: פרטיות ההודעות
setting_default_sensitive: תמיד לתת סימון "רגיש" למדיה
setting_delete_modal: להראות תיבת אישור לפני מחיקת חיצרוץ
+ setting_disable_hover_cards: כבה הצצה מקדימה לפרופיל בעת מעבר עכבר מעליו
setting_disable_swiping: ביטול החלקת-צד
setting_display_media: תצוגת מדיה
setting_display_media_default: ברירת מחדל
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 664082dabc..56b17ab000 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -211,6 +211,7 @@ ja:
setting_default_privacy: 投稿の公開範囲
setting_default_sensitive: メディアを常に閲覧注意としてマークする
setting_delete_modal: 投稿を削除する前に確認ダイアログを表示する
+ setting_disable_hover_cards: マウスオーバーでプロフィールをポップアップしない
setting_disable_swiping: スワイプでの切り替えを無効にする
setting_display_media: メディアの表示
setting_display_media_default: 標準
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 54d36eafe0..1107e4cba5 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -211,6 +211,7 @@ ko:
setting_default_privacy: 게시물 프라이버시
setting_default_sensitive: 미디어를 언제나 민감한 콘텐츠로 설정
setting_delete_modal: 게시물 삭제 전 확인 창을 표시
+ setting_disable_hover_cards: 호버시 프로필 미리보기를 비활성화
setting_disable_swiping: 스와이프 모션 비활성화
setting_display_media: 미디어 표시
setting_display_media_default: 기본
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index d6bdb7a6f0..5110e1e6d0 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -211,7 +211,7 @@ nl:
setting_default_privacy: Zichtbaarheid van nieuwe berichten
setting_default_sensitive: Media altijd als gevoelig markeren
setting_delete_modal: Vraag voor het verwijderen van een bericht een bevestiging
- setting_disable_hover_cards: Profielvoorbeeld uitschakelen bij zweven
+ setting_disable_hover_cards: Profielvoorbeelden door eroverheen te zweven uitschakelen
setting_disable_swiping: Swipebewegingen uitschakelen
setting_display_media: Mediaweergave
setting_display_media_default: Standaard
diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml
index 1e3f3046ad..14551774fe 100644
--- a/config/locales/simple_form.sl.yml
+++ b/config/locales/simple_form.sl.yml
@@ -211,7 +211,7 @@ sl:
setting_default_privacy: Zasebnost objave
setting_default_sensitive: Vedno označi medije kot občutljive
setting_delete_modal: Pred brisanjem objave prikaži okno za pritrditev
- setting_disable_hover_cards: Onemogoči predogled profila pod kazalko
+ setting_disable_hover_cards: Onemogoči predogled profila pod kazalcem
setting_disable_swiping: Onemogoči poteze drsanja
setting_display_media: Prikaz medijev
setting_display_media_default: Privzeto
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index c3c3920962..6fedf31572 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -211,6 +211,7 @@ sq:
setting_default_privacy: Privatësi postimi
setting_default_sensitive: Mediave vëru përherë shenjë si rezervat
setting_delete_modal: Shfaq dialog ripohimi përpara fshirjes së një mesazhi
+ setting_disable_hover_cards: Çaktivizo paraparje profili, kur i kalohet kursori përsipër
setting_disable_swiping: Çaktivizo lëvizje me fërkim
setting_display_media: Shfaqje mediash
setting_display_media_default: Parazgjedhje
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index 0d9a88bc38..cdc82367f9 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -211,6 +211,7 @@ th:
setting_default_privacy: ความเป็นส่วนตัวของการโพสต์
setting_default_sensitive: ทำเครื่องหมายสื่อว่าละเอียดอ่อนเสมอ
setting_delete_modal: แสดงกล่องโต้ตอบการยืนยันก่อนลบโพสต์
+ setting_disable_hover_cards: ปิดใช้งานตัวอย่างโปรไฟล์เมื่อวางเมาส์เหนือ
setting_disable_swiping: ปิดใช้งานการเคลื่อนไหวในการปัด
setting_display_media: การแสดงสื่อ
setting_display_media_default: ค่าเริ่มต้น
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 11337f2f61..332f2c91dc 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -211,6 +211,7 @@ uk:
setting_default_privacy: Видимість дописів
setting_default_sensitive: Позначати медіа делікатними
setting_delete_modal: Показувати діалог підтвердження під час видалення допису
+ setting_disable_hover_cards: Вимкнути попередній перегляд профілю при наведенні
setting_disable_swiping: Вимкнути рух посування
setting_display_media: Показ медіа
setting_display_media_default: За промовчанням
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index 6058cc00cf..bbee8b6706 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -211,6 +211,7 @@ zh-CN:
setting_default_privacy: 嘟文默认可见范围
setting_default_sensitive: 始终标记媒体为敏感内容
setting_delete_modal: 在删除嘟文前询问我
+ setting_disable_hover_cards: 禁用悬停资料预览
setting_disable_swiping: 禁用滑动动作
setting_display_media: 媒体显示
setting_display_media_default: 默认
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 225929ae39..dfb1f5bc61 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -1015,21 +1015,26 @@ RSpec.describe Account do
context 'when is local' do
it 'generates keys' do
- account = described_class.create!(domain: nil, username: Faker::Internet.user_name(separators: ['_']))
- expect(account.keypair).to be_private
- expect(account.keypair).to be_public
+ account = described_class.create!(domain: nil, username: 'user_without_keys')
+
+ expect(account)
+ .to be_private_key
+ .and be_public_key
+ expect(account.keypair)
+ .to be_private
+ .and be_public
end
end
context 'when is remote' do
it 'does not generate keys' do
key = OpenSSL::PKey::RSA.new(1024).public_key
- account = described_class.create!(domain: 'remote', uri: 'https://remote/actor', username: Faker::Internet.user_name(separators: ['_']), public_key: key.to_pem)
+ account = described_class.create!(domain: 'remote', uri: 'https://remote/actor', username: 'remote_user_with_public', public_key: key.to_pem)
expect(account.keypair.params).to eq key.params
end
it 'normalizes domain' do
- account = described_class.create!(domain: 'にゃん', uri: 'https://xn--r9j5b5b/actor', username: Faker::Internet.user_name(separators: ['_']))
+ account = described_class.create!(domain: 'にゃん', uri: 'https://xn--r9j5b5b/actor', username: 'remote_user_with_idn_domain')
expect(account.domain).to eq 'xn--r9j5b5b'
end
end
diff --git a/spec/requests/api/v1/notifications_spec.rb b/spec/requests/api/v1/notifications_spec.rb
index 9ff0674317..c9034c17dc 100644
--- a/spec/requests/api/v1/notifications_spec.rb
+++ b/spec/requests/api/v1/notifications_spec.rb
@@ -20,8 +20,8 @@ RSpec.describe 'Notifications' do
before do
first_status = PostStatusService.new.call(user.account, text: 'Test')
ReblogService.new.call(bob.account, first_status)
- mentioning_status = PostStatusService.new.call(bob.account, text: 'Hello @alice')
- mentioning_status.mentions.first
+ PostStatusService.new.call(bob.account, text: 'Hello @alice')
+ PostStatusService.new.call(tom.account, text: 'Hello @alice', visibility: :direct) # Filtered by default
FavouriteService.new.call(bob.account, first_status)
FavouriteService.new.call(tom.account, first_status)
FollowService.new.call(bob.account, user.account)
@@ -34,10 +34,22 @@ RSpec.describe 'Notifications' do
subject
expect(response).to have_http_status(200)
- expect(body_json_types).to include 'reblog'
- expect(body_json_types).to include 'mention'
- expect(body_json_types).to include 'favourite'
- expect(body_json_types).to include 'follow'
+ expect(body_as_json.size).to eq 5
+ expect(body_json_types).to include('reblog', 'mention', 'favourite', 'follow')
+ expect(body_as_json.any? { |x| x[:filtered] }).to be false
+ end
+ end
+
+ context 'with include_filtered' do
+ let(:params) { { include_filtered: true } }
+
+ it 'returns expected notification types, including filtered notifications' do
+ subject
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json.size).to eq 6
+ expect(body_json_types).to include('reblog', 'mention', 'favourite', 'follow')
+ expect(body_as_json.any? { |x| x[:filtered] }).to be true
end
end
@@ -96,7 +108,7 @@ RSpec.describe 'Notifications' do
it 'returns the requested number of notifications paginated', :aggregate_failures do
subject
- notifications = user.account.notifications
+ notifications = user.account.notifications.browserable
expect(body_as_json.size)
.to eq(params[:limit])
diff --git a/yarn.lock b/yarn.lock
index 8e4c856105..a5e646c7ae 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -60,37 +60,37 @@ __metadata:
linkType: hard
"@babel/core@npm:^7.10.4, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.1, @babel/core@npm:^7.24.4":
- version: 7.24.8
- resolution: "@babel/core@npm:7.24.8"
+ version: 7.24.9
+ resolution: "@babel/core@npm:7.24.9"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
"@babel/code-frame": "npm:^7.24.7"
- "@babel/generator": "npm:^7.24.8"
+ "@babel/generator": "npm:^7.24.9"
"@babel/helper-compilation-targets": "npm:^7.24.8"
- "@babel/helper-module-transforms": "npm:^7.24.8"
+ "@babel/helper-module-transforms": "npm:^7.24.9"
"@babel/helpers": "npm:^7.24.8"
"@babel/parser": "npm:^7.24.8"
"@babel/template": "npm:^7.24.7"
"@babel/traverse": "npm:^7.24.8"
- "@babel/types": "npm:^7.24.8"
+ "@babel/types": "npm:^7.24.9"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
- checksum: 10c0/5e21b40cc69746deda3fe3d6540351d9cb0d1ad5aea055b7c319db26071ff5789fd9580d1aa47b114f07631e8e2109f4e71696ca11d7c7e60d157767022c1bd2
+ checksum: 10c0/e104ec6efbf099f55184933e9ab078eb5821c792ddfef3e9c6561986ec4ff103f5c11e3d7d6e5e8929e50e2c58db1cc80e5b6f14b530335b6622095ec4b4124c
languageName: node
linkType: hard
-"@babel/generator@npm:^7.24.8, @babel/generator@npm:^7.7.2":
- version: 7.24.8
- resolution: "@babel/generator@npm:7.24.8"
+"@babel/generator@npm:^7.24.8, @babel/generator@npm:^7.24.9, @babel/generator@npm:^7.7.2":
+ version: 7.24.9
+ resolution: "@babel/generator@npm:7.24.9"
dependencies:
- "@babel/types": "npm:^7.24.8"
+ "@babel/types": "npm:^7.24.9"
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^2.5.1"
- checksum: 10c0/e8a278e75a895f13a7b17dd79abe1e894fe82a5ed3abb127c33c14c66773d69993762521c094c6c364723f8f7375683b0d4a96097781175a29407baedf67b769
+ checksum: 10c0/cd1f7edce7717462546c349e15289d1267a3ed627c6f6583fbf51e78eacacc6500ec2f0024f08f1cc7138989e575635b931acf4549f9e728017a22176a9ea6b6
languageName: node
linkType: hard
@@ -231,9 +231,9 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8":
- version: 7.24.8
- resolution: "@babel/helper-module-transforms@npm:7.24.8"
+"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.24.9":
+ version: 7.24.9
+ resolution: "@babel/helper-module-transforms@npm:7.24.9"
dependencies:
"@babel/helper-environment-visitor": "npm:^7.24.7"
"@babel/helper-module-imports": "npm:^7.24.7"
@@ -242,7 +242,7 @@ __metadata:
"@babel/helper-validator-identifier": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/b76496d5045af55be9de60e59e65e56a43033f01ccc746b26b7af911c358668c206b688ce70a23ab31ec04f9728f3a38e8d01073c85244115ab62f271a7fa3d1
+ checksum: 10c0/e27bca43bc113731ee4f2b33a4c5bf9c7eebf4d64487b814c305cbd5feb272c29fcd3d79634ba03131ade171e5972bc7ede8dbc83ba0deb02f1e62d318c87770
languageName: node
linkType: hard
@@ -1540,14 +1540,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
- version: 7.24.8
- resolution: "@babel/types@npm:7.24.8"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.24.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
+ version: 7.24.9
+ resolution: "@babel/types@npm:7.24.9"
dependencies:
"@babel/helper-string-parser": "npm:^7.24.8"
"@babel/helper-validator-identifier": "npm:^7.24.7"
to-fast-properties: "npm:^2.0.0"
- checksum: 10c0/2d7bf561ae993e794cb052c5a81d3a6d1877da13e1e2eb2a59ae75a8fb1c965b618fb3e4abd42548f5f9a4587d3a149185a32d6c4c4ea82195da7dd86f2da0f1
+ checksum: 10c0/4970b3481cab39c5c3fdb7c28c834df5c7049f3c7f43baeafe121bb05270ebf0da7c65b097abf314877f213baa591109c82204f30d66cdd46c22ece4a2f32415
languageName: node
linkType: hard