diff --git a/packages/app/public/bench.html b/packages/app/public/bench.html index 95159cd9..2b34969f 100644 --- a/packages/app/public/bench.html +++ b/packages/app/public/bench.html @@ -1,4 +1,4 @@ - + diff --git a/packages/app/public/index.html b/packages/app/public/index.html index b5a13832..ee84c3b7 100644 --- a/packages/app/public/index.html +++ b/packages/app/public/index.html @@ -1,4 +1,4 @@ - + diff --git a/packages/app/src/Cache/GiftWrapCache.ts b/packages/app/src/Cache/GiftWrapCache.ts index 67f00b91..71e82b45 100644 --- a/packages/app/src/Cache/GiftWrapCache.ts +++ b/packages/app/src/Cache/GiftWrapCache.ts @@ -38,7 +38,7 @@ export class GiftWrapCache extends RefreshFeedCache { } catch (e) { console.debug(e, v); } - }), + }) ) ) .filter(a => a !== undefined) diff --git a/packages/app/src/Element/CashuNuts.tsx b/packages/app/src/Element/CashuNuts.tsx index 4e124e38..8674657b 100644 --- a/packages/app/src/Element/CashuNuts.tsx +++ b/packages/app/src/Element/CashuNuts.tsx @@ -26,7 +26,7 @@ export default function CashuNuts({ token }: { token: string }) { e.stopPropagation(); const lnurl = profile?.lud16 ?? ""; const url = `https://redeem.cashu.me?token=${encodeURIComponent(token)}&lightning=${encodeURIComponent( - lnurl, + lnurl )}&autopay=yes`; window.open(url, "_blank"); } diff --git a/packages/app/src/Element/FollowButton.tsx b/packages/app/src/Element/FollowButton.tsx index c2cb0e54..64a1dc38 100644 --- a/packages/app/src/Element/FollowButton.tsx +++ b/packages/app/src/Element/FollowButton.tsx @@ -34,7 +34,7 @@ export default function FollowButton(props: FollowButtonProps) { if (publisher) { const ev = await publisher.contactList( follows.item.filter(a => a !== pubkey), - relays.item, + relays.item ); System.BroadcastEvent(ev); } diff --git a/packages/app/src/Element/Nip5Service.tsx b/packages/app/src/Element/Nip5Service.tsx index 5a389c44..19318901 100644 --- a/packages/app/src/Element/Nip5Service.tsx +++ b/packages/app/src/Element/Nip5Service.tsx @@ -261,7 +261,9 @@ export default function Nip5Service(props: Nip05ServiceProps) { />  @  )} diff --git a/packages/app/src/Element/Note.tsx b/packages/app/src/Element/Note.tsx index 85deb9dc..db857738 100644 --- a/packages/app/src/Element/Note.tsx +++ b/packages/app/src/Element/Note.tsx @@ -135,7 +135,7 @@ export function NoteInner(props: NoteProps) { { [Reaction.Positive]: [] as TaggedNostrEvent[], [Reaction.Negative]: [] as TaggedNostrEvent[], - }, + } ); return { [Reaction.Positive]: dedupeByPubkey(result[Reaction.Positive]), @@ -150,7 +150,7 @@ export function NoteInner(props: NoteProps) { ...getReactions(related, ev.id, EventKind.TextNote).filter(e => e.tags.some(tagFilterOfTextRepost(e, ev.id))), ...getReactions(related, ev.id, EventKind.Repost), ]), - [related, ev], + [related, ev] ); const zaps = useMemo(() => { const sortedZaps = getReactions(related, ev.id, EventKind.ZapReceipt) @@ -241,7 +241,7 @@ export function NoteInner(props: NoteProps) { function goToEvent( e: React.MouseEvent, eTarget: TaggedNostrEvent, - isTargetAllowed: boolean = e.target === e.currentTarget, + isTargetAllowed: boolean = e.target === e.currentTarget ) { if (!isTargetAllowed || opt?.canClick === false) { return; diff --git a/packages/app/src/Element/NoteCreator.css b/packages/app/src/Element/NoteCreator.css index 44417017..e879558e 100644 --- a/packages/app/src/Element/NoteCreator.css +++ b/packages/app/src/Element/NoteCreator.css @@ -2,8 +2,7 @@ border: 1px solid transparent; border-radius: 12px; box-shadow: 0px 0px 6px 1px rgba(182, 108, 156, 0.3); - background: - linear-gradient(var(--gray-superdark), var(--gray-superdark)) padding-box, + background: linear-gradient(var(--gray-superdark), var(--gray-superdark)) padding-box, linear-gradient(90deg, #ef9644, #fd7c49, #ff5e58, #ff3b70, #ff088e, #eb00b1, #c31ed5, #7b41f6) border-box; } diff --git a/packages/app/src/Element/NoteCreator.tsx b/packages/app/src/Element/NoteCreator.tsx index 3ea2e7dd..d9a5ab85 100644 --- a/packages/app/src/Element/NoteCreator.tsx +++ b/packages/app/src/Element/NoteCreator.tsx @@ -76,8 +76,8 @@ export function NoteCreator() { setError( formatMessage({ defaultMessage: "Invalid LNURL", - }), - ), + }) + ) ); return; } @@ -256,9 +256,9 @@ export function NoteCreator() { ? false : // otherwise return selectedCustomRelays with target relay added / removed a.filter(el => - el === r ? e.target.checked : !selectedCustomRelays || selectedCustomRelays.includes(el), - ), - ), + el === r ? e.target.checked : !selectedCustomRelays || selectedCustomRelays.includes(el) + ) + ) ) } /> diff --git a/packages/app/src/Element/NoteFooter.tsx b/packages/app/src/Element/NoteFooter.tsx index 068c8ac5..6e74f1f1 100644 --- a/packages/app/src/Element/NoteFooter.tsx +++ b/packages/app/src/Element/NoteFooter.tsx @@ -71,7 +71,7 @@ export default function NoteFooter(props: NoteFooterProps) { }, { captureEvent: true, - }, + } ); function hasReacted(emoji: string) { diff --git a/packages/app/src/Element/Poll.tsx b/packages/app/src/Element/Poll.tsx index d1c163db..a72cf2cd 100644 --- a/packages/app/src/Element/Poll.tsx +++ b/packages/app/src/Element/Poll.tsx @@ -47,15 +47,15 @@ export default function Poll(props: PollProps) { }, { amount, - }, - ), + } + ) ); } setVoting(opt); const r = Object.keys(relays.item); const zap = await publisher.zap(amount * 1000, props.ev.pubkey, r, props.ev.id, undefined, eb => - eb.tag(["poll_option", opt.toString()]), + eb.tag(["poll_option", opt.toString()]) ); const lnurl = props.ev.tags.find(a => a[0] === "zap")?.[1] || pollerProfile?.lud16 || pollerProfile?.lud06; @@ -68,7 +68,7 @@ export default function Poll(props: PollProps) { throw new Error( formatMessage({ defaultMessage: "Can't vote because LNURL service does not support zaps", - }), + }) ); } @@ -85,7 +85,7 @@ export default function Poll(props: PollProps) { setError( formatMessage({ defaultMessage: "Failed to send vote", - }), + }) ); } } finally { diff --git a/packages/app/src/Element/PubkeyList.tsx b/packages/app/src/Element/PubkeyList.tsx index 8a5d14df..17648433 100644 --- a/packages/app/src/Element/PubkeyList.tsx +++ b/packages/app/src/Element/PubkeyList.tsx @@ -34,7 +34,7 @@ export default function PubkeyList({ ev, className }: { ev: NostrEvent; classNam pk, Object.keys(login.relays.item), undefined, - `Zap from ${hexToBech32("note", ev.id)}`, + `Zap from ${hexToBech32("note", ev.id)}` ); const invoice = await svc.getInvoice(amtSend, undefined, zap); if (invoice.pr) { diff --git a/packages/app/src/Element/ReBroadcaster.tsx b/packages/app/src/Element/ReBroadcaster.tsx index 53029aeb..b3ad9dab 100644 --- a/packages/app/src/Element/ReBroadcaster.tsx +++ b/packages/app/src/Element/ReBroadcaster.tsx @@ -55,9 +55,9 @@ export function ReBroadcaster() { ? false : // otherwise return selectedCustomRelays with target relay added / removed a.filter(el => - el === r ? e.target.checked : !selectedCustomRelays || selectedCustomRelays.includes(el), - ), - ), + el === r ? e.target.checked : !selectedCustomRelays || selectedCustomRelays.includes(el) + ) + ) ) } /> diff --git a/packages/app/src/Element/Reactions.tsx b/packages/app/src/Element/Reactions.tsx index 076089c2..cd755b26 100644 --- a/packages/app/src/Element/Reactions.tsx +++ b/packages/app/src/Element/Reactions.tsx @@ -60,7 +60,7 @@ const Reactions = ({ show, setShow, positive, negative, reposts, zaps }: Reactio value: 3, }, ] - : [], + : [] ); const [tab, setTab] = useState(tabs[0]); diff --git a/packages/app/src/Element/Relay.tsx b/packages/app/src/Element/Relay.tsx index 0de4d288..1fca237a 100644 --- a/packages/app/src/Element/Relay.tsx +++ b/packages/app/src/Element/Relay.tsx @@ -22,7 +22,7 @@ export default function Relay(props: RelayProps) { const navigate = useNavigate(); const login = useLogin(); const relaySettings = unwrap( - login.relays.item[props.addr] ?? System.Sockets.find(a => a.address === props.addr)?.settings ?? {}, + login.relays.item[props.addr] ?? System.Sockets.find(a => a.address === props.addr)?.settings ?? {} ); const state = useRelayState(props.addr); const name = useMemo(() => getRelayName(props.addr), [props.addr]); @@ -34,7 +34,7 @@ export default function Relay(props: RelayProps) { ...login.relays.item, [props.addr]: o, }, - unixNowMs(), + unixNowMs() ); } diff --git a/packages/app/src/Element/SendSats.tsx b/packages/app/src/Element/SendSats.tsx index 1c0823f0..368095d9 100644 --- a/packages/app/src/Element/SendSats.tsx +++ b/packages/app/src/Element/SendSats.tsx @@ -285,7 +285,7 @@ export default function SendSats(props: SendSatsProps) { {makeTab(ZapType.AnonZap, )} {makeTab( ZapType.NonZap, - , + )} diff --git a/packages/app/src/Element/Thread.tsx b/packages/app/src/Element/Thread.tsx index 73532db7..ee6512b5 100644 --- a/packages/app/src/Element/Thread.tsx +++ b/packages/app/src/Element/Thread.tsx @@ -243,7 +243,7 @@ export default function Thread() { if (t?.root?.key === "a" && t?.root?.value) { const parsed = t.root.value.split(":"); replyTo = thread.data?.find( - a => a.kind === Number(parsed[0]) && a.pubkey === parsed[1] && findTag(a, "d") === parsed[2], + a => a.kind === Number(parsed[0]) && a.pubkey === parsed[1] && findTag(a, "d") === parsed[2] )?.id; } if (replyTo) { @@ -264,7 +264,7 @@ export default function Thread() { thread.data?.find( ne => ne.id === currentId || - (link.type === NostrPrefix.Address && findTag(ne, "d") === currentId && ne.pubkey === link.author), + (link.type === NostrPrefix.Address && findTag(ne, "d") === currentId && ne.pubkey === link.author) ) ?? (location.state && "sig" in location.state ? (location.state as TaggedNostrEvent) : undefined); if (currentNote) { const currentThread = EventExt.extractThread(currentNote); @@ -280,7 +280,7 @@ export default function Thread() { if (replyTo.key === "a" && replyTo.value) { const parsed = replyTo.value.split(":"); return thread.data?.find( - a => a.kind === Number(parsed[0]) && a.pubkey === parsed[1] && findTag(a, "d") === parsed[2], + a => a.kind === Number(parsed[0]) && a.pubkey === parsed[1] && findTag(a, "d") === parsed[2] ); } if (replyTo.value) { @@ -348,7 +348,7 @@ export default function Thread() { notes={replies} related={getAllReactions( thread.data, - replies.map(a => a.id), + replies.map(a => a.id) )} chains={chains} onNavigate={navigateThread} diff --git a/packages/app/src/Element/Timeline.tsx b/packages/app/src/Element/Timeline.tsx index 0b5c545a..acdd1221 100644 --- a/packages/app/src/Element/Timeline.tsx +++ b/packages/app/src/Element/Timeline.tsx @@ -47,7 +47,7 @@ const Timeline = (props: TimelineProps) => { ?.filter(a => (props.postsOnly ? !a.tags.some(b => b[0] === "e") : true)) .filter(a => props.ignoreModeration || !isMuted(a.pubkey)); }, - [props.postsOnly, muted, props.ignoreModeration], + [props.postsOnly, muted, props.ignoreModeration] ); const mainFeed = useMemo(() => { @@ -60,7 +60,7 @@ const Timeline = (props: TimelineProps) => { (id: u256) => { return (feed.related ?? []).filter(a => findTag(a, "e") === id); }, - [feed.related], + [feed.related] ); const liveStreams = useMemo(() => { return (feed.main ?? []).filter(a => a.kind === EventKind.LiveEvent && findTag(a, "status") === "live"); diff --git a/packages/app/src/Element/TimelineFollows.tsx b/packages/app/src/Element/TimelineFollows.tsx index c9649968..8866a285 100644 --- a/packages/app/src/Element/TimelineFollows.tsx +++ b/packages/app/src/Element/TimelineFollows.tsx @@ -28,11 +28,11 @@ const TimelineFollows = (props: TimelineFollowsProps) => { const [latest, setLatest] = useState(unixNow()); const feed = useSyncExternalStore( cb => FollowsFeed.hook(cb, "*"), - () => FollowsFeed.snapshot(), + () => FollowsFeed.snapshot() ); const reactions = useReactions( "follows-feed-reactions", - feed.map(a => a.id), + feed.map(a => a.id) ); const system = useContext(SnortContext); const login = useLogin(); @@ -48,7 +48,7 @@ const TimelineFollows = (props: TimelineFollowsProps) => { ?.filter(a => (props.postsOnly ? !a.tags.some(b => b[0] === "e") : true)) .filter(a => !isMuted(a.pubkey) && login.follows.item.includes(a.pubkey)); }, - [props.postsOnly, muted, login.follows.timestamp], + [props.postsOnly, muted, login.follows.timestamp] ); const mainFeed = useMemo(() => { @@ -63,7 +63,7 @@ const TimelineFollows = (props: TimelineFollowsProps) => { (id: u256) => { return (reactions?.data ?? []).filter(a => findTag(a, "e") === id); }, - [reactions], + [reactions] ); const liveStreams = useMemo(() => { diff --git a/packages/app/src/Element/ZapstrEmbed.tsx b/packages/app/src/Element/ZapstrEmbed.tsx index fa112e8a..844b5b67 100644 --- a/packages/app/src/Element/ZapstrEmbed.tsx +++ b/packages/app/src/Element/ZapstrEmbed.tsx @@ -17,7 +17,7 @@ export default function ZapstrEmbed({ ev }: { ev: NostrEvent }) { ev.tags.find(a => a[0] === "d")?.[1] ?? "", undefined, ev.kind, - ev.pubkey, + ev.pubkey ); return ( <> diff --git a/packages/app/src/Feed/BadgesFeed.ts b/packages/app/src/Feed/BadgesFeed.ts index d180f160..d6905c5d 100644 --- a/packages/app/src/Feed/BadgesFeed.ts +++ b/packages/app/src/Feed/BadgesFeed.ts @@ -23,7 +23,7 @@ export default function useProfileBadges(pubkey?: HexKey) { if (profileBadges.data) { return chunks( profileBadges.data.tags.filter(t => t[0] === "a" || t[0] === "e"), - 2, + 2 ).reduce((acc, [a, e]) => { return { ...acc, @@ -44,7 +44,7 @@ export default function useProfileBadges(pubkey?: HexKey) { } return acc; }, - { pubkeys: [], ds: [] } as BadgeAwards, + { pubkeys: [], ds: [] } as BadgeAwards ) as BadgeAwards; }, [profile]); @@ -77,7 +77,7 @@ export default function useProfileBadges(pubkey?: HexKey) { }) .filter( ({ award, badge }) => - badge && award.pubkey === badge.pubkey && award.tags.find(t => t[0] === "p" && t[1] === pubkey), + badge && award.pubkey === badge.pubkey && award.tags.find(t => t[0] === "p" && t[1] === pubkey) ) .map(({ badge }) => unwrap(badge)); } diff --git a/packages/app/src/Feed/FeedReactions.ts b/packages/app/src/Feed/FeedReactions.ts index 5faaeb00..cd32b57a 100644 --- a/packages/app/src/Feed/FeedReactions.ts +++ b/packages/app/src/Feed/FeedReactions.ts @@ -13,7 +13,7 @@ export function useReactions(subId: string, ids: Array, others?: (rb: Re .kinds( pref.enableReactions ? [EventKind.Reaction, EventKind.Repost, EventKind.ZapReceipt] - : [EventKind.ZapReceipt, EventKind.Repost], + : [EventKind.ZapReceipt, EventKind.Repost] ) .tag("e", ids); } diff --git a/packages/app/src/Feed/FollowersFeed.ts b/packages/app/src/Feed/FollowersFeed.ts index e8b5c289..84544a29 100644 --- a/packages/app/src/Feed/FollowersFeed.ts +++ b/packages/app/src/Feed/FollowersFeed.ts @@ -14,7 +14,7 @@ export default function useFollowersFeed(pubkey?: HexKey) { const followers = useMemo(() => { const contactLists = followersFeed.data?.filter( - a => a.kind === EventKind.ContactList && a.tags.some(b => b[0] === "p" && b[1] === pubkey), + a => a.kind === EventKind.ContactList && a.tags.some(b => b[0] === "p" && b[1] === pubkey) ); return [...new Set(contactLists?.map(a => a.pubkey))]; }, [followersFeed, pubkey]); diff --git a/packages/app/src/Feed/LoginFeed.ts b/packages/app/src/Feed/LoginFeed.ts index f1eda0d6..8eceb79f 100644 --- a/packages/app/src/Feed/LoginFeed.ts +++ b/packages/app/src/Feed/LoginFeed.ts @@ -85,7 +85,7 @@ export default function useLoginFeed() { Nip4Chats.onEvent(loginFeed.data); const subs = loginFeed.data.filter( - a => a.kind === EventKind.SnortSubscriptions && a.pubkey === bech32ToHex(SnortPubKey), + a => a.kind === EventKind.SnortSubscriptions && a.pubkey === bech32ToHex(SnortPubKey) ); Promise.all( subs.map(async a => { @@ -97,7 +97,7 @@ export default function useLoginFeed() { ...ex, } as SubscriptionEvent; } - }), + }) ).then(a => addSubscription(login, ...a.filter(a => a !== undefined).map(unwrap))); } }, [loginFeed, publisher]); @@ -106,7 +106,7 @@ export default function useLoginFeed() { useEffect(() => { if (loginFeed.data) { const replies = loginFeed.data.filter( - a => a.kind === EventKind.TextNote && !isMuted(a.pubkey) && a.created_at > readNotifications, + a => a.kind === EventKind.TextNote && !isMuted(a.pubkey) && a.created_at > readNotifications ); replies.forEach(async nx => { const n = await makeNotification(nx); diff --git a/packages/app/src/Feed/ThreadFeed.ts b/packages/app/src/Feed/ThreadFeed.ts index 8fe289a2..6603bd2d 100644 --- a/packages/app/src/Feed/ThreadFeed.ts +++ b/packages/app/src/Feed/ThreadFeed.ts @@ -35,11 +35,11 @@ export default function useThreadFeed(link: NostrLink) { .kinds( pref.enableReactions ? [EventKind.Reaction, EventKind.TextNote, EventKind.Repost, EventKind.ZapReceipt] - : [EventKind.TextNote, EventKind.ZapReceipt, EventKind.Repost], + : [EventKind.TextNote, EventKind.ZapReceipt, EventKind.Repost] ) .tag( "e", - allEvents.map(a => a.id), + allEvents.map(a => a.id) ); } if (trackingATags.length > 0) { @@ -50,7 +50,7 @@ export default function useThreadFeed(link: NostrLink) { .authors(parsed.map(a => a[1])) .tag( "d", - parsed.map(a => a[2]), + parsed.map(a => a[2]) ); sub.withFilter().tag("a", trackingATags); } @@ -85,7 +85,7 @@ export default function useThreadFeed(link: NostrLink) { id: b[1], relay: b[2], }; - }), + }) ) .flat(); const eTagsMissing = eTags.filter(a => !mainNotes.some(b => b.id === a.id)); diff --git a/packages/app/src/Feed/TimelineFeed.ts b/packages/app/src/Feed/TimelineFeed.ts index 6feb29da..ea45ede4 100644 --- a/packages/app/src/Feed/TimelineFeed.ts +++ b/packages/app/src/Feed/TimelineFeed.ts @@ -43,7 +43,7 @@ export default function useTimelineFeed(subject: TimelineSubject, options: Timel .kinds( subject.type === "profile_keyword" ? [EventKind.SetMetadata] - : [EventKind.TextNote, EventKind.Repost, EventKind.Polls], + : [EventKind.TextNote, EventKind.Repost, EventKind.Polls] ); if (subject.relay) { @@ -149,7 +149,7 @@ export default function useTimelineFeed(subject: TimelineSubject, options: Timel .map(a => unwrap(a)[1]); const repostsByKind1 = main.data .filter( - a => (a.kind === EventKind.Repost || a.kind === EventKind.TextNote) && a.tags.some(tagFilterOfTextRepost(a)), + a => (a.kind === EventKind.Repost || a.kind === EventKind.TextNote) && a.tags.some(tagFilterOfTextRepost(a)) ) .map(a => a.tags.find(tagFilterOfTextRepost(a))) .filter(a => a) diff --git a/packages/app/src/Hooks/useImgProxy.ts b/packages/app/src/Hooks/useImgProxy.ts index 2f1a04cd..090fa4f4 100644 --- a/packages/app/src/Hooks/useImgProxy.ts +++ b/packages/app/src/Hooks/useImgProxy.ts @@ -21,7 +21,7 @@ export default function useImgProxy() { const result = hmacSha256( utils.hexToBytes(unwrap(settings).key), utils.hexToBytes(unwrap(settings).salt), - te.encode(u), + te.encode(u) ); return urlSafe(base64.encode(result)); } diff --git a/packages/app/src/Hooks/useInteractionCache.tsx b/packages/app/src/Hooks/useInteractionCache.tsx index 64cc8122..ab73a99c 100644 --- a/packages/app/src/Hooks/useInteractionCache.tsx +++ b/packages/app/src/Hooks/useInteractionCache.tsx @@ -15,7 +15,7 @@ export function useInteractionCache(pubkey?: HexKey, event?: u256) { const data = useSyncExternalStore( c => InteractionCache.hook(c, id), - () => InteractionCache.snapshot().find(a => a.id === id), + () => InteractionCache.snapshot().find(a => a.id === id) ) || EmptyInteraction; return { data: data, diff --git a/packages/app/src/Hooks/useLogin.tsx b/packages/app/src/Hooks/useLogin.tsx index cf3a205e..b4ffedff 100644 --- a/packages/app/src/Hooks/useLogin.tsx +++ b/packages/app/src/Hooks/useLogin.tsx @@ -4,6 +4,6 @@ import { useSyncExternalStore } from "react"; export default function useLogin() { return useSyncExternalStore( s => LoginStore.hook(s), - () => LoginStore.snapshot(), + () => LoginStore.snapshot() ); } diff --git a/packages/app/src/Login/MultiAccountStore.ts b/packages/app/src/Login/MultiAccountStore.ts index 1b25a66c..3c35ec22 100644 --- a/packages/app/src/Login/MultiAccountStore.ts +++ b/packages/app/src/Login/MultiAccountStore.ts @@ -96,7 +96,7 @@ export class MultiAccountStore extends ExternalStore { type: LoginSessionType, relays?: Record, remoteSignerRelays?: Array, - privateKey?: string, + privateKey?: string ) { if (this.#accounts.has(key)) { throw new Error("Already logged in with this pubkey"); diff --git a/packages/app/src/Nip05/ServiceProvider.ts b/packages/app/src/Nip05/ServiceProvider.ts index eda71371..610d4ed5 100644 --- a/packages/app/src/Nip05/ServiceProvider.ts +++ b/packages/app/src/Nip05/ServiceProvider.ts @@ -97,7 +97,7 @@ export class ServiceProvider { path: string, method?: "GET" | string, body?: unknown, - headers?: { [key: string]: string }, + headers?: { [key: string]: string } ): Promise { try { const rsp = await fetch(`${this.url}${path}`, { diff --git a/packages/app/src/Nip05/SnortServiceProvider.ts b/packages/app/src/Nip05/SnortServiceProvider.ts index f4de626a..d6efa314 100644 --- a/packages/app/src/Nip05/SnortServiceProvider.ts +++ b/packages/app/src/Nip05/SnortServiceProvider.ts @@ -54,7 +54,7 @@ export default class SnortServiceProvider extends ServiceProvider { path: string, method?: "GET" | string, body?: unknown, - headers?: { [key: string]: string }, + headers?: { [key: string]: string } ): Promise { const auth = await this.#publisher.generic(eb => { eb.kind(EventKind.HttpAuthentication); diff --git a/packages/app/src/Pages/ErrorPage.tsx b/packages/app/src/Pages/ErrorPage.tsx index b3fcb541..687c068d 100644 --- a/packages/app/src/Pages/ErrorPage.tsx +++ b/packages/app/src/Pages/ErrorPage.tsx @@ -25,7 +25,7 @@ const ErrorPage = () => { {JSON.stringify( error instanceof Error ? { name: error.name, message: error.message, stack: error.stack } : error, undefined, - " ", + " " )} } diff --git a/packages/app/src/Pages/Layout.tsx b/packages/app/src/Pages/Layout.tsx index a428f941..1df8c604 100644 --- a/packages/app/src/Pages/Layout.tsx +++ b/packages/app/src/Pages/Layout.tsx @@ -89,7 +89,7 @@ export default function Layout() { useEffect(() => { const osTheme = window.matchMedia("(prefers-color-scheme: light)"); setTheme( - preferences.theme === "system" && osTheme.matches ? "light" : preferences.theme === "light" ? "light" : "dark", + preferences.theme === "system" && osTheme.matches ? "light" : preferences.theme === "light" ? "light" : "dark" ); osTheme.onchange = e => { @@ -174,7 +174,7 @@ const AccountHeader = () => { const hasNotifications = useMemo( () => latestNotification > readNotifications, - [latestNotification, readNotifications], + [latestNotification, readNotifications] ); const unreadDms = useMemo(() => (publicKey ? 0 : 0), [publicKey]); diff --git a/packages/app/src/Pages/LoginPage.tsx b/packages/app/src/Pages/LoginPage.tsx index 07401626..ba004d7b 100644 --- a/packages/app/src/Pages/LoginPage.tsx +++ b/packages/app/src/Pages/LoginPage.tsx @@ -55,7 +55,7 @@ const Artwork: Array = [ export async function getNip05PubKey(addr: string): Promise { const [username, domain] = addr.split("@"); const rsp = await fetch( - `https://${domain}/.well-known/nostr.json?name=${encodeURIComponent(username.toLocaleLowerCase())}`, + `https://${domain}/.well-known/nostr.json?name=${encodeURIComponent(username.toLocaleLowerCase())}` ); if (rsp.ok) { const data = await rsp.json(); @@ -103,7 +103,7 @@ export default function LoginPage() { setError( formatMessage({ defaultMessage: "Unknown login error", - }), + }) ); } console.error(e); diff --git a/packages/app/src/Pages/Notifications.tsx b/packages/app/src/Pages/Notifications.tsx index 23cefcd7..7af56025 100644 --- a/packages/app/src/Pages/Notifications.tsx +++ b/packages/app/src/Pages/Notifications.tsx @@ -75,7 +75,7 @@ export default function NotificationsPage() { const notifications = useSyncExternalStore( c => Notifications.hook(c, "*"), - () => Notifications.snapshot(), + () => Notifications.snapshot() ); const timeKey = (ev: NostrEvent) => { @@ -119,7 +119,7 @@ function NotificationGroup({ evs }: { evs: Array }) { return zap.anonZap ? "anon" : zap.sender ?? a.pubkey; } return a.pubkey; - }), + }) ); const firstPubkey = pubkeys[0]; const firstPubkeyProfile = useUserProfile(inView ? (firstPubkey === "anon" ? "" : firstPubkey) : ""); @@ -213,7 +213,7 @@ function NotificationGroup({ evs }: { evs: Array }) { pubkeys.length - 1, firstPubkey === "anon" ? formatMessage({ defaultMessage: "Anon" }) - : getDisplayName(firstPubkeyProfile, firstPubkey), + : getDisplayName(firstPubkeyProfile, firstPubkey) )} )} diff --git a/packages/app/src/Pages/ProfilePage.tsx b/packages/app/src/Pages/ProfilePage.tsx index b5655eec..434b816b 100644 --- a/packages/app/src/Pages/ProfilePage.tsx +++ b/packages/app/src/Pages/ProfilePage.tsx @@ -221,7 +221,7 @@ export default function ProfilePage() { } as { [key: string]: Tab }; const [tab, setTab] = useState(ProfileTab.Notes); const optionalTabs = [ProfileTab.Zaps, ProfileTab.Relays, ProfileTab.Bookmarks, ProfileTab.Muted].filter(a => - unwrap(a), + unwrap(a) ) as Tab[]; const horizontalScroll = useHorizontalScroll(); @@ -433,7 +433,7 @@ export default function ProfilePage() { type: TLVEntryType.Author, length: 64, value: id, - })}`, + })}` ) }> diff --git a/packages/app/src/Pages/ZapPool.tsx b/packages/app/src/Pages/ZapPool.tsx index 26664371..f6703ee3 100644 --- a/packages/app/src/Pages/ZapPool.tsx +++ b/packages/app/src/Pages/ZapPool.tsx @@ -73,7 +73,7 @@ export default function ZapPoolPage() { const login = useLogin(); const zapPool = useSyncExternalStore( c => ZapPoolController.hook(c), - () => ZapPoolController.snapshot(), + () => ZapPoolController.snapshot() ); const { wallet } = useWallet(); diff --git a/packages/app/src/Pages/settings/Accounts.tsx b/packages/app/src/Pages/settings/Accounts.tsx index ce113010..9ad66696 100644 --- a/packages/app/src/Pages/settings/Accounts.tsx +++ b/packages/app/src/Pages/settings/Accounts.tsx @@ -27,7 +27,7 @@ export default function AccountsPage() { setError( formatMessage({ defaultMessage: "Unknown login error", - }), + }) ); } console.error(e); diff --git a/packages/app/src/Pages/settings/handle/LNAddress.tsx b/packages/app/src/Pages/settings/handle/LNAddress.tsx index 0cad952a..562dc571 100644 --- a/packages/app/src/Pages/settings/handle/LNAddress.tsx +++ b/packages/app/src/Pages/settings/handle/LNAddress.tsx @@ -29,7 +29,7 @@ export default function LNForwardAddress({ handle }: { handle: ManageHandle }) { setError( formatMessage({ defaultMessage: "Invalid LNURL", - }), + }) ); return; } diff --git a/packages/app/src/Pages/settings/wallet/Cashu.tsx b/packages/app/src/Pages/settings/wallet/Cashu.tsx index e1a6d411..5a2f4efa 100644 --- a/packages/app/src/Pages/settings/wallet/Cashu.tsx +++ b/packages/app/src/Pages/settings/wallet/Cashu.tsx @@ -39,7 +39,7 @@ const ConnectCashu = () => { setError( formatMessage({ defaultMessage: "Unknown error", - }), + }) ); } } diff --git a/packages/app/src/Pages/settings/wallet/LNC.tsx b/packages/app/src/Pages/settings/wallet/LNC.tsx index 64c66d21..d33fa9fe 100644 --- a/packages/app/src/Pages/settings/wallet/LNC.tsx +++ b/packages/app/src/Pages/settings/wallet/LNC.tsx @@ -32,7 +32,7 @@ const ConnectLNC = () => { setError( formatMessage({ defaultMessage: "Unknown error", - }), + }) ); } } diff --git a/packages/app/src/Pages/settings/wallet/LNDHub.tsx b/packages/app/src/Pages/settings/wallet/LNDHub.tsx index d2c20f44..b33462ec 100644 --- a/packages/app/src/Pages/settings/wallet/LNDHub.tsx +++ b/packages/app/src/Pages/settings/wallet/LNDHub.tsx @@ -37,7 +37,7 @@ const ConnectLNDHub = () => { setError( formatMessage({ defaultMessage: "Unknown error", - }), + }) ); } } diff --git a/packages/app/src/Pages/settings/wallet/NWC.tsx b/packages/app/src/Pages/settings/wallet/NWC.tsx index 41419615..921d6c59 100644 --- a/packages/app/src/Pages/settings/wallet/NWC.tsx +++ b/packages/app/src/Pages/settings/wallet/NWC.tsx @@ -37,7 +37,7 @@ const ConnectNostrWallet = () => { setError( formatMessage({ defaultMessage: "Unknown error", - }), + }) ); } } diff --git a/packages/app/src/SnortApi.ts b/packages/app/src/SnortApi.ts index f29a529e..a69f71e6 100644 --- a/packages/app/src/SnortApi.ts +++ b/packages/app/src/SnortApi.ts @@ -88,7 +88,7 @@ export default class SnortApi { path: string, method?: "GET" | string, body?: { [key: string]: string }, - headers?: { [key: string]: string }, + headers?: { [key: string]: string } ): Promise { if (!this.#publisher) { throw new Error("Publisher not set"); @@ -110,7 +110,7 @@ export default class SnortApi { path: string, method?: "GET" | string, body?: { [key: string]: string }, - headers?: { [key: string]: string }, + headers?: { [key: string]: string } ): Promise { const rsp = await fetch(`${this.#url}${path}`, { method: method, diff --git a/packages/app/src/SnortUtils/index.ts b/packages/app/src/SnortUtils/index.ts index 65062b2a..242b516f 100644 --- a/packages/app/src/SnortUtils/index.ts +++ b/packages/app/src/SnortUtils/index.ts @@ -50,7 +50,7 @@ export async function openFile(): Promise { } }, 300); }, - { once: true }, + { once: true } ); }); } @@ -209,7 +209,7 @@ export function dedupeByPubkey(events: TaggedNostrEvent[]) { list: [...list, ev], }; }, - { list: [], seen: new Set([]) }, + { list: [], seen: new Set([]) } ); return deduped.list as TaggedNostrEvent[]; } @@ -226,7 +226,7 @@ export function dedupeById(events: Array) { list: [...list, ev], }; }, - { list: [], seen: new Set([]) }, + { list: [], seen: new Set([]) } ); return deduped.list as Array; } @@ -487,7 +487,7 @@ export function kvToObject(o: string, sep?: string) { return [match[1], match[2]]; } return []; - }), + }) ) as T; } diff --git a/packages/app/src/Toaster.tsx b/packages/app/src/Toaster.tsx index 1d45a177..eecb85ca 100644 --- a/packages/app/src/Toaster.tsx +++ b/packages/app/src/Toaster.tsx @@ -39,7 +39,7 @@ export const Toastore = new ToasterSlots(); export default function Toaster() { const toast = useSyncExternalStore( c => Toastore.hook(c), - () => Toastore.snapshot(), + () => Toastore.snapshot() ); return ( diff --git a/packages/app/src/Upload/VoidCat.ts b/packages/app/src/Upload/VoidCat.ts index 0fe5e010..8eb8a11a 100644 --- a/packages/app/src/Upload/VoidCat.ts +++ b/packages/app/src/Upload/VoidCat.ts @@ -12,7 +12,7 @@ import { magnetURIDecode } from "SnortUtils"; export default async function VoidCatUpload( file: File | Blob, filename: string, - publisher?: EventPublisher, + publisher?: EventPublisher ): Promise { const api = new VoidApi(VoidCatHost); const uploader = api.getUploader(file); diff --git a/packages/app/src/Wallet/Cashu.ts b/packages/app/src/Wallet/Cashu.ts index b88dc13c..541e65ba 100644 --- a/packages/app/src/Wallet/Cashu.ts +++ b/packages/app/src/Wallet/Cashu.ts @@ -57,6 +57,6 @@ export interface NutStashBackup { mints: [ { mintURL: string; - }, + } ]; } diff --git a/packages/app/src/Wallet/LNCWallet.ts b/packages/app/src/Wallet/LNCWallet.ts index 6093289e..342dfec8 100644 --- a/packages/app/src/Wallet/LNCWallet.ts +++ b/packages/app/src/Wallet/LNCWallet.ts @@ -126,7 +126,7 @@ export class LNCWallet implements LNWallet { err => { this.#log(err); reject(err); - }, + } ); }); } diff --git a/packages/app/src/Wallet/NostrWalletConnect.ts b/packages/app/src/Wallet/NostrWalletConnect.ts index 5930e60d..d2d1113d 100644 --- a/packages/app/src/Wallet/NostrWalletConnect.ts +++ b/packages/app/src/Wallet/NostrWalletConnect.ts @@ -182,7 +182,7 @@ export class NostrConnectWallet implements LNWallet { ], () => { // ignored - }, + } ); await this.#conn.SendAsync(evCommand); return await new Promise((resolve, reject) => { diff --git a/packages/app/src/Wallet/WebLN.ts b/packages/app/src/Wallet/WebLN.ts index 68db4212..e9708277 100644 --- a/packages/app/src/Wallet/WebLN.ts +++ b/packages/app/src/Wallet/WebLN.ts @@ -84,7 +84,7 @@ export class WebLNWallet implements LNWallet { await window.webln?.makeInvoice({ amount: req.amount, defaultMemo: req.memo, - }), + }) ); if (rsp) { const invoice = prToWalletInvoice(rsp.paymentRequest); diff --git a/packages/app/src/Wallet/index.ts b/packages/app/src/Wallet/index.ts index cb5b98e0..ad8a01dd 100644 --- a/packages/app/src/Wallet/index.ts +++ b/packages/app/src/Wallet/index.ts @@ -248,7 +248,7 @@ window.document.addEventListener("close", () => { export function useWallet() { const wallet = useSyncExternalStore( h => Wallets.hook(h), - () => Wallets.snapshot(), + () => Wallets.snapshot() ); useEffect(() => { if (wallet.wallet?.isReady() === false && wallet.wallet.canAutoLogin()) { diff --git a/packages/app/src/ZapPoolController.ts b/packages/app/src/ZapPoolController.ts index 617933bc..0695b5d7 100644 --- a/packages/app/src/ZapPoolController.ts +++ b/packages/app/src/ZapPoolController.ts @@ -54,7 +54,7 @@ class ZapPool extends ExternalStore> { Toastore.push({ element: `Sent ${amtSend.toLocaleString()} sats to ${getDisplayName( profile, - x.pubkey, + x.pubkey )} from your zap pool`, expire: unixNow() + 10, icon: "zap", diff --git a/packages/app/src/benchmarks.ts b/packages/app/src/benchmarks.ts index 1b6acb80..fa7e8fbe 100644 --- a/packages/app/src/benchmarks.ts +++ b/packages/app/src/benchmarks.ts @@ -51,7 +51,7 @@ const testGetDiff = (q: QueryOptimizer) => { kinds: [1, 2, 3, 4, 5], authors: randomPubkeys, }, - ], + ] ); }; const testFlatMerge = (q: QueryOptimizer) => { @@ -59,7 +59,7 @@ const testFlatMerge = (q: QueryOptimizer) => { q.expandFilter({ kinds: [1, 6, 7, 6969], authors: randomPubkeys, - }), + }) ); }; const testCompress = (q: QueryOptimizer) => { diff --git a/packages/app/src/chat/index.ts b/packages/app/src/chat/index.ts index d6b9326a..f29f9122 100644 --- a/packages/app/src/chat/index.ts +++ b/packages/app/src/chat/index.ts @@ -116,7 +116,7 @@ export function createChatLink(type: ChatType, ...params: Array) { type: TLVEntryType.Author, length: params[0].length, value: params[0], - } as TLVEntry, + } as TLVEntry )}`; } case ChatType.PrivateDirectMessage: { @@ -127,7 +127,7 @@ export function createChatLink(type: ChatType, ...params: Array) { type: TLVEntryType.Author, length: params[0].length, value: params[0], - } as TLVEntry, + } as TLVEntry )}`; } case ChatType.PrivateGroupChat: { @@ -139,8 +139,8 @@ export function createChatLink(type: ChatType, ...params: Array) { type: TLVEntryType.Author, length: a.length, value: a, - }) as TLVEntry, - ), + } as TLVEntry) + ) )}`; } } @@ -161,14 +161,14 @@ export function useNip4Chat() { const { publicKey } = useLogin(); return useSyncExternalStore( c => Nip4Chats.hook(c), - () => Nip4Chats.snapshot(publicKey), + () => Nip4Chats.snapshot(publicKey) ); } export function useNip29Chat() { return useSyncExternalStore( c => Nip29Chats.hook(c), - () => Nip29Chats.snapshot(), + () => Nip29Chats.snapshot() ); } @@ -176,7 +176,7 @@ export function useNip24Chat() { const { publicKey } = useLogin(); return useSyncExternalStore( c => Nip24Chats.hook(c), - () => Nip24Chats.snapshot(publicKey), + () => Nip24Chats.snapshot(publicKey) ); } diff --git a/packages/app/src/chat/nip24.ts b/packages/app/src/chat/nip24.ts index 6281a6b7..9344e6fb 100644 --- a/packages/app/src/chat/nip24.ts +++ b/packages/app/src/chat/nip24.ts @@ -39,8 +39,8 @@ export class Nip24ChatSystem extends ExternalStore> implements ChatS value: v, type: TLVEntryType.Author, length: v.length, - }) as TLVEntry, - ), + } as TLVEntry) + ) ); }; return dedupe(messages.map(a => chatId(a))).map(a => { @@ -72,7 +72,7 @@ export class Nip24ChatSystem extends ExternalStore> implements ChatS } as { t: number; title: string | undefined; - }, + } ); return { type: ChatType.PrivateDirectMessage, diff --git a/packages/app/src/chat/nip29.ts b/packages/app/src/chat/nip29.ts index 261f7e86..956472e7 100644 --- a/packages/app/src/chat/nip29.ts +++ b/packages/app/src/chat/nip29.ts @@ -46,12 +46,12 @@ export class Nip29ChatSystem extends ExternalStore> implements ChatS .map(a => a.tags.find(b => b[0] === "g")) .filter(a => a !== undefined) .map(a => unwrap(a)) - .map(a => `${a[2]}${a[1]}`), + .map(a => `${a[2]}${a[1]}`) ); return groups.map(g => { const [relay, channel] = g.split("/", 2); const messages = allMessages.filter( - a => `${a.tags.find(b => b[0] === "g")?.[2]}${a.tags.find(b => b[0] === "g")?.[1]}` === g, + a => `${a.tags.find(b => b[0] === "g")?.[2]}${a.tags.find(b => b[0] === "g")?.[1]}` === g ); const lastRead = lastReadInChat(g); return { diff --git a/packages/app/src/chat/nip4.ts b/packages/app/src/chat/nip4.ts index f011d575..c766ba5a 100644 --- a/packages/app/src/chat/nip4.ts +++ b/packages/app/src/chat/nip4.ts @@ -34,7 +34,7 @@ export class Nip4ChatSystem extends ExternalStore> implements ChatSy const dms = this.#cache.snapshot(); const dmSince = dms.reduce( (acc, v) => (v.created_at > acc && v.kind === EventKind.DirectMessage ? (acc = v.created_at) : acc), - 0, + 0 ); this.#log("Loading DMS since %s", new Date(dmSince * 1000)); @@ -49,15 +49,12 @@ export class Nip4ChatSystem extends ExternalStore> implements ChatSy listChats(pk: string): Chat[] { const myDms = this.#nip4Events(); - const chats = myDms.reduce( - (acc, v) => { - const chatId = inChatWith(v, pk); - acc[chatId] ??= []; - acc[chatId].push(v); - return acc; - }, - {} as Record>, - ); + const chats = myDms.reduce((acc, v) => { + const chatId = inChatWith(v, pk); + acc[chatId] ??= []; + acc[chatId].push(v); + return acc; + }, {} as Record>); return [...Object.entries(chats)].map(([k, v]) => Nip4ChatSystem.createChatObj(k, v)); } diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx index b86f360c..691e08cd 100644 --- a/packages/app/src/index.tsx +++ b/packages/app/src/index.tsx @@ -202,5 +202,5 @@ root.render( - , + ); diff --git a/packages/app/src/translations/az_AZ.json b/packages/app/src/translations/az_AZ.json index 706a5f87..6b0dde09 100644 --- a/packages/app/src/translations/az_AZ.json +++ b/packages/app/src/translations/az_AZ.json @@ -90,10 +90,10 @@ "BGCM48": "Write access to Snort relay, with 1 year of event retention", "BOUMjw": "No nostr users found for {twitterUsername}", "BOr9z/": "Snort is an open source project built by passionate people in their free time", - "BWpuKl": "Update", + "BWpuKl": "Yenilə", "BcGMo+": "Notes hold text content, the most popular usage of these notes is to store \"tweet like\" messages.", "C5xzTC": "Premium", - "C81/uG": "Logout", + "C81/uG": "Çıxış", "C8HhVE": "Suggested Follows", "CHTbO3": "Failed to load invoice", "CVWeJ6": "Trending People", diff --git a/packages/app/src/translations/de_DE.json b/packages/app/src/translations/de_DE.json index 2ef7c742..82468f63 100644 --- a/packages/app/src/translations/de_DE.json +++ b/packages/app/src/translations/de_DE.json @@ -1,17 +1,17 @@ { - "+D82kt": "Sind Sie sicher, dass Sie {id} teilen möchten?", + "+D82kt": "Bist du sicher, dass du {id} teilen möchtest?", "+PzQ9Y": "Jetzt auszahlen", "+Vxixo": "Geheimer Gruppenchat", "+aZY2h": "Zap Typ", "+vA//S": "Anmeldungen", - "+vIQlC": "Bitte speichern Sie dieses Passwort, um in der Zukunft Ihren Benutzernamen verwalten zu können", + "+vIQlC": "Bitte sichere dir das folgende Passwort, um dein Handle in Zukunft verwalten zu können", "+vVZ/G": "Verbinden", "+xliwN": "{name} hat gerepostet", "/4tOwT": "Überspringen", "/JE/X+": "Konto Hilfe", "/PCavi": "Öffentlich", "/RD0e2": "Nostr nutzt digitale Signaturen, um manipulationssichere Notes zu erstellen, welche sicher auf viele Relays repliziert werden können, um eine redundante Speicherung deiner Inhalte zu bieten.", - "/d6vEc": "Machen Sie Ihr Profil einfacher auffind- und teilbar", + "/d6vEc": "Mach dein Profil leichter zu finden und zu teilen", "/n5KSF": "{n} ms", "00LcfG": "Mehr laden", "08zn6O": "Schlüssel exportieren", @@ -25,7 +25,7 @@ "1R43+L": "Nostr Wallet Connect Konfiguration eingeben", "1c4YST": "Verbunden mit: {node}🎉", "1iQ8GN": "Vorschau ein/aus", - "1nYUGC": "{n} folgen", + "1nYUGC": "{n} Folgen", "1udzha": "Unterhaltungen", "2/2yg+": "Hinzufügen", "25V4l1": "Banner", @@ -39,20 +39,20 @@ "3gOsZq": "Übersetzer", "3qnJlS": "Du stimmst mit {amount} sats ab", "3t3kok": "{n,plural,one {}=1{{n} neues Event} other{{n} neue Events}}", - "3tVy+Z": "{n} Folgende", + "3tVy+Z": "{n} Follower", "3xCwbZ": "oder", "3yk8fB": "Wallet", "450Fty": "Keine", "47FYwb": "Abbrechen", "4IPzdn": "Primäre Entwickler", - "4L2vUY": "Dein neuer NIP-05 Name ist:", + "4L2vUY": "Dein neuer NIP-05-Handle ist:", "4OB335": "Gefällt nicht", "4Vmpt4": "Nostr Plebs ist einer der ersten NIP-05 Anbieter und bietet eine gute Auswahl von Domains zu fairen Preisen", "4Z3t5i": "Verwende imgproxy um Bilder zu komprimieren", "4rYCjn": "Notiz an mich selbst", - "5JcXdV": "Benutzerkonto anlegen", + "5JcXdV": "Konto erstellen", "5oTnfy": "Handle kaufen", - "5rOdPG": "Sobald Sie Ihre Schlüssel-Manager-Erweiterung eingerichtet haben und einen Schlüssel generiert haben, können Sie unserem neuen Setup Prozess folgen, um Ihr Profil einzurichten und ein paar interessante Profile zu entdecken.", + "5rOdPG": "Sobald du deine Erweiterung für die Schlüsselverwaltung eingerichtet und einen Schlüssel generiert hast, kannst du unserem Prozess für neue Benutzer folgen, um dein Profil einzurichten und einige interessante Leute auf Nostr zu finden, denen du folgen kannst.", "5u6iEc": "An öffentlichen Schlüssel übertragen", "5vMmmR": "Benutzernamen sind auf Nostr nicht einzigartig. Die Nostr-Adresse ist deine eindeutige, menschenlesbare Adresse, die dir bei der Registrierung eindeutig zugeordnet ist.", "5ykRmX": "Zap senden", @@ -74,7 +74,7 @@ "9SvQep": "Folgt {n}", "9WRlF4": "Senden", "9gqH2W": "Anmelden", - "9pMqYs": "Nostr Adresse", + "9pMqYs": "Nostr-Adresse", "9wO4wJ": "Lightning Zahlungsanforderung", "ADmfQT": "Vorherige", "AGNz71": "Zap {n} sats an Alle", @@ -109,7 +109,7 @@ "DtYelJ": "Transferieren", "E8a4yq": "Folgen Sie einigen beliebten Konten", "ELbg9p": "Datenanbieter", - "EPYwm7": "Ihr Privatschlüssel ist ihr Passwort. Falls Sie Ihn verlieren, werden Sie den Zugriff zu Ihrem Konto verlieren! Bewahren Sie ihn an einem sicheren Ort auf. Es gibt keine Wiederherstellungsmöglichkeit für Ihren Privatschlüssel.", + "EPYwm7": "Dein privater Schlüssel ist dein Passwort. Wenn du diesen Schlüssel verlierst, hast du keinen Zugang mehr zu deinem Konto! Kopiere ihn und bewahre ihn an einem sicheren Ort auf. Es gibt keine Möglichkeit, deinen privaten Schlüssel wiederherzustellen.", "EWyQH5": "Global", "Ebl/B2": "Auf {lang} Übersetzen", "EcZF24": "Benutzerdefinierte Relays", @@ -117,10 +117,10 @@ "EnCOBJ": "Kaufen", "Eqjl5K": "Nur Snort und unsere integrierten Partner bieten farbige Domainnamen als NIP-05 Kennzeichen. Sie können aber auch gerne andere Dienste nutzen.", "F+B3x1": "Wir sind auch eine Partnerschaft mit nostrplebs.com eingegangen, um Ihnen mehr Optionen anbieten zu können.", - "F3l7xL": "Benutzerkonto hinzufügen", + "F3l7xL": "Konto hinzufügen", "FDguSC": "{n} Zaps", "FP+D3H": "LNURL zum Weiterleiten der Zaps", - "FS3b54": "Feritg!", + "FS3b54": "Fertig!", "FSYL8G": "Angesagte Benutzer", "FdhSU2": "Jetzt abholen", "FfYsOb": "Ein Fehler ist aufgetreten!", @@ -130,10 +130,10 @@ "GFOoEE": "Salt", "GL8aXW": "Lesezeichen ({n})", "GSye7T": "Lightning-Adresse", - "GUlSVG": "Beanspruche deine enthaltene Snort Nostr Adresse", + "GUlSVG": "Beanspruche deine enthaltene Snort Nostr-Adresse", "Gcn9NQ": "Magnet Link", "GspYR7": "{n} Gefällt nicht", - "H+vHiz": "Hex Schlüssel..", + "H+vHiz": "Hex-Schlüssel...", "H0JBH6": "Abmelden", "H6/kLh": "Bestellung bezahlt!", "HAlOn1": "Name", @@ -145,7 +145,7 @@ "IDjHJ6": "Danke für die Verwendung von Snort. Wir würden uns über eine Spende freuen.", "IEwZvs": "Sind sie sicher, dass sie diese Notiz entpinnen möchten?", "IKKHqV": "Folgt", - "INSqIz": "Twitter Benuzername...", + "INSqIz": "Twitter-Benutzername...", "IUZC+0": "Das bedeutet, dass niemand die von dir erstellten Notes ändern kann und jeder kann leicht überprüfen, ob die Note, die er liest, von dir erstellt wurde.", "Ig9/a1": "Sende {n} sats an {name}", "Ix8l+B": "Angesagte Notes", @@ -174,7 +174,7 @@ "MBAYRO": "Zeigt \"ID kopieren\" und \"Event JSON kopieren\" im Kontextmenu jeder Nachricht an", "MI2jkA": "Nicht verfügbar:", "MP54GY": "Wallet Passwort", - "MRp6Ly": "Twitter Benutzername", + "MRp6Ly": "Twitter-Benutzername", "MWTx65": "Standardseite", "Mrpkot": "Abonnement bezahlen", "MuVeKe": "Nostr-Adresse kaufen", @@ -203,7 +203,7 @@ "PrsIg7": "Reaktionen werden auf jeder Seite angezeigt, wenn Reaktionen deaktiviert sind, werden sie nicht angezeigt", "QDFTjG": "{n} Relais", "QWhotP": "Zap Pool funktioniert nur, wenn du eine der unterstützten Wallet-Verbindungen verwenden (WebLN, LNC, LNDHub oder Nostr Wallet Connect)", - "QawghE": "Sie können Ihren Benutzernamen jederzeit ändern.", + "QawghE": "Du kannst deinen Benutzernamen jederzeit ändern.", "QxCuTo": "Kunst von {name}", "Qxv0B2": "Du hast aktuell {number} sats in deinem Zap Pool.", "R/6nsx": "Abonnement", @@ -217,10 +217,10 @@ "RoOyAh": "Relais", "Rs4kCE": "Lesezeichen", "RwFaYs": "Sortieren", - "SOqbe9": "Lightning Adresse aktualisieren", + "SOqbe9": "Lightning-Adresse aktualisieren", "SP0+yi": "Abonnement kaufen", "SX58hM": "Kopieren", - "SYQtZ7": "LN Adresse Proxy", + "SYQtZ7": "LN-Adressen-Proxy", "ShdEie": "Alle als gelesen markieren", "Sjo1P4": "Benutzerdefiniert", "Ss0sWu": "Jetzt bezahlen", @@ -255,7 +255,7 @@ "XzF0aC": "Schlüssel-Manager-Erweiterungen sind sicherer und erlauben es Ihnen, sich ganz einfach bei jedem Nostr-Client anzumelden. Hier sind einige bekannte Erweiterungen:", "Y31HTH": "Unterstütze die Entwicklung von Snort", "YDURw6": "URL des Dienstes", - "YXA3AH": "Reaktionen einschalten", + "YXA3AH": "Reaktionen aktivieren", "Z0FDj+": "Abonniere Snort {plan} für {price} und erhalte folgende Belohnungen", "Z4BMCZ": "Verbindungs-Passphrase eingeben", "ZKORll": "Jetzt aktivieren", @@ -266,14 +266,14 @@ "a7TDNm": "Notes werden in Echtzeit in Global- und Notes-Tab gestreamt", "aWpBzj": "Mehr anzeigen", "b12Goz": "Mnemonik", - "b5vAk0": "Dein Handle ist wie eine Lightning-Adresse leitet dich zu deiner gewählten LNURL oder Lightning-Adresse weiter", + "b5vAk0": "Dein Handle ist wie eine Lightning-Adresse und leitet dich zu deiner gewählten LNURL oder Lightning-Adresse weiter", "bQdA2k": "Empfindlicher Inhalt", "bep9C3": "Öffentlicher Schlüssel", "bfvyfs": "Anon", "brAXSu": "Wählen Sie einen Benutzernamen", "bxv59V": "Gerade eben", "c+oiJe": "Erweiterung installieren", - "c35bj2": "Wenn Sie eine Frage zu Ihrer NIP-05-Bestellung haben, wenden Sie sich bitte per Direktnachricht an {link}", + "c35bj2": "Wenn du eine Anfrage zu deiner NIP-05-Bestellung hast, schreibe bitte eine DM an {link}", "c3g2hL": "Erneut verbreiten", "cFbU1B": "Du benutzt Alby? Gehe zu {link} um deine NWC Konfiguration zu erhalten!", "cPIKU2": "Folge ich", @@ -284,7 +284,7 @@ "cuV2gK": "Name ist registriert", "cyR7Kh": "Zurück", "d6CyG5": "Verlauf", - "d7d0/x": "LN Adresse", + "d7d0/x": "LN-Adresse", "dOQCL8": "Anzeigename", "e61Jf3": "Kommt bald", "e7qqly": "Alle als gelesen markieren", @@ -295,14 +295,14 @@ "fBI91o": "Zap", "fOksnD": "Abstimmung nicht möglich, da der LNURL-Dienst keine Zaps unterstützt", "fWZYP5": "Angeheftet", - "filwqD": "Gelesen", + "filwqD": "Lesen", "flnGvv": "Was ist gerade los?", "fsB/4p": "Gespeichert", - "g5pX+a": "Über uns", + "g5pX+a": "Über mich", "g985Wp": "Fehler beim Senden der Bewertung", "gBdUXk": "Speicher deine Schlüssel!", "gDZkld": "Snort ist eine Nostr Benutzeroberfläche, Nostr ist ein dezentralisiertes Protokoll zur Distribution von \"Notes\" (Text).", - "gDzDRs": "Emoji, das gesendet werden soll, wenn auf eine Notiz reagiert wird", + "gDzDRs": "Emoji, das gesendet werden soll, wenn auf eine Note reagiert wird", "gXgY3+": "Nicht alle Clients unterstützen das", "gczcC5": "Abonnieren", "gjBiyj": "Lädt...", @@ -319,12 +319,12 @@ "iDGAbc": "Holen dir einen Snort Identifikator", "iEoXYx": "DeepL Übersetzungen", "iGT1eE": "Verhindere, dass gefälschte Konten dich imitieren", - "iNWbVV": "Name", + "iNWbVV": "Handle", "iUsU2x": "Mint: {url}", "iXPL0Z": "Anmeldung mit privatem Schlüssel bei einer unsicheren Verbindung nicht möglich, bitte verwenden Sie stattdessen eine Nostr Schlüssel Manager Erweiterung", "ieGrWo": "Folgen", "itPgxd": "Profil", - "izWS4J": "Nicht mehr folgen", + "izWS4J": "Entfolgen", "jA3OE/": "{n,plural,one {}=1{{n} sat} other{{n} sats}}", "jCA7Cw": "Vorschau auf Snort", "jMzO1S": "Interner Fehler: {msg}", @@ -333,7 +333,7 @@ "jvo0vs": "Speichern", "jzgQ2z": "{n} Reaktionen", "k2veDA": "Schreiben", - "k7sKNy": "Unser eigener NIP-05-Verifizierungsdienst unterstützt die Entwicklung dieser Website und gibt Ihnen ein glänzendes Sonderabzeichen auf unserer Webseite!", + "k7sKNy": "Unser eigener NIP-05-Verifizierungsdienst unterstützt die Entwicklung dieser Website. Unterstütze uns und erhalte ein Sonderabzeichen für deine Webseite!", "kJYo0u": "{n,plural,=0{{name} hat gerepostet} other{{name} & {n} andere haben gerepostet}}", "kaaf1E": "jetzt", "kuPHYE": "{n,plural,=0{{name} gefällt das} other{{name} & {n} anderen gefällt das}}", @@ -341,7 +341,7 @@ "lBboHo": "Wenn du ein paar andere ausprobieren möchtest, besuche {link} für mehr!", "lCILNz": "Jetzt kaufen", "lD3+8a": "Bezahlen", - "lPWASz": "Snort Nostr Adresse", + "lPWASz": "Snort Nostr-Adresse", "lTbT3s": "Wallet Passwort", "lgg1KN": "Kontoseite", "ll3xBp": "Bild Proxy Dienst", @@ -364,7 +364,7 @@ "nn1qb3": "Deine Spenden werden sehr geschätzt", "nwZXeh": "{n} blockiert", "o6Uy3d": "Nur der Privatschlüssel kann genutzt werden um zu veröffentlichen (Events signieren), alles andere wird im schreibgeschützten Modus geladen.", - "o7e+nJ": "{n} Folgende", + "o7e+nJ": "{n} Follower", "oJ+JJN": "Keine Treffer :/", "odFwjL": "Nur für Folgende", "odhABf": "Anmelden", @@ -375,8 +375,8 @@ "p85Uwy": "Aktive Abonnements", "pI+77w": "Herunterladbare Backups von Snort Relais", "puLNUJ": "Pin", - "pzTOmv": "Folgende", - "qD9EUF": "E-Mail <> DM Brücke für deine Snort Nostr Adresse", + "pzTOmv": "Follower", + "qD9EUF": "E-Mail <> DM Brücke für deine Snort Nostr-Adresse", "qDwvZ4": "Unbekannter Fehler", "qMx1sA": "Standard Zap Betrag", "qUJTsT": "Blockiert", @@ -393,7 +393,7 @@ "rrfdTe": "Dies ist die gleiche Technologie, die auch von Bitcoin verwendet wird, und sich als äußerst sicher erwiesen hat.", "rudscU": "Abonnements konnten nicht geladen werden, bitte versuchen Sie es später erneut", "sWnYKw": "Snort wurde darauf konzipiert ein Twitter ähnliches Erlebnis zu bieten.", - "svOoEH": "Namesquatting und Nachahmung sind nicht erlaubt. Snort und unsere Partner behalten sich das Recht vor, Ihren Identifikator (nicht Ihr Konto, niemand kann Ihnen das wegnehmen) wegen Verstoßes gegen diese Regel zu kündigen.", + "svOoEH": "Namens-Squatting und Impersonation sind nicht erlaubt. Snort und unsere Partner behalten sich das Recht vor, bei einem Verstoß gegen diese Regel dein Handle zu löschen (nicht dein Konto - das kann dir niemand wegnehmen).", "tOdNiY": "Dunkel", "th5lxp": "Sende Note zu einer Untergruppe deiner Schreib-Relays", "thnRpU": "Eine NIP-05 Verifizierung kann helfen:", @@ -415,7 +415,7 @@ "wEQDC6": "Anpassen", "wLtRCF": "Dein Schlüssel", "wWLwvh": "Anon", - "wYSD2L": "Nostr Adresse", + "wYSD2L": "Nostr-Adresse", "wih7iJ": "Name ist blockiert", "wqyN/i": "Erfahren Sie mehr über {service} auf {link}", "wtLjP6": "ID kopieren", @@ -431,7 +431,7 @@ "xhQMeQ": "Ablaufdatum", "xmcVZ0": "Suche", "y1Z3or": "Sprache", - "yCLnBC": "LNURL oder Lightning Adresse", + "yCLnBC": "LNURL oder Lightning-Adresse", "yCmnnm": "Global lesen von", "zFegDD": "Kontakt", "zINlao": "Eigentümer", diff --git a/packages/app/src/translations/fr_FR.json b/packages/app/src/translations/fr_FR.json index 716d6d19..6227b8c8 100644 --- a/packages/app/src/translations/fr_FR.json +++ b/packages/app/src/translations/fr_FR.json @@ -5,10 +5,10 @@ "+aZY2h": "Type de Zap", "+vA//S": "Connexions", "+vIQlC": "Assurez-vous d'enregistrer le mot de passe suivant afin de gérer votre identifiant à l'avenir", - "+vVZ/G": "Connexion", + "+vVZ/G": "Connecter", "+xliwN": "{name} a reposté", "/4tOwT": "Passer", - "/JE/X+": "Prise en charge du compte", + "/JE/X+": "Support de compte", "/PCavi": "Publique", "/RD0e2": "Nostr utilise la technologie de signature numérique pour fournir des notes inviolables qui peuvent être répliquées en toute sécurité sur de nombreux relais pour fournir un stockage redondant de votre contenu.", "/d6vEc": "Rendez votre profil plus facile à trouver et à partager", @@ -24,7 +24,7 @@ "1Mo59U": "Êtes-vous sûr de vouloir supprimer cette note de vos favoris ?", "1R43+L": "Accéder à la configuration de Nostr Wallet Connect", "1c4YST": "Connecté à : {node} 🎉", - "1iQ8GN": "Prévisualisation du changement de fenêtre", + "1iQ8GN": "Activer/désactiver la prévisualisation", "1nYUGC": "{n} Abonnements", "1udzha": "Conversations", "2/2yg+": "Ajouter", @@ -49,14 +49,14 @@ "4OB335": "Ne pas aimer", "4Vmpt4": "Nostr Plebs est l'un des premiers fournisseurs NIP-05 dans l'espace et offre une bonne collection de domaines à des prix raisonnables", "4Z3t5i": "Utiliser imgproxy pour compresser les images", - "4rYCjn": "Note pour moi-même", + "4rYCjn": "Note à Soi-même", "5JcXdV": "Créer un compte", - "5oTnfy": "Buy Handle", + "5oTnfy": "Acheter Identifiant", "5rOdPG": "Une fois que vous avez configuré votre extension de gestionnaire de clés et généré une clé, vous pouvez suivre notre flux d'utilisateurs pour configurer votre profil et vous aider à trouver des personnes intéressantes à suivre sur Nostr.", "5u6iEc": "Transférer vers la clé publique", "5vMmmR": "Les noms d'utilisateur ne sont pas uniques sur Nostr. L'adresse nostr est votre adresse unique lisible par l'homme qui vous est unique lors de votre inscription.", "5ykRmX": "Envoyer zap", - "65BmHb": "Failed to proxy image from {host}, click here to load directly", + "65BmHb": "Échec du proxy de l'image de {host}, cliquez ici pour la charger directement", "6Yfvvp": "Obtenir un identifiant", "6ewQqw": "Aime ({n})", "6uMqL1": "Non payé", @@ -64,7 +64,7 @@ "7BX/yC": "Changer de compte", "7hp70g": "NIP-05", "7xzTiH": "{action} à {target}", - "8/vBbP": "Republie ({n})", + "8/vBbP": "Reposte ({n})", "89q5wc": "Confirmer la republication", "8QDesP": "Zapper {n} sats", "8g2vyB": "le nom est trop long", @@ -78,25 +78,25 @@ "9wO4wJ": "Facture Lightning", "ADmfQT": "Parent", "AGNz71": "Zapper tous les sats {n}", - "ASRK0S": "Cet auteur a été mis en sourdine", + "ASRK0S": "Cet auteur a été rendu muet", "Adk34V": "Configurer votre profil", - "Ai8VHU": "Unlimited note retention on Snort relay", + "Ai8VHU": "Conservation illimitée des notes sur le relais Snort", "AkCxS/": "Raison", "AnLrRC": "Non-Zap", "AyGauy": "Se Connecter", "B4C47Y": "le nom est trop court", "B6+XJy": "zappé", "B6H7eJ": "nsec, npub, nip-05, hex", - "BGCM48": "Write access to Snort relay, with 1 year of event retention", + "BGCM48": "Accès en écriture au relais Snort, avec conservation des évènements pendant 1 an", "BOUMjw": "Aucun utilisateur nostr trouvé pour {twitterUsername}", "BOr9z/": "Snort est un projet open source construit par des passionnés pendant leur temps libre", - "BWpuKl": "Update", + "BWpuKl": "Actualiser", "BcGMo+": "Les notes contiennent du texte, l'utilisation la plus courante de ces notes est de stocker des messages similaires à des tweets.", "C5xzTC": "Premium", "C81/uG": "Se déconnecter", - "C8HhVE": "Suggested Follows", + "C8HhVE": "Utilisateurs recommandés", "CHTbO3": "Échec du chargement de la facture", - "CVWeJ6": "Personnes en tendance", + "CVWeJ6": "Personnes tendances", "CmZ9ls": "{n} Mis en sourdine", "CsCUYo": "{n} sats", "Cu/K85": "Traduit de {lang}", @@ -108,21 +108,21 @@ "Dh3hbq": "Zap automatique", "DtYelJ": "Transférer", "E8a4yq": "Suivez quelques comptes populaires", - "ELbg9p": "Data Providers", + "ELbg9p": "Fournisseurs de données", "EPYwm7": "Votre clé privée est votre mot de passe. Si vous perdez cette clé, vous perdrez l'accès à votre compte ! Copiez-le et conservez-le en lieu sûr. Il n'y a aucun moyen de réinitialiser votre clé privée.", "EWyQH5": "Global", "Ebl/B2": "Traduire en {lang}", "EcZF24": "Relais personnalisés", "EcglP9": "Clé", "EnCOBJ": "Acheter", - "Eqjl5K": "Seuls Snort et notre identifiant de partenaire d'intégration vous donnent un nom de domaine coloré, mais vous pouvez également utiliser d'autres services.", - "F+B3x1": "Nous nous sommes également associés à nosrplebs.com pour vous offrir plus d'options", + "Eqjl5K": "Seul Snort et l'identifiant de notre partenaire d'intégration vous donnent un nom de domaine coloré, mais vous pouvez également utiliser d'autres services.", + "F+B3x1": "Nous nous sommes également associés à nosrplebs.com pour vous offrir plus d'options", "F3l7xL": "Ajouter un Compte", "FDguSC": "{n} Zaps", - "FP+D3H": "LNRURL où transférer les Zap", + "FP+D3H": "LNURL où transférer les Zap", "FS3b54": "Fait!", - "FSYL8G": "Utilisateurs en tendance", - "FdhSU2": "Réclamer maintenant", + "FSYL8G": "Utilisateurs tendances", + "FdhSU2": "Obtenir maintenant", "FfYsOb": "Une erreur est survenue!", "FmXUJg": "vous suit", "G/yZLu": "Retirer", @@ -144,13 +144,13 @@ "HbefNb": "Ouvrir le Wallet", "IDjHJ6": "Merci d'utiliser Snort, envisagez de faire un don si vous pouvez.", "IEwZvs": "Êtes-vous sûr de vouloir désépingler cette note?", - "IKKHqV": "Follows", - "INSqIz": "Nom d'utilisateur Twitter...", + "IKKHqV": "Abonnements", + "INSqIz": "Nom d'utilisateur Twitter...", "IUZC+0": "Cela signifie que personne ne peut modifier les notes que vous avez créées et que tout le monde peut facilement vérifier que les notes qu'ils lisent sont créées par vous.", - "Ig9/a1": "Sent {n} sats to {name}", - "Ix8l+B": "Notes en tendances", + "Ig9/a1": "Envoyé {n} sats à {name}", + "Ix8l+B": "Notes tendances", "J+dIsA": "Abonnements", - "JCIgkj": "Nom d'utilisateur", + "JCIgkj": "Nom d’utilisateur", "JHEHCk": "Zaps ({n})", "JPFYIM": "Aucune adresse Lightning", "JeoS4y": "Reposter", @@ -164,25 +164,25 @@ "KQvWvD": "Supprimé", "KWuDfz": "J'ai enregistré mes clés, continuer", "KahimY": "Type d'événement inconnu : {kind}", - "KoFlZg": "Enter mint URL", + "KoFlZg": "Saisir l'URL de mint", "LF5kYT": "Autres Connexions", "LXxsbk": "Anonyme", "LgbKvU": "Commenter", "Lu5/Bj": "Ouvrir avec Zapstr", - "Lw+I+J": "{n,plural,=0{{name} zapped} other{{name} & {n} others zapped}}", + "Lw+I+J": "{n,plural,=0{{name} a zappé} other{{name} & {n} autres ont zappé}}", "M3Oirc": "Menus de débogage", "MBAYRO": "Affiche \"Copy ID\" et \"Copy Event JSON\" dans le menu contextuel de chaque message", "MI2jkA": "Pas disponible:", "MP54GY": "Mot de passe du portefeuille", "MRp6Ly": "Nom d'utilisateur Twitter", "MWTx65": "Page par défaut", - "Mrpkot": "Pay for subscription", + "Mrpkot": "Payer pour l'abonnement", "MuVeKe": "Acheter une adresse nostr", "MzRYWH": "Acheter {item}", "N2IrpM": "Confirmer", - "NAuFNH": "You already have a subscription of this type, please renew or pay", - "NNSu3d": "Import Twitter Follows", - "NdOYJJ": "Hmm rien ici .. Essayez {newUsersPage} pour suivre quelques recommandations de naustriches!", + "NAuFNH": "Vous avez déjà un abonnement de ce type, veuillez renouveler ou payer", + "NNSu3d": "Importer des abonnements Twitter", + "NdOYJJ": "Hmm rien ici.. Essayez {newUsersPage} pour suivre quelques recommandations de nostriches!", "NepkXH": "Impossible de voter avec {amount} sats, veuillez définir un autre montant zap par défaut", "NfNk2V": "Votre clé privée", "NndBJE": "Page des nouveaux utilisateurs", @@ -202,10 +202,10 @@ "Pe0ogR": "Thème", "PrsIg7": "Les réactions seront affichées sur chaque page, si désactivées aucune réaction ne sera affichée", "QDFTjG": "{n} Relais", - "QWhotP": "Zap Pool only works if you use one of the supported wallet connections (WebLN, LNC, LNDHub or Nostr Wallet Connect)", + "QWhotP": "Zap Pool ne fonctionne que si vous utilisez l'une des connexions de portefeuille supportées (WebLN, LNC, LNDHub ou Nostr Wallet Connect)", "QawghE": "Vous pouvez modifier votre nom d'utilisateur à tout moment.", "QxCuTo": "Illustration par {name}", - "Qxv0B2": "You currently have {number} sats in your zap pool.", + "Qxv0B2": "Vous avez actuellement {number} sats dans votre réserve de zap.", "R/6nsx": "Abonnement", "R1fEdZ": "Zaps transféré", "R81upa": "Personnes que vous suivez", @@ -224,7 +224,7 @@ "ShdEie": "Tout marquer comme lu", "Sjo1P4": "Personnaliser", "Ss0sWu": "Payer maintenant", - "TDR5ge": "Media in notes will automatically be shown for selected people, otherwise only the link will show", + "TDR5ge": "Les médias dans les notes seront automatiquement affichés pour les personnes sélectionnées, sinon seul le lien sera affiché", "TMfYfY": "Cashu token", "TpgeGw": "Sel Hex..", "Tpy00S": "Personnes", @@ -263,10 +263,10 @@ "ZUZedV": "Don éclair :", "Zr5TMx": "Configurer le profil", "a5UPxh": "Financer les développeurs et plateformes fournissant des services de vérification NIP-05", - "a7TDNm": "Notes will stream in real time into global and notes tab", + "a7TDNm": "Les notes seront diffusées en temps réel dans l'onglet global et dans l'onglet notes", "aWpBzj": "Montrer plus", "b12Goz": "Mnémonique", - "b5vAk0": "Your handle will act like a lightning address and will redirect to your chosen LNURL or Lightning address", + "b5vAk0": "Votre identifiant agira comme une adresse Lightning et redirigera vers l'adresse LNURL ou Lightning de votre choix", "bQdA2k": "Contenu sensible", "bep9C3": "Clé publique", "bfvyfs": "Anonyme", @@ -334,9 +334,9 @@ "jzgQ2z": "{n} Réactions", "k2veDA": "Écrire", "k7sKNy": "Notre propre service de vérification NIP-05, aidez à soutenir le développement de ce site et obtenez un badge spécial brillant sur notre site !", - "kJYo0u": "{n,plural,=0{{name} reposted} other{{name} & {n} others reposted}}", + "kJYo0u": "{n,plural,=0{{name} a reposté} other{{name} & {n} autres ont reposté}}", "kaaf1E": "maintenant", - "kuPHYE": "{n,plural,=0{{name} liked} other{{name} & {n} others liked}}", + "kuPHYE": "{n,plural,=0{{name} a liké} other{{name} & {n} autres ont liké}}", "l+ikU1": "Tout dans {plan}", "lBboHo": "Si vous voulez en essayer d'autres, consultez {link} pour en savoir plus!", "lCILNz": "Acheter Maintenant", @@ -397,7 +397,7 @@ "tOdNiY": "Sombre", "th5lxp": "Envoyer la note à un sous-ensemble de vos relais d'écriture", "thnRpU": "Obtenir la vérification NIP-05 peut aider :", - "ttxS0b": "Supporter Badge", + "ttxS0b": "Badge de Supporter", "u/vOPu": "Payé", "u4bHcR": "Découvrez le code ici : {link}", "uD/N6c": "Zapper {target} {n} sats",