@jjlmoya/utils-converters 1.24.0 → 1.26.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.
Files changed (134) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/fr.ts +1 -1
  5. package/src/category/i18n/id.ts +1 -1
  6. package/src/category/i18n/it.ts +1 -1
  7. package/src/category/i18n/nl.ts +1 -1
  8. package/src/category/i18n/pl.ts +1 -1
  9. package/src/category/i18n/pt.ts +1 -1
  10. package/src/category/i18n/sv.ts +1 -1
  11. package/src/entries.ts +6 -0
  12. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  13. package/src/tests/category_seo_quality.test.ts +74 -0
  14. package/src/tests/faq_count.test.ts +1 -1
  15. package/src/tests/no_h1_in_components.test.ts +1 -1
  16. package/src/tests/seo_parity.test.ts +2 -2
  17. package/src/tests/seo_wellformed_export.test.ts +65 -0
  18. package/src/tests/tool_validation.test.ts +15 -15
  19. package/src/tool/avifAJpg/i18n/en.ts +164 -164
  20. package/src/tool/avifAJpg/i18n/es.ts +164 -164
  21. package/src/tool/avifAJpg/i18n/fr.ts +164 -164
  22. package/src/tool/avifAJpg/i18n/ja.ts +166 -166
  23. package/src/tool/avifAJpg/i18n/ko.ts +166 -166
  24. package/src/tool/avifAJpg/i18n/zh.ts +166 -166
  25. package/src/tool/avifAJpg/seo.astro +15 -15
  26. package/src/tool/avifAPng/i18n/en.ts +164 -164
  27. package/src/tool/avifAPng/i18n/es.ts +164 -164
  28. package/src/tool/avifAPng/i18n/fr.ts +164 -164
  29. package/src/tool/avifAPng/i18n/ja.ts +166 -166
  30. package/src/tool/avifAPng/i18n/ko.ts +166 -166
  31. package/src/tool/avifAPng/i18n/zh.ts +166 -166
  32. package/src/tool/avifAPng/seo.astro +15 -15
  33. package/src/tool/avifAWebp/i18n/en.ts +164 -164
  34. package/src/tool/avifAWebp/i18n/es.ts +164 -164
  35. package/src/tool/avifAWebp/i18n/fr.ts +164 -164
  36. package/src/tool/avifAWebp/i18n/ja.ts +166 -166
  37. package/src/tool/avifAWebp/i18n/ko.ts +166 -166
  38. package/src/tool/avifAWebp/i18n/zh.ts +166 -166
  39. package/src/tool/avifAWebp/seo.astro +15 -15
  40. package/src/tool/bmpAJpg/i18n/en.ts +164 -164
  41. package/src/tool/bmpAJpg/i18n/es.ts +164 -164
  42. package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
  43. package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
  44. package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
  45. package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
  46. package/src/tool/bmpAJpg/seo.astro +15 -15
  47. package/src/tool/bmpAPng/i18n/en.ts +164 -164
  48. package/src/tool/bmpAPng/i18n/es.ts +164 -164
  49. package/src/tool/bmpAPng/i18n/fr.ts +164 -164
  50. package/src/tool/bmpAPng/i18n/ja.ts +165 -165
  51. package/src/tool/bmpAPng/i18n/ko.ts +165 -165
  52. package/src/tool/bmpAPng/i18n/zh.ts +165 -165
  53. package/src/tool/bmpAPng/seo.astro +15 -15
  54. package/src/tool/bmpAWebp/i18n/en.ts +164 -164
  55. package/src/tool/bmpAWebp/i18n/es.ts +164 -164
  56. package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
  57. package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
  58. package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
  59. package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
  60. package/src/tool/bmpAWebp/seo.astro +15 -15
  61. package/src/tool/gifAJpg/i18n/en.ts +164 -164
  62. package/src/tool/gifAJpg/i18n/es.ts +164 -164
  63. package/src/tool/gifAJpg/i18n/fr.ts +164 -164
  64. package/src/tool/gifAJpg/i18n/ja.ts +166 -166
  65. package/src/tool/gifAJpg/i18n/ko.ts +166 -166
  66. package/src/tool/gifAJpg/i18n/zh.ts +166 -166
  67. package/src/tool/gifAJpg/seo.astro +15 -15
  68. package/src/tool/gifAPng/i18n/en.ts +164 -164
  69. package/src/tool/gifAPng/i18n/es.ts +164 -164
  70. package/src/tool/gifAPng/i18n/fr.ts +164 -164
  71. package/src/tool/gifAPng/i18n/ja.ts +166 -166
  72. package/src/tool/gifAPng/i18n/ko.ts +166 -166
  73. package/src/tool/gifAPng/i18n/zh.ts +166 -166
  74. package/src/tool/gifAPng/seo.astro +15 -15
  75. package/src/tool/gifAWebp/i18n/en.ts +164 -164
  76. package/src/tool/gifAWebp/i18n/es.ts +164 -164
  77. package/src/tool/gifAWebp/i18n/fr.ts +164 -164
  78. package/src/tool/gifAWebp/i18n/ja.ts +166 -166
  79. package/src/tool/gifAWebp/i18n/ko.ts +166 -166
  80. package/src/tool/gifAWebp/i18n/zh.ts +166 -166
  81. package/src/tool/gifAWebp/seo.astro +15 -15
  82. package/src/tool/imagenBase64/i18n/en.ts +154 -154
  83. package/src/tool/imagenBase64/i18n/es.ts +154 -154
  84. package/src/tool/imagenBase64/i18n/fr.ts +154 -154
  85. package/src/tool/imagenBase64/seo.astro +15 -15
  86. package/src/tool/jpgAIco/seo.astro +15 -15
  87. package/src/tool/jpgAPng/i18n/en.ts +164 -164
  88. package/src/tool/jpgAPng/i18n/es.ts +164 -164
  89. package/src/tool/jpgAPng/i18n/fr.ts +164 -164
  90. package/src/tool/jpgAPng/i18n/ja.ts +166 -166
  91. package/src/tool/jpgAPng/i18n/ko.ts +166 -166
  92. package/src/tool/jpgAPng/i18n/zh.ts +166 -166
  93. package/src/tool/jpgAPng/seo.astro +15 -15
  94. package/src/tool/jpgAWebp/i18n/en.ts +164 -164
  95. package/src/tool/jpgAWebp/i18n/es.ts +164 -164
  96. package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
  97. package/src/tool/jpgAWebp/seo.astro +15 -15
  98. package/src/tool/pngAIco/seo.astro +15 -15
  99. package/src/tool/pngAJpg/i18n/de.ts +21 -21
  100. package/src/tool/pngAJpg/i18n/es.ts +177 -177
  101. package/src/tool/pngAJpg/i18n/fr.ts +137 -137
  102. package/src/tool/pngAJpg/i18n/id.ts +89 -89
  103. package/src/tool/pngAJpg/i18n/it.ts +89 -89
  104. package/src/tool/pngAJpg/i18n/ko.ts +177 -177
  105. package/src/tool/pngAJpg/i18n/nl.ts +20 -20
  106. package/src/tool/pngAJpg/i18n/pl.ts +89 -89
  107. package/src/tool/pngAJpg/i18n/pt.ts +89 -89
  108. package/src/tool/pngAJpg/i18n/ru.ts +177 -177
  109. package/src/tool/pngAJpg/i18n/sv.ts +89 -89
  110. package/src/tool/pngAJpg/i18n/tr.ts +89 -89
  111. package/src/tool/pngAJpg/seo.astro +15 -15
  112. package/src/tool/pngAWebp/i18n/en.ts +164 -164
  113. package/src/tool/pngAWebp/i18n/es.ts +164 -164
  114. package/src/tool/pngAWebp/i18n/fr.ts +164 -164
  115. package/src/tool/pngAWebp/seo.astro +15 -15
  116. package/src/tool/svgAJpg/i18n/fr.ts +164 -164
  117. package/src/tool/svgAJpg/seo.astro +15 -15
  118. package/src/tool/svgAPng/i18n/fr.ts +164 -164
  119. package/src/tool/svgAPng/seo.astro +15 -15
  120. package/src/tool/webpAIco/seo.astro +15 -15
  121. package/src/tool/webpAJpg/seo.astro +15 -15
  122. package/src/tool/webpAPng/bibliography.ts +13 -13
  123. package/src/tool/webpAPng/i18n/de.ts +166 -166
  124. package/src/tool/webpAPng/i18n/es.ts +171 -171
  125. package/src/tool/webpAPng/i18n/fr.ts +166 -166
  126. package/src/tool/webpAPng/i18n/id.ts +166 -166
  127. package/src/tool/webpAPng/i18n/it.ts +166 -166
  128. package/src/tool/webpAPng/i18n/nl.ts +166 -166
  129. package/src/tool/webpAPng/i18n/pl.ts +166 -166
  130. package/src/tool/webpAPng/i18n/pt.ts +166 -166
  131. package/src/tool/webpAPng/i18n/ru.ts +166 -166
  132. package/src/tool/webpAPng/i18n/sv.ts +166 -166
  133. package/src/tool/webpAPng/i18n/tr.ts +167 -167
  134. package/src/tool/webpAPng/seo.astro +15 -15
