@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,261 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { PrintQualityCalculatorUI, PrintQualityCalculatorLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'print-quality-calculator-pixels-to-cm-dpi';
|
|
5
|
+
const title = '打印质量计算器:像素转厘米与 DPI';
|
|
6
|
+
const description = '根据分辨率计算照片的最大打印尺寸。将像素转换为厘米和英寸,确保专业级的打印效果。';
|
|
7
|
+
|
|
8
|
+
const ui: PrintQualityCalculatorUI = {
|
|
9
|
+
dropTitle: "分析分辨率",
|
|
10
|
+
dropSubtitle: "将您的图像拖到此处以计算其打印尺寸。",
|
|
11
|
+
resultsTitle: "文件规格",
|
|
12
|
+
dpiDensityLabel: "所需的打印密度 (DPI)",
|
|
13
|
+
dpiPointsLabel: "每英寸点数",
|
|
14
|
+
maxPrintTitle: "最大打印尺寸",
|
|
15
|
+
standardFormatsTitle: "支持的标准格式",
|
|
16
|
+
formatColumn: "格式",
|
|
17
|
+
measureColumn: "尺寸",
|
|
18
|
+
supportColumn: "是否支持?",
|
|
19
|
+
qualityExcellent: "极佳质量",
|
|
20
|
+
qualityGood: "良好质量",
|
|
21
|
+
qualityFair: "屏幕质量",
|
|
22
|
+
qualityPoor: "不适用",
|
|
23
|
+
qualityExcellentDesc: "适用于艺术杂志、摄影集和近距离观看。",
|
|
24
|
+
qualityGoodDesc: "足以用于海报和中距离观看。",
|
|
25
|
+
qualityFairDesc: "适用于数字查看或远距离广告牌。",
|
|
26
|
+
qualityPoorDesc: "图像会出现像素化。不建议打印。",
|
|
27
|
+
unitCm: "厘米",
|
|
28
|
+
unitInches: "英寸",
|
|
29
|
+
dpiScreenLabel: "屏幕",
|
|
30
|
+
dpiNewspaperLabel: "报纸",
|
|
31
|
+
dpiPrintLabel: "打印",
|
|
32
|
+
dpiFineArtLabel: "精细艺术",
|
|
33
|
+
formatPostal: "明信片",
|
|
34
|
+
formatQuartilla: "四开",
|
|
35
|
+
formatFolio: "对开",
|
|
36
|
+
formatDoubleFolio: "双对开",
|
|
37
|
+
formatSmallPoster: "小海报",
|
|
38
|
+
formatLargePoster: "大海报",
|
|
39
|
+
formatPlane: "图纸",
|
|
40
|
+
supportedText: "是 (覆盖)",
|
|
41
|
+
notSupportedPrefix: "否 (",
|
|
42
|
+
invalidImageError: "请选择一个有效的图像",
|
|
43
|
+
faqTitle: "常见问题",
|
|
44
|
+
bibliographyTitle: "参考资料"
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const faq: PrintQualityCalculatorLocaleContent['faq'] = [
|
|
48
|
+
{
|
|
49
|
+
question: "什么是 DPI,为什么它很重要?",
|
|
50
|
+
answer: "DPI(每英寸点数)表示打印机在每一英寸直线上放置的墨点数量。DPI 越高,图像越清晰,但您的像素覆盖的总物理尺寸就越小。",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
question: "打印照片的理想 DPI 是多少?",
|
|
54
|
+
answer: "卓越摄影质量的行业标准是 300 DPI。对于远距离观看的大型印刷品,150 DPI 可能就足够了。",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
question: "我可以在不损失质量的情况下增加图像的 DPI 吗?",
|
|
58
|
+
answer: "不可以。在不改变像素的情况下增加 DPI 只会减小打印尺寸。如果您尝试使用软件“发明”像素(插值放大),图像可能会看起来很模。糊",
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
const howTo: PrintQualityCalculatorLocaleContent['howTo'] = [
|
|
63
|
+
{
|
|
64
|
+
name: "上传您的图像",
|
|
65
|
+
text: "上传您想要打印的照片,以了解其像素尺寸。",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "调整 DPI",
|
|
69
|
+
text: "滑动滑块,查看最终尺寸如何根据点密度(72 到 600 DPI)发生变化。",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "验证格式",
|
|
73
|
+
text: "查看标准格式表(A4、A3 等),了解您的分辨率是否覆盖了所需的纸张尺寸。",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "确认质量",
|
|
77
|
+
text: "在发送打印之前,请确保指示器标记为“极佳质量”。",
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
const bibliography: PrintQualityCalculatorLocaleContent['bibliography'] = [
|
|
82
|
+
{
|
|
83
|
+
name: "国际纸张尺寸 (ISO 216)",
|
|
84
|
+
url: "https://www.iso.org/standard/36631.html",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "图像分辨率指南 - Adobe",
|
|
88
|
+
url: "https://www.adobe.com/cn/creativecloud/photography/discover/image-resolution.html",
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
const seo: PrintQualityCalculatorLocaleContent['seo'] = [
|
|
93
|
+
{
|
|
94
|
+
type: 'summary',
|
|
95
|
+
title: '专业打印分辨率计算',
|
|
96
|
+
items: [
|
|
97
|
+
'准确将像素转换为厘米和英寸',
|
|
98
|
+
'根据所需 DPI 计算最大尺寸',
|
|
99
|
+
'兼容标准格式(A4、A3 等)',
|
|
100
|
+
'4 个质量级别指南:从极佳到不适用'
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{ type: 'title', text: '打印质量与 DPI 终极指南', level: 2 },
|
|
104
|
+
{ type: 'paragraph', html: '您是否曾打印过照片,结果却发现模糊或有像素感?秘诀就在于 <strong>像素</strong> 和 <strong>DPI</strong>(每英寸点数)之间的数学关系。此工具可计算出在不损失专业质量的情况下打印图像的确切最大尺寸。' },
|
|
105
|
+
|
|
106
|
+
{ type: 'stats', items: [
|
|
107
|
+
{ value: '300', label: '专业标准 DPI', icon: 'mdi:target' },
|
|
108
|
+
{ value: '100%', label: '精确计算', icon: 'mdi:check' },
|
|
109
|
+
{ value: 'ISO 216', label: '支持格式', icon: 'mdi:file-document' }
|
|
110
|
+
], columns: 3 },
|
|
111
|
+
|
|
112
|
+
{ type: 'title', text: '了解 DPI:像素 vs 墨点', level: 3 },
|
|
113
|
+
{ type: 'paragraph', html: '常见的混淆是认为 DPI 和像素是一回事。其实不然。像素包含在您的数字文件中。DPI 是打印机将其转换为纸上墨水的方式。' },
|
|
114
|
+
{ type: 'list', items: [
|
|
115
|
+
'<strong>DPI (Dots Per Inch):</strong> 打印机在一英寸直线(2.54 厘米)内放置多少墨点。',
|
|
116
|
+
'<strong>像素:</strong> 数字文件中的小数据方块。无论 DPI 如何,一张 3000x2000 像素的照片所含的信息是恒定的。',
|
|
117
|
+
'<strong>公式:</strong> 打印尺寸(英寸)= 像素 / DPI。示例:3000 像素 / 300 DPI = 10 英寸(25.4 厘米)'
|
|
118
|
+
], icon: 'mdi:check' },
|
|
119
|
+
|
|
120
|
+
{ type: 'title', text: 'DPI 质量级别对照', level: 3 },
|
|
121
|
+
{ type: 'table', headers: ['DPI', '视觉质量', '使用场景', '观看距离'], rows: [
|
|
122
|
+
['600+ DPI', '极佳 (完美)', '艺术书籍、奢侈品杂志、精细摄影', '小于 10 厘米'],
|
|
123
|
+
['300-400 DPI', '极佳 (专业)', '摄影、书籍、公司目录', '20-30 厘米 (手持)'],
|
|
124
|
+
['150-200 DPI', '良好 (网页在线打印)', '海报、日历、中等距离观看', '1-2 米'],
|
|
125
|
+
['72-100 DPI', '屏幕 (尚可)', '广告牌、远距离横幅', '5 米以上'],
|
|
126
|
+
['10-30 DPI', '低 (不适用)', '巨型广告牌、极远距离观看', '50 米以上']
|
|
127
|
+
] },
|
|
128
|
+
|
|
129
|
+
{ type: 'card', title: '300 DPI 黄金法则', html: '对于摄影和专业编辑打印,行业标准是 <strong>300 DPI</strong>。这可确保人眼在正常距离(20-30 厘米)内察觉不到单个墨点。低于 300 DPI,像素网格就会变得清晰可见。' },
|
|
130
|
+
|
|
131
|
+
{ type: 'comparative', items: [
|
|
132
|
+
{
|
|
133
|
+
title: '手持摄影 (10x15 照片)',
|
|
134
|
+
description: '强制 300 DPI - 近距离观看',
|
|
135
|
+
icon: 'mdi:image',
|
|
136
|
+
points: [
|
|
137
|
+
'在 3000x2000 像素下 = 最大 10x6.7 英寸',
|
|
138
|
+
'保证极佳质量',
|
|
139
|
+
'相册和礼品的标准'
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
title: '壁挂海报 A3 (30x42 厘米)',
|
|
144
|
+
description: '150 DPI 足够 - 远距离观看',
|
|
145
|
+
icon: 'mdi:wall-fire',
|
|
146
|
+
points: [
|
|
147
|
+
'从 1-2 米外观看',
|
|
148
|
+
'所需像素较少',
|
|
149
|
+
'节省相机画质'
|
|
150
|
+
],
|
|
151
|
+
highlight: true
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
title: '广告牌 (200x300 厘米)',
|
|
155
|
+
description: '15-30 DPI - 隔几米外观看',
|
|
156
|
+
icon: 'mdi:sign',
|
|
157
|
+
points: [
|
|
158
|
+
'在 20 米外观察',
|
|
159
|
+
'即使分辨率低看起来也不错',
|
|
160
|
+
'优化大型文件'
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
], columns: 3 },
|
|
164
|
+
|
|
165
|
+
{ type: 'title', text: '为专业打印准备文件', level: 3 },
|
|
166
|
+
{ type: 'proscons', items: [
|
|
167
|
+
{
|
|
168
|
+
pro: 'CMYK vs RGB:打印机使用墨水 (CMYK),屏幕使用光 (RGB)。进行转换以避免颜色出现意外。',
|
|
169
|
+
con: '转换时颜色可能会发生变化 - 请先查看预览'
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
pro: '出血位 (Bleed):如果图像必须到达纸张边缘,请在每边多留 3 毫米',
|
|
173
|
+
con: '如果没有出血位,切割边缘可能会留白'
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
pro: '插值放大不起作用:在 Photoshop 中增加像素会添加虚假信息(平滑化)',
|
|
177
|
+
con: '如果您想打印大图,您需要原始的高分辨率照片'
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
pro: '格式:照片使用无压缩 TIFF 或高质量 JPEG;徽标使用矢量图 (AI, EPS)',
|
|
181
|
+
con: '在大多数在线打印店中,PNG 原生不支持 CMYK'
|
|
182
|
+
}
|
|
183
|
+
], proTitle: '建议', conTitle: '禁忌' },
|
|
184
|
+
|
|
185
|
+
{ type: 'diagnostic', variant: 'warning', title: '常见错误:插值放大的迷思', icon: 'mdi:alert', badge: '关键', html: '<strong>请勿在不改变像素的情况下增加 Photoshop 中的 DPI。</strong> 将 72 DPI 增加到 300 DPI 只是单纯减小了物理打印尺寸。如果您通过插值(upscaling)“添加像素”,图像看起来会变平滑或模糊。您需要来自源文件的真实像素。' },
|
|
186
|
+
|
|
187
|
+
{ type: 'glossary', items: [
|
|
188
|
+
{
|
|
189
|
+
term: 'DPI (Dots Per Inch)',
|
|
190
|
+
definition: '打印分辨率单位:每线性英寸(2.54 厘米)有多少个墨点。300 DPI = 300x300 = 每平方英寸 90,000 个墨点。'
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
term: 'CMYK',
|
|
194
|
+
definition: '打印色彩空间:青色 (Cyan)、品红色 (Magenta)、黄色 (Yellow)、黑色 (blacK)。基于减色墨水。与屏幕的 RGB(加色光)不同。'
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
term: '出血位 (Bleed)',
|
|
198
|
+
definition: '印刷后会被裁剪掉的额外区域(通常为 3 毫米)。确保图像延伸到边缘而不留白边。'
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
term: '原生分辨率',
|
|
202
|
+
definition: '由相机捕捉的、未经处理的真实像素。在不改变像素的情况下增加 DPI 并不产生“原生分辨率”。'
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
term: '插值 (Upscaling)',
|
|
206
|
+
definition: '根据现有像素发明新像素的算法。对于小幅增加有用,但在大幅放大时会损失清晰度。'
|
|
207
|
+
}
|
|
208
|
+
] },
|
|
209
|
+
|
|
210
|
+
{ type: 'message', title: '专业结果的技术精度', ariaLabel: '关于打印计算的信息', html: '我们的计算器在考虑国际标准(纸张 ISO 216)的情况下将像素转换为厘米。它不仅仅是一个计算器:它是您的验证器,用于判断该照片在保持专业质量的同时是否适合该打印尺寸。' },
|
|
211
|
+
|
|
212
|
+
{ type: 'title', text: '结论:打印无意外', level: 3 },
|
|
213
|
+
{ type: 'paragraph', html: '漂亮打印件与令人失望的打印件之间的区别在于是否了解像素与 DPI 之间的关系。在去打印店之前,请使用此计算器验证您的文件。这样您可以避免不必要的费用和令人沮丧的结果。' }
|
|
214
|
+
];
|
|
215
|
+
|
|
216
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
217
|
+
'@context': 'https://schema.org',
|
|
218
|
+
'@type': 'FAQPage',
|
|
219
|
+
mainEntity: faq.map((item) => ({
|
|
220
|
+
'@type': 'Question',
|
|
221
|
+
name: item.question,
|
|
222
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
223
|
+
})),
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
const howToSchema: WithContext<HowTo> = {
|
|
227
|
+
'@context': 'https://schema.org',
|
|
228
|
+
'@type': 'HowTo',
|
|
229
|
+
name: title,
|
|
230
|
+
description,
|
|
231
|
+
step: howTo.map((step) => ({
|
|
232
|
+
'@type': 'HowToStep',
|
|
233
|
+
name: step.name,
|
|
234
|
+
text: step.text,
|
|
235
|
+
})),
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
239
|
+
'@context': 'https://schema.org',
|
|
240
|
+
'@type': 'SoftwareApplication',
|
|
241
|
+
name: title,
|
|
242
|
+
description,
|
|
243
|
+
applicationCategory: 'UtilitiesApplication',
|
|
244
|
+
operatingSystem: 'Web',
|
|
245
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
246
|
+
inLanguage: 'zh',
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
export const content: PrintQualityCalculatorLocaleContent = {
|
|
250
|
+
slug,
|
|
251
|
+
title,
|
|
252
|
+
description,
|
|
253
|
+
ui,
|
|
254
|
+
seo,
|
|
255
|
+
faqTitle: "常见问题",
|
|
256
|
+
faq,
|
|
257
|
+
bibliographyTitle: "参考资料",
|
|
258
|
+
bibliography,
|
|
259
|
+
howTo,
|
|
260
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
261
|
+
};
|
|
@@ -43,10 +43,6 @@ export interface PrintQualityCalculatorUI {
|
|
|
43
43
|
|
|
44
44
|
export type PrintQualityCalculatorLocaleContent = ToolLocaleContent<PrintQualityCalculatorUI>;
|
|
45
45
|
|
|
46
|
-
import { content as es } from './i18n/es';
|
|
47
|
-
import { content as en } from './i18n/en';
|
|
48
|
-
import { content as fr } from './i18n/fr';
|
|
49
|
-
|
|
50
46
|
export const printQualityCalculator: AudiovisualToolEntry<PrintQualityCalculatorUI> = {
|
|
51
47
|
id: 'calidad-impresion',
|
|
52
48
|
icons: {
|
|
@@ -54,9 +50,21 @@ export const printQualityCalculator: AudiovisualToolEntry<PrintQualityCalculator
|
|
|
54
50
|
fg: 'mdi:ruler-square',
|
|
55
51
|
},
|
|
56
52
|
i18n: {
|
|
57
|
-
es: async () => es as unknown as PrintQualityCalculatorLocaleContent,
|
|
58
|
-
en: async () => en as unknown as PrintQualityCalculatorLocaleContent,
|
|
59
|
-
fr: async () => fr as unknown as PrintQualityCalculatorLocaleContent,
|
|
53
|
+
es: async () => (await import('./i18n/es')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
54
|
+
en: async () => (await import('./i18n/en')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
55
|
+
fr: async () => (await import('./i18n/fr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
56
|
+
de: async () => (await import('./i18n/de')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
57
|
+
it: async () => (await import('./i18n/it')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
58
|
+
pt: async () => (await import('./i18n/pt')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
59
|
+
id: async () => (await import('./i18n/id')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
60
|
+
ja: async () => (await import('./i18n/ja')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
61
|
+
ko: async () => (await import('./i18n/ko')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
62
|
+
nl: async () => (await import('./i18n/nl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
63
|
+
pl: async () => (await import('./i18n/pl')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
64
|
+
ru: async () => (await import('./i18n/ru')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
65
|
+
sv: async () => (await import('./i18n/sv')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
66
|
+
tr: async () => (await import('./i18n/tr')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
67
|
+
zh: async () => (await import('./i18n/zh')).content as unknown as PrintQualityCalculatorLocaleContent,
|
|
60
68
|
},
|
|
61
69
|
};
|
|
62
70
|
|
|
@@ -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-privatsphaere-editor-gesichter-verpixeln-unscharf-machen';
|
|
5
|
+
const title = 'Online Privatsphäre Editor: Gesichter in Fotos verpixeln und verbergen';
|
|
6
|
+
const description = 'Schützen Sie Ihre Identität, indem Sie sensible Bereiche Ihrer Fotos zensieren. Verpixeln Sie Gesichter, machen Sie Dokumente unscharf oder decken Sie vertrauliche Informationen zu – 100 % lokal.';
|
|
7
|
+
|
|
8
|
+
const ui: PrivacyBlurUI = {
|
|
9
|
+
toolPixel: "Verpixeln",
|
|
10
|
+
toolBlur: "Unschärfe",
|
|
11
|
+
toolSolid: "Füllung",
|
|
12
|
+
intensityLabel: "Intensität",
|
|
13
|
+
undoButton: "Rückgängig",
|
|
14
|
+
downloadButton: "Speichern",
|
|
15
|
+
dropTitle: "Privatsphäre-Editor",
|
|
16
|
+
dropSubtitle: "Ziehen Sie Ihr Bild hierher oder klicken Sie zum Starten",
|
|
17
|
+
privacySecureLabel: "100 % Lokal",
|
|
18
|
+
offlineLabel: "Offline",
|
|
19
|
+
autoDetectFaces: "Auto-Erkennung",
|
|
20
|
+
loadingModels: "Modelle werden geladen...",
|
|
21
|
+
noFacesDetected: "Keine Gesichter automatisch erkannt.",
|
|
22
|
+
faqTitle: "Häufig gestellte Fragen",
|
|
23
|
+
bibliographyTitle: "Referenzen"
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const faq: PrivacyBlurLocaleContent['faq'] = [
|
|
27
|
+
{
|
|
28
|
+
question: "Werden meine Fotos auf einen Server hochgeladen?",
|
|
29
|
+
answer: "Nein. Der Privatsphäre-Editor arbeitet vollständig in Ihrem Browser. Die Pixel werden lokal geändert, und es wird nichts von Ihrem Gerät nach außen gesendet.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: "Wie funktioniert die automatische Gesichtserkennung?",
|
|
33
|
+
answer: "Wir verwenden ein leichtgewichtiges neuronales Netzwerk (TinyFaceDetector), das in Ihrem Browser läuft, um Gesichtsmerkmale zu identifizieren, ohne dass eine externe Verbindung erforderlich ist.",
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
const howTo: PrivacyBlurLocaleContent['howTo'] = [
|
|
38
|
+
{
|
|
39
|
+
name: "Foto hochladen",
|
|
40
|
+
text: "Ziehen Sie das Bild, das sensible Informationen enthält, die Sie verbergen möchten, in den Editor oder wählen Sie es aus.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "Werkzeug wählen",
|
|
44
|
+
text: "Wählen Sie zwischen Verpixeln, Unschärfe oder solider Füllung, je nachdem, welches Maß an Privatsphäre Sie benötigen.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "Bereich markieren",
|
|
48
|
+
text: "Klicken und ziehen Sie über den Bereich, den Sie schützen möchten (Gesichter, Nummernschilder, Namen usw.).",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "Ergebnis speichern",
|
|
52
|
+
text: "Laden Sie das bearbeitete Bild herunter, in der Gewissheit, dass die ursprünglichen Daten unzugänglich sind.",
|
|
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: 'Privatsphäre Editor: Verpixeln, Unschärfe und Verbergen',
|
|
67
|
+
items: [
|
|
68
|
+
'Drei Bearbeitungswerkzeuge: Verpixeln, Unschärfe, Solide Füllung',
|
|
69
|
+
'Automatische Gesichtserkennung mit KI (TinyFaceDetector)',
|
|
70
|
+
'100 % lokale Verarbeitung – Ihre Fotos verlassen nie den Browser',
|
|
71
|
+
'Keine Wasserzeichen, keine Limits, völlig kostenlos'
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{ type: 'title', text: 'Digitale Privatsphäre: So schützen Sie Ihre visuellen Daten', level: 2 },
|
|
75
|
+
{ type: 'paragraph', html: 'In der Ära der sozialen Medien kann das unkontrollierte Teilen von Fotos sensible persönliche Daten preisgeben. Unser Werkzeug ermöglicht es Ihnen, kritische Informationen (Gesichter, Nummernschilder, Namen, Adressen) zu verbergen, bevor Sie sie ins Internet hochladen, und sicherzustellen, dass Ihre Privatsphäre unter Ihrer vollen Kontrolle bleibt.' },
|
|
76
|
+
|
|
77
|
+
{ type: 'stats', items: [
|
|
78
|
+
{ value: '3', label: 'Verbergungsmethoden', icon: 'mdi:tools' },
|
|
79
|
+
{ value: '100 %', label: 'Lokale Privatsphäre', icon: 'mdi:shield-check' },
|
|
80
|
+
{ value: 'KI', label: 'Gesichtserkennung', icon: 'mdi:brain' }
|
|
81
|
+
], columns: 3 },
|
|
82
|
+
|
|
83
|
+
{ type: 'title', text: 'Drei Verbergungsmethoden erklärt', level: 3 },
|
|
84
|
+
{ type: 'comparative', items: [
|
|
85
|
+
{
|
|
86
|
+
title: 'Verpixeln',
|
|
87
|
+
description: 'Unterteilt den Bereich in Quadrate, Unkenntlichmachung garantiert',
|
|
88
|
+
icon: 'mdi:blur',
|
|
89
|
+
points: [
|
|
90
|
+
'Maximale, irreversible Verschleierung',
|
|
91
|
+
'Sicherer gegen Gesichtserkennungssoftware',
|
|
92
|
+
'Sichtbar, es ist klar, dass etwas verborgen wurde',
|
|
93
|
+
'Ideal für Gesichter in öffentlichen Fotos'
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
title: 'Unschärfe (Blur)',
|
|
98
|
+
description: 'Gaußscher Weichzeichner – natürlicheres Aussehen',
|
|
99
|
+
icon: 'mdi:blur-off',
|
|
100
|
+
points: [
|
|
101
|
+
'Eleganteres visuelles Erscheinungsbild',
|
|
102
|
+
'Erhält die farbliche Kohärenz',
|
|
103
|
+
'Mathematisch theoretisch umkehrbar',
|
|
104
|
+
'Ideal für weniger sensible Informationen'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Solide Füllung',
|
|
110
|
+
description: 'Undurchsichtiger Farbblock – maximale Privatsphäre',
|
|
111
|
+
icon: 'mdi:rectangle',
|
|
112
|
+
points: [
|
|
113
|
+
'Deutliches, offensichtliches Verbergen',
|
|
114
|
+
'Maximale rechtliche Sicherheit/Privatsphäre',
|
|
115
|
+
'Verändert die visuelle Komposition',
|
|
116
|
+
'Ideal für Dokumente und hochsensible Daten'
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
], columns: 3 },
|
|
120
|
+
|
|
121
|
+
{ type: 'title', text: 'Automatische Gesichtserkennung mit KI', level: 3 },
|
|
122
|
+
{ type: 'paragraph', html: 'Unser Werkzeug verwendet TinyFaceDetector, ein kompaktes neuronales Netzwerk, das direkt in Ihrem Browser läuft, um Gesichter automatisch zu identifizieren:' },
|
|
123
|
+
{ type: 'list', items: [
|
|
124
|
+
'<strong>100 % Lokal:</strong> Das KI-Modell läuft auf Ihrer Grafikkarte/Prozessor, nicht auf Remote-Servern.',
|
|
125
|
+
'<strong>Kein Internet nötig:</strong> Nach dem ersten Laden funktioniert es komplett offline.',
|
|
126
|
+
'<strong>Privatsphäre garantiert:</strong> Niemand sieht die Gesichter: weder Google noch OpenAI oder wir.',
|
|
127
|
+
'<strong>Automatischer Ein-Klick:</strong> Erkennt Gesichter und lässt Sie diese mit einem Klick verbergen.'
|
|
128
|
+
], icon: 'mdi:check' },
|
|
129
|
+
|
|
130
|
+
{ type: 'card', title: 'Privacy by Design', html: 'Durch die Verarbeitung der Bilder mit der lokalen Grafikkarte und dem Prozessor Ihres Browsers garantieren wir, dass die Originalfotos niemals Ihr Gerät verlassen. Selbst wenn Sie Ihre Meinung ändern, wurde nichts übertragen. Dies ist der höchste Standard für digitale Privatsphäre.' },
|
|
131
|
+
|
|
132
|
+
{ type: 'title', text: 'Anwendungsfälle für Privatsphäre', level: 3 },
|
|
133
|
+
{ type: 'table', headers: ['Sensible Informationen', 'Empfohlene Methode', 'Dringlichkeit'], rows: [
|
|
134
|
+
['Gesichter von Personen', 'Verpixeln oder Unschärfe', 'Kritisch'],
|
|
135
|
+
['Kfz-Kennzeichen', 'Verpixeln (irreversibel)', 'Kritisch'],
|
|
136
|
+
['Ausweisdokumente', 'Solide Füllung oder Verpixeln', 'Kritisch'],
|
|
137
|
+
['Namen/Adressen', 'Solide Füllung oder Verpixeln', 'Hoch'],
|
|
138
|
+
['Telefonnummern', 'Verpixeln oder Füllung', 'Hoch'],
|
|
139
|
+
['Medizinische Informationen', 'Solide Füllung', 'Kritisch'],
|
|
140
|
+
['Sichtbare WLAN-Signale', 'Verpixeln', 'Mittel']
|
|
141
|
+
] },
|
|
142
|
+
|
|
143
|
+
{ type: 'proscons', items: [
|
|
144
|
+
{
|
|
145
|
+
pro: 'Vollständige Privatsphäre: 100 % lokale Verarbeitung, keine Server, keine Speicherung',
|
|
146
|
+
con: 'Erfordert modernen Browser mit Canvas- und WebGL-Unterstützung'
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
pro: 'Automatische Gesichtserkennung spart Zeit bei der manuellen Arbeit',
|
|
150
|
+
con: 'KI ist nicht perfekt – Profilansichten oder Teilgesichter werden evtl. nicht erkannt'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pro: 'Drei Methoden erlauben Wahl zwischen Sicherheit und Ästhetik',
|
|
154
|
+
con: 'Keine fortgeschrittenen Optionen (Smart Warp, inhaltsbasiertes Füllen)'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Völlig kostenlos, keine Werbung, keine Limits',
|
|
158
|
+
con: 'Kein Ersatz für professionelle Software wie Photoshop'
|
|
159
|
+
}
|
|
160
|
+
], proTitle: 'Vorteile', conTitle: 'Einschränkungen' },
|
|
161
|
+
|
|
162
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Warnung: Unschärfe ist NICHT 100 % sicher', icon: 'mdi:alert', badge: 'Sicherheit', html: 'Gaußsche Unschärfe ist durch hochentwickelte inverse Algorithmen mathematisch umkehrbar. Wenn Informationen KRITISCH sind (relevante Dokumente, Identität), verwenden Sie <strong>Verpixeln oder solide Füllung</strong>. Unschärfe sieht ästhetisch besser aus, ist aber weniger sicher.' },
|
|
163
|
+
|
|
164
|
+
{ type: 'glossary', items: [
|
|
165
|
+
{
|
|
166
|
+
term: 'Verpixelung',
|
|
167
|
+
definition: 'Reduzierung der Auflösung durch Unterteilung des Bereichs in einfarbige Blöcke. Irreversibel. Maximaler Schutz gegen KI-Gesichtserkennung.'
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
term: 'Gaußsche Unschärfe',
|
|
171
|
+
definition: 'Mathematische Glättung basierend auf einer Normalverteilung. Theoretisch durch Dekonvolution umkehrbar, in der Praxis jedoch sehr schwierig.'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
term: 'Solide Füllung',
|
|
175
|
+
definition: 'Undurchsichtiger Block einer einheitlichen Farbe. Maximale Sicherheit, maximaler rechtlicher Schutz, weniger elegant.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'TinyFaceDetector',
|
|
179
|
+
definition: 'Leichtgewichtiges Convolutional Neural Network (CNN) zur Gesichtserkennung. Läuft lokal im Browser ohne externen Server.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'Privacy by Design (PbD)',
|
|
183
|
+
definition: 'Ansatz, bei dem Privatsphäre von Beginn an in das Systemdesign integriert wird. Unser lokaler Ansatz ist Privacy by Design.'
|
|
184
|
+
}
|
|
185
|
+
] },
|
|
186
|
+
|
|
187
|
+
{ type: 'message', title: 'Privatsphäre unter Ihrer Kontrolle', ariaLabel: 'Informationen zum Schutz der Privatsphäre', html: 'Wir speichern oder verarbeiten Ihre Fotos nicht auf Remote-Servern. Es gibt keine Tracking-Cookies. Keine Bearbeitungshistorien. Wir wissen nicht, was Sie verbergen, weil wir Ihre Bilder nie sehen. Volle Kontrolle, volle Privatsphäre, volle Freiheit.' },
|
|
188
|
+
|
|
189
|
+
{ type: 'title', text: 'Sicheres Teilen in sozialen Netzwerken', level: 3 },
|
|
190
|
+
{ type: 'paragraph', html: 'Bevor Sie ein Foto im Internet posten, fragen Sie sich: Gibt es Informationen, die ich lieber nicht öffentlich hätte? Gesichter von Kindern, Kennzeichen, Adressen, Dokumentennummern. Eine 2-minütige Sitzung im Privatsphäre-Editor verhindert jahrelange Probleme.' }
|
|
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: 'de',
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
export const content: PrivacyBlurLocaleContent = {
|
|
227
|
+
slug,
|
|
228
|
+
title,
|
|
229
|
+
description,
|
|
230
|
+
ui,
|
|
231
|
+
seo,
|
|
232
|
+
faqTitle: "Häufig gestellte Fragen",
|
|
233
|
+
faq,
|
|
234
|
+
bibliographyTitle: "Referenzen",
|
|
235
|
+
bibliography,
|
|
236
|
+
howTo,
|
|
237
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
238
|
+
};
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dt
|
|
|
2
2
|
import type { PrivacyBlurUI, PrivacyBlurLocaleContent } from '../index';
|
|
3
3
|
|
|
4
4
|
const slug = 'online-privacy-editor-pixelate-blur-faces-photos';
|
|
5
|
-
const title = 'Online Privacy Editor
|
|
5
|
+
const title = 'Online Privacy Editor: Pixelate and hide faces in photos';
|
|
6
6
|
const description = 'Protect your identity by censoring sensitive areas of your photos. Pixelate faces, blur documents, or cover private information 100% locally.';
|
|
7
7
|
|
|
8
8
|
const ui: PrivacyBlurUI = {
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dt
|
|
|
2
2
|
import type { PrivacyBlurUI, PrivacyBlurLocaleContent } from '../index';
|
|
3
3
|
|
|
4
4
|
const slug = 'editor-privacidad';
|
|
5
|
-
const title = 'Editor de Privacidad Online
|
|
5
|
+
const title = 'Editor de Privacidad Online: Pixela y oculta rostros en fotos';
|
|
6
6
|
const description = 'Protege tu identidad censurando áreas sensibles de tus fotos. Pixela rostros, desenfoca documentos o tapa información privada de forma 100% local.';
|
|
7
7
|
|
|
8
8
|
const ui: PrivacyBlurUI = {
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dt
|
|
|
2
2
|
import type { PrivacyBlurUI, PrivacyBlurLocaleContent } from '../index';
|
|
3
3
|
|
|
4
4
|
const slug = 'editeur-confidentialite-en-ligne-pixeliser-flouter-visages';
|
|
5
|
-
const title = 'Éditeur de Confidentialité en Ligne
|
|
5
|
+
const title = 'Éditeur de Confidentialité en Ligne: Pixélisez et masquez les visages';
|
|
6
6
|
const description = 'Protégez votre identité en censurant les zones sensibles de vos photos. Pixélisez les visages, floutez les documents ou masquez les informations privées 100 % localement.';
|
|
7
7
|
|
|
8
8
|
const ui: PrivacyBlurUI = {
|