@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,183 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { WebpAIcoLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'webp-to-ico-converter';
|
|
6
|
+
const title = '在线将 WebP 转换为 ICO';
|
|
7
|
+
const description =
|
|
8
|
+
'将 WebP 图像转换为支持透明度的官方 ICO。无需上传文件。生成真实 Microsoft 二进制标头。免费且 100% 私密。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: '拖拽 WebP 文件...',
|
|
12
|
+
convertText: '立即将它们转换为 ICO',
|
|
13
|
+
selectFiles: '选择文件',
|
|
14
|
+
processedFiles: '已处理文件',
|
|
15
|
+
downloadAll: '下载全部 (.zip)',
|
|
16
|
+
pending: '等待中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: '常见问题',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: WebpAIcoLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '我可以将 WebP 贴纸设计转换为官方的网页 Favicon ICO 吗?',
|
|
24
|
+
answer:
|
|
25
|
+
'当然可以。由于极高的通用兼容性需求, Favicon 仍然需要经典的 Microsoft ICO 扩展名。此工具将注入二进制标头, 构建一个 100% 合规的图标。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '在批量创建企业图标时, 我需要在线排队等待吗?',
|
|
29
|
+
answer:
|
|
30
|
+
'完全不需要。我们的转换器在浏览器中加载 JavaScript, 并切断任何上传网络。您设备的 CPU 会异步处理一百张甚至更多照片。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '生成的 ICO 是否支持原始 WebP 的透明度?',
|
|
34
|
+
answer:
|
|
35
|
+
'是的。我们的引擎在内部使用完全支持 32 位色的 HTML5 Canvas API, 每个透明区域都将干净利落地转移到图标文件中。',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAIcoLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: '拖拽您本地的所有 WebP 贴纸',
|
|
42
|
+
text: '批量移动大型图片集, 无需担心网络上传限制。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: '逻辑异步转换与直接组装',
|
|
46
|
+
text: '观察进度条和元素如何自动完成, 内存正逐字节处理每一帧数据。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '获取您的系统和 Web 开发图标包',
|
|
50
|
+
text: '点击大按钮下载打包文件, 或者如果您只需要一个图标, 也可以手动单独下载。',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAIcoLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'ICO Web 标头通用文档',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP 文档',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: WebpAIcoLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'WebP 转 ICO 转换器: 用现代素材创建完美 Favicon',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '现代网页设计工作流程产生 <strong>WebP</strong> 格式的素材: 经过优化的 LOGO、UI 图标和品牌元素。但是, 当您需要配置网站的 <strong>favicon</strong> 或 Windows 桌面应用程序的图标时, 所需格式仍然是 <strong>ICO</strong>。将 WebP 转换为 ICO 允许您在不丢失原始质量的情况下重复使用这些高质量素材。',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'WebP vs ICO: 用途不同的格式',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'WebP 是一种通用图像格式, 非常适合照片、插画和网页 UI 图标。其高效的压缩使其成为加快页面加载速度的理想选择。然而, 它缺乏操作系统和浏览器识别和显示应用程序图标或 favicon 所需的特定二进制结构。',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'ICO 是一种 Microsoft 专门为图标设计的容器格式。它可以在单个文件中存储多种分辨率, 并通过 32 位 Alpha 通道支持完整透明度。按照惯例, 浏览器会寻找 <code>favicon.ico</code> 文件, 这种格式确保您的图标在标准屏幕以及 Retina 和 4K 显示器上都能保持清晰。',
|
|
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
|
+
'您的品牌 LOGO 会被传输到第三方服务器',
|
|
103
|
+
'每次转换都需要互联网连接',
|
|
104
|
+
'输出质量取决于服务器性能',
|
|
105
|
+
'每日转换次数通常有限制',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '我们的本地架构',
|
|
110
|
+
description: '使用 Vanilla JS 技术直接在您的硬件上处理。',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'您的 LOGO 永远不会离开浏览器',
|
|
115
|
+
'按照 Microsoft 标准生成 ICO 二进制标头',
|
|
116
|
+
'32 位透明度被完整保留',
|
|
117
|
+
'支持成套图标的批量转换',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '技术原理',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '浏览器原生解码 WebP 文件并将其绘制到 32 位色深的 <strong>HTML5 Canvas</strong> 上, 保留原始 Alpha 通道。我们的 JavaScript 引擎随后通过 <code>getImageData()</code> 方法提取像素数据, 并根据 Microsoft 标准指定的 ICONDIR 和 ICONDIRENTRY 标头构建 ICO 二进制结构。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: '结果是一个合法合规的 ICO 文件, 而不是简单的重命名。像素数据采用 Windows、macOS 和所有现代浏览器在加载 favicon 或应用程序图标时所期望的正确结构进行打包。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: '高清 Favicon 提示',
|
|
138
|
+
html: '请始终使用最高分辨率的素材生成 ICO。512×512 或更大的 WebP 将在 Retina 和 4K 显示器上生成非常清晰的图标, 而低分辨率图标在这些屏幕上会显得模糊。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '应用场景与兼容性',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'为任何网站或 Web 应用程序创建 favicon.ico 文件。',
|
|
150
|
+
'为 Windows 软件安装程序生成应用程序图标。',
|
|
151
|
+
'为 Electron 应用或类似框架制作桌面图标。',
|
|
152
|
+
'为 Chrome 和 Firefox 浏览器扩展制作图标集。',
|
|
153
|
+
'将品牌 WebP 标志转换为企业级应用的图标。',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '总结',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '您的现代设计流程生产 WebP;但应用程序生态系统仍然需要 ICO。此工具在数秒内弥合了这一差距, 无需让您的品牌素材离开浏览器即可生成具有正确二进制结构和完整透明度的图标。',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
export const content: WebpAIcoLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
inLanguage: 'zh',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
183
|
+
};
|
|
@@ -16,6 +16,18 @@ export const webpAIco: ConvertersToolEntry<ImageConverterUI> = {
|
|
|
16
16
|
es: () => import('./i18n/es').then((m) => m.content),
|
|
17
17
|
en: () => import('./i18n/en').then((m) => m.content),
|
|
18
18
|
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
19
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
20
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
22
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
23
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
24
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
25
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
26
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
27
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
28
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
29
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
30
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
19
31
|
},
|
|
20
32
|
};
|
|
21
33
|
|
|
@@ -0,0 +1,187 @@
|
|
|
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 = 'webp-zu-jpg-konvertieren';
|
|
6
|
+
const title = 'WebP zu JPG Konverter Online und Kostenlos';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertieren Sie WebP-Bilder in JPG, ohne Dateien hochzuladen. 100 % private lokale Verarbeitung. Transparente Hintergründe werden automatisch durch Weiß ersetzt.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'WebP-Dateien hierher ziehen...',
|
|
12
|
+
convertText: 'Um sie sofort in JPG zu konvertieren',
|
|
13
|
+
selectFiles: 'Dateien auswählen',
|
|
14
|
+
processedFiles: 'Verarbeitete Dateien',
|
|
15
|
+
downloadAll: 'Alles herunterladen (.zip)',
|
|
16
|
+
pending: 'Ausstehend',
|
|
17
|
+
bibliographyTitle: 'Literaturhinweise',
|
|
18
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: WebpAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Kann ich private Bilder sicher hochladen?',
|
|
24
|
+
answer:
|
|
25
|
+
'Ja. Es gibt keinen Upload-Server. Ihr Browser verarbeitet das WebP auf Ihrem Computer und generiert das JPG zum Herunterladen. Niemand sonst sieht es.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Was passiert mit meinem WebP-Hintergrund, wenn er transparent ist?',
|
|
29
|
+
answer:
|
|
30
|
+
'Da JPG keine Transparenz unterstützt, füllt der Konverter transparente Bereiche automatisch mit einem soliden weißen Hintergrund auf.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Gibt es eine Beschränkung für Konvertierungen oder Dateigrößen?',
|
|
34
|
+
answer:
|
|
35
|
+
'Wir erlegen keine Einschränkungen auf. Sie können Hunderte von Bildern konvertieren, solange Ihr Computer über ausreichend Rechenleistung und Arbeitsspeicher verfügt.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAJpgLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Dateien ziehen',
|
|
42
|
+
text: 'Ziehen Sie Ihre modernen WebP-Dateien in den Upload-Bereich oder wählen Sie sie mit dem Explorer aus.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Lokale Konvertierung',
|
|
46
|
+
text: 'Beobachten Sie, wie die lokale Engine einen Hintergrund anwendet und jedes Pixel in das universelle JPG-Format interpretiert.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Ergebnisse erhalten',
|
|
50
|
+
text: 'Laden Sie sie einzeln herunter oder verwenden Sie das ZIP-Paket, um alle Ihre neuen Fotos zu bündeln.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAJpgLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'JPEG.org: Die JPEG-Standards',
|
|
57
|
+
url: 'https://jpeg.org/jpeg/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Mozilla Developer Network - image/jpeg',
|
|
61
|
+
url: 'https://developer.mozilla.org/de/docs/Web/Media/Formats/Image_types#jpeg',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'WebP-zu-JPEG-Kompatibilität',
|
|
65
|
+
url: 'https://developers.google.com/speed/webp/faq',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: WebpAJpgLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'WebP zu JPG Konverter: Universelle Kompatibilität ohne Kompromisse beim Datenschutz',
|
|
73
|
+
level: 2,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html: '<strong>WebP</strong> ist Googles Wette auf Effizienz: leichtere Bilder mit einer Qualität, die mit herkömmlichem JPG vergleichbar ist. Die Kompatibilität bleibt jedoch ein Problem in der realen Welt. E-Mail-Clients wie Outlook, alte Design-Software, Messaging-Apps und Unternehmensabläufe hängen immer noch vom allgegenwärtigen <strong>JPG</strong> ab. Die Konvertierung von WebP in JPG ist die Brücke zwischen dem modernen Web und der realen Welt.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'title',
|
|
81
|
+
text: 'WebP vs. JPG: Wann sollte man welches Format verwenden?',
|
|
82
|
+
level: 3,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP glänzt in kontrollierten Umgebungen: moderne Websites in Chrome, Edge oder Firefox, in denen die Browserkompatibilität garantiert werden kann. Die überlegene Kompression reduziert das Dateigewicht um 25–35 % gegenüber einem vergleichbaren JPG, was die Ladezeiten und Core Web Vitals verbessert. Es ist das ideale Format, wenn Sie die Anzeigeumgebung kontrollieren.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'paragraph',
|
|
90
|
+
html: 'JPG hingegen funktioniert in <em>absolut jedem Kontext</em>: E-Mail-Anhänge, PowerPoint-Präsentationen, Word-Dokumente, Heimdrucker, alte Bearbeitungsanwendungen und soziale Plattformen ohne Ausnahme. Wenn Sie sicherstellen müssen, dass jemand Ihr Bild ohne technische Reibung öffnen kann, ist JPG die richtige Antwort.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'title',
|
|
94
|
+
text: 'Vergleich: Lokale vs. Cloud-Konvertierung',
|
|
95
|
+
level: 3,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'comparative',
|
|
99
|
+
items: [
|
|
100
|
+
{
|
|
101
|
+
title: 'Cloud Konverter',
|
|
102
|
+
description: 'Tools, die Ihre Dateien auf einen Remote-Server hochladen.',
|
|
103
|
+
icon: 'mdi:cloud-upload',
|
|
104
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
105
|
+
points: [
|
|
106
|
+
'Ihre Fotos reisen über das Internet zu unbekannten Servern',
|
|
107
|
+
'Wartezeit für Upload und Remote-Verarbeitung',
|
|
108
|
+
'Tägliche Limits für Dateigröße und kostenlose Konvertierungen',
|
|
109
|
+
'Reales Risiko der Datenspeicherung auf Drittanbieter-Servern',
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
title: 'Unsere lokale Architektur',
|
|
114
|
+
description: 'Direkte Verarbeitung auf Ihrer Hardware mittels Vanilla-JS-Technologie.',
|
|
115
|
+
icon: 'mdi:laptop-mac',
|
|
116
|
+
highlight: true,
|
|
117
|
+
points: [
|
|
118
|
+
'Null gesendete Bytes: Alles passiert in Ihrem RAM',
|
|
119
|
+
'Sofortige Geschwindigkeit, ohne von Ihrer Verbindung abhängig zu sein',
|
|
120
|
+
'Keine Limits bei Dateigröße oder Anzahl der Dateien',
|
|
121
|
+
'Ideal für persönliche, medizinische oder Firmenfotos',
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'title',
|
|
128
|
+
text: 'Wie es technisch funktioniert',
|
|
129
|
+
level: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Wenn Sie eine WebP-Datei in das Tool ziehen, dekodiert der Browser sie nativ mit seiner internen Rendering-Engine. Die Datei wird dann auf ein unsichtbares <strong>HTML5 Canvas</strong>-Element gezeichnet. Da JPG keine Transparenz unterstützt, füllt der Algorithmus die Leinwand vor dem Zusammensetzen des Bildes mit einem soliden weißen Hintergrund auf.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'Der letzte Schritt ist der Export: Die Canvas-Methode <code>toDataURL(\'image/jpeg\')</code> konvertiert die Canvas-Pixel in einen hochwertigen komprimierten JPG-Byte-Stream. Dieser Stream wird direkt an das Download-System des Browsers geliefert, ohne jegliche Netzwerkkommunikation. Der gesamte Prozess dauert Millisekunden, selbst bei Bildern mit mehreren Megapixeln.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'tip',
|
|
141
|
+
title: 'Kompatibilitätstipp',
|
|
142
|
+
html: 'Wenn Sie Fotos mit technisch weniger versierten Benutzern teilen oder per E-Mail versenden, verwenden Sie immer JPG – keine Kompatibilitätsprobleme über alle E-Mail-Clients, Betriebssysteme oder Geräte hinweg, keine Ausnahmen und keine unangenehmen Überraschungen.',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'title',
|
|
146
|
+
text: 'Anwendungsfälle und Kompatibilität',
|
|
147
|
+
level: 3,
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'list',
|
|
151
|
+
icon: 'mdi:check-circle',
|
|
152
|
+
items: [
|
|
153
|
+
'Anhängen von Fotos in E-Mails von Outlook, Gmail oder Apple Mail.',
|
|
154
|
+
'Einfügen von Bildern in Word-Dokumente, Excel oder PowerPoint-Präsentationen.',
|
|
155
|
+
'Posten auf sozialen Plattformen, die WebP ablehnen.',
|
|
156
|
+
'Teilen über WhatsApp oder Messaging-Apps mit eingeschränkter Formatunterstützung.',
|
|
157
|
+
'Drucken von Fotos bei Fotodiensten, die nur JPG oder PNG akzeptieren.',
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
text: 'Fazit',
|
|
163
|
+
level: 3,
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'paragraph',
|
|
167
|
+
html: 'WebP ist die Zukunft der Web-Bilder, aber JPG bleibt der König der universellen Kompatibilität. Mit diesem Tool können Sie diese Brücke in Sekunden überqueren, völlig privat und ohne etwas zu installieren. Ihr Bild verlässt niemals Ihr Gerät.',
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
|
|
171
|
+
export const content: WebpAJpgLocaleContent = {
|
|
172
|
+
slug,
|
|
173
|
+
title,
|
|
174
|
+
description,
|
|
175
|
+
ui,
|
|
176
|
+
seo,
|
|
177
|
+
faq,
|
|
178
|
+
bibliography,
|
|
179
|
+
howTo,
|
|
180
|
+
schemas: generateSchemas({
|
|
181
|
+
title,
|
|
182
|
+
description,
|
|
183
|
+
inLanguage: 'de',
|
|
184
|
+
faq,
|
|
185
|
+
howTo,
|
|
186
|
+
}),
|
|
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 = 'webp-to-jpg-converter';
|
|
@@ -25,6 +25,7 @@ const faq: WebpAJpgLocaleContent['faq'] = [
|
|
|
25
25
|
'Yes. There is no upload server. Your browser processes the WebP on your computer and generates the JPG for you to download. Nobody else sees it.',
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
|
+
author: 'Admin',
|
|
28
29
|
question: 'What happens to my WebP background if it is transparent?',
|
|
29
30
|
answer:
|
|
30
31
|
'Since JPG does not support transparency, the converter will automatically fill transparent areas with a solid white background.',
|
|
@@ -168,17 +169,6 @@ const seo: WebpAJpgLocaleContent['seo'] = [
|
|
|
168
169
|
},
|
|
169
170
|
];
|
|
170
171
|
|
|
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: 'en',
|
|
180
|
-
};
|
|
181
|
-
|
|
182
172
|
export const content: WebpAJpgLocaleContent = {
|
|
183
173
|
slug,
|
|
184
174
|
title,
|
|
@@ -188,5 +178,11 @@ export const content: WebpAJpgLocaleContent = {
|
|
|
188
178
|
faq,
|
|
189
179
|
bibliography,
|
|
190
180
|
howTo,
|
|
191
|
-
schemas:
|
|
181
|
+
schemas: generateSchemas({
|
|
182
|
+
title,
|
|
183
|
+
description,
|
|
184
|
+
inLanguage: 'en',
|
|
185
|
+
faq,
|
|
186
|
+
howTo,
|
|
187
|
+
}),
|
|
192
188
|
};
|
|
@@ -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
|
};
|