@@ -1,168 +1,168 @@
1
1
  import { bibliography } from '../bibliography';
2
- import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
- import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { AvifAWebpLocaleContent } from '../index';
5
-
6
- const slug = 'avif-to-webp-converter';
7
- const title = 'AVIF를 WebP로 온라인 변환';
8
- const description =
9
- '호환성을 높이기 위해 AVIF 이미지를 WebP로 변환하세요. 서버 없는 로컬 처리 방식입니다. 무료이며 프라이빗하며 무제한으로 사용할 수 있습니다.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'AVIF 파일을 끌어다 놓으세요...',
13
- convertText: '즉시 WebP로 변환합니다',
14
- selectFiles: '파일 선택',
15
- processedFiles: '처리된 파일',
16
- downloadAll: '모두 다운로드 (.zip)',
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
+ import { generateSchemas } from '../../../shared/logic/schemas';
4
+ import type { AvifAWebpLocaleContent } from '../index';
5
+
6
+ const slug = 'avif-to-webp-converter';
7
+ const title = 'AVIF를 WebP로 온라인 변환';
8
+ const description =
9
+ '호환성을 높이기 위해 AVIF 이미지를 WebP로 변환하세요. 서버 없는 로컬 처리 방식입니다. 무료이며 프라이빗하며 무제한으로 사용할 수 있습니다.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'AVIF 파일을 끌어다 놓으세요...',
13
+ convertText: '즉시 WebP로 변환합니다',
14
+ selectFiles: '파일 선택',
15
+ processedFiles: '처리된 파일',
16
+ downloadAll: '모두 다운로드 (.zip)',
17
17
  pending: '대기 중',
