Bug réel : la bannière 'Surlignez le texte à clipper' n'apparaissait jamais en pratique parce que le side panel envoyait SET_PICK_MODE avant que le content script ne soit prêt (race condition MV3 entre chrome.scripting.executeScript et la mise en place du listener chrome.runtime.onMessage). Le retry PING dans ensureContentScript ne suffisait pas : le listener sidepanel peut aussi être en retard. Fix radical : content.js affiche la bannière IMMÉDIATEMENT à l'initialisation, sans attendre SET_PICK_MODE. L'utilisateur voit immédiatement que l'extension est active. Un bouton ✕ permet de la fermer (state local au tab). Pas de dépendance sur le side panel pour le feedback visuel. + manifest : retrait de optional_host_permissions (redondant avec host_permissions http://*/* et https://*/*, peut perturber Chrome en dev). + bannière rediseignée : max-width 640px responsive, animation slideIn, bouton ✕ accessible. + nouvelles clés i18n bannerDismiss dans les 15 locales. + build : exclusion de store-assets/ du zip et du xpi (sinon le package Store faisait 327 Ko au lieu de 47 Ko).
194 lines
4.3 KiB
JSON
194 lines
4.3 KiB
JSON
{
|
|
"extName": {
|
|
"message": "Memento Web Clipper"
|
|
},
|
|
"extDescription": {
|
|
"message": "Capture web pages and highlighted text into your Memento notebooks — connects to your own Memento server."
|
|
},
|
|
"extActionTitle": {
|
|
"message": "Clip to Memento"
|
|
},
|
|
"webClipper": {
|
|
"message": "Web Clipper"
|
|
},
|
|
"connected": {
|
|
"message": "Connected"
|
|
},
|
|
"disconnected": {
|
|
"message": "Not connected"
|
|
},
|
|
"instanceSettings": {
|
|
"message": "Memento URL"
|
|
},
|
|
"instanceUrlLabel": {
|
|
"message": "Your Memento instance URL"
|
|
},
|
|
"presetProduction": {
|
|
"message": "Production preset · memento-note.com"
|
|
},
|
|
"applyReconnect": {
|
|
"message": "Apply and reconnect"
|
|
},
|
|
"openMomento": {
|
|
"message": "Open Memento"
|
|
},
|
|
"settingsHint": {
|
|
"message": "Paste the HTTPS (or LAN) URL of your Memento server. Cookies in this browser handle sign-in."
|
|
},
|
|
"footerVersion": {
|
|
"message": "Memento Web Clipper 0.4.0"
|
|
},
|
|
"errPermissionDenied": {
|
|
"message": "Memento can't access this tab. Check keyboard/site extension permissions — or open the Side Panel."
|
|
},
|
|
"notebookUnnamed": {
|
|
"message": "Untitled notebook"
|
|
},
|
|
"noNotebooks": {
|
|
"message": "No notebooks yet"
|
|
},
|
|
"readingTimeOne": {
|
|
"message": "~1 minute read"
|
|
},
|
|
"readingTimeOther": {
|
|
"message": "Approx. $COUNT$ min read",
|
|
"placeholders": {
|
|
"COUNT": {
|
|
"content": "$1",
|
|
"example": "5"
|
|
}
|
|
}
|
|
},
|
|
"selectionDetected": {
|
|
"message": "Selection detected"
|
|
},
|
|
"ignore": {
|
|
"message": "ignore"
|
|
},
|
|
"selectionHint": {
|
|
"message": "Tip: highlight text on the page to clip a precise selection as a note."
|
|
},
|
|
"clipSelection": {
|
|
"message": "Clip selection"
|
|
},
|
|
"clipPage": {
|
|
"message": "Clip this page"
|
|
},
|
|
"saveLinkOnly": {
|
|
"message": "Save link only"
|
|
},
|
|
"pageNotAccessible": {
|
|
"message": "Can't clip here — this page blocks extension access."
|
|
},
|
|
"errLoginRequired": {
|
|
"message": "Please sign in to Memento in this browser first."
|
|
},
|
|
"errLoadNotebooks": {
|
|
"message": "Could not load notebooks. Try reconnecting."
|
|
},
|
|
"notebooksLoaded": {
|
|
"message": "Notebooks loaded"
|
|
},
|
|
"connecting": {
|
|
"message": "Connecting…"
|
|
},
|
|
"connectedToUrl": {
|
|
"message": "Connected to $URL$",
|
|
"placeholders": {
|
|
"URL": {
|
|
"content": "$1",
|
|
"example": "https://memento-note.com"
|
|
}
|
|
}
|
|
},
|
|
"restrictedPage": {
|
|
"message": "Restricted page — clip via the Memento toolbar or Side Panel."
|
|
},
|
|
"destinationNotebook": {
|
|
"message": "Destination notebook"
|
|
},
|
|
"activePage": {
|
|
"message": "Active page"
|
|
},
|
|
"previewBeforeSave": {
|
|
"message": "Review before saving"
|
|
},
|
|
"noteTitleLabel": {
|
|
"message": "Title"
|
|
},
|
|
"excerptLabel": {
|
|
"message": "Excerpt"
|
|
},
|
|
"saveToMomento": {
|
|
"message": "Save to Memento"
|
|
},
|
|
"back": {
|
|
"message": "Back"
|
|
},
|
|
"analyzingSource": {
|
|
"message": "Analyzing source"
|
|
},
|
|
"statusAnalyzing": {
|
|
"message": "Analyzing…"
|
|
},
|
|
"statusSaving": {
|
|
"message": "Saving…"
|
|
},
|
|
"processingDetail": {
|
|
"message": "Generating tags, a semantic summary, and embeddings."
|
|
},
|
|
"noteSaved": {
|
|
"message": "Note saved"
|
|
},
|
|
"sentToNotebook": {
|
|
"message": "Saved to $NOTEBOOK$",
|
|
"placeholders": {
|
|
"NOTEBOOK": {
|
|
"content": "$1",
|
|
"example": "Read later"
|
|
}
|
|
}
|
|
},
|
|
"viewInMomento": {
|
|
"message": "View in Memento"
|
|
},
|
|
"clipAnother": {
|
|
"message": "Clip another page"
|
|
},
|
|
"failure": {
|
|
"message": "Could not complete"
|
|
},
|
|
"genericError": {
|
|
"message": "Something went wrong reaching your Memento instance."
|
|
},
|
|
"retry": {
|
|
"message": "Retry"
|
|
},
|
|
"errNoSelection": {
|
|
"message": "Select text first, or clip the full page."
|
|
},
|
|
"errAnalyzeFailed": {
|
|
"message": "Could not analyze this page."
|
|
},
|
|
"errSaveFailed": {
|
|
"message": "Could not save your note."
|
|
},
|
|
"errNetwork": {
|
|
"message": "Network issue — check your connection and Memento URL."
|
|
},
|
|
"bannerPickText": {
|
|
"message": "Highlight text on the page, or clip the whole page."
|
|
},
|
|
"errLoginHintUrl": {
|
|
"message": "Connected to: $URL$",
|
|
"placeholders": {
|
|
"URL": {
|
|
"content": "$1"
|
|
}
|
|
}
|
|
},
|
|
"bannerDismiss": {
|
|
"message": "Dismiss"
|
|
}
|
|
}
|