@jjlmoya/utils-converters 1.7.0 → 1.9.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 +60 -59
- package/src/shared/logic/schemas.ts +57 -0
- package/src/tests/faq_count.test.ts +13 -4
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/avifAJpg/i18n/de.ts +178 -0
- package/src/tool/avifAJpg/i18n/en.ts +2 -12
- package/src/tool/avifAJpg/i18n/es.ts +2 -12
- package/src/tool/avifAJpg/i18n/fr.ts +2 -12
- package/src/tool/avifAJpg/i18n/id.ts +178 -0
- package/src/tool/avifAJpg/i18n/it.ts +178 -0
- package/src/tool/avifAJpg/i18n/ja.ts +178 -0
- package/src/tool/avifAJpg/i18n/ko.ts +178 -0
- package/src/tool/avifAJpg/i18n/nl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pt.ts +178 -0
- package/src/tool/avifAJpg/i18n/ru.ts +178 -0
- package/src/tool/avifAJpg/i18n/sv.ts +178 -0
- package/src/tool/avifAJpg/i18n/tr.ts +178 -0
- package/src/tool/avifAJpg/i18n/zh.ts +178 -0
- package/src/tool/avifAJpg/index.ts +13 -1
- package/src/tool/avifAPng/i18n/de.ts +178 -0
- package/src/tool/avifAPng/i18n/en.ts +2 -12
- package/src/tool/avifAPng/i18n/es.ts +2 -12
- package/src/tool/avifAPng/i18n/fr.ts +2 -12
- package/src/tool/avifAPng/i18n/id.ts +178 -0
- package/src/tool/avifAPng/i18n/it.ts +178 -0
- package/src/tool/avifAPng/i18n/ja.ts +178 -0
- package/src/tool/avifAPng/i18n/ko.ts +178 -0
- package/src/tool/avifAPng/i18n/nl.ts +178 -0
- package/src/tool/avifAPng/i18n/pl.ts +178 -0
- package/src/tool/avifAPng/i18n/pt.ts +178 -0
- package/src/tool/avifAPng/i18n/ru.ts +178 -0
- package/src/tool/avifAPng/i18n/sv.ts +178 -0
- package/src/tool/avifAPng/i18n/tr.ts +178 -0
- package/src/tool/avifAPng/i18n/zh.ts +178 -0
- package/src/tool/avifAPng/index.ts +13 -1
- package/src/tool/avifAWebp/i18n/de.ts +178 -0
- package/src/tool/avifAWebp/i18n/en.ts +2 -12
- package/src/tool/avifAWebp/i18n/es.ts +2 -12
- package/src/tool/avifAWebp/i18n/fr.ts +2 -12
- package/src/tool/avifAWebp/i18n/id.ts +178 -0
- package/src/tool/avifAWebp/i18n/it.ts +178 -0
- package/src/tool/avifAWebp/i18n/ja.ts +178 -0
- package/src/tool/avifAWebp/i18n/ko.ts +178 -0
- package/src/tool/avifAWebp/i18n/nl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pt.ts +178 -0
- package/src/tool/avifAWebp/i18n/ru.ts +178 -0
- package/src/tool/avifAWebp/i18n/sv.ts +178 -0
- package/src/tool/avifAWebp/i18n/tr.ts +178 -0
- package/src/tool/avifAWebp/i18n/zh.ts +178 -0
- package/src/tool/avifAWebp/index.ts +13 -1
- package/src/tool/bmpAJpg/i18n/de.ts +178 -0
- package/src/tool/bmpAJpg/i18n/en.ts +2 -12
- package/src/tool/bmpAJpg/i18n/es.ts +2 -12
- package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
- package/src/tool/bmpAJpg/i18n/id.ts +178 -0
- package/src/tool/bmpAJpg/i18n/it.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
- package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
- package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
- package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
- package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
- package/src/tool/bmpAJpg/index.ts +13 -1
- package/src/tool/bmpAPng/i18n/de.ts +177 -0
- package/src/tool/bmpAPng/i18n/en.ts +2 -12
- package/src/tool/bmpAPng/i18n/es.ts +2 -12
- package/src/tool/bmpAPng/i18n/fr.ts +2 -12
- package/src/tool/bmpAPng/i18n/id.ts +177 -0
- package/src/tool/bmpAPng/i18n/it.ts +177 -0
- package/src/tool/bmpAPng/i18n/ja.ts +177 -0
- package/src/tool/bmpAPng/i18n/ko.ts +177 -0
- package/src/tool/bmpAPng/i18n/nl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pt.ts +177 -0
- package/src/tool/bmpAPng/i18n/ru.ts +177 -0
- package/src/tool/bmpAPng/i18n/sv.ts +177 -0
- package/src/tool/bmpAPng/i18n/tr.ts +177 -0
- package/src/tool/bmpAPng/i18n/zh.ts +177 -0
- package/src/tool/bmpAPng/index.ts +13 -1
- package/src/tool/bmpAWebp/i18n/de.ts +178 -0
- package/src/tool/bmpAWebp/i18n/en.ts +2 -12
- package/src/tool/bmpAWebp/i18n/es.ts +2 -12
- package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
- package/src/tool/bmpAWebp/i18n/id.ts +178 -0
- package/src/tool/bmpAWebp/i18n/it.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
- package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
- package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
- package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
- package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
- package/src/tool/bmpAWebp/index.ts +13 -1
- package/src/tool/gifAJpg/i18n/de.ts +178 -0
- package/src/tool/gifAJpg/i18n/en.ts +2 -12
- package/src/tool/gifAJpg/i18n/es.ts +2 -12
- package/src/tool/gifAJpg/i18n/fr.ts +2 -12
- package/src/tool/gifAJpg/i18n/id.ts +178 -0
- package/src/tool/gifAJpg/i18n/it.ts +178 -0
- package/src/tool/gifAJpg/i18n/ja.ts +178 -0
- package/src/tool/gifAJpg/i18n/ko.ts +178 -0
- package/src/tool/gifAJpg/i18n/nl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pt.ts +178 -0
- package/src/tool/gifAJpg/i18n/ru.ts +178 -0
- package/src/tool/gifAJpg/i18n/sv.ts +178 -0
- package/src/tool/gifAJpg/i18n/tr.ts +178 -0
- package/src/tool/gifAJpg/i18n/zh.ts +178 -0
- package/src/tool/gifAJpg/index.ts +13 -1
- package/src/tool/gifAPng/i18n/de.ts +178 -0
- package/src/tool/gifAPng/i18n/en.ts +2 -12
- package/src/tool/gifAPng/i18n/es.ts +2 -12
- package/src/tool/gifAPng/i18n/fr.ts +2 -12
- package/src/tool/gifAPng/i18n/id.ts +178 -0
- package/src/tool/gifAPng/i18n/it.ts +178 -0
- package/src/tool/gifAPng/i18n/ja.ts +178 -0
- package/src/tool/gifAPng/i18n/ko.ts +178 -0
- package/src/tool/gifAPng/i18n/nl.ts +178 -0
- package/src/tool/gifAPng/i18n/pl.ts +178 -0
- package/src/tool/gifAPng/i18n/pt.ts +178 -0
- package/src/tool/gifAPng/i18n/ru.ts +178 -0
- package/src/tool/gifAPng/i18n/sv.ts +178 -0
- package/src/tool/gifAPng/i18n/tr.ts +178 -0
- package/src/tool/gifAPng/i18n/zh.ts +178 -0
- package/src/tool/gifAPng/index.ts +12 -0
- package/src/tool/gifAWebp/i18n/de.ts +178 -0
- package/src/tool/gifAWebp/i18n/en.ts +2 -12
- package/src/tool/gifAWebp/i18n/es.ts +2 -12
- package/src/tool/gifAWebp/i18n/fr.ts +2 -12
- package/src/tool/gifAWebp/i18n/id.ts +178 -0
- package/src/tool/gifAWebp/i18n/it.ts +178 -0
- package/src/tool/gifAWebp/i18n/ja.ts +178 -0
- package/src/tool/gifAWebp/i18n/ko.ts +178 -0
- package/src/tool/gifAWebp/i18n/nl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pt.ts +178 -0
- package/src/tool/gifAWebp/i18n/ru.ts +178 -0
- package/src/tool/gifAWebp/i18n/sv.ts +178 -0
- package/src/tool/gifAWebp/i18n/tr.ts +178 -0
- package/src/tool/gifAWebp/i18n/zh.ts +178 -0
- package/src/tool/gifAWebp/index.ts +12 -0
- package/src/tool/imagenBase64/i18n/de.ts +168 -0
- package/src/tool/imagenBase64/i18n/en.ts +2 -12
- package/src/tool/imagenBase64/i18n/es.ts +2 -12
- package/src/tool/imagenBase64/i18n/fr.ts +2 -12
- package/src/tool/imagenBase64/i18n/id.ts +168 -0
- package/src/tool/imagenBase64/i18n/it.ts +168 -0
- package/src/tool/imagenBase64/i18n/ja.ts +168 -0
- package/src/tool/imagenBase64/i18n/ko.ts +168 -0
- package/src/tool/imagenBase64/i18n/nl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pt.ts +173 -0
- package/src/tool/imagenBase64/i18n/ru.ts +168 -0
- package/src/tool/imagenBase64/i18n/sv.ts +168 -0
- package/src/tool/imagenBase64/i18n/tr.ts +168 -0
- package/src/tool/imagenBase64/i18n/zh.ts +168 -0
- package/src/tool/imagenBase64/index.ts +12 -0
- package/src/tool/jpgAIco/i18n/de.ts +183 -0
- package/src/tool/jpgAIco/i18n/en.ts +8 -13
- package/src/tool/jpgAIco/i18n/es.ts +13 -18
- package/src/tool/jpgAIco/i18n/fr.ts +9 -14
- package/src/tool/jpgAIco/i18n/id.ts +183 -0
- package/src/tool/jpgAIco/i18n/it.ts +183 -0
- package/src/tool/jpgAIco/i18n/ja.ts +183 -0
- package/src/tool/jpgAIco/i18n/ko.ts +183 -0
- package/src/tool/jpgAIco/i18n/nl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pt.ts +183 -0
- package/src/tool/jpgAIco/i18n/ru.ts +183 -0
- package/src/tool/jpgAIco/i18n/sv.ts +183 -0
- package/src/tool/jpgAIco/i18n/tr.ts +183 -0
- package/src/tool/jpgAIco/i18n/zh.ts +183 -0
- package/src/tool/jpgAIco/index.ts +12 -0
- package/src/tool/jpgAPng/i18n/de.ts +178 -0
- package/src/tool/jpgAPng/i18n/en.ts +2 -12
- package/src/tool/jpgAPng/i18n/es.ts +2 -12
- package/src/tool/jpgAPng/i18n/fr.ts +2 -12
- package/src/tool/jpgAPng/i18n/id.ts +178 -0
- package/src/tool/jpgAPng/i18n/it.ts +178 -0
- package/src/tool/jpgAPng/i18n/ja.ts +178 -0
- package/src/tool/jpgAPng/i18n/ko.ts +178 -0
- package/src/tool/jpgAPng/i18n/nl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pt.ts +178 -0
- package/src/tool/jpgAPng/i18n/ru.ts +178 -0
- package/src/tool/jpgAPng/i18n/sv.ts +178 -0
- package/src/tool/jpgAPng/i18n/tr.ts +178 -0
- package/src/tool/jpgAPng/i18n/zh.ts +178 -0
- package/src/tool/jpgAPng/index.ts +13 -1
- package/src/tool/jpgAWebp/i18n/de.ts +178 -0
- package/src/tool/jpgAWebp/i18n/en.ts +2 -12
- package/src/tool/jpgAWebp/i18n/es.ts +2 -12
- package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
- package/src/tool/jpgAWebp/i18n/id.ts +178 -0
- package/src/tool/jpgAWebp/i18n/it.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
- package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
- package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
- package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
- package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
- package/src/tool/jpgAWebp/index.ts +12 -0
- package/src/tool/pngAIco/i18n/de.ts +183 -0
- package/src/tool/pngAIco/i18n/en.ts +8 -13
- package/src/tool/pngAIco/i18n/es.ts +19 -24
- package/src/tool/pngAIco/i18n/fr.ts +20 -25
- package/src/tool/pngAIco/i18n/id.ts +183 -0
- package/src/tool/pngAIco/i18n/it.ts +183 -0
- package/src/tool/pngAIco/i18n/ja.ts +183 -0
- package/src/tool/pngAIco/i18n/ko.ts +183 -0
- package/src/tool/pngAIco/i18n/nl.ts +183 -0
- package/src/tool/pngAIco/i18n/pl.ts +183 -0
- package/src/tool/pngAIco/i18n/pt.ts +183 -0
- package/src/tool/pngAIco/i18n/ru.ts +183 -0
- package/src/tool/pngAIco/i18n/sv.ts +183 -0
- package/src/tool/pngAIco/i18n/tr.ts +183 -0
- package/src/tool/pngAIco/i18n/zh.ts +183 -0
- package/src/tool/pngAIco/index.ts +12 -0
- package/src/tool/pngAJpg/i18n/de.ts +191 -0
- package/src/tool/pngAJpg/i18n/en.ts +2 -12
- package/src/tool/pngAJpg/i18n/es.ts +2 -12
- package/src/tool/pngAJpg/i18n/fr.ts +2 -12
- package/src/tool/pngAJpg/i18n/id.ts +191 -0
- package/src/tool/pngAJpg/i18n/it.ts +191 -0
- package/src/tool/pngAJpg/i18n/ja.ts +191 -0
- package/src/tool/pngAJpg/i18n/ko.ts +191 -0
- package/src/tool/pngAJpg/i18n/nl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pt.ts +191 -0
- package/src/tool/pngAJpg/i18n/ru.ts +191 -0
- package/src/tool/pngAJpg/i18n/sv.ts +191 -0
- package/src/tool/pngAJpg/i18n/tr.ts +191 -0
- package/src/tool/pngAJpg/i18n/zh.ts +191 -0
- package/src/tool/pngAJpg/index.ts +13 -1
- package/src/tool/pngAWebp/i18n/de.ts +182 -0
- package/src/tool/pngAWebp/i18n/en.ts +2 -12
- package/src/tool/pngAWebp/i18n/es.ts +2 -12
- package/src/tool/pngAWebp/i18n/fr.ts +2 -12
- package/src/tool/pngAWebp/i18n/id.ts +182 -0
- package/src/tool/pngAWebp/i18n/it.ts +182 -0
- package/src/tool/pngAWebp/i18n/ja.ts +182 -0
- package/src/tool/pngAWebp/i18n/ko.ts +182 -0
- package/src/tool/pngAWebp/i18n/nl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pt.ts +182 -0
- package/src/tool/pngAWebp/i18n/ru.ts +182 -0
- package/src/tool/pngAWebp/i18n/sv.ts +182 -0
- package/src/tool/pngAWebp/i18n/tr.ts +182 -0
- package/src/tool/pngAWebp/i18n/zh.ts +182 -0
- package/src/tool/pngAWebp/index.ts +12 -0
- package/src/tool/svgAJpg/i18n/de.ts +178 -0
- package/src/tool/svgAJpg/i18n/en.ts +8 -13
- package/src/tool/svgAJpg/i18n/es.ts +8 -13
- package/src/tool/svgAJpg/i18n/fr.ts +2 -12
- package/src/tool/svgAJpg/i18n/id.ts +178 -0
- package/src/tool/svgAJpg/i18n/it.ts +178 -0
- package/src/tool/svgAJpg/i18n/ja.ts +178 -0
- package/src/tool/svgAJpg/i18n/ko.ts +178 -0
- package/src/tool/svgAJpg/i18n/nl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pt.ts +178 -0
- package/src/tool/svgAJpg/i18n/ru.ts +178 -0
- package/src/tool/svgAJpg/i18n/sv.ts +178 -0
- package/src/tool/svgAJpg/i18n/tr.ts +178 -0
- package/src/tool/svgAJpg/i18n/zh.ts +178 -0
- package/src/tool/svgAJpg/index.ts +12 -0
- package/src/tool/svgAPng/i18n/de.ts +178 -0
- package/src/tool/svgAPng/i18n/en.ts +8 -13
- package/src/tool/svgAPng/i18n/es.ts +31 -36
- package/src/tool/svgAPng/i18n/fr.ts +2 -12
- package/src/tool/svgAPng/i18n/id.ts +178 -0
- package/src/tool/svgAPng/i18n/it.ts +178 -0
- package/src/tool/svgAPng/i18n/ja.ts +178 -0
- package/src/tool/svgAPng/i18n/ko.ts +178 -0
- package/src/tool/svgAPng/i18n/nl.ts +178 -0
- package/src/tool/svgAPng/i18n/pl.ts +178 -0
- package/src/tool/svgAPng/i18n/pt.ts +178 -0
- package/src/tool/svgAPng/i18n/ru.ts +178 -0
- package/src/tool/svgAPng/i18n/sv.ts +178 -0
- package/src/tool/svgAPng/i18n/tr.ts +178 -0
- package/src/tool/svgAPng/i18n/zh.ts +178 -0
- package/src/tool/svgAPng/index.ts +12 -0
- package/src/tool/webpAIco/i18n/de.ts +183 -0
- package/src/tool/webpAIco/i18n/en.ts +8 -13
- package/src/tool/webpAIco/i18n/es.ts +9 -14
- package/src/tool/webpAIco/i18n/fr.ts +11 -16
- package/src/tool/webpAIco/i18n/id.ts +183 -0
- package/src/tool/webpAIco/i18n/it.ts +183 -0
- package/src/tool/webpAIco/i18n/ja.ts +183 -0
- package/src/tool/webpAIco/i18n/ko.ts +183 -0
- package/src/tool/webpAIco/i18n/nl.ts +183 -0
- package/src/tool/webpAIco/i18n/pl.ts +183 -0
- package/src/tool/webpAIco/i18n/pt.ts +183 -0
- package/src/tool/webpAIco/i18n/ru.ts +183 -0
- package/src/tool/webpAIco/i18n/sv.ts +183 -0
- package/src/tool/webpAIco/i18n/tr.ts +183 -0
- package/src/tool/webpAIco/i18n/zh.ts +183 -0
- package/src/tool/webpAIco/index.ts +12 -0
- package/src/tool/webpAJpg/i18n/de.ts +187 -0
- package/src/tool/webpAJpg/i18n/en.ts +9 -13
- package/src/tool/webpAJpg/i18n/es.ts +37 -42
- package/src/tool/webpAJpg/i18n/fr.ts +35 -40
- package/src/tool/webpAJpg/i18n/id.ts +182 -0
- package/src/tool/webpAJpg/i18n/it.ts +182 -0
- package/src/tool/webpAJpg/i18n/ja.ts +182 -0
- package/src/tool/webpAJpg/i18n/ko.ts +182 -0
- package/src/tool/webpAJpg/i18n/nl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pt.ts +182 -0
- package/src/tool/webpAJpg/i18n/ru.ts +182 -0
- package/src/tool/webpAJpg/i18n/sv.ts +182 -0
- package/src/tool/webpAJpg/i18n/tr.ts +182 -0
- package/src/tool/webpAJpg/i18n/zh.ts +182 -0
- package/src/tool/webpAJpg/index.ts +12 -0
- package/src/tool/webpAPng/i18n/de.ts +182 -0
- package/src/tool/webpAPng/i18n/en.ts +8 -13
- package/src/tool/webpAPng/i18n/es.ts +35 -40
- package/src/tool/webpAPng/i18n/fr.ts +2 -12
- package/src/tool/webpAPng/i18n/id.ts +182 -0
- package/src/tool/webpAPng/i18n/it.ts +182 -0
- package/src/tool/webpAPng/i18n/ja.ts +182 -0
- package/src/tool/webpAPng/i18n/ko.ts +182 -0
- package/src/tool/webpAPng/i18n/nl.ts +182 -0
- package/src/tool/webpAPng/i18n/pl.ts +182 -0
- package/src/tool/webpAPng/i18n/pt.ts +182 -0
- package/src/tool/webpAPng/i18n/ru.ts +182 -0
- package/src/tool/webpAPng/i18n/sv.ts +182 -0
- package/src/tool/webpAPng/i18n/tr.ts +182 -0
- package/src/tool/webpAPng/i18n/zh.ts +182 -0
- package/src/tool/webpAPng/index.ts +12 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { PngAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konverter-png-ke-webp';
|
|
6
|
+
const title = 'Konversi PNG ke WebP Online dan Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Konversi gambar PNG ke WebP di browser Anda. Ukuran file hingga 40% lebih kecil. Mempertahankan transparansi. Tanpa pengunggahan file. Gratis dan privat.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Tarik file PNG...',
|
|
12
|
+
convertText: 'Untuk mengkonversinya ke WebP secara instan',
|
|
13
|
+
selectFiles: 'Pilih file',
|
|
14
|
+
processedFiles: 'File yang diproses',
|
|
15
|
+
downloadAll: 'Unduh Semua (.zip)',
|
|
16
|
+
pending: 'Menunggu',
|
|
17
|
+
bibliographyTitle: 'Referensi Bibliografi',
|
|
18
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Mengapa mengonversi PNG ke WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'WebP menawarkan kompresi hingga 40% lebih baik daripada PNG pada kualitas yang sama, sementara juga mendukung transparansi Alpha. Ini adalah format yang direkomendasikan oleh Google PageSpeed Insights.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Apakah transparansi hilang dalam prosesnya?',
|
|
29
|
+
answer:
|
|
30
|
+
'Tidak. Implementasi teknis WebP mendukung saluran alfa. Transparansi dari PNG asli akan dipertahankan dalam file WebP yang baru.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Apakah gambar saya dikirim ke server?',
|
|
34
|
+
answer:
|
|
35
|
+
'Tidak. Kode berjalan secara eksklusif di browser Anda (Client-Side). Kami tidak pernah melihat, merekam, atau menyimpan gambar yang Anda konversi.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: PngAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Masukkan PNG Anda',
|
|
42
|
+
text: 'Letakkan file PNG besar Anda ke area unggah atau gunakan pemilih interaktif tradisional.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Deteksi saluran',
|
|
46
|
+
text: 'Mesin rendering lokal akan mendeteksi dan mengekspor komposisi piksel ke format WebP yang dioptimalkan.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Unduh Langsung',
|
|
50
|
+
text: 'Unduh file WebP Anda yang sangat terkompresi satu per satu atau gabungkan bersama-sama menggunakan konverter paket ZIP.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: PngAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Google: Detail Implementasi WebP',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'W3C: Panduan Core Web Vitals',
|
|
61
|
+
url: 'https://web.dev/vitals/',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Mozilla Docs: Format Gambar',
|
|
65
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: PngAWebpLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'Konverter PNG ke WebP: Transparansi dan Kompresi Modern untuk Web',
|
|
73
|
+
level: 2,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html: '<strong>PNG</strong> telah menjadi format referensi untuk gambar web dengan transparansi selama beberapa dekade — logo, ikon, elemen UI, gambar produk dengan latar belakang transparan. Masalahnya adalah ukuran file: kompresi lossless yang menjamin kualitas juga menghasilkan file yang sangat besar. <strong>WebP</strong> Google memecahkan kontradiksi ini: ia mendukung saluran alfa (transparansi) <em>dan</em> mengompresi jauh lebih baik daripada PNG, menjadikan peralihan dari PNG ke WebP di situs web Anda sebagai optimasi sempurna yang tidak mengorbankan apa pun.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'title',
|
|
81
|
+
text: 'PNG atau WebP? Kapan menggunakan masing-masing format',
|
|
82
|
+
level: 3,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>PNG</strong> tetap merupakan format yang tepat ketika kompatibilitas sangat penting: alat desain seperti Photoshop atau Figma, alur kerja cetak, aplikasi desktop lama, atau konteks apa pun di mana dukungan WebP tidak dijamin. Ini juga merupakan format ideal untuk menyimpan lapisan kerja dalam alur pengeditan, karena kompresi lossless-nya mempertahankan setiap piksel. Biayanya: file yang bisa berbobot 3–8 kali lebih berat daripada ekuivalen WebP-nya.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'paragraph',
|
|
90
|
+
html: '<strong>WebP</strong> adalah pengganti alami untuk PNG untuk semua konten web modern. Chrome, Firefox, Safari, dan Edge semuanya mendukungnya secara native. Gambar WebP lossless 26% lebih kecil daripada PNG yang setara; dalam mode lossy, ukurannya bisa hingga 40% lebih kecil dengan kualitas visual yang hampir tidak dapat dibedakan. Dan yang krusial untuk desain web: <strong>WebP mempertahankan transparansi alfa</strong> persis seperti PNG, tanpa kompromi visual.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'title',
|
|
94
|
+
text: 'Perbandingan: Konversi Lokal vs Cloud',
|
|
95
|
+
level: 3,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'comparative',
|
|
99
|
+
items: [
|
|
100
|
+
{
|
|
101
|
+
title: 'Konverter Cloud',
|
|
102
|
+
description: 'Alat yang mengunggah file Anda ke server jarak jauh.',
|
|
103
|
+
icon: 'mdi:cloud-upload',
|
|
104
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
105
|
+
points: [
|
|
106
|
+
'Latensi jaringan saat mengunggah dan mengunduh',
|
|
107
|
+
'Logo dan gambar Anda disimpan di server pihak ketiga',
|
|
108
|
+
'Batas ukuran file dan batasan konversi harian',
|
|
109
|
+
'Iklan yang mengganggu dan pelacak pihak ketiga',
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
title: 'Arsitektur Lokal Kami',
|
|
114
|
+
description: 'Pemrosesan langsung pada perangkat keras Anda menggunakan teknologi Vanilla JS.',
|
|
115
|
+
icon: 'mdi:laptop-mac',
|
|
116
|
+
highlight: true,
|
|
117
|
+
points: [
|
|
118
|
+
'Kecepatan instan — nol latensi jaringan',
|
|
119
|
+
'Privasi lengkap — 0 byte dikirim secara eksternal',
|
|
120
|
+
'Tanpa batas MB atau batasan jumlah file',
|
|
121
|
+
'Antarmuka bersih, tanpa iklan atau pelacakan',
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'title',
|
|
128
|
+
text: 'Cara kerjanya secara teknis',
|
|
129
|
+
level: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'PNG dimuat secara lokal dan didekodekan ke dalam <strong>HTML5 Canvas</strong> dalam memori. API Canvas mempertahankan saluran alfa dari PNG asli — semua piksel transparan dan semi-transparan dipertahankan secara utuh dalam buffer piksel RGBA. Kanvas kemudian diekspor dengan memanggil <code>toDataURL(\'image/webp\')</code>, yang menerapkan codec WebP browser (berdasarkan libwebp Google) untuk menghasilkan file yang lebih ringkas tanpa mengubah data transparansi.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'WebP menggunakan dua mode kompresi: mode lossless untuk gambar di mana setiap piksel harus benar-benar setia pada aslinya, dan mode lossy untuk foto dan elemen di mana perbedaan kecil tidak terlihat. Mode lossless menghasilkan file 26% lebih kecil dari PNG; mode lossy dapat mencapai pengurangan hingga 40% dibandingkan dengan PNG sambil mempertahankan kualitas visual yang sangat baik.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'tip',
|
|
141
|
+
title: 'Tip: WebP mengalahkan PNG dan JPG di web',
|
|
142
|
+
html: 'WebP dalam mode lossless lebih kecil dari PNG. WebP dalam mode lossy lebih kecil dari JPG. Ini menjadikan WebP sebagai <strong>satu-satunya format yang menggantikan keduanya</strong> dalam konteks web. Konversikan PNG transparan Anda ke WebP sebelum mengunggah: Google PageSpeed Insights mendeteksinya dan memberikan skor positif dalam audit "Sajikan gambar dalam format modern".',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'title',
|
|
146
|
+
text: 'Kasus penggunaan dan kompatibilitas',
|
|
147
|
+
level: 3,
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'list',
|
|
151
|
+
icon: 'mdi:check-circle',
|
|
152
|
+
items: [
|
|
153
|
+
'Logo dan ikon dengan latar belakang transparan untuk situs web dan aplikasi.',
|
|
154
|
+
'Gambar produk dengan latar belakang transparan di toko e-commerce.',
|
|
155
|
+
'Sprite CSS dan elemen UI dengan transparansi alfa.',
|
|
156
|
+
'Ilustrasi raster dan grafik vektor untuk landing page.',
|
|
157
|
+
'Thumbnail artikel dengan latar belakang transparan di blog dan portal berita.',
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
text: 'Kesimpulan',
|
|
163
|
+
level: 3,
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'paragraph',
|
|
167
|
+
html: 'Peralihan dari PNG ke WebP adalah optimasi gambar web terlengkap yang tersedia: Anda mendapatkan file yang lebih ringan, mempertahankan transparansi, dan meningkatkan metrik Core Web Vitals tanpa mengubah apa pun pada desain visual Anda. Alat ini melakukannya secara instan, gratis, dan sepenuhnya privat — gambar Anda diproses di browser Anda dan tidak pernah dikirim ke server eksternal mana pun.',
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
export const content: PngAWebpLocaleContent = {
|
|
173
|
+
slug,
|
|
174
|
+
title,
|
|
175
|
+
description,
|
|
176
|
+
ui,
|
|
177
|
+
seo,
|
|
178
|
+
faq,
|
|
179
|
+
bibliography,
|
|
180
|
+
howTo,
|
|
181
|
+
schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
|
|
182
|
+
};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { PngAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertitore-png-in-webp';
|
|
6
|
+
const title = 'Converti PNG in WebP Online e Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Converti immagini PNG in WebP nel tuo browser. Fino al 40% di dimensioni del file in meno. Preserva la trasparenza. Nessun caricamento di file. Gratuito e privato.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Trascina i file PNG...',
|
|
12
|
+
convertText: 'Per convertirli in WebP istantaneamente',
|
|
13
|
+
selectFiles: 'Seleziona file',
|
|
14
|
+
processedFiles: 'File elaborati',
|
|
15
|
+
downloadAll: 'Scarica tutto (.zip)',
|
|
16
|
+
pending: 'In attesa',
|
|
17
|
+
bibliographyTitle: 'Riferimenti Bibliografici',
|
|
18
|
+
faqTitle: 'Domande Frequenti',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Perché convertire PNG in WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'WebP offre una compressione migliore fino al 40% rispetto al PNG a parità di qualità, supportando al contempo la trasparenza Alpha. È il formato consigliato da Google PageSpeed Insights.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'La trasparenza va persa nel processo?',
|
|
29
|
+
answer:
|
|
30
|
+
'No. L\'implementazione tecnica di WebP supporta il canale alfa. Le trasparenze del PNG originale saranno preservate nel nuovo file WebP.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Le mie immagini finiscono su qualche server?',
|
|
34
|
+
answer:
|
|
35
|
+
'No. Il codice viene eseguito esclusivamente nel tuo browser (lato client). Non vediamo, registriamo o salviamo mai le immagini che converti.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: PngAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Inserisci i tuoi PNG',
|
|
42
|
+
text: 'Trascina i tuoi file PNG nell\'area di caricamento o usa il classico selettore interattivo.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Rilevamento del canale',
|
|
46
|
+
text: 'Il motore di rendering locale rileverà ed esporterà la composizione dei pixel nel formato WebP ottimizzato.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Download diretto',
|
|
50
|
+
text: 'Scarica i tuoi file WebP altamente compressi individualmente o raggruppali insieme usando il convertitore ZIP.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: PngAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Google: Dettagli sull\'implementazione di WebP',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'W3C: Guida ai Core Web Vitals',
|
|
61
|
+
url: 'https://web.dev/vitals/',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Mozilla Docs: Formati immagine',
|
|
65
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: PngAWebpLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'Convertitore da PNG a WebP: Trasparenza e compressione moderna per il web',
|
|
73
|
+
level: 2,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html: 'Il <strong>PNG</strong> è stato per decenni il formato di riferimento per le immagini web con trasparenza: loghi, icone, elementi UI, immagini di prodotti su sfondi scontornati. Il suo problema sono le dimensioni del file: la compressione senza perdita che garantisce la qualità genera anche file notevolmente pesanti. Il <strong>WebP</strong> di Google risolve questa contraddizione: supporta il canale alfa (trasparenza) <em>e</em> comprime molto meglio del PNG, rendendo il passaggio da PNG a WebP sul tuo sito un\'ottimizzazione perfetta che non sacrifica nulla.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'title',
|
|
81
|
+
text: 'PNG o WebP? Quando utilizzare ciascun formato',
|
|
82
|
+
level: 3,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Il <strong>PNG</strong> rimane il formato giusto quando la compatibilità è fondamentale: strumenti di progettazione come Photoshop o Figma, flussi di lavoro di stampa, applicazioni desktop legacy o qualsiasi contesto in cui il supporto WebP non è garantito. È anche il formato ideale per salvare i livelli di lavoro nelle pipeline di editing, poiché la sua compressione senza perdita preserva ogni pixel. Il costo: file che possono pesare 3-8 volte più dei loro equivalenti WebP.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'paragraph',
|
|
90
|
+
html: 'Il <strong>WebP</strong> è il sostituto naturale del PNG per tutti i moderni contenuti web. Chrome, Firefox, Safari ed Edge lo supportano tutti nativamente. Un\'immagine WebP senza perdita è più piccola del 26% rispetto al PNG equivalente; in modalità lossy può essere fino al 40% più piccola con una qualità visiva praticamente indistinguibile. E fondamentale per il web design: <strong>WebP preserva la trasparenza alfa</strong> esattamente come il PNG, senza compromessi visivi.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'title',
|
|
94
|
+
text: 'Confronto: Conversione Locale vs Cloud',
|
|
95
|
+
level: 3,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'comparative',
|
|
99
|
+
items: [
|
|
100
|
+
{
|
|
101
|
+
title: 'Convertitori Cloud',
|
|
102
|
+
description: 'Strumenti che caricano i tuoi file su un server remoto.',
|
|
103
|
+
icon: 'mdi:cloud-upload',
|
|
104
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
105
|
+
points: [
|
|
106
|
+
'Latenza di rete durante il caricamento e il download',
|
|
107
|
+
'I tuoi loghi e immagini memorizzati su server di terze parti',
|
|
108
|
+
'Limiti di dimensione dei file e tetti di conversione giornalieri',
|
|
109
|
+
'Annunci intrusivi e tracker di terze parti',
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
title: 'La Nostra Architettura Locale',
|
|
114
|
+
description: 'Elaborazione diretta sul tuo hardware utilizzando la tecnologia Vanilla JS.',
|
|
115
|
+
icon: 'mdi:laptop-mac',
|
|
116
|
+
highlight: true,
|
|
117
|
+
points: [
|
|
118
|
+
'Velocità istantanea — latenza di rete zero',
|
|
119
|
+
'Privacy completa — 0 byte inviati esternamente',
|
|
120
|
+
'Nessun limite di MB o restrizioni sul numero di file',
|
|
121
|
+
'Interfaccia pulita, senza pubblicità o tracciamento',
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'title',
|
|
128
|
+
text: 'Come funziona tecnicamente',
|
|
129
|
+
level: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Il PNG viene caricato localmente e decodificato in un <strong>HTML5 Canvas</strong> in memoria. L\'API Canvas preserva il canale alfa del PNG originale: tutti i pixel trasparenti e semitrasparenti vengono mantenuti intatti nel buffer di pixel RGBA. Il canvas viene quindi esportato chiamando <code>toDataURL(\'image/webp\')</code>, che applica il codec WebP del browser (basato sulla libreria libwebp di Google) per generare un file più compatto senza alterare i dati di trasparenza.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'WebP utilizza due modalità di compressione: modalità senza perdita per immagini in cui ogni pixel deve essere esattamente fedele all\'originale, e modalità con perdita per foto ed elementi in cui piccole differenze sono impercettibili. La modalità senza perdita produce file più piccoli del 26% rispetto al PNG; la modalità con perdita può ottenere riduzioni fino al 40% rispetto al PNG mantenendo un\'eccellente qualità visiva.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'tip',
|
|
141
|
+
title: 'Suggerimento: WebP batte sia PNG che JPG sul web',
|
|
142
|
+
html: 'Il WebP in modalità senza perdita è più piccolo del PNG. Il WebP in modalità con perdita è più piccolo del JPG. Questo rende il WebP l\'<strong>unico formato che sostituisce entrambi</strong> nel contesto web. Converti i tuoi PNG trasparenti in WebP prima di caricarli: Google PageSpeed Insights lo rileva e lo valuta positivamente negli audit "Distribuisci immagini in formati moderni".',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'title',
|
|
146
|
+
text: 'Casi d\'uso e compatibilità',
|
|
147
|
+
level: 3,
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'list',
|
|
151
|
+
icon: 'mdi:check-circle',
|
|
152
|
+
items: [
|
|
153
|
+
'Loghi e icone con sfondi trasparenti per siti web e app.',
|
|
154
|
+
'Immagini prodotto con sfondi scontornati nei negozi e-commerce.',
|
|
155
|
+
'Sprite CSS ed elementi UI con trasparenza alfa.',
|
|
156
|
+
'Illustrazioni rasterizzate e grafica vettoriale per landing page.',
|
|
157
|
+
'Miniature di articoli con sfondi trasparenti in blog e portali di notizie.',
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
text: 'Conclusione',
|
|
163
|
+
level: 3,
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'paragraph',
|
|
167
|
+
html: 'Il passaggio da PNG a WebP è l\'ottimizzazione delle immagini web più completa disponibile: ottieni file più leggeri, preservi la trasparenza e migliori le metriche dei Core Web Vitals senza cambiare nulla del tuo design visivo. Questo strumento lo fa istantaneamente, gratuitamente e in modo completamente privato: le tue immagini vengono elaborate nel tuo browser e non viaggiano mai verso alcun server esterno.',
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
export const content: PngAWebpLocaleContent = {
|
|
173
|
+
slug,
|
|
174
|
+
title,
|
|
175
|
+
description,
|
|
176
|
+
ui,
|
|
177
|
+
seo,
|
|
178
|
+
faq,
|
|
179
|
+
bibliography,
|
|
180
|
+
howTo,
|
|
181
|
+
schemas: generateSchemas({ title, description, inLanguage: 'it', faq, howTo }),
|
|
182
|
+
};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { PngAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'png-to-webp-converter';
|
|
6
|
+
const title = 'PNGをWebPにオンラインで無料で変換しましょう';
|
|
7
|
+
const description =
|
|
8
|
+
'ブラウザでPNG画像をWebPに変換します。ファイルサイズを最大40%削減。透明度を維持。ファイルのアップロード不要。無料かつプライベート。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'PNGファイルをドラッグ...',
|
|
12
|
+
convertText: '即座にWebPに変換します',
|
|
13
|
+
selectFiles: 'ファイルを選択',
|
|
14
|
+
processedFiles: '処理済みファイル',
|
|
15
|
+
downloadAll: 'すべてダウンロード (.zip)',
|
|
16
|
+
pending: '保留中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: 'よくある質問',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'なぜPNGをWebPに変換する必要があるのですか?',
|
|
24
|
+
answer:
|
|
25
|
+
'WebPは同じ品質でPNGよりも最大40%優れた圧縮を提供すると同時に、アルファ透明度もサポートしています。Google PageSpeed Insightsが推奨する形式です。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '変換過程で透明度は失われますか?',
|
|
29
|
+
answer:
|
|
30
|
+
'いいえ。WebPの技術的実装はアルファチャネルをサポートしています。元のPNGの透明度は、新しいWebPファイルでもそのまま維持されます。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '画像はサーバーに送信されますか?',
|
|
34
|
+
answer:
|
|
35
|
+
'いいえ。コードはユーザーのブラウザ(クライアント側)でのみ実行されます。変換された画像を当社が閲覧、記録、または保存することはありません。',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: PngAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'PNGファイルを挿入',
|
|
42
|
+
text: '容量の大きいPNGファイルをアップロードエリアにドラッグ&ドロップするか、従来のインタラクティブなセレクターを使用してください。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'チャネル検出',
|
|
46
|
+
text: 'ローカルレンダリングエンジンがピクセル構成を検出し、最適化されたWebP形式でエクスポートします。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '直接ダウンロード',
|
|
50
|
+
text: '高度に圧縮されたWebPファイルを個別にダウンロードするか、ZIPパッケージコンバーターを使用してまとめてダウンロードしてください。',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: PngAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Google: WebPの実装詳細',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'W3C: Core Web Vitalsガイダンス',
|
|
61
|
+
url: 'https://web.dev/vitals/',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Mozilla Docs: 画像形式',
|
|
65
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: PngAWebpLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'PNG to WebP 変換機:ウェブのための透明度と最新の圧縮技術',
|
|
73
|
+
level: 2,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html: '<strong>PNG</strong>は、ロゴ、アイコン、UI要素、切り抜き背景の商品画像など、透明度が必要なウェブ画像の標準形式でした。問題はファイルサイズです。品質を保証する可逆圧縮は、ファイル容量を大幅に大きくします。Googleの <strong>WebP</strong> はこの矛盾を解決します。アルファチャネル(透明度)をサポートしながら、PNGよりもはるかに効率的に圧縮するため、ウェブサイトでPNGからWebPに切り替えることは、視覚的な品質を犠牲にすることなく適用できる完璧な最適化です。',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'title',
|
|
81
|
+
text: 'PNGとWebPの使い分け',
|
|
82
|
+
level: 3,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'PhotoshopやFigmaなどのデザインツール、印刷ワークフロー、古いデスクトップアプリケーション、またはWebPサポートが保証されていない環境など、互換性が重要な場合には依然として <strong>PNG</strong> が適切な形式です。また、可逆圧縮によってすべてのピクセルが保持されるため、編集工程で作業レイヤーを保存するのにも理想的な形式です。ただし、ファイル容量がWebPの3〜8倍になる可能性があります。',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'paragraph',
|
|
90
|
+
html: '<strong>WebP</strong>は、あらゆるモダンなウェブコンテンツにおいてPNGの自然な後継です。Chrome、Firefox、Safari、およびEdgeはすべてこれをネイティブにサポートしています。可逆WebP画像は、同等のPNGより26%小さく、非可逆モードでは視覚的にほとんど区別がつかない品質を維持しながら最大40%小さくなります。そしてウェブデザインにとって重要なのは、 <strong>WebPがPNGと全く同様にアルファ透明度を保持</strong> し、視覚的な妥協がないことです。',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'title',
|
|
94
|
+
text: '比較:ローカル変換 vs クラウド変換',
|
|
95
|
+
level: 3,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'comparative',
|
|
99
|
+
items: [
|
|
100
|
+
{
|
|
101
|
+
title: 'クラウド変換器',
|
|
102
|
+
description: 'リモートサーバーにファイルをアップロードするツールです。',
|
|
103
|
+
icon: 'mdi:cloud-upload',
|
|
104
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
105
|
+
points: [
|
|
106
|
+
'アップロードおよびダウンロード時にネットワーク遅延が発生',
|
|
107
|
+
'ロゴや画像がサードパーティのサーバーに保存される',
|
|
108
|
+
'ファイルサイズ制限や1日の変換回数制限がある',
|
|
109
|
+
'強制的な広告やサードパーティのトラッカーが含まれる',
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
title: 'ローカルアーキテクチャ',
|
|
114
|
+
description: 'Vanilla JS技術を使用し、ユーザーのハードウェア上で直接処理します。',
|
|
115
|
+
icon: 'mdi:laptop-mac',
|
|
116
|
+
highlight: true,
|
|
117
|
+
points: [
|
|
118
|
+
'ネットワーク遅延のない即座の処理速度',
|
|
119
|
+
'完全なプライバシー — 外部送信データ0バイト',
|
|
120
|
+
'容量制限やファイル数の制限なし',
|
|
121
|
+
'広告や追跡のないクリーンなインターフェース',
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'title',
|
|
128
|
+
text: '技術的な仕組み',
|
|
129
|
+
level: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'PNGファイルがローカルで読み込まれ、メモリ上の <strong>HTML5 Canvas</strong> にデコードされます。Canvas APIは元のPNGのアルファチャネルを保持し、すべての透明および半透明のピクセルがRGBAピクセルバッファ内にそのまま維持されます。次に、 <code>toDataURL(\'image/webp\')</code> を呼び出してキャンバスをエクスポートしますが、この際にブラウザのWebPコーデック(Googleのlibwebpベース)が適用され、透明度データを変更することなく、より圧縮されたファイルを生成します。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'WebPは2つの圧縮モードを使用します。すべてのピクセルがオリジナルと正確に一致する必要がある画像のための可逆モードと、小さな差異が目立たない写真や要素のための非可逆モードです。可逆モードはPNGより26%小さいファイルを生成し、非可逆モードでは優れた視覚品質を維持しながらPNG比で最大40%の容量削減を達成できます。',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'tip',
|
|
141
|
+
title: 'ヒント:ウェブではWebPがPNGとJPGの両方を凌駕します',
|
|
142
|
+
html: '可逆モードのWebPはPNGより小さいです。非可逆モードのWebPはJPGより小さいです。これにより、WebPはウェブ環境において <strong>両方の形式を代替する唯一の形式</strong> となりました。アップロードする前に透明PNGをWebPに変換してください。Google PageSpeed Insightsはこれを検出し、「次世代フォーマットでの画像の配信」の監査で高い評価を与えます。',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'title',
|
|
146
|
+
text: '活用事例と互換性',
|
|
147
|
+
level: 3,
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'list',
|
|
151
|
+
icon: 'mdi:check-circle',
|
|
152
|
+
items: [
|
|
153
|
+
'ウェブサイトやアプリ用の透明背景のロゴやアイコン。',
|
|
154
|
+
'ECサイトにおける切り抜き背景の商品画像。',
|
|
155
|
+
'アルファ透明度を持つCSSスプライトやUI要素。',
|
|
156
|
+
'ランディングページ用のラスタライズされたイラストやベクターグラフィックス。',
|
|
157
|
+
'ブログやニュースポータルの透明背景の記事サムネイル。',
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
text: '結論',
|
|
163
|
+
level: 3,
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'paragraph',
|
|
167
|
+
html: 'PNGからWebPへの移行は、現在ウェブにおいて利用可能な最も包括的な画像最適化です。視覚的なデザインを変更することなく、ファイル容量を削減し、透明度を維持し、Core Web Vitalsの指標を改善できます。このツールはブラウザで画像を処理し、外部サーバーへ送信しないため、即座に、無料で、かつ完全にプライベートに行えます。',
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
export const content: PngAWebpLocaleContent = {
|
|
173
|
+
slug,
|
|
174
|
+
title,
|
|
175
|
+
description,
|
|
176
|
+
ui,
|
|
177
|
+
seo,
|
|
178
|
+
faq,
|
|
179
|
+
bibliography,
|
|
180
|
+
howTo,
|
|
181
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ja', faq, howTo }),
|
|
182
|
+
};
|