chore: Update translations
This commit is contained in:
parent
bbbcbc0a92
commit
a1cd56292a
@ -49,4 +49,4 @@
|
||||
border-radius: 100%;
|
||||
background-color: var(--gray-superdark);
|
||||
transform: rotate(135deg);
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
span.following {
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px;
|
||||
font-size: 11px;
|
||||
color: var(--font-secondary-color);
|
||||
background-color: var(--gray-superdark);
|
||||
}
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px;
|
||||
font-size: 11px;
|
||||
color: var(--font-secondary-color);
|
||||
background-color: var(--gray-superdark);
|
||||
}
|
||||
|
@ -4,12 +4,14 @@ import Icon from "Icons/Icon";
|
||||
import { FormattedMessage } from "react-intl";
|
||||
|
||||
export function FollowingMark({ pubkey }: { pubkey: string }) {
|
||||
const { follows } = useLogin();
|
||||
const doesFollow = follows.item.includes(pubkey);
|
||||
if (!doesFollow) return;
|
||||
const { follows } = useLogin();
|
||||
const doesFollow = follows.item.includes(pubkey);
|
||||
if (!doesFollow) return;
|
||||
|
||||
return <span className="following flex g4">
|
||||
<Icon name="check" className="success" size={12} />
|
||||
<FormattedMessage defaultMessage="following" />
|
||||
return (
|
||||
<span className="following flex g4">
|
||||
<Icon name="check" className="success" size={12} />
|
||||
<FormattedMessage defaultMessage="following" />
|
||||
</span>
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ export interface ProfileImageProps {
|
||||
onClick?: (e: React.MouseEvent) => void;
|
||||
imageOverlay?: ReactNode;
|
||||
showFollowingMark?: boolean;
|
||||
icons?: ReactNode
|
||||
icons?: ReactNode;
|
||||
}
|
||||
|
||||
export default function ProfileImage({
|
||||
@ -42,7 +42,7 @@ export default function ProfileImage({
|
||||
imageOverlay,
|
||||
onClick,
|
||||
showFollowingMark = true,
|
||||
icons
|
||||
icons,
|
||||
}: ProfileImageProps) {
|
||||
const user = useUserProfile(profile ? "" : pubkey) ?? profile;
|
||||
const nip05 = defaultNip ? defaultNip : user?.nip05;
|
||||
@ -64,12 +64,24 @@ export default function ProfileImage({
|
||||
return (
|
||||
<>
|
||||
<div className="avatar-wrapper">
|
||||
<Avatar pubkey={pubkey} user={user} size={size} imageOverlay={imageOverlay} icons={((doesFollow && showFollowingMark) || icons) ? <>
|
||||
{icons}
|
||||
{showFollowingMark && <div className="icon-circle">
|
||||
<Icon name="check" className="success" size={10} />
|
||||
</div>}
|
||||
</> : undefined} />
|
||||
<Avatar
|
||||
pubkey={pubkey}
|
||||
user={user}
|
||||
size={size}
|
||||
imageOverlay={imageOverlay}
|
||||
icons={
|
||||
(doesFollow && showFollowingMark) || icons ? (
|
||||
<>
|
||||
{icons}
|
||||
{showFollowingMark && (
|
||||
<div className="icon-circle">
|
||||
<Icon name="check" className="success" size={10} />
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
) : undefined
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
{showUsername && (
|
||||
<div className="f-ellipsis">
|
||||
|
@ -18,4 +18,4 @@
|
||||
|
||||
.profile-preview button {
|
||||
min-width: 98px;
|
||||
}
|
||||
}
|
||||
|
@ -154,8 +154,9 @@ const TierThree = ({ active, isLastSubthread, notes, related, chains, onNavigate
|
||||
return (
|
||||
<>
|
||||
<div
|
||||
className={`subthread-container ${hasMultipleNotes ? "subthread-multi" : ""} ${isLast ? "subthread-last" : "subthread-mid"
|
||||
}`}>
|
||||
className={`subthread-container ${hasMultipleNotes ? "subthread-multi" : ""} ${
|
||||
isLast ? "subthread-last" : "subthread-mid"
|
||||
}`}>
|
||||
<Divider variant="small" />
|
||||
<Note
|
||||
highlight={active === first.id}
|
||||
@ -184,8 +185,9 @@ const TierThree = ({ active, isLastSubthread, notes, related, chains, onNavigate
|
||||
return (
|
||||
<div
|
||||
key={r.id}
|
||||
className={`subthread-container ${lastReply ? "" : "subthread-multi"} ${lastReply ? "subthread-last" : "subthread-mid"
|
||||
}`}>
|
||||
className={`subthread-container ${lastReply ? "" : "subthread-multi"} ${
|
||||
lastReply ? "subthread-last" : "subthread-mid"
|
||||
}`}>
|
||||
<Divider variant="small" />
|
||||
<Note
|
||||
className={`thread-note ${lastNote ? "is-last-note" : ""}`}
|
||||
|
@ -117,7 +117,13 @@ const TimelineFollows = (props: TimelineFollowsProps) => {
|
||||
{mainFeed.map(
|
||||
a =>
|
||||
props.noteRenderer?.(a) ?? (
|
||||
<Note data={a as TaggedNostrEvent} related={relatedFeed(a.id)} key={a.id} depth={0} onClick={props.noteOnClick} />
|
||||
<Note
|
||||
data={a as TaggedNostrEvent}
|
||||
related={relatedFeed(a.id)}
|
||||
key={a.id}
|
||||
depth={0}
|
||||
onClick={props.noteOnClick}
|
||||
/>
|
||||
),
|
||||
)}
|
||||
<div className="flex f-center p">
|
||||
|
@ -25,8 +25,8 @@ import useLogin from "Hooks/useLogin";
|
||||
type Cols = "notes" | "articles" | "media" | "streams" | "notifications";
|
||||
|
||||
interface DeckScope {
|
||||
thread?: string,
|
||||
setThread: (e?: string) => void
|
||||
thread?: string;
|
||||
setThread: (e?: string) => void;
|
||||
}
|
||||
|
||||
export const DeckContext = createContext<DeckScope | undefined>(undefined);
|
||||
@ -35,10 +35,9 @@ export function SnortDeckLayout() {
|
||||
const login = useLogin();
|
||||
const navigate = useNavigate();
|
||||
const [deckScope, setDeckScope] = useState<DeckScope>({
|
||||
setThread: (e?: string) => setDeckScope(s => ({ ...s, thread: e }))
|
||||
setThread: (e?: string) => setDeckScope(s => ({ ...s, thread: e })),
|
||||
});
|
||||
|
||||
|
||||
useLoginFeed();
|
||||
useTheme();
|
||||
useLoginRelays();
|
||||
@ -75,7 +74,7 @@ export function SnortDeckLayout() {
|
||||
<ThreadContextWrapper link={createNostrLink(NostrPrefix.Note, deckScope.thread)}>
|
||||
<SpotlightFromThread onClose={() => deckScope.setThread(undefined)} />
|
||||
<div>
|
||||
<Thread onBack={() => deckScope.setThread(undefined)}/>
|
||||
<Thread onBack={() => deckScope.setThread(undefined)} />
|
||||
</div>
|
||||
</ThreadContextWrapper>
|
||||
</Modal>
|
||||
|
@ -141,9 +141,16 @@ export const NotesTab = () => {
|
||||
<>
|
||||
<FollowsHint />
|
||||
<TaskList />
|
||||
<TimelineFollows postsOnly={true} noteOnClick={deckContext ? (ev) => {
|
||||
deckContext.setThread(ev.id);
|
||||
} : undefined} />
|
||||
<TimelineFollows
|
||||
postsOnly={true}
|
||||
noteOnClick={
|
||||
deckContext
|
||||
? ev => {
|
||||
deckContext.setThread(ev.id);
|
||||
}
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
@ -20,7 +20,7 @@
|
||||
"0BUTMv": "Suche...",
|
||||
"0jOEtS": "Ungültige LNURL",
|
||||
"0mch2Y": "Der Name enthält unerlaubte Zeichen",
|
||||
"0uoY11": "Show Status",
|
||||
"0uoY11": "Status anzeigen",
|
||||
"0yO7wF": "{n} Sek.",
|
||||
"1A7TZk": "Was ist Snort und wie funktioniert es?",
|
||||
"1Mo59U": "Bist du sicher, dass du diese Note aus deinen Lesezeichen entfernen möchtest?",
|
||||
@ -36,7 +36,7 @@
|
||||
"2a2YiP": "{n} Lesezeichen",
|
||||
"2k0Cv+": "Gefällt nicht ({n})",
|
||||
"2ukA4d": "{n} Stunden",
|
||||
"3KNMbJ": "Articles",
|
||||
"3KNMbJ": "Artikel",
|
||||
"3Rx6Qo": "Erweitert",
|
||||
"3cc4Ct": "Hell",
|
||||
"3gOsZq": "Übersetzer",
|
||||
@ -62,7 +62,7 @@
|
||||
"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",
|
||||
"65BmHb": "Bild von {host} konnte nicht durch Proxy geladen werden, klicke hier, um es direkt zu laden",
|
||||
"6OSOXl": "Reason: <i>{reason}</i>",
|
||||
"6OSOXl": "Grund: <i>{reason}</i>",
|
||||
"6Yfvvp": "Bekomme eine Identifikation",
|
||||
"6bgpn+": "Nicht alle Clients unterstützen dies, deshalb kann es sein, dass du immer noch einige Zaps erhältst, als ob Zap-Aufteilungen nicht konfiguriert wäre",
|
||||
"6ewQqw": "Gefällt ({n})",
|
||||
@ -73,7 +73,7 @@
|
||||
"8/vBbP": "Reposts ({n})",
|
||||
"89q5wc": "Reposts bestätigen",
|
||||
"8QDesP": "{n} sats zappen",
|
||||
"8Rkoyb": "Recipient",
|
||||
"8Rkoyb": "Empfänger",
|
||||
"8Y6bZQ": "Ungültige Zap-Aufteilung: {input}",
|
||||
"8g2vyB": "Name ist zu lang",
|
||||
"8v1NN+": "Verbindungsphrase",
|
||||
@ -118,7 +118,7 @@
|
||||
"E8a4yq": "Folgen Sie einigen beliebten Konten",
|
||||
"ELbg9p": "Datenanbieter",
|
||||
"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.",
|
||||
"EQKRE4": "Show badges on profile pages",
|
||||
"EQKRE4": "Abzeichen auf Profilseiten anzeigen",
|
||||
"EWyQH5": "Global",
|
||||
"Ebl/B2": "Auf {lang} Übersetzen",
|
||||
"EcZF24": "Benutzerdefinierte Relais",
|
||||
@ -128,7 +128,7 @@
|
||||
"F+B3x1": "Wir sind auch eine Partnerschaft mit nostrplebs.com eingegangen, um Ihnen mehr Optionen anbieten zu können.",
|
||||
"F3l7xL": "Konto hinzufügen",
|
||||
"FDguSC": "{n} Zaps",
|
||||
"FMfjrl": "Show status messages on profile pages",
|
||||
"FMfjrl": "Statusnachrichten auf Profilseiten anzeigen",
|
||||
"FS3b54": "Fertig!",
|
||||
"FSYL8G": "Angesagte Benutzer",
|
||||
"FdhSU2": "Jetzt abholen",
|
||||
@ -151,14 +151,14 @@
|
||||
"HOzFdo": "Stummgeschaltet",
|
||||
"HWbkEK": "Cache leeren und neu laden",
|
||||
"HbefNb": "Wallet öffnen",
|
||||
"HhcAVH": "You don't follow this person, click here to load media from <i>{link}</i>, or update <a><i>your preferences</i></a> to always load media from everybody.",
|
||||
"HhcAVH": "Du folgst dieser Person nicht, klicke hier, um Medien von <i>{link}</i>zu laden, oder aktualisiere <a><i>deine Einstellungen</i></a>, um Medien immer von allen zu laden.",
|
||||
"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-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}",
|
||||
"IoQq+a": "Click here to load anyway",
|
||||
"IoQq+a": "Klicke hier, um trotzdem zu laden",
|
||||
"Ix8l+B": "Angesagte Notes",
|
||||
"J+dIsA": "Abonnements",
|
||||
"JCIgkj": "Benutzername",
|
||||
@ -192,7 +192,7 @@
|
||||
"MuVeKe": "Nostr-Adresse kaufen",
|
||||
"MzRYWH": "{item} kaufen",
|
||||
"N2IrpM": "Bestätigen",
|
||||
"NAidKb": "Notifications",
|
||||
"NAidKb": "Benachrichtigungen",
|
||||
"NAuFNH": "Du hast bereits ein Abonnement dieser Art, bitte erneuern oder bezahlen",
|
||||
"NNSu3d": "Importiere Folgende von Twitter",
|
||||
"NdOYJJ": "Hmm, nichts da.. Schau auf {newUsersPage} um einigen empfohlen Nostrichs zu folgen!",
|
||||
@ -236,7 +236,7 @@
|
||||
"ShdEie": "Alle als gelesen markieren",
|
||||
"Sjo1P4": "Benutzerdefiniert",
|
||||
"Ss0sWu": "Jetzt bezahlen",
|
||||
"StKzTE": "The author has marked this note as a <i>sensitive topic</i>",
|
||||
"StKzTE": "Der Autor hat diese Note als ein <i>sensibles Thema</i> markiert",
|
||||
"TDR5ge": "Medien in Notes werden für ausgewählte Personen automatisch angezeigt, ansonsten wird nur der Link angezeigt",
|
||||
"TMfYfY": "Cashu Token",
|
||||
"TpgeGw": "Hex Salt..",
|
||||
@ -275,7 +275,7 @@
|
||||
"Z4BMCZ": "Verbindungs-Passphrase eingeben",
|
||||
"ZKORll": "Jetzt aktivieren",
|
||||
"ZLmyG9": "Mitwirkende",
|
||||
"ZS+jRE": "Send zap splits to",
|
||||
"ZS+jRE": "Sende Zap-Aufteilungen an",
|
||||
"ZUZedV": "Lightning Spende:",
|
||||
"Zr5TMx": "Profil einrichten",
|
||||
"a5UPxh": "Finanzieren Sie Entwickler und Plattformen, die NIP-05-Verifizierungsdienste anbieten",
|
||||
@ -329,7 +329,7 @@
|
||||
"hWSp+B": "Nostr Connect (NIP-46)",
|
||||
"hY4lzx": "Unterstützt",
|
||||
"hicxcO": "Antworten anzeigen",
|
||||
"hmZ3Bz": "Media",
|
||||
"hmZ3Bz": "Medien",
|
||||
"hniz8Z": "hier",
|
||||
"i/dBAR": "Zap Pool",
|
||||
"iCqGww": "Reaktionen ({n})",
|
||||
@ -409,7 +409,7 @@
|
||||
"rmdsT4": "{n} Tage",
|
||||
"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",
|
||||
"sKDn4e": "Show Badges",
|
||||
"sKDn4e": "Abzeichen anzeigen",
|
||||
"sUNhQE": "Nutzer",
|
||||
"sWnYKw": "Snort wurde darauf konzipiert ein Twitter ähnliches Erlebnis zu bieten.",
|
||||
"sZQzjQ": "Fehler beim Parsen der Zap-Aufteilung: {input}",
|
||||
@ -421,7 +421,7 @@
|
||||
"u/vOPu": "Bezahlt",
|
||||
"u4bHcR": "Sieh dir hier den Code an: {link}",
|
||||
"uSV4Ti": "Reposts müssen manuell bestätigt werden",
|
||||
"uc0din": "Send sats splits to",
|
||||
"uc0din": "Sende Sats-Aufteilungen an",
|
||||
"usAvMr": "Profil anpassen",
|
||||
"ut+2Cd": "Holen Sie sich einen Partner-Identifikator",
|
||||
"v8lolG": "Chat starten",
|
||||
|
Loading…
x
Reference in New Issue
Block a user