@jjlmoya/utils-converters 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +60 -59
- package/src/shared/ImageConverter.astro +2 -1
- 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/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,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { JpgAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'jpg-to-webp-converter';
|
|
6
|
+
const title = 'JPG를 WebP로 온라인에서 무료로 변환하세요';
|
|
7
|
+
const description =
|
|
8
|
+
'브라우저에서 JPG 이미지를 WebP로 변환하세요. 가시적인 손실 없는 뛰어난 압축률. 파일 업로드 없음. 무료, 무제한 및 개인 정보 보호.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'JPG 파일을 드래그하세요...',
|
|
12
|
+
convertText: '즉시 WebP로 변환하려면',
|
|
13
|
+
selectFiles: '파일 선택',
|
|
14
|
+
processedFiles: '처리된 파일',
|
|
15
|
+
downloadAll: '모두 다운로드 (.zip)',
|
|
16
|
+
pending: '대기 중',
|
|
17
|
+
bibliographyTitle: '참고 문헌',
|
|
18
|
+
faqTitle: '자주 묻는 질문',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: JpgAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '왜 JPG 사진을 WebP로 변환해야 하나요?',
|
|
24
|
+
answer:
|
|
25
|
+
'WebP는 사람의 눈이 차이를 느끼지 못하면서도 기존 JPG 파일보다 훨씬 더 나은 압축을 가능하게 하여 더 빠르고 현대적인 웹사이트를 만듭니다.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '이미지당 비용을 지불해야 하나요?',
|
|
29
|
+
answer:
|
|
30
|
+
'아니요, 이 도구는 무료이며 모든 작업은 컴퓨터에서 직접 처리됩니다. 가정용 또는 전문가용으로 무제한으로 사용할 수 있습니다.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '변환이 안전한가요?',
|
|
34
|
+
answer:
|
|
35
|
+
'네, 전적으로 안전합니다. 모든 처리는 로컬 브라우저의 HTML5 Canvas에서 발생하며 외부 서버로 데이터를 보내지 않습니다.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'JPG 사진 넣기',
|
|
42
|
+
text: 'JPG 파일을 상단 영역으로 직접 드래그하여 떨어뜨리세요. 즉시 감지됩니다.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'WebP 변환 처리',
|
|
46
|
+
text: '로컬 렌더링 엔진이 각 이미지 파일을 웹에 최적화된 WebP로 변환합니다.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '결과 다운로드',
|
|
50
|
+
text: '각 WebP를 개별적으로 저장하거나 변환된 모든 파일이 포함된 ZIP 파일을 다운로드하세요.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Google WebP 압축 연구',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/docs/webp_study',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Web.dev: 현대적인 형식으로 이미지 제공하기',
|
|
61
|
+
url: 'https://web.dev/uses-webp-images/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'JPG to WebP 변환기: Google의 최신 형식으로 사이트 속도 높이기',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>JPG</strong> 형식은 수십 년 동안 디지털 사진 분야를 지배해 왔으며 보편적인 호환성과 폭넓은 지원을 자랑합니다. 하지만 Google은 동일한 시각적 품질을 유지하면서 파일 크기를 25-35% 줄여 JPG를 능가하는 <strong>WebP</strong>를 설계했습니다. 느린 페이지 로딩과 씨름하는 개발자와 마케팅 팀에게 JPG를 WebP로 변환하는 것은 디자인을 수정하지 않고도 적용할 수 있는 가장 수익성 높은 최적화입니다.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG와 WebP 중 무엇을 선택해야 할까요?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '고객 이메일, Word 문서, 레거시 소셜 미디어 플랫폼 또는 아직 WebP를 지원하지 않는 CMS 시스템과 같이 보편적인 호환성이 필요한 경우에는 여전히 <strong>JPG</strong>가 올바른 선택입니다. 30년 동안 구축된 생태계 덕분에 어떤 화면, 프린터 또는 뷰어에서도 문제 없이 열 수 있습니다. 주요 단점은 크기입니다. 1.5MB 용량의 헤더 JPG는 페이지의 LCP 점수를 낮추고 Core Web Vitals 임계값을 통과하지 못하게 만들 수 있습니다.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '웹사이트에 게시되는 모든 콘텐츠에는 <strong>WebP</strong>가 스마트한 선택입니다. Chrome, Firefox, Safari 및 Edge는 이미 수년 전부터 이를 기본적으로 지원하고 있습니다. 전자상거래의 제품 이미지, 블로그 배너, 비디오 썸네일 및 온라인에 게시된 모든 사진은 페이지 무게 감소, Google PageSpeed Insights 점수 개선, 느린 모바일 환경에서의 부드러운 사용자 경험 제공 등 직접적인 혜택을 누릴 수 있습니다.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: '비교: 로컬 변환 vs 클라우드 변환',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: '클라우드 변환기',
|
|
98
|
+
description: '원격 서버로 파일을 업로드하는 도구입니다.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'업로드 및 다운로드 시 네트워크 지연 발생',
|
|
103
|
+
'사진이 타사 서버에 저장됨',
|
|
104
|
+
'파일 크기 제한 및 일일 변환 횟수 제한',
|
|
105
|
+
'강제적인 광고 및 타사 추적 프로그램 포함',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '사용자 환경 로컬 아키텍처',
|
|
110
|
+
description: 'Vanilla JS 기술을 사용하여 하드웨어에서 직접 처리합니다.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'네트워크 지연 없는 즉각적인 속도',
|
|
115
|
+
'완벽한 개인 정보 보호 — 외부 전송 데이터 0바이트',
|
|
116
|
+
'용량 제한이나 파일 개수 제한 없음',
|
|
117
|
+
'광고나 추적이 없는 깨끗한 인터페이스',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '기술적 작동 원리',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'JPG 파일을 도구로 드래그하면 브라우저는 RAM에만 상주하는 <strong>Blob 객체</strong>를 생성합니다. 해당 Blob은 디코딩되어 보이지 않는 <strong>HTML5 Canvas</strong> 요소에 그려집니다. JPG에는 알파 채널이 없으므로 WebP로의 변환이 직접적으로 이루어집니다. 엔진은 <code>toDataURL(\'image/webp\')</code>을 호출하여 캔버스를 내보내고, 서버를 통하지 않고 운영 체제가 즉시 다운로드하는 바이트 스트림을 생성합니다.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'WebP 압축 알고리즘은 블록 예측 기술(Google의 비디오 코덱인 VP8과 유사)을 색상 변환 및 산술 코딩과 결합합니다. 그 결과 원본 JPG와 동일한 지각 정보를 포함하면서도 훨씬 더 효율적으로 패키징된 파일이 생성됩니다. 이는 페이지 방문 시마다 전송되는 킬로바이트 수가 줄어든다는 것을 의미합니다.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Core Web Vitals 팁: LCP와 이미지 무게',
|
|
138
|
+
html: '<strong>Largest Contentful Paint (LCP)</strong>는 페이지에서 가장 큰 시각적 요소를 로드하는 데 걸리는 시간을 측정하는 Google의 지표입니다. 1.5MB 헤더 JPG를 시각적 차이 없이 단 900KB 또는 600KB의 WebP로 만들 수 있습니다. 이러한 <strong>25~35%의 절감</strong>은 LCP를 "개선 필요"에서 "좋음"으로 이동시키고 검색 순위를 높일 수 있습니다.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '사용 사례 및 호환성',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'WooCommerce 또는 Shopify 매장의 제품 이미지: 가벼운 무게로 전환율 증대.',
|
|
150
|
+
'블로그 및 뉴스 사진: 디자인 변경 없이 PageSpeed 점수 향상.',
|
|
151
|
+
'웹 배너 및 디스플레이 광고: 동일한 선명도를 유지하면서 파일 용량 감소.',
|
|
152
|
+
'건축, 사진 또는 디자인 스튜디오의 포트폴리오 갤러리.',
|
|
153
|
+
'스트리밍 사이트나 온라인 교육 플랫폼의 비디오 썸네일.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '결론',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'JPG를 WebP로 변환하는 것은 현재 웹사이트에 적용할 수 있는 가장 간단하고 비용 효율적인 최적화 중 하나입니다. 이 도구를 사용하면 이미지가 기기를 떠나지 않고도 몇 초 만에 무료로 변환할 수 있습니다. 더 적은 킬로바이트, 더 나은 LCP, 더 빠른 페이지 로딩 — 이 모든 것을 기존과 동일한 시각적 품질로 누리세요.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: JpgAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { JpgAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'jpg-naar-webp-converter';
|
|
6
|
+
const title = 'Converteer JPG naar WebP Online en Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Converteer JPG-afbeeldingen naar WebP in je browser. Superieure compressie zonder zichtbaar verlies. Geen bestandsuploads. Gratis, onbeperkt en privé.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Sleep JPG-bestanden...',
|
|
12
|
+
convertText: 'Om ze direct naar WebP te converteren',
|
|
13
|
+
selectFiles: 'Bestanden selecteren',
|
|
14
|
+
processedFiles: 'Verwerkte bestanden',
|
|
15
|
+
downloadAll: 'Alles downloaden (.zip)',
|
|
16
|
+
pending: 'In afwachting',
|
|
17
|
+
bibliographyTitle: 'Bibliografische Referenties',
|
|
18
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: JpgAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Waarom JPG-foto\'s converteren naar WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'WebP zorgt voor een aanzienlijk betere compressie van traditionele JPG-bestanden zonder dat het menselijk oog het verschil opmerkt, wat resulteert in snellere en modernere websites.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Moet ik per afbeelding betalen?',
|
|
29
|
+
answer:
|
|
30
|
+
'Nee, de tool is gratis en alles wordt direct op je eigen computer verwerkt. Het gebruik is onbeperkt voor zowel thuisgebruik als professioneel gebruik.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Is de conversie veilig?',
|
|
34
|
+
answer:
|
|
35
|
+
'Ja, volledig. Alle verwerking vindt plaats in het HTML5 Canvas van je lokale browser zonder dat er gegevens naar externe servers worden verzonden.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Voeg je JPG-foto\'s toe',
|
|
42
|
+
text: 'Zet je JPG-bestanden neer of sleep ze direct naar het bovenste gedeelte. De detectie is onmiddellijk.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Verwerking naar WebP',
|
|
46
|
+
text: 'De lokale rendering-engine converteert elk afbeeldingsbestand naar een voor het web geoptimaliseerde WebP.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Download de resultaten',
|
|
50
|
+
text: 'Sla elk WebP-bestand afzonderlijk op of download het ZIP-bestand met alle geconverteerde bestanden.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Google WebP Compressiestudie',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/docs/webp_study',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Web.dev: Serveer afbeeldingen in moderne formaten',
|
|
61
|
+
url: 'https://web.dev/uses-webp-images/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'JPG naar WebP Converter: Versnel je sité met het moderne formaat van Google',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Het <strong>JPG</strong>-formaat heeft decennialang de digitale fotografie gedomineerd — universeel compatibel en breed ondersteund. Maar Google heeft <strong>WebP</strong> ontwikkeld om JPG op eigen terrein te verslaan: dezelfde visuele kwaliteit bij een 25–35% kleinere bestandsgrootte. Voor ontwikkelaars en marketingteams die vechten tegen trage laadtijden, is het converteren van JPG naar WebP de optimalisatie met het hoogste rendement die je kunt toepassen zonder aan je ontwerp te komen.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG of WebP? Wanneer je elk formaat moet gebruiken',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>JPG</strong> blijft de juiste keuze wanneer je universele compatibiliteit nodig hebt: e-mails aan klanten, Word-documenten, verouderde social mediaplatforms of CMS-systemen die WebP nog niet accepteren. Het dertigjarige ecosysteem garandeert dat elk scherm, elke printer of elke viewer het zonder problemen zal openen. Het belangrijkste nadeel is de grootte — een header-JPG van 1,5 MB kan de LCP-score van je pagina verslechteren en de drempelwaarden van Core Web Vitals overschrijden.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>WebP</strong> is de slimme keuze voor alle inhoud op je website. Chrome, Firefox, Safari en Edge ondersteunen het al jaren systeemeigen. Productafbeeldingen in e-commerce, blogbanners, videominiaturen en elke online gepubliceerde foto profiteren direct: lichtere pagina\'s, betere Google PageSpeed Insights-scores en een soepelere gebruikerservaring — vooral op trage mobiele verbindingen.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vergelijking: Lokale vs Cloud-conversie',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Cloud Converters',
|
|
98
|
+
description: 'Tools die je bestanden uploaden naar een externe server.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Netwerklatentie bij uploaden en downloaden',
|
|
103
|
+
'Je foto\'s worden opgeslagen op servers van derden',
|
|
104
|
+
'Limieten voor bestandsgrootte en dagelijkse conversiequota',
|
|
105
|
+
'Opdringerige advertenties en trackers van derden',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Onze Lokale Architectuur',
|
|
110
|
+
description: 'Directe verwerking op je eigen hardware met Vanilla JS-technologie.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Onmiddellijke snelheid — geen netwerklatentie',
|
|
115
|
+
'Volledige privacy — 0 bytes extern verzonden',
|
|
116
|
+
'Geen MB-limieten of beperkingen op aantal bestanden',
|
|
117
|
+
'Schone interface, geen advertenties of tracking',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Hoe het technisch werkt',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Wanneer je een JPG in de tool sleept, maakt de browser een <strong>Blob-object</strong> aan dat alleen in je RAM leeft. Die Blob wordt gedecodeerd en getekend op een onzichtbaar <strong>HTML5 Canvas</strong>-element. Omdat JPG geen alfakanaal heeft, is de conversie naar WebP direct: de engine exporteert het canvas door <code>toDataURL(\'image/webp\')</code> aan te roepen, wat een byte-stream genereert die je besturingssysteem onmiddellijk downloadt — zonder tussenkomst van een server.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Het WebP-compressiealgoritme combineert blokvoorspellingstechnieken (vergelijkbaar met die in VP8, de videocodec van Google) met kleurtransformaties en rekenkundig coderen. Het resultaat is een bestand dat dezelfde perceptuele informatie bevat als de originele JPG, maar veel efficiënter is verpakt — wat betekent dat er bij elk paginabezoek minder kilobytes worden overgedragen.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Core Web Vitals Tip: LCP en beeldgewicht',
|
|
138
|
+
html: 'De <strong>Largest Contentful Paint (LCP)</strong> is de Google-metriek die meet hoe lang het duurt om het grootste visuele element op je pagina te laden. Een header-JPG van 1,5 MB kan een WebP worden van slechts 900 KB — of zelfs 600 KB — zonder merkbaar visueel verschil. Die <strong>besparing van 25–35%</strong> kan je LCP verschuiven van "Verbetering nodig" naar "Goed" en je positie in de zoekresultaten verbeteren.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Toepassingen en compatibiliteit',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Productafbeeldingen op WooCommerce- of Shopify-winkels: minder gewicht, meer conversies.',
|
|
150
|
+
'Fotografie voor blogs en artikelen: betere PageSpeed-score zonder herontwerp.',
|
|
151
|
+
'Webbanners en advertentiemateriaal: lichtere bestanden met dezelfde scherpte.',
|
|
152
|
+
'Portfoliogalerieën voor architectuur-, fotografie- of ontwerpstudio\'s.',
|
|
153
|
+
'Videominiaturen op streamingsites of online cursusplatforms.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Conclusie',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Het converteren van je JPG\'s naar WebP is tegenwoordig een van de eenvoudigste en meest kosteneffectieve optimalisaties die je op elke website kunt toepassen. Met deze tool doe je het in seconden, gratis en zonder dat je afbeeldingen je apparaat ooit verlaten. Minder kilobytes, betere LCP, snellere pagina\'s — allemaal met exact hetzelfde visuele uiterlijk dat je al had.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: JpgAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'nl', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { JpgAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konwerter-jpg-na-webp';
|
|
6
|
+
const title = 'Konwertuj JPG na WebP Online i Za Darmo';
|
|
7
|
+
const description =
|
|
8
|
+
'Konwertuj obrazy JPG na WebP w swojej przeglądarce. Doskonała kompresja bez widocznej utraty jakości. Bez przesyłania plików. Za darmo, bez limitów i prywatnie.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Przeciągnij pliki JPG...',
|
|
12
|
+
convertText: 'Aby błyskawicznie przekonwertować je na WebP',
|
|
13
|
+
selectFiles: 'Wybierz pliki',
|
|
14
|
+
processedFiles: 'Przetworzone pliki',
|
|
15
|
+
downloadAll: 'Pobierz wszystko (.zip)',
|
|
16
|
+
pending: 'Oczekujące',
|
|
17
|
+
bibliographyTitle: 'Bibliografia',
|
|
18
|
+
faqTitle: 'Często Zadawane Pytania',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: JpgAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Dlaczego warto konwertować zdjęcia JPG na WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'WebP pozwala na znacznie lepszą kompresję tradycyjnych plików JPG bez dostrzegalnej przez ludzkie oko różnicy, co skutkuje szybszymi i nowocześniejszymi stronami internetowymi.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Czy muszę płacić za każdy obraz?',
|
|
29
|
+
answer:
|
|
30
|
+
'Nie, narzędzie jest darmowe, a wszystko jest przetwarzane bezpośrednio na Twoim komputerze. Jest ono nielimitowane zarówno do użytku domowego, jak i profesjonalnego.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Czy konwersja jest bezpieczna?',
|
|
34
|
+
answer:
|
|
35
|
+
'Tak, całkowicie. Całe przetwarzanie odbywa się w HTML5 Canvas Twojej lokalnej przeglądarki bez wysyłania jakichkolwiek danych na zewnętrzne serwery.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Wstaw swoje zdjęcia JPG',
|
|
42
|
+
text: 'Upuść pliki JPG lub przeciągnij je bezpośrednio do górnego obszaru. Wykrywanie jest natychmiastowe.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Przetwarzanie na WebP',
|
|
46
|
+
text: 'Lokalny silnik renderujący przekonwertuje każdy plik obrazu na ultra-zoptymalizowany WebP gotowy do publikacji w sieci.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Pobierz wyniki',
|
|
50
|
+
text: 'Zapisz każdy plik WebP z osobna lub pobierz paczkę ZIP ze wszystkimi skonwertowanymi plikami.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Badanie kompresji Google WebP',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/docs/webp_study',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Web.dev: Serwuj obrazy w nowoczesnych formatach',
|
|
61
|
+
url: 'https://web.dev/uses-webp-images/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Konwerter JPG na WebP: Przyspiesz swoją stronę dzięki nowoczesnemu formatowi Google',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Format <strong>JPG</strong> przez dziesięciolecia dominował w fotografii cyfrowej — uniwersalnie kompatybilny i powszechnie obsługiwany. Jednak Google stworzyło <strong>WebP</strong>, aby pokonać JPG na jego własnym polu: ta sama jakość wizualna przy rozmiarze pliku mniejszym o 25–35%. Dla programistów i zespołów marketingowych walczących z powolnym ładowaniem stron, konwersja JPG na WebP to pojedyncza optymalizacja o najwyższym zwrocie, którą można zastosować bez ingerencji w projekt.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG czy WebP? Kiedy używać każdego formatu',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>JPG</strong> pozostaje właściwym wyborem, gdy potrzebujesz uniwersalnej kompatybilności: e-maile do klientów, dokumenty Word, starsze platformy społecznościowe lub systemy CMS, które nie akceptują jeszcze WebP. Jego trzydziestoletni ekosystem gwarantuje, że każdy ekran, drukarka czy przeglądarka otworzy go bez problemów. Główną wadą jest rozmiar — JPG w nagłówku o rozmiarze 1,5 MB może obniżyć wynik LCP Twojej strony i nie spełnić progów Core Web Vitals.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>WebP</strong> to inteligentny wybór dla wszystkich treści na Twojej stronie. Chrome, Firefox, Safari i Edge obsługują go natywnie od lat. Zdjęcia produktów w e-commerce, banery na blogach, miniatury wideo i wszelkie zdjęcia publikowane online odnoszą bezpośrednie korzyści: lżejsze strony, lepsze wyniki Google PageSpeed Insights i płynniejsze wrażenia użytkownika — szczególnie na wolnych połączeniach mobilnych.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Porównanie: Konwersja lokalna vs w chmurze',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Konwertery w chmurze',
|
|
98
|
+
description: 'Narzędzia, które przesyłają pliki na zdalny serwer.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Opóźnienia sieciowe podczas przesyłania i pobierania',
|
|
103
|
+
'Twoje zdjęcia są przechowywane na serwerach osób trzecich',
|
|
104
|
+
'Limity rozmiaru plików i dzienne limity konwersji',
|
|
105
|
+
'Intruzywne reklamy i skrypty śledzące osób trzecich',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Nasza lokalna architektura',
|
|
110
|
+
description: 'Bezpośrednie przetwarzanie na Twoim sprzęcie przy użyciu technologii Vanilla JS.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Błyskawiczna prędkość — zero opóźnień sieciowych',
|
|
115
|
+
'Pełna prywatność — 0 bajtów wysłanych na zewnątrz',
|
|
116
|
+
'Brak limitów MB lub ograniczeń liczby plików',
|
|
117
|
+
'Czysty interfejs, bez reklam i śledzenia',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Jak to działa technicznie',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Gdy przeciągasz plik JPG do narzędzia, przeglądarka tworzy <strong>obiekt Blob</strong>, który znajduje się tylko w Twojej pamięci RAM. Ten Blob jest dekodowany i rysowany na niewidocznym elemencie <strong>HTML5 Canvas</strong>. Ponieważ JPG nie ma kanału alfa, konwersja na WebP jest bezpośrednia: silnik eksportuje płótno, wywołując <code>toDataURL(\'image/webp\')</code>, generując strumień bajtów, który Twój system operacyjny natychmiast pobiera — bez udziału serwera.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Algorytm kompresji WebP łączy techniki przewidywania bloków (podobne do tych w VP8, kodeku wideo Google) z transformacjami kolorów i kodowaniem arytmetycznym. Wynikiem jest plik, który zawiera te same informacje percepcyjne co oryginalny JPG, ale zapakowany znacznie wydajniej — co oznacza mniej przesłanych kilobajtów przy każdej wizycie na stronie.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Wskazówka Core Web Vitals: LCP i waga obrazu',
|
|
138
|
+
html: '<strong>Largest Contentful Paint (LCP)</strong> to wskaźnik Google, który mierzy, ile czasu zajmuje załadowanie największego elementu wizualnego na Twojej stronie. JPG w nagłówku o rozmiarze 1,5 MB może stać się plikiem WebP o rozmiarze zaledwie 900 KB — a nawet 600 KB — bez zauważalnej różnicy wizualnej. Ta <strong>oszczędność rzędu 25–35%</strong> może zmienić Twój wynik LCP z "Wymaga poprawy" na "Dobry" i podnieść Twoją pozycję w wynikach wyszukiwania.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Zastosowania i kompatybilność',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Zdjęcia produktów w sklepach WooCommerce lub Shopify: mniejsza waga, więcej konwersji.',
|
|
150
|
+
'Fotografia na blogach i w artykułach: lepszy wynik PageSpeed bez potrzeby rebrandingu.',
|
|
151
|
+
'Banery internetowe i kreacje reklamowe: lżejsze pliki przy zachowaniu tej samej ostrości.',
|
|
152
|
+
'Galerie portfolio dla studiów architektonicznych, fotograficznych lub projektowych.',
|
|
153
|
+
'Miniatury wideo na stronach streamingowych lub platformach kursów online.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Podsumowanie',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Konwersja plików JPG na WebP to dziś jedna z najprostszych i najbardziej opłacalnych optymalizacji, jakie można zastosować na dowolnej stronie internetowej. Dzięki temu narzędziu zrobisz to w kilka sekund, za darmo i bez przesyłania swoich obrazów poza urządzenie. Mniej kilobajtów, lepszy LCP, szybsze strony — wszystko przy dokładnie tym samym wyglądzie, który już miałeś.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: JpgAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'pl', faq, howTo }),
|
|
178
|
+
};
|