@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,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
|
+
};
|
|
@@ -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 = 'conversor-de-jpg-para-webp';
|
|
6
|
+
const title = 'Converter JPG para WebP Online e Grátis';
|
|
7
|
+
const description =
|
|
8
|
+
'Converta imagens JPG para WebP no seu navegador. Compressão superior sem perda visível. Sem upload de arquivos. Gratuito, ilimitado e privado.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Arraste arquivos JPG...',
|
|
12
|
+
convertText: 'Para convertê-los em WebP instantaneamente',
|
|
13
|
+
selectFiles: 'Selecionar arquivos',
|
|
14
|
+
processedFiles: 'Arquivos processados',
|
|
15
|
+
downloadAll: 'Baixar tudo (.zip)',
|
|
16
|
+
pending: 'Pendente',
|
|
17
|
+
bibliographyTitle: 'Referências Bibliográficas',
|
|
18
|
+
faqTitle: 'Perguntas Frequentes',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: JpgAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Porquê converter fotos JPG para WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'O WebP permite uma compressão significativamente melhor dos arquivos JPG tradicionais sem que o olho humano note a diferença, resultando em sites mais rápidos e modernos.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Tenho de pagar por imagem?',
|
|
29
|
+
answer:
|
|
30
|
+
'Não, a ferramenta é gratuita e tudo é processado diretamente no seu computador. É ilimitado para uso doméstico ou profissional.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'A conversão é segura?',
|
|
34
|
+
answer:
|
|
35
|
+
'Sim, totalmente. Todo o processamento ocorre no HTML5 Canvas do seu navegador local, sem enviar quaisquer dados para servidores externos.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Insira as suas fotos JPG',
|
|
42
|
+
text: 'Solte os seus arquivos JPG ou arraste-os diretamente para a área superior. A deteção é instantânea.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Processamento para WebP',
|
|
46
|
+
text: 'O motor de renderização local converterá cada arquivo de imagem num WebP ultra-otimizado pronto para a web.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Baixe os resultados',
|
|
50
|
+
text: 'Guarde cada WebP individualmente ou baixe o ZIP com todos os arquivos convertidos.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Estudo de Compressão Google WebP',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/docs/webp_study',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Web.dev: Sirva imagens em formatos modernos',
|
|
61
|
+
url: 'https://web.dev/uses-webp-images/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Conversor de JPG para WebP: Acelere o seu site com o formato moderno do Google',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'O formato <strong>JPG</strong> dominou a fotografia digital durante décadas — universalmente compatível e amplamente suportado. Mas a Google desenvolveu o <strong>WebP</strong> para bater o JPG no seu próprio terreno: a mesma qualidade visual com menos 25–35% de tamanho de arquivo. Para programadores e equipas de marketing que lutam contra carregamentos lentos de páginas, converter JPG para WebP é a otimização com maior retorno que pode aplicar sem tocar no design.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG ou WebP? Quando utilizar cada formato',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'O <strong>JPG</strong> continua a ser a escolha certa quando precisa de compatibilidade universal: e-mails a clientes, documentos Word, plataformas de redes sociais antigas ou sistemas CMS que ainda não aceitam WebP. O seu ecossistema de trinta anos garante que qualquer ecrã, impressora ou visualizador o abrirá sem problemas. A principal desvantagem é o tamanho — um JPG de cabeçalho de 1,5 MB pode penalizar a pontuação LCP da sua página e falhar os limiares dos Core Web Vitals.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'O <strong>WebP</strong> é a escolha inteligente para todo o conteúdo que vive no seu website. Chrome, Firefox, Safari e Edge suportam-no nativamente há anos. Imagens de produtos em e-commerce, banners de blogs, miniaturas de vídeo e qualquer foto publicada online beneficiam diretamente: páginas mais leves, melhores pontuações no Google PageSpeed Insights e uma experiência de utilizador mais fluida — especialmente em ligações móveis lentas.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Comparação: Conversão Local vs Cloud',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Conversores Cloud',
|
|
98
|
+
description: 'Ferramentas que carregam os seus arquivos para um servidor remoto.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Latência de rede no upload e download',
|
|
103
|
+
'As suas fotos são armazenadas em servidores de terceiros',
|
|
104
|
+
'Limites de tamanho de arquivo e quotas de conversão diárias',
|
|
105
|
+
'Anúncios intrusivos e rastreadores de terceiros',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'A Nossa Arquitetura Local',
|
|
110
|
+
description: 'Processamento direto no seu hardware utilizando a tecnologia Vanilla JS.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Velocidade instantânea — latência de rede zero',
|
|
115
|
+
'Privacidade total — 0 bytes enviados externamente',
|
|
116
|
+
'Sem limites de MB ou restrições no número de arquivos',
|
|
117
|
+
'Interface limpa, sem anúncios ou rastreamento',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Como funciona tecnicamente',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Quando arrasta um JPG para a ferramenta, o navegador cria um <strong>objeto Blob</strong> que reside apenas na sua RAM. Esse Blob é descodificado e desenhado num elemento <strong>HTML5 Canvas</strong> invisível. Como o JPG não tem canal alfa, a conversão para WebP é direta: o motor exporta o canvas chamando <code>toDataURL(\'image/webp\')</code>, gerando um fluxo de bytes que o seu sistema operativo baixa instantaneamente — sem envolvimento de servidor.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'O algoritmo de compressão WebP combina técnicas de previsão de blocos (semelhantes às do VP8, o codec de vídeo da Google) com transformações de cor e codificação aritmética. O resultado é um arquivo que contém a mesma informação percetual que o JPG original, mas empacotado de forma muito mais eficiente — o que significa menos kilobytes transferidos a cada visita de página.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Dica Core Web Vitals: LCP e peso da imagem',
|
|
138
|
+
html: 'O <strong>Largest Contentful Paint (LCP)</strong> é a métrica da Google que mede quanto tempo demora a carregar o maior elemento visual da sua página. Um JPG de cabeçalho de 1,5 MB pode tornar-se num WebP de apenas 900 KB — ou mesmo 600 KB — sem diferença visual percetível. Essa <strong>poupança de 25–35%</strong> pode mover o seu LCP de "Precisa de melhorias" para "Bom" e subir o seu posicionamento nos resultados de pesquisa.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Casos de uso e compatibilidade',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Imagens de produtos em lojas WooCommerce ou Shopify: menos peso, mais conversões.',
|
|
150
|
+
'Fotografia para blogs e artigos: melhor pontuação no PageSpeed sem redesenhar nada.',
|
|
151
|
+
'Banners web e criativos de publicidade display: arquivos mais leves com a mesma nitidez.',
|
|
152
|
+
'Galerias de portfólio para estúdios de arquitetura, fotografia ou design.',
|
|
153
|
+
'Miniaturas de vídeo em sites de streaming ou plataformas de cursos online.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Conclusão',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Converter os seus JPGs para WebP é hoje uma das otimizações mais simples e económicas que pode aplicar a qualquer website. Com esta ferramenta faz isso em segundos, gratuitamente e sem que as suas imagens saiam do seu dispositivo. Menos kilobytes, melhor LCP, páginas mais rápidas — tudo com a exata aparência visual que já tinha.',
|
|
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: 'pt', faq, howTo }),
|
|
178
|
+
};
|