@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-to-webp-converter';
|
|
6
|
+
const title = '在线免费将 JPG 转换为 WebP';
|
|
7
|
+
const description =
|
|
8
|
+
'在浏览器中将 JPG 图像转换为 WebP。卓越的压缩率,无明显画质损失。无需上传文件。免费、无限制且私密。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: '拖拽 JPG 文件...',
|
|
12
|
+
convertText: '立即将它们转换为 WebP',
|
|
13
|
+
selectFiles: '选择文件',
|
|
14
|
+
processedFiles: '已处理文件',
|
|
15
|
+
downloadAll: '下载全部 (.zip)',
|
|
16
|
+
pending: '等待中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: '常见问题',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: JpgAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '为什么要将 JPG 照片转换为 WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'WebP 可以在肉眼无法察觉差异的情况下, 实现比传统 JPG 文件更好的压缩效果, 从而使网站加载更快、更现代。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '我需要按图片付费吗?',
|
|
29
|
+
answer:
|
|
30
|
+
'不需要, 该工具是免费的, 所有操作都在您的电脑上直接完成。无论是家庭还是专业用途, 都没有限制。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '转换过程安全吗?',
|
|
34
|
+
answer:
|
|
35
|
+
'是的, 完全安全。所有处理都在您本地浏览器的 HTML5 Canvas 中完成, 不会向外部服务器发送任何数据。',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: '拖入您的 JPG 照片',
|
|
42
|
+
text: '将您的 JPG 文件直接拖放到上方区域。检测是即时的。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: '处理为 WebP',
|
|
46
|
+
text: '本地渲染引擎会将每个图像文件转换为专门为网页优化的高质量 WebP 格式。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '下载结果',
|
|
50
|
+
text: '您可以单独保存每个 WebP 文件, 也可以下载包含所有已转换文件的 ZIP 压缩包。',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Google WebP 压缩研究',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/docs/webp_study',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Web.dev: 使用现代格式提供图像',
|
|
61
|
+
url: 'https://web.dev/uses-webp-images/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'JPG 转 WebP 转换器: 使用 Google 的现代格式加速您的网站',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>JPG</strong> 格式在数字摄影领域占据统治地位已有数十年——兼容性极佳且获得广泛支持。但 Google 设计了 <strong>WebP</strong> 格式来在相同画质下挑战 JPG: 在相同视觉质量的前提下, 文件大小可减少 25–35%。对于致力于解决网页加载缓慢问题的开发人员和营销团队来说, 将 JPG 转换为 WebP 是在不改变设计的前提下, 投资回报率最高的一项优化措施。',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG 还是 WebP?何时使用各格式',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '当您需要极致的通用兼容性时, <strong>JPG</strong> 仍然是正确的选择: 例如发送给客户的电子邮件、Word 文档、旧版社交媒体平台或尚未接受 WebP 的 CMS 系统。它长达三十年的生态系统保证了任何屏幕、打印机或查看器都能无缝打开它。其主要缺点是体积——1.5 MB 的首屏 JPG 图片可能会降低页面的 LCP 评分, 从而无法达到 Core Web Vitals 的标准。',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '对于网站上的所有内容, <strong>WebP</strong> 都是明智之选。Chrome、Firefox、Safari 和 Edge 已经原生支持它多年。电子商务中的产品图片、博客横幅、视频缩略图以及在网上发布的任何照片都能直接获益: 网页更轻量, Google PageSpeed Insights 评分更高, 并且在移动端慢速网络下提供更顺畅的用户体验。',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: '对比: 本地转换 vs 云端转换',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: '云端转换器',
|
|
98
|
+
description: '将您的文件上传到远程服务器的工具。',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'上传和下载时的网络延迟',
|
|
103
|
+
'您的照片存储在第三方服务器上',
|
|
104
|
+
'文件大小限制和每日转换配额限制',
|
|
105
|
+
'干扰性广告和第三方追踪器',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '我们的本地架构',
|
|
110
|
+
description: '使用 Vanilla JS 技术直接在您的硬件上进行处理。',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'即时处理——零网络延迟',
|
|
115
|
+
'完全私密——数据向外发送量为 0 字节',
|
|
116
|
+
'没有 MB 限制或文件数量限制',
|
|
117
|
+
'界面简洁, 无广告或追踪',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '技术原理',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '当您将 JPG 拖入工具时, 浏览器会创建一个仅存在于 RAM 中的 <strong>Blob 对象</strong>。该 Blob 会被解码并绘制到不可见的 <strong>HTML5 Canvas</strong> 元素中。由于 JPG 不含透明通道, 转换过程非常直接: 引擎通过调用 <code>toDataURL(\'image/webp\')</code> 导出画布, 生成一组由您的操作系统即时下载的字节流——整个过程完全不涉及服务器。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'WebP 压缩算法结合了块预测技术 (类似于 Google VP8 视频编解码器中的技术) 以及色彩转换和算术编码。其结果是生成的文件包含与原始 JPG 相同的视觉感知信息, 但封装效率要高得多——这意味着每次页面访问时传输的千字节更少。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Core Web Vitals 提示: LCP 与图像重量',
|
|
138
|
+
html: '<strong>最大内容绘画 (LCP)</strong> 是 Google 衡量网页上最大视觉元素加载速度的指标。一个 1.5 MB 的首屏 JPG 可以在没有视觉差异的情况下转换成仅 900 KB (甚至 600 KB) 的 WebP。这 <strong>25–35% 的空间节省</strong> 可以让您的 LCP 评分从“需要改进”变为“良好”, 并提升搜索排名。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '应用场景与兼容性',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'WooCommerce 或 Shopify 店铺的产品图片: 体积更小, 转化率更高。',
|
|
150
|
+
'博客和文章摄影: 无需重新设计即可获得更好的 PageSpeed 评分。',
|
|
151
|
+
'网页横幅和显示广告素材: 文件更轻量, 同时保持同样的清晰度。',
|
|
152
|
+
'建筑、摄影或设计工作室的排版画廊。',
|
|
153
|
+
'视频流媒体网站或在线课程平台上的视频缩略图。',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '总结',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '将您的 JPG 转换为 WebP 是当今任何网站能采用的最简单、最经济的优化措施之一。使用此工具, 您可以在几秒钟内免费完成, 且您的图像永远不会离开您的设备。更少的千字节, 更好的 LCP, 更快的网页——而这一切都建立在您已经拥有的完全相同的视觉效果之上。',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: JpgAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -16,6 +16,18 @@ export const jpgAWebp: 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,183 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { PngAIcoLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'png-zu-ico-konverter';
|
|
6
|
+
const title = 'PNG zu ICO Konverter Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertieren Sie PNG in ICO mit echten Binär-Headern. Transparenzen bleiben erhalten. Keine Dateiuploads. Kostenlos und zu 100 % privat.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'PNG-Dateien hierher ziehen...',
|
|
12
|
+
convertText: 'Um sie sofort in ICO 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: PngAIcoLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Ist Ihr Konverter ein Ersteller von getarnten PNGs oder echtem ICO?',
|
|
24
|
+
answer:
|
|
25
|
+
'Wir erstellen ein echtes ICO. Wir extrahieren die Daten aus Ihrer PNG, erstellen den standardisierten Microsoft-Hexadezimal-Header (Header + Verzeichnis von 22 Byte), skalieren lokal auf das ideale quadratische Format und stellen eine finale Datei zusammen, die als nativ validiert ist.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Bleiben Transparenzen erhalten, wenn mein Logo im Icon platziert wird?',
|
|
29
|
+
answer:
|
|
30
|
+
'Absolut ja. Unsere Engine liest Ihre PNG mit 32 Bit und verankert sie, wobei alle transparenten Bereiche präzise erhalten bleiben, damit sie in der universellen Adressleiste des Browsers (Favicon) perfekt zur Geltung kommen.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Wird mein Firmenlogo auf Ihren Servern gespeichert?',
|
|
34
|
+
answer:
|
|
35
|
+
'Dieser Dienst garantiert null Kontakt zu externen Netzwerken. Der Konverter arbeitet verankert in Ihrem internen HTML5 Canvas; die Erstellung Ihres Icons findet zu einhundert Prozent auf Ihrem Rechner im rein lokalen Speicher statt.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: PngAIcoLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Dateien zum Übertragen ziehen',
|
|
42
|
+
text: 'Platzieren Sie Ihre Bildmatrizen (quadratische 512x512 PNGs sind ideal) im interaktiven lokalen Rahmen.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Automatische Bytecode-Kompilierung',
|
|
46
|
+
text: 'Sie werden sehen, wie der Balken intern läuft, während die lokale Matrix der gereinigten ICO-Hexadezimal-Header geladen und erstellt wird.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'ZIP sammeln oder mitnehmen',
|
|
50
|
+
text: 'Laden Sie sie herunter, indem Sie auf eine Sammel-Zusammenstellung für Ihre Websites klicken (globale ZIP-Buttons) oder laden Sie das Vorschaubild für die ausführbare Datei in Windows herunter.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: PngAIcoLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Microsoft ICO Format Technische Struktur',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Favicon Standard - W3C',
|
|
61
|
+
url: 'https://www.w3.org/2005/10/howto-favicon',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: PngAIcoLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'PNG zu ICO Konverter: Die beste Quelle für Favicons mit perfekter Transparenz',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>PNG mit Transparenz</strong> ist das ideale Ausgangsmaterial für die Erstellung professioneller ICO-Icons. Im Gegensatz zu JPG (das keinen Alpha-Kanal besitzt) oder verlustbehafteten Formaten bietet PNG genau das, was das ICO-Format benötigt: gestochen scharfe Pixel, saubere Kanten und einen 32-Bit-Alpha-Kanal, mit dem sich das Icon perfekt in jeden Hintergrund integrieren lässt – egal ob in die weiße Lesezeichenleiste von Safari, die dunkle Leiste von Firefox oder den Desktop von Windows 11.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'PNG oder ICO? Wann welches Format zu verwenden ist',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>PNG</strong> ist das Arbeitsformat: Hier entwerfen Sie Ihr Logo, exportieren aus Figma oder Illustrator und speichern Ihre bearbeitbaren Versionen. Seine Transparenz, Pixelpräzision und verlustfreie Kompression machen es unschlagbar für den Designprozess. Aber Browser, Betriebssysteme und Windows-Anwendungen, die nach einem Favicon oder App-Icon suchen, akzeptieren PNG nicht direkt – sie benötigen das ICO-Format.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>ICO</strong> ist das Verteilungsformat für Symbole in Microsoft-Umgebungen und im Web. Es enthält eine spezifische binäre Struktur, die es ermöglicht, mehrere Auflösungen in einer einzigen Datei zu bündeln: Der Browser liest das interne Verzeichnis der ICO-Datei und wählt automatisch <strong>16×16</strong> für den Browser-Tab, <strong>32×32</strong> für Verknüpfungen, <strong>48×48</strong> für den Datei-Explorer und <strong>256×256</strong> für Retina- und 4K-Bildschirme aus. Der Ausgangspunkt einer transparenten PNG garantiert, dass all diese Auflösungen perfekte Kanten ohne weißen Rand haben.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vergleich: Lokale vs Cloud Konvertierung',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Cloud Konverter',
|
|
98
|
+
description: 'Tools, die Ihre Dateien auf einen Remote-Server hochladen.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Netzwerklatenz beim Hoch- und Herunterladen',
|
|
103
|
+
'Ihr Firmenlogo wird auf Servern von Drittanbietern gespeichert',
|
|
104
|
+
'Dateigrößenlimits und tägliche Konvertierungsbeschränkungen',
|
|
105
|
+
'Aufdringliche Werbung und Drittanbieter-Tracker',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Unsere lokale Architektur',
|
|
110
|
+
description: 'Direkte Verarbeitung auf Ihrer Hardware mittels Vanilla JS-Technologie.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Sofortige Geschwindigkeit – keine Netzwerklatenz',
|
|
115
|
+
'Vollständige Privatsphäre – 0 Byte werden extern gesendet',
|
|
116
|
+
'Keine Megabyte-Limits oder Dateianzahlbeschränkungen',
|
|
117
|
+
'Saubere Benutzeroberfläche, keine Werbung oder Tracking',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Wie es technisch funktioniert',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Die PNG wird in einem im Speicher befindlichen <strong>HTML5 Canvas</strong> mit voller 32-Bit-Alpha-Kanal-Unterstützung dekodiert. Die Engine erstellt den Standard-Microsoft-ICO-Header mit der korrekten Magic Number (<code>00 00 01 00</code>), das Bildverzeichnis mit Abmessungen und Daten-Offset sowie die Pixeldaten unter Beibehaltung der Transparenzinformationen. Das Ergebnis ist eine echte binäre .ico-Datei, die von Windows, macOS und allen Browsern nativ erkannt wird.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Die Transparenz der PNG bleibt in der resultierenden ICO-Datei vollständig erhalten – transparente Pixel bleiben transparent, halbtransparente Pixel behalten ihren exakten Alpha-Wert und opake Pixel behalten ihre ursprüngliche Farbe. Dies ist entscheidend für Logos auf variablen Hintergründen: Ihr Favicon wird im Light Mode, im Dark Mode und bei jeder Kombination von Browser-Farben korrekt aussehen.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Tipp: Verwenden Sie eine 512×512 PNG als Quelle',
|
|
138
|
+
html: 'Für das bestmögliche Ergebnis verwenden Sie ein <strong>quadratisches 512×512 PNG-Bild</strong> als Quelle. Diese Auflösung gibt dem Konverter genügend Informationen, um alle Standard-ICO-Größen scharf zu generieren – vom 16×16 Favicon bis zum 256×256 Icon für hochauflösende Bildschirme – ohne Pixelbildung oder Verlust von Kantendetails. Je größer die Quell-PNG, desto besser wirken die kleinen Icon-Größen.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Anwendungsfälle und Kompatibilität',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Transparentes Favicon für Websites: Funktioniert in Chrome, Firefox, Safari, Edge und Internet Explorer.',
|
|
150
|
+
'Icon für PWA-Anwendungen: manifest.json verweist auf die ICO für die Desktop-Installation.',
|
|
151
|
+
'Anpassung von Windows 10/11-Ordnern mit Firmenlogo ohne weißen Hintergrund.',
|
|
152
|
+
'Verknüpfungssymbol für Desktop-Anwendungen, Installer und ausführbare Dateien.',
|
|
153
|
+
'Symbol für Browser-Erweiterungen für Chrome und Firefox.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Fazit',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'PNG mit Transparenz ist zweifellos der beste Ausgangspunkt für die Erstellung von ICO-Icons in Profiqualität. Mit diesem Tool erfolgt die Konvertierung sofort, Alpha-Kanäle bleiben vollständig erhalten und das Ergebnis ist eine echte ICO-Datei mit der korrekten binären Struktur. Kein Hochladen Ihres Logos auf einen Server, keine Wasserzeichen, keine Limits – und perfekte Transparenz in allen Größen.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
export const content: PngAIcoLocaleContent = {
|
|
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: 'de',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
183
|
+
};
|
|
@@ -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 { PngAIcoLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'png-to-ico-converter';
|
|
@@ -164,17 +164,6 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
164
164
|
},
|
|
165
165
|
];
|
|
166
166
|
|
|
167
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
168
|
-
'@context': 'https://schema.org',
|
|
169
|
-
'@type': 'SoftwareApplication',
|
|
170
|
-
name: title,
|
|
171
|
-
description,
|
|
172
|
-
applicationCategory: 'UtilitiesApplication',
|
|
173
|
-
operatingSystem: 'Web',
|
|
174
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
175
|
-
inLanguage: 'en',
|
|
176
|
-
};
|
|
177
|
-
|
|
178
167
|
export const content: PngAIcoLocaleContent = {
|
|
179
168
|
slug,
|
|
180
169
|
title,
|
|
@@ -184,5 +173,11 @@ export const content: PngAIcoLocaleContent = {
|
|
|
184
173
|
faq,
|
|
185
174
|
bibliography,
|
|
186
175
|
howTo,
|
|
187
|
-
schemas:
|
|
176
|
+
schemas: generateSchemas({
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
inLanguage: 'en',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
188
183
|
};
|
|
@@ -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 { PngAIcoLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertidor-png-a-ico';
|
|
@@ -14,7 +14,7 @@ const ui: ImageConverterUI = {
|
|
|
14
14
|
processedFiles: 'Archivos procesados',
|
|
15
15
|
downloadAll: 'Descargar Todo (.zip)',
|
|
16
16
|
pending: 'Pendiente',
|
|
17
|
-
bibliographyTitle: 'Referencias
|
|
17
|
+
bibliographyTitle: 'Referencias Bibliográfica',
|
|
18
18
|
faqTitle: 'Preguntas Frecuentes',
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -83,7 +83,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
type: 'paragraph',
|
|
86
|
-
html: 'El <strong>ICO</strong> es el formato de distribución para iconos en entornos Microsoft y web. Contiene una estructura binaria específica que permite empaquetar múltiples resoluciones en un solo archivo: el navegador lee el directorio interno del ICO
|
|
86
|
+
html: 'El <strong>ICO</strong> es el formato de distribución para iconos en entornos Microsoft y web. Contiene una estructura binaria específica que permite empaquetar múltiples resoluciones en un solo archivo: el navegador lee el directorio interno del ICO und selecciona automáticamente <strong>16×16</strong> para la pestaña del navegador, <strong>32×32</strong> para accesos directos, <strong>48×48</strong> para el explorador de archivos und <strong>256×256</strong> para pantallas Retina und 4K. Partir de un PNG con transparencia garantiza que todas esas resoluciones tendrán bordes perfectos sin fleco blanco.',
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
type: 'title',
|
|
@@ -99,10 +99,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
99
99
|
icon: 'mdi:cloud-upload',
|
|
100
100
|
pointIcon: 'mdi:close-circle-outline',
|
|
101
101
|
points: [
|
|
102
|
-
'Latencia de red en upload
|
|
102
|
+
'Latencia de red en upload und download',
|
|
103
103
|
'Tu logo corporativo queda en servidores ajenos',
|
|
104
|
-
'Límites de tamaño
|
|
105
|
-
'Publicidad intrusiva
|
|
104
|
+
'Límites de tamaño und conversiones diarias',
|
|
105
|
+
'Publicidad intrusiva und rastreadores de terceros',
|
|
106
106
|
],
|
|
107
107
|
},
|
|
108
108
|
{
|
|
@@ -126,11 +126,11 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: 'El PNG se decodifica en un <strong>Canvas HTML5</strong> en memoria con soporte completo del canal alfa de 32 bits. El motor construye la cabecera ICO estándar de Microsoft con el número mágico correcto (<code>00 00 01 00</code>), el directorio de imágenes con las dimensiones
|
|
129
|
+
html: 'El PNG se decodifica en un <strong>Canvas HTML5</strong> en memoria con soporte completo del canal alfa de 32 bits. El motor construye la cabecera ICO estándar de Microsoft con el número mágico correcto (<code>00 00 01 00</code>), el directorio de imágenes con las dimensiones und el offset de datos, und los píxeles codificados manteniendo la información de transparencia. El resultado es un archivo .ico binario genuino que Windows, macOS und todos los navegadores reconocen de forma nativa.',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'paragraph',
|
|
133
|
-
html: 'La transparencia del PNG se preserva de forma completa en el ICO resultante — los píxeles transparentes siguen siendo transparentes, los semitransparentes mantienen su valor alfa exacto
|
|
133
|
+
html: 'La transparencia del PNG se preserva de forma completa en el ICO resultante — los píxeles transparentes siguen siendo transparentes, los semitransparentes mantienen su valor alfa exacto und los opacos conservan su color original. Esto es crítico para logos sobre fondos variables: tu favicon se verá correctamente en modo claro, modo oscuro und cualquier combinación de colores de la interfaz del navegador.',
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
type: 'tip',
|
|
@@ -139,7 +139,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
type: 'title',
|
|
142
|
-
text: 'Casos de uso
|
|
142
|
+
text: 'Casos de uso und compatibilidad',
|
|
143
143
|
level: 3,
|
|
144
144
|
},
|
|
145
145
|
{
|
|
@@ -149,8 +149,8 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
149
149
|
'Favicon con transparencia para sitios web: funciona en Chrome, Firefox, Safari, Edge e Internet Explorer.',
|
|
150
150
|
'Icono de aplicación PWA: el manifest.json referencia el ICO para la instalación en escritorio.',
|
|
151
151
|
'Personalización de carpetas en Windows 10/11 con logo corporativo sin fondo blanco.',
|
|
152
|
-
'Icono de acceso directo para aplicaciones de escritorio, instaladores
|
|
153
|
-
'Icono de extensiones de navegador Chrome
|
|
152
|
+
'Icono de acceso directo para aplicaciones de escritorio, instaladores und ejecutables.',
|
|
153
|
+
'Icono de extensiones de navegador Chrome und Firefox.',
|
|
154
154
|
],
|
|
155
155
|
},
|
|
156
156
|
{
|
|
@@ -160,21 +160,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
162
|
type: 'paragraph',
|
|
163
|
-
html: 'El PNG con transparencia es, sin duda, el mejor punto de partida para crear iconos ICO de calidad profesional. Con esta herramienta, la conversión es instantánea, los canales alfa se preservan íntegramente
|
|
163
|
+
html: 'El PNG con transparencia es, sin duda, el mejor punto de partida para crear iconos ICO de calidad profesional. Con esta herramienta, la conversión es instantánea, los canales alfa se preservan íntegramente und el archivo resultante es un ICO genuino con la estructura binaria correcta. Sin subir tu logo a ningún servidor, sin marcas de agua, sin límites — und con transparencia perfecta en todos los tamaños.',
|
|
164
164
|
},
|
|
165
165
|
];
|
|
166
166
|
|
|
167
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
168
|
-
'@context': 'https://schema.org',
|
|
169
|
-
'@type': 'SoftwareApplication',
|
|
170
|
-
name: title,
|
|
171
|
-
description,
|
|
172
|
-
applicationCategory: 'UtilitiesApplication',
|
|
173
|
-
operatingSystem: 'Web',
|
|
174
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
175
|
-
inLanguage: 'es',
|
|
176
|
-
};
|
|
177
|
-
|
|
178
167
|
export const content: PngAIcoLocaleContent = {
|
|
179
168
|
slug,
|
|
180
169
|
title,
|
|
@@ -184,5 +173,11 @@ export const content: PngAIcoLocaleContent = {
|
|
|
184
173
|
faq,
|
|
185
174
|
bibliography,
|
|
186
175
|
howTo,
|
|
187
|
-
schemas:
|
|
176
|
+
schemas: generateSchemas({
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
inLanguage: 'es',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
188
183
|
};
|
|
@@ -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 { PngAIcoLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertisseur-png-en-ico';
|
|
@@ -14,7 +14,7 @@ const ui: ImageConverterUI = {
|
|
|
14
14
|
processedFiles: 'Fichiers traités',
|
|
15
15
|
downloadAll: 'Tout télécharger (.zip)',
|
|
16
16
|
pending: 'En attente',
|
|
17
|
-
bibliographyTitle: 'Références
|
|
17
|
+
bibliographyTitle: 'Références Bibliographique',
|
|
18
18
|
faqTitle: 'Questions Fréquentes',
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -83,7 +83,7 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
type: 'paragraph',
|
|
86
|
-
html: 'L\'<strong>ICO</strong> est le format de distribution pour les icônes dans les environnements Microsoft
|
|
86
|
+
html: 'L\'<strong>ICO</strong> est le format de distribution pour les icônes dans les environnements Microsoft und le web. Il contient une structure binaire spécifique permettant de regrouper plusieurs résolutions dans un seul fichier : le navigateur lit le répertoire interne du fichier ICO und sélectionne automatiquement <strong>16×16</strong> pour l\'onglet du navigateur, <strong>32×32</strong> pour les raccourcis, <strong>48×48</strong> pour l\'explorateur de fichiers und <strong>256×256</strong> pour les écrans Retina und 4K. Partir d\'un PNG transparent garantit que toutes ces résolutions auront des bords parfaits sans liseré blanc.',
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
type: 'title',
|
|
@@ -99,10 +99,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
99
99
|
icon: 'mdi:cloud-upload',
|
|
100
100
|
pointIcon: 'mdi:close-circle-outline',
|
|
101
101
|
points: [
|
|
102
|
-
'Latence réseau à l\'envoi
|
|
102
|
+
'Latence réseau à l\'envoi und au téléchargement',
|
|
103
103
|
'Votre logo d\'entreprise stocké sur des serveurs tiers',
|
|
104
|
-
'Limites de taille
|
|
105
|
-
'Publicités intrusives
|
|
104
|
+
'Limites de taille und quota quotidien de conversions',
|
|
105
|
+
'Publicités intrusives und traceurs tiers',
|
|
106
106
|
],
|
|
107
107
|
},
|
|
108
108
|
{
|
|
@@ -126,11 +126,11 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
type: 'paragraph',
|
|
129
|
-
html: 'Le PNG est décodé dans un <strong>Canvas HTML5</strong> en mémoire avec une prise en charge complète du canal alpha 32 bits. Le moteur construit l\'en-tête ICO standard de Microsoft avec le bon nombre magique (<code>00 00 01 00</code>), le répertoire d\'images avec les dimensions
|
|
129
|
+
html: 'Le PNG est décodé dans un <strong>Canvas HTML5</strong> en mémoire avec une prise en charge complète du canal alpha 32 bits. Le moteur construit l\'en-tête ICO standard de Microsoft avec le bon nombre magique (<code>00 00 01 00</code>), le répertoire d\'images avec les dimensions und le décalage des données, und les données de pixels tout en maintenant les informations de transparence. Le résultat est un vrai fichier binaire .ico reconnu nativement par Windows, macOS und tous les navigateurs.',
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'paragraph',
|
|
133
|
-
html: 'La transparence du PNG est entièrement préservée dans l\'ICO résultant — les pixels transparents restent transparents, les pixels semi-transparents conservent leur valeur alpha exacte
|
|
133
|
+
html: 'La transparence du PNG est entièrement préservée dans l\'ICO résultant — les pixels transparents restent transparents, les pixels semi-transparents conservent leur valeur alpha exacte und les pixels opaques gardent leur couleur d\'origine. C\'est crucial pour les logos sur des fonds variables : votre favicon s\'affichera correctement en mode clair, mode sombre und dans toute combinaison de couleurs de l\'interface du navigateur.',
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
type: 'tip',
|
|
@@ -139,18 +139,18 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
type: 'title',
|
|
142
|
-
text: 'Cas d\'usage
|
|
142
|
+
text: 'Cas d\'usage und compatibilité',
|
|
143
143
|
level: 3,
|
|
144
144
|
},
|
|
145
145
|
{
|
|
146
146
|
type: 'list',
|
|
147
147
|
icon: 'mdi:check-circle',
|
|
148
148
|
items: [
|
|
149
|
-
'Favicon transparent pour sites web : fonctionne dans Chrome, Firefox, Safari, Edge
|
|
149
|
+
'Favicon transparent pour sites web : fonctionne dans Chrome, Firefox, Safari, Edge e Internet Explorer.',
|
|
150
150
|
'Icône d\'application PWA : le manifest.json référence l\'ICO pour l\'installation sur bureau.',
|
|
151
151
|
'Personnalisation de dossiers Windows 10/11 avec logo d\'entreprise sans fond blanc.',
|
|
152
|
-
'Icône de raccourci pour applications de bureau, installateurs
|
|
153
|
-
'Icône d\'extension navigateur pour les extensions Chrome
|
|
152
|
+
'Icône de raccourci pour applications de bureau, installateurs und exécutables.',
|
|
153
|
+
'Icône d\'extension navigateur pour les extensions Chrome und Firefox.',
|
|
154
154
|
],
|
|
155
155
|
},
|
|
156
156
|
{
|
|
@@ -160,21 +160,10 @@ const seo: PngAIcoLocaleContent['seo'] = [
|
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
162
|
type: 'paragraph',
|
|
163
|
-
html: 'Le PNG avec transparence est sans conteste le meilleur point de départ pour créer des icônes ICO de qualité professionnelle. Avec cet outil, la conversion est instantanée, les canaux alpha sont entièrement préservés
|
|
163
|
+
html: 'Le PNG avec transparence est sans conteste le meilleur point de départ pour créer des icônes ICO de qualité professionnelle. Avec cet outil, la conversion est instantanée, les canaux alpha sont entièrement préservés und le fichier résultant est un vrai ICO avec la structure binaire correcte. Sans envoyer votre logo sur aucun serveur, sans filigrane, sans limites — und avec une transparence parfaite à toutes les tailles.',
|
|
164
164
|
},
|
|
165
165
|
];
|
|
166
166
|
|
|
167
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
168
|
-
'@context': 'https://schema.org',
|
|
169
|
-
'@type': 'SoftwareApplication',
|
|
170
|
-
name: title,
|
|
171
|
-
description,
|
|
172
|
-
applicationCategory: 'UtilitiesApplication',
|
|
173
|
-
operatingSystem: 'Web',
|
|
174
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
175
|
-
inLanguage: 'fr',
|
|
176
|
-
};
|
|
177
|
-
|
|
178
167
|
export const content: PngAIcoLocaleContent = {
|
|
179
168
|
slug,
|
|
180
169
|
title,
|
|
@@ -184,5 +173,11 @@ export const content: PngAIcoLocaleContent = {
|
|
|
184
173
|
faq,
|
|
185
174
|
bibliography,
|
|
186
175
|
howTo,
|
|
187
|
-
schemas:
|
|
176
|
+
schemas: generateSchemas({
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
inLanguage: 'fr',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
188
183
|
};
|