(READ ONLY) Margin is an open annotation layer for the internet. Powered by the AT Protocol. margin.at
extension web atproto comments
99
fork

Configure Feed

Select the types of activity you want to include in your feed.

Translated using Weblate (English)

Currently translated at 100.0% (588 of 588 strings)

Translation: Margin/Web
Translate-URL: https://translate.margin.at/projects/margin/web/en/

authored by

Scan and committed by
Weblate
22ec89f2 effb08da

+725 -843
+725 -843
web/public/locales/en/translation.json
··· 1 1 { 2 - "appTitle": "Margin", 3 - 4 - "nav": { 5 - "feed": "Feed", 6 - "discover": "Discover", 7 - "annotations": "Annotations", 8 - "highlights": "Highlights", 9 - "bookmarks": "Bookmarks", 10 - "collections": "Collections", 11 - "activity": "Activity", 12 - "settings": "Settings", 13 - "new": "New", 14 - "signIn": "Sign in", 15 - "logOut": "Log out", 16 - "themeLight": "Light", 17 - "themeDark": "Dark", 18 - "themeSystem": "System" 19 - }, 20 - 21 - "pageTitles": { 22 - "home": "Home — Margin", 23 - "bookmarks": "Bookmarks — Margin", 24 - "highlights": "Highlights — Margin", 25 - "annotations": "Annotations — Margin", 26 - "discover": "Discover — Margin", 27 - "search": "Search — Margin", 28 - "notifications": "Notifications — Margin", 29 - "new": "New Annotation — Margin", 30 - "settings": "Settings — Margin", 31 - "collections": "Collections — Margin", 32 - "admin": "Admin — Margin" 33 - }, 34 - 35 - "sidebar": { 36 - "getExtension": "Get the Extension", 37 - "extensionTagline": "Highlight, annotate, and bookmark from any page.", 38 - "downloadForFirefox": "Download for Firefox", 39 - "downloadForEdge": "Download for Edge", 40 - "downloadForChrome": "Download for Chrome", 41 - "trending": "Trending", 42 - "nothingTrending": "Nothing trending right now.", 43 - "searchPlaceholder": "Search people, tags, URLs...", 44 - "copyright": "© 2026 Padding Labs LLC", 45 - "postCount_one": "{{count}} post", 46 - "postCount_other": "{{count}} posts" 47 - }, 48 - 49 - "mobileNav": { 50 - "iosShortcut": "iOS Shortcut" 51 - }, 52 - 53 - "feed": { 54 - "welcome": "Welcome to Margin", 55 - "welcomeTagline": "A quiet place to annotate, highlight, and save what you read on the web.", 56 - "getStarted": "Get started", 57 - "learnMore": "Learn more", 58 - "tabs": { 59 - "recent": "Recent", 60 - "popular": "Popular", 61 - "shelved": "Shelved", 62 - "margin": "Margin", 63 - "semble": "Semble" 2 + "appTitle": "Margin", 3 + "nav": { 4 + "feed": "Feed", 5 + "discover": "Discover", 6 + "annotations": "Annotations", 7 + "highlights": "Highlights", 8 + "bookmarks": "Bookmarks", 9 + "collections": "Collections", 10 + "activity": "Activity", 11 + "settings": "Settings", 12 + "new": "New", 13 + "signIn": "Sign in", 14 + "logOut": "Log out", 15 + "themeLight": "Light", 16 + "themeDark": "Dark", 17 + "themeSystem": "System" 64 18 }, 65 - "filters": { 66 - "all": "All", 67 - "annotations": "Annotations", 68 - "highlights": "Highlights", 69 - "bookmarks": "Bookmarks" 19 + "pageTitles": { 20 + "home": "Home — Margin", 21 + "bookmarks": "Bookmarks — Margin", 22 + "highlights": "Highlights — Margin", 23 + "annotations": "Annotations — Margin", 24 + "discover": "Discover — Margin", 25 + "search": "Search — Margin", 26 + "notifications": "Notifications — Margin", 27 + "new": "New Annotation — Margin", 28 + "settings": "Settings — Margin", 29 + "collections": "Collections — Margin", 30 + "admin": "Admin — Margin" 70 31 }, 71 - "itemsWithTag": "Items with tag:", 72 - "clearFilter": "Clear filter", 73 - "everyone": "Everyone", 74 - "mine": "Mine", 75 - "defaultEmptyMessage": "Nothing here yet — annotations from you and people you follow will show up here.", 76 - "nothingHereYet": "Nothing here yet", 77 - "loading": "Loading..." 78 - }, 79 - 80 - "discover": { 81 - "tabs": { 82 - "new": "New", 83 - "popular": "Popular", 84 - "forYou": "For You" 32 + "sidebar": { 33 + "getExtension": "Get the Extension", 34 + "extensionTagline": "Highlight, annotate, and bookmark from any page.", 35 + "downloadForFirefox": "Download for Firefox", 36 + "downloadForEdge": "Download for Edge", 37 + "downloadForChrome": "Download for Chrome", 38 + "trending": "Trending", 39 + "nothingTrending": "Nothing trending right now.", 40 + "searchPlaceholder": "Search people, tags, URLs…", 41 + "copyright": "© 2026 Padding Labs LLC", 42 + "postCount_one": "{{count}} post", 43 + "postCount_other": "{{count}} posts" 85 44 }, 86 - "comingSoon": "Coming soon", 87 - "forYouNotAvailable": "Personalized recommendations aren't available on this server yet.", 88 - "noDocumentsYet": "No documents have been discovered yet. Check back soon!", 89 - "startAnnotating": "Start annotating and highlighting to get personalized recommendations.", 90 - "loadMore": "Load more" 91 - }, 92 - 93 - "search": { 94 - "placeholder": "Search annotations, highlights, bookmarks...", 95 - "noResults": "No results found", 96 - "noResultsMessage": "Nothing matched \"{{query}}\". Try different keywords.", 97 - "emptyTitle": "Search your library", 98 - "emptyMessage": "Find annotations, highlights, and bookmarks by keyword, URL, or tag.", 99 - "filters": { 100 - "all": "All", 101 - "annotations": "Annotations", 102 - "highlights": "Highlights", 103 - "bookmarks": "Bookmarks", 104 - "mine": "Mine" 45 + "mobileNav": { 46 + "iosShortcut": "iOS Shortcut" 105 47 }, 106 - "resultCount": "{{count}}{{hasMore}} results for \"{{query}}\"", 107 - "loadMore": "Load more" 108 - }, 109 - 110 - "notifications": { 111 - "title": "Activity", 112 - "noActivity": "No activity yet", 113 - "noActivityMessage": "Interactions with your content will appear here.", 114 - "likedAnnotation": "liked your annotation", 115 - "likedHighlight": "liked your highlight", 116 - "likedBookmark": "liked your bookmark", 117 - "likedReply": "liked your reply", 118 - "likedPost": "liked your post", 119 - "repliedToReply": "replied to your reply", 120 - "repliedToAnnotation": "replied to your annotation", 121 - "mentionedInAnnotation": "mentioned you in an annotation", 122 - "followedYou": "followed you", 123 - "highlightedPage": "highlighted your page", 124 - "inReplyTo": "in reply to", 125 - "aReply": "a reply", 126 - "anAnnotation": "an annotation" 127 - }, 128 - 129 - "collections": { 130 - "title": "Collections", 131 - "subtitle": "Organize your annotations and highlights", 132 - "none": "No collections yet", 133 - "noneMessage": "Create a collection to organize your highlights and annotations.", 134 - "createButton": "Create collection", 135 - "newTitle": "New Collection", 136 - "editTitle": "Edit Collection", 137 - "namePlaceholder": "My Collection", 138 - "namePlaceholderEdit": "Collection name", 139 - "nameLabel": "Name", 140 - "iconLabel": "Icon", 141 - "iconsTab": "Icons", 142 - "emojisTab": "Emojis", 143 - "selectedIcon": "Selected:", 144 - "descriptionLabel": "Description (optional)", 145 - "descriptionPlaceholder": "What's this collection for?", 146 - "descriptionPlaceholderEdit": "What's this collection about?", 147 - "cancel": "Cancel", 148 - "create": "Create Collection", 149 - "creating": "Creating...", 150 - "save": "Save Changes", 151 - "saving": "Saving...", 152 - "deleteConfirm": "Delete this collection?", 153 - "failedUpdate": "Failed to update collection", 154 - "errorUpdating": "An error occurred while updating", 155 - "itemCount_one": "{{count}} item", 156 - "itemCount_other": "{{count}} items" 157 - }, 158 - 159 - "collectionDetail": { 160 - "backLink": "Collections", 161 - "by": "by", 162 - "edit": "Edit collection", 163 - "delete": "Delete collection", 164 - "removeFromCollection": "Remove from collection", 165 - "viewInSemble": "View in Semble", 166 - "empty": "Collection is empty", 167 - "notFound": "Collection not found", 168 - "failedToLoad": "Failed to load collection", 169 - "deleteConfirm": "Delete this collection?", 170 - "removeConfirm": "Remove from collection?" 171 - }, 172 - 173 - "profile": { 174 - "notFound": "User not found", 175 - "notFoundMessage": "This profile doesn't exist or couldn't be loaded.", 176 - "tabs": { 177 - "all": "All", 178 - "annotations": "Annotations", 179 - "highlights": "Highlights", 180 - "bookmarks": "Bookmarks", 181 - "collections": "Collections" 48 + "feed": { 49 + "welcome": "Welcome to Margin", 50 + "welcomeTagline": "A quiet place to annotate, highlight, and save what you read on the web.", 51 + "getStarted": "Get started", 52 + "learnMore": "Learn more", 53 + "tabs": { 54 + "recent": "Recent", 55 + "popular": "Popular", 56 + "shelved": "Shelved", 57 + "margin": "Margin", 58 + "semble": "Semble" 59 + }, 60 + "filters": { 61 + "all": "All", 62 + "annotations": "Annotations", 63 + "highlights": "Highlights", 64 + "bookmarks": "Bookmarks" 65 + }, 66 + "itemsWithTag": "Items with tag:", 67 + "clearFilter": "Clear filter", 68 + "everyone": "Everyone", 69 + "mine": "Mine", 70 + "defaultEmptyMessage": "Nothing here yet — annotations from you and people you follow will show up here.", 71 + "nothingHereYet": "Nothing here yet", 72 + "loading": "Loading…" 182 73 }, 183 - "loading": "Loading...", 184 - "noCollections": "You haven't created any collections yet.", 185 - "noCollectionsTitle": "No collections", 186 - "labelDescriptions": { 187 - "sexual": "Sexual Content", 188 - "nudity": "Nudity", 189 - "violence": "Violence", 190 - "gore": "Graphic Content", 191 - "spam": "Spam", 192 - "misleading": "Misleading" 74 + "discover": { 75 + "tabs": { 76 + "new": "New", 77 + "popular": "Popular", 78 + "forYou": "For You" 79 + }, 80 + "comingSoon": "Coming soon", 81 + "forYouNotAvailable": "Personalized recommendations aren't available on this server yet.", 82 + "noDocumentsYet": "No documents have been discovered yet. Check back soon!", 83 + "startAnnotating": "Start annotating and highlighting to get personalized recommendations.", 84 + "loadMore": "Load more" 193 85 }, 194 - "accountLabeled": "Account labeled: {{label}}", 195 - "labelAppliedBy": "This label was applied by a moderation service you subscribe to.", 196 - "show": "Show", 197 - "hide": "Hide", 198 - "blockedBy": "@{{handle}} has blocked you. You cannot interact with their content.", 199 - "youBlocked": "You have blocked @{{handle}}", 200 - "blockedContent": "Their content is hidden from your feeds.", 201 - "unblock": "Unblock", 202 - "youMuted": "You have muted @{{handle}}", 203 - "unmute": "Unmute", 204 - "viewInBluesky": "View profile in Bluesky", 205 - "blockUser": "Block @{{handle}}", 206 - "unblockUser": "Unblock @{{handle}}", 207 - "muteUser": "Mute @{{handle}}", 208 - "unmuteUser": "Unmute @{{handle}}", 209 - "report": "Report", 210 - "emptyOwn": "Your {{tab}} will show up here.", 211 - "emptyOther": "Nothing to see here yet." 212 - }, 213 - 214 - "login": { 215 - "signInWith": "Sign in with your", 216 - "handleSuffix": "handle", 217 - "handlePlaceholder": "handle.margin.cafe", 218 - "connecting": "Connecting...", 219 - "continue": "Continue", 220 - "createAccount": "Create New Account", 221 - "termsPrefix": "By signing in, you agree to our", 222 - "termsLink": "Terms of Service", 223 - "termsAnd": "and", 224 - "privacyLink": "Privacy Policy" 225 - }, 226 - 227 - "signUp": { 228 - "title": "Create your account", 229 - "subtitle": "Margin adheres to the", 230 - "atProtocol": "AT Protocol", 231 - "subtitleSuffix": ". Choose a provider to host your account.", 232 - "customPdsTitle": "Use a custom PDS", 233 - "customPdsSubtitle": "Enter the address of the PDS hosting your account.", 234 - "pdsAddressLabel": "PDS address", 235 - "pdsAddressPlaceholder": "pds.example.com", 236 - "connecting": "Connecting...", 237 - "back": "Back", 238 - "continue": "Continue", 239 - "invite": "Invite", 240 - "providerError": "Could not connect to this provider. Please try again.", 241 - "customPdsError": "Couldn't connect to that PDS. Double-check the address.", 242 - "providers": { 243 - "margin": { 244 - "name": "Margin", 245 - "description": "The easiest way to get started" 246 - }, 247 - "bluesky": { 248 - "name": "Bluesky", 249 - "description": "The largest and most popular community" 250 - }, 251 - "blacksky": { 252 - "name": "Blacksky", 253 - "description": "For the Culture — a safe space for users and allies" 254 - }, 255 - "eurosky": { 256 - "name": "Eurosky", 257 - "description": "Eurosky is your European home on the Atmosphere" 258 - }, 259 - "selfhostedSocial": { 260 - "name": "selfhosted.social", 261 - "description": "A home for builders, tinkerers, and the curious" 262 - }, 263 - "northsky": { 264 - "name": "Northsky", 265 - "description": "A Canadian worker-owned cooperative" 266 - }, 267 - "tophhie": { 268 - "name": "Tophhie", 269 - "description": "A welcoming and friendly community" 270 - }, 271 - "customPds": { 272 - "name": "Use a custom PDS", 273 - "description": "Already have a PDS? Enter its address." 274 - } 275 - } 276 - }, 277 - 278 - "composer": { 279 - "newHighlight": "New highlight", 280 - "newAnnotation": "New annotation", 281 - "newNote": "New note", 282 - "saveHighlight": "Save highlight", 283 - "postAnnotation": "Post annotation", 284 - "postNote": "Post note", 285 - "highlightHint": "Saving a passage without a comment. Add text below to turn it into an annotation.", 286 - "addQuote": "+ Add a quote from the page", 287 - "quotePlaceholder": "Paste or type the text you're annotating...", 288 - "removeQuote": "Remove Quote", 289 - "thoughtsPlaceholder": "Add your thoughts on this passage...", 290 - "mindPlaceholder": "What's on your mind?", 291 - "tagsPlaceholder": "Add tags...", 292 - "contentWarning": "Content Warning", 293 - "contentWarningCount": "Content Warning ({{count}})", 294 - "cancel": "Cancel", 295 - "failedToPost": "Failed to post", 296 - "labels": { 297 - "sexual": "Sexual", 298 - "nudity": "Nudity", 299 - "violence": "Violence", 300 - "gore": "Gore", 301 - "spam": "Spam", 302 - "misleading": "Misleading" 303 - } 304 - }, 305 - 306 - "card": { 307 - "addedTo": "Added to", 308 - "addedToLower": "added to", 309 - "and": "and", 310 - "communityBookmark": "Community bookmark", 311 - "openInSemble": "Open in Semble", 312 - "deleteConfirm": "Delete this item?", 313 - "hideContent": "Hide Content", 314 - "show": "Show", 315 - "edited": "(edited)", 316 - "annotate": "Annotate", 317 - "untitledBookmark": "Untitled Bookmark", 318 - "addNotePlaceholder": "Add your note to convert this highlight into an annotation...", 319 - "addToCollectionTitle": "Add to Collection", 320 - "annotateTitle": "Annotate this highlight", 321 - "editTitle": "Edit", 322 - "deleteTitle": "Delete", 323 - "report": "Report", 324 - "muteUser": "Mute @{{handle}}", 325 - "blockUser": "Block @{{handle}}", 326 - "convertToAnnotation": "Convert to annotation", 327 - "justNow": "just now", 328 - "labelDescriptions": { 329 - "sexual": "Sexual Content", 330 - "nudity": "Nudity", 331 - "violence": "Violence", 332 - "gore": "Graphic Content", 333 - "spam": "Spam", 334 - "misleading": "Misleading" 335 - } 336 - }, 337 - 338 - "profileHoverCard": { 339 - "viewProfile": "View Profile", 340 - "notFound": "Profile not found" 341 - }, 342 - 343 - "replyList": { 344 - "noReplies": "No replies yet" 345 - }, 346 - 347 - "shareMenu": { 348 - "sembleIntegration": "Semble Integration", 349 - "openOnSemble": "Open on Semble", 350 - "copySembleLink": "Copy Semble Link", 351 - "copyLink": "Copy Link", 352 - "shareViaApp": "Share via App", 353 - "copyUniversalLink": "Copy Universal Link", 354 - "moreOptions": "More Options...", 355 - "copied": "Copied!" 356 - }, 357 - 358 - "addToCollection": { 359 - "title": "Add to Collection", 360 - "loading": "Loading collections...", 361 - "collectionNameLabel": "Collection name", 362 - "namePlaceholder": "My Collection", 363 - "descriptionLabel": "Description (optional)", 364 - "descriptionPlaceholder": "What's this collection about?", 365 - "iconLabel": "Icon", 366 - "iconsTab": "Icons", 367 - "emojisTab": "Emojis", 368 - "selected": "Selected:", 369 - "back": "Back", 370 - "create": "Create", 371 - "creating": "Creating...", 372 - "newCollectionButton": "New Collection", 373 - "createNewDescription": "Create a new collection", 374 - "none": "No collections yet", 375 - "done": "Done", 376 - "failedLoad": "Failed to load collections", 377 - "failedAdd": "Failed to add to collection", 378 - "failedCreate": "Failed to create collection" 379 - }, 380 - 381 - "editItem": { 382 - "editAnnotation": "Edit Annotation", 383 - "editHighlight": "Edit Highlight", 384 - "editBookmark": "Edit Bookmark", 385 - "textLabel": "Text", 386 - "textPlaceholder": "Write your annotation...", 387 - "colorLabel": "Color", 388 - "tagsLabel": "Tags", 389 - "tagPlaceholder": "Add a tag...", 390 - "contentWarning": "Content Warning", 391 - "cancel": "Cancel", 392 - "save": "Save", 393 - "saving": "Saving...", 394 - "failedSave": "Failed to save changes. Please try again.", 395 - "titleLabel": "Title", 396 - "titlePlaceholder": "Bookmark title", 397 - "descriptionLabel": "Description", 398 - "descriptionPlaceholder": "Optional description..." 399 - }, 400 - 401 - "editCollection": { 402 - "title": "Edit Collection", 403 - "nameLabel": "Collection name", 404 - "namePlaceholder": "My Collection", 405 - "descriptionLabel": "Description (optional)", 406 - "descriptionPlaceholder": "What's this collection about?", 407 - "iconLabel": "Icon", 408 - "iconsTab": "Icons", 409 - "emojisTab": "Emojis", 410 - "selected": "Selected:", 411 - "cancel": "Cancel", 412 - "save": "Save Changes", 413 - "saving": "Saving...", 414 - "failedUpdate": "Failed to update collection", 415 - "errorUpdating": "An error occurred while updating" 416 - }, 417 - 418 - "externalLink": { 419 - "title": "Leaving Margin", 420 - "message": "You're about to visit an external site.", 421 - "alwaysAllow": "Always allow links to {{hostname}}", 422 - "cancel": "Cancel", 423 - "open": "Open Link" 424 - }, 425 - 426 - "report": { 427 - "submitted": "Report submitted", 428 - "submittedMessage": "Thank you. We'll review this shortly.", 429 - "titleUser": "Report @{{handle}}", 430 - "titleGeneric": "Report user", 431 - "reportingContent": "Reporting specific content", 432 - "issueLabel": "What's the issue?", 433 - "cancel": "Cancel", 434 - "submit": "Submit Report", 435 - "submitting": "Submitting…", 436 - "detailsPlaceholder": "Additional details (optional)", 437 - "reasons": { 438 - "spam": "Spam", 439 - "ruleViolation": "Rule violation", 440 - "misleading": "Misleading", 441 - "rudeOrHarassing": "Rude or harassing", 442 - "inappropriateContent": "Inappropriate content", 443 - "other": "Other" 444 - } 445 - }, 446 - 447 - "editProfile": { 448 - "title": "Edit Profile", 449 - "avatarLabel": "Avatar", 450 - "uploadButton": "Upload", 451 - "uploading": "Uploading...", 452 - "displayNameLabel": "Display Name", 453 - "bioLabel": "Bio", 454 - "websiteLabel": "Website", 455 - "linksLabel": "Links", 456 - "addLinkPlaceholder": "Add a link...", 457 - "cancel": "Cancel", 458 - "save": "Save", 459 - "saving": "Saving...", 460 - "avatarTypeError": "Please select a JPEG or PNG image", 461 - "avatarSizeError": "Image must be under 2MB", 462 - "avatarUploadError": "Failed to upload: {{message}}" 463 - }, 464 - 465 - "iosShortcut": { 466 - "title": "Save from iOS Safari", 467 - "howTo": "How to use the shortcut", 468 - "step1Title": "Install the shortcut", 469 - "step1Link": "Get iOS Shortcut", 470 - "step2Title": "Generate an API Key", 471 - "step2Description": "Create a new key on this settings page and copy it.", 472 - "step3Title": "Configure the shortcut", 473 - "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.", 474 - "step4Title": "To Bookmark a page", 475 - "step4Description": "Don't select any text. Click the menu in Safari, press Share, and select Save to Margin.", 476 - "step5Title": "To Highlight text", 477 - "step5Description": "Select text on the page, click the menu, press Share, and select Save to Margin. Leave the Note field empty.", 478 - "step6Title": "To Add an Annotation", 479 - "step6Description": "Select text, share to Save to Margin (via the menu), enter your custom note in the Note field, and press Done!", 480 - "gotIt": "Got it" 481 - }, 482 - 483 - "editHistory": { 484 - "title": "Edit History", 485 - "noHistory": "No edit history found.", 486 - "currentVersion": "Current Version", 487 - "previousVersion": "Previous Version", 488 - "editedAgo": "Edited {{time}} ago", 489 - "postedAgo": "Posted {{time}} ago", 490 - "timeAgo": "{{time}} ago", 491 - "close": "Close", 492 - "failedLoad": "Failed to load edit history" 493 - }, 494 - 495 - "settings": { 496 - "sections": { 497 - "profile": "Profile", 498 - "appearance": "Appearance", 499 - "batchImport": "Batch Import Highlights", 500 - "apiKeys": "API Keys", 501 - "moderation": "Moderation", 502 - "contentFiltering": "Content Filtering", 503 - "iosShortcut": "iOS Shortcut" 86 + "search": { 87 + "placeholder": "Search annotations, highlights, bookmarks…", 88 + "noResults": "No results found", 89 + "noResultsMessage": "Nothing matched \"{{query}}\". Try different keywords.", 90 + "emptyTitle": "Search your library", 91 + "emptyMessage": "Find annotations, highlights, and bookmarks by keyword, URL, or tag.", 92 + "filters": { 93 + "all": "All", 94 + "annotations": "Annotations", 95 + "highlights": "Highlights", 96 + "bookmarks": "Bookmarks", 97 + "mine": "Mine" 98 + }, 99 + "resultCount": "{{count}}{{hasMore}} results for \"{{query}}\"", 100 + "loadMore": "Load more" 504 101 }, 505 - "apiKeys": { 506 - "noKeys": "No API keys yet. Create one to use with the browser extension.", 507 - "forIos": "For the iOS shortcut and other apps", 508 - "namePlaceholder": "Key name, e.g. iOS Shortcut", 509 - "created": "Created {{date}}", 510 - "revokeConfirm": "Revoke this key? Apps using it will stop working.", 511 - "copyNow": "Copy now - you won't see this again!" 102 + "notifications": { 103 + "title": "Activity", 104 + "noActivity": "No activity yet", 105 + "noActivityMessage": "Interactions with your content will appear here.", 106 + "likedAnnotation": "liked your annotation", 107 + "likedHighlight": "liked your highlight", 108 + "likedBookmark": "liked your bookmark", 109 + "likedReply": "liked your reply", 110 + "likedPost": "liked your post", 111 + "repliedToReply": "replied to your reply", 112 + "repliedToAnnotation": "replied to your annotation", 113 + "mentionedInAnnotation": "mentioned you in an annotation", 114 + "followedYou": "followed you", 115 + "highlightedPage": "highlighted your page", 116 + "inReplyTo": "in reply to", 117 + "aReply": "a reply", 118 + "anAnnotation": "an annotation" 512 119 }, 513 - "moderation": { 514 - "blockedAccounts": "Blocked accounts ({{count}})", 515 - "mutedAccounts": "Muted accounts ({{count}})", 516 - "noBlocked": "No blocked accounts", 517 - "noMuted": "No muted accounts", 518 - "unblock": "Unblock", 519 - "unmute": "Unmute", 520 - "remove": "Remove", 521 - "add": "Add", 522 - "noLabelers": "No labelers subscribed", 523 - "labelerPlaceholder": "did:plc:... (labeler DID)" 120 + "collections": { 121 + "title": "Collections", 122 + "subtitle": "Organize your annotations and highlights", 123 + "none": "No collections yet", 124 + "noneMessage": "Create a collection to organize your highlights and annotations.", 125 + "createButton": "Create collection", 126 + "newTitle": "New Collection", 127 + "editTitle": "Edit Collection", 128 + "namePlaceholder": "My Collection", 129 + "namePlaceholderEdit": "Collection name", 130 + "nameLabel": "Name", 131 + "iconLabel": "Icon", 132 + "iconsTab": "Icons", 133 + "emojisTab": "Emojis", 134 + "selectedIcon": "Selected:", 135 + "descriptionLabel": "Description (optional)", 136 + "descriptionPlaceholder": "What's this collection for?", 137 + "descriptionPlaceholderEdit": "What's this collection about?", 138 + "cancel": "Cancel", 139 + "create": "Create Collection", 140 + "creating": "Creating…", 141 + "save": "Save Changes", 142 + "saving": "Saving…", 143 + "deleteConfirm": "Delete this collection?", 144 + "failedUpdate": "Failed to update collection", 145 + "errorUpdating": "An error occurred while updating", 146 + "itemCount_one": "{{count}} item", 147 + "itemCount_other": "{{count}} items" 524 148 }, 525 - "contentFiltering": { 526 - "warn": "Warn", 527 - "hide": "Hide", 528 - "ignore": "Ignore" 149 + "collectionDetail": { 150 + "backLink": "Collections", 151 + "by": "by", 152 + "edit": "Edit collection", 153 + "delete": "Delete collection", 154 + "removeFromCollection": "Remove from collection", 155 + "viewInSemble": "View in Semble", 156 + "empty": "Collection is empty", 157 + "notFound": "Collection not found", 158 + "failedToLoad": "Failed to load collection", 159 + "deleteConfirm": "Delete this collection?", 160 + "removeConfirm": "Remove from collection?" 529 161 }, 530 - "ios": { 531 - "description": "Save pages to Margin from Safari on iPhone and iPad", 532 - "setupButton": "Setup iOS Shortcut" 162 + "profile": { 163 + "notFound": "User not found", 164 + "notFoundMessage": "This profile doesn't exist or couldn't be loaded.", 165 + "edit": "Edit", 166 + "viewInBluesky": "View profile in Bluesky", 167 + "unblock": "Unblock @{{handle}}", 168 + "block": "Block @{{handle}}", 169 + "unmute": "Unmute @{{handle}}", 170 + "mute": "Mute @{{handle}}", 171 + "report": "Report", 172 + "accountLabeled": "Account labeled: {{description}}", 173 + "labelApplied": "This label was applied by a moderation service you subscribe to.", 174 + "show": "Show", 175 + "hide": "Hide", 176 + "blockedBanner": "You have blocked @{{handle}}", 177 + "blockedMessage": "Their content is hidden from your feeds.", 178 + "mutedBanner": "You have muted @{{handle}}", 179 + "mutedMessage": "Their content is hidden from your feeds.", 180 + "blockedByBanner": "@{{handle}} has blocked you. You cannot interact with their content.", 181 + "unblock_action": "Unblock", 182 + "unmute_action": "Unmute", 183 + "emptyCollectionsOwn": "You haven't created any collections yet.", 184 + "emptyCollectionsOther": "No collections", 185 + "itemCount_one": "{{count}} item", 186 + "itemCount_other": "{{count}} items", 187 + "emptyTabOwn": "Your {{tab}} will show up here.", 188 + "emptyTabOther": "Nothing to see here yet." 533 189 }, 534 - "logOut": "Log out" 535 - }, 536 - 537 - "new": { 538 - "signInRequired": "Sign in to create", 539 - "needsAccount": "You need a Bluesky account", 540 - "signInButton": "Sign in with Bluesky", 541 - "composeTitle": "Compose", 542 - "composeTagline": "Highlight a passage, leave a note, or annotate a page — all from here.", 543 - "urlLabel": "URL to annotate", 544 - "urlPlaceholder": "https://example.com/article" 545 - }, 546 - 547 - "annotationDetail": { 548 - "back": "Back", 549 - "replies": "Replies ({{count}})", 550 - "replyingTo": "Replying to", 551 - "replyPlaceholder": "Write a reply...", 552 - "reply": "Reply", 553 - "signInToReply": "Sign in to reply", 554 - "logIn": "Log in", 555 - "notFound": "Not found", 556 - "mayBeDeleted": "This may have been deleted.", 557 - "backToFeed": "Back to Feed", 558 - "deleteReplyConfirm": "Delete this reply?", 559 - "failedReply": "Failed to post reply: {{message}}", 560 - "failedDelete": "Failed to delete: {{message}}", 561 - "failedResolve": "Failed to resolve handle: {{message}}" 562 - }, 563 - 564 - "urlPage": { 565 - "title": "URL Annotations", 566 - "description": "Enter a URL to see all public annotations and highlights from the Margin community.", 567 - "urlPlaceholder": "https://example.com/article", 568 - "view": "View", 569 - "myAnnotations": "My Annotations", 570 - "share": "Share", 571 - "copied": "Copied!", 572 - "contributor_one": "{{count}} contributor", 573 - "contributor_other": "{{count}} contributors", 574 - "loadingAnnotations": "Loading annotations...", 575 - "blankCanvas": "This page is a blank canvas", 576 - "blankCanvasMessage": "No one's left notes here yet. Want to be the first? Grab the Margin extension and share what you're thinking.", 577 - "tabs": { 578 - "all": "All", 579 - "annotations": "Annotations", 580 - "highlights": "Highlights", 581 - "bookmarks": "Bookmarks", 582 - "collections": "Collections" 190 + "login": { 191 + "signInWith": "Sign in with your", 192 + "handleSuffix": "handle", 193 + "handlePlaceholder": "handle.margin.cafe", 194 + "connecting": "Connecting…", 195 + "continue": "Continue", 196 + "createAccount": "Create New Account", 197 + "termsPrefix": "By signing in, you agree to our", 198 + "termsLink": "Terms of Service", 199 + "termsAnd": "and", 200 + "privacyLink": "Privacy Policy" 583 201 }, 584 - "noAnnotationsYet": "No annotations yet", 585 - "noAnnotationsMessage": "Nobody has left a written note on this page.", 586 - "noHighlightsYet": "No highlights yet", 587 - "noHighlightsMessage": "Nobody has highlighted a passage from this page.", 588 - "loadMore": "Load more", 589 - "loading": "Loading...", 590 - "failedLoadMore": "Failed to load more: {{message}}" 591 - }, 592 - 593 - "userUrlPage": { 594 - "on": "on", 595 - "loadingAnnotations": "Loading annotations...", 596 - "noUrl": "No URL specified", 597 - "noUrlMessage": "Please provide a URL to view annotations.", 598 - "noItems": "No items found", 599 - "noItemsMessage": "{{name}} hasn't annotated this page yet.", 600 - "noAnnotations": "No annotations", 601 - "noHighlights": "No highlights", 602 - "loadMore": "Load more", 603 - "loading": "Loading...", 604 - "failedLoadMore": "Failed to load more: {{message}}" 605 - }, 606 - 607 - "settings": { 608 - "title": "Settings", 609 - "sections": { 610 - "profile": "Profile", 611 - "appearance": "Appearance", 612 - "language": "Language", 613 - "batchImport": "Batch Import Highlights", 614 - "apiKeys": "API Keys", 615 - "moderation": "Moderation", 616 - "contentFiltering": "Content Filtering", 617 - "iosShortcut": "iOS Shortcut" 202 + "signUp": { 203 + "title": "Create your account", 204 + "subtitle": "Margin adheres to the", 205 + "atProtocol": "AT Protocol", 206 + "subtitleSuffix": ". Choose a provider to host your account.", 207 + "customPdsTitle": "Use a custom PDS", 208 + "customPdsSubtitle": "Enter the address of the PDS hosting your account.", 209 + "pdsAddressLabel": "PDS address", 210 + "pdsAddressPlaceholder": "pds.example.com", 211 + "connecting": "Connecting…", 212 + "back": "Back", 213 + "continue": "Continue", 214 + "invite": "Invite", 215 + "providerError": "Could not connect to this provider. Please try again.", 216 + "customPdsError": "Couldn't connect to that PDS. Double-check the address.", 217 + "providers": { 218 + "margin": { 219 + "name": "Margin", 220 + "description": "The easiest way to get started" 221 + }, 222 + "bluesky": { 223 + "name": "Bluesky", 224 + "description": "The largest and most popular community" 225 + }, 226 + "blacksky": { 227 + "name": "Blacksky", 228 + "description": "For the Culture — a safe space for users and allies" 229 + }, 230 + "eurosky": { 231 + "name": "Eurosky", 232 + "description": "Eurosky is your European home on the Atmosphere" 233 + }, 234 + "selfhostedSocial": { 235 + "name": "selfhosted.social", 236 + "description": "A home for builders, tinkerers, and the curious" 237 + }, 238 + "northsky": { 239 + "name": "Northsky", 240 + "description": "A Canadian worker-owned cooperative" 241 + }, 242 + "tophhie": { 243 + "name": "Tophhie", 244 + "description": "A welcoming and friendly community" 245 + }, 246 + "customPds": { 247 + "name": "Use a custom PDS", 248 + "description": "Already have a PDS? Enter its address." 249 + } 250 + } 618 251 }, 619 - "language": { 620 - "label": "Interface Language", 621 - "description": "Choose the language for the Margin interface." 252 + "composer": { 253 + "newHighlight": "New highlight", 254 + "newAnnotation": "New annotation", 255 + "newNote": "New note", 256 + "saveHighlight": "Save highlight", 257 + "postAnnotation": "Post annotation", 258 + "postNote": "Post note", 259 + "highlightHint": "Saving a passage without a comment. Add text below to turn it into an annotation.", 260 + "addQuote": "+ Add a quote from the page", 261 + "quotePlaceholder": "Paste or type the text you're annotating…", 262 + "removeQuote": "Remove Quote", 263 + "thoughtsPlaceholder": "Add your thoughts on this passage…", 264 + "mindPlaceholder": "What's on your mind?", 265 + "tagsPlaceholder": "Add tags…", 266 + "contentWarning": "Content Warning", 267 + "contentWarningCount": "Content Warning ({{count}})", 268 + "cancel": "Cancel", 269 + "failedToPost": "Failed to post", 270 + "labels": { 271 + "sexual": "Sexual", 272 + "nudity": "Nudity", 273 + "violence": "Violence", 274 + "gore": "Gore", 275 + "spam": "Spam", 276 + "misleading": "Misleading" 277 + } 622 278 }, 623 - "appearance": { 624 - "disableExternalLinkWarning": "Disable external link warning", 625 - "disableExternalLinkWarningDesc": "Don't ask for confirmation when opening external links", 626 - "communityBookmarks": "Share bookmarks to community feed", 627 - "communityBookmarksDesc": "Your saved bookmarks will appear in the community bookmarks feed" 279 + "card": { 280 + "addedTo": "Added to", 281 + "addedToLower": "added to", 282 + "and": "and", 283 + "communityBookmark": "Community bookmark", 284 + "openInSemble": "Open in Semble", 285 + "deleteConfirm": "Delete this item?", 286 + "hideContent": "Hide Content", 287 + "show": "Show", 288 + "edited": "(edited)", 289 + "annotate": "Annotate", 290 + "untitledBookmark": "Untitled Bookmark", 291 + "addNotePlaceholder": "Add your note to convert this highlight into an annotation…", 292 + "addToCollectionTitle": "Add to Collection", 293 + "annotateTitle": "Annotate this highlight", 294 + "editTitle": "Edit", 295 + "deleteTitle": "Delete", 296 + "report": "Report", 297 + "muteUser": "Mute @{{handle}}", 298 + "blockUser": "Block @{{handle}}", 299 + "convertToAnnotation": "Convert to annotation", 300 + "justNow": "just now", 301 + "labelDescriptions": { 302 + "sexual": "Sexual Content", 303 + "nudity": "Nudity", 304 + "violence": "Violence", 305 + "gore": "Graphic Content", 306 + "spam": "Spam", 307 + "misleading": "Misleading" 308 + } 628 309 }, 629 - "batchImport": { 630 - "description": "Upload highlights from CSV. Required: url, text. Optional: title, tags, color, created_at" 310 + "profileHoverCard": { 311 + "viewProfile": "View Profile", 312 + "notFound": "Profile not found" 631 313 }, 632 - "apiKeys": { 633 - "description": "For the iOS shortcut and other apps", 634 - "keyNamePlaceholder": "Key name, e.g. iOS Shortcut", 635 - "generate": "Generate", 636 - "copyNow": "Copy now - you won't see this again!", 637 - "empty": "No API keys yet. Create one to use with the browser extension.", 638 - "created": "Created {{date}}", 639 - "revokeConfirm": "Revoke this key? Apps using it will stop working." 314 + "replyList": { 315 + "noReplies": "No replies yet" 640 316 }, 641 - "moderation": { 642 - "description": "Manage blocked and muted accounts", 643 - "blockedAccounts": "Blocked accounts ({{count}})", 644 - "noBlocked": "No blocked accounts", 645 - "unblock": "Unblock", 646 - "mutedAccounts": "Muted accounts ({{count}})", 647 - "noMuted": "No muted accounts", 648 - "unmute": "Unmute" 317 + "shareMenu": { 318 + "sembleIntegration": "Semble Integration", 319 + "openOnSemble": "Open on Semble", 320 + "copySembleLink": "Copy Semble Link", 321 + "copyLink": "Copy Link", 322 + "shareViaApp": "Share via App", 323 + "copyUniversalLink": "Copy Universal Link", 324 + "moreOptions": "More Options…", 325 + "copied": "Copied!" 649 326 }, 650 - "contentFiltering": { 651 - "description": "Subscribe to labelers and configure how labeled content appears", 652 - "subscribedLabelers": "Subscribed Labelers", 653 - "noLabelers": "No labelers subscribed", 654 - "labelerDidPlaceholder": "did:plc:... (labeler DID)", 655 - "remove": "Remove", 656 - "add": "Add", 657 - "labelVisibility": "Label Visibility", 658 - "labelVisibilityDesc": "Choose how to handle each label type: Warn shows a blur overlay, Hide removes content entirely, Ignore shows content normally.", 659 - "warn": "Warn", 660 - "hide": "Hide", 661 - "ignore": "Ignore" 327 + "addToCollection": { 328 + "title": "Add to Collection", 329 + "loading": "Loading collections…", 330 + "collectionNameLabel": "Collection name", 331 + "namePlaceholder": "My Collection", 332 + "descriptionLabel": "Description (optional)", 333 + "descriptionPlaceholder": "What's this collection about?", 334 + "iconLabel": "Icon", 335 + "iconsTab": "Icons", 336 + "emojisTab": "Emojis", 337 + "selected": "Selected:", 338 + "back": "Back", 339 + "create": "Create", 340 + "creating": "Creating…", 341 + "newCollectionButton": "New Collection", 342 + "createNewDescription": "Create a new collection", 343 + "none": "No collections yet", 344 + "done": "Done", 345 + "failedLoad": "Failed to load collections", 346 + "failedAdd": "Failed to add to collection", 347 + "failedCreate": "Failed to create collection" 662 348 }, 663 - "iosShortcut": { 664 - "description": "Save pages to Margin from Safari on iPhone and iPad", 665 - "setupButton": "Setup iOS Shortcut" 349 + "editItem": { 350 + "editAnnotation": "Edit Annotation", 351 + "editHighlight": "Edit Highlight", 352 + "editBookmark": "Edit Bookmark", 353 + "textLabel": "Text", 354 + "textPlaceholder": "Write your annotation…", 355 + "colorLabel": "Color", 356 + "tagsLabel": "Tags", 357 + "tagPlaceholder": "Add a tag…", 358 + "contentWarning": "Content Warning", 359 + "cancel": "Cancel", 360 + "save": "Save", 361 + "saving": "Saving…", 362 + "failedSave": "Failed to save changes. Please try again.", 363 + "titleLabel": "Title", 364 + "titlePlaceholder": "Bookmark title", 365 + "descriptionLabel": "Description", 366 + "descriptionPlaceholder": "Optional description…" 666 367 }, 667 - "logout": "Log out" 668 - }, 669 - 670 - "adminModeration": { 671 - "accessDenied": "Access Denied", 672 - "accessDeniedMessage": "You don't have permission to access the moderation dashboard.", 673 - "title": "Moderation", 674 - "stats": "{{pending}} pending · {{total}} total reports", 675 - "tabs": { 676 - "reports": "Reports", 677 - "actions": "Actions", 678 - "labels": "Labels" 368 + "editCollection": { 369 + "title": "Edit Collection", 370 + "nameLabel": "Collection name", 371 + "namePlaceholder": "My Collection", 372 + "descriptionLabel": "Description (optional)", 373 + "descriptionPlaceholder": "What's this collection about?", 374 + "iconLabel": "Icon", 375 + "iconsTab": "Icons", 376 + "emojisTab": "Emojis", 377 + "selected": "Selected:", 378 + "cancel": "Cancel", 379 + "save": "Save Changes", 380 + "saving": "Saving…", 381 + "failedUpdate": "Failed to update collection", 382 + "errorUpdating": "An error occurred while updating" 679 383 }, 680 - "filters": { 681 - "all": "All", 682 - "pending": "Pending", 683 - "resolved": "Resolved", 684 - "dismissed": "Dismissed", 685 - "escalated": "Escalated" 384 + "externalLink": { 385 + "title": "Leaving Margin", 386 + "message": "You're about to visit an external site.", 387 + "alwaysAllow": "Always allow links to {{hostname}}", 388 + "cancel": "Cancel", 389 + "open": "Open Link" 686 390 }, 687 - "reports": { 688 - "empty": "No reports", 689 - "emptyPending": "No pending reports to review.", 690 - "emptyFiltered": "No {{status}} reports found.", 691 - "reportedUser": "Reported User", 692 - "reporter": "Reporter", 693 - "details": "Details", 694 - "contentUri": "Content URI", 695 - "acknowledge": "Acknowledge", 696 - "dismiss": "Dismiss", 697 - "takedown": "Takedown" 391 + "report": { 392 + "submitted": "Report submitted", 393 + "submittedMessage": "Thank you. We'll review this shortly.", 394 + "titleUser": "Report @{{handle}}", 395 + "titleGeneric": "Report user", 396 + "reportingContent": "Reporting specific content", 397 + "issueLabel": "What's the issue?", 398 + "cancel": "Cancel", 399 + "submit": "Submit Report", 400 + "submitting": "Submitting…", 401 + "detailsPlaceholder": "Additional details (optional)", 402 + "reasons": { 403 + "spam": "Spam", 404 + "ruleViolation": "Rule violation", 405 + "misleading": "Misleading", 406 + "rudeOrHarassing": "Rude or harassing", 407 + "inappropriateContent": "Inappropriate content", 408 + "other": "Other" 409 + } 698 410 }, 699 - "reasons": { 700 - "spam": "Spam", 701 - "violation": "Rule Violation", 702 - "misleading": "Misleading", 703 - "sexual": "Inappropriate", 704 - "rude": "Rude / Harassing", 705 - "other": "Other" 411 + "editProfile": { 412 + "title": "Edit Profile", 413 + "avatarLabel": "Avatar", 414 + "uploadButton": "Upload", 415 + "uploading": "Uploading…", 416 + "displayNameLabel": "Display Name", 417 + "bioLabel": "Bio", 418 + "websiteLabel": "Website", 419 + "linksLabel": "Links", 420 + "addLinkPlaceholder": "Add a link…", 421 + "cancel": "Cancel", 422 + "save": "Save", 423 + "saving": "Saving…", 424 + "avatarTypeError": "Please select a JPEG or PNG image", 425 + "avatarSizeError": "Image must be under 2MB", 426 + "avatarUploadError": "Failed to upload: {{message}}" 706 427 }, 707 - "actions": { 708 - "applyWarning": "Apply Content Warning", 709 - "applyWarningDesc": "Add a content warning label to a specific post or account. Users will see a blur overlay with the option to reveal.", 710 - "accountDid": "Account DID", 711 - "contentUri": "Content URI", 712 - "contentUriOptional": "optional — leave empty for account-level label", 713 - "labelType": "Label Type", 714 - "applyLabel": "Apply Label", 715 - "labelApplied": "Label applied" 428 + "iosShortcut": { 429 + "title": "Save from iOS Safari", 430 + "howTo": "How to use the shortcut", 431 + "step1Title": "Install the shortcut", 432 + "step1Link": "Get iOS Shortcut", 433 + "step2Title": "Generate an API Key", 434 + "step2Description": "Create a new key on this settings page and copy it.", 435 + "step3Title": "Configure the shortcut", 436 + "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.", 437 + "step4Title": "To Bookmark a page", 438 + "step4Description": "Don't select any text. Click the menu in Safari, press Share, and select Save to Margin.", 439 + "step5Title": "To Highlight text", 440 + "step5Description": "Select text on the page, click the menu, press Share, and select Save to Margin. Leave the Note field empty.", 441 + "step6Title": "To Add an Annotation", 442 + "step6Description": "Select text, share to Save to Margin (via the menu), enter your custom note in the Note field, and press Done!", 443 + "gotIt": "Got it" 716 444 }, 717 - "labels": { 718 - "empty": "No labels", 719 - "emptyMessage": "No content labels have been applied yet.", 720 - "accountLevel": "Account-level label", 721 - "removeConfirm": "Remove this label?", 722 - "removeTitle": "Remove label" 723 - } 724 - }, 725 - 726 - "highlightImporter": { 727 - "clickToUpload": "Click to upload CSV", 728 - "processing": "Processing...", 729 - "requiredColumns": "Required columns: url, text | Optional: title, tags, color, created_at", 730 - "downloadTemplate": "Download Template", 731 - "importProgress": "Import Progress", 732 - "complete": "{{rate}}% complete", 733 - "failed_one": "{{count}} failed", 734 - "failed_other": "{{count}} failed", 735 - "importing": "Importing highlights...", 736 - "success": "Successfully imported {{count}} highlights!", 737 - "errorsTitle": "{{count}} errors during import", 738 - "row": "Row {{row}}: {{error}}", 739 - "moreErrors": "+{{count}} more errors", 740 - "importAnother": "Import Another File", 741 - "noHighlights": "No valid highlights found in CSV", 742 - "csvMustHaveUrl": "CSV must have a 'url' column", 743 - "csvMustHaveText": "CSV must have a 'text' column (also matches: highlight, excerpt)", 744 - "errorParsing": "Error parsing CSV: {{message}}" 745 - }, 746 - 747 - "profile": { 748 - "notFound": "User not found", 749 - "notFoundMessage": "This profile doesn't exist or couldn't be loaded.", 750 - "edit": "Edit", 751 - "viewInBluesky": "View profile in Bluesky", 752 - "unblock": "Unblock @{{handle}}", 753 - "block": "Block @{{handle}}", 754 - "unmute": "Unmute @{{handle}}", 755 - "mute": "Mute @{{handle}}", 756 - "report": "Report", 757 - "accountLabeled": "Account labeled: {{description}}", 758 - "labelApplied": "This label was applied by a moderation service you subscribe to.", 759 - "show": "Show", 760 - "hide": "Hide", 761 - "blockedBanner": "You have blocked @{{handle}}", 762 - "blockedMessage": "Their content is hidden from your feeds.", 763 - "mutedBanner": "You have muted @{{handle}}", 764 - "mutedMessage": "Their content is hidden from your feeds.", 765 - "blockedByBanner": "@{{handle}} has blocked you. You cannot interact with their content.", 766 - "unblock_action": "Unblock", 767 - "unmute_action": "Unmute", 768 - "emptyCollectionsOwn": "You haven't created any collections yet.", 769 - "emptyCollectionsOther": "No collections", 770 - "itemCount_one": "{{count}} item", 771 - "itemCount_other": "{{count}} items", 772 - "emptyTabOwn": "Your {{tab}} will show up here.", 773 - "emptyTabOther": "Nothing to see here yet." 774 - }, 775 - 776 - "common": { 777 - "loading": "Loading...", 778 - "cancel": "Cancel", 779 - "save": "Save", 780 - "close": "Close", 781 - "back": "Back", 782 - "continue": "Continue", 783 - "error": "Error", 784 - "retry": "Retry", 785 - "loadMore": "Load more", 786 - "new": "New" 787 - }, 788 - 789 - "about": { 790 - "nav": { 791 - "getExtension": "Get Extension", 792 - "install": "Install" 445 + "editHistory": { 446 + "title": "Edit History", 447 + "noHistory": "No edit history found.", 448 + "currentVersion": "Current Version", 449 + "previousVersion": "Previous Version", 450 + "editedAgo": "Edited {{time}} ago", 451 + "postedAgo": "Posted {{time}} ago", 452 + "timeAgo": "{{time}} ago", 453 + "close": "Close", 454 + "failedLoad": "Failed to load edit history" 793 455 }, 794 - "hero": { 795 - "openSource": "Fully open source", 796 - "headline": "Write on the margins", 797 - "headlineAccent": "of the internet.", 798 - "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", 799 - "atProtocol": "AT Protocol", 800 - "descriptionPost": ". Not locked in a silo.", 801 - "openApp": "Open App", 802 - "getStarted": "Get Started", 803 - "installFor": "Install for {{browser}}" 456 + "settings": { 457 + "title": "Settings", 458 + "sections": { 459 + "profile": "Profile", 460 + "appearance": "Appearance", 461 + "language": "Language", 462 + "batchImport": "Batch Import Highlights", 463 + "apiKeys": "API Keys", 464 + "moderation": "Moderation", 465 + "contentFiltering": "Content Filtering", 466 + "iosShortcut": "iOS Shortcut" 467 + }, 468 + "language": { 469 + "label": "Interface Language", 470 + "description": "Choose the language for the Margin interface." 471 + }, 472 + "appearance": { 473 + "disableExternalLinkWarning": "Disable external link warning", 474 + "disableExternalLinkWarningDesc": "Don't ask for confirmation when opening external links", 475 + "communityBookmarks": "Share bookmarks to community feed", 476 + "communityBookmarksDesc": "Your saved bookmarks will appear in the community bookmarks feed" 477 + }, 478 + "batchImport": { 479 + "description": "Upload highlights from CSV. Required: url, text. Optional: title, tags, color, created_at" 480 + }, 481 + "apiKeys": { 482 + "description": "For the iOS shortcut and other apps", 483 + "keyNamePlaceholder": "Key name, e.g. iOS Shortcut", 484 + "generate": "Generate", 485 + "copyNow": "Copy now - you won't see this again!", 486 + "empty": "No API keys yet. Create one to use with the browser extension.", 487 + "created": "Created {{date}}", 488 + "revokeConfirm": "Revoke this key? Apps using it will stop working." 489 + }, 490 + "moderation": { 491 + "description": "Manage blocked and muted accounts", 492 + "blockedAccounts": "Blocked accounts ({{count}})", 493 + "noBlocked": "No blocked accounts", 494 + "unblock": "Unblock", 495 + "mutedAccounts": "Muted accounts ({{count}})", 496 + "noMuted": "No muted accounts", 497 + "unmute": "Unmute" 498 + }, 499 + "contentFiltering": { 500 + "description": "Subscribe to labelers and configure how labeled content appears", 501 + "subscribedLabelers": "Subscribed Labelers", 502 + "noLabelers": "No labelers subscribed", 503 + "labelerDidPlaceholder": "did:plc:… (labeler DID)", 504 + "remove": "Remove", 505 + "add": "Add", 506 + "labelVisibility": "Label Visibility", 507 + "labelVisibilityDesc": "Choose how to handle each label type: Warn shows a blur overlay, Hide removes content entirely, Ignore shows content normally.", 508 + "warn": "Warn", 509 + "hide": "Hide", 510 + "ignore": "Ignore" 511 + }, 512 + "iosShortcut": { 513 + "description": "Save pages to Margin from Safari on iPhone and iPad", 514 + "setupButton": "Setup iOS Shortcut" 515 + }, 516 + "logout": "Log out" 804 517 }, 805 - "features": { 806 - "title": "Everything you need to engage with the web", 807 - "subtitle": "More than bookmarks. A full toolkit for reading, thinking, and sharing on the open web.", 808 - "annotations": { 809 - "title": "Annotations", 810 - "description": "Leave notes on any web page. Start discussions, share insights, or just jot down your thoughts for later." 811 - }, 812 - "highlights": { 813 - "title": "Highlights", 814 - "description": "Select and highlight text on any page with customizable colors. Your highlights are rendered inline with the CSS Highlights API." 815 - }, 816 - "bookmarks": { 817 - "title": "Bookmarks", 818 - "description": "Save pages with one click or a keyboard shortcut. All your bookmarks are synced to your AT Protocol identity." 819 - }, 820 - "collections": { 821 - "title": "Collections", 822 - "description": "Organize your annotations, highlights, and bookmarks into themed collections. Share them publicly or keep them private." 823 - }, 824 - "socialDiscovery": { 825 - "title": "Social Discovery", 826 - "description": "See what others are saying about the pages you visit. Discover annotations, trending tags, and connect with other readers." 827 - }, 828 - "tagsSearch": { 829 - "title": "Tags & Search", 830 - "description": "Tag your annotations for easy retrieval. Search by URL, tag, or content to find exactly what you're looking for." 831 - } 518 + "new": { 519 + "signInRequired": "Sign in to create", 520 + "needsAccount": "You need a Bluesky account", 521 + "signInButton": "Sign in with Bluesky", 522 + "composeTitle": "Compose", 523 + "composeTagline": "Highlight a passage, leave a note, or annotate a page — all from here.", 524 + "urlLabel": "URL to annotate", 525 + "urlPlaceholder": "https://example.com/article" 832 526 }, 833 - "extension": { 834 - "badge": "Browser Extension", 835 - "title": "Your annotation toolkit,", 836 - "titleLine2": "right in the browser", 837 - "description": "The Margin extension brings the full annotation experience directly into every page you visit. Just select, annotate, and go.", 838 - "iosShortcut": "iOS Shortcut", 839 - "features": { 840 - "inlineOverlay": { 841 - "title": "Inline Overlay", 842 - "description": "See annotations and highlights rendered directly on the page. Uses the CSS Highlights API for beautiful, native-feeling text underlines." 527 + "annotationDetail": { 528 + "back": "Back", 529 + "replies": "Replies ({{count}})", 530 + "replyingTo": "Replying to", 531 + "replyPlaceholder": "Write a reply…", 532 + "reply": "Reply", 533 + "signInToReply": "Sign in to reply", 534 + "logIn": "Log in", 535 + "notFound": "Not found", 536 + "mayBeDeleted": "This may have been deleted.", 537 + "backToFeed": "Back to Feed", 538 + "deleteReplyConfirm": "Delete this reply?", 539 + "failedReply": "Failed to post reply: {{message}}", 540 + "failedDelete": "Failed to delete: {{message}}", 541 + "failedResolve": "Failed to resolve handle: {{message}}" 542 + }, 543 + "urlPage": { 544 + "title": "URL Annotations", 545 + "description": "Enter a URL to see all public annotations and highlights from the Margin community.", 546 + "urlPlaceholder": "https://example.com/article", 547 + "view": "View", 548 + "myAnnotations": "My Annotations", 549 + "share": "Share", 550 + "copied": "Copied!", 551 + "contributor_one": "{{count}} contributor", 552 + "contributor_other": "{{count}} contributors", 553 + "loadingAnnotations": "Loading annotations…", 554 + "blankCanvas": "This page is a blank canvas", 555 + "blankCanvasMessage": "No one's left notes here yet. Want to be the first? Grab the Margin extension and share what you're thinking.", 556 + "tabs": { 557 + "all": "All", 558 + "annotations": "Annotations", 559 + "highlights": "Highlights", 560 + "bookmarks": "Bookmarks", 561 + "collections": "Collections" 843 562 }, 844 - "contextMenu": { 845 - "title": "Context Menu & Selection", 846 - "description": "Right-click any selected text to annotate, highlight, or quote it. Or just right-click the page to bookmark it instantly." 563 + "noAnnotationsYet": "No annotations yet", 564 + "noAnnotationsMessage": "Nobody has left a written note on this page.", 565 + "noHighlightsYet": "No highlights yet", 566 + "noHighlightsMessage": "Nobody has highlighted a passage from this page.", 567 + "loadMore": "Load more", 568 + "loading": "Loading…", 569 + "failedLoadMore": "Failed to load more: {{message}}" 570 + }, 571 + "userUrlPage": { 572 + "on": "on", 573 + "loadingAnnotations": "Loading annotations…", 574 + "noUrl": "No URL specified", 575 + "noUrlMessage": "Please provide a URL to view annotations.", 576 + "noItems": "No items found", 577 + "noItemsMessage": "{{name}} hasn't annotated this page yet.", 578 + "noAnnotations": "No annotations", 579 + "noHighlights": "No highlights", 580 + "loadMore": "Load more", 581 + "loading": "Loading…", 582 + "failedLoadMore": "Failed to load more: {{message}}" 583 + }, 584 + "adminModeration": { 585 + "accessDenied": "Access Denied", 586 + "accessDeniedMessage": "You don't have permission to access the moderation dashboard.", 587 + "title": "Moderation", 588 + "stats": "{{pending}} pending · {{total}} total reports", 589 + "tabs": { 590 + "reports": "Reports", 591 + "actions": "Actions", 592 + "labels": "Labels" 593 + }, 594 + "filters": { 595 + "all": "All", 596 + "pending": "Pending", 597 + "resolved": "Resolved", 598 + "dismissed": "Dismissed", 599 + "escalated": "Escalated" 600 + }, 601 + "reports": { 602 + "empty": "No reports", 603 + "emptyPending": "No pending reports to review.", 604 + "emptyFiltered": "No {{status}} reports found.", 605 + "reportedUser": "Reported User", 606 + "reporter": "Reporter", 607 + "details": "Details", 608 + "contentUri": "Content URI", 609 + "acknowledge": "Acknowledge", 610 + "dismiss": "Dismiss", 611 + "takedown": "Takedown" 847 612 }, 848 - "keyboard": { 849 - "title": "Keyboard Shortcuts", 850 - "description": "Toggle the overlay, bookmark the current page, or annotate selected text without reaching for the mouse." 613 + "reasons": { 614 + "spam": "Spam", 615 + "violation": "Rule Violation", 616 + "misleading": "Misleading", 617 + "sexual": "Inappropriate", 618 + "rude": "Rude / Harassing", 619 + "other": "Other" 851 620 }, 852 - "sidePanel": { 853 - "title": "Side Panel", 854 - "description": "Open the Margin side panel to browse annotations, bookmarks, and collections without leaving the page you're reading." 621 + "actions": { 622 + "applyWarning": "Apply Content Warning", 623 + "applyWarningDesc": "Add a content warning label to a specific post or account. Users will see a blur overlay with the option to reveal.", 624 + "accountDid": "Account DID", 625 + "contentUri": "Content URI", 626 + "contentUriOptional": "optional — leave empty for account-level label", 627 + "labelType": "Label Type", 628 + "applyLabel": "Apply Label", 629 + "labelApplied": "Label applied" 630 + }, 631 + "labels": { 632 + "empty": "No labels", 633 + "emptyMessage": "No content labels have been applied yet.", 634 + "accountLevel": "Account-level label", 635 + "removeConfirm": "Remove this label?", 636 + "removeTitle": "Remove label" 855 637 } 856 - } 857 638 }, 858 - "protocol": { 859 - "badge": "Decentralized", 860 - "title": "Your data, your identity", 861 - "descriptionPre": "Margin is built on the", 862 - "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.", 863 - "point0": "Sign in with your AT Protocol handle, no new account needed", 864 - "point1": "Your data lives in your PDS, portable and under your control", 865 - "point2": "Custom Lexicon schemas for annotations, highlights, collections & more", 866 - "point3": "Fully open source, check out the code and contribute" 639 + "highlightImporter": { 640 + "clickToUpload": "Click to upload CSV", 641 + "processing": "Processing…", 642 + "requiredColumns": "Required columns: url, text | Optional: title, tags, color, created_at", 643 + "downloadTemplate": "Download Template", 644 + "importProgress": "Import Progress", 645 + "complete": "{{rate}}% complete", 646 + "failed_one": "{{count}} failed", 647 + "failed_other": "{{count}} failed", 648 + "importing": "Importing highlights…", 649 + "success": "Successfully imported {{count}} highlights!", 650 + "errorsTitle": "{{count}} errors during import", 651 + "row": "Row {{row}}: {{error}}", 652 + "moreErrors": "+{{count}} more errors", 653 + "importAnother": "Import Another File", 654 + "noHighlights": "No valid highlights found in CSV", 655 + "csvMustHaveUrl": "CSV must have a 'url' column", 656 + "csvMustHaveText": "CSV must have a 'text' column (also matches: highlight, excerpt)", 657 + "errorParsing": "Error parsing CSV: {{message}}" 867 658 }, 868 - "cta": { 869 - "title": "Start writing on the margins", 870 - "description": "Join the open annotation layer. Sign in with your AT Protocol identity and install the extension to get started.", 871 - "signIn": "Sign in", 872 - "viewGitHub": "View on GitHub", 873 - "viewTangled": "View on Tangled" 659 + "common": { 660 + "loading": "Loading…", 661 + "cancel": "Cancel", 662 + "save": "Save", 663 + "close": "Close", 664 + "back": "Back", 665 + "continue": "Continue", 666 + "error": "Error", 667 + "retry": "Retry", 668 + "loadMore": "Load more", 669 + "new": "New" 874 670 }, 875 - "footer": { 876 - "privacy": "Privacy", 877 - "terms": "Terms", 878 - "contact": "Contact" 671 + "about": { 672 + "nav": { 673 + "getExtension": "Get Extension", 674 + "install": "Install" 675 + }, 676 + "hero": { 677 + "openSource": "Fully open source", 678 + "headline": "Write on the margins", 679 + "headlineAccent": "of the internet.", 680 + "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", 681 + "atProtocol": "AT Protocol", 682 + "descriptionPost": ". Not locked in a silo.", 683 + "openApp": "Open App", 684 + "getStarted": "Get Started", 685 + "installFor": "Install for {{browser}}" 686 + }, 687 + "features": { 688 + "title": "Everything you need to engage with the web", 689 + "subtitle": "More than bookmarks. A full toolkit for reading, thinking, and sharing on the open web.", 690 + "annotations": { 691 + "title": "Annotations", 692 + "description": "Leave notes on any web page. Start discussions, share insights, or just jot down your thoughts for later." 693 + }, 694 + "highlights": { 695 + "title": "Highlights", 696 + "description": "Select and highlight text on any page with customizable colors. Your highlights are rendered inline with the CSS Highlights API." 697 + }, 698 + "bookmarks": { 699 + "title": "Bookmarks", 700 + "description": "Save pages with one click or a keyboard shortcut. All your bookmarks are synced to your AT Protocol identity." 701 + }, 702 + "collections": { 703 + "title": "Collections", 704 + "description": "Organize your annotations, highlights, and bookmarks into themed collections. Share them publicly or keep them private." 705 + }, 706 + "socialDiscovery": { 707 + "title": "Social Discovery", 708 + "description": "See what others are saying about the pages you visit. Discover annotations, trending tags, and connect with other readers." 709 + }, 710 + "tagsSearch": { 711 + "title": "Tags & Search", 712 + "description": "Tag your annotations for easy retrieval. Search by URL, tag, or content to find exactly what you're looking for." 713 + } 714 + }, 715 + "extension": { 716 + "badge": "Browser Extension", 717 + "title": "Your annotation toolkit,", 718 + "titleLine2": "right in the browser", 719 + "description": "The Margin extension brings the full annotation experience directly into every page you visit. Just select, annotate, and go.", 720 + "iosShortcut": "iOS Shortcut", 721 + "features": { 722 + "inlineOverlay": { 723 + "title": "Inline Overlay", 724 + "description": "See annotations and highlights rendered directly on the page. Uses the CSS Highlights API for beautiful, native-feeling text underlines." 725 + }, 726 + "contextMenu": { 727 + "title": "Context Menu & Selection", 728 + "description": "Right-click any selected text to annotate, highlight, or quote it. Or just right-click the page to bookmark it instantly." 729 + }, 730 + "keyboard": { 731 + "title": "Keyboard Shortcuts", 732 + "description": "Toggle the overlay, bookmark the current page, or annotate selected text without reaching for the mouse." 733 + }, 734 + "sidePanel": { 735 + "title": "Side Panel", 736 + "description": "Open the Margin side panel to browse annotations, bookmarks, and collections without leaving the page you're reading." 737 + } 738 + } 739 + }, 740 + "protocol": { 741 + "badge": "Decentralized", 742 + "title": "Your data, your identity", 743 + "descriptionPre": "Margin is built on the", 744 + "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.", 745 + "point0": "Sign in with your AT Protocol handle, no new account needed", 746 + "point1": "Your data lives in your PDS, portable and under your control", 747 + "point2": "Custom Lexicon schemas for annotations, highlights, collections & more", 748 + "point3": "Fully open source, check out the code and contribute" 749 + }, 750 + "cta": { 751 + "title": "Start writing on the margins", 752 + "description": "Join the open annotation layer. Sign in with your AT Protocol identity and install the extension to get started.", 753 + "signIn": "Sign in", 754 + "viewGitHub": "View on GitHub", 755 + "viewTangled": "View on Tangled" 756 + }, 757 + "footer": { 758 + "privacy": "Privacy", 759 + "terms": "Terms", 760 + "contact": "Contact" 761 + } 879 762 } 880 - } 881 763 }