18
- bibliographyTitle: '참고 문헌',
19
- faqTitle: '자주 묻는 질문',
20
- };
21
-
22
- const faq: AvifAWebpLocaleContent['faq'] = [
23
- {
24
- question: 'WebP로 변환하는 것과 다른 형식의 실제 차이점은 무엇인가요?',
25
- answer:
26
- 'WebP는 두 세계의 장점을 모두 제공합니다. JPG만큼 놀라운 압축률을 보이면서도 PNG처럼 깨끗한 투명도를 유지할 수 있습니다. AVIF를 WebP로 변경하면 모든 장점을 유지하면서 웹 호환성을 극대화할 수 있습니다.',
27
- },
28
- {
29
- question: '서버 없이 어떻게 이렇게 빠르게 변환할 수 있나요?',
30
- answer:
31
- '내장된 디코딩 모듈과 JavaScript HTML5 Image 객체를 활용하여 로컬 메모리에서 AVIF를 읽고 최적화된 WebP 파일을 최단 시간에 추출할 수 있습니다.',
32
- },
33
- {
34
- question: '현재 WebP 형식은 완전히 호환되나요?',
35
- answer:
36
- '갓 태어난 AVIF와 달리 WebP 형식은 Chrome, Firefox, Safari 등 브라우저 간에 매우 폭넓은 지원을 받고 있습니다.',
37
- },
38
- ];
39
-
40
- const howTo: AvifAWebpLocaleContent['howTo'] = [
41
- {
42
- name: '사진 파일 삽입',
43
- text: '모든 AVIF 형식 선택 항목을 캔버스로 드래그 앤 드롭 하세요.',
44
- },
45
- {
46
- name: '알고리즘 바이트 변환',
47
- text: '우리 엔진은 아무것도 업로드하지 않고 알고리즘을 처리하며 압축된 WebP를 기반으로 정확한 결과물을 생성합니다.',
48
- },
49
- {
50
- name: '완료된 다운로드 수집',
51
- text: '패널을 누르고 ZIP 압축 파일 또는 개별 파일로 즉시 게시할 수 있게 받으세요.',
52
- },
53
- ];
54
-
55
- const seo: AvifAWebpLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'AVIF to WebP 변환기: 웹을 위한 현대적이고 안전한 대안',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'AVIF는 현재 사용 가능한 가장 진보된 이미지 형식입니다. WebP보다 작고 JPG보다 작으며 시각적 품질도 뛰어납니다. 하지만 채택 속도는 일정하지 않았습니다. Safari는 2024년까지 이를 지원하지 않았으며 많은 구형 모바일 장치는 이를 인식하지 못합니다. 반면 WebP는 95% 이상의 글로벌 지원을 받으며 수년 동안 현대적 웹 표준으로 자리 잡았습니다. 호환성을 위협하지 않으면서 최신 기술이 필요할 때 AVIF를 WebP로 변환하는 것은 실용적인 결정입니다.',
64
- },
65
- {
66
- type: 'title',
67
- text: 'AVIF vs WebP: 최신 기술 vs 가장 안전한 선택',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'AVIF는 현재 사용 가능한 가장 진보된 압축 기술을 제공합니다. 일반적으로 동일한 품질에서 WebP보다 20-30% 더 작습니다. AV1 기반 기술은 업계에서 가장 현대적입니다. 그러나 AVIF 지원에는 여전히 사각지대가 있습니다. 이전 Safari 버전, 일부 구형 Android 브라우저 및 특정 데스크톱 이미지 플레이어는 이를 인식하지 못합니다. 넓고 다양한 청중을 보유한 웹 서비스에 이는 위험 요소가 될 수 있습니다.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'WebP는 훨씬 더 견고한 지원 이력을 가지고 있습니다. Chrome은 2010년에 채택했고 Firefox와 Edge가 그 뒤를 이었으며 Safari는 2020년에 이를 포함했습니다. 브라우저에서 95% 이상의 글로벌 점유율을 기록하는 WebP는 별도의 대체 형식을 제공하고 싶지 않은 모든 웹사이트에 안전한 선택입니다. 투명도, 손실 및 무손실 압축을 지원하며 JPG나 PNG보다 훨씬 작은 파일을 생성합니다.',
77
- },
78
- {
79
- type: 'title',
80
- text: '비교: 클라우드 변환기 vs 우리의 로컬 아키텍처',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: '클라우드 변환기',
88
- description: '처리를 위해 AVIF 파일을 원격 서버로 업로드하는 도구입니다.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- '사용자의 개인 이미지가 외부 서버로 전송됨',
93
- '워크플로우를 늦추는 네트워크 지연 발생',
94
- '무료 변환 시 파일 개수 및 크기 제한',
95
- '변경될 수 있는 제3자 서비스에 의존',
96
- ],
97
- },
98
- {
99
- title: '우리의 로컬 아키텍처',
100
- description: 'Vanilla JS 기술과 Canvas API를 사용하여 브라우저에서 직접 처리합니다.',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- '완벽한 프라이버시 - 0바이트가 장치 외부로 나감',
105
- '네트워크 의존성 없는 즉각적인 속도',
106
- '크기나 파일 개수 제한 없음',
107
- '인터넷 연결 없이도 작동',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: '브라우저에서의 기술적인 변환 원리',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'Chrome, Firefox, Edge는 네이티브 AVIF 디코더를 포함하고 있습니다. 파일을 불러오면 브라우저의 이미지 엔진이 알파 채널 정보를 유지하면서 RAM에서 이를 디코드합니다. 이미지는 투명도를 올바르게 보존하는 2D 컨텍스트를 사용하여 보이지 않는 HTML5 <code>Canvas</code> 위에 그려집니다.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: '내보내기는 <code>toBlob(\'image/webp\', quality)</code>를 통해 수행됩니다. 브라우저는 내부적으로 WebP 압축 알고리즘을 적용하여 원본 이미지에 알파 채널이 있는 경우 이를 포함하는 Blob을 생성합니다. 이 Blob은 즉시 다운로드 링크로 변환됩니다. 전체 프로세스는 외부 서버와의 통신 없이 수 마이크로초 내에 발생합니다.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'WebP: 현대 개발자의 실용적인 선택',
128
- html: 'WebP는 브라우저에서 95% 이상의 지원을 받습니다. AVIF가 성장하고 있지만 아직 그 수치에는 도달하지 못했습니다. 적응형 형식 탐지 기능이 없는 운영 중인 사이트의 경우 WebP는 거의 모든 청중을 포괄하는 안전한 선택입니다. AVIF를 WebP로 변환하여 자신 있게 최신 이미지를 제공하세요.',
129
- },
130
- {
131
- type: 'title',
132
- text: '사용 사례: AVIF보다 WebP를 선택해야 할 때',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- '폴리필 없이 2020년 이후 브라우저에서 지원이 필요한 웹사이트.',
140
- 'WebP는 수용하지만 AVIF는 지원하지 않는 CDN 및 이미지 제공 시스템.',
141
- 'AVIF를 지원하지 않을 수 있는 WebView를 사용하는 하이브리드 모바일 앱.',
142
- 'WebP가 AVIF보다 지원 범위가 넓은 현대적 HTML 이메일.',
143
- '확립된 WebP 이미지 지원 기능을 갖춘 CMS 플랫폼 및 이커머스.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: '결론: 호환성이 보장된 최신 기술',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'AVIF는 이미지 압축의 최전선에 있지만 WebP는 현대적 웹 생태계의 신뢰할 수 있고 보편적인 선택입니다. 우리의 도구를 사용하면 서버에 아무것도 업로드하지 않고도 최신 형식에서 가장 널리 지원되는 형식으로 즉시 전환할 수 있습니다. 완벽한 프라이버시가 보장되며 크기 제한도 없습니다.',
154
- },
155
- ];
156
-
157
-
158
- export const content: AvifAWebpLocaleContent = {
159
- slug,
160
- title,
161
- description,
162
- ui,
163
- seo,
164
- faq,
165
- bibliography,
166
- howTo,
167
- schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
168
- };
18
+ bibliographyTitle: '참고 문헌',
19
+ faqTitle: '자주 묻는 질문',
20
+ };
21
+
22
+ const faq: AvifAWebpLocaleContent['faq'] = [
23
+ {
24
+ question: 'WebP로 변환하는 것과 다른 형식의 실제 차이점은 무엇인가요?',
25
+ answer:
26
+ 'WebP는 두 세계의 장점을 모두 제공합니다. JPG만큼 놀라운 압축률을 보이면서도 PNG처럼 깨끗한 투명도를 유지할 수 있습니다. AVIF를 WebP로 변경하면 모든 장점을 유지하면서 웹 호환성을 극대화할 수 있습니다.',
27
+ },
28
+ {
29
+ question: '서버 없이 어떻게 이렇게 빠르게 변환할 수 있나요?',
30
+ answer:
31
+ '내장된 디코딩 모듈과 JavaScript HTML5 Image 객체를 활용하여 로컬 메모리에서 AVIF를 읽고 최적화된 WebP 파일을 최단 시간에 추출할 수 있습니다.',
32
+ },
33
+ {
34
+ question: '현재 WebP 형식은 완전히 호환되나요?',
35
+ answer:
36
+ '갓 태어난 AVIF와 달리 WebP 형식은 Chrome, Firefox, Safari 등 브라우저 간에 매우 폭넓은 지원을 받고 있습니다.',
37
+ },
38
+ ];
39
+
40
+ const howTo: AvifAWebpLocaleContent['howTo'] = [
41
+ {
42
+ name: '사진 파일 삽입',
43
+ text: '모든 AVIF 형식 선택 항목을 캔버스로 드래그 앤 드롭 하세요.',
44
+ },
45
+ {
46
+ name: '알고리즘 바이트 변환',
47
+ text: '우리 엔진은 아무것도 업로드하지 않고 알고리즘을 처리하며 압축된 WebP를 기반으로 정확한 결과물을 생성합니다.',
48
+ },
49
+ {
50
+ name: '완료된 다운로드 수집',
51
+ text: '패널을 누르고 ZIP 압축 파일 또는 개별 파일로 즉시 게시할 수 있게 받으세요.',
52
+ },
53
+ ];
54
+
55
+ const seo: AvifAWebpLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'AVIF to WebP 변환기: 웹을 위한 현대적이고 안전한 대안',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'AVIF는 현재 사용 가능한 가장 진보된 이미지 형식입니다. WebP보다 작고 JPG보다 작으며 시각적 품질도 뛰어납니다. 하지만 채택 속도는 일정하지 않았습니다. Safari는 2024년까지 이를 지원하지 않았으며 많은 구형 모바일 장치는 이를 인식하지 못합니다. 반면 WebP는 95% 이상의 글로벌 지원을 받으며 수년 동안 현대적 웹 표준으로 자리 잡았습니다. 호환성을 위협하지 않으면서 최신 기술이 필요할 때 AVIF를 WebP로 변환하는 것은 실용적인 결정입니다.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'AVIF vs WebP: 최신 기술 vs 가장 안전한 선택',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'AVIF는 현재 사용 가능한 가장 진보된 압축 기술을 제공합니다. 일반적으로 동일한 품질에서 WebP보다 20-30% 더 작습니다. AV1 기반 기술은 업계에서 가장 현대적입니다. 그러나 AVIF 지원에는 여전히 사각지대가 있습니다. 이전 Safari 버전, 일부 구형 Android 브라우저 및 특정 데스크톱 이미지 플레이어는 이를 인식하지 못합니다. 넓고 다양한 청중을 보유한 웹 서비스에 이는 위험 요소가 될 수 있습니다.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'WebP는 훨씬 더 견고한 지원 이력을 가지고 있습니다. Chrome은 2010년에 채택했고 Firefox와 Edge가 그 뒤를 이었으며 Safari는 2020년에 이를 포함했습니다. 브라우저에서 95% 이상의 글로벌 점유율을 기록하는 WebP는 별도의 대체 형식을 제공하고 싶지 않은 모든 웹사이트에 안전한 선택입니다. 투명도, 손실 및 무손실 압축을 지원하며 JPG나 PNG보다 훨씬 작은 파일을 생성합니다.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: '비교: 클라우드 변환기 vs 우리의 로컬 아키텍처',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: '클라우드 변환기',
88
+ description: '처리를 위해 AVIF 파일을 원격 서버로 업로드하는 도구입니다.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ '사용자의 개인 이미지가 외부 서버로 전송됨',
93
+ '워크플로우를 늦추는 네트워크 지연 발생',
94
+ '무료 변환 시 파일 개수 및 크기 제한',
95
+ '변경될 수 있는 제3자 서비스에 의존',
96
+ ],
97
+ },
98
+ {
99
+ title: '우리의 로컬 아키텍처',
100
+ description: 'Vanilla JS 기술과 Canvas API를 사용하여 브라우저에서 직접 처리합니다.',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ '완벽한 프라이버시 - 0바이트가 장치 외부로 나감',
105
+ '네트워크 의존성 없는 즉각적인 속도',
106
+ '크기나 파일 개수 제한 없음',
107
+ '인터넷 연결 없이도 작동',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: '브라우저에서의 기술적인 변환 원리',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Chrome, Firefox, Edge는 네이티브 AVIF 디코더를 포함하고 있습니다. 파일을 불러오면 브라우저의 이미지 엔진이 알파 채널 정보를 유지하면서 RAM에서 이를 디코드합니다. 이미지는 투명도를 올바르게 보존하는 2D 컨텍스트를 사용하여 보이지 않는 HTML5 <code>Canvas</code> 위에 그려집니다.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: '내보내기는 <code>toBlob(\'image/webp\', quality)</code>를 통해 수행됩니다. 브라우저는 내부적으로 WebP 압축 알고리즘을 적용하여 원본 이미지에 알파 채널이 있는 경우 이를 포함하는 Blob을 생성합니다. 이 Blob은 즉시 다운로드 링크로 변환됩니다. 전체 프로세스는 외부 서버와의 통신 없이 수 마이크로초 내에 발생합니다.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'WebP: 현대 개발자의 실용적인 선택',
128
+ html: 'WebP는 브라우저에서 95% 이상의 지원을 받습니다. AVIF가 성장하고 있지만 아직 그 수치에는 도달하지 못했습니다. 적응형 형식 탐지 기능이 없는 운영 중인 사이트의 경우 WebP는 거의 모든 청중을 포괄하는 안전한 선택입니다. AVIF를 WebP로 변환하여 자신 있게 최신 이미지를 제공하세요.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: '사용 사례: AVIF보다 WebP를 선택해야 할 때',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ '폴리필 없이 2020년 이후 브라우저에서 지원이 필요한 웹사이트.',
140
+ 'WebP는 수용하지만 AVIF는 지원하지 않는 CDN 및 이미지 제공 시스템.',
141
+ 'AVIF를 지원하지 않을 수 있는 WebView를 사용하는 하이브리드 모바일 앱.',
142
+ 'WebP가 AVIF보다 지원 범위가 넓은 현대적 HTML 이메일.',
143
+ '확립된 WebP 이미지 지원 기능을 갖춘 CMS 플랫폼 및 이커머스.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '결론: 호환성이 보장된 최신 기술',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'AVIF는 이미지 압축의 최전선에 있지만 WebP는 현대적 웹 생태계의 신뢰할 수 있고 보편적인 선택입니다. 우리의 도구를 사용하면 서버에 아무것도 업로드하지 않고도 최신 형식에서 가장 널리 지원되는 형식으로 즉시 전환할 수 있습니다. 완벽한 프라이버시가 보장되며 크기 제한도 없습니다.',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: AvifAWebpLocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
168
+ };