@jjlmoya/utils-audiovisual 1.7.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 +2 -1
- package/src/category/i18n/de.ts +198 -0
- 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/tool/chromaticLens/i18n/de.ts +246 -0
- 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/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/fr.ts +1 -1
- 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 +1 -1
- package/src/tool/imageCompressor/i18n/es.ts +1 -1
- 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/fr.ts +1 -1
- 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/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/fr.ts +5 -5
- 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/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/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,242 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageCompressorUI, ImageCompressorLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'online-image-compressor-reduce-file-size-no-quality-loss';
|
|
5
|
+
const title = '온라인 이미지 압축기: 품질 저하 없이 파일 용량 감소';
|
|
6
|
+
const description = 'JPG, PNG 및 WebP 사진을 무료로 최적화하고 압축하세요. 파일 크기를 줄여 로컬에서 웹 로딩 속도를 향상시킵니다.';
|
|
7
|
+
|
|
8
|
+
const ui: ImageCompressorUI = {
|
|
9
|
+
dropTitle: "이미지 최적화",
|
|
10
|
+
dropSubtitle: "사진을 드래그하여 즉시 용량을 줄이세요.",
|
|
11
|
+
settingsTitle: "압축 설정",
|
|
12
|
+
qualityLabel: "시각적 품질",
|
|
13
|
+
widthLabel: "최대 너비 (픽셀)",
|
|
14
|
+
convertToWebpLabel: "WebP로 변환",
|
|
15
|
+
compressionLabel: "압축",
|
|
16
|
+
compressBtn: "이미지 압축",
|
|
17
|
+
processingLabel: "처리 중...",
|
|
18
|
+
resultsTitle: "최적화된 이미지",
|
|
19
|
+
originalSizeLabel: "원본 크기",
|
|
20
|
+
newSizeLabel: "새 크기",
|
|
21
|
+
reductionLabel: "절감액",
|
|
22
|
+
downloadBtn: "다운로드",
|
|
23
|
+
addMoreBtn: "추가하기",
|
|
24
|
+
browseFilesBtn: "파일 찾기",
|
|
25
|
+
processedFilesTitle: "처리된 파일",
|
|
26
|
+
downloadAllBtn: "모두 다운로드",
|
|
27
|
+
adjustThisImage: "이 이미지 조정",
|
|
28
|
+
downloadTitle: "다운로드",
|
|
29
|
+
maxWidthLabel: "최대 너비 (px)",
|
|
30
|
+
closeBtn: "닫기",
|
|
31
|
+
totalSavingsLabel: "총 절감량",
|
|
32
|
+
noSavings: "순 절감액 없음",
|
|
33
|
+
faqTitle: "자주 묻는 질문",
|
|
34
|
+
bibliographyTitle: "참고 문헌"
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const faq: ImageCompressorLocaleContent['faq'] = [
|
|
38
|
+
{
|
|
39
|
+
question: "무손실 압축은 어떻게 작동하나요?",
|
|
40
|
+
answer: "불필요한 메타데이터를 제거하고 픽셀 인코딩을 최적화하는 알고리즘을 사용합니다. WebP를 선택하면 기존 형식보다 더 발전된 압축 기술이 사용됩니다.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: "제 이미지가 서버에 업로드되나요?",
|
|
44
|
+
answer: "아니요. 모든 처리는 브라우저에서 100% 이루어집니다 (Client-Side). 사진은 컴퓨터를 떠나지 않으므로 절대적인 프라이버시가 보장됩니다.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: "왜 WebP로 변환해야 하나요?",
|
|
48
|
+
answer: "WebP는 웹을 위한 현대적인 표준 형식입니다. JPG 및 PNG보다 우수한 품질을 제공하면서도 용량은 최대 30% 적어 페이지 로딩 속도를 높여줍니다.",
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const howTo: ImageCompressorLocaleContent['howTo'] = [
|
|
53
|
+
{
|
|
54
|
+
name: "이미지 업로드",
|
|
55
|
+
text: "압축하려는 파일(JPG, PNG 또는 WebP)을 업로드하세요.",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "품질 조정",
|
|
59
|
+
text: "슬라이더를 사용하여 파일 크기와 시각적 품질 사이의 완벽한 균형을 찾으세요(권장: 75 85%).",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "크기 조정 (선택 사항)",
|
|
63
|
+
text: "이미지가 매우 큰 경우 최대 너비를 지정하여 해상도를 줄일 수 있습니다.",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "결과 다운로드",
|
|
67
|
+
text: "다운로드 버튼을 눌러 바로 사용할 수 있는 최적화된 이미지를 받으세요.",
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
const bibliography: ImageCompressorLocaleContent['bibliography'] = [
|
|
72
|
+
{
|
|
73
|
+
name: "WebP: 웹을 위한 이미지 형식",
|
|
74
|
+
url: "https://developers.google.com/speed/webp",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "SEO를 위한 이미지 최적화의 중요성",
|
|
78
|
+
url: "https://developers.google.com/search/docs/appearance/google-images",
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
|
|
82
|
+
const seo: ImageCompressorLocaleContent['seo'] = [
|
|
83
|
+
{
|
|
84
|
+
type: 'summary',
|
|
85
|
+
title: '전문적인 웹 이미지 최적화',
|
|
86
|
+
items: [
|
|
87
|
+
'지능형 JPG, PNG 및 WebP 압축',
|
|
88
|
+
'시각적 품질을 유지하면서 용량 50-80% 감소',
|
|
89
|
+
'100% 로컬 처리 - 개인정보 보호 보장',
|
|
90
|
+
'Core Web Vitals 및 SEO 순위 향상'
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{ type: 'title', text: '이미지 최적화: 웹 속도 및 Core Web Vitals', level: 2 },
|
|
94
|
+
{ type: 'paragraph', html: '디지털 즉각성의 시대에 느린 웹사이트는 사용자를 잃습니다. 최적화되지 않은 이미지는 웹 페이지 전체 용량의 60-70%를 차지합니다. 이미지를 최적화하는 것은 Google 메트릭(LCP, CLS)과 검색 결과 순위를 향상시키는 첫 번째 단계입니다.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'stats', items: [
|
|
97
|
+
{ value: '50-80%', label: '일반적인 용량 감소', icon: 'mdi:trending-down' },
|
|
98
|
+
{ value: '100%', label: '로컬 프라이버시', icon: 'mdi:lock' },
|
|
99
|
+
{ value: '+30%', label: 'JPG보다 빠름', icon: 'mdi:speedometer' }
|
|
100
|
+
], columns: 3 },
|
|
101
|
+
|
|
102
|
+
{ type: 'title', text: '압축 형식 설명', level: 3 },
|
|
103
|
+
{ type: 'table', headers: ['형식', '압축 방식', '활용 사례', '호환성'], rows: [
|
|
104
|
+
['JPEG', '손실 압축 50-90%', '카메라 사진, 편집 콘텐츠', '유니버설 (100%)'],
|
|
105
|
+
['PNG', '무손실 압축 30-50%', '그래픽, 로고, 투명도', '유니버설 (100%)'],
|
|
106
|
+
['WebP', '손실/무손실 25-35% 추가 절감', '현대식 웹, 소셜 네트워크', '95% 현대식 브라우저'],
|
|
107
|
+
['AVIF', '손실/무손실 20% 향상', '차세대 웹', '최신 브라우저 전용']
|
|
108
|
+
] },
|
|
109
|
+
|
|
110
|
+
{ type: 'card', title: 'WebP가 미래인 이유', html: 'Google은 웹을 위해 특별히 WebP를 개발했습니다. JPEG 및 PNG보다 우수한 압축률을 제공하면서 시각적 품질을 유지하거나 향상시킵니다. 동일한 JPEG보다 25-35% 작습니다. 현대식 브라우저의 95%가 이를 지원합니다.' },
|
|
111
|
+
|
|
112
|
+
{ type: 'title', text: '손실 압축 vs 무손실 압축', level: 3 },
|
|
113
|
+
{ type: 'comparative', items: [
|
|
114
|
+
{
|
|
115
|
+
title: '손실 압축 (Lossy)',
|
|
116
|
+
description: 'JPG, WebP - 인지할 수 없는 시각 정보를 제거',
|
|
117
|
+
icon: 'mdi:compress',
|
|
118
|
+
points: [
|
|
119
|
+
'원본 용량의 70-90% 감소',
|
|
120
|
+
'품질이 75% 이상 유지되면 육안으로 식별 불가',
|
|
121
|
+
'사실적인 사진에 이상적',
|
|
122
|
+
'로고나 선명한 텍스트에는 권장하지 않음'
|
|
123
|
+
],
|
|
124
|
+
highlight: true
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: '무손실 압축 (Lossless)',
|
|
128
|
+
description: 'PNG, WebP 무손실 - 시각 데이터 100% 유지',
|
|
129
|
+
icon: 'mdi:shield',
|
|
130
|
+
points: [
|
|
131
|
+
'용량 20-50% 감소',
|
|
132
|
+
'완벽한 품질, 저하 없음',
|
|
133
|
+
'그래픽, 로고, 투명도에 이상적',
|
|
134
|
+
'손실 압축보다 파일이 무거움'
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
], columns: 2 },
|
|
138
|
+
|
|
139
|
+
{ type: 'title', text: 'SEO 및 전환율에 미치는 영향', level: 3 },
|
|
140
|
+
{ type: 'list', items: [
|
|
141
|
+
'<strong>Core Web Vitals:</strong> Google은 느린 사이트에 불이익을 줍니다. 최적화된 이미지는 LCP(Largest Contentful Paint)를 직접 개선합니다.',
|
|
142
|
+
'<strong>이탈률:</strong> 1초의 지연마다 이탈률 7% 증가. 빠른 이미지는 이탈 사용자를 줄여줍니다.',
|
|
143
|
+
'<strong>검색 순위:</strong> 속도는 순위 결정 요소입니다. 이미지 최적화는 순위를 높여줍니다.',
|
|
144
|
+
'<strong>전환율:</strong> 빠른 로딩 시간은 더 많은 전환으로 이어집니다. 연구에 따르면 최적화를 통해 전환율이 10% 향상됩니다.'
|
|
145
|
+
], icon: 'mdi:check' },
|
|
146
|
+
|
|
147
|
+
{ type: 'proscons', items: [
|
|
148
|
+
{
|
|
149
|
+
pro: '완전한 프라이버시: 100% 로컬 처리, 클라우드 서버 없음',
|
|
150
|
+
con: 'Canvas API 지원 브라우저 필요 (범용적임)'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pro: 'WebP는 동일 품질에서 JPEG보다 25-35% 작음',
|
|
154
|
+
con: '구형 Safari 및 IE는 WebP 미지원 (대체 수단 제공)'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: '여러 이미지 즉시 처리',
|
|
158
|
+
con: '매우 큰 이미지(50MB 이상)는 대기 시간이 필요할 수 있음'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: '선택적 크기 조정: 압축과 더불어 해상도 감소 가능',
|
|
162
|
+
con: '크기 조정은 정보를 잃음 - 원본에서 해상도를 최적화하는 것이 가장 좋음'
|
|
163
|
+
}
|
|
164
|
+
], proTitle: '장점', conTitle: '제한 사항' },
|
|
165
|
+
|
|
166
|
+
{ type: 'diagnostic', variant: 'warning', title: '주의: 과도한 압축은 품질 저하를 초래', icon: 'mdi:alert', badge: '품질', html: '사진의 경우 품질 >75%, 편집 콘텐츠의 경우 >85%를 유지하세요. 그 미만에서는 압축 아티팩트(얼룩, 밴딩 현상)가 보일 수 있습니다. 미리보기에서 좋아 보이는 이미지가 크게 보면 나빠 보일 수 있습니다.' },
|
|
167
|
+
|
|
168
|
+
{ type: 'glossary', items: [
|
|
169
|
+
{
|
|
170
|
+
term: '손실 압축 (Lossy)',
|
|
171
|
+
definition: '인간의 눈이 \"노이즈\"로 인식하는 시각 데이터를 제거합니다. 사진에 이상적입니다. JPEG, 손실 WebP, HEIC가 이에 해당합니다.'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
term: '무손실 압축 (Lossless)',
|
|
175
|
+
definition: '시각 정보 손실 없이 크기를 줄입니다. PNG 및 무손실 WebP가 이에 해당합니다. 그래픽, 로고, 투명도에 이상적입니다.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Core Web Vitals (Google)',
|
|
179
|
+
definition: '사용자 경험 지표: LCP(로딩 속도), FID(상호작용 지연), CLS(시각적 안정성). SEO 순위에 영향을 미칩니다.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'WebP',
|
|
183
|
+
definition: 'Google에서 개발한 형식. JPEG보다 25-35% 작음. 구형 IE를 제외한 현대식 브라우저의 95%에서 지원.'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: '압축 아티팩트 (Artifacts)',
|
|
187
|
+
definition: '과도한 압축으로 인한 시각적 결함: 얼룩, 색상 밴딩, 흐릿한 가장자리. 품질 75% 이상에서는 거의 보이지 않음.'
|
|
188
|
+
}
|
|
189
|
+
] },
|
|
190
|
+
|
|
191
|
+
{ type: 'message', title: '전문적인 웹 최적화', ariaLabel: 'SEO를 위한 이미지 최적화 정보', html: '단순한 기술적 허영심이 아닙니다. 이미지를 압축하는 것은 사용자 경험과 Google 순위에 대한 직접적인 투자입니다. 모바일에서는 모든 킬로바이트가 중요합니다. 당사 도구는 전문 소프트웨어($$$)가 필요했던 작업을 클릭 3번으로 끝나는 무료 프로세스로 바꿔줍니다.' },
|
|
192
|
+
|
|
193
|
+
{ type: 'title', text: '현대적인 웹을 위한 준비', level: 3 },
|
|
194
|
+
{ type: 'paragraph', html: '지능형 압축과 WebP 형식을 사용하여 온라인 인지도를 빠르고 반응적이며 검색 경쟁력 있게 만드세요. 전문적인 품질, 최소 용량, 즉각적인 로딩.' }
|
|
195
|
+
];
|
|
196
|
+
|
|
197
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
198
|
+
'@context': 'https://schema.org',
|
|
199
|
+
'@type': 'FAQPage',
|
|
200
|
+
mainEntity: faq.map((item) => ({
|
|
201
|
+
'@type': 'Question',
|
|
202
|
+
name: item.question,
|
|
203
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
204
|
+
})),
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const howToSchema: WithContext<HowTo> = {
|
|
208
|
+
'@context': 'https://schema.org',
|
|
209
|
+
'@type': 'HowTo',
|
|
210
|
+
name: title,
|
|
211
|
+
description,
|
|
212
|
+
step: howTo.map((step) => ({
|
|
213
|
+
'@type': 'HowToStep',
|
|
214
|
+
name: step.name,
|
|
215
|
+
text: step.text,
|
|
216
|
+
})),
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
220
|
+
'@context': 'https://schema.org',
|
|
221
|
+
'@type': 'SoftwareApplication',
|
|
222
|
+
name: title,
|
|
223
|
+
description,
|
|
224
|
+
applicationCategory: 'UtilitiesApplication',
|
|
225
|
+
operatingSystem: 'Web',
|
|
226
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
227
|
+
inLanguage: 'ko',
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export const content: ImageCompressorLocaleContent = {
|
|
231
|
+
slug,
|
|
232
|
+
title,
|
|
233
|
+
description,
|
|
234
|
+
ui,
|
|
235
|
+
seo,
|
|
236
|
+
faqTitle: "자주 묻는 질문",
|
|
237
|
+
faq,
|
|
238
|
+
bibliographyTitle: "참고 문헌",
|
|
239
|
+
bibliography,
|
|
240
|
+
howTo,
|
|
241
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
242
|
+
};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageCompressorUI, ImageCompressorLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'online-image-compressor-reduceer-bestandsgrootte-zonder-kwaliteitsverlies';
|
|
5
|
+
const title = 'Online Image Compressor: Verminder gewicht zonder kwaliteitsverlies';
|
|
6
|
+
const description = 'Optimaliseer en comprimeer je JPG-, PNG- och WebP-foto\'s gratis. Verklein de bestandsgrootte om de laadsnelheid van je webpagina lokaal te verbeteren.';
|
|
7
|
+
|
|
8
|
+
const ui: ImageCompressorUI = {
|
|
9
|
+
dropTitle: "Optimaliseer Afbeeldingen",
|
|
10
|
+
dropSubtitle: "Sleep je foto\'s hierheen om hun gewicht direct te verminderen.",
|
|
11
|
+
settingsTitle: "Compressie-instellingen",
|
|
12
|
+
qualityLabel: "Visuele Kwaliteit",
|
|
13
|
+
widthLabel: "Maximale Breedte (Pixels)",
|
|
14
|
+
convertToWebpLabel: "Converteer naar WebP",
|
|
15
|
+
compressionLabel: "Compressie",
|
|
16
|
+
compressBtn: "Comprimeer Afbeelding",
|
|
17
|
+
processingLabel: "Verwerken...",
|
|
18
|
+
resultsTitle: "Geoptimaliseerde Afbeeldingen",
|
|
19
|
+
originalSizeLabel: "Originele Grootte",
|
|
20
|
+
newSizeLabel: "Nieuwe Grootte",
|
|
21
|
+
reductionLabel: "Besparing",
|
|
22
|
+
downloadBtn: "Downloaden",
|
|
23
|
+
addMoreBtn: "Meer toevoegen",
|
|
24
|
+
browseFilesBtn: "Bestanden bladeren",
|
|
25
|
+
processedFilesTitle: "Verwerkte Bestanden",
|
|
26
|
+
downloadAllBtn: "Alles Downloaden",
|
|
27
|
+
adjustThisImage: "Pas deze afbeelding aan",
|
|
28
|
+
downloadTitle: "Download",
|
|
29
|
+
maxWidthLabel: "Max breedte (px)",
|
|
30
|
+
closeBtn: "Sluiten",
|
|
31
|
+
totalSavingsLabel: "Totale besparing",
|
|
32
|
+
noSavings: "Geen netto besparing",
|
|
33
|
+
faqTitle: "Veelgestelde Vragen",
|
|
34
|
+
bibliographyTitle: "Referenties"
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const faq: ImageCompressorLocaleContent['faq'] = [
|
|
38
|
+
{
|
|
39
|
+
question: "Hoe werkt lossless compressie?",
|
|
40
|
+
answer: "We gebruiken algoritmen die onnodige metadata verwijderen en de pixelcodering optimaliseren. Bij het kiezen van WebP wordt een geavanceerdere compressietechnologie gebruikt dan bij traditionele formaten.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: "Worden mijn afbeeldingen geüpload naar een server?",
|
|
44
|
+
answer: "Nee. Alle verwerking vindt 100% plaats in je browser (Client-Side). Je foto's verlaten nooit je computer, wat absolute privacy garandeert.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: "Waarom zou ik converteren naar WebP?",
|
|
48
|
+
answer: "WebP is het moderne standaardformaat voor het web. Het biedt een superieure kwaliteit ten opzichte van JPG en PNG met een gewicht dat tot 30% lager ligt, wat de laadtijd van de pagina versnelt.",
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const howTo: ImageCompressorLocaleContent['howTo'] = [
|
|
53
|
+
{
|
|
54
|
+
name: "Upload de afbeelding",
|
|
55
|
+
text: "Upload het bestand dat je wilt comprimeren (JPG, PNG of WebP).",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "Pas de kwaliteit aan",
|
|
59
|
+
text: "Gebruik de schuifregelaar om de perfecte balans te vinden tussen bestandsgrootte en visuele kwaliteit (aanbevolen: 75 85%).",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "Wijzig grootte (optioneel)",
|
|
63
|
+
text: "Als de afbeelding erg groot is, kun je een maximale breedte specificeren om de resolutie te verlagen.",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "Download het resultaat",
|
|
67
|
+
text: "Druk op de downloadknop om je geoptimaliseerde afbeelding klaar voor gebruik te ontvangen.",
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
const bibliography: ImageCompressorLocaleContent['bibliography'] = [
|
|
72
|
+
{
|
|
73
|
+
name: "WebP: Een afbeeldingsformaat voor het web",
|
|
74
|
+
url: "https://developers.google.com/speed/webp",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "Het belang van afbeeldingsoptimalisatie voor SEO",
|
|
78
|
+
url: "https://developers.google.com/search/docs/appearance/google-images",
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
|
|
82
|
+
const seo: ImageCompressorLocaleContent['seo'] = [
|
|
83
|
+
{
|
|
84
|
+
type: 'summary',
|
|
85
|
+
title: 'Professionele Web Afbeeldingsoptimalisatie',
|
|
86
|
+
items: [
|
|
87
|
+
'Intelligente JPG-, PNG- en WebP-compressie',
|
|
88
|
+
'Verminder het gewicht met 50-80% met behoud van visuele kwaliteit',
|
|
89
|
+
'100% lokale verwerking - privacy gegarandeerd',
|
|
90
|
+
'Verbeter Core Web Vitals en SEO-positionering'
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{ type: 'title', text: 'Afbeeldingsoptimalisatie: Web Snelheid en Core Web Vitals', level: 2 },
|
|
94
|
+
{ type: 'paragraph', html: 'In het tijdperk van digitale directheid verliest een trage website gebruikers. Niet-geoptimaliseerde afbeeldingen vertegenwoordigen 60-70% van het totale gewicht van een webpagina. Het optimaliseren ervan is de eerste stap om je Google-metrieken (LCP, CLS) en je positionering in de zoekresultaten te verbeteren.' },
|
|
95
|
+
|
|
96
|
+
{ type: 'stats', items: [
|
|
97
|
+
{ value: '50-80%', label: 'Typische Gewichtsreductie', icon: 'mdi:trending-down' },
|
|
98
|
+
{ value: '100%', label: 'Lokale Privacy', icon: 'mdi:lock' },
|
|
99
|
+
{ value: '+30%', label: 'Sneller dan JPG', icon: 'mdi:speedometer' }
|
|
100
|
+
], columns: 3 },
|
|
101
|
+
|
|
102
|
+
{ type: 'title', text: 'Uitleg over Compressieformaten', level: 3 },
|
|
103
|
+
{ type: 'table', headers: ['Formaat', 'Compressie', 'Use Cases', 'Compatibiliteit'], rows: [
|
|
104
|
+
['JPEG', 'Lossy 50-90%', 'Camerafoto\'s, redactionele inhoud', 'Universeel (100%)'],
|
|
105
|
+
['PNG', 'Lossless 30-50%', 'Graphics, logo\'s, transparanties', 'Universeel (100%)'],
|
|
106
|
+
['WebP', 'Lossy/Lossless 25-35% meer', 'Modern web, sociale netwerken', '95% moderne browsers'],
|
|
107
|
+
['AVIF', 'Lossy/Lossless 20% verbetering', 'Volgende generatie web', 'Alleen nieuwe browsers']
|
|
108
|
+
] },
|
|
109
|
+
|
|
110
|
+
{ type: 'card', title: 'Waarom WebP de Toekomst is', html: 'Google heeft WebP specifiek voor het web ontwikkeld. Het biedt een superieure compressie ten opzichte van JPEG en PNG, met behoud of verbetering van visuele kwaliteit. Het is 25-35% kleiner dan JPEG-equivalenten. Moderne browsers ondersteunen het voor 95%.' },
|
|
111
|
+
|
|
112
|
+
{ type: 'title', text: 'Lossy vs Lossless Compressie', level: 3 },
|
|
113
|
+
{ type: 'comparative', items: [
|
|
114
|
+
{
|
|
115
|
+
title: 'Lossy Compressie',
|
|
116
|
+
description: 'JPG, WebP - Verwijdert onmerkbare visuele informatie',
|
|
117
|
+
icon: 'mdi:compress',
|
|
118
|
+
points: [
|
|
119
|
+
'Reduceert 70-90% van het originele gewicht',
|
|
120
|
+
'Onmerkbaar voor het menselijk oog als de kwaliteit >75% blijft',
|
|
121
|
+
'Ideaal voor realistische fotografie',
|
|
122
|
+
'Niet aanbevolen voor logo\'s of scherpe tekst'
|
|
123
|
+
],
|
|
124
|
+
highlight: true
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: 'Lossless Compressie',
|
|
128
|
+
description: 'PNG, WebP lossless - Behoudt 100% visuele data',
|
|
129
|
+
icon: 'mdi:shield',
|
|
130
|
+
points: [
|
|
131
|
+
'Reduceert 20-50% van het gewicht',
|
|
132
|
+
'Perfecte kwaliteit, geen degradatie',
|
|
133
|
+
'Ideaal voor graphics, logo\'s, transparanties',
|
|
134
|
+
'Zwaardere bestanden dan bij Lossy'
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
], columns: 2 },
|
|
138
|
+
|
|
139
|
+
{ type: 'title', text: 'Impact op SEO en Conversie', level: 3 },
|
|
140
|
+
{ type: 'list', items: [
|
|
141
|
+
'<strong>Core Web Vitals:</strong> Google straft trage sites af. Geoptimaliseerde afbeeldingen verbeteren LCP (Largest Contentful Paint) direct.',
|
|
142
|
+
'<strong>Bouncepercentage:</strong> Elke seconde vertraging = 7% meer bounce. Snellere afbeeldingen = minder gebruikers die vertrekken.',
|
|
143
|
+
'<strong>Zoekranking:</strong> Snelheid is een rankingfactor. Het optimaliseren van afbeeldingen geeft een boost aan de positionering.',
|
|
144
|
+
'<strong>Conversie:</strong> Snellere laadtijden = meer conversies. Studies tonen +10% conversie aan met optimalisatie.'
|
|
145
|
+
], icon: 'mdi:check' },
|
|
146
|
+
|
|
147
|
+
{ type: 'proscons', items: [
|
|
148
|
+
{
|
|
149
|
+
pro: 'Totale privacy: 100% lokale verwerking, geen cloudservers',
|
|
150
|
+
con: 'Vereist browser met ondersteuning voor Canvas API (het is universeel)'
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
pro: 'WebP is 25-35% kleiner dan JPEG bij gelijke kwaliteit',
|
|
154
|
+
con: 'Oude Safari en IE ondersteunen geen WebP (fallback beschikbaar)'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Directe verwerking van meerdere afbeeldingen',
|
|
158
|
+
con: 'Zeer grote afbeeldingen (>50MB) kunnen wachttijd vereisen'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Optioneel herschalen: vermindert zowel de resolutie als de compressie',
|
|
162
|
+
con: 'Herschalen verliest informatie - beter om de resolutie bij de bron te optimaliseren'
|
|
163
|
+
}
|
|
164
|
+
], proTitle: 'Voordelen', conTitle: 'Beperkingen' },
|
|
165
|
+
|
|
166
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Let op: Overmatige Compressie Verslechtert de Kwaliteit', icon: 'mdi:alert', badge: 'Kwaliteit', html: 'Houd de kwaliteit >75% voor fotografie en >85% voor redactionele inhoud. Daaronder worden compressie-artefacten (vlekken, banding) zichtbaar. Een afbeelding die er goed uitziet in miniatuur kan er slecht uitzien wanneer deze groot is.' },
|
|
167
|
+
|
|
168
|
+
{ type: 'glossary', items: [
|
|
169
|
+
{
|
|
170
|
+
term: 'Lossy Compressie',
|
|
171
|
+
definition: 'Verwijdert visuele gegevens die het menselijk oog als \"ruis\" waarneemt. Ideaal voor fotografie. JPEG, lossy WebP, HEIC zijn lossy.'
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
term: 'Lossless Compressie',
|
|
175
|
+
definition: 'Vermindert de grootte zonder visuele informatie te verliezen. PNG en lossless WebP. Ideaal voor graphics, logo\'s, transparanties.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Core Web Vitals (Google)',
|
|
179
|
+
definition: 'Metrieken voor gebruikerservaring: LCP (laadsnelheid), FID (interactielatentie), CLS (visuele stabiliteit). Beïnvloeden de SEO-ranking.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'WebP',
|
|
183
|
+
definition: 'Formaat ontwikkeld door Google. 25-35% kleiner dan JPEG. Ondersteund door 95% van de moderne browsers (alle behalve IE).'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Compressie-artefacten',
|
|
187
|
+
definition: 'Visuele defecten veroorzaakt door overmatige compressie: vlekken, kleurbanding, vage randen. Onmerkbaar bij >75% kwaliteit.'
|
|
188
|
+
}
|
|
189
|
+
] },
|
|
190
|
+
|
|
191
|
+
{ type: 'message', title: 'Professionele Web Optimalisatie', ariaLabel: 'Informatie over afbeeldingsoptimalisatie voor SEO', html: 'Het is geen technische ijdelheid: het comprimeren van afbeeldingen is een directe investering in de gebruikerservaring en ranking in Google. Elke kilobyte telt op mobiel. Onze tool verandert wat vroeger professionele software ($$$) vereiste in een gratis 3-klikproces.' },
|
|
192
|
+
|
|
193
|
+
{ type: 'title', text: 'Klaar voor het Moderne Web', level: 3 },
|
|
194
|
+
{ type: 'paragraph', html: 'Gebruik intelligente compressie en WebP-formaat zodat je online aanwezigheid snel, responsief en concurrerend is in de zoekresultaten. Professionele kwaliteit, minimaal gewicht, direct laden.' }
|
|
195
|
+
];
|
|
196
|
+
|
|
197
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
198
|
+
'@context': 'https://schema.org',
|
|
199
|
+
'@type': 'FAQPage',
|
|
200
|
+
mainEntity: faq.map((item) => ({
|
|
201
|
+
'@type': 'Question',
|
|
202
|
+
name: item.question,
|
|
203
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
204
|
+
})),
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const howToSchema: WithContext<HowTo> = {
|
|
208
|
+
'@context': 'https://schema.org',
|
|
209
|
+
'@type': 'HowTo',
|
|
210
|
+
name: title,
|
|
211
|
+
description,
|
|
212
|
+
step: howTo.map((step) => ({
|
|
213
|
+
'@type': 'HowToStep',
|
|
214
|
+
name: step.name,
|
|
215
|
+
text: step.text,
|
|
216
|
+
})),
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
220
|
+
'@context': 'https://schema.org',
|
|
221
|
+
'@type': 'SoftwareApplication',
|
|
222
|
+
name: title,
|
|
223
|
+
description,
|
|
224
|
+
applicationCategory: 'UtilitiesApplication',
|
|
225
|
+
operatingSystem: 'Web',
|
|
226
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
227
|
+
inLanguage: 'nl',
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export const content: ImageCompressorLocaleContent = {
|
|
231
|
+
slug,
|
|
232
|
+
title,
|
|
233
|
+
description,
|
|
234
|
+
ui,
|
|
235
|
+
seo,
|
|
236
|
+
faqTitle: "Veelgestelde Vragen",
|
|
237
|
+
faq,
|
|
238
|
+
bibliographyTitle: "Referenties",
|
|
239
|
+
bibliography,
|
|
240
|
+
howTo,
|
|
241
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
242
|
+
};
|