Merge commit '9d0bce40724eb77b7cc3917091b62e4ab159e29e' into glitch-soc/merge-upstream

Conflicts:
- `app/helpers/theme_helper.rb`:
  Conflict because upstream refactored theme-related code, and glitch-soc has
  a different theming system.
pull/2777/head
Claire 2024-07-15 18:51:38 +02:00
commit 64b2c712d4
27 changed files with 136 additions and 48 deletions

View File

@ -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

View File

@ -223,6 +223,13 @@ class Notifications extends PureComponent {
let scrollContainer;
const prepend = (
<>
{needsNotificationPermission && <NotificationsPermissionBanner />}
<FilteredNotificationsBanner />
</>
);
if (signedIn) {
scrollContainer = (
<ScrollableList
@ -232,7 +239,7 @@ class Notifications extends PureComponent {
showLoading={isLoading && notifications.size === 0}
hasMore={hasMore}
numPending={numPending}
prepend={needsNotificationPermission && <NotificationsPermissionBanner />}
prepend={prepend}
alwaysPrepend
emptyMessage={emptyMessage}
onLoadMore={this.handleLoadOlder}
@ -282,8 +289,6 @@ class Notifications extends PureComponent {
{filterBarContainer}
<FilteredNotificationsBanner />
{scrollContainer}
<Helmet>

View File

@ -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": "اذهب إلى الملف الشخصي",

View File

@ -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.",

View File

@ -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": "リストを削除",

View File

@ -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} අනුගමනය",

View File

@ -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": "<strong>sina sona ala sona e ni?</strong> 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",

View File

@ -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;

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -290,6 +290,7 @@ ja:
filter_by_action: アクションでフィルター
filter_by_user: ユーザーでフィルター
title: 操作履歴
unavailable_instance: "(ドメイン名が利用できません)"
announcements:
destroyed_msg: お知らせが削除されました
edit:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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: ברירת מחדל

View File

@ -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: 標準

View File

@ -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: 기본

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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: ค่าเริ่มต้น

View File

@ -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: За промовчанням

View File

@ -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: 默认

View File

@ -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

View File

@ -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])

View File

@ -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