@jjlmoya/utils-audiovisual 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +59 -58
- package/src/category/i18n/de.ts +198 -0
- package/src/category/i18n/fr.ts +1 -1
- package/src/category/i18n/id.ts +198 -0
- package/src/category/i18n/it.ts +198 -0
- package/src/category/i18n/ja.ts +198 -0
- package/src/category/i18n/ko.ts +198 -0
- package/src/category/i18n/nl.ts +198 -0
- package/src/category/i18n/pl.ts +198 -0
- package/src/category/i18n/pt.ts +198 -0
- package/src/category/i18n/ru.ts +198 -0
- package/src/category/i18n/sv.ts +198 -0
- package/src/category/i18n/tr.ts +198 -0
- package/src/category/i18n/zh.ts +198 -0
- package/src/category/index.ts +31 -3
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/chromaticLens/i18n/de.ts +246 -0
- package/src/tool/chromaticLens/i18n/en.ts +1 -1
- package/src/tool/chromaticLens/i18n/es.ts +1 -1
- package/src/tool/chromaticLens/i18n/fr.ts +1 -1
- package/src/tool/chromaticLens/i18n/id.ts +246 -0
- package/src/tool/chromaticLens/i18n/it.ts +246 -0
- package/src/tool/chromaticLens/i18n/ja.ts +246 -0
- package/src/tool/chromaticLens/i18n/ko.ts +246 -0
- package/src/tool/chromaticLens/i18n/nl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pt.ts +246 -0
- package/src/tool/chromaticLens/i18n/ru.ts +246 -0
- package/src/tool/chromaticLens/i18n/sv.ts +246 -0
- package/src/tool/chromaticLens/i18n/tr.ts +246 -0
- package/src/tool/chromaticLens/i18n/zh.ts +246 -0
- package/src/tool/chromaticLens/index.ts +15 -7
- package/src/tool/collageMaker/i18n/de.ts +233 -0
- package/src/tool/collageMaker/i18n/en.ts +1 -1
- package/src/tool/collageMaker/i18n/es.ts +1 -1
- package/src/tool/collageMaker/i18n/fr.ts +1 -1
- package/src/tool/collageMaker/i18n/id.ts +233 -0
- package/src/tool/collageMaker/i18n/it.ts +233 -0
- package/src/tool/collageMaker/i18n/ja.ts +233 -0
- package/src/tool/collageMaker/i18n/ko.ts +233 -0
- package/src/tool/collageMaker/i18n/nl.ts +233 -0
- package/src/tool/collageMaker/i18n/pl.ts +233 -0
- package/src/tool/collageMaker/i18n/pt.ts +233 -0
- package/src/tool/collageMaker/i18n/ru.ts +233 -0
- package/src/tool/collageMaker/i18n/sv.ts +233 -0
- package/src/tool/collageMaker/i18n/tr.ts +233 -0
- package/src/tool/collageMaker/i18n/zh.ts +233 -0
- package/src/tool/collageMaker/index.ts +15 -6
- package/src/tool/exifCleaner/i18n/de.ts +277 -0
- package/src/tool/exifCleaner/i18n/en.ts +2 -2
- package/src/tool/exifCleaner/i18n/es.ts +2 -2
- package/src/tool/exifCleaner/i18n/fr.ts +4 -4
- package/src/tool/exifCleaner/i18n/id.ts +277 -0
- package/src/tool/exifCleaner/i18n/it.ts +277 -0
- package/src/tool/exifCleaner/i18n/ja.ts +277 -0
- package/src/tool/exifCleaner/i18n/ko.ts +277 -0
- package/src/tool/exifCleaner/i18n/nl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pt.ts +277 -0
- package/src/tool/exifCleaner/i18n/ru.ts +277 -0
- package/src/tool/exifCleaner/i18n/sv.ts +277 -0
- package/src/tool/exifCleaner/i18n/tr.ts +277 -0
- package/src/tool/exifCleaner/i18n/zh.ts +277 -0
- package/src/tool/exifCleaner/index.ts +16 -8
- package/src/tool/imageCompressor/i18n/de.ts +242 -0
- package/src/tool/imageCompressor/i18n/en.ts +2 -2
- package/src/tool/imageCompressor/i18n/es.ts +2 -2
- package/src/tool/imageCompressor/i18n/id.ts +242 -0
- package/src/tool/imageCompressor/i18n/it.ts +242 -0
- package/src/tool/imageCompressor/i18n/ja.ts +242 -0
- package/src/tool/imageCompressor/i18n/ko.ts +242 -0
- package/src/tool/imageCompressor/i18n/nl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pt.ts +242 -0
- package/src/tool/imageCompressor/i18n/ru.ts +242 -0
- package/src/tool/imageCompressor/i18n/sv.ts +242 -0
- package/src/tool/imageCompressor/i18n/tr.ts +242 -0
- package/src/tool/imageCompressor/i18n/zh.ts +244 -0
- package/src/tool/imageCompressor/index.ts +15 -7
- package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/en.ts +2 -2
- package/src/tool/printQualityCalculator/i18n/es.ts +3 -3
- package/src/tool/printQualityCalculator/i18n/fr.ts +3 -3
- package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
- package/src/tool/printQualityCalculator/index.ts +15 -7
- package/src/tool/privacyBlur/i18n/de.ts +238 -0
- package/src/tool/privacyBlur/i18n/en.ts +1 -1
- package/src/tool/privacyBlur/i18n/es.ts +1 -1
- package/src/tool/privacyBlur/i18n/fr.ts +1 -1
- package/src/tool/privacyBlur/i18n/id.ts +238 -0
- package/src/tool/privacyBlur/i18n/it.ts +238 -0
- package/src/tool/privacyBlur/i18n/ja.ts +238 -0
- package/src/tool/privacyBlur/i18n/ko.ts +238 -0
- package/src/tool/privacyBlur/i18n/nl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pt.ts +238 -0
- package/src/tool/privacyBlur/i18n/ru.ts +238 -0
- package/src/tool/privacyBlur/i18n/sv.ts +238 -0
- package/src/tool/privacyBlur/i18n/tr.ts +238 -0
- package/src/tool/privacyBlur/i18n/zh.ts +238 -0
- package/src/tool/privacyBlur/index.ts +15 -7
- package/src/tool/subtitleSync/i18n/de.ts +241 -0
- package/src/tool/subtitleSync/i18n/en.ts +1 -1
- package/src/tool/subtitleSync/i18n/es.ts +1 -1
- package/src/tool/subtitleSync/i18n/fr.ts +8 -8
- package/src/tool/subtitleSync/i18n/id.ts +241 -0
- package/src/tool/subtitleSync/i18n/it.ts +241 -0
- package/src/tool/subtitleSync/i18n/ja.ts +241 -0
- package/src/tool/subtitleSync/i18n/ko.ts +241 -0
- package/src/tool/subtitleSync/i18n/nl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pt.ts +241 -0
- package/src/tool/subtitleSync/i18n/ru.ts +241 -0
- package/src/tool/subtitleSync/i18n/sv.ts +241 -0
- package/src/tool/subtitleSync/i18n/tr.ts +241 -0
- package/src/tool/subtitleSync/i18n/zh.ts +241 -0
- package/src/tool/subtitleSync/index.ts +15 -7
- package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
- package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
- package/src/tool/timelapseCalculator/index.ts +16 -8
- package/src/tool/tvDistance/i18n/de.ts +223 -0
- package/src/tool/tvDistance/i18n/en.ts +1 -1
- package/src/tool/tvDistance/i18n/es.ts +1 -1
- package/src/tool/tvDistance/i18n/fr.ts +1 -1
- package/src/tool/tvDistance/i18n/id.ts +223 -0
- package/src/tool/tvDistance/i18n/it.ts +223 -0
- package/src/tool/tvDistance/i18n/ja.ts +223 -0
- package/src/tool/tvDistance/i18n/ko.ts +223 -0
- package/src/tool/tvDistance/i18n/nl.ts +223 -0
- package/src/tool/tvDistance/i18n/pl.ts +223 -0
- package/src/tool/tvDistance/i18n/pt.ts +223 -0
- package/src/tool/tvDistance/i18n/ru.ts +223 -0
- package/src/tool/tvDistance/i18n/sv.ts +223 -0
- package/src/tool/tvDistance/i18n/tr.ts +223 -0
- package/src/tool/tvDistance/i18n/zh.ts +223 -0
- package/src/tool/tvDistance/index.ts +15 -7
- package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/en.ts +1 -1
- package/src/tool/videoFrameExtractor/i18n/es.ts +1 -1
- package/src/tool/videoFrameExtractor/i18n/fr.ts +1 -1
- package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
- package/src/tool/videoFrameExtractor/index.ts +16 -8
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { PrivacyBlurUI, PrivacyBlurLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'online-privacy-editor-pixelate-blur-faces-photos';
|
|
5
|
+
const title = 'Online Privacy Editor: Gezichten in foto\'s verpixelen en verbergen';
|
|
6
|
+
const description = 'Bescherm je identiteit door gevoelige delen van je foto\'s te censureren. Verpixel gezichten, vervaag documenten of dek privé-informatie 100% lokaal af.';
|
|
7
|
+
|
|
8
|
+
const ui: PrivacyBlurUI = {
|
|
9
|
+
toolPixel: "Verpixelen",
|
|
10
|
+
toolBlur: "Vervagen",
|
|
11
|
+
toolSolid: "Vlak",
|
|
12
|
+
intensityLabel: "Intensiteit",
|
|
13
|
+
undoButton: "Ongedaan maken",
|
|
14
|
+
downloadButton: "Opslaan",
|
|
15
|
+
dropTitle: "Privacy Editor",
|
|
16
|
+
dropSubtitle: "Sleep je afbeelding hierheen of klik om te beginnen",
|
|
17
|
+
privacySecureLabel: "100% Lokaal",
|
|
18
|
+
offlineLabel: "Offline",
|
|
19
|
+
autoDetectFaces: "Auto Detectie",
|
|
20
|
+
loadingModels: "Modellen laden...",
|
|
21
|
+
noFacesDetected: "Geen gezichten automatisch gedetecteerd.",
|
|
22
|
+
faqTitle: "Veelgestelde Vragen",
|
|
23
|
+
bibliographyTitle: "Referenties"
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const faq: PrivacyBlurLocaleContent['faq'] = [
|
|
27
|
+
{
|
|
28
|
+
question: "Worden mijn foto's naar een server geüpload?",
|
|
29
|
+
answer: "Nee. De privacy editor werkt volledig in je browser. Pixels worden lokaal gewijzigd en er wordt niets buiten je apparaat verzonden.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: "Hoe werkt automatische gezichtsdetectie?",
|
|
33
|
+
answer: "We gebruiken een lichtgewicht neuraal netwerk (TinyFaceDetector) dat in je browser draait om gezichtskenmerken te identificeren zonder een externe verbinding nodig te hebben.",
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
const howTo: PrivacyBlurLocaleContent['howTo'] = [
|
|
38
|
+
{
|
|
39
|
+
name: "Upload je foto",
|
|
40
|
+
text: "Sleep of selecteer de afbeelding die gevoelige informatie bevat die je wilt verbergen.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "Kies de tool",
|
|
44
|
+
text: "Kies tussen verpixelen, vervagen of een vlakke dekking, afhankelijk van het privacyniveau dat je nodig hebt.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "Markeer het gebied",
|
|
48
|
+
text: "Klik en sleep over de zone die je wilt beschermen (gezichten, nummerplaten, namen, enz.).",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "Sla het resultaat op",
|
|
52
|
+
text: "Download de bewerkte afbeelding met de zekerheid dat de originele gegevens ontoegankelijk zijn.",
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const bibliography: PrivacyBlurLocaleContent['bibliography'] = [
|
|
57
|
+
{
|
|
58
|
+
name: "Privacy by Design (PbD) - AGPD",
|
|
59
|
+
url: "https://www.aepd.es/es/guias-y-herramientas/guias/guia-de-privacidad-desde-el-diseno",
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
const seo: PrivacyBlurLocaleContent['seo'] = [
|
|
64
|
+
{
|
|
65
|
+
type: 'summary',
|
|
66
|
+
title: 'Privacy Editor: Verpixelen, Vervagen en Verbergen',
|
|
67
|
+
items: [
|
|
68
|
+
'Drie bewerkingstools: Verpixelen, Vervagen, Vlakke Dekking',
|
|
69
|
+
'Automatische gezichtsdetectie met AI (TinyFaceDetector)',
|
|
70
|
+
'100% lokale verwerking - je foto\'s verlaten de browser nooit',
|
|
71
|
+
'Geen watermerken, geen limieten, volledig gratis'
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{ type: 'title', text: 'Digitale Privacy: Hoe je Visuele Gegevens Kunt Beschermen', level: 2 },
|
|
75
|
+
{ type: 'paragraph', html: 'In het tijdperk van sociale media kan het ongecontroleerd delen van foto\'s gevoelige persoonsgegevens blootleggen. Met onze tool kun je kritieke informatie (gezichten, nummerplaten, namen, adressen) verbergen voordat je ze naar internet uploadt, zodat je privacy volledig onder jouw controle blijft.' },
|
|
76
|
+
|
|
77
|
+
{ type: 'stats', items: [
|
|
78
|
+
{ value: '3', label: 'Verbergingsmethoden', icon: 'mdi:tools' },
|
|
79
|
+
{ value: '100%', label: 'Lokale Privacy', icon: 'mdi:shield-check' },
|
|
80
|
+
{ value: 'AI', label: 'Gezichtsdetectie', icon: 'mdi:brain' }
|
|
81
|
+
], columns: 3 },
|
|
82
|
+
|
|
83
|
+
{ type: 'title', text: 'Uitleg van de Drie Verbergingsmethoden', level: 3 },
|
|
84
|
+
{ type: 'comparative', items: [
|
|
85
|
+
{
|
|
86
|
+
title: 'Verpixelen',
|
|
87
|
+
description: 'Verdeelt het gebied in vierkantjes, onmogelijk te herkennen',
|
|
88
|
+
icon: 'mdi:blur',
|
|
89
|
+
points: [
|
|
90
|
+
'Maximale onomkeerbare versluiering',
|
|
91
|
+
'Veiliger tegen gezichtsherkenning',
|
|
92
|
+
'Zichtbaar, duidelijk dat er iets verborgen is',
|
|
93
|
+
'Ideaal: gezichten op openbare foto\'s'
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
title: 'Vervagen (Blur)',
|
|
98
|
+
description: 'Gaussiaanse vervaging - natuurlijker uiterlijk',
|
|
99
|
+
icon: 'mdi:blur-off',
|
|
100
|
+
points: [
|
|
101
|
+
'Eleganter visueel uiterlijk',
|
|
102
|
+
'Behoudt enige tonale samenhang',
|
|
103
|
+
'Mathematisch omkeerbaar (theoretisch)',
|
|
104
|
+
'Ideaal: minder gevoelige informatie'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Vlakke Dekking',
|
|
110
|
+
description: 'Ondoorzichtig kleurblok - maximale privacy',
|
|
111
|
+
icon: 'mdi:rectangle',
|
|
112
|
+
points: [
|
|
113
|
+
'Zichtbare, duidelijke verberging',
|
|
114
|
+
'Maximale juridische veiligheid/privacy',
|
|
115
|
+
'Verandert de visuele compositie',
|
|
116
|
+
'Ideaal: documenten, gevoelige gegevens'
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
], columns: 3 },
|
|
120
|
+
|
|
121
|
+
{ type: 'title', text: 'Automatische Gezichtsdetectie met AI', level: 3 },
|
|
122
|
+
{ type: 'paragraph', html: 'Onze tool gebruikt TinyFaceDetector, een compact neuraal netwerk dat rechtstreeks in je browser draait om gezichten automatisch te identificeren:' },
|
|
123
|
+
{ type: 'list', items: [
|
|
124
|
+
'<strong>100% Lokaal:</strong> Het AI-model draait op jouw GPU/CPU, niet op externe servers.',
|
|
125
|
+
'<strong>Geen Internet:</strong> Na de eerste download werkt het volledig offline.',
|
|
126
|
+
'<strong>Privacy Gegarandeerd:</strong> Niemand ziet de gezichten: Google niet, OpenAI niet, en wij ook niet.',
|
|
127
|
+
'<strong>Automatisch in Eén Klik:</strong> Detecteert gezichten en laat je met één klik kiezen om ze te verbergen.'
|
|
128
|
+
], icon: 'mdi:check' },
|
|
129
|
+
|
|
130
|
+
{ type: 'card', title: 'Privacy by Design', html: 'Door afbeeldingen te verwerken met de lokale GPU en CPU van je browser, garanderen we dat originele foto\'s je apparaat nooit verlaten. Zelfs als je je bedenkt, is er niets verzonden. Dit is de maximale standaard voor digitale privacy.' },
|
|
131
|
+
|
|
132
|
+
{ type: 'title', text: 'Privacy Use Cases', level: 3 },
|
|
133
|
+
{ type: 'table', headers: ['Gevoelige Informatie', 'Aanbevolen Methode', 'Urgentie'], rows: [
|
|
134
|
+
['Gezichten van mensen', 'Verpixelen of Vervagen', 'Kritiek'],
|
|
135
|
+
['Nummerplaten van voertuigen', 'Verpixelen (onomkeerbaar)', 'Kritiek'],
|
|
136
|
+
['Identiteitsbewijzen', 'Vlakke Dekking of Verpixelen', 'Kritiek'],
|
|
137
|
+
['Geschreven namen/adressen', 'Vlakke Dekking of Verpixelen', 'Hoog'],
|
|
138
|
+
['Telefoonnummers', 'Verpixelen of Vlak', 'Hoog'],
|
|
139
|
+
['Medische informatie', 'Vlakke Dekking', 'Kritiek'],
|
|
140
|
+
['Zichtbare WiFi-signalen', 'Verpixelen', 'Gemiddeld']
|
|
141
|
+
] },
|
|
142
|
+
|
|
143
|
+
{ type: 'proscons', items: [
|
|
144
|
+
{
|
|
145
|
+
pro: 'Totale privacy: 100% lokale verwerking, geen servers, geen opslag',
|
|
146
|
+
con: 'Vereist een moderne browser met ondersteuning voor Canvas en WebGL'
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
pro: 'Automatische gezichtsdetectie bespaart handmatige tijd',
|
|
150
|
+
con: 'AI is niet perfect - gezichten in profiel of gedeeltelijke gezichten worden mogelijk niet herkend'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pro: 'Drie methoden maken keuze tussen veiligheid vs esthetiek mogelijk',
|
|
154
|
+
con: 'Geen geavanceerde opties (smart warp, context vulling)'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Volledig gratis, geen advertenties, geen limieten',
|
|
158
|
+
con: 'Niet gelijkwaardig aan professionele software zoals Photoshop'
|
|
159
|
+
}
|
|
160
|
+
], proTitle: 'Voordelen', conTitle: 'Beperkingen' },
|
|
161
|
+
|
|
162
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Waarschuwing: Vervagen is NIET 100% veilig', icon: 'mdi:alert', badge: 'Beveiliging', html: 'Gaussiaanse vervaging is mathematisch omkeerbaar via geavanceerde inverse algoritmen. Als informatie KRITIEK is (juridische documenten, identiteit), gebruik dan <strong>Verpixelen of Vlakke Dekking</strong>. Vervagen is esthetisch beter maar minder veilig.' },
|
|
163
|
+
|
|
164
|
+
{ type: 'glossary', items: [
|
|
165
|
+
{
|
|
166
|
+
term: 'Verpixelen',
|
|
167
|
+
definition: 'Resolutie verminderen door het gebied te verdelen in uniforme kleurblokken. Onomkeerbaar. Maximale beveiliging tegen AI-gezichtsherkenning.'
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
term: 'Gaussiaanse Vervaging',
|
|
171
|
+
definition: 'Mathematische afvlakking gebaseerd op de normale verdeling. Theoretisch omkeerbaar via deconvolution, maar in de praktijk erg moeilijk.'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
term: 'Vlakke Dekking',
|
|
175
|
+
definition: 'Ondoorzichtig blok van egale kleur. Maximale beveiliging, maximale juridische privacy, visueel minder elegant.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'TinyFaceDetector',
|
|
179
|
+
definition: 'Lichtgewicht convolutioneel neuraal netwerk (CNN) voor het detecteren van gezichten. Draait lokaal in de browser zonder een externe server nodig te hebben.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'Privacy by Design (PbD)',
|
|
183
|
+
definition: 'Benadering waarbij privacy vanaf het systeemontwerp wordt geïntegreerd, niet later toegevoegd. Onze lokale benadering is Privacy by Design.'
|
|
184
|
+
}
|
|
185
|
+
] },
|
|
186
|
+
|
|
187
|
+
{ type: 'message', title: 'Privacy in Jouw Controle', ariaLabel: 'Informatie over privacybescherming', html: 'We bewaren of verwerken je foto\'s niet op externe servers. Er zijn geen trackingcookies. Geen bewerkingsgeschiedenis. We weten niet wat je verbergt omdat we je afbeeldingen nooit zien. Volledige controle, volledige privacy, volledige vrijheid.' },
|
|
188
|
+
|
|
189
|
+
{ type: 'title', text: 'Veilig Delen op Sociale Netwerken', level: 3 },
|
|
190
|
+
{ type: 'paragraph', html: 'Vraag jezelf af voordat je een foto op internet plaatst: is er informatie waarvan ik liever niet wil dat deze openbaar is? Gezichten van kinderen, nummerplaten, adressen, documentnummers. Een privacysessie van 2 minuten nu voorkomt jarenlange problemen.' }
|
|
191
|
+
];
|
|
192
|
+
|
|
193
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
194
|
+
'@context': 'https://schema.org',
|
|
195
|
+
'@type': 'FAQPage',
|
|
196
|
+
mainEntity: faq.map((item) => ({
|
|
197
|
+
'@type': 'Question',
|
|
198
|
+
name: item.question,
|
|
199
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
200
|
+
})),
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
const howToSchema: WithContext<HowTo> = {
|
|
204
|
+
'@context': 'https://schema.org',
|
|
205
|
+
'@type': 'HowTo',
|
|
206
|
+
name: title,
|
|
207
|
+
description,
|
|
208
|
+
step: howTo.map((step) => ({
|
|
209
|
+
'@type': 'HowToStep',
|
|
210
|
+
name: step.name,
|
|
211
|
+
text: step.text,
|
|
212
|
+
})),
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
216
|
+
'@context': 'https://schema.org',
|
|
217
|
+
'@type': 'SoftwareApplication',
|
|
218
|
+
name: title,
|
|
219
|
+
description,
|
|
220
|
+
applicationCategory: 'UtilitiesApplication',
|
|
221
|
+
operatingSystem: 'Web',
|
|
222
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
223
|
+
inLanguage: 'nl',
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
export const content: PrivacyBlurLocaleContent = {
|
|
227
|
+
slug,
|
|
228
|
+
title,
|
|
229
|
+
description,
|
|
230
|
+
ui,
|
|
231
|
+
seo,
|
|
232
|
+
faqTitle: "Veelgestelde Vragen",
|
|
233
|
+
faq,
|
|
234
|
+
bibliographyTitle: "Referenties",
|
|
235
|
+
bibliography,
|
|
236
|
+
howTo,
|
|
237
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
238
|
+
};
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { PrivacyBlurUI, PrivacyBlurLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'online-privacy-editor-pixelate-blur-faces-photos';
|
|
5
|
+
const title = 'Edytor Prywatności Online: Pikselowanie i ukrywanie twarzy na zdjęciach';
|
|
6
|
+
const description = 'Chroń swoją tożsamość, cenzurując wrażliwe obszary swoich zdjęć. Pikseluj twarze, rozmywaj dokumenty lub zakrywaj prywatne informacje w 100% lokalnie.';
|
|
7
|
+
|
|
8
|
+
const ui: PrivacyBlurUI = {
|
|
9
|
+
toolPixel: "Pikseluj",
|
|
10
|
+
toolBlur: "Rozmyj",
|
|
11
|
+
toolSolid: "Zakryj",
|
|
12
|
+
intensityLabel: "Intensywność",
|
|
13
|
+
undoButton: "Cofnij",
|
|
14
|
+
downloadButton: "Zapisz",
|
|
15
|
+
dropTitle: "Edytor Prywatności",
|
|
16
|
+
dropSubtitle: "Przeciągnij obraz tutaj lub kliknij, aby rozpocząć",
|
|
17
|
+
privacySecureLabel: "100% Lokalnie",
|
|
18
|
+
offlineLabel: "Offline",
|
|
19
|
+
autoDetectFaces: "Auto Wykrywanie",
|
|
20
|
+
loadingModels: "Ładowanie modeli...",
|
|
21
|
+
noFacesDetected: "Nie wykryto twarzy automatycznie.",
|
|
22
|
+
faqTitle: "Często Zadawane Pytania",
|
|
23
|
+
bibliographyTitle: "Referencje"
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const faq: PrivacyBlurLocaleContent['faq'] = [
|
|
27
|
+
{
|
|
28
|
+
question: "Czy moje zdjęcia są przesyłane na jakikolwiek serwer?",
|
|
29
|
+
answer: "Nie. Edytor prywatności działa całkowicie w Twojej przeglądarce. Piksele są modyfikowane lokalnie i nic nie jest wysyłane poza Twoje urządzenie.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: "Jak działa automatyczne wykrywanie twarzy?",
|
|
33
|
+
answer: "Używamy lekkiej sieci neuronowej (TinyFaceDetector), która działa w Twojej przeglądarce, aby identyfikować cechy twarzy bez potrzeby połączenia zewnętrznego.",
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
const howTo: PrivacyBlurLocaleContent['howTo'] = [
|
|
38
|
+
{
|
|
39
|
+
name: "Prześlij zdjęcie",
|
|
40
|
+
text: "Przeciągnij lub wybierz obraz zawierający wrażliwe informacje, które chcesz ukryć.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "Wybierz narzędzie",
|
|
44
|
+
text: "Wybierz między pikselowaniem, rozmyciem a pełnym zakryciem, w zależności od potrzebnego poziomu prywatności.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "Zaznacz obszar",
|
|
48
|
+
text: "Kliknij i przeciągnij nad strefą, którą chcesz chronić (twarze, tablice rejestracyjne, nazwiska itp.).",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "Zapisz wynik",
|
|
52
|
+
text: "Pobierz przetworzony obraz z pewnością, że oryginalne dane są niedostępne.",
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const bibliography: PrivacyBlurLocaleContent['bibliography'] = [
|
|
57
|
+
{
|
|
58
|
+
name: "Privacy by Design (PbD) - AGPD",
|
|
59
|
+
url: "https://www.aepd.es/es/guias-y-herramientas/guias/guia-de-privacidad-desde-el-diseno",
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
const seo: PrivacyBlurLocaleContent['seo'] = [
|
|
64
|
+
{
|
|
65
|
+
type: 'summary',
|
|
66
|
+
title: 'Edytor Prywatności: Pikseluj, Rozmywaj i Ukrywaj',
|
|
67
|
+
items: [
|
|
68
|
+
'Trzy narzędzia edycji: Pikselowanie, Rozmycie, Pełne Zakrycie',
|
|
69
|
+
'Automatyczne wykrywanie twarzy za pomocą AI (TinyFaceDetector)',
|
|
70
|
+
'Przetwarzanie w 100% lokalne - Twoje zdjęcia nigdy nie opuszczają przeglądarki',
|
|
71
|
+
'Brak znaków wodnych, brak limitów, całkowicie za darmo'
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{ type: 'title', text: 'Prywatność Cyfrowa: Jak Chronić Dane Wizualne', level: 2 },
|
|
75
|
+
{ type: 'paragraph', html: 'W dobie mediów społecznościowych udostępnianie zdjęć bez kontroli może narazić wrażliwe dane osobowe. Nasze narzędzie pozwala ukryć krytyczne informacje (twarze, tablice rejestracyjne, nazwiska, adresy) przed przesłaniem ich do Internetu, zapewniając, że Twoja prywatność pozostaje pod pełną kontrolą.' },
|
|
76
|
+
|
|
77
|
+
{ type: 'stats', items: [
|
|
78
|
+
{ value: '3', label: 'Metody ukrywania', icon: 'mdi:tools' },
|
|
79
|
+
{ value: '100%', label: 'Prywatność lokalna', icon: 'mdi:shield-check' },
|
|
80
|
+
{ value: 'AI', label: 'Wykrywanie twarzy', icon: 'mdi:brain' }
|
|
81
|
+
], columns: 3 },
|
|
82
|
+
|
|
83
|
+
{ type: 'title', text: 'Objaśnienie trzech metod ukrywania', level: 3 },
|
|
84
|
+
{ type: 'comparative', items: [
|
|
85
|
+
{
|
|
86
|
+
title: 'Pikselowanie',
|
|
87
|
+
description: 'Dzieli obszar na kwadraty, niemożliwe do rozpoznania',
|
|
88
|
+
icon: 'mdi:blur',
|
|
89
|
+
points: [
|
|
90
|
+
'Maksymalne nieodwracalne zaciemnienie',
|
|
91
|
+
'Bezpieczniejsze przed rozpoznawaniem twarzy',
|
|
92
|
+
'Widoczne, jasne jest, że coś zostało ukryte',
|
|
93
|
+
'Idealne: twarze na publicznych zdjęciach'
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
title: 'Rozmycie (Blur)',
|
|
98
|
+
description: 'Wygładzanie gaussowskie - bardziej naturalny wygląd',
|
|
99
|
+
icon: 'mdi:blur-off',
|
|
100
|
+
points: [
|
|
101
|
+
'Bardziej elegancki wygląd wizualny',
|
|
102
|
+
'Zachowuje pewną spójność tonacji',
|
|
103
|
+
'Matematycznie odwracalne (teoretycznie)',
|
|
104
|
+
'Idealne: mniej wrażliwe informacje'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Zakrycie (Solid)',
|
|
110
|
+
description: 'Nieprzezroczysty blok koloru - maksymalna prywatność',
|
|
111
|
+
icon: 'mdi:rectangle',
|
|
112
|
+
points: [
|
|
113
|
+
'Widoczne, oczywiste ukrycie',
|
|
114
|
+
'Maksymalne bezpieczeństwo prawne/prywatność',
|
|
115
|
+
'Zmienia kompozycję wizualną',
|
|
116
|
+
'Idealne: dokumenty, dane wrażliwe'
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
], columns: 3 },
|
|
120
|
+
|
|
121
|
+
{ type: 'title', text: 'Automatyczne wykrywanie twarzy za pomocą AI', level: 3 },
|
|
122
|
+
{ type: 'paragraph', html: 'Nasze narzędzie wykorzystuje TinyFaceDetector, kompaktową sieć neuronową, która działa bezpośrednio w przeglądarce, aby automatycznie identyfikować twarze:' },
|
|
123
|
+
{ type: 'list', items: [
|
|
124
|
+
'<strong>100% Lokalnie:</strong> Model AI działa na Twoim GPU/CPU, a nie na zdalnych serwerach.',
|
|
125
|
+
'<strong>Brak Internetu:</strong> Po wstępnym pobraniu działa całkowicie offline.',
|
|
126
|
+
'<strong>Prywatność Gwarantowana:</strong> Nikt nie widzi twarzy: ani Google, ani OpenAI, ani my.',
|
|
127
|
+
'<strong>Automatyka jednym kliknięciem:</strong> Wykrywa twarze i pozwala ukryć je jednym kliknięciem.'
|
|
128
|
+
], icon: 'mdi:check' },
|
|
129
|
+
|
|
130
|
+
{ type: 'card', title: 'Privacy by Design', html: 'Przetwarzając obrazy przy użyciu lokalnego GPU i CPU Twojej przeglądarki, gwarantujemy, że oryginalne zdjęcia nigdy nie opuszczają Twojego urządzenia. Nawet jeśli zmienisz zdanie, nic nie zostało przesłane. To najwyższy standard prywatności cyfrowej.' },
|
|
131
|
+
|
|
132
|
+
{ type: 'title', text: 'Przypadki użycia prywatności', level: 3 },
|
|
133
|
+
{ type: 'table', headers: ['Informacje wrażliwe', 'Zalecana metoda', 'Pilność'], rows: [
|
|
134
|
+
['Twarze osób', 'Pikselowanie lub Rozmycie', 'Krytyczna'],
|
|
135
|
+
['Tablice rejestracyjne', 'Pikselowanie (nieodwracalne)', 'Krytyczna'],
|
|
136
|
+
['Dokumenty tożsamości', 'Zakrycie lub Pikselowanie', 'Krytyczna'],
|
|
137
|
+
['Pisane nazwiska/adresy', 'Zakrycie lub Pikselowanie', 'Wysoka'],
|
|
138
|
+
['Numery telefonów', 'Pikselowanie lub Zakrycie', 'Wysoka'],
|
|
139
|
+
['Informacje medyczne', 'Zakrycie', 'Krytyczna'],
|
|
140
|
+
['Widoczne sygnały WiFi', 'Pikselowanie', 'Średnia']
|
|
141
|
+
] },
|
|
142
|
+
|
|
143
|
+
{ type: 'proscons', items: [
|
|
144
|
+
{
|
|
145
|
+
pro: 'Całkowita prywatność: przetwarzanie w 100% lokalne, brak serwerów, brak przechowywania',
|
|
146
|
+
con: 'Wymaga nowoczesnej przeglądarki z obsługą Canvas i WebGL'
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
pro: 'Automatyczne wykrywanie twarzy oszczędza czas manualny',
|
|
150
|
+
con: 'AI nie jest idealna - twarze z profilu lub częściowe mogą nie zostać wykryte'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pro: 'Trzy metody pozwalają wybrać między bezpieczeństwem a estetyką',
|
|
154
|
+
con: 'Brak zaawansowanych opcji (inteligentne zniekształcenie, wypełnianie kontekstowe)'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Całkowicie za darmo, bez reklam, bez limitów',
|
|
158
|
+
con: 'Nie jest odpowiednikiem profesjonalnego oprogramowania jak Photoshop'
|
|
159
|
+
}
|
|
160
|
+
], proTitle: 'Zalety', conTitle: 'Ograniczenia' },
|
|
161
|
+
|
|
162
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Ostrzeżenie: Rozmycie NIE jest w 100% bezpieczne', icon: 'mdi:alert', badge: 'Bezpieczeństwo', html: 'Rozmycie gaussowskie jest matematycznie odwracalne za pomocą zaawansowanych algorytmów odwrotnych. Jeśli informacje są KRYTYCZNE (dokumenty prawne, tożsamość), użyj <strong>Pikselowania lub Zakrycia</strong>. Rozmycie jest estetycznie lepsze, ale mniej bezpieczne.' },
|
|
163
|
+
|
|
164
|
+
{ type: 'glossary', items: [
|
|
165
|
+
{
|
|
166
|
+
term: 'Pikselowanie',
|
|
167
|
+
definition: 'Zmniejszenie rozdzielczości poprzez podział obszaru na jednolite bloki kolorów. Nieodwracalne. Maksymalne bezpieczeństwo przed rozpoznawaniem twarzy AI.'
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
term: 'Rozmycie Gaussowskie',
|
|
171
|
+
definition: 'Matematyczne wygładzanie oparte na rozkładzie normalnym. Teoretycznie odwracalne poprzez dekonwolucję, ale w praktyce bardzo trudne.'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
term: 'Zakrycie (Solid)',
|
|
175
|
+
definition: 'Nieprzezroczysty blok jednolitego koloru. Maksymalne bezpieczeństwo, maksymalna prywatność prawna, mniej estetyczna wizualnie.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'TinyFaceDetector',
|
|
179
|
+
definition: 'Lekka splotowa sieć neuronowa (CNN) do wykrywania twarzy. Działa lokalnie w przeglądarce bez potrzeby zewnętrznego serwera.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'Privacy by Design (PbD)',
|
|
183
|
+
definition: 'Podejście polegające na integrowaniu prywatności już od etapu projektowania systemu, a nie dodawaniu jej później. Nasze lokalne podejście to właśnie Privacy by Design.'
|
|
184
|
+
}
|
|
185
|
+
] },
|
|
186
|
+
|
|
187
|
+
{ type: 'message', title: 'Prywatność w Twoich rękach', ariaLabel: 'Informacje o ochronie prywatności', html: 'Nie przechowujemy ani nie przetwarzamy Twoich zdjęć na zdalnych serwerach. Brak ciasteczek śledzących. Brak historii edycji. Nie wiemy, co ukrywasz, ponieważ nigdy nie widzimy Twoich zdjęć. Pełna kontrola, pełna prywatność, pełna wolność.' },
|
|
188
|
+
|
|
189
|
+
{ type: 'title', text: 'Udostępniaj bezpiecznie w mediach społecznościowych', level: 3 },
|
|
190
|
+
{ type: 'paragraph', html: 'Przed opublikowaniem jakiegokolwiek zdjęcia w Internecie zadaj sobie pytanie: czy są tam informacje, których wolałbym nie upubliczniać? Twarze dzieci, tablice rejestracyjne, adresy, numery dokumentów. 2-minutowa sesja prywatności teraz pozwala uniknąć problemów na lata.' }
|
|
191
|
+
];
|
|
192
|
+
|
|
193
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
194
|
+
'@context': 'https://schema.org',
|
|
195
|
+
'@type': 'FAQPage',
|
|
196
|
+
mainEntity: faq.map((item) => ({
|
|
197
|
+
'@type': 'Question',
|
|
198
|
+
name: item.question,
|
|
199
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
200
|
+
})),
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
const howToSchema: WithContext<HowTo> = {
|
|
204
|
+
'@context': 'https://schema.org',
|
|
205
|
+
'@type': 'HowTo',
|
|
206
|
+
name: title,
|
|
207
|
+
description,
|
|
208
|
+
step: howTo.map((step) => ({
|
|
209
|
+
'@type': 'HowToStep',
|
|
210
|
+
name: step.name,
|
|
211
|
+
text: step.text,
|
|
212
|
+
})),
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
216
|
+
'@context': 'https://schema.org',
|
|
217
|
+
'@type': 'SoftwareApplication',
|
|
218
|
+
name: title,
|
|
219
|
+
description,
|
|
220
|
+
applicationCategory: 'UtilitiesApplication',
|
|
221
|
+
operatingSystem: 'Web',
|
|
222
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
223
|
+
inLanguage: 'pl',
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
export const content: PrivacyBlurLocaleContent = {
|
|
227
|
+
slug,
|
|
228
|
+
title,
|
|
229
|
+
description,
|
|
230
|
+
ui,
|
|
231
|
+
seo,
|
|
232
|
+
faqTitle: "Często Zadawane Pytania",
|
|
233
|
+
faq,
|
|
234
|
+
bibliographyTitle: "Referencje",
|
|
235
|
+
bibliography,
|
|
236
|
+
howTo,
|
|
237
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
238
|
+
};
|