chore: Update translations
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Kieran 2023-09-18 11:38:33 +00:00
parent bbbcbc0a92
commit a1cd56292a
10 changed files with 78 additions and 50 deletions

View File

@ -49,4 +49,4 @@
border-radius: 100%;
background-color: var(--gray-superdark);
transform: rotate(135deg);
}
}

View File

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

View File

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

View File

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

View File

@ -18,4 +18,4 @@
.profile-preview button {
min-width: 98px;
}
}

View File

@ -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" : ""}`}

View File

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

View File

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

View File

@ -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
}
/>
</>
);
};

View File

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