diff --git a/web/public/locales/cs/translation.json b/web/public/locales/cs/translation.json index f6ff76a..26f7527 100644 --- a/web/public/locales/cs/translation.json +++ b/web/public/locales/cs/translation.json @@ -1,776 +1,776 @@ { - "nav": { - "discover": "Objevuj", - "activity": "Notifikace", - "bookmarks": "Záložky", - "annotations": "Vpisky", - "highlights": "Úryvky", - "collections": "Složky", - "signIn": "Přihlásit se", - "logOut": "Odhlásit se", - "feed": "Feed", - "settings": "Nastavení", - "new": "Anotovat", - "themeLight": "Světlo", - "themeDark": "Tma", - "themeSystem": "Režim podle OS" - }, - "appTitle": "Margin", - "feed": { - "mine": "Pouze já", - "everyone": "Všichni", - "filters": { - "bookmarks": "Záložky", - "highlights": "Úryvky", - "all": "", - "annotations": "" - }, - "itemsWithTag": "Položky se štítkem:", - "tabs": { - "recent": "Nedávné", - "popular": "Populární", - "shelved": "Málo diskutované", - "semble": "", - "margin": "" - }, - "welcome": "Vítejte na Marginu", - "getStarted": "Pustit se do toho", - "clearFilter": "Odepnout filtr", - "loading": "Načítání…", - "nothingHereYet": "Prozatím tady nic není", - "defaultEmptyMessage": "", - "welcomeTagline": "", - "learnMore": "" - }, - "collections": { - "title": "Složky", - "namePlaceholderEdit": "Název složky", - "nameLabel": "Název", - "iconLabel": "Ikona", - "iconsTab": "Ikony", - "emojisTab": "Emotikony", - "selectedIcon": "Vybráno:", - "descriptionLabel": "Popisek (volitelně)", - "descriptionPlaceholder": "K čemu by měla tato složka sloužit?", - "descriptionPlaceholderEdit": "O čem by měla být tato složka?", - "cancel": "Zrušit", - "creating": "Vytvářím…", - "save": "Uložit změny", - "saving": "Ukládám…", - "subtitle": "Uspořádejte si vpisky a úryvky", - "namePlaceholder": "Moje složka", - "createButton": "Vytvořit složku", - "editTitle": "Upravit složku", - "newTitle": "Nová složka", - "create": "Vytvořit složku", - "noneMessage": "Vytvořte si novou složku k organizaci Vašich vpisků a úryvků.", - "none": "", - "errorUpdating": "", - "failedUpdate": "", - "itemCount_one": "", - "itemCount_few": "", - "itemCount_other": "", - "deleteConfirm": "Smazat tuto složku?" - }, - "about": { - "footer": { - "contact": "Kontakt", - "terms": "Podmínky", - "privacy": "Soukromí" - }, - "cta": { - "viewGitHub": "GitHub", - "viewTangled": "Tangled", - "signIn": "Přihlásit se", - "title": "Začněte psát pod čarou", - "description": "" - }, - "protocol": { - "descriptionPre": "Margin je vystavěn na", - "point2": "", - "point3": "", - "title": "Vaše data, vaše identita", - "point1": "Všechna data jsou uložena ve Vámi zvoleném prostoru PDS", - "point0": "Nevytvářejte si nový účet, přihlašte se přes Protokol AT", - "badge": "Decentralizováno", - "descriptionPost": ", otevřeném protokolu, na kterém stojí aplikace jako Bluesky. Vaše poznámky, výňatky a oblíbené položky (záložky) jsou bezpečně uloženy ve Vašem vlastním prostoru PDS, ne u jednoho poskytovatele." - }, - "extension": { - "features": { - "keyboard": { - "title": "Klávesové zkratky", - "description": "" - }, - "sidePanel": { - "description": "", - "title": "Boční panel" - }, - "contextMenu": { - "title": "", - "description": "" - }, - "inlineOverlay": { - "description": "", - "title": "" - } - }, - "description": "", - "badge": "", - "title": "Vaše sada anotačních nástrojů", - "titleLine2": "přímo v prohlížeči", - "iosShortcut": "Zkratka iOS" + "nav": { + "discover": "Objevuj", + "activity": "Notifikace", + "bookmarks": "Záložky", + "annotations": "Vpisky", + "highlights": "Úryvky", + "collections": "Složky", + "signIn": "Přihlásit se", + "logOut": "Odhlásit se", + "feed": "Feed", + "settings": "Nastavení", + "new": "Anotovat", + "themeLight": "Světlo", + "themeDark": "Tma", + "themeSystem": "Režim podle OS" + }, + "appTitle": "Margin", + "feed": { + "mine": "Pouze já", + "everyone": "Všichni", + "filters": { + "bookmarks": "Záložky", + "highlights": "Úryvky", + "all": "", + "annotations": "" + }, + "itemsWithTag": "Položky se štítkem:", + "tabs": { + "recent": "Nedávné", + "popular": "Populární", + "shelved": "Málo diskutované", + "semble": "", + "margin": "" + }, + "welcome": "Vítejte na Marginu", + "getStarted": "Pustit se do toho", + "clearFilter": "Odepnout filtr", + "loading": "Načítání…", + "nothingHereYet": "Prozatím tady nic není", + "defaultEmptyMessage": "", + "welcomeTagline": "", + "learnMore": "" + }, + "collections": { + "title": "Složky", + "namePlaceholderEdit": "Název složky", + "nameLabel": "Název", + "iconLabel": "Ikona", + "iconsTab": "Ikony", + "emojisTab": "Emotikony", + "selectedIcon": "Vybráno:", + "descriptionLabel": "Popisek (volitelně)", + "descriptionPlaceholder": "K čemu by měla tato složka sloužit?", + "descriptionPlaceholderEdit": "O čem by měla být tato složka?", + "cancel": "Zrušit", + "creating": "Vytvářím…", + "save": "Uložit změny", + "saving": "Ukládám…", + "subtitle": "Uspořádejte si vpisky a úryvky", + "namePlaceholder": "Moje složka", + "createButton": "Vytvořit složku", + "editTitle": "Upravit složku", + "newTitle": "Nová složka", + "create": "Vytvořit složku", + "noneMessage": "Vytvořte si novou složku k organizaci Vašich vpisků a úryvků.", + "none": "", + "errorUpdating": "", + "failedUpdate": "", + "itemCount_one": "", + "itemCount_few": "", + "itemCount_other": "", + "deleteConfirm": "Smazat tuto složku?" + }, + "about": { + "footer": { + "contact": "Kontakt", + "terms": "Podmínky", + "privacy": "Soukromí" + }, + "cta": { + "viewGitHub": "GitHub", + "viewTangled": "Tangled", + "signIn": "Přihlásit se", + "title": "Začněte psát pod čarou", + "description": "" + }, + "protocol": { + "descriptionPre": "Margin je vystavěn na", + "point2": "", + "point3": "", + "title": "Vaše data, vaše identita", + "point1": "Všechna data jsou uložena ve Vámi zvoleném prostoru PDS", + "point0": "Nevytvářejte si nový účet, přihlašte se přes Protokol AT", + "badge": "Decentralizováno", + "descriptionPost": ", otevřeném protokolu, na kterém stojí aplikace jako Bluesky. Vaše poznámky, výňatky a oblíbené položky (záložky) jsou bezpečně uloženy ve Vašem vlastním prostoru PDS, ne u jednoho poskytovatele." + }, + "extension": { + "features": { + "keyboard": { + "title": "Klávesové zkratky", + "description": "" }, - "features": { - "title": "", - "highlights": { - "description": "", - "title": "Výňatky" - }, - "socialDiscovery": { - "description": "", - "title": "" - }, - "tagsSearch": { - "description": "", - "title": "Štítky & Vyhledávání" - }, - "bookmarks": { - "description": "", - "title": "Oblíbené" - }, - "subtitle": "", - "collections": { - "description": "", - "title": "Složky" - }, - "annotations": { - "description": "", - "title": "Poznámky" - } + "sidePanel": { + "description": "", + "title": "Boční panel" }, - "hero": { - "openApp": "", - "descriptionPost": ". Ne u jednoho poskytovatele.", - "descriptionPre": "Margin je otevřená poznámková vrstva internetu. Podtrhávejte si, pište poznámky pro sebe nebo ostatní a ukládejte si stránky do oblíbených. Všechno decentralizovaně uložené na síti", - "headline": "Pište poznámky na okraj", - "installFor": "Rozšíření pro {{browser}}", - "openSource": "Kompletně open source", - "headlineAccent": "celého internetu.", - "getStarted": "Pustit se do toho", - "atProtocol": "Protokolu AT" + "contextMenu": { + "title": "", + "description": "" }, - "nav": { - "install": "Nainstalovat", - "getExtension": "Stáhnout rozšíření" + "inlineOverlay": { + "description": "", + "title": "" } - }, - "profile": { - "unblock_action": "Zablokovat", - "unmute_action": "Ztišit", - "emptyCollectionsOwn": "Prozatím jste si nevytvořili žádné složky.", - "emptyCollectionsOther": "Žádné složky", - "show": "Zobrazit", - "hide": "Skrýt", - "report": "", - "mutedMessage": "", - "mutedBanner": "", - "accountLabeled": "", - "mute": "", - "notFound": "", - "unblock": "", - "blockedByBanner": "", - "emptyTabOwn": "", - "labelApplied": "", - "viewInBluesky": "", - "blockedMessage": "", - "block": "", - "notFoundMessage": "", - "unmute": "", - "emptyTabOther": "", - "edit": "", - "blockedBanner": "", - "itemCount_one": "", - "itemCount_few": "", - "itemCount_other": "" - }, - "pageTitles": { - "discover": "Objevuj — Margin", - "home": "Úvod — Margin", - "bookmarks": "Záložky — Margin", - "settings": "Nastavení — Margin", - "collections": "Složky — Margin", - "admin": "Administrace — Margin", - "search": "Vyhledávání — Margin", - "notifications": "Notifikace — Margin", - "new": "Nový vpisek — Margin", - "highlights": "Úryvky — Margin", - "annotations": "Vpisky — Margin" - }, - "sidebar": { - "downloadForFirefox": "Stáhnout pro Firefox", - "downloadForEdge": "Stáhnout pro Edge", - "downloadForChrome": "Stáhnout pro Chrome", - "trending": "Populární", - "searchPlaceholder": "Vyhledávejte napříč uživateli, tagy, URL…", - "getExtension": "Stáhnout rozšíření", - "nothingTrending": "Aktuálně není nic moc v kurzu.", - "postCount_one": "", - "postCount_few": "", - "postCount_other": "", - "copyright": "", - "extensionTagline": "" - }, - "mobileNav": { - "iosShortcut": "Zkratka iOS" - }, - "discover": { - "tabs": { - "new": "Nové", - "popular": "Populární", - "forYou": "Výběr" - }, - "comingSoon": "Již brzy", - "forYouNotAvailable": "Personalizovaná doporučení nejsou na tomto serveru prozatím k dispozici.", - "loadMore": "Načíst další", - "noDocumentsYet": "Prozatím tady nejsou žádné dokumenty. Zkuste to znova později.", - "startAnnotating": "" - }, - "search": { - "noResults": "Nic nenalezeno", - "emptyTitle": "Vyhledávejte ve Vaší knihovně", - "filters": { - "all": "Všechno", - "mine": "", - "annotations": "", - "highlights": "", - "bookmarks": "" - }, - "loadMore": "Načíst další", - "noResultsMessage": "", - "placeholder": "", - "emptyMessage": "", - "resultCount": "" - }, - "notifications": { - "inReplyTo": "v odpovědi na", - "aReply": "odpověď", - "anAnnotation": "vpisek", - "likedAnnotation": "se líbí Váš vpisek", - "likedHighlight": "se líbí Váš úryvek", - "likedBookmark": "se líbí Vaše záložka", - "likedReply": "se líbí Vaše odpověď", - "likedPost": "se líbí Váš příspěvek", - "repliedToReply": "reagoval*a na Vaši odpověď", - "repliedToAnnotation": "odpověděl*a na Váš vpisek", - "mentionedInAnnotation": "Vás zmínil*a ve vpisku", - "followedYou": "Vás začal*a sledovat", - "title": "Události", - "noActivity": "Prozatím tady nic není", - "highlightedPage": "si vytáhnul*a úryvek z Vaší stránky", - "noActivityMessage": "Reakce na Váš obsah se objeví tady." - }, - "login": { - "termsLink": "Smluvní podmínky", - "termsAnd": "a", - "privacyLink": "Zásady ochrany osobních údajů", - "bannedMessage": "", - "bannedSignOut": "", - "handlePlaceholder": "", - "bannedAppeal": "", - "bannedTitle": "", - "handleSuffix": "", - "continue": "", - "connecting": "", - "termsPrefix": "Přihlášením souhlasíte s", - "createAccount": "Vytvořit nový účet", - "signInWith": "Přihlašte se Vaším", - "or": "" - }, - "signUp": { - "atProtocol": "Protokol AT", - "pdsAddressLabel": "Adresa PDS", - "pdsAddressPlaceholder": "pds.vasedomena.cz", - "connecting": "Připojuji…", - "back": "Zpátky", - "continue": "Pokračovat", - "invite": "Pozvat", - "providerError": "K tomuto poskytovateli se teď nelze připojit. Zkuste to znova.", - "customPdsError": "K tomuto PDS se teď nelze připojit. Zkontrolujte, zda zadáváte správnou adresu.", - "providers": { - "margin": { - "name": "Margin", - "description": "" - }, - "customPds": { - "description": "PDS už máte? Pokud ano, zadejte jeho adresu.", - "name": "Použít vlastní PDS" - }, - "bluesky": { - "name": "Bluesky", - "description": "Největší a nejrozšířenější komunita" - }, - "blacksky": { - "name": "Blacksky", - "description": "" - }, - "northsky": { - "description": "Kanadské družstvo vlastněné a provozované zaměstnanci", - "name": "Northsky" - }, - "eurosky": { - "description": "Eurosky je Vaším kouskem Evropy v Atmosféře", - "name": "" - }, - "selfhostedSocial": { - "name": "selfhosted.social", - "description": "Prostor pro všechny umělce, kutily a objevitele" - }, - "tophhie": { - "name": "Tophhie", - "description": "Komunita plná přátelské atmosféry" - } - }, - "customPdsSubtitle": "", - "subtitle": "", - "subtitleSuffix": "", - "customPdsTitle": "", - "title": "", - "moreOptions": "", - "atmosphereNote": "" - }, - "composer": { - "newHighlight": "Nový úryvek", - "newAnnotation": "Nový vpisek", - "newNote": "Nová poznámka", - "saveHighlight": "Uložit úryvek", - "postAnnotation": "Vložit vpisek", - "postNote": "Vložit poznámku", - "removeQuote": "Odebrat citaci", - "labels": { - "sexual": "Sexualita", - "nudity": "Nahota", - "violence": "Násilí", - "gore": "Gore", - "spam": "Spam", - "misleading": "Manipulace" - }, - "contentWarning": "Upozornění na obsah", - "cancel": "Zrušit", - "contentWarningCount": "", - "highlightHint": "", - "quotePlaceholder": "", - "failedToPost": "", - "addQuote": "", - "tagsPlaceholder": "", - "mindPlaceholder": "", - "thoughtsPlaceholder": "" - }, - "card": { - "communityBookmark": "Komunitní záložka", - "lichenBookmark": "Záložka Lichen", - "untitledBookmark": "Nepojmenovaná záložka", - "editTitle": "Upravit", - "deleteTitle": "Smazat", - "report": "Nahlásit", - "muteUser": "Ztišit @{{handle}}", - "blockUser": "Zablokovat @{{handle}}", - "addToCollectionTitle": "", - "openInSemble": "", - "deleteConfirm": "", - "addedTo": "", - "labelDescriptions": { - "gore": "", - "spam": "", - "misleading": "", - "violence": "", - "sexual": "", - "nudity": "" - }, - "and": "", - "edited": "", - "addNotePlaceholder": "", - "convertToAnnotation": "", - "hideContent": "", - "justNow": "", - "annotateTitle": "", - "show": "", - "annotate": "", - "addedToLower": "" - }, - "editCollection": { - "namePlaceholder": "", - "iconsTab": "", - "nameLabel": "", - "saving": "", - "descriptionLabel": "", - "iconLabel": "", - "errorUpdating": "", - "save": "", - "cancel": "", - "title": "", - "descriptionPlaceholder": "", - "failedUpdate": "", - "emojisTab": "", - "selected": "" - }, - "annotationDetail": { - "reply": "", - "mayBeDeleted": "", - "replyPlaceholder": "", - "back": "", - "signInToReply": "", - "failedReply": "", - "notFound": "", - "failedDelete": "", - "replyingTo": "", - "logIn": "", - "failedResolve": "", - "backToFeed": "", - "replies": "", - "deleteReplyConfirm": "" - }, - "iosShortcut": { - "step6Title": "", - "step3Title": "", - "step4Title": "", - "step1Link": "", - "step2Title": "", - "step6Description": "", - "step2Description": "", - "gotIt": "", - "title": "", - "howTo": "", - "step5Description": "", - "step4Description": "", - "step1Title": "", - "step3Description": "", - "step5Title": "" - }, - "settings": { - "apiKeys": { - "keyNamePlaceholder": "", - "created": "", - "copyNow": "", - "description": "", - "empty": "", - "revokeConfirm": "", - "generate": "" - }, - "logout": "", - "contentFiltering": { - "noLabelers": "", - "add": "", - "remove": "", - "hide": "", - "description": "", - "labelerDidPlaceholder": "", - "ignore": "", - "labelVisibility": "", - "labelVisibilityDesc": "", - "warn": "", - "subscribedLabelers": "" - }, - "moderation": { - "noBlocked": "", - "mutedAccounts": "", - "unblock": "", - "description": "", - "blockedAccounts": "", - "noMuted": "", - "unmute": "" - }, - "iosShortcut": { - "description": "", - "setupButton": "" - }, - "language": { - "label": "", - "description": "" - }, - "sections": { - "appearance": "", - "language": "", - "contentFiltering": "", - "iosShortcut": "", - "moderation": "", - "batchImport": "", - "profile": "", - "apiKeys": "" - }, - "appearance": { - "communityBookmarksDesc": "", - "communityBookmarks": "", - "disableExternalLinkWarningDesc": "", - "disableExternalLinkWarning": "" - }, - "batchImport": { - "description": "" - }, - "title": "" - }, - "shareMenu": { - "moreOptions": "", - "copyLink": "", - "openOnSemble": "", - "sembleIntegration": "", - "shareViaApp": "", - "copied": "", - "copyUniversalLink": "", - "copySembleLink": "" - }, - "editItem": { - "titlePlaceholder": "", - "descriptionPlaceholder": "", - "colorLabel": "", - "save": "", - "editAnnotation": "", - "tagsLabel": "", - "failedSave": "", - "saving": "", - "cancel": "", - "descriptionLabel": "", - "editHighlight": "", - "textPlaceholder": "", - "contentWarning": "", - "titleLabel": "", - "textLabel": "", - "editBookmark": "", - "tagPlaceholder": "" - }, - "urlPage": { - "tabs": { - "all": "", - "highlights": "", - "annotations": "", - "collections": "", - "bookmarks": "" - }, - "noHighlightsYet": "", - "noAnnotationsMessage": "", - "loading": "", - "loadingAnnotations": "", - "copied": "", - "noHighlightsMessage": "", - "loadMore": "", - "blankCanvasMessage": "", - "blankCanvas": "", - "noAnnotationsYet": "", - "urlPlaceholder": "", - "view": "", - "contributor_one": "", - "contributor_few": "", - "contributor_other": "", - "myAnnotations": "", + }, + "description": "", + "badge": "", + "title": "Vaše sada anotačních nástrojů", + "titleLine2": "přímo v prohlížeči", + "iosShortcut": "Zkratka iOS" + }, + "features": { + "title": "", + "highlights": { + "description": "", + "title": "Výňatky" + }, + "socialDiscovery": { "description": "", - "share": "", - "title": "", - "failedLoadMore": "" - }, - "addToCollection": { - "title": "", - "back": "", - "descriptionPlaceholder": "", - "creating": "", - "iconLabel": "", - "create": "", - "descriptionLabel": "", - "collectionNameLabel": "", - "newCollectionButton": "", - "failedAdd": "", - "failedCreate": "", - "namePlaceholder": "", - "emojisTab": "", - "done": "", - "createNewDescription": "", - "none": "", - "failedLoad": "", - "selected": "", - "loading": "", - "iconsTab": "" - }, - "adminModeration": { - "reasons": { - "spam": "", - "rude": "", - "misleading": "", - "other": "", - "violation": "", - "sexual": "" - }, - "actions": { - "applyWarningDesc": "", - "applyWarning": "", - "labelApplied": "", - "contentUriOptional": "", - "applyLabel": "", - "accountDid": "", - "contentUri": "", - "labelType": "" - }, - "reports": { - "empty": "", - "reportedUser": "", - "details": "", - "contentUri": "", - "emptyFiltered": "", - "takedown": "", - "reporter": "", - "acknowledge": "", - "emptyPending": "", - "dismiss": "" - }, - "accessDeniedMessage": "", - "labels": { - "empty": "", - "accountLevel": "", - "removeConfirm": "", - "removeTitle": "", - "emptyMessage": "" - }, - "accessDenied": "", - "tabs": { - "actions": "", - "labels": "", - "reports": "" - }, - "filters": { - "pending": "", - "resolved": "", - "dismissed": "", - "escalated": "", - "all": "" - }, - "stats": "", - "title": "" - }, - "new": { - "composeTitle": "", - "needsAccount": "", - "composeTagline": "", - "urlLabel": "", - "signInRequired": "", - "signInButton": "", - "urlPlaceholder": "" - }, - "report": { - "reasons": { - "spam": "", - "rudeOrHarassing": "", - "ruleViolation": "", - "inappropriateContent": "", - "misleading": "", - "other": "" - }, - "submittedMessage": "", - "reportingContent": "", - "detailsPlaceholder": "", - "titleGeneric": "", - "titleUser": "", - "submitted": "", - "cancel": "", - "submit": "", - "submitting": "", - "issueLabel": "" - }, - "editProfile": { - "uploadButton": "", - "bioLabel": "", - "addLinkPlaceholder": "", - "avatarUploadError": "", - "displayNameLabel": "", - "cancel": "", - "avatarTypeError": "", - "title": "", - "uploading": "", - "avatarLabel": "", - "avatarSizeError": "", - "linksLabel": "", - "save": "", - "websiteLabel": "", - "saving": "" - }, - "userUrlPage": { - "noUrl": "", - "noItemsMessage": "", - "loadingAnnotations": "", - "loadMore": "", - "noAnnotations": "", - "on": "", - "failedLoadMore": "", - "noHighlights": "", - "noUrlMessage": "", - "loading": "", - "noItems": "" - }, - "common": { - "loadMore": "", - "save": "", - "error": "", - "retry": "", - "cancel": "", - "back": "", - "new": "", - "continue": "", - "loading": "", - "close": "" - }, - "highlightImporter": { - "complete": "", - "moreErrors": "", - "row": "", - "noHighlights": "", - "downloadTemplate": "", - "requiredColumns": "", - "success": "", - "importProgress": "", - "csvMustHaveText": "", - "csvMustHaveUrl": "", - "processing": "", - "importing": "", - "errorsTitle": "", - "importAnother": "", - "failed_one": "", - "failed_few": "", - "failed_other": "", - "clickToUpload": "", - "errorParsing": "" - }, - "editHistory": { - "close": "", - "failedLoad": "", - "currentVersion": "", - "previousVersion": "", - "title": "", - "editedAgo": "", - "noHistory": "", - "timeAgo": "", - "postedAgo": "" - }, - "collectionDetail": { - "notFound": "", - "backLink": "", - "by": "", - "removeFromCollection": "", - "edit": "", - "deleteConfirm": "", - "delete": "", - "empty": "", - "removeConfirm": "", - "failedToLoad": "", - "viewInSemble": "Zobrazit na Semble" - }, - "profileHoverCard": { - "notFound": "", - "viewProfile": "" - }, - "externalLink": { - "cancel": "", - "alwaysAllow": "", - "message": "", - "open": "", "title": "" + }, + "tagsSearch": { + "description": "", + "title": "Štítky & Vyhledávání" + }, + "bookmarks": { + "description": "", + "title": "Oblíbené" + }, + "subtitle": "", + "collections": { + "description": "", + "title": "Složky" + }, + "annotations": { + "description": "", + "title": "Poznámky" + } + }, + "hero": { + "openApp": "", + "descriptionPost": ". Ne u jednoho poskytovatele.", + "descriptionPre": "Margin je otevřená poznámková vrstva internetu. Podtrhávejte si, pište poznámky pro sebe nebo ostatní a ukládejte si stránky do oblíbených. Všechno decentralizovaně uložené na síti", + "headline": "Pište poznámky na okraj", + "installFor": "Rozšíření pro {{browser}}", + "openSource": "Kompletně open source", + "headlineAccent": "celého internetu.", + "getStarted": "Pustit se do toho", + "atProtocol": "Protokolu AT" }, - "replyList": { - "noReplies": "" + "nav": { + "install": "Nainstalovat", + "getExtension": "Stáhnout rozšíření" } + }, + "profile": { + "unblock_action": "Zablokovat", + "unmute_action": "Ztišit", + "emptyCollectionsOwn": "Prozatím jste si nevytvořili žádné složky.", + "emptyCollectionsOther": "Žádné složky", + "show": "Zobrazit", + "hide": "Skrýt", + "report": "", + "mutedMessage": "", + "mutedBanner": "", + "accountLabeled": "", + "mute": "", + "notFound": "", + "unblock": "", + "blockedByBanner": "", + "emptyTabOwn": "", + "labelApplied": "", + "viewInBluesky": "", + "blockedMessage": "", + "block": "", + "notFoundMessage": "", + "unmute": "", + "emptyTabOther": "", + "edit": "", + "blockedBanner": "", + "itemCount_one": "", + "itemCount_few": "", + "itemCount_other": "" + }, + "pageTitles": { + "discover": "Objevuj — Margin", + "home": "Úvod — Margin", + "bookmarks": "Záložky — Margin", + "settings": "Nastavení — Margin", + "collections": "Složky — Margin", + "admin": "Administrace — Margin", + "search": "Vyhledávání — Margin", + "notifications": "Notifikace — Margin", + "new": "Nový vpisek — Margin", + "highlights": "Úryvky — Margin", + "annotations": "Vpisky — Margin" + }, + "sidebar": { + "downloadForFirefox": "Stáhnout pro Firefox", + "downloadForEdge": "Stáhnout pro Edge", + "downloadForChrome": "Stáhnout pro Chrome", + "trending": "Populární", + "searchPlaceholder": "Vyhledávejte napříč uživateli, tagy, URL…", + "getExtension": "Stáhnout rozšíření", + "nothingTrending": "Aktuálně není nic moc v kurzu.", + "postCount_one": "", + "postCount_few": "", + "postCount_other": "", + "copyright": "", + "extensionTagline": "" + }, + "mobileNav": { + "iosShortcut": "Zkratka iOS" + }, + "discover": { + "tabs": { + "new": "Nové", + "popular": "Populární", + "forYou": "Výběr" + }, + "comingSoon": "Již brzy", + "forYouNotAvailable": "Personalizovaná doporučení nejsou na tomto serveru prozatím k dispozici.", + "loadMore": "Načíst další", + "noDocumentsYet": "Prozatím tady nejsou žádné dokumenty. Zkuste to znova později.", + "startAnnotating": "" + }, + "search": { + "noResults": "Nic nenalezeno", + "emptyTitle": "Vyhledávejte ve Vaší knihovně", + "filters": { + "all": "Všechno", + "mine": "", + "annotations": "", + "highlights": "", + "bookmarks": "" + }, + "loadMore": "Načíst další", + "noResultsMessage": "", + "placeholder": "", + "emptyMessage": "", + "resultCount": "" + }, + "notifications": { + "inReplyTo": "v odpovědi na", + "aReply": "odpověď", + "anAnnotation": "vpisek", + "likedAnnotation": "se líbí Váš vpisek", + "likedHighlight": "se líbí Váš úryvek", + "likedBookmark": "se líbí Vaše záložka", + "likedReply": "se líbí Vaše odpověď", + "likedPost": "se líbí Váš příspěvek", + "repliedToReply": "reagoval*a na Vaši odpověď", + "repliedToAnnotation": "odpověděl*a na Váš vpisek", + "mentionedInAnnotation": "Vás zmínil*a ve vpisku", + "followedYou": "Vás začal*a sledovat", + "title": "Události", + "noActivity": "Prozatím tady nic není", + "highlightedPage": "si vytáhnul*a úryvek z Vaší stránky", + "noActivityMessage": "Reakce na Váš obsah se objeví tady." + }, + "login": { + "termsLink": "Smluvní podmínky", + "termsAnd": "a", + "privacyLink": "Zásady ochrany osobních údajů", + "bannedMessage": "", + "bannedSignOut": "", + "handlePlaceholder": "", + "bannedAppeal": "", + "bannedTitle": "", + "handleSuffix": "", + "continue": "", + "connecting": "", + "termsPrefix": "Přihlášením souhlasíte s", + "createAccount": "Vytvořit nový účet", + "signInWith": "Přihlašte se Vaším", + "or": "" + }, + "signUp": { + "atProtocol": "Protokol AT", + "pdsAddressLabel": "Adresa PDS", + "pdsAddressPlaceholder": "pds.vasedomena.cz", + "connecting": "Připojuji…", + "back": "Zpátky", + "continue": "Pokračovat", + "invite": "Pozvat", + "providerError": "K tomuto poskytovateli se teď nelze připojit. Zkuste to znova.", + "customPdsError": "K tomuto PDS se teď nelze připojit. Zkontrolujte, zda zadáváte správnou adresu.", + "providers": { + "margin": { + "name": "Margin", + "description": "" + }, + "customPds": { + "description": "PDS už máte? Pokud ano, zadejte jeho adresu.", + "name": "Použít vlastní PDS" + }, + "bluesky": { + "name": "Bluesky", + "description": "Největší a nejrozšířenější komunita" + }, + "blacksky": { + "name": "Blacksky", + "description": "" + }, + "northsky": { + "description": "Kanadské družstvo vlastněné a provozované zaměstnanci", + "name": "Northsky" + }, + "eurosky": { + "description": "Eurosky je Vaším kouskem Evropy v Atmosféře", + "name": "" + }, + "selfhostedSocial": { + "name": "selfhosted.social", + "description": "Prostor pro všechny umělce, kutily a objevitele" + }, + "tophhie": { + "name": "Tophhie", + "description": "Komunita plná přátelské atmosféry" + } + }, + "customPdsSubtitle": "", + "subtitle": "", + "subtitleSuffix": "", + "customPdsTitle": "", + "title": "", + "moreOptions": "", + "atmosphereNote": "" + }, + "composer": { + "newHighlight": "Nový úryvek", + "newAnnotation": "Nový vpisek", + "newNote": "Nová poznámka", + "saveHighlight": "Uložit úryvek", + "postAnnotation": "Vložit vpisek", + "postNote": "Vložit poznámku", + "removeQuote": "Odebrat citaci", + "labels": { + "sexual": "Sexualita", + "nudity": "Nahota", + "violence": "Násilí", + "gore": "Gore", + "spam": "Spam", + "misleading": "Manipulace" + }, + "contentWarning": "Upozornění na obsah", + "cancel": "Zrušit", + "contentWarningCount": "", + "highlightHint": "", + "quotePlaceholder": "", + "failedToPost": "", + "addQuote": "", + "tagsPlaceholder": "", + "mindPlaceholder": "", + "thoughtsPlaceholder": "" + }, + "card": { + "communityBookmark": "Komunitní záložka", + "lichenBookmark": "Záložka Lichen", + "untitledBookmark": "Nepojmenovaná záložka", + "editTitle": "Upravit", + "deleteTitle": "Smazat", + "report": "Nahlásit", + "muteUser": "Ztišit @{{handle}}", + "blockUser": "Zablokovat @{{handle}}", + "addToCollectionTitle": "", + "openInSemble": "", + "deleteConfirm": "", + "addedTo": "", + "labelDescriptions": { + "gore": "", + "spam": "", + "misleading": "", + "violence": "", + "sexual": "", + "nudity": "" + }, + "and": "", + "edited": "", + "addNotePlaceholder": "", + "convertToAnnotation": "", + "hideContent": "", + "justNow": "", + "annotateTitle": "", + "show": "", + "annotate": "", + "addedToLower": "" + }, + "editCollection": { + "namePlaceholder": "", + "iconsTab": "", + "nameLabel": "", + "saving": "", + "descriptionLabel": "", + "iconLabel": "", + "errorUpdating": "", + "save": "", + "cancel": "", + "title": "", + "descriptionPlaceholder": "", + "failedUpdate": "", + "emojisTab": "", + "selected": "" + }, + "annotationDetail": { + "reply": "", + "mayBeDeleted": "", + "replyPlaceholder": "", + "back": "", + "signInToReply": "", + "failedReply": "", + "notFound": "", + "failedDelete": "", + "replyingTo": "", + "logIn": "", + "failedResolve": "", + "backToFeed": "", + "replies": "", + "deleteReplyConfirm": "" + }, + "iosShortcut": { + "step6Title": "", + "step3Title": "", + "step4Title": "", + "step1Link": "", + "step2Title": "", + "step6Description": "", + "step2Description": "", + "gotIt": "", + "title": "", + "howTo": "", + "step5Description": "", + "step4Description": "", + "step1Title": "", + "step3Description": "", + "step5Title": "" + }, + "settings": { + "apiKeys": { + "keyNamePlaceholder": "", + "created": "", + "copyNow": "", + "description": "", + "empty": "", + "revokeConfirm": "", + "generate": "" + }, + "logout": "", + "contentFiltering": { + "noLabelers": "", + "add": "", + "remove": "", + "hide": "", + "description": "", + "labelerDidPlaceholder": "", + "ignore": "", + "labelVisibility": "", + "labelVisibilityDesc": "", + "warn": "", + "subscribedLabelers": "" + }, + "moderation": { + "noBlocked": "", + "mutedAccounts": "", + "unblock": "", + "description": "", + "blockedAccounts": "", + "noMuted": "", + "unmute": "" + }, + "iosShortcut": { + "description": "", + "setupButton": "" + }, + "language": { + "label": "", + "description": "" + }, + "sections": { + "appearance": "", + "language": "", + "contentFiltering": "", + "iosShortcut": "", + "moderation": "", + "batchImport": "", + "profile": "", + "apiKeys": "" + }, + "appearance": { + "communityBookmarksDesc": "", + "communityBookmarks": "", + "disableExternalLinkWarningDesc": "", + "disableExternalLinkWarning": "" + }, + "batchImport": { + "description": "" + }, + "title": "" + }, + "shareMenu": { + "moreOptions": "", + "copyLink": "", + "openOnSemble": "", + "sembleIntegration": "", + "shareViaApp": "", + "copied": "", + "copyUniversalLink": "", + "copySembleLink": "" + }, + "editItem": { + "titlePlaceholder": "", + "descriptionPlaceholder": "", + "colorLabel": "", + "save": "", + "editAnnotation": "", + "tagsLabel": "", + "failedSave": "", + "saving": "", + "cancel": "", + "descriptionLabel": "", + "editHighlight": "", + "textPlaceholder": "", + "contentWarning": "", + "titleLabel": "", + "textLabel": "", + "editBookmark": "", + "tagPlaceholder": "" + }, + "urlPage": { + "tabs": { + "all": "", + "highlights": "", + "annotations": "", + "collections": "", + "bookmarks": "" + }, + "noHighlightsYet": "", + "noAnnotationsMessage": "", + "loading": "", + "loadingAnnotations": "", + "copied": "", + "noHighlightsMessage": "", + "loadMore": "", + "blankCanvasMessage": "", + "blankCanvas": "", + "noAnnotationsYet": "", + "urlPlaceholder": "", + "view": "", + "contributor_one": "", + "contributor_few": "", + "contributor_other": "", + "myAnnotations": "", + "description": "", + "share": "", + "title": "", + "failedLoadMore": "" + }, + "addToCollection": { + "title": "", + "back": "", + "descriptionPlaceholder": "", + "creating": "", + "iconLabel": "", + "create": "", + "descriptionLabel": "", + "collectionNameLabel": "", + "newCollectionButton": "", + "failedAdd": "", + "failedCreate": "", + "namePlaceholder": "", + "emojisTab": "", + "done": "", + "createNewDescription": "", + "none": "", + "failedLoad": "", + "selected": "", + "loading": "", + "iconsTab": "" + }, + "adminModeration": { + "reasons": { + "spam": "", + "rude": "", + "misleading": "", + "other": "", + "violation": "", + "sexual": "" + }, + "actions": { + "applyWarningDesc": "", + "applyWarning": "", + "labelApplied": "", + "contentUriOptional": "", + "applyLabel": "", + "accountDid": "", + "contentUri": "", + "labelType": "" + }, + "reports": { + "empty": "", + "reportedUser": "", + "details": "", + "contentUri": "", + "emptyFiltered": "", + "takedown": "", + "reporter": "", + "acknowledge": "", + "emptyPending": "", + "dismiss": "" + }, + "accessDeniedMessage": "", + "labels": { + "empty": "", + "accountLevel": "", + "removeConfirm": "", + "removeTitle": "", + "emptyMessage": "" + }, + "accessDenied": "", + "tabs": { + "actions": "", + "labels": "", + "reports": "" + }, + "filters": { + "pending": "", + "resolved": "", + "dismissed": "", + "escalated": "", + "all": "" + }, + "stats": "", + "title": "" + }, + "new": { + "composeTitle": "", + "needsAccount": "", + "composeTagline": "", + "urlLabel": "", + "signInRequired": "", + "signInButton": "", + "urlPlaceholder": "" + }, + "report": { + "reasons": { + "spam": "", + "rudeOrHarassing": "", + "ruleViolation": "", + "inappropriateContent": "", + "misleading": "", + "other": "" + }, + "submittedMessage": "", + "reportingContent": "", + "detailsPlaceholder": "", + "titleGeneric": "", + "titleUser": "", + "submitted": "", + "cancel": "", + "submit": "", + "submitting": "", + "issueLabel": "" + }, + "editProfile": { + "uploadButton": "", + "bioLabel": "", + "addLinkPlaceholder": "", + "avatarUploadError": "", + "displayNameLabel": "", + "cancel": "", + "avatarTypeError": "", + "title": "", + "uploading": "", + "avatarLabel": "", + "avatarSizeError": "", + "linksLabel": "", + "save": "", + "websiteLabel": "", + "saving": "" + }, + "userUrlPage": { + "noUrl": "", + "noItemsMessage": "", + "loadingAnnotations": "", + "loadMore": "", + "noAnnotations": "", + "on": "", + "failedLoadMore": "", + "noHighlights": "", + "noUrlMessage": "", + "loading": "", + "noItems": "" + }, + "common": { + "loadMore": "", + "save": "", + "error": "", + "retry": "", + "cancel": "", + "back": "", + "new": "", + "continue": "", + "loading": "", + "close": "" + }, + "highlightImporter": { + "complete": "", + "moreErrors": "", + "row": "", + "noHighlights": "", + "downloadTemplate": "", + "requiredColumns": "", + "success": "", + "importProgress": "", + "csvMustHaveText": "", + "csvMustHaveUrl": "", + "processing": "", + "importing": "", + "errorsTitle": "", + "importAnother": "", + "failed_one": "", + "failed_few": "", + "failed_other": "", + "clickToUpload": "", + "errorParsing": "" + }, + "editHistory": { + "close": "", + "failedLoad": "", + "currentVersion": "", + "previousVersion": "", + "title": "", + "editedAgo": "", + "noHistory": "", + "timeAgo": "", + "postedAgo": "" + }, + "collectionDetail": { + "notFound": "", + "backLink": "", + "by": "", + "removeFromCollection": "", + "edit": "", + "deleteConfirm": "", + "delete": "", + "empty": "", + "removeConfirm": "", + "failedToLoad": "", + "viewInSemble": "Zobrazit na Semble" + }, + "profileHoverCard": { + "notFound": "", + "viewProfile": "" + }, + "externalLink": { + "cancel": "", + "alwaysAllow": "", + "message": "", + "open": "", + "title": "" + }, + "replyList": { + "noReplies": "" + } } diff --git a/web/public/locales/en/translation.json b/web/public/locales/en/translation.json index d832c5b..d35c42e 100644 --- a/web/public/locales/en/translation.json +++ b/web/public/locales/en/translation.json @@ -1,771 +1,811 @@ { - "appTitle": "Margin", - "nav": { - "feed": "Feed", - "discover": "Discover", - "annotations": "Annotations", - "highlights": "Highlights", - "bookmarks": "Bookmarks", - "collections": "Collections", - "activity": "Activity", - "settings": "Settings", - "new": "New", - "signIn": "Sign in", - "logOut": "Log out", - "themeLight": "Light", - "themeDark": "Dark", - "themeSystem": "System" - }, - "pageTitles": { - "home": "Home — Margin", - "bookmarks": "Bookmarks — Margin", - "highlights": "Highlights — Margin", - "annotations": "Annotations — Margin", - "discover": "Discover — Margin", - "search": "Search — Margin", - "notifications": "Notifications — Margin", - "new": "New Annotation — Margin", - "settings": "Settings — Margin", - "collections": "Collections — Margin", - "admin": "Admin — Margin" - }, - "sidebar": { - "getExtension": "Get the Extension", - "extensionTagline": "Highlight, annotate, and bookmark from any page.", - "downloadForFirefox": "Download for Firefox", - "downloadForEdge": "Download for Edge", - "downloadForChrome": "Download for Chrome", - "trending": "Trending", - "nothingTrending": "Nothing trending right now.", - "searchPlaceholder": "Search people, tags, URLs…", - "copyright": "© 2026 Padding Labs LLC", - "postCount_one": "{{count}} post", - "postCount_other": "{{count}} posts" - }, - "mobileNav": { - "iosShortcut": "iOS Shortcut" - }, - "feed": { - "welcome": "Welcome to Margin", - "welcomeTagline": "A quiet place to annotate, highlight, and save what you read on the web.", - "getStarted": "Get started", - "learnMore": "Learn more", - "tabs": { - "recent": "Recent", - "popular": "Popular", - "shelved": "Shelved", - "margin": "Margin", - "semble": "Semble" - }, - "filters": { - "all": "All", - "annotations": "Annotations", - "highlights": "Highlights", - "bookmarks": "Bookmarks" - }, - "itemsWithTag": "Items with tag:", - "clearFilter": "Clear filter", - "everyone": "Everyone", - "mine": "Mine", - "defaultEmptyMessage": "Nothing here yet — annotations from you and people you follow will show up here.", - "nothingHereYet": "Nothing here yet", - "loading": "Loading…" - }, - "discover": { - "tabs": { - "new": "New", - "popular": "Popular", - "forYou": "For You" - }, - "comingSoon": "Coming soon", - "forYouNotAvailable": "Personalized recommendations aren't available on this server yet.", - "noDocumentsYet": "No documents have been discovered yet. Check back soon!", - "startAnnotating": "Start annotating and highlighting to get personalized recommendations.", - "loadMore": "Load more" - }, - "search": { - "placeholder": "Search annotations, highlights, bookmarks…", - "noResults": "No results found", - "noResultsMessage": "Nothing matched \"{{query}}\". Try different keywords.", - "emptyTitle": "Search your library", - "emptyMessage": "Find annotations, highlights, and bookmarks by keyword, URL, or tag.", - "filters": { - "all": "All", - "annotations": "Annotations", - "highlights": "Highlights", - "bookmarks": "Bookmarks", - "mine": "Mine" - }, - "resultCount": "{{count}}{{hasMore}} results for \"{{query}}\"", - "loadMore": "Load more" - }, - "notifications": { - "title": "Activity", - "noActivity": "No activity yet", - "noActivityMessage": "Interactions with your content will appear here.", - "likedAnnotation": "liked your annotation", - "likedHighlight": "liked your highlight", - "likedBookmark": "liked your bookmark", - "likedReply": "liked your reply", - "likedPost": "liked your post", - "repliedToReply": "replied to your reply", - "repliedToAnnotation": "replied to your annotation", - "mentionedInAnnotation": "mentioned you in an annotation", - "followedYou": "followed you", - "highlightedPage": "highlighted your page", - "inReplyTo": "in reply to", - "aReply": "a reply", - "anAnnotation": "an annotation" - }, - "collections": { - "title": "Collections", - "subtitle": "Organize your annotations and highlights", - "none": "No collections yet", - "noneMessage": "Create a collection to organize your highlights and annotations.", - "createButton": "Create collection", - "newTitle": "New Collection", - "editTitle": "Edit Collection", - "namePlaceholder": "My Collection", - "namePlaceholderEdit": "Collection name", - "nameLabel": "Name", - "iconLabel": "Icon", - "iconsTab": "Icons", - "emojisTab": "Emojis", - "selectedIcon": "Selected:", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "What's this collection for?", - "descriptionPlaceholderEdit": "What's this collection about?", - "cancel": "Cancel", - "create": "Create Collection", - "creating": "Creating…", - "save": "Save Changes", - "saving": "Saving…", - "deleteConfirm": "Delete this collection?", - "failedUpdate": "Failed to update collection", - "errorUpdating": "An error occurred while updating", - "itemCount_one": "{{count}} item", - "itemCount_other": "{{count}} items" - }, - "collectionDetail": { - "backLink": "Collections", - "by": "by", - "edit": "Edit collection", - "delete": "Delete collection", - "removeFromCollection": "Remove from collection", - "viewInSemble": "View in Semble", - "empty": "Collection is empty", - "notFound": "Collection not found", - "failedToLoad": "Failed to load collection", - "deleteConfirm": "Delete this collection?", - "removeConfirm": "Remove from collection?" - }, - "profile": { - "notFound": "User not found", - "notFoundMessage": "This profile doesn't exist or couldn't be loaded.", - "edit": "Edit", - "viewInBluesky": "View profile in Bluesky", - "unblock": "Unblock @{{handle}}", - "block": "Block @{{handle}}", - "unmute": "Unmute @{{handle}}", - "mute": "Mute @{{handle}}", - "report": "Report", - "accountLabeled": "Account labeled: {{description}}", - "labelApplied": "This label was applied by a moderation service you subscribe to.", - "show": "Show", - "hide": "Hide", - "blockedBanner": "You have blocked @{{handle}}", - "blockedMessage": "Their content is hidden from your feeds.", - "mutedBanner": "You have muted @{{handle}}", - "mutedMessage": "Their content is hidden from your feeds.", - "blockedByBanner": "@{{handle}} has blocked you. You cannot interact with their content.", - "unblock_action": "Unblock", - "unmute_action": "Unmute", - "emptyCollectionsOwn": "You haven't created any collections yet.", - "emptyCollectionsOther": "No collections", - "itemCount_one": "{{count}} item", - "itemCount_other": "{{count}} items", - "emptyTabOwn": "Your {{tab}} will show up here.", - "emptyTabOther": "Nothing to see here yet." - }, - "login": { - "signInWith": "Sign in with your", - "handleSuffix": "handle", - "handlePlaceholder": "handle.margin.cafe", - "connecting": "Connecting…", - "continue": "Continue", - "createAccount": "Create New Account", - "or": "or", - "termsPrefix": "By signing in, you agree to our", - "termsLink": "Terms of Service", - "termsAnd": "and", - "privacyLink": "Privacy Policy", - "bannedTitle": "Your account has been suspended", - "bannedMessage": "This account has been suspended from Margin and is no longer able to sign in.", - "bannedAppeal": "If you believe this is a mistake, you can appeal by emailing", - "bannedSignOut": "Sign out" - }, - "signUp": { - "title": "Create your account", - "subtitle": "Margin adheres to the", - "atProtocol": "AT Protocol", - "subtitleSuffix": ". Choose a provider to host your account.", - "customPdsTitle": "Use a custom PDS", - "customPdsSubtitle": "Enter the address of the PDS hosting your account.", - "pdsAddressLabel": "PDS address", - "pdsAddressPlaceholder": "pds.example.com", - "connecting": "Connecting…", - "back": "Back", - "continue": "Continue", - "invite": "Invite", - "moreOptions": "More options", - "atmosphereNote": "Already have an atmosphere account? Just sign in!", - "providerError": "Could not connect to this provider. Please try again.", - "customPdsError": "Couldn't connect to that PDS. Double-check the address.", - "providers": { - "margin": { - "name": "Margin", - "description": "The easiest way to get started" - }, - "bluesky": { - "name": "Bluesky", - "description": "The largest Atmosphere community" - }, - "blacksky": { - "name": "Blacksky", - "description": "A Black-owned community" - }, - "eurosky": { - "name": "Eurosky", - "description": "Your European home on the Atmosphere" - }, - "selfhostedSocial": { - "name": "selfhosted.social", - "description": "A home for builders, tinkerers, and the curious" - }, - "northsky": { - "name": "Northsky", - "description": "A Canadian queer-owned instance" - }, - "tophhie": { - "name": "Tophhie", - "description": "A British community" - }, - "customPds": { - "name": "Use a custom PDS", - "description": "Already have a PDS? Enter its address." - } - } - }, - "composer": { - "newHighlight": "New highlight", - "newAnnotation": "New annotation", - "newNote": "New note", - "saveHighlight": "Save highlight", - "postAnnotation": "Post annotation", - "postNote": "Post note", - "highlightHint": "Saving a passage without a comment. Add text below to turn it into an annotation.", - "addQuote": "+ Add a quote from the page", - "quotePlaceholder": "Paste or type the text you're annotating…", - "removeQuote": "Remove Quote", - "thoughtsPlaceholder": "Add your thoughts on this passage…", - "mindPlaceholder": "What's on your mind?", - "tagsPlaceholder": "Add tags…", - "contentWarning": "Content Warning", - "contentWarningCount": "Content Warning ({{count}})", - "cancel": "Cancel", - "failedToPost": "Failed to post", - "labels": { - "sexual": "Sexual", - "nudity": "Nudity", - "violence": "Violence", - "gore": "Gore", - "spam": "Spam", - "misleading": "Misleading" - } - }, - "card": { - "addedTo": "Added to", - "addedToLower": "added to", - "and": "and", - "communityBookmark": "Community bookmark", - "lichenBookmark": "Lichen bookmark", - "openInSemble": "Open in Semble", - "deleteConfirm": "Delete this item?", - "hideContent": "Hide Content", - "show": "Show", - "edited": "(edited)", - "annotate": "Annotate", - "untitledBookmark": "Untitled Bookmark", - "addNotePlaceholder": "Add your note to convert this highlight into an annotation…", - "addToCollectionTitle": "Add to Collection", - "annotateTitle": "Annotate this highlight", - "editTitle": "Edit", - "deleteTitle": "Delete", - "report": "Report", - "muteUser": "Mute @{{handle}}", - "blockUser": "Block @{{handle}}", - "convertToAnnotation": "Convert to annotation", - "justNow": "just now", - "labelDescriptions": { - "sexual": "Sexual Content", - "nudity": "Nudity", - "violence": "Violence", - "gore": "Graphic Content", - "spam": "Spam", - "misleading": "Misleading" - } - }, - "profileHoverCard": { - "viewProfile": "View Profile", - "notFound": "Profile not found" - }, - "replyList": { - "noReplies": "No replies yet" - }, - "shareMenu": { - "sembleIntegration": "Semble Integration", - "openOnSemble": "Open on Semble", - "copySembleLink": "Copy Semble Link", - "copyLink": "Copy Link", - "shareViaApp": "Share via App", - "copyUniversalLink": "Copy Universal Link", - "moreOptions": "More Options…", - "copied": "Copied!" - }, - "addToCollection": { - "title": "Add to Collection", - "loading": "Loading collections…", - "collectionNameLabel": "Collection name", - "namePlaceholder": "My Collection", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "What's this collection about?", - "iconLabel": "Icon", - "iconsTab": "Icons", - "emojisTab": "Emojis", - "selected": "Selected:", - "back": "Back", - "create": "Create", - "creating": "Creating…", - "newCollectionButton": "New Collection", - "createNewDescription": "Create a new collection", - "none": "No collections yet", - "done": "Done", - "failedLoad": "Failed to load collections", - "failedAdd": "Failed to add to collection", - "failedCreate": "Failed to create collection" - }, - "editItem": { - "editAnnotation": "Edit Annotation", - "editHighlight": "Edit Highlight", - "editBookmark": "Edit Bookmark", - "textLabel": "Text", - "textPlaceholder": "Write your annotation…", - "colorLabel": "Color", - "tagsLabel": "Tags", - "tagPlaceholder": "Add a tag…", - "contentWarning": "Content Warning", - "cancel": "Cancel", - "save": "Save", - "saving": "Saving…", - "failedSave": "Failed to save changes. Please try again.", - "titleLabel": "Title", - "titlePlaceholder": "Bookmark title", - "descriptionLabel": "Description", - "descriptionPlaceholder": "Optional description…" - }, - "editCollection": { - "title": "Edit Collection", - "nameLabel": "Collection name", - "namePlaceholder": "My Collection", - "descriptionLabel": "Description (optional)", - "descriptionPlaceholder": "What's this collection about?", - "iconLabel": "Icon", - "iconsTab": "Icons", - "emojisTab": "Emojis", - "selected": "Selected:", - "cancel": "Cancel", - "save": "Save Changes", - "saving": "Saving…", - "failedUpdate": "Failed to update collection", - "errorUpdating": "An error occurred while updating" - }, - "externalLink": { - "title": "Leaving Margin", - "message": "You're about to visit an external site.", - "alwaysAllow": "Always allow links to {{hostname}}", - "cancel": "Cancel", - "open": "Open Link" - }, - "report": { - "submitted": "Report submitted", - "submittedMessage": "Thank you. We'll review this shortly.", - "titleUser": "Report @{{handle}}", - "titleGeneric": "Report user", - "reportingContent": "Reporting specific content", - "issueLabel": "What's the issue?", - "cancel": "Cancel", - "submit": "Submit Report", - "submitting": "Submitting…", - "detailsPlaceholder": "Additional details (optional)", - "reasons": { - "spam": "Spam", - "ruleViolation": "Rule violation", - "misleading": "Misleading", - "rudeOrHarassing": "Rude or harassing", - "inappropriateContent": "Inappropriate content", - "other": "Other" - } - }, - "editProfile": { - "title": "Edit Profile", - "avatarLabel": "Avatar", - "uploadButton": "Upload", - "uploading": "Uploading…", - "displayNameLabel": "Display Name", - "bioLabel": "Bio", - "websiteLabel": "Website", - "linksLabel": "Links", - "addLinkPlaceholder": "Add a link…", - "cancel": "Cancel", - "save": "Save", - "saving": "Saving…", - "avatarTypeError": "Please select a JPEG or PNG image", - "avatarSizeError": "Image must be under 2MB", - "avatarUploadError": "Failed to upload: {{message}}" + "appTitle": "Margin", + "nav": { + "feed": "Feed", + "discover": "Discover", + "annotations": "Annotations", + "highlights": "Highlights", + "bookmarks": "Bookmarks", + "collections": "Collections", + "activity": "Activity", + "settings": "Settings", + "new": "New", + "signIn": "Sign in", + "logOut": "Log out", + "themeLight": "Light", + "themeDark": "Dark", + "themeSystem": "System" + }, + "pageTitles": { + "home": "Home — Margin", + "bookmarks": "Bookmarks — Margin", + "highlights": "Highlights — Margin", + "annotations": "Annotations — Margin", + "discover": "Discover — Margin", + "search": "Search — Margin", + "notifications": "Notifications — Margin", + "new": "New Annotation — Margin", + "settings": "Settings — Margin", + "collections": "Collections — Margin", + "admin": "Admin — Margin" + }, + "sidebar": { + "getExtension": "Get the Extension", + "extensionTagline": "Highlight, annotate, and bookmark from any page.", + "downloadForFirefox": "Download for Firefox", + "downloadForEdge": "Download for Edge", + "downloadForChrome": "Download for Chrome", + "trending": "Trending", + "nothingTrending": "Nothing trending right now.", + "searchPlaceholder": "Search people, tags, URLs…", + "copyright": "© 2026 Padding Labs LLC", + "postCount_one": "{{count}} post", + "postCount_other": "{{count}} posts" + }, + "mobileNav": { + "iosShortcut": "iOS Shortcut" + }, + "feed": { + "welcome": "Welcome to Margin", + "welcomeTagline": "A quiet place to annotate, highlight, and save what you read on the web.", + "getStarted": "Get started", + "learnMore": "Learn more", + "tabs": { + "recent": "Recent", + "popular": "Popular", + "shelved": "Shelved", + "margin": "Margin", + "semble": "Semble" + }, + "filters": { + "all": "All", + "annotations": "Annotations", + "highlights": "Highlights", + "bookmarks": "Bookmarks" + }, + "itemsWithTag": "Items with tag:", + "clearFilter": "Clear filter", + "everyone": "Everyone", + "mine": "Mine", + "defaultEmptyMessage": "Nothing here yet — annotations from you and people you follow will show up here.", + "nothingHereYet": "Nothing here yet", + "loading": "Loading…" + }, + "discover": { + "tabs": { + "new": "New", + "popular": "Popular", + "forYou": "For You" + }, + "comingSoon": "Coming soon", + "forYouNotAvailable": "Personalized recommendations aren't available on this server yet.", + "noDocumentsYet": "No documents have been discovered yet. Check back soon!", + "startAnnotating": "Start annotating and highlighting to get personalized recommendations.", + "loadMore": "Load more" + }, + "search": { + "placeholder": "Search annotations, highlights, bookmarks…", + "noResults": "No results found", + "noResultsMessage": "Nothing matched \"{{query}}\". Try different keywords.", + "emptyTitle": "Search your library", + "emptyMessage": "Find annotations, highlights, and bookmarks by keyword, URL, or tag.", + "filters": { + "all": "All", + "annotations": "Annotations", + "highlights": "Highlights", + "bookmarks": "Bookmarks", + "mine": "Mine" + }, + "resultCount": "{{count}}{{hasMore}} results for \"{{query}}\"", + "loadMore": "Load more" + }, + "notifications": { + "title": "Activity", + "noActivity": "No activity yet", + "noActivityMessage": "Interactions with your content will appear here.", + "likedAnnotation": "liked your annotation", + "likedHighlight": "liked your highlight", + "likedBookmark": "liked your bookmark", + "likedReply": "liked your reply", + "likedPost": "liked your post", + "repliedToReply": "replied to your reply", + "repliedToAnnotation": "replied to your annotation", + "mentionedInAnnotation": "mentioned you in an annotation", + "followedYou": "followed you", + "highlightedPage": "highlighted your page", + "inReplyTo": "in reply to", + "aReply": "a reply", + "anAnnotation": "an annotation" + }, + "collections": { + "title": "Collections", + "subtitle": "Organize your annotations and highlights", + "none": "No collections yet", + "noneMessage": "Create a collection to organize your highlights and annotations.", + "createButton": "Create collection", + "newTitle": "New Collection", + "editTitle": "Edit Collection", + "namePlaceholder": "My Collection", + "namePlaceholderEdit": "Collection name", + "nameLabel": "Name", + "iconLabel": "Icon", + "iconsTab": "Icons", + "emojisTab": "Emojis", + "selectedIcon": "Selected:", + "descriptionLabel": "Description (optional)", + "descriptionPlaceholder": "What's this collection for?", + "descriptionPlaceholderEdit": "What's this collection about?", + "cancel": "Cancel", + "create": "Create Collection", + "creating": "Creating…", + "save": "Save Changes", + "saving": "Saving…", + "deleteConfirm": "Delete this collection?", + "failedUpdate": "Failed to update collection", + "errorUpdating": "An error occurred while updating", + "itemCount_one": "{{count}} item", + "itemCount_other": "{{count}} items" + }, + "collectionDetail": { + "backLink": "Collections", + "by": "by", + "edit": "Edit collection", + "delete": "Delete collection", + "removeFromCollection": "Remove from collection", + "viewInSemble": "View in Semble", + "empty": "Collection is empty", + "notFound": "Collection not found", + "failedToLoad": "Failed to load collection", + "deleteConfirm": "Delete this collection?", + "removeConfirm": "Remove from collection?" + }, + "profile": { + "notFound": "User not found", + "notFoundMessage": "This profile doesn't exist or couldn't be loaded.", + "edit": "Edit", + "viewInBluesky": "View profile in Bluesky", + "unblock": "Unblock @{{handle}}", + "block": "Block @{{handle}}", + "unmute": "Unmute @{{handle}}", + "mute": "Mute @{{handle}}", + "report": "Report", + "accountLabeled": "Account labeled: {{description}}", + "labelApplied": "This label was applied by a moderation service you subscribe to.", + "show": "Show", + "hide": "Hide", + "blockedBanner": "You have blocked @{{handle}}", + "blockedMessage": "Their content is hidden from your feeds.", + "mutedBanner": "You have muted @{{handle}}", + "mutedMessage": "Their content is hidden from your feeds.", + "blockedByBanner": "@{{handle}} has blocked you. You cannot interact with their content.", + "unblock_action": "Unblock", + "unmute_action": "Unmute", + "emptyCollectionsOwn": "You haven't created any collections yet.", + "emptyCollectionsOther": "No collections", + "itemCount_one": "{{count}} item", + "itemCount_other": "{{count}} items", + "emptyTabOwn": "Your {{tab}} will show up here.", + "emptyTabOther": "Nothing to see here yet." + }, + "login": { + "signInWith": "Sign in with your", + "handleSuffix": "handle", + "handlePlaceholder": "handle.margin.cafe", + "connecting": "Connecting…", + "continue": "Continue", + "createAccount": "Create New Account", + "or": "or", + "termsPrefix": "By signing in, you agree to our", + "termsLink": "Terms of Service", + "termsAnd": "and", + "privacyLink": "Privacy Policy", + "bannedTitle": "Your account has been suspended", + "bannedMessage": "This account has been suspended from Margin and is no longer able to sign in.", + "bannedAppeal": "If you believe this is a mistake, you can appeal by emailing", + "bannedSignOut": "Sign out" + }, + "signUp": { + "title": "Create your account", + "subtitle": "Margin adheres to the", + "atProtocol": "AT Protocol", + "subtitleSuffix": ". Choose a provider to host your account.", + "customPdsTitle": "Use a custom PDS", + "customPdsSubtitle": "Enter the address of the PDS hosting your account.", + "pdsAddressLabel": "PDS address", + "pdsAddressPlaceholder": "pds.example.com", + "connecting": "Connecting…", + "back": "Back", + "continue": "Continue", + "invite": "Invite", + "moreOptions": "More options", + "atmosphereNote": "Already have an atmosphere account? Just sign in!", + "providerError": "Could not connect to this provider. Please try again.", + "customPdsError": "Couldn't connect to that PDS. Double-check the address.", + "providers": { + "margin": { + "name": "Margin", + "description": "The easiest way to get started" + }, + "bluesky": { + "name": "Bluesky", + "description": "The largest Atmosphere community" + }, + "blacksky": { + "name": "Blacksky", + "description": "A Black-owned community" + }, + "eurosky": { + "name": "Eurosky", + "description": "Your European home on the Atmosphere" + }, + "selfhostedSocial": { + "name": "selfhosted.social", + "description": "A home for builders, tinkerers, and the curious" + }, + "northsky": { + "name": "Northsky", + "description": "A Canadian queer-owned instance" + }, + "tophhie": { + "name": "Tophhie", + "description": "A British community" + }, + "customPds": { + "name": "Use a custom PDS", + "description": "Already have a PDS? Enter its address." + } + } + }, + "composer": { + "newHighlight": "New highlight", + "newAnnotation": "New annotation", + "newNote": "New note", + "saveHighlight": "Save highlight", + "postAnnotation": "Post annotation", + "postNote": "Post note", + "highlightHint": "Saving a passage without a comment. Add text below to turn it into an annotation.", + "addQuote": "+ Add a quote from the page", + "quotePlaceholder": "Paste or type the text you're annotating…", + "removeQuote": "Remove Quote", + "thoughtsPlaceholder": "Add your thoughts on this passage…", + "mindPlaceholder": "What's on your mind?", + "tagsPlaceholder": "Add tags…", + "contentWarning": "Content Warning", + "contentWarningCount": "Content Warning ({{count}})", + "cancel": "Cancel", + "failedToPost": "Failed to post", + "labels": { + "sexual": "Sexual", + "nudity": "Nudity", + "violence": "Violence", + "gore": "Gore", + "spam": "Spam", + "misleading": "Misleading" + } + }, + "card": { + "addedTo": "Added to", + "addedToLower": "added to", + "and": "and", + "communityBookmark": "Community bookmark", + "lichenBookmark": "Lichen bookmark", + "openInSemble": "Open in Semble", + "deleteConfirm": "Delete this item?", + "hideContent": "Hide Content", + "show": "Show", + "edited": "(edited)", + "annotate": "Annotate", + "untitledBookmark": "Untitled Bookmark", + "addNotePlaceholder": "Add your note to convert this highlight into an annotation…", + "addToCollectionTitle": "Add to Collection", + "annotateTitle": "Annotate this highlight", + "editTitle": "Edit", + "deleteTitle": "Delete", + "report": "Report", + "muteUser": "Mute @{{handle}}", + "blockUser": "Block @{{handle}}", + "convertToAnnotation": "Convert to annotation", + "justNow": "just now", + "labelDescriptions": { + "sexual": "Sexual Content", + "nudity": "Nudity", + "violence": "Violence", + "gore": "Graphic Content", + "spam": "Spam", + "misleading": "Misleading" + } + }, + "profileHoverCard": { + "viewProfile": "View Profile", + "notFound": "Profile not found" + }, + "replyList": { + "noReplies": "No replies yet" + }, + "shareMenu": { + "sembleIntegration": "Semble Integration", + "openOnSemble": "Open on Semble", + "copySembleLink": "Copy Semble Link", + "copyLink": "Copy Link", + "shareViaApp": "Share via App", + "copyUniversalLink": "Copy Universal Link", + "moreOptions": "More Options…", + "copied": "Copied!" + }, + "addToCollection": { + "title": "Add to Collection", + "loading": "Loading collections…", + "collectionNameLabel": "Collection name", + "namePlaceholder": "My Collection", + "descriptionLabel": "Description (optional)", + "descriptionPlaceholder": "What's this collection about?", + "iconLabel": "Icon", + "iconsTab": "Icons", + "emojisTab": "Emojis", + "selected": "Selected:", + "back": "Back", + "create": "Create", + "creating": "Creating…", + "newCollectionButton": "New Collection", + "createNewDescription": "Create a new collection", + "none": "No collections yet", + "done": "Done", + "failedLoad": "Failed to load collections", + "failedAdd": "Failed to add to collection", + "failedCreate": "Failed to create collection" + }, + "editItem": { + "editAnnotation": "Edit Annotation", + "editHighlight": "Edit Highlight", + "editBookmark": "Edit Bookmark", + "textLabel": "Text", + "textPlaceholder": "Write your annotation…", + "colorLabel": "Color", + "tagsLabel": "Tags", + "tagPlaceholder": "Add a tag…", + "contentWarning": "Content Warning", + "cancel": "Cancel", + "save": "Save", + "saving": "Saving…", + "failedSave": "Failed to save changes. Please try again.", + "titleLabel": "Title", + "titlePlaceholder": "Bookmark title", + "descriptionLabel": "Description", + "descriptionPlaceholder": "Optional description…" + }, + "editCollection": { + "title": "Edit Collection", + "nameLabel": "Collection name", + "namePlaceholder": "My Collection", + "descriptionLabel": "Description (optional)", + "descriptionPlaceholder": "What's this collection about?", + "iconLabel": "Icon", + "iconsTab": "Icons", + "emojisTab": "Emojis", + "selected": "Selected:", + "cancel": "Cancel", + "save": "Save Changes", + "saving": "Saving…", + "failedUpdate": "Failed to update collection", + "errorUpdating": "An error occurred while updating" + }, + "externalLink": { + "title": "Leaving Margin", + "message": "You're about to visit an external site.", + "alwaysAllow": "Always allow links to {{hostname}}", + "cancel": "Cancel", + "open": "Open Link" + }, + "report": { + "submitted": "Report submitted", + "submittedMessage": "Thank you. We'll review this shortly.", + "titleUser": "Report @{{handle}}", + "titleGeneric": "Report user", + "reportingContent": "Reporting specific content", + "issueLabel": "What's the issue?", + "cancel": "Cancel", + "submit": "Submit Report", + "submitting": "Submitting…", + "detailsPlaceholder": "Additional details (optional)", + "reasons": { + "spam": "Spam", + "ruleViolation": "Rule violation", + "misleading": "Misleading", + "rudeOrHarassing": "Rude or harassing", + "inappropriateContent": "Inappropriate content", + "other": "Other" + } + }, + "editProfile": { + "title": "Edit Profile", + "avatarLabel": "Avatar", + "uploadButton": "Upload", + "uploading": "Uploading…", + "displayNameLabel": "Display Name", + "bioLabel": "Bio", + "websiteLabel": "Website", + "linksLabel": "Links", + "addLinkPlaceholder": "Add a link…", + "cancel": "Cancel", + "save": "Save", + "saving": "Saving…", + "avatarTypeError": "Please select a JPEG or PNG image", + "avatarSizeError": "Image must be under 2MB", + "avatarUploadError": "Failed to upload: {{message}}" + }, + "iosShortcut": { + "title": "Save from iOS Safari", + "howTo": "How to use the shortcut", + "step1Title": "Install the shortcut", + "step1Link": "Get iOS Shortcut", + "step2Title": "Generate an API Key", + "step2Description": "Create a new key on this settings page and copy it.", + "step3Title": "Configure the shortcut", + "step3Description": "In the Shortcuts app, click the menu on the Save to Margin shortcut, and paste your API key in the Text action right below the setup comment.", + "step4Title": "To Bookmark a page", + "step4Description": "Don't select any text. Click the menu in Safari, press Share, and select Save to Margin.", + "step5Title": "To Highlight text", + "step5Description": "Select text on the page, click the menu, press Share, and select Save to Margin. Leave the Note field empty.", + "step6Title": "To Add an Annotation", + "step6Description": "Select text, share to Save to Margin (via the menu), enter your custom note in the Note field, and press Done!", + "gotIt": "Got it" + }, + "editHistory": { + "title": "Edit History", + "noHistory": "No edit history found.", + "currentVersion": "Current Version", + "previousVersion": "Previous Version", + "editedAgo": "Edited {{time}} ago", + "postedAgo": "Posted {{time}} ago", + "timeAgo": "{{time}} ago", + "close": "Close", + "failedLoad": "Failed to load edit history" + }, + "settings": { + "title": "Settings", + "sections": { + "profile": "Profile", + "appearance": "Appearance", + "language": "Language", + "batchImport": "Batch Import Highlights", + "apiKeys": "API Keys", + "moderation": "Moderation", + "contentFiltering": "Content Filtering", + "iosShortcut": "iOS Shortcut" + }, + "language": { + "label": "Interface Language", + "description": "Choose the language for the Margin interface." + }, + "appearance": { + "disableExternalLinkWarning": "Disable external link warning", + "disableExternalLinkWarningDesc": "Don't ask for confirmation when opening external links", + "communityBookmarks": "Share bookmarks to community feed", + "communityBookmarksDesc": "Your saved bookmarks will appear in the community bookmarks feed" + }, + "batchImport": { + "description": "Upload highlights from CSV. Required: url, text. Optional: title, tags, color, created_at" + }, + "apiKeys": { + "description": "For the iOS shortcut and other apps", + "keyNamePlaceholder": "Key name, e.g. iOS Shortcut", + "generate": "Generate", + "copyNow": "Copy now - you won't see this again!", + "empty": "No API keys yet. Create one to use with the browser extension.", + "created": "Created {{date}}", + "revokeConfirm": "Revoke this key? Apps using it will stop working." + }, + "moderation": { + "description": "Manage blocked and muted accounts", + "blockedAccounts": "Blocked accounts ({{count}})", + "noBlocked": "No blocked accounts", + "unblock": "Unblock", + "mutedAccounts": "Muted accounts ({{count}})", + "noMuted": "No muted accounts", + "unmute": "Unmute" + }, + "contentFiltering": { + "description": "Subscribe to labelers and configure how labeled content appears", + "subscribedLabelers": "Subscribed Labelers", + "noLabelers": "No labelers subscribed", + "labelerDidPlaceholder": "did:plc:… (labeler DID)", + "remove": "Remove", + "add": "Add", + "labelVisibility": "Label Visibility", + "labelVisibilityDesc": "Choose how to handle each label type: Warn shows a blur overlay, Hide removes content entirely, Ignore shows content normally.", + "warn": "Warn", + "hide": "Hide", + "ignore": "Ignore" }, "iosShortcut": { - "title": "Save from iOS Safari", - "howTo": "How to use the shortcut", - "step1Title": "Install the shortcut", - "step1Link": "Get iOS Shortcut", - "step2Title": "Generate an API Key", - "step2Description": "Create a new key on this settings page and copy it.", - "step3Title": "Configure the shortcut", - "step3Description": "In the Shortcuts app, click the menu on the Save to Margin shortcut, and paste your API key in the Text action right below the setup comment.", - "step4Title": "To Bookmark a page", - "step4Description": "Don't select any text. Click the menu in Safari, press Share, and select Save to Margin.", - "step5Title": "To Highlight text", - "step5Description": "Select text on the page, click the menu, press Share, and select Save to Margin. Leave the Note field empty.", - "step6Title": "To Add an Annotation", - "step6Description": "Select text, share to Save to Margin (via the menu), enter your custom note in the Note field, and press Done!", - "gotIt": "Got it" - }, - "editHistory": { - "title": "Edit History", - "noHistory": "No edit history found.", - "currentVersion": "Current Version", - "previousVersion": "Previous Version", - "editedAgo": "Edited {{time}} ago", - "postedAgo": "Posted {{time}} ago", - "timeAgo": "{{time}} ago", - "close": "Close", - "failedLoad": "Failed to load edit history" - }, - "settings": { - "title": "Settings", - "sections": { - "profile": "Profile", - "appearance": "Appearance", - "language": "Language", - "batchImport": "Batch Import Highlights", - "apiKeys": "API Keys", - "moderation": "Moderation", - "contentFiltering": "Content Filtering", - "iosShortcut": "iOS Shortcut" - }, - "language": { - "label": "Interface Language", - "description": "Choose the language for the Margin interface." - }, - "appearance": { - "disableExternalLinkWarning": "Disable external link warning", - "disableExternalLinkWarningDesc": "Don't ask for confirmation when opening external links", - "communityBookmarks": "Share bookmarks to community feed", - "communityBookmarksDesc": "Your saved bookmarks will appear in the community bookmarks feed" - }, - "batchImport": { - "description": "Upload highlights from CSV. Required: url, text. Optional: title, tags, color, created_at" - }, - "apiKeys": { - "description": "For the iOS shortcut and other apps", - "keyNamePlaceholder": "Key name, e.g. iOS Shortcut", - "generate": "Generate", - "copyNow": "Copy now - you won't see this again!", - "empty": "No API keys yet. Create one to use with the browser extension.", - "created": "Created {{date}}", - "revokeConfirm": "Revoke this key? Apps using it will stop working." - }, - "moderation": { - "description": "Manage blocked and muted accounts", - "blockedAccounts": "Blocked accounts ({{count}})", - "noBlocked": "No blocked accounts", - "unblock": "Unblock", - "mutedAccounts": "Muted accounts ({{count}})", - "noMuted": "No muted accounts", - "unmute": "Unmute" - }, - "contentFiltering": { - "description": "Subscribe to labelers and configure how labeled content appears", - "subscribedLabelers": "Subscribed Labelers", - "noLabelers": "No labelers subscribed", - "labelerDidPlaceholder": "did:plc:… (labeler DID)", - "remove": "Remove", - "add": "Add", - "labelVisibility": "Label Visibility", - "labelVisibilityDesc": "Choose how to handle each label type: Warn shows a blur overlay, Hide removes content entirely, Ignore shows content normally.", - "warn": "Warn", - "hide": "Hide", - "ignore": "Ignore" - }, - "iosShortcut": { - "description": "Save pages to Margin from Safari on iPhone and iPad", - "setupButton": "Setup iOS Shortcut" - }, - "logout": "Log out" - }, - "new": { - "signInRequired": "Sign in to create", - "needsAccount": "You need a Bluesky account", - "signInButton": "Sign in with Bluesky", - "composeTitle": "Compose", - "composeTagline": "Highlight a passage, leave a note, or annotate a page — all from here.", - "urlLabel": "URL to annotate", - "urlPlaceholder": "https://example.com/article" - }, - "annotationDetail": { - "back": "Back", - "replies": "Replies ({{count}})", - "replyingTo": "Replying to", - "replyPlaceholder": "Write a reply…", - "reply": "Reply", - "signInToReply": "Sign in to reply", - "logIn": "Log in", - "notFound": "Not found", - "mayBeDeleted": "This may have been deleted.", - "backToFeed": "Back to Feed", - "deleteReplyConfirm": "Delete this reply?", - "failedReply": "Failed to post reply: {{message}}", - "failedDelete": "Failed to delete: {{message}}", - "failedResolve": "Failed to resolve handle: {{message}}" - }, - "urlPage": { - "title": "URL Annotations", - "description": "Enter a URL to see all public annotations and highlights from the Margin community.", - "urlPlaceholder": "https://example.com/article", - "view": "View", - "myAnnotations": "My Annotations", - "share": "Share", - "copied": "Copied!", - "contributor_one": "{{count}} contributor", - "contributor_other": "{{count}} contributors", - "loadingAnnotations": "Loading annotations…", - "blankCanvas": "This page is a blank canvas", - "blankCanvasMessage": "No one's left notes here yet. Want to be the first? Grab the Margin extension and share what you're thinking.", - "tabs": { - "all": "All", - "annotations": "Annotations", - "highlights": "Highlights", - "bookmarks": "Bookmarks", - "collections": "Collections" - }, - "noAnnotationsYet": "No annotations yet", - "noAnnotationsMessage": "Nobody has left a written note on this page.", - "noHighlightsYet": "No highlights yet", - "noHighlightsMessage": "Nobody has highlighted a passage from this page.", - "loadMore": "Load more", - "loading": "Loading…", - "failedLoadMore": "Failed to load more: {{message}}" - }, - "userUrlPage": { - "on": "on", - "loadingAnnotations": "Loading annotations…", - "noUrl": "No URL specified", - "noUrlMessage": "Please provide a URL to view annotations.", - "noItems": "No items found", - "noItemsMessage": "{{name}} hasn't annotated this page yet.", - "noAnnotations": "No annotations", - "noHighlights": "No highlights", - "loadMore": "Load more", - "loading": "Loading…", - "failedLoadMore": "Failed to load more: {{message}}" - }, - "adminModeration": { - "accessDenied": "Access Denied", - "accessDeniedMessage": "You don't have permission to access the moderation dashboard.", - "title": "Moderation", - "stats": "{{pending}} pending · {{total}} total reports", - "tabs": { - "reports": "Reports", - "actions": "Actions", - "labels": "Labels" - }, - "filters": { - "all": "All", - "pending": "Pending", - "resolved": "Resolved", - "dismissed": "Dismissed", - "escalated": "Escalated" - }, - "reports": { - "empty": "No reports", - "emptyPending": "No pending reports to review.", - "emptyFiltered": "No {{status}} reports found.", - "reportedUser": "Reported User", - "reporter": "Reporter", - "details": "Details", - "contentUri": "Content URI", - "acknowledge": "Acknowledge", - "dismiss": "Dismiss", - "takedown": "Takedown" - }, - "reasons": { - "spam": "Spam", - "violation": "Rule Violation", - "misleading": "Misleading", - "sexual": "Inappropriate", - "rude": "Rude / Harassing", - "other": "Other" - }, - "actions": { - "applyWarning": "Apply Content Warning", - "applyWarningDesc": "Add a content warning label to a specific post or account. Users will see a blur overlay with the option to reveal.", - "accountDid": "Account DID", - "contentUri": "Content URI", - "contentUriOptional": "optional — leave empty for account-level label", - "labelType": "Label Type", - "applyLabel": "Apply Label", - "labelApplied": "Label applied" - }, - "labels": { - "empty": "No labels", - "emptyMessage": "No content labels have been applied yet.", - "accountLevel": "Account-level label", - "removeConfirm": "Remove this label?", - "removeTitle": "Remove label" - } - }, - "highlightImporter": { - "clickToUpload": "Click to upload CSV", - "processing": "Processing…", - "requiredColumns": "Required columns: url, text | Optional: title, tags, color, created_at", - "downloadTemplate": "Download Template", - "importProgress": "Import Progress", - "complete": "{{rate}}% complete", - "failed_one": "{{count}} failed", - "failed_other": "{{count}} failed", - "importing": "Importing highlights…", - "success": "Successfully imported {{count}} highlights!", - "errorsTitle": "{{count}} errors during import", - "row": "Row {{row}}: {{error}}", - "moreErrors": "+{{count}} more errors", - "importAnother": "Import Another File", - "noHighlights": "No valid highlights found in CSV", - "csvMustHaveUrl": "CSV must have a 'url' column", - "csvMustHaveText": "CSV must have a 'text' column (also matches: highlight, excerpt)", - "errorParsing": "Error parsing CSV: {{message}}" - }, - "common": { - "loading": "Loading…", - "cancel": "Cancel", - "save": "Save", - "close": "Close", - "back": "Back", - "continue": "Continue", - "error": "Error", - "retry": "Retry", - "loadMore": "Load more", - "new": "New" - }, - "about": { - "nav": { - "getExtension": "Get Extension", - "install": "Install" - }, - "hero": { - "openSource": "Fully open source", - "headline": "Write on the margins", - "headlineAccent": "of the internet.", - "descriptionPre": "Margin is an open annotation layer for the internet. Highlight text, leave notes, and bookmark pages, all stored on your decentralized identity with the", - "atProtocol": "AT Protocol", - "descriptionPost": ". Not locked in a silo.", - "openApp": "Open App", - "getStarted": "Get Started", - "installFor": "Install for {{browser}}" - }, - "features": { - "title": "Everything you need to engage with the web", - "subtitle": "More than bookmarks. A full toolkit for reading, thinking, and sharing on the open web.", - "annotations": { - "title": "Annotations", - "description": "Leave notes on any web page. Start discussions, share insights, or just jot down your thoughts for later." - }, - "highlights": { - "title": "Highlights", - "description": "Select and highlight text on any page with customizable colors. Your highlights are rendered inline with the CSS Highlights API." - }, - "bookmarks": { - "title": "Bookmarks", - "description": "Save pages with one click or a keyboard shortcut. All your bookmarks are synced to your AT Protocol identity." - }, - "collections": { - "title": "Collections", - "description": "Organize your annotations, highlights, and bookmarks into themed collections. Share them publicly or keep them private." - }, - "socialDiscovery": { - "title": "Social Discovery", - "description": "See what others are saying about the pages you visit. Discover annotations, trending tags, and connect with other readers." - }, - "tagsSearch": { - "title": "Tags & Search", - "description": "Tag your annotations for easy retrieval. Search by URL, tag, or content to find exactly what you're looking for." - } - }, - "extension": { - "badge": "Browser Extension", - "title": "Your annotation toolkit,", - "titleLine2": "right in the browser", - "description": "The Margin extension brings the full annotation experience directly into every page you visit. Just select, annotate, and go.", - "iosShortcut": "iOS Shortcut", - "features": { - "inlineOverlay": { - "title": "Inline Overlay", - "description": "See annotations and highlights rendered directly on the page. Uses the CSS Highlights API for beautiful, native-feeling text underlines." - }, - "contextMenu": { - "title": "Context Menu & Selection", - "description": "Right-click any selected text to annotate, highlight, or quote it. Or just right-click the page to bookmark it instantly." - }, - "keyboard": { - "title": "Keyboard Shortcuts", - "description": "Toggle the overlay, bookmark the current page, or annotate selected text without reaching for the mouse." - }, - "sidePanel": { - "title": "Side Panel", - "description": "Open the Margin side panel to browse annotations, bookmarks, and collections without leaving the page you're reading." - } - } + "description": "Save pages to Margin from Safari on iPhone and iPad", + "setupButton": "Setup iOS Shortcut" + }, + "logout": "Log out" + }, + "new": { + "signInRequired": "Sign in to create", + "needsAccount": "You need a Bluesky account", + "signInButton": "Sign in with Bluesky", + "composeTitle": "Compose", + "composeTagline": "Highlight a passage, leave a note, or annotate a page — all from here.", + "urlLabel": "URL to annotate", + "urlPlaceholder": "https://example.com/article" + }, + "annotationDetail": { + "back": "Back", + "replies": "Replies ({{count}})", + "replyingTo": "Replying to", + "replyPlaceholder": "Write a reply…", + "reply": "Reply", + "signInToReply": "Sign in to reply", + "logIn": "Log in", + "notFound": "Not found", + "mayBeDeleted": "This may have been deleted.", + "backToFeed": "Back to Feed", + "deleteReplyConfirm": "Delete this reply?", + "failedReply": "Failed to post reply: {{message}}", + "failedDelete": "Failed to delete: {{message}}", + "failedResolve": "Failed to resolve handle: {{message}}" + }, + "urlPage": { + "title": "URL Annotations", + "description": "Enter a URL to see all public annotations and highlights from the Margin community.", + "urlPlaceholder": "https://example.com/article", + "view": "View", + "myAnnotations": "My Annotations", + "share": "Share", + "copied": "Copied!", + "contributor_one": "{{count}} contributor", + "contributor_other": "{{count}} contributors", + "loadingAnnotations": "Loading annotations…", + "blankCanvas": "This page is a blank canvas", + "blankCanvasMessage": "No one's left notes here yet. Want to be the first? Grab the Margin extension and share what you're thinking.", + "tabs": { + "all": "All", + "annotations": "Annotations", + "highlights": "Highlights", + "bookmarks": "Bookmarks", + "collections": "Collections" + }, + "noAnnotationsYet": "No annotations yet", + "noAnnotationsMessage": "Nobody has left a written note on this page.", + "noHighlightsYet": "No highlights yet", + "noHighlightsMessage": "Nobody has highlighted a passage from this page.", + "loadMore": "Load more", + "loading": "Loading…", + "failedLoadMore": "Failed to load more: {{message}}" + }, + "userUrlPage": { + "on": "on", + "loadingAnnotations": "Loading annotations…", + "noUrl": "No URL specified", + "noUrlMessage": "Please provide a URL to view annotations.", + "noItems": "No items found", + "noItemsMessage": "{{name}} hasn't annotated this page yet.", + "noAnnotations": "No annotations", + "noHighlights": "No highlights", + "loadMore": "Load more", + "loading": "Loading…", + "failedLoadMore": "Failed to load more: {{message}}" + }, + "adminModeration": { + "accessDenied": "Access Denied", + "accessDeniedMessage": "You don't have permission to access the moderation dashboard.", + "title": "Moderation", + "stats": "{{pending}} pending · {{total}} total reports", + "tabs": { + "reports": "Reports", + "actions": "Actions", + "labels": "Labels" + }, + "filters": { + "all": "All", + "pending": "Pending", + "resolved": "Resolved", + "dismissed": "Dismissed", + "escalated": "Escalated" + }, + "reports": { + "empty": "No reports", + "emptyPending": "No pending reports to review.", + "emptyFiltered": "No {{status}} reports found.", + "reportedUser": "Reported User", + "reporter": "Reporter", + "details": "Details", + "contentUri": "Content URI", + "acknowledge": "Acknowledge", + "dismiss": "Dismiss", + "takedown": "Takedown" + }, + "reasons": { + "spam": "Spam", + "violation": "Rule Violation", + "misleading": "Misleading", + "sexual": "Inappropriate", + "rude": "Rude / Harassing", + "other": "Other" + }, + "actions": { + "applyWarning": "Apply Content Warning", + "applyWarningDesc": "Add a content warning label to a specific post or account. Users will see a blur overlay with the option to reveal.", + "accountDid": "Account DID", + "contentUri": "Content URI", + "contentUriOptional": "optional — leave empty for account-level label", + "labelType": "Label Type", + "applyLabel": "Apply Label", + "labelApplied": "Label applied" + }, + "labels": { + "empty": "No labels", + "emptyMessage": "No content labels have been applied yet.", + "accountLevel": "Account-level label", + "removeConfirm": "Remove this label?", + "removeTitle": "Remove label" + } + }, + "highlightImporter": { + "clickToUpload": "Click to upload CSV", + "processing": "Processing…", + "requiredColumns": "Required columns: url, text | Optional: title, tags, color, created_at", + "downloadTemplate": "Download Template", + "importProgress": "Import Progress", + "complete": "{{rate}}% complete", + "failed_one": "{{count}} failed", + "failed_other": "{{count}} failed", + "importing": "Importing highlights…", + "success": "Successfully imported {{count}} highlights!", + "errorsTitle": "{{count}} errors during import", + "row": "Row {{row}}: {{error}}", + "moreErrors": "+{{count}} more errors", + "importAnother": "Import Another File", + "noHighlights": "No valid highlights found in CSV", + "csvMustHaveUrl": "CSV must have a 'url' column", + "csvMustHaveText": "CSV must have a 'text' column (also matches: highlight, excerpt)", + "errorParsing": "Error parsing CSV: {{message}}" + }, + "common": { + "loading": "Loading…", + "cancel": "Cancel", + "save": "Save", + "close": "Close", + "back": "Back", + "continue": "Continue", + "error": "Error", + "retry": "Retry", + "loadMore": "Load more", + "new": "New" + }, + "about": { + "nav": { + "getExtension": "Get Extension", + "install": "Install" + }, + "hero": { + "openSource": "Fully open source", + "headline": "Write on the margins", + "headlineAccent": "of the internet.", + "descriptionPre": "Margin is an open annotation layer for the internet. Highlight text, leave notes, and bookmark pages, all stored on your decentralized identity with the", + "atProtocol": "AT Protocol", + "descriptionPost": ". Not locked in a silo.", + "openApp": "Open App", + "getStarted": "Get Started", + "installFor": "Install for {{browser}}" + }, + "features": { + "title": "Everything you need to engage with the web", + "subtitle": "More than bookmarks. A full toolkit for reading, thinking, and sharing on the open web.", + "annotations": { + "title": "Annotations", + "description": "Leave notes on any web page. Start discussions, share insights, or just jot down your thoughts for later." + }, + "highlights": { + "title": "Highlights", + "description": "Select and highlight text on any page with customizable colors. Your highlights are rendered inline with the CSS Highlights API." + }, + "bookmarks": { + "title": "Bookmarks", + "description": "Save pages with one click or a keyboard shortcut. All your bookmarks are synced to your AT Protocol identity." + }, + "collections": { + "title": "Collections", + "description": "Organize your annotations, highlights, and bookmarks into themed collections. Share them publicly or keep them private." + }, + "socialDiscovery": { + "title": "Social Discovery", + "description": "See what others are saying about the pages you visit. Discover annotations, trending tags, and connect with other readers." + }, + "tagsSearch": { + "title": "Tags & Search", + "description": "Tag your annotations for easy retrieval. Search by URL, tag, or content to find exactly what you're looking for." + } + }, + "extension": { + "badge": "Browser Extension", + "title": "Your annotation toolkit,", + "titleLine2": "right in the browser", + "description": "The Margin extension brings the full annotation experience directly into every page you visit. Just select, annotate, and go.", + "iosShortcut": "iOS Shortcut", + "features": { + "inlineOverlay": { + "title": "Inline Overlay", + "description": "See annotations and highlights rendered directly on the page. Uses the CSS Highlights API for beautiful, native-feeling text underlines." }, - "protocol": { - "badge": "Decentralized", - "title": "Your data, your identity", - "descriptionPre": "Margin is built on the", - "descriptionPost": ", the open protocol that powers apps like Bluesky. Your annotations, highlights, and bookmarks are stored in your personal data repository, not locked in a silo.", - "point0": "Sign in with your AT Protocol handle, no new account needed", - "point1": "Your data lives in your PDS, portable and under your control", - "point2": "Custom Lexicon schemas for annotations, highlights, collections & more", - "point3": "Fully open source, check out the code and contribute" + "contextMenu": { + "title": "Context Menu & Selection", + "description": "Right-click any selected text to annotate or highlight it. Or just right-click the page to bookmark it instantly." }, - "cta": { - "title": "Start writing on the margins", - "description": "Join the open annotation layer. Sign in with your AT Protocol identity and install the extension to get started.", - "signIn": "Sign in", - "viewGitHub": "View on GitHub", - "viewTangled": "View on Tangled" + "keyboard": { + "title": "Keyboard Shortcuts", + "description": "Toggle the overlay, bookmark the current page, or annotate selected text without reaching for the mouse." }, - "footer": { - "privacy": "Privacy", - "terms": "Terms", - "contact": "Contact" + "sidePanel": { + "title": "Side Panel", + "description": "Open the Margin side panel to browse annotations, bookmarks, and collections without leaving the page you're reading." } + } + }, + "protocol": { + "badge": "Decentralized", + "title": "Your data, your identity", + "descriptionPre": "Margin is built on the", + "descriptionPost": ", the open protocol that powers apps like Bluesky. Your annotations, highlights, and bookmarks are stored in your personal data repository, not locked in a silo.", + "point0": "Sign in with your AT Protocol handle, no new account needed", + "point1": "Your data lives in your PDS, portable and under your control", + "point2": "Custom Lexicon schemas for annotations, highlights, collections & more", + "point3": "Fully open source, check out the code and contribute" + }, + "cta": { + "title": "Start writing on the margins", + "description": "Join the open annotation layer. Sign in with your AT Protocol identity and install the extension to get started.", + "signIn": "Sign in", + "viewGitHub": "View on GitHub", + "viewTangled": "View on Tangled" + }, + "footer": { + "privacy": "Privacy", + "terms": "Terms", + "contact": "Contact" + }, + "landing": { + "hero": { + "headPart1": "Write on the", + "headMargins": "margins", + "headPart2": "of the", + "headInternet": "internet", + "headEnd": ".", + "lede": "Margin is an open annotation layer for the web. Highlight, leave notes, and bookmark any page; everything stored on your own AT Protocol identity, not in someone else's database." + }, + "demo": { + "eyebrow": "How it feels", + "card1Caption": "Highlight, in your color of choice. Underlines render inline via the CSS Highlights API; nothing rewrites the page's DOM.", + "card1Sample": "Margin makes the web's ephemeral readers leave a trace.", + "card1Mark": "ephemeral readers", + "card2Caption": "Pin a note to the selection. It anchors to the exact text, not a brittle character offset, so it survives layout changes.", + "card2Sample": "A note in the margin is a conversation with the future you.", + "card2Mark": "conversation with the future you", + "card3Caption": "Bookmark with a keystroke or a right-click. Synced to your AT Protocol repository alongside everything else.", + "card3Url": "essays.example.com/marginalia", + "card3Saved": "Saved" + }, + "capabilities": { + "heading": "What's in it", + "subheading": "The full set of moves Margin gives you on any page." + }, + "protocol": { + "heading": "Built on a protocol, not a platform", + "lede": "Margin runs on the AT Protocol, the same network that powers Bluesky. Your annotations live in your Personal Data Server as public records, and any app that speaks the lexicon can read or build on them.", + "viewLexicon": "View the lexicon" + }, + "install": { + "lede": "Install for", + "or": "or get the" + }, + "closer": { + "line": "The web reads better with notes in the margin.", + "signIn": "Sign in with your handle", + "open": "Open Margin" + } } + } } diff --git a/web/public/locales/es/translation.json b/web/public/locales/es/translation.json index 62081cb..ff0305b 100644 --- a/web/public/locales/es/translation.json +++ b/web/public/locales/es/translation.json @@ -1,776 +1,776 @@ { - "appTitle": "Margin", - "nav": { - "settings": "Ajustes", - "annotations": "Anotaciones", - "collections": "Colecciones", - "activity": "Actividad", - "signIn": "Iniciar sesión", - "logOut": "Cerrar sesión", - "themeLight": "Claro", - "themeDark": "Oscuro", - "themeSystem": "Sistema", - "bookmarks": "Marcadores", - "new": "Nuevo", - "feed": "Feed", - "highlights": "Resaltados", - "discover": "" - }, - "pageTitles": { - "home": "Inicio — Margin", - "bookmarks": "Marcadores — Margin", - "annotations": "Anotaciones — Margin", - "search": "Buscar — Margin", - "notifications": "Notificaciones — Margin", - "new": "Nueva anotación — Margin", - "settings": "Configuración — Margin", - "collections": "Colecciones — Margin", - "admin": "Admin — Margin", - "highlights": "Resaltados — Margin", - "discover": "" - }, - "sidebar": { - "getExtension": "Obtén la extensión", - "extensionTagline": "Resalta, anota y guarda marcadores desde cualquier página.", - "downloadForFirefox": "Descargar para Firefox", - "downloadForEdge": "Descargar para Edge", - "downloadForChrome": "Descargar para Chrome", - "trending": "Tendencias", - "nothingTrending": "No hay nada en tendencia ahora mismo.", - "searchPlaceholder": "Buscar personas, etiquetas, URLs…", - "copyright": "© 2026 Padding Labs LLC", - "postCount_one": "", - "postCount_many": "", - "postCount_other": "" - }, - "mobileNav": { - "iosShortcut": "Atajo de iOS" - }, - "feed": { - "welcome": "Bienvenido a Margin", - "welcomeTagline": "Un lugar tranquilo para anotar, resaltar y guardar lo que lees en la web.", - "getStarted": "Empezar", - "learnMore": "Más información", - "tabs": { - "recent": "Recientes", - "popular": "Popular", - "margin": "Margin", - "semble": "Semble", - "shelved": "" - }, - "filters": { - "all": "Todo", - "annotations": "Anotaciones", - "highlights": "Resaltados", - "bookmarks": "Marcadores" - }, - "itemsWithTag": "Elementos con la etiqueta:", - "clearFilter": "Limpiar filtro", - "everyone": "Todos", - "mine": "Mío", - "defaultEmptyMessage": "Todavía no hay nada aquí — las anotaciones tuyas y de las personas a las que sigues aparecerán aquí.", - "nothingHereYet": "Aún no hay nada aquí", - "loading": "Cargando…" - }, - "discover": { - "tabs": { - "new": "Nuevo", - "popular": "Popular", - "forYou": "Para ti" - }, - "comingSoon": "Próximamente", - "forYouNotAvailable": "Las recomendaciones personalizadas aún no están disponibles en este servidor.", - "noDocumentsYet": "Aún no se han descubierto documentos. ¡Vuelve pronto!", - "startAnnotating": "Empieza a anotar y resaltar para recibir recomendaciones personalizadas.", - "loadMore": "Cargar más" - }, - "search": { - "placeholder": "Buscar anotaciones, resaltados, marcadores…", - "noResults": "No se encontraron resultados", - "noResultsMessage": "No se encontró nada que coincida con \"{{query}}\". Prueba con otras palabras clave.", - "emptyTitle": "Busca en tu biblioteca", - "emptyMessage": "Busca anotaciones, resaltados y marcadores por palabra clave, URL o etiqueta.", - "filters": { - "all": "Todo", - "annotations": "Anotaciones", - "bookmarks": "Marcadores", - "mine": "Mío", - "highlights": "Resaltados" - }, - "resultCount": "{{count}}{{hasMore}} resultados para \"{{query}}\"", - "loadMore": "Cargar más" - }, - "notifications": { - "title": "Actividad", - "noActivity": "Aún no hay actividad", - "noActivityMessage": "Las interacciones con tu contenido aparecerán aquí.", - "likedAnnotation": "le gustó tu anotación", - "likedHighlight": "le dio me gusta a tu resaltado", - "likedBookmark": "le dio me gusta a tu marcador", - "likedReply": "le gustó tu respuesta", - "likedPost": "le dio me gusta a tu publicación", - "repliedToReply": "respondió a tu respuesta", - "repliedToAnnotation": "respondió a tu anotación", - "mentionedInAnnotation": "te mencionó en una anotación", - "followedYou": "te empezó a seguir", - "highlightedPage": "resaltó tu página", - "inReplyTo": "en respuesta a", - "aReply": "una respuesta", - "anAnnotation": "una anotación" - }, - "collections": { - "title": "Colecciones", - "subtitle": "Organiza tus anotaciones y resaltados", - "none": "Aún no hay colecciones", - "noneMessage": "Crea una colección para organizar tus resaltados y anotaciones.", - "createButton": "Crear colección", - "newTitle": "Nueva colección", - "editTitle": "Editar colección", - "namePlaceholder": "Mi colección", - "namePlaceholderEdit": "Nombre de la colección", - "nameLabel": "Nombre", - "iconLabel": "Icono", - "iconsTab": "Iconos", - "emojisTab": "Emojis", - "selectedIcon": "Seleccionado:", - "descriptionLabel": "Descripción (opcional)", - "descriptionPlaceholder": "¿Para qué es esta colección?", - "descriptionPlaceholderEdit": "¿De qué trata esta colección?", - "cancel": "Cancelar", - "create": "Crear colección", - "creating": "Creando…", - "save": "Guardar cambios", - "saving": "Guardando…", - "deleteConfirm": "¿Eliminar esta colección?", - "failedUpdate": "Error al actualizar la colección", - "errorUpdating": "Ocurrió un error al actualizar", - "itemCount_one": "{{count}} elemento", - "itemCount_many": "", - "itemCount_other": "{{count}} elementos" - }, - "collectionDetail": { - "by": "por", - "edit": "Editar colección", - "delete": "Eliminar colección", - "removeFromCollection": "Quitar de la colección", - "viewInSemble": "Ver en Semble", - "empty": "La colección está vacía", - "notFound": "Colección no encontrada", - "failedToLoad": "Error al cargar la colección", - "deleteConfirm": "¿Eliminar esta colección?", - "removeConfirm": "¿Eliminar de la colección?", - "backLink": "Colecciones" - }, - "profile": { - "notFound": "Usuario no encontrado", - "notFoundMessage": "Este perfil no existe o no se pudo cargar.", - "edit": "Editar", - "viewInBluesky": "Ver perfil en Bluesky", - "unblock": "Desbloquear a {{handle}}", - "block": "Bloquear a {{handle}}", - "unmute": "Desactivar silencio de {{handle}}", - "mute": "Silenciar a {{handle}}", - "report": "Reportar", - "accountLabeled": "Cuenta etiquetada: {{description}}", - "labelApplied": "Esta etiqueta fue aplicada por un servicio de moderación al que estás suscrito.", - "show": "Mostrar", - "hide": "Ocultar", - "blockedBanner": "Has bloqueado a {{handle}}", - "blockedMessage": "Su contenido está oculto de tus feeds.", - "mutedBanner": "Has silenciado a {{handle}}", - "mutedMessage": "Su contenido está oculto de tus feeds.", - "blockedByBanner": "{{handle}} te ha bloqueado. No puedes interactuar con su contenido.", - "unblock_action": "Desbloquear", - "unmute_action": "Activar sonido", - "emptyCollectionsOwn": "Aún no has creado ninguna colección.", - "emptyCollectionsOther": "Sin colecciones", - "itemCount_one": "{{count}} elemento", - "itemCount_many": "", - "itemCount_other": "{{count}} elementos", - "emptyTabOwn": "Tus {{tab}} aparecerán aquí.", - "emptyTabOther": "Aún no hay nada que ver aquí." - }, - "login": { - "signInWith": "Inicia sesión con tu", - "handleSuffix": "handle", - "handlePlaceholder": "handle.margin.cafe", - "connecting": "Conectando…", - "continue": "Continuar", - "createAccount": "Crear cuenta nueva", - "termsPrefix": "Al iniciar sesión, aceptas nuestros", - "termsLink": "Términos de servicio", - "termsAnd": "y", - "privacyLink": "Política de privacidad", - "bannedMessage": "", - "bannedSignOut": "", - "bannedAppeal": "", - "bannedTitle": "", - "or": "" - }, - "signUp": { - "title": "Crea tu cuenta", - "subtitle": "Margin se adhiere al", - "atProtocol": "AT Protocol", - "subtitleSuffix": ". Elige un proveedor para alojar tu cuenta.", - "customPdsTitle": "Usa un PDS personalizado", - "customPdsSubtitle": "Introduce la dirección del PDS que aloja tu cuenta.", - "pdsAddressLabel": "Dirección del PDS", - "pdsAddressPlaceholder": "pds.example.com", - "connecting": "Conectando…", - "back": "Volver", - "continue": "Continuar", - "invite": "Invitar", - "providerError": "No se pudo conectar con este proveedor. Por favor, inténtalo de nuevo.", - "customPdsError": "No se pudo conectar con ese PDS. Revisa la dirección.", - "providers": { - "margin": { - "description": "La forma más fácil de empezar", - "name": "Margin" - }, - "bluesky": { - "name": "Bluesky", - "description": "La comunidad más grande y popular" - }, - "blacksky": { - "name": "Blacksky", - "description": "Para la cultura — un espacio seguro para usuarios y aliados" - }, - "eurosky": { - "name": "Eurosky", - "description": "Eurosky es tu hogar europeo en la Atmosphere" - }, - "selfhostedSocial": { - "name": "selfhosted.social", - "description": "Un hogar para creadores, entusiastas y curiosos" - }, - "northsky": { - "name": "Northsky", - "description": "Una cooperativa canadiense propiedad de los trabajadores" - }, - "tophhie": { - "name": "Tophhie", - "description": "Una comunidad acogedora y amable" - }, - "customPds": { - "name": "Usa un PDS personalizado", - "description": "¿Ya tienes un PDS? Introduce su dirección." - } - }, - "moreOptions": "", - "atmosphereNote": "" - }, - "composer": { - "newHighlight": "Nuevo resaltado", - "newAnnotation": "Nueva anotación", - "newNote": "Nueva nota", - "saveHighlight": "Guardar resaltado", - "postAnnotation": "Publicar anotación", - "postNote": "Publicar nota", - "highlightHint": "Guardando un pasaje sin comentario. Añade texto debajo para convertirlo en una anotación.", - "addQuote": "+ Añadir una cita de la página", - "quotePlaceholder": "Pega o escribe el texto que estás anotando…", - "removeQuote": "Eliminar cita", - "thoughtsPlaceholder": "Añade tus reflexiones sobre este pasaje…", - "mindPlaceholder": "¿Qué tienes en mente?", - "tagsPlaceholder": "Añadir etiquetas…", - "contentWarning": "Advertencia de contenido", - "contentWarningCount": "Advertencia de contenido ({{count}})", - "cancel": "Cancelar", - "failedToPost": "Error al publicar", - "labels": { - "sexual": "Sexual", - "nudity": "Desnudez", - "violence": "Violencia", - "gore": "Gore", - "spam": "Spam", - "misleading": "Engañoso" - } - }, - "card": { - "addedTo": "Añadido a", - "addedToLower": "añadido a", - "and": "y", - "communityBookmark": "Marcador de la comunidad", - "lichenBookmark": "Marcador de Lichen", - "openInSemble": "Abrir en Semble", - "deleteConfirm": "¿Eliminar este elemento?", - "hideContent": "Ocultar contenido", - "show": "Mostrar", - "edited": "(editado)", - "annotate": "Anotar", - "untitledBookmark": "Marcador sin título", - "addNotePlaceholder": "Añade tu nota para convertir este resaltado en una anotación…", - "addToCollectionTitle": "Añadir a la colección", - "annotateTitle": "Anotar este resaltado", - "editTitle": "Editar", - "deleteTitle": "Eliminar", - "report": "Reportar", - "muteUser": "Silenciar a {{handle}}", - "blockUser": "Bloquear a {{handle}}", - "convertToAnnotation": "Convertir en anotación", - "justNow": "hace un momento", - "labelDescriptions": { - "sexual": "Contenido sexual", - "nudity": "Desnudez", - "violence": "Violencia", - "gore": "Contenido gráfico", - "spam": "Spam", - "misleading": "Engañoso" - } - }, - "profileHoverCard": { - "viewProfile": "Ver perfil", - "notFound": "Perfil no encontrado" - }, - "replyList": { - "noReplies": "Aún no hay respuestas" - }, - "shareMenu": { - "sembleIntegration": "Integración con Semble", - "openOnSemble": "Abrir en Semble", - "copySembleLink": "Copiar enlace de Semble", - "copyLink": "Copiar enlace", - "shareViaApp": "Compartir vía app", - "copyUniversalLink": "Copiar enlace universal", - "moreOptions": "Más opciones…", - "copied": "¡Copiado!" - }, - "addToCollection": { - "title": "Añadir a la colección", - "loading": "Cargando colecciones…", - "collectionNameLabel": "Nombre de la colección", - "namePlaceholder": "Mi colección", - "descriptionLabel": "Descripción (opcional)", - "descriptionPlaceholder": "¿De qué trata esta colección?", - "iconLabel": "Icono", - "iconsTab": "Iconos", - "emojisTab": "Emojis", - "selected": "Seleccionado:", - "back": "Volver", - "create": "Crear", - "creating": "Creando…", - "newCollectionButton": "Nueva colección", - "createNewDescription": "Crear una nueva colección", - "none": "Aún no hay colecciones", - "done": "Hecho", - "failedLoad": "Error al cargar las colecciones", - "failedAdd": "Error al añadir a la colección", - "failedCreate": "Error al crear la colección" - }, - "editItem": { - "editAnnotation": "Editar anotación", - "editHighlight": "Editar resaltado", - "editBookmark": "Editar marcador", - "textLabel": "Texto", - "textPlaceholder": "Escribe tu anotación…", - "colorLabel": "Color", - "tagsLabel": "Etiquetas", - "tagPlaceholder": "Añadir una etiqueta…", - "contentWarning": "Advertencia de contenido", - "cancel": "Cancelar", - "save": "Guardar", - "saving": "Guardando…", - "failedSave": "Error al guardar los cambios. Por favor, inténtalo de nuevo.", - "titleLabel": "Título", - "titlePlaceholder": "Título del marcador", - "descriptionLabel": "Descripción", - "descriptionPlaceholder": "Descripción opcional…" + "appTitle": "Margin", + "nav": { + "settings": "Ajustes", + "annotations": "Anotaciones", + "collections": "Colecciones", + "activity": "Actividad", + "signIn": "Iniciar sesión", + "logOut": "Cerrar sesión", + "themeLight": "Claro", + "themeDark": "Oscuro", + "themeSystem": "Sistema", + "bookmarks": "Marcadores", + "new": "Nuevo", + "feed": "Feed", + "highlights": "Resaltados", + "discover": "" + }, + "pageTitles": { + "home": "Inicio — Margin", + "bookmarks": "Marcadores — Margin", + "annotations": "Anotaciones — Margin", + "search": "Buscar — Margin", + "notifications": "Notificaciones — Margin", + "new": "Nueva anotación — Margin", + "settings": "Configuración — Margin", + "collections": "Colecciones — Margin", + "admin": "Admin — Margin", + "highlights": "Resaltados — Margin", + "discover": "" + }, + "sidebar": { + "getExtension": "Obtén la extensión", + "extensionTagline": "Resalta, anota y guarda marcadores desde cualquier página.", + "downloadForFirefox": "Descargar para Firefox", + "downloadForEdge": "Descargar para Edge", + "downloadForChrome": "Descargar para Chrome", + "trending": "Tendencias", + "nothingTrending": "No hay nada en tendencia ahora mismo.", + "searchPlaceholder": "Buscar personas, etiquetas, URLs…", + "copyright": "© 2026 Padding Labs LLC", + "postCount_one": "", + "postCount_many": "", + "postCount_other": "" + }, + "mobileNav": { + "iosShortcut": "Atajo de iOS" + }, + "feed": { + "welcome": "Bienvenido a Margin", + "welcomeTagline": "Un lugar tranquilo para anotar, resaltar y guardar lo que lees en la web.", + "getStarted": "Empezar", + "learnMore": "Más información", + "tabs": { + "recent": "Recientes", + "popular": "Popular", + "margin": "Margin", + "semble": "Semble", + "shelved": "" + }, + "filters": { + "all": "Todo", + "annotations": "Anotaciones", + "highlights": "Resaltados", + "bookmarks": "Marcadores" + }, + "itemsWithTag": "Elementos con la etiqueta:", + "clearFilter": "Limpiar filtro", + "everyone": "Todos", + "mine": "Mío", + "defaultEmptyMessage": "Todavía no hay nada aquí — las anotaciones tuyas y de las personas a las que sigues aparecerán aquí.", + "nothingHereYet": "Aún no hay nada aquí", + "loading": "Cargando…" + }, + "discover": { + "tabs": { + "new": "Nuevo", + "popular": "Popular", + "forYou": "Para ti" + }, + "comingSoon": "Próximamente", + "forYouNotAvailable": "Las recomendaciones personalizadas aún no están disponibles en este servidor.", + "noDocumentsYet": "Aún no se han descubierto documentos. ¡Vuelve pronto!", + "startAnnotating": "Empieza a anotar y resaltar para recibir recomendaciones personalizadas.", + "loadMore": "Cargar más" + }, + "search": { + "placeholder": "Buscar anotaciones, resaltados, marcadores…", + "noResults": "No se encontraron resultados", + "noResultsMessage": "No se encontró nada que coincida con \"{{query}}\". Prueba con otras palabras clave.", + "emptyTitle": "Busca en tu biblioteca", + "emptyMessage": "Busca anotaciones, resaltados y marcadores por palabra clave, URL o etiqueta.", + "filters": { + "all": "Todo", + "annotations": "Anotaciones", + "bookmarks": "Marcadores", + "mine": "Mío", + "highlights": "Resaltados" + }, + "resultCount": "{{count}}{{hasMore}} resultados para \"{{query}}\"", + "loadMore": "Cargar más" + }, + "notifications": { + "title": "Actividad", + "noActivity": "Aún no hay actividad", + "noActivityMessage": "Las interacciones con tu contenido aparecerán aquí.", + "likedAnnotation": "le gustó tu anotación", + "likedHighlight": "le dio me gusta a tu resaltado", + "likedBookmark": "le dio me gusta a tu marcador", + "likedReply": "le gustó tu respuesta", + "likedPost": "le dio me gusta a tu publicación", + "repliedToReply": "respondió a tu respuesta", + "repliedToAnnotation": "respondió a tu anotación", + "mentionedInAnnotation": "te mencionó en una anotación", + "followedYou": "te empezó a seguir", + "highlightedPage": "resaltó tu página", + "inReplyTo": "en respuesta a", + "aReply": "una respuesta", + "anAnnotation": "una anotación" + }, + "collections": { + "title": "Colecciones", + "subtitle": "Organiza tus anotaciones y resaltados", + "none": "Aún no hay colecciones", + "noneMessage": "Crea una colección para organizar tus resaltados y anotaciones.", + "createButton": "Crear colección", + "newTitle": "Nueva colección", + "editTitle": "Editar colección", + "namePlaceholder": "Mi colección", + "namePlaceholderEdit": "Nombre de la colección", + "nameLabel": "Nombre", + "iconLabel": "Icono", + "iconsTab": "Iconos", + "emojisTab": "Emojis", + "selectedIcon": "Seleccionado:", + "descriptionLabel": "Descripción (opcional)", + "descriptionPlaceholder": "¿Para qué es esta colección?", + "descriptionPlaceholderEdit": "¿De qué trata esta colección?", + "cancel": "Cancelar", + "create": "Crear colección", + "creating": "Creando…", + "save": "Guardar cambios", + "saving": "Guardando…", + "deleteConfirm": "¿Eliminar esta colección?", + "failedUpdate": "Error al actualizar la colección", + "errorUpdating": "Ocurrió un error al actualizar", + "itemCount_one": "{{count}} elemento", + "itemCount_many": "", + "itemCount_other": "{{count}} elementos" + }, + "collectionDetail": { + "by": "por", + "edit": "Editar colección", + "delete": "Eliminar colección", + "removeFromCollection": "Quitar de la colección", + "viewInSemble": "Ver en Semble", + "empty": "La colección está vacía", + "notFound": "Colección no encontrada", + "failedToLoad": "Error al cargar la colección", + "deleteConfirm": "¿Eliminar esta colección?", + "removeConfirm": "¿Eliminar de la colección?", + "backLink": "Colecciones" + }, + "profile": { + "notFound": "Usuario no encontrado", + "notFoundMessage": "Este perfil no existe o no se pudo cargar.", + "edit": "Editar", + "viewInBluesky": "Ver perfil en Bluesky", + "unblock": "Desbloquear a {{handle}}", + "block": "Bloquear a {{handle}}", + "unmute": "Desactivar silencio de {{handle}}", + "mute": "Silenciar a {{handle}}", + "report": "Reportar", + "accountLabeled": "Cuenta etiquetada: {{description}}", + "labelApplied": "Esta etiqueta fue aplicada por un servicio de moderación al que estás suscrito.", + "show": "Mostrar", + "hide": "Ocultar", + "blockedBanner": "Has bloqueado a {{handle}}", + "blockedMessage": "Su contenido está oculto de tus feeds.", + "mutedBanner": "Has silenciado a {{handle}}", + "mutedMessage": "Su contenido está oculto de tus feeds.", + "blockedByBanner": "{{handle}} te ha bloqueado. No puedes interactuar con su contenido.", + "unblock_action": "Desbloquear", + "unmute_action": "Activar sonido", + "emptyCollectionsOwn": "Aún no has creado ninguna colección.", + "emptyCollectionsOther": "Sin colecciones", + "itemCount_one": "{{count}} elemento", + "itemCount_many": "", + "itemCount_other": "{{count}} elementos", + "emptyTabOwn": "Tus {{tab}} aparecerán aquí.", + "emptyTabOther": "Aún no hay nada que ver aquí." + }, + "login": { + "signInWith": "Inicia sesión con tu", + "handleSuffix": "handle", + "handlePlaceholder": "handle.margin.cafe", + "connecting": "Conectando…", + "continue": "Continuar", + "createAccount": "Crear cuenta nueva", + "termsPrefix": "Al iniciar sesión, aceptas nuestros", + "termsLink": "Términos de servicio", + "termsAnd": "y", + "privacyLink": "Política de privacidad", + "bannedMessage": "", + "bannedSignOut": "", + "bannedAppeal": "", + "bannedTitle": "", + "or": "" + }, + "signUp": { + "title": "Crea tu cuenta", + "subtitle": "Margin se adhiere al", + "atProtocol": "AT Protocol", + "subtitleSuffix": ". Elige un proveedor para alojar tu cuenta.", + "customPdsTitle": "Usa un PDS personalizado", + "customPdsSubtitle": "Introduce la dirección del PDS que aloja tu cuenta.", + "pdsAddressLabel": "Dirección del PDS", + "pdsAddressPlaceholder": "pds.example.com", + "connecting": "Conectando…", + "back": "Volver", + "continue": "Continuar", + "invite": "Invitar", + "providerError": "No se pudo conectar con este proveedor. Por favor, inténtalo de nuevo.", + "customPdsError": "No se pudo conectar con ese PDS. Revisa la dirección.", + "providers": { + "margin": { + "description": "La forma más fácil de empezar", + "name": "Margin" + }, + "bluesky": { + "name": "Bluesky", + "description": "La comunidad más grande y popular" + }, + "blacksky": { + "name": "Blacksky", + "description": "Para la cultura — un espacio seguro para usuarios y aliados" + }, + "eurosky": { + "name": "Eurosky", + "description": "Eurosky es tu hogar europeo en la Atmosphere" + }, + "selfhostedSocial": { + "name": "selfhosted.social", + "description": "Un hogar para creadores, entusiastas y curiosos" + }, + "northsky": { + "name": "Northsky", + "description": "Una cooperativa canadiense propiedad de los trabajadores" + }, + "tophhie": { + "name": "Tophhie", + "description": "Una comunidad acogedora y amable" + }, + "customPds": { + "name": "Usa un PDS personalizado", + "description": "¿Ya tienes un PDS? Introduce su dirección." + } + }, + "moreOptions": "", + "atmosphereNote": "" + }, + "composer": { + "newHighlight": "Nuevo resaltado", + "newAnnotation": "Nueva anotación", + "newNote": "Nueva nota", + "saveHighlight": "Guardar resaltado", + "postAnnotation": "Publicar anotación", + "postNote": "Publicar nota", + "highlightHint": "Guardando un pasaje sin comentario. Añade texto debajo para convertirlo en una anotación.", + "addQuote": "+ Añadir una cita de la página", + "quotePlaceholder": "Pega o escribe el texto que estás anotando…", + "removeQuote": "Eliminar cita", + "thoughtsPlaceholder": "Añade tus reflexiones sobre este pasaje…", + "mindPlaceholder": "¿Qué tienes en mente?", + "tagsPlaceholder": "Añadir etiquetas…", + "contentWarning": "Advertencia de contenido", + "contentWarningCount": "Advertencia de contenido ({{count}})", + "cancel": "Cancelar", + "failedToPost": "Error al publicar", + "labels": { + "sexual": "Sexual", + "nudity": "Desnudez", + "violence": "Violencia", + "gore": "Gore", + "spam": "Spam", + "misleading": "Engañoso" + } + }, + "card": { + "addedTo": "Añadido a", + "addedToLower": "añadido a", + "and": "y", + "communityBookmark": "Marcador de la comunidad", + "lichenBookmark": "Marcador de Lichen", + "openInSemble": "Abrir en Semble", + "deleteConfirm": "¿Eliminar este elemento?", + "hideContent": "Ocultar contenido", + "show": "Mostrar", + "edited": "(editado)", + "annotate": "Anotar", + "untitledBookmark": "Marcador sin título", + "addNotePlaceholder": "Añade tu nota para convertir este resaltado en una anotación…", + "addToCollectionTitle": "Añadir a la colección", + "annotateTitle": "Anotar este resaltado", + "editTitle": "Editar", + "deleteTitle": "Eliminar", + "report": "Reportar", + "muteUser": "Silenciar a {{handle}}", + "blockUser": "Bloquear a {{handle}}", + "convertToAnnotation": "Convertir en anotación", + "justNow": "hace un momento", + "labelDescriptions": { + "sexual": "Contenido sexual", + "nudity": "Desnudez", + "violence": "Violencia", + "gore": "Contenido gráfico", + "spam": "Spam", + "misleading": "Engañoso" + } + }, + "profileHoverCard": { + "viewProfile": "Ver perfil", + "notFound": "Perfil no encontrado" + }, + "replyList": { + "noReplies": "Aún no hay respuestas" + }, + "shareMenu": { + "sembleIntegration": "Integración con Semble", + "openOnSemble": "Abrir en Semble", + "copySembleLink": "Copiar enlace de Semble", + "copyLink": "Copiar enlace", + "shareViaApp": "Compartir vía app", + "copyUniversalLink": "Copiar enlace universal", + "moreOptions": "Más opciones…", + "copied": "¡Copiado!" + }, + "addToCollection": { + "title": "Añadir a la colección", + "loading": "Cargando colecciones…", + "collectionNameLabel": "Nombre de la colección", + "namePlaceholder": "Mi colección", + "descriptionLabel": "Descripción (opcional)", + "descriptionPlaceholder": "¿De qué trata esta colección?", + "iconLabel": "Icono", + "iconsTab": "Iconos", + "emojisTab": "Emojis", + "selected": "Seleccionado:", + "back": "Volver", + "create": "Crear", + "creating": "Creando…", + "newCollectionButton": "Nueva colección", + "createNewDescription": "Crear una nueva colección", + "none": "Aún no hay colecciones", + "done": "Hecho", + "failedLoad": "Error al cargar las colecciones", + "failedAdd": "Error al añadir a la colección", + "failedCreate": "Error al crear la colección" + }, + "editItem": { + "editAnnotation": "Editar anotación", + "editHighlight": "Editar resaltado", + "editBookmark": "Editar marcador", + "textLabel": "Texto", + "textPlaceholder": "Escribe tu anotación…", + "colorLabel": "Color", + "tagsLabel": "Etiquetas", + "tagPlaceholder": "Añadir una etiqueta…", + "contentWarning": "Advertencia de contenido", + "cancel": "Cancelar", + "save": "Guardar", + "saving": "Guardando…", + "failedSave": "Error al guardar los cambios. Por favor, inténtalo de nuevo.", + "titleLabel": "Título", + "titlePlaceholder": "Título del marcador", + "descriptionLabel": "Descripción", + "descriptionPlaceholder": "Descripción opcional…" + }, + "editCollection": { + "title": "Editar colección", + "nameLabel": "Nombre de la colección", + "namePlaceholder": "Mi colección", + "descriptionLabel": "Descripción (opcional)", + "descriptionPlaceholder": "¿De qué trata esta colección?", + "iconLabel": "Icono", + "iconsTab": "Iconos", + "emojisTab": "Emojis", + "selected": "Seleccionado:", + "cancel": "Cancelar", + "save": "Guardar cambios", + "saving": "", + "errorUpdating": "", + "failedUpdate": "" + }, + "annotationDetail": { + "reply": "", + "mayBeDeleted": "", + "replyPlaceholder": "", + "back": "", + "signInToReply": "", + "failedReply": "", + "notFound": "", + "failedDelete": "", + "replyingTo": "", + "logIn": "", + "failedResolve": "", + "backToFeed": "", + "replies": "", + "deleteReplyConfirm": "" + }, + "iosShortcut": { + "step6Title": "", + "step3Title": "", + "step4Title": "", + "step1Link": "", + "step2Title": "", + "step6Description": "", + "step2Description": "", + "gotIt": "", + "title": "", + "howTo": "", + "step5Description": "", + "step4Description": "", + "step1Title": "", + "step3Description": "", + "step5Title": "" + }, + "settings": { + "apiKeys": { + "keyNamePlaceholder": "", + "created": "", + "copyNow": "", + "description": "", + "empty": "", + "revokeConfirm": "", + "generate": "" + }, + "logout": "", + "contentFiltering": { + "noLabelers": "", + "add": "", + "remove": "", + "hide": "", + "description": "", + "labelerDidPlaceholder": "", + "ignore": "", + "labelVisibility": "", + "labelVisibilityDesc": "", + "warn": "", + "subscribedLabelers": "" + }, + "moderation": { + "noBlocked": "", + "mutedAccounts": "", + "unblock": "", + "description": "", + "blockedAccounts": "", + "noMuted": "", + "unmute": "" }, - "editCollection": { - "title": "Editar colección", - "nameLabel": "Nombre de la colección", - "namePlaceholder": "Mi colección", - "descriptionLabel": "Descripción (opcional)", - "descriptionPlaceholder": "¿De qué trata esta colección?", - "iconLabel": "Icono", - "iconsTab": "Iconos", - "emojisTab": "Emojis", - "selected": "Seleccionado:", - "cancel": "Cancelar", - "save": "Guardar cambios", - "saving": "", - "errorUpdating": "", - "failedUpdate": "" + "iosShortcut": { + "description": "", + "setupButton": "" + }, + "language": { + "label": "", + "description": "" + }, + "sections": { + "appearance": "", + "language": "", + "contentFiltering": "", + "iosShortcut": "", + "moderation": "", + "batchImport": "", + "profile": "", + "apiKeys": "" + }, + "appearance": { + "communityBookmarksDesc": "", + "communityBookmarks": "", + "disableExternalLinkWarningDesc": "", + "disableExternalLinkWarning": "" + }, + "batchImport": { + "description": "" + }, + "title": "" + }, + "urlPage": { + "tabs": { + "all": "", + "highlights": "", + "annotations": "", + "collections": "", + "bookmarks": "" + }, + "noHighlightsYet": "", + "noAnnotationsMessage": "", + "loading": "", + "loadingAnnotations": "", + "copied": "", + "noHighlightsMessage": "", + "loadMore": "", + "blankCanvasMessage": "", + "blankCanvas": "", + "noAnnotationsYet": "", + "urlPlaceholder": "", + "view": "", + "contributor_one": "", + "contributor_many": "", + "contributor_other": "", + "myAnnotations": "", + "description": "", + "share": "", + "title": "", + "failedLoadMore": "" + }, + "about": { + "protocol": { + "point2": "", + "point3": "", + "descriptionPre": "", + "title": "", + "point1": "", + "point0": "", + "badge": "", + "descriptionPost": "" }, - "annotationDetail": { - "reply": "", - "mayBeDeleted": "", - "replyPlaceholder": "", - "back": "", - "signInToReply": "", - "failedReply": "", - "notFound": "", - "failedDelete": "", - "replyingTo": "", - "logIn": "", - "failedResolve": "", - "backToFeed": "", - "replies": "", - "deleteReplyConfirm": "" + "nav": { + "install": "", + "getExtension": "" }, - "iosShortcut": { - "step6Title": "", - "step3Title": "", - "step4Title": "", - "step1Link": "", - "step2Title": "", - "step6Description": "", - "step2Description": "", - "gotIt": "", + "features": { + "title": "", + "annotations": { "title": "", - "howTo": "", - "step5Description": "", - "step4Description": "", - "step1Title": "", - "step3Description": "", - "step5Title": "" - }, - "settings": { - "apiKeys": { - "keyNamePlaceholder": "", - "created": "", - "copyNow": "", - "description": "", - "empty": "", - "revokeConfirm": "", - "generate": "" - }, - "logout": "", - "contentFiltering": { - "noLabelers": "", - "add": "", - "remove": "", - "hide": "", - "description": "", - "labelerDidPlaceholder": "", - "ignore": "", - "labelVisibility": "", - "labelVisibilityDesc": "", - "warn": "", - "subscribedLabelers": "" - }, - "moderation": { - "noBlocked": "", - "mutedAccounts": "", - "unblock": "", - "description": "", - "blockedAccounts": "", - "noMuted": "", - "unmute": "" - }, - "iosShortcut": { - "description": "", - "setupButton": "" - }, - "language": { - "label": "", - "description": "" - }, - "sections": { - "appearance": "", - "language": "", - "contentFiltering": "", - "iosShortcut": "", - "moderation": "", - "batchImport": "", - "profile": "", - "apiKeys": "" - }, - "appearance": { - "communityBookmarksDesc": "", - "communityBookmarks": "", - "disableExternalLinkWarningDesc": "", - "disableExternalLinkWarning": "" - }, - "batchImport": { - "description": "" - }, + "description": "" + }, + "collections": { + "title": "", + "description": "" + }, + "highlights": { + "description": "", "title": "" - }, - "urlPage": { - "tabs": { - "all": "", - "highlights": "", - "annotations": "", - "collections": "", - "bookmarks": "" - }, - "noHighlightsYet": "", - "noAnnotationsMessage": "", - "loading": "", - "loadingAnnotations": "", - "copied": "", - "noHighlightsMessage": "", - "loadMore": "", - "blankCanvasMessage": "", - "blankCanvas": "", - "noAnnotationsYet": "", - "urlPlaceholder": "", - "view": "", - "contributor_one": "", - "contributor_many": "", - "contributor_other": "", - "myAnnotations": "", + }, + "socialDiscovery": { "description": "", - "share": "", - "title": "", - "failedLoadMore": "" - }, - "about": { - "protocol": { - "point2": "", - "point3": "", - "descriptionPre": "", - "title": "", - "point1": "", - "point0": "", - "badge": "", - "descriptionPost": "" - }, - "nav": { - "install": "", - "getExtension": "" - }, - "features": { - "title": "", - "annotations": { - "title": "", - "description": "" - }, - "collections": { - "title": "", - "description": "" - }, - "highlights": { - "description": "", - "title": "" - }, - "socialDiscovery": { - "description": "", - "title": "" - }, - "tagsSearch": { - "description": "", - "title": "" - }, - "bookmarks": { - "description": "", - "title": "" - }, - "subtitle": "" - }, - "cta": { - "viewTangled": "", - "signIn": "", - "title": "", - "description": "", - "viewGitHub": "" + "title": "" + }, + "tagsSearch": { + "description": "", + "title": "" + }, + "bookmarks": { + "description": "", + "title": "" + }, + "subtitle": "" + }, + "cta": { + "viewTangled": "", + "signIn": "", + "title": "", + "description": "", + "viewGitHub": "" + }, + "hero": { + "descriptionPost": "", + "openApp": "", + "descriptionPre": "", + "headline": "", + "installFor": "", + "openSource": "", + "headlineAccent": "", + "getStarted": "", + "atProtocol": "" + }, + "extension": { + "features": { + "sidePanel": { + "description": "", + "title": "" }, - "hero": { - "descriptionPost": "", - "openApp": "", - "descriptionPre": "", - "headline": "", - "installFor": "", - "openSource": "", - "headlineAccent": "", - "getStarted": "", - "atProtocol": "" + "keyboard": { + "title": "", + "description": "" }, - "extension": { - "features": { - "sidePanel": { - "description": "", - "title": "" - }, - "keyboard": { - "title": "", - "description": "" - }, - "contextMenu": { - "title": "", - "description": "" - }, - "inlineOverlay": { - "description": "", - "title": "" - } - }, - "description": "", - "title": "", - "titleLine2": "", - "iosShortcut": "", - "badge": "" + "contextMenu": { + "title": "", + "description": "" }, - "footer": { - "contact": "", - "terms": "", - "privacy": "" + "inlineOverlay": { + "description": "", + "title": "" } - }, - "adminModeration": { - "reasons": { - "spam": "", - "rude": "", - "misleading": "", - "other": "", - "violation": "", - "sexual": "" - }, - "actions": { - "applyWarningDesc": "", - "applyWarning": "", - "labelApplied": "", - "contentUriOptional": "", - "applyLabel": "", - "accountDid": "", - "contentUri": "", - "labelType": "" - }, - "reports": { - "empty": "", - "reportedUser": "", - "details": "", - "contentUri": "", - "emptyFiltered": "", - "takedown": "", - "reporter": "", - "acknowledge": "", - "emptyPending": "", - "dismiss": "" - }, - "accessDeniedMessage": "", - "labels": { - "empty": "", - "accountLevel": "", - "removeConfirm": "", - "removeTitle": "", - "emptyMessage": "" - }, - "accessDenied": "", - "tabs": { - "actions": "", - "labels": "", - "reports": "" - }, - "filters": { - "pending": "", - "resolved": "", - "dismissed": "", - "escalated": "", - "all": "" - }, - "stats": "", - "title": "" - }, - "new": { - "composeTitle": "", - "needsAccount": "", - "composeTagline": "", - "urlLabel": "", - "signInRequired": "", - "signInButton": "", - "urlPlaceholder": "" - }, - "report": { - "reasons": { - "spam": "", - "rudeOrHarassing": "", - "ruleViolation": "", - "inappropriateContent": "", - "misleading": "", - "other": "" - }, - "submittedMessage": "", - "reportingContent": "", - "detailsPlaceholder": "", - "titleGeneric": "", - "titleUser": "", - "submitted": "", - "cancel": "", - "submit": "", - "submitting": "", - "issueLabel": "" - }, - "editProfile": { - "uploadButton": "", - "bioLabel": "", - "addLinkPlaceholder": "", - "avatarUploadError": "", - "displayNameLabel": "", - "cancel": "", - "avatarTypeError": "", - "title": "", - "uploading": "", - "avatarLabel": "", - "avatarSizeError": "", - "linksLabel": "", - "save": "", - "websiteLabel": "", - "saving": "" - }, - "userUrlPage": { - "noUrl": "", - "noItemsMessage": "", - "loadingAnnotations": "", - "loadMore": "", - "noAnnotations": "", - "on": "", - "failedLoadMore": "", - "noHighlights": "", - "noUrlMessage": "", - "loading": "", - "noItems": "" - }, - "common": { - "loadMore": "", - "save": "", - "error": "", - "retry": "", - "cancel": "", - "back": "", - "new": "", - "continue": "", - "loading": "", - "close": "" - }, - "highlightImporter": { - "complete": "", - "moreErrors": "", - "row": "", - "noHighlights": "", - "downloadTemplate": "", - "requiredColumns": "", - "success": "", - "importProgress": "", - "csvMustHaveText": "", - "csvMustHaveUrl": "", - "processing": "", - "importing": "", - "errorsTitle": "", - "importAnother": "", - "failed_one": "", - "failed_many": "", - "failed_other": "", - "clickToUpload": "", - "errorParsing": "" - }, - "editHistory": { - "close": "", - "failedLoad": "", - "currentVersion": "", - "previousVersion": "", - "title": "", - "editedAgo": "", - "noHistory": "", - "timeAgo": "", - "postedAgo": "" - }, - "externalLink": { - "cancel": "", - "alwaysAllow": "", - "message": "", - "open": "", - "title": "" + }, + "description": "", + "title": "", + "titleLine2": "", + "iosShortcut": "", + "badge": "" + }, + "footer": { + "contact": "", + "terms": "", + "privacy": "" } + }, + "adminModeration": { + "reasons": { + "spam": "", + "rude": "", + "misleading": "", + "other": "", + "violation": "", + "sexual": "" + }, + "actions": { + "applyWarningDesc": "", + "applyWarning": "", + "labelApplied": "", + "contentUriOptional": "", + "applyLabel": "", + "accountDid": "", + "contentUri": "", + "labelType": "" + }, + "reports": { + "empty": "", + "reportedUser": "", + "details": "", + "contentUri": "", + "emptyFiltered": "", + "takedown": "", + "reporter": "", + "acknowledge": "", + "emptyPending": "", + "dismiss": "" + }, + "accessDeniedMessage": "", + "labels": { + "empty": "", + "accountLevel": "", + "removeConfirm": "", + "removeTitle": "", + "emptyMessage": "" + }, + "accessDenied": "", + "tabs": { + "actions": "", + "labels": "", + "reports": "" + }, + "filters": { + "pending": "", + "resolved": "", + "dismissed": "", + "escalated": "", + "all": "" + }, + "stats": "", + "title": "" + }, + "new": { + "composeTitle": "", + "needsAccount": "", + "composeTagline": "", + "urlLabel": "", + "signInRequired": "", + "signInButton": "", + "urlPlaceholder": "" + }, + "report": { + "reasons": { + "spam": "", + "rudeOrHarassing": "", + "ruleViolation": "", + "inappropriateContent": "", + "misleading": "", + "other": "" + }, + "submittedMessage": "", + "reportingContent": "", + "detailsPlaceholder": "", + "titleGeneric": "", + "titleUser": "", + "submitted": "", + "cancel": "", + "submit": "", + "submitting": "", + "issueLabel": "" + }, + "editProfile": { + "uploadButton": "", + "bioLabel": "", + "addLinkPlaceholder": "", + "avatarUploadError": "", + "displayNameLabel": "", + "cancel": "", + "avatarTypeError": "", + "title": "", + "uploading": "", + "avatarLabel": "", + "avatarSizeError": "", + "linksLabel": "", + "save": "", + "websiteLabel": "", + "saving": "" + }, + "userUrlPage": { + "noUrl": "", + "noItemsMessage": "", + "loadingAnnotations": "", + "loadMore": "", + "noAnnotations": "", + "on": "", + "failedLoadMore": "", + "noHighlights": "", + "noUrlMessage": "", + "loading": "", + "noItems": "" + }, + "common": { + "loadMore": "", + "save": "", + "error": "", + "retry": "", + "cancel": "", + "back": "", + "new": "", + "continue": "", + "loading": "", + "close": "" + }, + "highlightImporter": { + "complete": "", + "moreErrors": "", + "row": "", + "noHighlights": "", + "downloadTemplate": "", + "requiredColumns": "", + "success": "", + "importProgress": "", + "csvMustHaveText": "", + "csvMustHaveUrl": "", + "processing": "", + "importing": "", + "errorsTitle": "", + "importAnother": "", + "failed_one": "", + "failed_many": "", + "failed_other": "", + "clickToUpload": "", + "errorParsing": "" + }, + "editHistory": { + "close": "", + "failedLoad": "", + "currentVersion": "", + "previousVersion": "", + "title": "", + "editedAgo": "", + "noHistory": "", + "timeAgo": "", + "postedAgo": "" + }, + "externalLink": { + "cancel": "", + "alwaysAllow": "", + "message": "", + "open": "", + "title": "" + } } diff --git a/web/public/locales/pt-BR/translation.json b/web/public/locales/pt-BR/translation.json index cb5c5d1..62d2e13 100644 --- a/web/public/locales/pt-BR/translation.json +++ b/web/public/locales/pt-BR/translation.json @@ -1,32 +1,32 @@ { - "appTitle": "Margin", - "nav": { - "feed": "Feed", - "discover": "Descobrir", - "annotations": "Anotações", - "highlights": "Destaques", - "collections": "Coleções", - "settings": "Configurações", - "new": "Novo", - "signIn": "Entrar", - "logOut": "Sair", - "themeLight": "Claro", - "themeDark": "Escuro", - "themeSystem": "Sistema" - }, - "pageTitles": { - "home": "Página Inicial — Margin", - "highlights": "Destaques — Margin", - "annotations": "Anotações — Margin", - "discover": "Descobrir — Margin", - "search": "Buscar — Margin", - "notifications": "Notificações — Margin", - "new": "Nova Anotação — Margin", - "settings": "Configurações — Margin", - "collections": "Coleções — Margin" - }, - "sidebar": { - "getExtension": "Obter a Extensão", - "extensionTagline": "Destaque, anote e salve a partir de qualquer página." - } + "appTitle": "Margin", + "nav": { + "feed": "Feed", + "discover": "Descobrir", + "annotations": "Anotações", + "highlights": "Destaques", + "collections": "Coleções", + "settings": "Configurações", + "new": "Novo", + "signIn": "Entrar", + "logOut": "Sair", + "themeLight": "Claro", + "themeDark": "Escuro", + "themeSystem": "Sistema" + }, + "pageTitles": { + "home": "Página Inicial — Margin", + "highlights": "Destaques — Margin", + "annotations": "Anotações — Margin", + "discover": "Descobrir — Margin", + "search": "Buscar — Margin", + "notifications": "Notificações — Margin", + "new": "Nova Anotação — Margin", + "settings": "Configurações — Margin", + "collections": "Coleções — Margin" + }, + "sidebar": { + "getExtension": "Obter a Extensão", + "extensionTagline": "Destaque, anote e salve a partir de qualquer página." + } } diff --git a/web/src/views/About.tsx b/web/src/views/About.tsx index bac7e89..afd6134 100644 --- a/web/src/views/About.tsx +++ b/web/src/views/About.tsx @@ -6,168 +6,449 @@ import "../i18n"; import { $theme, cycleTheme } from "../store/theme"; import { $user } from "../store/auth"; import { - MessageSquareText, - Highlighter, - Bookmark, - FolderOpen, - Keyboard, - PanelRight, - MousePointerClick, - Shield, - Users, - Chrome, ArrowRight, + ArrowUpRight, + Chrome, Github, - ExternalLink, - Hash, - Coffee, - Heart, - Eye, Sun, Moon, Monitor, + ChevronDown, + Copy, Check, - Lock, + FolderOpen, + Users, + Hash, + Eye, + MousePointerClick, + Keyboard, + PanelRight, + AtSign, + Database, + Braces, + Code2, } from "lucide-react"; +import type { LucideIcon } from "lucide-react"; import { AppleIcon, TangledIcon } from "../components/common/Icons"; import { FaFirefox, FaEdge } from "react-icons/fa"; +const noteLexiconText = `{ + "lexicon": 1, + "id": "at.margin.note", + "revision": 3, + "description": "W3C Web Annotation Data Model compliant unified note record for ATProto", + "defs": { + "main": { + "type": "record", + "description": "A W3C-compliant web annotation stored on the AT Protocol", + "key": "tid", + "record": { + "type": "object", + "required": ["motivation", "target", "createdAt"], + "properties": { + "motivation": { + "type": "string", + "description": "W3C motivation for the annotation", + "knownValues": [ + "commenting", + "highlighting", + "bookmarking", + "tagging", + "describing", + "linking", + "replying", + "editing", + "questioning", + "assessing" + ] + }, + "color": { + "type": "string", + "description": "Highlight color tint", + "maxLength": 20 + }, + "body": { + "type": "ref", + "ref": "#body", + "description": "The annotation content (text or reference). For bookmarks, use body.value for the description." + }, + "target": { + "type": "ref", + "ref": "#target", + "description": "The resource being annotated with optional selector" + }, + "tags": { + "type": "array", + "description": "Tags for categorization", + "items": { + "type": "string", + "maxLength": 64, + "maxGraphemes": 32 + }, + "maxLength": 10 + }, + "facets": { + "type": "array", + "description": "Rich text facets (e.g. mentions, links)", + "items": { + "type": "ref", + "ref": "app.bsky.richtext.facet" + } + }, + "generator": { + "type": "ref", + "ref": "#generator", + "description": "The client/agent that created this record" + }, + "rights": { + "type": "string", + "format": "uri", + "description": "License URI (e.g., https://creativecommons.org/licenses/by/4.0/)" + }, + "labels": { + "type": "ref", + "ref": "com.atproto.label.defs#selfLabels", + "description": "Self-applied content labels for this annotation" + }, + "createdAt": { + "type": "string", + "format": "datetime" + }, + "modifiedAt": { + "type": "string", + "format": "datetime", + "description": "When this record was last modified" + } + } + } + }, + "generator": { + "type": "object", + "description": "The client/agent that created this record", + "properties": { + "id": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string" + }, + "homepage": { + "type": "string", + "format": "uri" + } + } + }, + "body": { + "type": "object", + "description": "Annotation body - the content of the annotation", + "properties": { + "value": { + "type": "string", + "maxLength": 10000, + "maxGraphemes": 3000, + "description": "Text content of the annotation. For bookmarks, this is the description." + }, + "format": { + "type": "string", + "description": "MIME type of the body content", + "default": "text/plain" + }, + "uri": { + "type": "string", + "format": "uri", + "description": "Reference to external body content" + } + } + }, + "target": { + "type": "object", + "description": "W3C SpecificResource - the target with optional selector", + "required": ["source"], + "properties": { + "source": { + "type": "string", + "format": "uri", + "description": "The URL being annotated" + }, + "sourceHash": { + "type": "string", + "description": "SHA256 hash of normalized URL for indexing" + }, + "title": { + "type": "string", + "maxLength": 500, + "description": "Page title at time of annotation" + }, + "selector": { + "type": "ref", + "ref": "#selector", + "description": "W3C Selector to identify the annotated segment. Uses W3C 'type' field (not ATProto $type) per the Web Annotation Data Model." + }, + "state": { + "type": "ref", + "ref": "#timeState", + "description": "State of the resource at annotation time" + } + } + }, + "selector": { + "type": "object", + "description": "W3C Web Annotation Selector. The 'type' field discriminates the selector kind using W3C type names (e.g. TextQuoteSelector). This follows W3C conventions, not ATProto union $type.", + "required": ["type"], + "properties": { + "type": { + "type": "string", + "description": "W3C selector type identifier", + "knownValues": [ + "TextQuoteSelector", + "TextPositionSelector", + "CssSelector", + "XPathSelector", + "FragmentSelector", + "RangeSelector" + ] + }, + "exact": { + "type": "string", + "maxLength": 5000, + "maxGraphemes": 1500, + "description": "TextQuoteSelector: the exact text being selected" + }, + "prefix": { + "type": "string", + "maxLength": 500, + "maxGraphemes": 150, + "description": "TextQuoteSelector: text immediately before the selection, for disambiguation" + }, + "suffix": { + "type": "string", + "maxLength": 500, + "maxGraphemes": 150, + "description": "TextQuoteSelector: text immediately after the selection, for disambiguation" + }, + "start": { + "type": "integer", + "minimum": 0, + "description": "TextPositionSelector: start character offset (inclusive)" + }, + "end": { + "type": "integer", + "minimum": 0, + "description": "TextPositionSelector: end character offset (exclusive)" + }, + "value": { + "type": "string", + "maxLength": 2000, + "description": "CssSelector/XPathSelector/FragmentSelector: the selector expression or fragment value" + }, + "conformsTo": { + "type": "string", + "format": "uri", + "description": "FragmentSelector: URI of the specification the fragment conforms to" + } + } + }, + "timeState": { + "type": "object", + "description": "W3C TimeState - record when content was captured", + "properties": { + "sourceDate": { + "type": "string", + "format": "datetime", + "description": "When the source was accessed" + }, + "cached": { + "type": "string", + "format": "uri", + "description": "URL to cached/archived version" + } + } + } + } +}`; + +function LexiconBlock() { + const [copied, setCopied] = React.useState(false); + const onCopy = async () => { + try { + await navigator.clipboard.writeText(noteLexiconText); + setCopied(true); + window.setTimeout(() => setCopied(false), 1800); + } catch { + /* clipboard unavailable */ + } + }; + return ( +
+
+
+