Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
409 changes: 409 additions & 0 deletions OpenScreenShot-claude-code-brief.md

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions PRIVACY.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ The microphone and camera, when you enable them, are opened directly by your bro
permission prompt — the extension never sees a stream until you grant it, and the stream
never leaves your device.

## Uninstall

If you uninstall the extension, your browser opens a feedback page at
<https://openscreenshot.app/uninstall>. The page's address carries only the extension
version and your UI language. We do not receive your browsing history, any page you
visited, or any capture — the extension has none of that to send. The page itself sets no
cookies and runs no analytics; nothing is sent unless you type feedback and press Send.

## Third-party services

OpenScreenShot does not use any third-party analytics, advertising, or data-processing services. PDF export is handled by a small writer built into the extension (`src/editor/pdf-writer.ts`), so exporting a PDF makes no network request either.
Expand Down
Binary file modified media/store/cws-1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/store/cws-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/store/cws-3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/store/cws-4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/store/marquee.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
116 changes: 116 additions & 0 deletions public/_locales/ar/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
{
"extName": {
"message": "لقطة شاشة للصفحة الكاملة - OpenScreenShot",
"description": "Extension name shown in Chrome UI."
},
"extDesc": {
"message": "لقطة شاشة للصفحة الكاملة بنقرة واحدة. مفتوح المصدر، خصوصية 100%، بلا حساب، بلا رفع.",
"description": "Extension description shown in the Chrome Web Store and extensions page."
},
"modeFullPage": {
"message": "الصفحة الكاملة",
"description": "Capture mode: capture the entire scrolling page."
},
"modeFullPageSub": {
"message": "التقاط الصفحة القابلة للتمرير بأكملها",
"description": "Subtitle for the Full Page capture mode."
},
"modeVisible": {
"message": "المنطقة المرئية",
"description": "Capture mode: capture what is currently visible."
},
"modeVisibleSub": {
"message": "ما تراه الآن",
"description": "Subtitle for the Visible Area capture mode."
},
"modeRegion": {
"message": "منطقة محددة",
"description": "Capture mode: capture a user-dragged region."
},
"modeRegionSub": {
"message": "انقر واسحب للتحديد",
"description": "Subtitle for the Selected Region capture mode."
},
"repeatLastRegion": {
"message": "تكرار آخر منطقة",
"description": "Footer link and context menu item that re-captures the previous region selection."
},
"settingsTitle": {
"message": "الإعدادات",
"description": "Settings panel heading."
},
"expressLabel": {
"message": "النقر على أيقونة شريط الأدوات يلتقط الصفحة الكاملة",
"description": "Label for the capture-on-icon-click row in the popup, and the icon context-menu checkbox."
},
"expressHint": {
"message": "أوقفه لاختيار الصفحة الكاملة أو المنطقة المرئية أو منطقة محددة في كل مرة.",
"description": "Hint shown under the express row when express mode is on."
},
"expressMigratedNote": {
"message": "النقر على الأيقونة يلتقط الآن الصفحة الكاملة. انقر بزر الفأرة الأيمن للأوضاع الأخرى.",
"description": "One-time editor note after the update that made a toolbar click capture the full page."
},
"editorRateLabel": {
"message": "قيّم",
"description": "Editor topbar: label on the always-visible Rate star."
},
"editorRateTooltip": {
"message": "30 ثانية. هكذا يجد الآخرون أداة لقطات شاشة تحترم الخصوصية.",
"description": "Editor topbar: tooltip on the Rate star."
},
"ratePromptHeadline": {
"message": "هل توفر لك هذه الأداة الوقت؟",
"description": "One-time post-export rate prompt: headline."
},
"ratePromptBody": {
"message": "تقييم قصير في متجر Chrome الإلكتروني هو الطريقة الأساسية لاكتشاف أداة تحترم الخصوصية. يستغرق 30 ثانية.",
"description": "One-time post-export rate prompt: body."
},
"ratePromptRate": {
"message": "قيّم في متجر Chrome الإلكتروني",
"description": "One-time post-export rate prompt: button that opens the reviews tab."
},
"ratePromptLater": {
"message": "ليس الآن",
"description": "One-time post-export rate prompt: dismiss button."
},
"errNoTab": {
"message": "لم يتم العثور على علامة تبويب نشطة.",
"description": "Capture error: no active tab."
},
"errProtectedPage": {
"message": "يتعذر التقاط هذه الصفحة المحمية.",
"description": "Capture error: browser-protected page."
},
"errBlankPage": {
"message": "لا تحتوي هذه الصفحة على محتوى قابل للتمرير.",
"description": "Capture error: nothing scrollable to capture."
},
"errTooLarge": {
"message": "هذه الصفحة أطول من أن تلتقط في صورة واحدة ($PX$ بكسل). جرّب المنطقة المرئية أو منطقة محددة.",
"description": "Capture error: page taller than one canvas. $PX$ is the height in device pixels.",
"placeholders": {
"px": {
"content": "$1",
"example": "35000"
}
}
},
"errNoRegion": {
"message": "المنطقة المحفوظة لا تناسب هذه الشاشة — حدد منطقة أولاً.",
"description": "Capture error: repeat-last-region with no region that fits."
},
"errClipboard": {
"message": "تعذر نسخ لقطة الشاشة إلى الحافظة.",
"description": "Quick-action error: clipboard write failed."
},
"errSave": {
"message": "تعذر حفظ لقطة الشاشة على القرص.",
"description": "Quick-action error: disk save failed."
},
"errUnknown": {
"message": "فشل الالتقاط بشكل غير متوقع.",
"description": "Capture error: unexpected failure."
}
}
94 changes: 90 additions & 4 deletions public/_locales/de/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"extName": {
"message": "Ganzseiten-Screenshot & Anmerkungen - OpenScreenShot",
"message": "Ganzseiten-Screenshot - OpenScreenShot",
"description": "Extension name shown in Chrome UI."
},
"extDesc": {
"message": "Screenshots: ganze Seite, Ausschnitt, Sichtbares. Mit Anmerkungs-Editor. PNG, JPEG, WebP, PDF. 100 % privat, offline, kein Upload.",
"message": "Ganzseiten-Screenshot mit einem Klick. Open Source, 100 % privat, kein Konto, kein Upload.",
"description": "Extension description shown in the Chrome Web Store and extensions page."
},
"modeFullPage": {
Expand Down Expand Up @@ -222,13 +222,17 @@
"description": "Hint shown under the after-capture row when Download is selected."
},
"expressLabel": {
"message": "Screenshot per Symbolklick",
"message": "Klick auf das Symbol nimmt die ganze Seite auf",
"description": "Label for the capture-on-icon-click row in the popup, and the icon context-menu checkbox."
},
"expressHint": {
"message": "Das Symbol nimmt jetzt die ganze Seite auf. Rechtsklick auf das Symbol schaltet das aus.",
"message": "Deaktivieren, um jedes Mal zwischen Ganze Seite, Sichtbarer Bereich oder Ausschnitt zu wählen.",
"description": "Hint shown under the express row when express mode is on."
},
"expressMigratedNote": {
"message": "Ein Klick auf das Symbol nimmt jetzt die ganze Seite auf. Andere Modi per Rechtsklick.",
"description": "One-time editor note after the update that made a toolbar click capture the full page."
},
"recOverlayPause": {
"message": "Pause",
"description": "Recording control bar: button that pauses the active recording."
Expand Down Expand Up @@ -2252,5 +2256,87 @@
"settingsSupport": {
"message": "Unterstützen",
"description": "Popup settings: label for the row holding the Ko-fi and cool-stuff links."
},
"welcomeTitle": {
"message": "Willkommen",
"description": "Welcome page: browser tab title."
},
"welcomeHeadline": {
"message": "Fertig. Klicke auf das Symbol.",
"description": "Welcome page: headline inviting the first icon click."
},
"welcomeBody": {
"message": "OpenScreenShot nimmt die ganze Seite mit einem Klick auf. Kein Konto. Nichts verlässt diesen Rechner. Probiere es gleich auf dieser Seite.",
"description": "Welcome page: one-paragraph pitch under the headline."
},
"welcomePrimary": {
"message": "Klicke auf das OpenScreenShot-Symbol in der Symbolleiste.",
"description": "Welcome page: the primary instruction line."
},
"welcomeSecondary": {
"message": "Oder drücke Strg+Umschalt+S (Cmd+Umschalt+S auf dem Mac).",
"description": "Welcome page: the keyboard-shortcut alternative line."
},
"editorRateLabel": {
"message": "Bewerten",
"description": "Editor topbar: label on the always-visible Rate star."
},
"editorRateTooltip": {
"message": "30 Sekunden. So finden andere ein privates Screenshot-Tool.",
"description": "Editor topbar: tooltip on the Rate star."
},
"ratePromptHeadline": {
"message": "Spart dir das Zeit?",
"description": "One-time post-export rate prompt: headline."
},
"ratePromptBody": {
"message": "Eine kurze Bewertung im Chrome Web Store ist der wichtigste Weg, wie ein privates Tool gefunden wird. Sie dauert 30 Sekunden.",
"description": "One-time post-export rate prompt: body."
},
"ratePromptRate": {
"message": "Im Chrome Web Store bewerten",
"description": "One-time post-export rate prompt: button that opens the reviews tab."
},
"ratePromptLater": {
"message": "Nicht jetzt",
"description": "One-time post-export rate prompt: dismiss button."
},
"errNoTab": {
"message": "Kein aktiver Tab gefunden.",
"description": "Capture error: no active tab."
},
"errProtectedPage": {
"message": "Diese geschützte Seite kann nicht aufgenommen werden.",
"description": "Capture error: browser-protected page."
},
"errBlankPage": {
"message": "Diese Seite hat keinen scrollbaren Inhalt.",
"description": "Capture error: nothing scrollable to capture."
},
"errTooLarge": {
"message": "Diese Seite ist zu hoch für ein einzelnes Bild ($PX$ px). Versuche Sichtbarer Bereich oder Ausschnitt.",
"description": "Capture error: page taller than one canvas. $PX$ is the height in device pixels.",
"placeholders": {
"px": {
"content": "$1",
"example": "35000"
}
}
},
"errNoRegion": {
"message": "Kein gespeicherter Ausschnitt passt auf diesen Bildschirm — wähle zuerst einen aus.",
"description": "Capture error: repeat-last-region with no region that fits."
},
"errClipboard": {
"message": "Der Screenshot konnte nicht in die Zwischenablage kopiert werden.",
"description": "Quick-action error: clipboard write failed."
},
"errSave": {
"message": "Der Screenshot konnte nicht gespeichert werden.",
"description": "Quick-action error: disk save failed."
},
"errUnknown": {
"message": "Die Aufnahme ist unerwartet fehlgeschlagen.",
"description": "Capture error: unexpected failure."
}
}
Loading
Loading