@jjlmoya/utils-converters 1.7.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/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
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
1
|
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
3
|
import type { WebpAJpgLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertidor-webp-a-jpg';
|
|
6
6
|
const title = 'Convertir WebP a JPG Online y Gratis';
|
|
7
7
|
const description =
|
|
8
|
-
'Convierte imágenes WebP a JPG sin subir archivos. Procesamiento local 100% privado. Los fondos transparentes se
|
|
8
|
+
'Convierte imágenes WebP a JPG sin subir archivos. Procesamiento local 100% privado. Los fondos transparentes se reemplazan automáticamente por blanco.';
|
|
9
9
|
|
|
10
10
|
const ui: ImageConverterUI = {
|
|
11
11
|
dragText: 'Arrastra archivos WebP...',
|
|
@@ -22,31 +22,31 @@ const faq: WebpAJpgLocaleContent['faq'] = [
|
|
|
22
22
|
{
|
|
23
23
|
question: '¿Puedo subir imágenes privadas de forma segura?',
|
|
24
24
|
answer:
|
|
25
|
-
'Sí. No
|
|
25
|
+
'Sí. No existe un servidor de subida. Tu navegador procesa el WebP en tu equipo y genera el JPG para descargar. Nadie más lo ve.',
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
|
-
question: '¿Qué
|
|
28
|
+
question: '¿Qué pasa con el fondo de mi WebP si es transparente?',
|
|
29
29
|
answer:
|
|
30
|
-
'Como
|
|
30
|
+
'Como JPG no admite transparencias, el conversor rellenará automáticamente las zonas transparentes con un fondo blanco sólido.',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
|
-
question: '¿Hay límite de conversiones o tamaño?',
|
|
33
|
+
question: '¿Hay límite de conversiones o de tamaño de archivo?',
|
|
34
34
|
answer:
|
|
35
|
-
'No imponemos restricciones. Puedes convertir cientos de imágenes siempre que tu
|
|
35
|
+
'No imponemos restricciones. Puedes convertir cientos de imágenes siempre que tu equipo tenga potencia y RAM suficiente.',
|
|
36
36
|
},
|
|
37
37
|
];
|
|
38
38
|
|
|
39
39
|
const howTo: WebpAJpgLocaleContent['howTo'] = [
|
|
40
40
|
{
|
|
41
|
-
name: 'Arrastra tus
|
|
42
|
-
text: '
|
|
41
|
+
name: 'Arrastra tus archivos',
|
|
42
|
+
text: 'Suelta tus archivos WebP modernos en la zona de subida o selecciónalos con el explorador.',
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
name: 'Conversión Local',
|
|
46
|
-
text: '
|
|
46
|
+
text: 'Observa cómo el motor local aplica fondo e interpreta cada píxel al formato JPG universal.',
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
|
-
name: 'Obtén
|
|
49
|
+
name: 'Obtén los resultados',
|
|
50
50
|
text: 'Descarga individualmente o usa el paquete ZIP para consolidar todas tus nuevas fotografías.',
|
|
51
51
|
},
|
|
52
52
|
];
|
|
@@ -58,10 +58,10 @@ const bibliography: WebpAJpgLocaleContent['bibliography'] = [
|
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
name: 'Mozilla Developer Network - image/jpeg',
|
|
61
|
-
url: 'https://developer.mozilla.org/
|
|
61
|
+
url: 'https://developer.mozilla.org/es/docs/Web/Media/Formats/Image_types#jpeg',
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
|
-
name: 'WebP
|
|
64
|
+
name: 'Compatibilidad WebP a JPEG',
|
|
65
65
|
url: 'https://developers.google.com/speed/webp/faq',
|
|
66
66
|
},
|
|
67
67
|
];
|
|
@@ -69,12 +69,12 @@ const bibliography: WebpAJpgLocaleContent['bibliography'] = [
|
|
|
69
69
|
const seo: WebpAJpgLocaleContent['seo'] = [
|
|
70
70
|
{
|
|
71
71
|
type: 'title',
|
|
72
|
-
text: 'Convertidor WebP a JPG: Compatibilidad Universal sin Comprometer
|
|
72
|
+
text: 'Convertidor WebP a JPG: Compatibilidad Universal sin Comprometer la Privacidad',
|
|
73
73
|
level: 2,
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
type: 'paragraph',
|
|
77
|
-
html: '
|
|
77
|
+
html: '<strong>WebP</strong> es la apuesta de Google por la eficiencia: imágenes más ligeras con una calidad comparable al JPG tradicional. Sin embargo, su compatibilidad sigue siendo un problema en el mundo real. Clientes de correo como Outlook, software de diseño antiguo, apps de mensajería y flujos de trabajo corporativos siguen dependiendo del ubicuo <strong>JPG</strong>. Convertir WebP a JPG es el puente entre la web moderna y el mundo real.',
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
type: 'title',
|
|
@@ -83,11 +83,11 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
type: 'paragraph',
|
|
86
|
-
html: 'WebP brilla en entornos controlados: sitios web modernos
|
|
86
|
+
html: 'WebP brilla en entornos controlados: sitios web modernos en Chrome, Edge o Firefox donde se puede garantizar la compatibilidad del navegador. Su compresión superior reduce el peso de los archivos entre un 25-35% respecto a un JPG equivalente, mejorando tiempos de carga y métricas Core Web Vitals. Es el formato ideal cuando tú controlas el entorno de visualización.',
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
type: 'paragraph',
|
|
90
|
-
html: 'JPG, por otro lado, funciona en <em>absolutamente todos los contextos</em>:
|
|
90
|
+
html: 'JPG, por otro lado, funciona en <em>absolutamente todos los contextos</em>: adjuntos de email, presentaciones PowerPoint, documentos Word, impresoras domésticas, aplicaciones de edición legacy y plataformas sociales sin excepción. Si necesitas que alguien abra tu imagen sin fricciones técnicas, JPG es la respuesta correcta.',
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
type: 'title',
|
|
@@ -103,9 +103,9 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
103
103
|
icon: 'mdi:cloud-upload',
|
|
104
104
|
pointIcon: 'mdi:close-circle-outline',
|
|
105
105
|
points: [
|
|
106
|
-
'Tus fotos viajan por
|
|
107
|
-
'Tiempo de espera por subida y
|
|
108
|
-
'Límites de tamaño y
|
|
106
|
+
'Tus fotos viajan por internet a servidores desconocidos',
|
|
107
|
+
'Tiempo de espera por la subida y el procesado remoto',
|
|
108
|
+
'Límites diarios de tamaño y número de conversiones gratis',
|
|
109
109
|
'Riesgo real de retención de datos en servidores de terceros',
|
|
110
110
|
],
|
|
111
111
|
},
|
|
@@ -115,9 +115,9 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
115
115
|
icon: 'mdi:laptop-mac',
|
|
116
116
|
highlight: true,
|
|
117
117
|
points: [
|
|
118
|
-
'Cero bytes enviados: todo
|
|
118
|
+
'Cero bytes enviados: todo sucede en tu memoria RAM',
|
|
119
119
|
'Velocidad instantánea sin depender de tu conexión',
|
|
120
|
-
'Sin límites de tamaño ni
|
|
120
|
+
'Sin límites de tamaño de archivo ni cantidad de ficheros',
|
|
121
121
|
'Ideal para fotos personales, médicas o corporativas',
|
|
122
122
|
],
|
|
123
123
|
},
|
|
@@ -130,16 +130,16 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'paragraph',
|
|
133
|
-
html: '
|
|
133
|
+
html: 'Al arrastrar un WebP a la herramienta, el navegador lo decodifica de forma nativa usando su motor de renderizado interno. A continuación, el archivo se dibuja sobre un elemento <strong>Canvas HTML5</strong> invisible. Dado que JPG no admite transparencia, el algoritmo rellena previamente el lienzo con un fondo blanco sólido antes de componer la imagen encima.',
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
type: 'paragraph',
|
|
137
|
-
html: 'El paso final es la exportación: el método <code>toDataURL(\'image/jpeg\')</code> del Canvas convierte los píxeles del lienzo en un flujo de bytes JPG comprimido
|
|
137
|
+
html: 'El paso final es la exportación: el método <code>toDataURL(\'image/jpeg\')</code> del Canvas convierte los píxeles del lienzo en un flujo de bytes JPG comprimido de alta calidad. Este flujo se entrega directamente al sistema de descargas del navegador, sin comunicación de red alguna. Todo el proceso toma milisegundos incluso para imágenes de varios megapíxeles.',
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
type: 'tip',
|
|
141
141
|
title: 'Consejo de compatibilidad',
|
|
142
|
-
html: 'Cuando compartas fotos con usuarios no técnicos o las envíes por
|
|
142
|
+
html: 'Cuando compartas fotos con usuarios no técnicos o las envíes por email, usa siempre JPG: cero problemas de compatibilidad en cualquier cliente de correo, sistema operativo o dispositivo, sin excepciones ni sorpresas desagradables.',
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
type: 'title',
|
|
@@ -150,11 +150,11 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
150
150
|
type: 'list',
|
|
151
151
|
icon: 'mdi:check-circle',
|
|
152
152
|
items: [
|
|
153
|
-
'Adjuntar fotos en
|
|
153
|
+
'Adjuntar fotos en emails desde Outlook, Gmail o Apple Mail.',
|
|
154
154
|
'Insertar imágenes en documentos Word, Excel o presentaciones PowerPoint.',
|
|
155
|
-
'Publicar en
|
|
156
|
-
'Compartir por WhatsApp o
|
|
157
|
-
'Imprimir fotografías en servicios de
|
|
155
|
+
'Publicar en redes sociales que rechazan el formato WebP.',
|
|
156
|
+
'Compartir por WhatsApp o apps de mensajería con soporte limitado.',
|
|
157
|
+
'Imprimir fotografías en servicios de revelado que solo aceptan JPG o PNG.',
|
|
158
158
|
],
|
|
159
159
|
},
|
|
160
160
|
{
|
|
@@ -164,21 +164,10 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
type: 'paragraph',
|
|
167
|
-
html: 'WebP es el futuro de
|
|
167
|
+
html: 'WebP es el futuro de las imágenes web, pero JPG sigue siendo el rey de la compatibilidad universal. Esta herramienta te permite cruzar ese puente en segundos, de forma totalmente privada y sin instalar nada. Tu imagen nunca sale de tu equipo.',
|
|
168
168
|
},
|
|
169
169
|
];
|
|
170
170
|
|
|
171
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
172
|
-
'@context': 'https://schema.org',
|
|
173
|
-
'@type': 'SoftwareApplication',
|
|
174
|
-
name: title,
|
|
175
|
-
description,
|
|
176
|
-
applicationCategory: 'UtilitiesApplication',
|
|
177
|
-
operatingSystem: 'Web',
|
|
178
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
179
|
-
inLanguage: 'es',
|
|
180
|
-
};
|
|
181
|
-
|
|
182
171
|
export const content: WebpAJpgLocaleContent = {
|
|
183
172
|
slug,
|
|
184
173
|
title,
|
|
@@ -188,5 +177,11 @@ export const content: WebpAJpgLocaleContent = {
|
|
|
188
177
|
faq,
|
|
189
178
|
bibliography,
|
|
190
179
|
howTo,
|
|
191
|
-
schemas:
|
|
180
|
+
schemas: generateSchemas({
|
|
181
|
+
title,
|
|
182
|
+
description,
|
|
183
|
+
inLanguage: 'es',
|
|
184
|
+
faq,
|
|
185
|
+
howTo,
|
|
186
|
+
}),
|
|
192
187
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
1
|
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
3
|
import type { WebpAJpgLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertisseur-webp-en-jpg';
|
|
@@ -22,32 +22,32 @@ const faq: WebpAJpgLocaleContent['faq'] = [
|
|
|
22
22
|
{
|
|
23
23
|
question: 'Puis-je télécharger des images privées en toute sécurité ?',
|
|
24
24
|
answer:
|
|
25
|
-
'Oui. Il n\'y a pas de serveur de téléchargement. Votre navigateur traite le WebP sur votre ordinateur et génère le JPG
|
|
25
|
+
'Oui. Il n\'y a pas de serveur de téléchargement. Votre navigateur traite le WebP sur votre ordinateur et génère le JPG que vous téléchargez. Personne d\'autre ne le voit.',
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
|
-
question: '
|
|
28
|
+
question: 'Qu\'advient-il de mon fond WebP s\'il est transparent ?',
|
|
29
29
|
answer:
|
|
30
|
-
'Comme le JPG ne supporte pas la transparence, le convertisseur remplira automatiquement les zones transparentes avec un fond blanc
|
|
30
|
+
'Comme le JPG ne supporte pas la transparence, le convertisseur remplira automatiquement les zones transparentes avec un fond blanc uni.',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
|
-
question: 'Y a-t-il une limite
|
|
33
|
+
question: 'Y a-t-il une limite sur les conversions ou la taille des fichiers ?',
|
|
34
34
|
answer:
|
|
35
|
-
'Nous n\'imposons aucune restriction. Vous pouvez convertir des centaines d\'images tant que votre ordinateur
|
|
35
|
+
'Nous n\'imposons aucune restriction. Vous pouvez convertir des centaines d\'images tant que votre ordinateur a une puissance de traitement et une RAM suffisantes.',
|
|
36
36
|
},
|
|
37
37
|
];
|
|
38
38
|
|
|
39
39
|
const howTo: WebpAJpgLocaleContent['howTo'] = [
|
|
40
40
|
{
|
|
41
41
|
name: 'Faites glisser vos fichiers',
|
|
42
|
-
text: 'Déposez vos fichiers WebP modernes dans la zone de téléchargement ou sélectionnez-les
|
|
42
|
+
text: 'Déposez vos fichiers WebP modernes dans la zone de téléchargement ou sélectionnez-les avec l\'explorateur.',
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
name: 'Conversion
|
|
46
|
-
text: '
|
|
45
|
+
name: 'Conversion Locale',
|
|
46
|
+
text: 'Regardez comment le moteur local applique un fond et interprète chaque pixel au format JPG universel.',
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
name: 'Obtenez vos résultats',
|
|
50
|
-
text: 'Téléchargez individuellement ou utilisez le package ZIP pour
|
|
50
|
+
text: 'Téléchargez individuellement ou utilisez le package ZIP pour regrouper toutes vos nouvelles photographies.',
|
|
51
51
|
},
|
|
52
52
|
];
|
|
53
53
|
|
|
@@ -58,7 +58,7 @@ const bibliography: WebpAJpgLocaleContent['bibliography'] = [
|
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
name: 'Mozilla Developer Network - image/jpeg',
|
|
61
|
-
url: 'https://developer.mozilla.org/
|
|
61
|
+
url: 'https://developer.mozilla.org/fr/docs/Web/Media/Formats/Image_types#jpeg',
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
name: 'Compatibilité WebP vers JPEG',
|
|
@@ -74,20 +74,20 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
type: 'paragraph',
|
|
77
|
-
html: '
|
|
77
|
+
html: '<strong>WebP</strong> est le pari de Google sur l\'efficacité : des images plus légères avec une qualité comparable au JPG traditionnel. Cependant, sa compatibilité reste un problème dans le monde réel. Les clients de messagerie comme Outlook, les anciens logiciels de conception, les applications de messagerie et les flux de travail en entreprise dépendent toujours de l\'ubiquitaire <strong>JPG</strong>. Convertir WebP en JPG est le pont entre le web moderne et le monde réel.',
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
type: 'title',
|
|
81
|
-
text: 'WebP vs JPG : Quand
|
|
81
|
+
text: 'WebP vs JPG : Quand utiliser chaque format ?',
|
|
82
82
|
level: 3,
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
type: 'paragraph',
|
|
86
|
-
html: 'WebP excelle dans les environnements
|
|
86
|
+
html: 'WebP excelle dans les environnements contrôlés : sites web modernes sur Chrome, Edge ou Firefox où la compatibilité du navigateur peut être garantie. Sa compression supérieure réduit le poids des fichiers de 25-35% par rapport à un JPG équivalent, améliorant les temps de chargement et les métriques Core Web Vitals. C\'est le format idéal lorsque vous contrôlez l\'environnement de visualisation.',
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
type: 'paragraph',
|
|
90
|
-
html: 'Le JPG,
|
|
90
|
+
html: 'Le JPG, quant à lui, fonctionne dans <em>absolument tous les contextes</em> : pièces jointes d\'e-mails, présentations PowerPoint, documents Word, imprimantes domestiques, applications d\'édition héritées et plateformes sociales sans exception. Si vous avez besoin que quelqu\'un ouvre votre image sans friction technique, le JPG est la bonne réponse.',
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
type: 'title',
|
|
@@ -103,9 +103,9 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
103
103
|
icon: 'mdi:cloud-upload',
|
|
104
104
|
pointIcon: 'mdi:close-circle-outline',
|
|
105
105
|
points: [
|
|
106
|
-
'Vos photos
|
|
107
|
-
'Temps d\'attente pour
|
|
108
|
-
'Limites quotidiennes
|
|
106
|
+
'Vos photos voyagent sur Internet vers des serveurs inconnus',
|
|
107
|
+
'Temps d\'attente pour le téléchargement et le traitement à distance',
|
|
108
|
+
'Limites quotidiennes sur la taille et le nombre de conversions gratuites',
|
|
109
109
|
'Risque réel de rétention des données sur des serveurs tiers',
|
|
110
110
|
],
|
|
111
111
|
},
|
|
@@ -115,9 +115,9 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
115
115
|
icon: 'mdi:laptop-mac',
|
|
116
116
|
highlight: true,
|
|
117
117
|
points: [
|
|
118
|
-
'Zéro octet envoyé : tout se passe dans votre RAM',
|
|
118
|
+
'Zéro octet envoyé : tout se passe dans votre mémoire RAM',
|
|
119
119
|
'Vitesse instantanée sans dépendre de votre connexion',
|
|
120
|
-
'Aucune limite
|
|
120
|
+
'Aucune limite sur la taille des fichiers ou le nombre de fichiers',
|
|
121
121
|
'Idéal pour les photos personnelles, médicales ou d\'entreprise',
|
|
122
122
|
],
|
|
123
123
|
},
|
|
@@ -130,16 +130,16 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'paragraph',
|
|
133
|
-
html: '
|
|
133
|
+
html: 'En faisant glisser un WebP vers l\'outil, le navigateur le décode nativement en utilisant son moteur de rendu interne. Le fichier est ensuite dessiné sur un élément <strong>Canvas HTML5</strong> invisible. Comme le JPG ne supporte pas la transparence, l\'algorithme pré-remplit le canevas avec un fond blanc uni avant de composer l\'image par-dessus.',
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
type: 'paragraph',
|
|
137
|
-
html: 'L\'étape finale est l\'
|
|
137
|
+
html: 'L\'étape finale est l\'exportation : la méthode <code>toDataURL(\'image/jpeg\')</code> du Canvas convertit les pixels du canevas en un flux d\'octets JPG compressé de haute qualité. Ce flux est livré directement au système de téléchargement du navigateur, sans aucune communication réseau. Tout le processus prend quelques millisecondes, même pour des images de plusieurs mégapixels.',
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
type: 'tip',
|
|
141
141
|
title: 'Conseil de compatibilité',
|
|
142
|
-
html: 'Lorsque vous partagez des photos avec des utilisateurs non techniques ou les envoyez par e-mail, utilisez toujours le JPG —
|
|
142
|
+
html: 'Lorsque vous partagez des photos avec des utilisateurs non techniques ou que vous les envoyez par e-mail, utilisez toujours le JPG — zéro problème de compatibilité sur n\'importe quel client de messagerie, système d\'exploitation ou appareil, sans exception et sans mauvaise surprise.',
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
type: 'title',
|
|
@@ -151,10 +151,10 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
151
151
|
icon: 'mdi:check-circle',
|
|
152
152
|
items: [
|
|
153
153
|
'Joindre des photos dans des e-mails depuis Outlook, Gmail ou Apple Mail.',
|
|
154
|
-
'Insérer des images dans des documents Word, Excel ou présentations PowerPoint.',
|
|
155
|
-
'Publier sur des
|
|
156
|
-
'Partager via WhatsApp ou applications de messagerie au support
|
|
157
|
-
'Imprimer des photographies
|
|
154
|
+
'Insérer des images dans des documents Word, Excel ou des présentations PowerPoint.',
|
|
155
|
+
'Publier sur des réseaux sociaux qui rejettent le format WebP.',
|
|
156
|
+
'Partager via WhatsApp ou des applications de messagerie au support limité.',
|
|
157
|
+
'Imprimer des photographies chez des services de tirage qui n\'acceptent que le JPG ou le PNG.',
|
|
158
158
|
],
|
|
159
159
|
},
|
|
160
160
|
{
|
|
@@ -164,21 +164,10 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
type: 'paragraph',
|
|
167
|
-
html: 'WebP est l\'avenir
|
|
167
|
+
html: 'Le WebP est l\'avenir des images web, mais le JPG reste le roi de la compatibilité universelle. Cet outil vous permet de franchir ce pont en quelques secondes, de manière totalement privée et sans rien installer. Votre image ne quitte jamais votre appareil.',
|
|
168
168
|
},
|
|
169
169
|
];
|
|
170
170
|
|
|
171
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
172
|
-
'@context': 'https://schema.org',
|
|
173
|
-
'@type': 'SoftwareApplication',
|
|
174
|
-
name: title,
|
|
175
|
-
description,
|
|
176
|
-
applicationCategory: 'UtilitiesApplication',
|
|
177
|
-
operatingSystem: 'Web',
|
|
178
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
179
|
-
inLanguage: 'fr',
|
|
180
|
-
};
|
|
181
|
-
|
|
182
171
|
export const content: WebpAJpgLocaleContent = {
|
|
183
172
|
slug,
|
|
184
173
|
title,
|
|
@@ -188,5 +177,11 @@ export const content: WebpAJpgLocaleContent = {
|
|
|
188
177
|
faq,
|
|
189
178
|
bibliography,
|
|
190
179
|
howTo,
|
|
191
|
-
schemas:
|
|
180
|
+
schemas: generateSchemas({
|
|
181
|
+
title,
|
|
182
|
+
description,
|
|
183
|
+
inLanguage: 'fr',
|
|
184
|
+
faq,
|
|
185
|
+
howTo,
|
|
186
|
+
}),
|
|
192
187
|
};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { WebpAJpgLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konverter-webp-ke-jpg';
|
|
6
|
+
const title = 'Konversi WebP ke JPG Online dan Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Konversi gambar WebP ke JPG tanpa mengunggah file. Pemrosesan lokal pribadi 100%. Latar belakang transparan secara otomatis diganti dengan warna putih.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Tarik file WebP...',
|
|
12
|
+
convertText: 'Untuk mengkonversinya ke JPG 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: WebpAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Dapatkah saya mengunggah gambar pribadi dengan aman?',
|
|
24
|
+
answer:
|
|
25
|
+
'Ya. Tidak ada server unggahan. Browser Anda memproses WebP di komputer Anda dan menghasilkan JPG untuk Anda unduh. Tidak ada orang lain yang melihatnya.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Apa yang terjadi dengan latar belakang WebP saya jika transparan?',
|
|
29
|
+
answer:
|
|
30
|
+
'Karena JPG tidak mendukung transparansi, konverter akan secara otomatis mengisi area transparan dengan latar belakang putih solid.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Apakah ada batasan pada konversi atau ukuran file?',
|
|
34
|
+
answer:
|
|
35
|
+
'Kami tidak memberlakukan batasan apa pun. Anda dapat mengonversi ratusan gambar selama komputer Anda memiliki daya pemrosesan dan RAM yang cukup.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAJpgLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Tarik file Anda',
|
|
42
|
+
text: 'Letakkan file WebP modern Anda ke area unggahan atau pilih menggunakan browser file interaktif.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Konversi Lokal',
|
|
46
|
+
text: 'Lihat bagaimana mesin lokal menerapkan latar belakang dan menafsirkan setiap piksel ke format JPG universal.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Dapatkan hasil Anda',
|
|
50
|
+
text: 'Unduh satu per satu atau gunakan paket ZIP untuk menggabungkan semua foto baru Anda.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAJpgLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'JPEG.org: Standar JPEG',
|
|
57
|
+
url: 'https://jpeg.org/jpeg/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Mozilla Developer Network - image/jpeg',
|
|
61
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types#jpeg',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Kompatibilitas WebP ke JPEG',
|
|
65
|
+
url: 'https://developers.google.com/speed/webp/faq',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: WebpAJpgLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'Konverter WebP ke JPG: Kompatibilitas Universal Tanpa Mengorbankan Privasi',
|
|
73
|
+
level: 2,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html: '<strong>WebP</strong> adalah taruhan Google pada efisiensi: gambar yang lebih ringan dengan kualitas yang sebanding dengan JPG tradisional. Namun, kompatibilitasnya tetap menjadi masalah di dunia nyata. Klien email seperti Outlook, perangkat lunak desain lama, aplikasi pesan, dan alur kerja perusahaan masih bergantung pada <strong>JPG</strong> yang ada di mana-mana. Mengonversi WebP ke JPG adalah jembatan antara web modern dan dunia nyata.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'title',
|
|
81
|
+
text: 'WebP vs JPG: Kapan Menggunakan Setiap Format?',
|
|
82
|
+
level: 3,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP unggul dalam lingkungan terkontrol: situs web modern di Chrome, Edge, atau Firefox di mana kompatibilitas browser dapat dijamin. Kompresinya yang unggul mengurangi berat file sebesar 25–35% dibandingkan dengan JPG yang setara, meningkatkan waktu pemuatan dan metrik Core Web Vitals. Ini adalah format ideal saat Anda mengontrol lingkungan tampilan.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'paragraph',
|
|
90
|
+
html: 'JPG, di sisi lain, berfungsi di <em>hampir setiap konteks</em>: lampiran email, presentasi PowerPoint, dokumen Word, printer rumah, aplikasi pengeditan lama, dan platform media sosial tanpa pengecualian. Jika Anda membutuhkan seseorang untuk membuka gambar Anda tanpa hambatan teknis apa pun, JPG adalah jawaban yang tepat.',
|
|
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
|
+
'Foto Anda tersebar di internet ke server yang tidak dikenal',
|
|
107
|
+
'Waktu tunggu untuk pengunggahan dan pemrosesan jarak jauh',
|
|
108
|
+
'Batasan harian pada ukuran file dan konversi gratis',
|
|
109
|
+
'Risiko nyata retensi data pada server 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
|
+
'Nol byte terkirim: semuanya terjadi di RAM Anda',
|
|
119
|
+
'Kecepatan instan tanpa bergantung pada koneksi Anda',
|
|
120
|
+
'Tidak ada batasan pada ukuran file atau jumlah file',
|
|
121
|
+
'Sangat cocok untuk foto pribadi, medis, atau perusahaan',
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'title',
|
|
128
|
+
text: 'Cara Kerjanya Secara Teknis',
|
|
129
|
+
level: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Saat Anda menarik file WebP ke dalam alat, browser mendekodenya secara native menggunakan mesin rendering internalnya. File tersebut kemudian digambar ke elemen <strong>HTML5 Canvas</strong> yang tidak terlihat. Karena JPG tidak mendukung transparansi, algoritme akan mengisi kanvas dengan latar belakang putih solid sebelum menyatukan gambar di atasnya.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'Langkah terakhir adalah ekspor: metode Canvas <code>toDataURL(\'image/jpeg\')</code> mengonversi piksel kanvas menjadi aliran byte JPG terkompresi berkualitas tinggi. Aliran ini dikirim langsung ke sistem unduhan browser, tanpa komunikasi jaringan sama sekali. Seluruh proses memakan waktu milidetik bahkan untuk gambar multi-megapiksel.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'tip',
|
|
141
|
+
title: 'Tip kompatibilitas',
|
|
142
|
+
html: 'Saat berbagi foto dengan pengguna non-teknis atau mengirimnya melalui email, selalu gunakan JPG — nol masalah kompatibilitas di klien email, sistem operasi, atau perangkat apa pun, tanpa pengecualian dan tanpa kejutan yang tidak menyenangkan.',
|
|
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
|
+
'Melampirkan foto di email dari Outlook, Gmail, atau Apple Mail.',
|
|
154
|
+
'Memasukkan gambar dalam dokumen Word, Excel, atau presentasi PowerPoint.',
|
|
155
|
+
'Posting di platform media sosial yang menolak WebP.',
|
|
156
|
+
'Berbagi melalui WhatsApp atau aplikasi pesan dengan dukungan format terbatas.',
|
|
157
|
+
'Mencetak foto di layanan cetak yang hanya menerima JPG atau PNG.',
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
text: 'Kesimpulan',
|
|
163
|
+
level: 3,
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'paragraph',
|
|
167
|
+
html: 'WebP adalah masa depan gambar web, tetapi JPG tetap menjadi raja kompatibilitas universal. Alat ini memungkinkan Anda menyeberangi jembatan itu dalam hitungan detik, sepenuhnya secara pribadi dan tanpa memasang apa pun. Gambar Anda tidak pernah meninggalkan perangkat Anda.',
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
export const content: WebpAJpgLocaleContent = {
|
|
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
|
+
};
|