@jjlmoya/utils-converters 1.25.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.
- package/package.json +2 -2
- package/src/category/i18n/de.ts +1 -1
- package/src/category/i18n/en.ts +1 -1
- package/src/category/i18n/fr.ts +1 -1
- package/src/category/i18n/id.ts +1 -1
- package/src/category/i18n/it.ts +1 -1
- package/src/category/i18n/nl.ts +1 -1
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/pt.ts +1 -1
- package/src/category/i18n/sv.ts +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +15 -15
- package/src/tool/avifAJpg/i18n/en.ts +164 -164
- package/src/tool/avifAJpg/i18n/es.ts +164 -164
- package/src/tool/avifAJpg/i18n/fr.ts +164 -164
- package/src/tool/avifAJpg/i18n/ja.ts +166 -166
- package/src/tool/avifAJpg/i18n/ko.ts +166 -166
- package/src/tool/avifAJpg/i18n/zh.ts +166 -166
- package/src/tool/avifAJpg/seo.astro +15 -15
- package/src/tool/avifAPng/i18n/en.ts +164 -164
- package/src/tool/avifAPng/i18n/es.ts +164 -164
- package/src/tool/avifAPng/i18n/fr.ts +164 -164
- package/src/tool/avifAPng/i18n/ja.ts +166 -166
- package/src/tool/avifAPng/i18n/ko.ts +166 -166
- package/src/tool/avifAPng/i18n/zh.ts +166 -166
- package/src/tool/avifAPng/seo.astro +15 -15
- package/src/tool/avifAWebp/i18n/en.ts +164 -164
- package/src/tool/avifAWebp/i18n/es.ts +164 -164
- package/src/tool/avifAWebp/i18n/fr.ts +164 -164
- package/src/tool/avifAWebp/i18n/ja.ts +166 -166
- package/src/tool/avifAWebp/i18n/ko.ts +166 -166
- package/src/tool/avifAWebp/i18n/zh.ts +166 -166
- package/src/tool/avifAWebp/seo.astro +15 -15
- package/src/tool/bmpAJpg/i18n/en.ts +164 -164
- package/src/tool/bmpAJpg/i18n/es.ts +164 -164
- package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
- package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
- package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
- package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
- package/src/tool/bmpAJpg/seo.astro +15 -15
- package/src/tool/bmpAPng/i18n/en.ts +164 -164
- package/src/tool/bmpAPng/i18n/es.ts +164 -164
- package/src/tool/bmpAPng/i18n/fr.ts +164 -164
- package/src/tool/bmpAPng/i18n/ja.ts +165 -165
- package/src/tool/bmpAPng/i18n/ko.ts +165 -165
- package/src/tool/bmpAPng/i18n/zh.ts +165 -165
- package/src/tool/bmpAPng/seo.astro +15 -15
- package/src/tool/bmpAWebp/i18n/en.ts +164 -164
- package/src/tool/bmpAWebp/i18n/es.ts +164 -164
- package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
- package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
- package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
- package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
- package/src/tool/bmpAWebp/seo.astro +15 -15
- package/src/tool/gifAJpg/i18n/en.ts +164 -164
- package/src/tool/gifAJpg/i18n/es.ts +164 -164
- package/src/tool/gifAJpg/i18n/fr.ts +164 -164
- package/src/tool/gifAJpg/i18n/ja.ts +166 -166
- package/src/tool/gifAJpg/i18n/ko.ts +166 -166
- package/src/tool/gifAJpg/i18n/zh.ts +166 -166
- package/src/tool/gifAJpg/seo.astro +15 -15
- package/src/tool/gifAPng/i18n/en.ts +164 -164
- package/src/tool/gifAPng/i18n/es.ts +164 -164
- package/src/tool/gifAPng/i18n/fr.ts +164 -164
- package/src/tool/gifAPng/i18n/ja.ts +166 -166
- package/src/tool/gifAPng/i18n/ko.ts +166 -166
- package/src/tool/gifAPng/i18n/zh.ts +166 -166
- package/src/tool/gifAPng/seo.astro +15 -15
- package/src/tool/gifAWebp/i18n/en.ts +164 -164
- package/src/tool/gifAWebp/i18n/es.ts +164 -164
- package/src/tool/gifAWebp/i18n/fr.ts +164 -164
- package/src/tool/gifAWebp/i18n/ja.ts +166 -166
- package/src/tool/gifAWebp/i18n/ko.ts +166 -166
- package/src/tool/gifAWebp/i18n/zh.ts +166 -166
- package/src/tool/gifAWebp/seo.astro +15 -15
- package/src/tool/imagenBase64/i18n/en.ts +154 -154
- package/src/tool/imagenBase64/i18n/es.ts +154 -154
- package/src/tool/imagenBase64/i18n/fr.ts +154 -154
- package/src/tool/imagenBase64/seo.astro +15 -15
- package/src/tool/jpgAIco/seo.astro +15 -15
- package/src/tool/jpgAPng/i18n/en.ts +164 -164
- package/src/tool/jpgAPng/i18n/es.ts +164 -164
- package/src/tool/jpgAPng/i18n/fr.ts +164 -164
- package/src/tool/jpgAPng/i18n/ja.ts +166 -166
- package/src/tool/jpgAPng/i18n/ko.ts +166 -166
- package/src/tool/jpgAPng/i18n/zh.ts +166 -166
- package/src/tool/jpgAPng/seo.astro +15 -15
- package/src/tool/jpgAWebp/i18n/en.ts +164 -164
- package/src/tool/jpgAWebp/i18n/es.ts +164 -164
- package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
- package/src/tool/jpgAWebp/seo.astro +15 -15
- package/src/tool/pngAIco/seo.astro +15 -15
- package/src/tool/pngAJpg/i18n/de.ts +21 -21
- package/src/tool/pngAJpg/i18n/es.ts +177 -177
- package/src/tool/pngAJpg/i18n/fr.ts +137 -137
- package/src/tool/pngAJpg/i18n/id.ts +89 -89
- package/src/tool/pngAJpg/i18n/it.ts +89 -89
- package/src/tool/pngAJpg/i18n/ko.ts +177 -177
- package/src/tool/pngAJpg/i18n/nl.ts +20 -20
- package/src/tool/pngAJpg/i18n/pl.ts +89 -89
- package/src/tool/pngAJpg/i18n/pt.ts +89 -89
- package/src/tool/pngAJpg/i18n/ru.ts +177 -177
- package/src/tool/pngAJpg/i18n/sv.ts +89 -89
- package/src/tool/pngAJpg/i18n/tr.ts +89 -89
- package/src/tool/pngAJpg/seo.astro +15 -15
- package/src/tool/pngAWebp/i18n/en.ts +164 -164
- package/src/tool/pngAWebp/i18n/es.ts +164 -164
- package/src/tool/pngAWebp/i18n/fr.ts +164 -164
- package/src/tool/pngAWebp/seo.astro +15 -15
- package/src/tool/svgAJpg/i18n/fr.ts +164 -164
- package/src/tool/svgAJpg/seo.astro +15 -15
- package/src/tool/svgAPng/i18n/fr.ts +164 -164
- package/src/tool/svgAPng/seo.astro +15 -15
- package/src/tool/webpAIco/seo.astro +15 -15
- package/src/tool/webpAJpg/seo.astro +15 -15
- package/src/tool/webpAPng/bibliography.ts +13 -13
- package/src/tool/webpAPng/i18n/de.ts +166 -166
- package/src/tool/webpAPng/i18n/es.ts +171 -171
- package/src/tool/webpAPng/i18n/fr.ts +166 -166
- package/src/tool/webpAPng/i18n/id.ts +166 -166
- package/src/tool/webpAPng/i18n/it.ts +166 -166
- package/src/tool/webpAPng/i18n/nl.ts +166 -166
- package/src/tool/webpAPng/i18n/pl.ts +166 -166
- package/src/tool/webpAPng/i18n/pt.ts +166 -166
- package/src/tool/webpAPng/i18n/ru.ts +166 -166
- package/src/tool/webpAPng/i18n/sv.ts +166 -166
- package/src/tool/webpAPng/i18n/tr.ts +167 -167
- 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 { WebpAPngLocaleContent } from '../index';
|
|
5
|
-
|
|
6
|
-
const slug = 'konverter-webp-ke-png';
|
|
7
|
-
const title = 'Konversi WebP ke PNG Online dan Gratis';
|
|
8
|
-
const description =
|
|
9
|
-
'Konversi gambar WebP ke PNG di browser Anda. Menjaga transparansi. Tanpa unggah file ke server. Gratis dan 100% pribadi.';
|
|
10
|
-
|
|
11
|
-
const ui: ImageConverterUI = {
|
|
12
|
-
dragText: 'Tarik file WebP...',
|
|
13
|
-
convertText: 'Untuk mengkonversinya ke PNG secara instan',
|
|
14
|
-
selectFiles: 'Pilih file',
|
|
15
|
-
processedFiles: 'File yang diproses',
|
|
16
|
-
downloadAll: 'Unduh Semua (.zip)',
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
4
|
+
import type { WebpAPngLocaleContent } from '../index';
|
|
5
|
+
|
|
6
|
+
const slug = 'konverter-webp-ke-png';
|
|
7
|
+
const title = 'Konversi WebP ke PNG Online dan Gratis';
|
|
8
|
+
const description =
|
|
9
|
+
'Konversi gambar WebP ke PNG di browser Anda. Menjaga transparansi. Tanpa unggah file ke server. Gratis dan 100% pribadi.';
|
|
10
|
+
|
|
11
|
+
const ui: ImageConverterUI = {
|
|
12
|
+
dragText: 'Tarik file WebP...',
|
|
13
|
+
convertText: 'Untuk mengkonversinya ke PNG secara instan',
|
|
14
|
+
selectFiles: 'Pilih file',
|
|
15
|
+
processedFiles: 'File yang diproses',
|
|
16
|
+
downloadAll: 'Unduh Semua (.zip)',
|
|
17
17
|
pending: 'Menunggu',
|
|
18
|
-
bibliographyTitle: 'Referensi Bibliografi',
|
|
19
|
-
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const faq: WebpAPngLocaleContent['faq'] = [
|
|
23
|
-
{
|
|
24
|
-
question: 'Mengapa saya perlu mengonversi file WebP saya ke PNG?',
|
|
25
|
-
answer:
|
|
26
|
-
'Meskipun lebih ringan, file WebP dapat menyebabkan ketidakcocokan dalam program pengeditan seperti Photoshop versi lama. PNG memastikan kompatibilitas universal 100%.',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
question: 'Apakah transparansi hilang saat mengonversi dari WebP ke PNG?',
|
|
30
|
-
answer:
|
|
31
|
-
'Sama sekali tidak. Berbeda dengan konversi ke JPG, PNG mendukung saluran alfa. Alat kami akan menjaga area transparan apa pun dari file asli.',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
question: 'Dapatkah saya mengunggah file perusahaan yang bersifat rahasia?',
|
|
35
|
-
answer:
|
|
36
|
-
'Anda bisa dan harus melakukannya. Karena semuanya berjalan secara lokal melalui JavaScript, gambar perusahaan Anda tidak akan pernah meninggalkan komputer Anda atau disimpan di server eksternal.',
|
|
37
|
-
},
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
const howTo: WebpAPngLocaleContent['howTo'] = [
|
|
41
|
-
{
|
|
42
|
-
name: 'Tarik file WebP Anda',
|
|
43
|
-
text: 'Pindahkan dan letakkan file WebP Anda ke panel utama atau pilih gambar secara tradisional.',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: 'Konversi Fidelity Tinggi',
|
|
47
|
-
text: 'Browser Anda akan menggambar ulang gambar piksel demi piksel dan menghasilkan salinan persis dalam format PNG, dengan mempertahankan gamut warna asli.',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
name: 'Unduhan Individu atau Massal',
|
|
51
|
-
text: 'Simpan setiap file secara terpisah atau, jika Anda memproses dalam jumlah banyak, klik tombol ZIP untuk mengunduh semuanya secara bersamaan.',
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
|
|
55
|
-
const seo: WebpAPngLocaleContent['seo'] = [
|
|
56
|
-
{
|
|
57
|
-
type: 'title',
|
|
58
|
-
text: 'Konverter WebP ke PNG: Pilihan Profesional untuk Pengeditan dan Desain',
|
|
59
|
-
level: 2,
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
type: 'paragraph',
|
|
63
|
-
html: 'Ketika seorang desainer mengunduh aset grafis dalam format <strong>WebP</strong> dan mencoba membukanya di Photoshop, Figma, atau Illustrator, hasilnya bisa membuat frustrasi: file gagal dimuat atau kualitasnya menurun. Format <strong>PNG</strong> adalah standar tak terbantahkan dalam pengeditan profesional: kompresi lossless, saluran alfa penuh, dan jaminan kompatibilitas di seluruh rantai produksi kreatif.',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
type: 'title',
|
|
67
|
-
text: 'WebP untuk Web, PNG untuk Studio',
|
|
68
|
-
level: 3,
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
type: 'paragraph',
|
|
72
|
-
html: 'WebP adalah format produksi web: algoritme kompresinya dioptimalkan untuk mengurangi berat transfer, bukan untuk menjaga kesetiaan maksimum melalui alur kerja pengeditan iteratif. Setiap kali Anda menyimpan WebP yang telah diedit, codec akan menerapkan kompresi lagi. Untuk proyek di mana sebuah file akan dimodifikasi berkali-kali, ini berarti penurunan kualitas secara kumulatif.',
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
type: 'paragraph',
|
|
76
|
-
html: 'PNG menggunakan <strong>kompresi lossless</strong>: data setiap piksel dipertahankan sepenuhnya tidak peduli berapa kali Anda menyimpan file tersebut. Ini adalah format yang dipilih oleh desainer UI/UX, ilustrator digital, dan tim branding yang perlu menjaga integritas visual melalui puluhan revisi. Alat seperti Photoshop, Figma, Sketch, dan Illustrator memperlakukan PNG sebagai format ekspor utama mereka.',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
type: 'title',
|
|
80
|
-
text: 'Perbandingan: Konversi Lokal vs Cloud',
|
|
81
|
-
level: 3,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'comparative',
|
|
85
|
-
items: [
|
|
86
|
-
{
|
|
87
|
-
title: 'Konverter Cloud',
|
|
88
|
-
description: 'Alat yang mengunggah file Anda ke server jarak jauh.',
|
|
89
|
-
icon: 'mdi:cloud-upload',
|
|
90
|
-
pointIcon: 'mdi:close-circle-outline',
|
|
91
|
-
points: [
|
|
92
|
-
'Aset desain Anda disimpan di server pihak ketiga',
|
|
93
|
-
'Pemrosesan jarak jauh yang lambat untuk file besar',
|
|
94
|
-
'Risiko kebocoran untuk proyek klien yang bersifat rahasia',
|
|
95
|
-
'Konversi batch terbatas atau berbayar',
|
|
96
|
-
],
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
title: 'Arsitektur Lokal Kami',
|
|
100
|
-
description: 'Pemrosesan langsung pada perangkat keras Anda menggunakan teknologi Vanilla JS.',
|
|
101
|
-
icon: 'mdi:laptop-mac',
|
|
102
|
-
highlight: true,
|
|
103
|
-
points: [
|
|
104
|
-
'Desain Anda tidak pernah meninggalkan mesin Anda',
|
|
105
|
-
'Konversi batch puluhan file secara instan',
|
|
106
|
-
'Pelestarian penuh saluran alfa dan gamut warna',
|
|
107
|
-
'Privasi absolut untuk proyek klien',
|
|
108
|
-
],
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
type: 'title',
|
|
114
|
-
text: 'Cara Kerjanya Secara Teknis',
|
|
115
|
-
level: 3,
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
type: 'paragraph',
|
|
119
|
-
html: 'Browser modern dapat mendekode WebP secara native. Alat kami memanfaatkan kemampuan ini untuk memuat file ke dalam elemen JavaScript <strong>Image</strong>, lalu menggambarnya ke kanvas HTML5 dengan dimensi yang sama dengan aslinya. Berbeda dengan konversi ke JPG, tidak diperlukan pengisian latar belakang di sini: kanvas mempertahankan saluran alfa penuh.',
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
type: 'paragraph',
|
|
123
|
-
html: 'Ekspor akhir menggunakan metode <code>toDataURL(\'image/png\')</code>, yang menghasilkan PNG lossless yang sesuai dengan aslinya. Hasilnya adalah file yang siap diimpor langsung ke perangkat lunak desain profesional apa pun tanpa langkah perantara, degradasi warna, atau hilangnya transparansi.',
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'tip',
|
|
127
|
-
title: 'Tip untuk editor',
|
|
128
|
-
html: 'Gunakan PNG saat Anda perlu terus mengedit gambar. Kompresi lossless menjamin tidak ada penurunan kualitas akibat penyimpanan berulang kali - sangat penting saat bekerja dengan lapisan, masker, atau penyesuaian warna di Photoshop atau Figma.',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
type: 'title',
|
|
132
|
-
text: 'Kasus Penggunaan dan Kompatibilitas',
|
|
133
|
-
level: 3,
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
type: 'list',
|
|
137
|
-
icon: 'mdi:check-circle',
|
|
138
|
-
items: [
|
|
139
|
-
'Mengimpor aset WebP ke Photoshop, Figma, Sketch, atau Illustrator.',
|
|
140
|
-
'Menjaga transparansi pada logo dan ikon untuk digunakan pada berbagai latar belakang.',
|
|
141
|
-
'Membuat salinan master grafik untuk proyek jangka panjang.',
|
|
142
|
-
'Mengekspor aset untuk aplikasi seluler yang memerlukan PNG dengan saluran alfa.',
|
|
143
|
-
'Menggunakan gambar dalam desain mockup dan presentasi dengan latar belakang variabel.',
|
|
144
|
-
],
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
type: 'title',
|
|
148
|
-
text: 'Kesimpulan',
|
|
149
|
-
level: 3,
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
type: 'paragraph',
|
|
153
|
-
html: 'Jika WebP adalah format server web, maka PNG adalah format studio desain. Alat ini mengonversi aset WebP Anda menjadi PNG siap produksi, dengan transparansi yang utuh dan kualitas maksimal - semuanya di browser Anda dan tanpa file Anda pernah meninggalkan mesin Anda.',
|
|
154
|
-
},
|
|
155
|
-
];
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
export const content: WebpAPngLocaleContent = {
|
|
159
|
-
slug,
|
|
160
|
-
title,
|
|
161
|
-
description,
|
|
162
|
-
ui,
|
|
163
|
-
seo,
|
|
164
|
-
faq,
|
|
165
|
-
bibliography,
|
|
166
|
-
howTo,
|
|
167
|
-
schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
|
|
168
|
-
};
|
|
18
|
+
bibliographyTitle: 'Referensi Bibliografi',
|
|
19
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const faq: WebpAPngLocaleContent['faq'] = [
|
|
23
|
+
{
|
|
24
|
+
question: 'Mengapa saya perlu mengonversi file WebP saya ke PNG?',
|
|
25
|
+
answer:
|
|
26
|
+
'Meskipun lebih ringan, file WebP dapat menyebabkan ketidakcocokan dalam program pengeditan seperti Photoshop versi lama. PNG memastikan kompatibilitas universal 100%.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: 'Apakah transparansi hilang saat mengonversi dari WebP ke PNG?',
|
|
30
|
+
answer:
|
|
31
|
+
'Sama sekali tidak. Berbeda dengan konversi ke JPG, PNG mendukung saluran alfa. Alat kami akan menjaga area transparan apa pun dari file asli.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: 'Dapatkah saya mengunggah file perusahaan yang bersifat rahasia?',
|
|
35
|
+
answer:
|
|
36
|
+
'Anda bisa dan harus melakukannya. Karena semuanya berjalan secara lokal melalui JavaScript, gambar perusahaan Anda tidak akan pernah meninggalkan komputer Anda atau disimpan di server eksternal.',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
const howTo: WebpAPngLocaleContent['howTo'] = [
|
|
41
|
+
{
|
|
42
|
+
name: 'Tarik file WebP Anda',
|
|
43
|
+
text: 'Pindahkan dan letakkan file WebP Anda ke panel utama atau pilih gambar secara tradisional.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Konversi Fidelity Tinggi',
|
|
47
|
+
text: 'Browser Anda akan menggambar ulang gambar piksel demi piksel dan menghasilkan salinan persis dalam format PNG, dengan mempertahankan gamut warna asli.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Unduhan Individu atau Massal',
|
|
51
|
+
text: 'Simpan setiap file secara terpisah atau, jika Anda memproses dalam jumlah banyak, klik tombol ZIP untuk mengunduh semuanya secara bersamaan.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const seo: WebpAPngLocaleContent['seo'] = [
|
|
56
|
+
{
|
|
57
|
+
type: 'title',
|
|
58
|
+
text: 'Konverter WebP ke PNG: Pilihan Profesional untuk Pengeditan dan Desain',
|
|
59
|
+
level: 2,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'paragraph',
|
|
63
|
+
html: 'Ketika seorang desainer mengunduh aset grafis dalam format <strong>WebP</strong> dan mencoba membukanya di Photoshop, Figma, atau Illustrator, hasilnya bisa membuat frustrasi: file gagal dimuat atau kualitasnya menurun. Format <strong>PNG</strong> adalah standar tak terbantahkan dalam pengeditan profesional: kompresi lossless, saluran alfa penuh, dan jaminan kompatibilitas di seluruh rantai produksi kreatif.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
type: 'title',
|
|
67
|
+
text: 'WebP untuk Web, PNG untuk Studio',
|
|
68
|
+
level: 3,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html: 'WebP adalah format produksi web: algoritme kompresinya dioptimalkan untuk mengurangi berat transfer, bukan untuk menjaga kesetiaan maksimum melalui alur kerja pengeditan iteratif. Setiap kali Anda menyimpan WebP yang telah diedit, codec akan menerapkan kompresi lagi. Untuk proyek di mana sebuah file akan dimodifikasi berkali-kali, ini berarti penurunan kualitas secara kumulatif.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html: 'PNG menggunakan <strong>kompresi lossless</strong>: data setiap piksel dipertahankan sepenuhnya tidak peduli berapa kali Anda menyimpan file tersebut. Ini adalah format yang dipilih oleh desainer UI/UX, ilustrator digital, dan tim branding yang perlu menjaga integritas visual melalui puluhan revisi. Alat seperti Photoshop, Figma, Sketch, dan Illustrator memperlakukan PNG sebagai format ekspor utama mereka.',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'title',
|
|
80
|
+
text: 'Perbandingan: Konversi Lokal vs Cloud',
|
|
81
|
+
level: 3,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'comparative',
|
|
85
|
+
items: [
|
|
86
|
+
{
|
|
87
|
+
title: 'Konverter Cloud',
|
|
88
|
+
description: 'Alat yang mengunggah file Anda ke server jarak jauh.',
|
|
89
|
+
icon: 'mdi:cloud-upload',
|
|
90
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
91
|
+
points: [
|
|
92
|
+
'Aset desain Anda disimpan di server pihak ketiga',
|
|
93
|
+
'Pemrosesan jarak jauh yang lambat untuk file besar',
|
|
94
|
+
'Risiko kebocoran untuk proyek klien yang bersifat rahasia',
|
|
95
|
+
'Konversi batch terbatas atau berbayar',
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
title: 'Arsitektur Lokal Kami',
|
|
100
|
+
description: 'Pemrosesan langsung pada perangkat keras Anda menggunakan teknologi Vanilla JS.',
|
|
101
|
+
icon: 'mdi:laptop-mac',
|
|
102
|
+
highlight: true,
|
|
103
|
+
points: [
|
|
104
|
+
'Desain Anda tidak pernah meninggalkan mesin Anda',
|
|
105
|
+
'Konversi batch puluhan file secara instan',
|
|
106
|
+
'Pelestarian penuh saluran alfa dan gamut warna',
|
|
107
|
+
'Privasi absolut untuk proyek klien',
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'title',
|
|
114
|
+
text: 'Cara Kerjanya Secara Teknis',
|
|
115
|
+
level: 3,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: 'Browser modern dapat mendekode WebP secara native. Alat kami memanfaatkan kemampuan ini untuk memuat file ke dalam elemen JavaScript <strong>Image</strong>, lalu menggambarnya ke kanvas HTML5 dengan dimensi yang sama dengan aslinya. Berbeda dengan konversi ke JPG, tidak diperlukan pengisian latar belakang di sini: kanvas mempertahankan saluran alfa penuh.',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'paragraph',
|
|
123
|
+
html: 'Ekspor akhir menggunakan metode <code>toDataURL(\'image/png\')</code>, yang menghasilkan PNG lossless yang sesuai dengan aslinya. Hasilnya adalah file yang siap diimpor langsung ke perangkat lunak desain profesional apa pun tanpa langkah perantara, degradasi warna, atau hilangnya transparansi.',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'tip',
|
|
127
|
+
title: 'Tip untuk editor',
|
|
128
|
+
html: 'Gunakan PNG saat Anda perlu terus mengedit gambar. Kompresi lossless menjamin tidak ada penurunan kualitas akibat penyimpanan berulang kali - sangat penting saat bekerja dengan lapisan, masker, atau penyesuaian warna di Photoshop atau Figma.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Kasus Penggunaan dan Kompatibilitas',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
icon: 'mdi:check-circle',
|
|
138
|
+
items: [
|
|
139
|
+
'Mengimpor aset WebP ke Photoshop, Figma, Sketch, atau Illustrator.',
|
|
140
|
+
'Menjaga transparansi pada logo dan ikon untuk digunakan pada berbagai latar belakang.',
|
|
141
|
+
'Membuat salinan master grafik untuk proyek jangka panjang.',
|
|
142
|
+
'Mengekspor aset untuk aplikasi seluler yang memerlukan PNG dengan saluran alfa.',
|
|
143
|
+
'Menggunakan gambar dalam desain mockup dan presentasi dengan latar belakang variabel.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Kesimpulan',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: 'Jika WebP adalah format server web, maka PNG adalah format studio desain. Alat ini mengonversi aset WebP Anda menjadi PNG siap produksi, dengan transparansi yang utuh dan kualitas maksimal - semuanya di browser Anda dan tanpa file Anda pernah meninggalkan mesin Anda.',
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
export const content: WebpAPngLocaleContent = {
|
|
159
|
+
slug,
|
|
160
|
+
title,
|
|
161
|
+
description,
|
|
162
|
+
ui,
|
|
163
|
+
seo,
|
|
164
|
+
faq,
|
|
165
|
+
bibliography,
|
|
166
|
+
howTo,
|
|
167
|
+
schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
|
|
168
|
+
};
|