@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
@@ -19,27 +19,27 @@ const ui: ImageConverterUI = {
19
19
  faqTitle: 'Domande Frequenti',
20
20
  };
21
21
 
22
- const faq: PngAJpgLocaleContent['faq'] = [
23
- {
22
+ const faq: PngAJpgLocaleContent['faq'] = [
23
+ {
24
24
  question: 'Perché scegliere il nostro convertitore locale da PNG a JPG?',
25
- answer:
25
+ answer:
26
26
  'A differenza dei servizi tradizionali, questo strumento elabora i file interamente nel browser. Le immagini non raggiungono mai un disco remoto, quindi mantieni il pieno controllo e la privacy dei dati.',
27
- },
28
- {
27
+ },
28
+ {
29
29
  question: 'JPG o PNG: quale formato è più adatto?',
30
- answer:
30
+ answer:
31
31
  'PNG è ideale per loghi ed elementi trasparenti. JPG è invece preferibile per fotografie e banner web, perché produce file molto più leggeri e accelera il caricamento delle pagine.',
32
- },
33
- {
32
+ },
33
+ {
34
34
  question: 'Come avviene la conversione senza caricare i file?',
35
- answer:
35
+ answer:
36
36
  "Usiamo il Canvas HTML5. Il browser ricrea l'immagine in un'area virtuale invisibile, riempie la trasparenza con il bianco e genera direttamente i byte JPEG da scaricare.",
37
- },
38
- {
37
+ },
38
+ {
39
39
  question: 'È sicuro per documenti riservati?',
40
- answer:
40
+ answer:
41
41
  "Sì. Per banca, sanità e studi legali è più sicuro non inviare immagini a servizi esterni: l'elaborazione resta nella RAM del dispositivo e termina quando chiudi la scheda.",
42
- },
42
+ },
43
43
  ];
44
44
 
45
45
  const howTo: PngAJpgLocaleContent['howTo'] = [
@@ -57,114 +57,114 @@ const howTo: PngAJpgLocaleContent['howTo'] = [
57
57
  },
58
58
  ];
59
59
 
60
- const seo: PngAJpgLocaleContent['seo'] = [
61
- {
62
- type: 'title',
60
+ const seo: PngAJpgLocaleContent['seo'] = [
61
+ {
62
+ type: 'title',
63
63
  text: 'Convertitore PNG in JPG: guida pratica per ottimizzare le immagini',
64
- level: 2,
65
- },
66
- {
67
- type: 'paragraph',
64
+ level: 2,
65
+ },
66
+ {
67
+ type: 'paragraph',
68
68
  html: 'Nel design digitale e nello sviluppo web, la velocità conta. PNG conserva trasparenza e qualità senza perdita, ma spesso genera file pesanti. Per pagine rapide e allegati leggeri, convertire una foto in JPG è una scelta efficace.',
69
- },
70
- {
71
- type: 'title',
69
+ },
70
+ {
71
+ type: 'title',
72
72
  text: 'JPG o PNG: quale scegliere?',
73
- level: 3,
74
- },
75
- {
76
- type: 'paragraph',
73
+ level: 3,
74
+ },
75
+ {
76
+ type: 'paragraph',
77
77
  html: 'Non esiste un formato migliore in assoluto. PNG è adatto a interfacce, loghi e sfondi trasparenti; la compressione senza perdita però può produrre file molto più grandi.',
78
- },
79
- {
80
- type: 'paragraph',
78
+ },
79
+ {
80
+ type: 'paragraph',
81
81
  html: 'JPG riduce i dettagli difficili da percepire e produce immagini leggere. È indicato per fotografie, banner e social: il compromesso tra minima perdita e maggiore velocità di rete è spesso vantaggioso.',
82
- },
83
- {
84
- type: 'title',
82
+ },
83
+ {
84
+ type: 'title',
85
85
  text: 'Confronto tecnico: elaborazione locale e cloud',
86
- level: 3,
87
- },
88
- {
89
- type: 'comparative',
90
- items: [
91
- {
86
+ level: 3,
87
+ },
88
+ {
89
+ type: 'comparative',
90
+ items: [
91
+ {
92
92
  title: 'Convertitori cloud',
93
93
  description: 'Servizi tradizionali che caricano le foto su un server remoto.',
94
- icon: 'mdi:cloud-upload',
95
- pointIcon: 'mdi:close-circle-outline',
96
- points: [
94
+ icon: 'mdi:cloud-upload',
95
+ pointIcon: 'mdi:close-circle-outline',
96
+ points: [
97
97
  'Latenza di rete (upload/download)',
98
98
  'Rischio di fuga dei dati privati',
99
99
  'Limiti di dimensione per file',
100
100
  'Pubblicità e tracciamento',
101
- ],
102
- },
103
- {
101
+ ],
102
+ },
103
+ {
104
104
  title: 'La nostra architettura locale',
105
105
  description: 'Elaborazione diretta sul dispositivo con tecnologia JavaScript nativa.',
106
- icon: 'mdi:laptop-mac',
107
- highlight: true,
108
- points: [
106
+ icon: 'mdi:laptop-mac',
107
+ highlight: true,
108
+ points: [
109
109
  'Velocità immediata senza rete',
110
110
  'Privacy garantita (zero byte inviati)',
111
111
  'Nessun limite di MB per file',
112
112
  'Interfaccia professionale e pulita',
113
- ],
114
- },
115
- ],
116
- },
117
- {
118
- type: 'title',
113
+ ],
114
+ },
115
+ ],
116
+ },
117
+ {
118
+ type: 'title',
119
119
  text: 'Come funziona la conversione tecnica',
120
- level: 3,
121
- },
122
- {
123
- type: 'paragraph',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
124
  html: 'La conversione senza server usa le API del browser. Quando scegli un file, il browser crea un Blob temporaneo nella RAM e lo disegna su un Canvas HTML5 invisibile.',
125
- },
126
- {
127
- type: 'paragraph',
125
+ },
126
+ {
127
+ type: 'paragraph',
128
128
  html: 'JPG non supporta il canale alfa: le aree trasparenti vengono quindi riempite di bianco prima del rendering. Il Canvas genera poi il flusso JPEG che il dispositivo salva direttamente.',
129
- },
130
- {
131
- type: 'tip',
129
+ },
130
+ {
131
+ type: 'tip',
132
132
  title: 'Consiglio SEO: il peso ideale',
133
133
  html: "Un'immagine più leggera può migliorare LCP e PageSpeed. Ridurre un PNG grande a un JPG più piccolo è utile per intestazioni, articoli e pagine con molte immagini.",
134
- },
135
- {
136
- type: 'title',
134
+ },
135
+ {
136
+ type: 'title',
137
137
  text: 'Sicurezza per aziende e professionisti',
138
- level: 3,
139
- },
140
- {
141
- type: 'paragraph',
138
+ level: 3,
139
+ },
140
+ {
141
+ type: 'paragraph',
142
142
  html: "Per banca, sanità e studi legali, inviare file a servizi esterni può creare rischi. Qui l'elaborazione resta nella RAM del browser e non richiede un caricamento su cloud.",
143
- },
144
- {
145
- type: 'title',
143
+ },
144
+ {
145
+ type: 'title',
146
146
  text: 'Compatibilità del risultato',
147
- level: 3,
148
- },
149
- {
150
- type: 'list',
151
- icon: 'mdi:check-circle',
152
- items: [
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'list',
151
+ icon: 'mdi:check-circle',
152
+ items: [
153
153
  'Visualizzatori su Windows, macOS e dispositivi mobili.',
154
154
  'Social network (Instagram, LinkedIn e altri).',
155
155
  "Programmi d'ufficio (Word, PowerPoint).",
156
156
  'Sistemi di gestione dei contenuti (WordPress, Shopify).',
157
- ],
158
- },
159
- {
160
- type: 'title',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
161
  text: 'Conclusione: ottimizza con criterio',
162
- level: 3,
163
- },
164
- {
165
- type: 'paragraph',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
166
  html: 'Questo convertitore unisce rapidità e privacy. Che tu sia uno sviluppatore o un utente domestico, puoi ridurre il peso delle immagini senza consegnare i file a un servizio di terze parti.',
167
- },
167
+ },
168
168
  ];
169
169
 
170
170
 
@@ -1,177 +1,177 @@
1
- import { bibliography } from '../bibliography';
2
- import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
- import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { PngAJpgLocaleContent } from '../index';
5
-
6
- const slug = 'png-to-jpg-converter';
7
- const title = 'PNG를 JPG로 온라인 변환';
8
- const description =
9
- 'PNG 이미지를 즉시 사용자 컴퓨터에서 빠른 압축 JPG 형식으로 변환하세요. 인터넷에 사진을 업로드할 필요가 없습니다. 일괄 최적화가 가능합니다.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'PNG 파일을 끌어다 놓으세요...',
13
- convertText: '즉시 JPG로 변환합니다',
14
- selectFiles: '파일 선택',
15
- processedFiles: '처리된 파일',
16
- downloadAll: '모두 다운로드 (.zip)',
17
- pending: '대기 중',
18
- bibliographyTitle: '참고 문헌',
19
- faqTitle: '자주 묻는 질문',
20
- };
21
-
22
- const faq: PngAJpgLocaleContent['faq'] = [
23
- {
24
- "question": "왜 로컬 PNG-JPG 변환기를 선택해야 하나요?",
25
- "answer": "일반적인 온라인 변환기와 달리 모든 이미지를 브라우저 내부에서 처리합니다. 외부 서버로 파일이 전송되지 않아 데이터 보안이 완벽하게 유지됩니다."
26
- },
27
- {
28
- "question": "JPG와 PNG 중 어떤 포맷이 적합한가요?",
29
- "answer": "PNG는 투명 배경과 로고에 최적화되어 있습니다. JPG는 압축률이 높아 파일 용량이 훨씬 작으므로 웹사이트 사진이나 배너에 적합합니다."
30
- },
31
- {
32
- "question": "서버 업로드 없는 기술적 변환 원리는 무엇인가요?",
33
- "answer": "HTML5 Canvas 기술을 이용합니다. 브라우저가 투명 캔버스에 이미지를 그리고 투명 영역을 흰색으로 채운 후 JPG 바이트 스트림을 생성합니다."
34
- },
35
- {
36
- "question": "기밀 문서 및 기업 데이터에 안전한가요?",
37
- "answer": "네, 매우 안전합니다. 모든 데이터는 브라우저 메모리에만 존재하며 탭을 닫으면 즉시 완전히 삭제됩니다."
38
- }
39
- ];
40
-
41
- const howTo: PngAJpgLocaleContent['howTo'] = [
42
- {
43
- name: '파일 선택',
44
- text: '폴더에 PNG 파일을 준비하고 처리 영역으로 모두 함께 끌어다 놓거나 파일 탐색기를 사용하여 찾으세요.',
45
- },
46
- {
47
- name: '즉시 처리',
48
- text: '브라우저가 로컬에서 파일 크기를 최적화하는 동안 각 파일의 상태가 "완료"로 바뀌는지 확인하세요.',
49
- },
50
- {
51
- name: '최적화된 다운로드',
52
- text: '새 JPG를 하나씩 저장하거나 "모두 다운로드" 버튼을 사용하여 모든 이미지가 포함된 압축 ZIP 파일을 받으세요.',
53
- },
54
- ];
55
-
56
- const seo: PngAJpgLocaleContent['seo'] = [
57
- {
58
- "type": "title",
59
- "text": "PNG에서 JPG로 변환기: 이미지 최적화 가이드",
60
- "level": 2
61
- },
62
- {
63
- "type": "paragraph",
64
- "html": "웹사이트 속도를 높이고 파일 용량을 줄이기 위한 PNG 대 JPG 변환 가이드입니다."
65
- },
66
- {
67
- "type": "title",
68
- "text": "JPG 대 PNG 선택",
69
- "level": 3
70
- },
71
- {
72
- "type": "paragraph",
73
- "html": "PNG는 투명 배경과 로고에 적합하며, JPG는 사진과 웹 배너에 최적화된 고압축 용량을 제공합니다."
74
- },
75
- {
76
- "type": "paragraph",
77
- "html": "웹사이트 로딩 속도를 향상시키려면 이미지 용량을 경량화하는 것이 필수적입니다."
78
- },
79
- {
80
- "type": "title",
81
- "text": "로컬 방식 대 클라우드 방식 비교",
82
- "level": 3
83
- },
84
- {
85
- "type": "comparative",
86
- "items": [
87
- {
88
- "title": "클라우드 변환기",
89
- "description": "서버에 파일을 업로드하여 처리하는 방식.",
90
- "icon": "mdi:cloud-upload",
91
- "pointIcon": "mdi:close-circle-outline",
92
- "points": [
93
- "네트워크 지연 발생",
94
- "개인정보 유출 위험",
95
- "용량 제한",
96
- "광고"
97
- ]
98
- },
99
- {
100
- "title": "자사 로컬 변환기",
101
- "description": "웹 브라우저 내부에서 직접 변환하는 방식.",
102
- "icon": "mdi:laptop-mac",
103
- "highlight": true,
104
- "points": [
105
- "즉각적인 변환 속도",
106
- "완벽한 보안 (서버 전송 없음)",
107
- "용량 제한 없음",
108
- "깔끔한 환경"
109
- ]
110
- }
111
- ]
112
- },
113
- {
114
- "type": "title",
115
- "text": "기술적 변환 원리",
116
- "level": 3
117
- },
118
- {
119
- "type": "paragraph",
120
- "html": "HTML5 Canvas 기술을 활용하여 브라우저 메모리상에서 이미지를 렌더링하고 바로 저장합니다."
121
- },
122
- {
123
- "type": "paragraph",
124
- "html": "투명 영역은 자동으로 흰색 배경으로 채워져 깨끗한 JPG 파일로 완성됩니다."
125
- },
126
- {
127
- "type": "tip",
128
- "title": "SEO 팁",
129
- "html": "웹용 이미지를 압축하여 PageSpeed 점수를 높이세요."
130
- },
131
- {
132
- "type": "title",
133
- "text": "기업용 보안",
134
- "level": 3
135
- },
136
- {
137
- "type": "paragraph",
138
- "html": "민감한 문서도 안심하고 처리할 수 있는 격리된 로컬 환경을 제공합니다."
139
- },
140
- {
141
- "type": "title",
142
- "text": "호환성",
143
- "level": 3
144
- },
145
- {
146
- "type": "list",
147
- "icon": "mdi:check-circle",
148
- "items": [
149
- "모든 OS 뷰어",
150
- "SNS 플랫폼",
151
- "오피스 프로그램",
152
- "CMS 시스템"
153
- ]
154
- },
155
- {
156
- "type": "title",
157
- "text": "결론",
158
- "level": 3
159
- },
160
- {
161
- "type": "paragraph",
162
- "html": "PNG를 JPG로 변환하는 것은 단순한 형식 변경을 넘어 웹 사이트의 성능을 향상시키고 사용자 경험을 최적화하는 핵심적인 과정입니다. 특히 고해상도 이미지가 많은 블로그, 쇼핑몰, 포트폴리오 사이트에서는 압축률이 높은 JPG 형식을 사용하는 것이 페이지 로딩 속도를 줄이는 데 필수적입니다. 본 변환기는 사용자의 브라우저 내에서 100% 로컬로 작동하므로 소중한 사진과 개인 문서의 보안을 완벽하게 지켜줍니다. 외부 서버로 파일이 업로드되지 않아 빠른 속도와 완벽한 개인정보 보호를 동시에 제공하는 최상의 이미지 변환 솔루션입니다."
163
- }
164
- ];
165
-
166
-
167
- export const content: PngAJpgLocaleContent = {
168
- slug,
169
- title,
170
- description,
171
- ui,
172
- seo,
173
- faq,
174
- bibliography,
175
- howTo,
176
- schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
177
- };
1
+ import { bibliography } from '../bibliography';
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
+ import { generateSchemas } from '../../../shared/logic/schemas';
4
+ import type { PngAJpgLocaleContent } from '../index';
5
+
6
+ const slug = 'png-to-jpg-converter';
7
+ const title = 'PNG를 JPG로 온라인 변환';
8
+ const description =
9
+ 'PNG 이미지를 즉시 사용자 컴퓨터에서 빠른 압축 JPG 형식으로 변환하세요. 인터넷에 사진을 업로드할 필요가 없습니다. 일괄 최적화가 가능합니다.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'PNG 파일을 끌어다 놓으세요...',
13
+ convertText: '즉시 JPG로 변환합니다',
14
+ selectFiles: '파일 선택',
15
+ processedFiles: '처리된 파일',
16
+ downloadAll: '모두 다운로드 (.zip)',
17
+ pending: '대기 중',
18
+ bibliographyTitle: '참고 문헌',
19
+ faqTitle: '자주 묻는 질문',
20
+ };
21
+
22
+ const faq: PngAJpgLocaleContent['faq'] = [
23
+ {
24
+ "question": "왜 로컬 PNG-JPG 변환기를 선택해야 하나요?",
25
+ "answer": "일반적인 온라인 변환기와 달리 모든 이미지를 브라우저 내부에서 처리합니다. 외부 서버로 파일이 전송되지 않아 데이터 보안이 완벽하게 유지됩니다."
26
+ },
27
+ {
28
+ "question": "JPG와 PNG 중 어떤 포맷이 적합한가요?",
29
+ "answer": "PNG는 투명 배경과 로고에 최적화되어 있습니다. JPG는 압축률이 높아 파일 용량이 훨씬 작으므로 웹사이트 사진이나 배너에 적합합니다."
30
+ },
31
+ {
32
+ "question": "서버 업로드 없는 기술적 변환 원리는 무엇인가요?",
33
+ "answer": "HTML5 Canvas 기술을 이용합니다. 브라우저가 투명 캔버스에 이미지를 그리고 투명 영역을 흰색으로 채운 후 JPG 바이트 스트림을 생성합니다."
34
+ },
35
+ {
36
+ "question": "기밀 문서 및 기업 데이터에 안전한가요?",
37
+ "answer": "네, 매우 안전합니다. 모든 데이터는 브라우저 메모리에만 존재하며 탭을 닫으면 즉시 완전히 삭제됩니다."
38
+ }
39
+ ];
40
+
41
+ const howTo: PngAJpgLocaleContent['howTo'] = [
42
+ {
43
+ name: '파일 선택',
44
+ text: '폴더에 PNG 파일을 준비하고 처리 영역으로 모두 함께 끌어다 놓거나 파일 탐색기를 사용하여 찾으세요.',
45
+ },
46
+ {
47
+ name: '즉시 처리',
48
+ text: '브라우저가 로컬에서 파일 크기를 최적화하는 동안 각 파일의 상태가 "완료"로 바뀌는지 확인하세요.',
49
+ },
50
+ {
51
+ name: '최적화된 다운로드',
52
+ text: '새 JPG를 하나씩 저장하거나 "모두 다운로드" 버튼을 사용하여 모든 이미지가 포함된 압축 ZIP 파일을 받으세요.',
53
+ },
54
+ ];
55
+
56
+ const seo: PngAJpgLocaleContent['seo'] = [
57
+ {
58
+ "type": "title",
59
+ "text": "PNG에서 JPG로 변환기: 이미지 최적화 가이드",
60
+ "level": 2
61
+ },
62
+ {
63
+ "type": "paragraph",
64
+ "html": "웹사이트 속도를 높이고 파일 용량을 줄이기 위한 PNG 대 JPG 변환 가이드입니다."
65
+ },
66
+ {
67
+ "type": "title",
68
+ "text": "JPG 대 PNG 선택",
69
+ "level": 3
70
+ },
71
+ {
72
+ "type": "paragraph",
73
+ "html": "PNG는 투명 배경과 로고에 적합하며, JPG는 사진과 웹 배너에 최적화된 고압축 용량을 제공합니다."
74
+ },
75
+ {
76
+ "type": "paragraph",
77
+ "html": "웹사이트 로딩 속도를 향상시키려면 이미지 용량을 경량화하는 것이 필수적입니다."
78
+ },
79
+ {
80
+ "type": "title",
81
+ "text": "로컬 방식 대 클라우드 방식 비교",
82
+ "level": 3
83
+ },
84
+ {
85
+ "type": "comparative",
86
+ "items": [
87
+ {
88
+ "title": "클라우드 변환기",
89
+ "description": "서버에 파일을 업로드하여 처리하는 방식.",
90
+ "icon": "mdi:cloud-upload",
91
+ "pointIcon": "mdi:close-circle-outline",
92
+ "points": [
93
+ "네트워크 지연 발생",
94
+ "개인정보 유출 위험",
95
+ "용량 제한",
96
+ "광고"
97
+ ]
98
+ },
99
+ {
100
+ "title": "자사 로컬 변환기",
101
+ "description": "웹 브라우저 내부에서 직접 변환하는 방식.",
102
+ "icon": "mdi:laptop-mac",
103
+ "highlight": true,
104
+ "points": [
105
+ "즉각적인 변환 속도",
106
+ "완벽한 보안 (서버 전송 없음)",
107
+ "용량 제한 없음",
108
+ "깔끔한 환경"
109
+ ]
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "type": "title",
115
+ "text": "기술적 변환 원리",
116
+ "level": 3
117
+ },
118
+ {
119
+ "type": "paragraph",
120
+ "html": "HTML5 Canvas 기술을 활용하여 브라우저 메모리상에서 이미지를 렌더링하고 바로 저장합니다."
121
+ },
122
+ {
123
+ "type": "paragraph",
124
+ "html": "투명 영역은 자동으로 흰색 배경으로 채워져 깨끗한 JPG 파일로 완성됩니다."
125
+ },
126
+ {
127
+ "type": "tip",
128
+ "title": "SEO 팁",
129
+ "html": "웹용 이미지를 압축하여 PageSpeed 점수를 높이세요."
130
+ },
131
+ {
132
+ "type": "title",
133
+ "text": "기업용 보안",
134
+ "level": 3
135
+ },
136
+ {
137
+ "type": "paragraph",
138
+ "html": "민감한 문서도 안심하고 처리할 수 있는 격리된 로컬 환경을 제공합니다."
139
+ },
140
+ {
141
+ "type": "title",
142
+ "text": "호환성",
143
+ "level": 3
144
+ },
145
+ {
146
+ "type": "list",
147
+ "icon": "mdi:check-circle",
148
+ "items": [
149
+ "모든 OS 뷰어",
150
+ "SNS 플랫폼",
151
+ "오피스 프로그램",
152
+ "CMS 시스템"
153
+ ]
154
+ },
155
+ {
156
+ "type": "title",
157
+ "text": "결론",
158
+ "level": 3
159
+ },
160
+ {
161
+ "type": "paragraph",
162
+ "html": "PNG를 JPG로 변환하는 것은 단순한 형식 변경을 넘어 웹 사이트의 성능을 향상시키고 사용자 경험을 최적화하는 핵심적인 과정입니다. 특히 고해상도 이미지가 많은 블로그, 쇼핑몰, 포트폴리오 사이트에서는 압축률이 높은 JPG 형식을 사용하는 것이 페이지 로딩 속도를 줄이는 데 필수적입니다. 본 변환기는 사용자의 브라우저 내에서 100% 로컬로 작동하므로 소중한 사진과 개인 문서의 보안을 완벽하게 지켜줍니다. 외부 서버로 파일이 업로드되지 않아 빠른 속도와 완벽한 개인정보 보호를 동시에 제공하는 최상의 이미지 변환 솔루션입니다."
163
+ }
164
+ ];
165
+
166
+
167
+ export const content: PngAJpgLocaleContent = {
168
+ slug,
169
+ title,
170
+ description,
171
+ ui,
172
+ seo,
173
+ faq,
174
+ bibliography,
175
+ howTo,
176
+ schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
177
+ };
@@ -20,27 +20,27 @@ const ui: ImageConverterUI = {
20
20
  faqTitle: 'Veelgestelde Vragen',
21
21
  };
22
22
 
23
- const faq: PngAJpgLocaleContent['faq'] = [
24
- {
25
- question: 'Waarom onze lokale PNG-naar-JPG-converter kiezen?',
26
- answer:
27
- 'In tegenstelling tot gewone tools verwerkt deze toepassing bestanden volledig in je browser. Je afbeeldingen verlaten je apparaat niet en blijven onder jouw controle.',
28
- },
29
- {
30
- question: 'JPG of PNG: welk formaat is beter?',
31
- answer:
23
+ const faq: PngAJpgLocaleContent['faq'] = [
24
+ {
25
+ question: 'Waarom onze lokale PNG-naar-JPG-converter kiezen?',
26
+ answer:
27
+ 'In tegenstelling tot gewone tools verwerkt deze toepassing bestanden volledig in je browser. Je afbeeldingen verlaten je apparaat niet en blijven onder jouw controle.',
28
+ },
29
+ {
30
+ question: 'JPG of PNG: welk formaat is beter?',
31
+ answer:
32
32
  "PNG is geschikt voor logo's en transparantie. JPG is meestal beter voor foto's en webbanners, omdat het bestand veel kleiner wordt en websites sneller laden.",
33
- },
34
- {
35
- question: 'Hoe werkt de conversie zonder upload?',
36
- answer:
37
- 'De toepassing gebruikt HTML5 Canvas. De browser tekent de afbeelding in een onzichtbaar werkvlak, vervangt transparantie door wit en maakt het JPG-bestand direct op je apparaat.',
38
- },
39
- {
40
- question: 'Is deze converter veilig voor vertrouwelijke documenten?',
41
- answer:
42
- 'Ja. De verwerking vindt uitsluitend in het geheugen van je apparaat plaats. Wanneer je het tabblad sluit, blijven er geen bestanden op een externe server achter.',
43
- },
33
+ },
34
+ {
35
+ question: 'Hoe werkt de conversie zonder upload?',
36
+ answer:
37
+ 'De toepassing gebruikt HTML5 Canvas. De browser tekent de afbeelding in een onzichtbaar werkvlak, vervangt transparantie door wit en maakt het JPG-bestand direct op je apparaat.',
38
+ },
39
+ {
40
+ question: 'Is deze converter veilig voor vertrouwelijke documenten?',
41
+ answer:
42
+ 'Ja. De verwerking vindt uitsluitend in het geheugen van je apparaat plaats. Wanneer je het tabblad sluit, blijven er geen bestanden op een externe server achter.',
43
+ },
44
44
  ];
45
45
 
46
46
  const howTo: PngAJpgLocaleContent['howTo'] = [