@jjlmoya/utils-converters 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +60 -59
- package/src/shared/logic/schemas.ts +57 -0
- package/src/tests/faq_count.test.ts +13 -4
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +1 -1
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/avifAJpg/i18n/de.ts +178 -0
- package/src/tool/avifAJpg/i18n/en.ts +2 -12
- package/src/tool/avifAJpg/i18n/es.ts +2 -12
- package/src/tool/avifAJpg/i18n/fr.ts +2 -12
- package/src/tool/avifAJpg/i18n/id.ts +178 -0
- package/src/tool/avifAJpg/i18n/it.ts +178 -0
- package/src/tool/avifAJpg/i18n/ja.ts +178 -0
- package/src/tool/avifAJpg/i18n/ko.ts +178 -0
- package/src/tool/avifAJpg/i18n/nl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pt.ts +178 -0
- package/src/tool/avifAJpg/i18n/ru.ts +178 -0
- package/src/tool/avifAJpg/i18n/sv.ts +178 -0
- package/src/tool/avifAJpg/i18n/tr.ts +178 -0
- package/src/tool/avifAJpg/i18n/zh.ts +178 -0
- package/src/tool/avifAJpg/index.ts +13 -1
- package/src/tool/avifAPng/i18n/de.ts +178 -0
- package/src/tool/avifAPng/i18n/en.ts +2 -12
- package/src/tool/avifAPng/i18n/es.ts +2 -12
- package/src/tool/avifAPng/i18n/fr.ts +2 -12
- package/src/tool/avifAPng/i18n/id.ts +178 -0
- package/src/tool/avifAPng/i18n/it.ts +178 -0
- package/src/tool/avifAPng/i18n/ja.ts +178 -0
- package/src/tool/avifAPng/i18n/ko.ts +178 -0
- package/src/tool/avifAPng/i18n/nl.ts +178 -0
- package/src/tool/avifAPng/i18n/pl.ts +178 -0
- package/src/tool/avifAPng/i18n/pt.ts +178 -0
- package/src/tool/avifAPng/i18n/ru.ts +178 -0
- package/src/tool/avifAPng/i18n/sv.ts +178 -0
- package/src/tool/avifAPng/i18n/tr.ts +178 -0
- package/src/tool/avifAPng/i18n/zh.ts +178 -0
- package/src/tool/avifAPng/index.ts +13 -1
- package/src/tool/avifAWebp/i18n/de.ts +178 -0
- package/src/tool/avifAWebp/i18n/en.ts +2 -12
- package/src/tool/avifAWebp/i18n/es.ts +2 -12
- package/src/tool/avifAWebp/i18n/fr.ts +2 -12
- package/src/tool/avifAWebp/i18n/id.ts +178 -0
- package/src/tool/avifAWebp/i18n/it.ts +178 -0
- package/src/tool/avifAWebp/i18n/ja.ts +178 -0
- package/src/tool/avifAWebp/i18n/ko.ts +178 -0
- package/src/tool/avifAWebp/i18n/nl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pt.ts +178 -0
- package/src/tool/avifAWebp/i18n/ru.ts +178 -0
- package/src/tool/avifAWebp/i18n/sv.ts +178 -0
- package/src/tool/avifAWebp/i18n/tr.ts +178 -0
- package/src/tool/avifAWebp/i18n/zh.ts +178 -0
- package/src/tool/avifAWebp/index.ts +13 -1
- package/src/tool/bmpAJpg/i18n/de.ts +178 -0
- package/src/tool/bmpAJpg/i18n/en.ts +2 -12
- package/src/tool/bmpAJpg/i18n/es.ts +2 -12
- package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
- package/src/tool/bmpAJpg/i18n/id.ts +178 -0
- package/src/tool/bmpAJpg/i18n/it.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
- package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
- package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
- package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
- package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
- package/src/tool/bmpAJpg/index.ts +13 -1
- package/src/tool/bmpAPng/i18n/de.ts +177 -0
- package/src/tool/bmpAPng/i18n/en.ts +2 -12
- package/src/tool/bmpAPng/i18n/es.ts +2 -12
- package/src/tool/bmpAPng/i18n/fr.ts +2 -12
- package/src/tool/bmpAPng/i18n/id.ts +177 -0
- package/src/tool/bmpAPng/i18n/it.ts +177 -0
- package/src/tool/bmpAPng/i18n/ja.ts +177 -0
- package/src/tool/bmpAPng/i18n/ko.ts +177 -0
- package/src/tool/bmpAPng/i18n/nl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pt.ts +177 -0
- package/src/tool/bmpAPng/i18n/ru.ts +177 -0
- package/src/tool/bmpAPng/i18n/sv.ts +177 -0
- package/src/tool/bmpAPng/i18n/tr.ts +177 -0
- package/src/tool/bmpAPng/i18n/zh.ts +177 -0
- package/src/tool/bmpAPng/index.ts +13 -1
- package/src/tool/bmpAWebp/i18n/de.ts +178 -0
- package/src/tool/bmpAWebp/i18n/en.ts +2 -12
- package/src/tool/bmpAWebp/i18n/es.ts +2 -12
- package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
- package/src/tool/bmpAWebp/i18n/id.ts +178 -0
- package/src/tool/bmpAWebp/i18n/it.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
- package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
- package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
- package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
- package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
- package/src/tool/bmpAWebp/index.ts +13 -1
- package/src/tool/gifAJpg/i18n/de.ts +178 -0
- package/src/tool/gifAJpg/i18n/en.ts +2 -12
- package/src/tool/gifAJpg/i18n/es.ts +2 -12
- package/src/tool/gifAJpg/i18n/fr.ts +2 -12
- package/src/tool/gifAJpg/i18n/id.ts +178 -0
- package/src/tool/gifAJpg/i18n/it.ts +178 -0
- package/src/tool/gifAJpg/i18n/ja.ts +178 -0
- package/src/tool/gifAJpg/i18n/ko.ts +178 -0
- package/src/tool/gifAJpg/i18n/nl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pt.ts +178 -0
- package/src/tool/gifAJpg/i18n/ru.ts +178 -0
- package/src/tool/gifAJpg/i18n/sv.ts +178 -0
- package/src/tool/gifAJpg/i18n/tr.ts +178 -0
- package/src/tool/gifAJpg/i18n/zh.ts +178 -0
- package/src/tool/gifAJpg/index.ts +13 -1
- package/src/tool/gifAPng/i18n/de.ts +178 -0
- package/src/tool/gifAPng/i18n/en.ts +2 -12
- package/src/tool/gifAPng/i18n/es.ts +2 -12
- package/src/tool/gifAPng/i18n/fr.ts +2 -12
- package/src/tool/gifAPng/i18n/id.ts +178 -0
- package/src/tool/gifAPng/i18n/it.ts +178 -0
- package/src/tool/gifAPng/i18n/ja.ts +178 -0
- package/src/tool/gifAPng/i18n/ko.ts +178 -0
- package/src/tool/gifAPng/i18n/nl.ts +178 -0
- package/src/tool/gifAPng/i18n/pl.ts +178 -0
- package/src/tool/gifAPng/i18n/pt.ts +178 -0
- package/src/tool/gifAPng/i18n/ru.ts +178 -0
- package/src/tool/gifAPng/i18n/sv.ts +178 -0
- package/src/tool/gifAPng/i18n/tr.ts +178 -0
- package/src/tool/gifAPng/i18n/zh.ts +178 -0
- package/src/tool/gifAPng/index.ts +12 -0
- package/src/tool/gifAWebp/i18n/de.ts +178 -0
- package/src/tool/gifAWebp/i18n/en.ts +2 -12
- package/src/tool/gifAWebp/i18n/es.ts +2 -12
- package/src/tool/gifAWebp/i18n/fr.ts +2 -12
- package/src/tool/gifAWebp/i18n/id.ts +178 -0
- package/src/tool/gifAWebp/i18n/it.ts +178 -0
- package/src/tool/gifAWebp/i18n/ja.ts +178 -0
- package/src/tool/gifAWebp/i18n/ko.ts +178 -0
- package/src/tool/gifAWebp/i18n/nl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pt.ts +178 -0
- package/src/tool/gifAWebp/i18n/ru.ts +178 -0
- package/src/tool/gifAWebp/i18n/sv.ts +178 -0
- package/src/tool/gifAWebp/i18n/tr.ts +178 -0
- package/src/tool/gifAWebp/i18n/zh.ts +178 -0
- package/src/tool/gifAWebp/index.ts +12 -0
- package/src/tool/imagenBase64/i18n/de.ts +168 -0
- package/src/tool/imagenBase64/i18n/en.ts +2 -12
- package/src/tool/imagenBase64/i18n/es.ts +2 -12
- package/src/tool/imagenBase64/i18n/fr.ts +2 -12
- package/src/tool/imagenBase64/i18n/id.ts +168 -0
- package/src/tool/imagenBase64/i18n/it.ts +168 -0
- package/src/tool/imagenBase64/i18n/ja.ts +168 -0
- package/src/tool/imagenBase64/i18n/ko.ts +168 -0
- package/src/tool/imagenBase64/i18n/nl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pt.ts +173 -0
- package/src/tool/imagenBase64/i18n/ru.ts +168 -0
- package/src/tool/imagenBase64/i18n/sv.ts +168 -0
- package/src/tool/imagenBase64/i18n/tr.ts +168 -0
- package/src/tool/imagenBase64/i18n/zh.ts +168 -0
- package/src/tool/imagenBase64/index.ts +12 -0
- package/src/tool/jpgAIco/i18n/de.ts +183 -0
- package/src/tool/jpgAIco/i18n/en.ts +8 -13
- package/src/tool/jpgAIco/i18n/es.ts +13 -18
- package/src/tool/jpgAIco/i18n/fr.ts +9 -14
- package/src/tool/jpgAIco/i18n/id.ts +183 -0
- package/src/tool/jpgAIco/i18n/it.ts +183 -0
- package/src/tool/jpgAIco/i18n/ja.ts +183 -0
- package/src/tool/jpgAIco/i18n/ko.ts +183 -0
- package/src/tool/jpgAIco/i18n/nl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pt.ts +183 -0
- package/src/tool/jpgAIco/i18n/ru.ts +183 -0
- package/src/tool/jpgAIco/i18n/sv.ts +183 -0
- package/src/tool/jpgAIco/i18n/tr.ts +183 -0
- package/src/tool/jpgAIco/i18n/zh.ts +183 -0
- package/src/tool/jpgAIco/index.ts +12 -0
- package/src/tool/jpgAPng/i18n/de.ts +178 -0
- package/src/tool/jpgAPng/i18n/en.ts +2 -12
- package/src/tool/jpgAPng/i18n/es.ts +2 -12
- package/src/tool/jpgAPng/i18n/fr.ts +2 -12
- package/src/tool/jpgAPng/i18n/id.ts +178 -0
- package/src/tool/jpgAPng/i18n/it.ts +178 -0
- package/src/tool/jpgAPng/i18n/ja.ts +178 -0
- package/src/tool/jpgAPng/i18n/ko.ts +178 -0
- package/src/tool/jpgAPng/i18n/nl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pt.ts +178 -0
- package/src/tool/jpgAPng/i18n/ru.ts +178 -0
- package/src/tool/jpgAPng/i18n/sv.ts +178 -0
- package/src/tool/jpgAPng/i18n/tr.ts +178 -0
- package/src/tool/jpgAPng/i18n/zh.ts +178 -0
- package/src/tool/jpgAPng/index.ts +13 -1
- package/src/tool/jpgAWebp/i18n/de.ts +178 -0
- package/src/tool/jpgAWebp/i18n/en.ts +2 -12
- package/src/tool/jpgAWebp/i18n/es.ts +2 -12
- package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
- package/src/tool/jpgAWebp/i18n/id.ts +178 -0
- package/src/tool/jpgAWebp/i18n/it.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
- package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
- package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
- package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
- package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
- package/src/tool/jpgAWebp/index.ts +12 -0
- package/src/tool/pngAIco/i18n/de.ts +183 -0
- package/src/tool/pngAIco/i18n/en.ts +8 -13
- package/src/tool/pngAIco/i18n/es.ts +19 -24
- package/src/tool/pngAIco/i18n/fr.ts +20 -25
- package/src/tool/pngAIco/i18n/id.ts +183 -0
- package/src/tool/pngAIco/i18n/it.ts +183 -0
- package/src/tool/pngAIco/i18n/ja.ts +183 -0
- package/src/tool/pngAIco/i18n/ko.ts +183 -0
- package/src/tool/pngAIco/i18n/nl.ts +183 -0
- package/src/tool/pngAIco/i18n/pl.ts +183 -0
- package/src/tool/pngAIco/i18n/pt.ts +183 -0
- package/src/tool/pngAIco/i18n/ru.ts +183 -0
- package/src/tool/pngAIco/i18n/sv.ts +183 -0
- package/src/tool/pngAIco/i18n/tr.ts +183 -0
- package/src/tool/pngAIco/i18n/zh.ts +183 -0
- package/src/tool/pngAIco/index.ts +12 -0
- package/src/tool/pngAJpg/i18n/de.ts +191 -0
- package/src/tool/pngAJpg/i18n/en.ts +2 -12
- package/src/tool/pngAJpg/i18n/es.ts +2 -12
- package/src/tool/pngAJpg/i18n/fr.ts +2 -12
- package/src/tool/pngAJpg/i18n/id.ts +191 -0
- package/src/tool/pngAJpg/i18n/it.ts +191 -0
- package/src/tool/pngAJpg/i18n/ja.ts +191 -0
- package/src/tool/pngAJpg/i18n/ko.ts +191 -0
- package/src/tool/pngAJpg/i18n/nl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pt.ts +191 -0
- package/src/tool/pngAJpg/i18n/ru.ts +191 -0
- package/src/tool/pngAJpg/i18n/sv.ts +191 -0
- package/src/tool/pngAJpg/i18n/tr.ts +191 -0
- package/src/tool/pngAJpg/i18n/zh.ts +191 -0
- package/src/tool/pngAJpg/index.ts +13 -1
- package/src/tool/pngAWebp/i18n/de.ts +182 -0
- package/src/tool/pngAWebp/i18n/en.ts +2 -12
- package/src/tool/pngAWebp/i18n/es.ts +2 -12
- package/src/tool/pngAWebp/i18n/fr.ts +2 -12
- package/src/tool/pngAWebp/i18n/id.ts +182 -0
- package/src/tool/pngAWebp/i18n/it.ts +182 -0
- package/src/tool/pngAWebp/i18n/ja.ts +182 -0
- package/src/tool/pngAWebp/i18n/ko.ts +182 -0
- package/src/tool/pngAWebp/i18n/nl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pt.ts +182 -0
- package/src/tool/pngAWebp/i18n/ru.ts +182 -0
- package/src/tool/pngAWebp/i18n/sv.ts +182 -0
- package/src/tool/pngAWebp/i18n/tr.ts +182 -0
- package/src/tool/pngAWebp/i18n/zh.ts +182 -0
- package/src/tool/pngAWebp/index.ts +12 -0
- package/src/tool/svgAJpg/i18n/de.ts +178 -0
- package/src/tool/svgAJpg/i18n/en.ts +8 -13
- package/src/tool/svgAJpg/i18n/es.ts +8 -13
- package/src/tool/svgAJpg/i18n/fr.ts +2 -12
- package/src/tool/svgAJpg/i18n/id.ts +178 -0
- package/src/tool/svgAJpg/i18n/it.ts +178 -0
- package/src/tool/svgAJpg/i18n/ja.ts +178 -0
- package/src/tool/svgAJpg/i18n/ko.ts +178 -0
- package/src/tool/svgAJpg/i18n/nl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pt.ts +178 -0
- package/src/tool/svgAJpg/i18n/ru.ts +178 -0
- package/src/tool/svgAJpg/i18n/sv.ts +178 -0
- package/src/tool/svgAJpg/i18n/tr.ts +178 -0
- package/src/tool/svgAJpg/i18n/zh.ts +178 -0
- package/src/tool/svgAJpg/index.ts +12 -0
- package/src/tool/svgAPng/i18n/de.ts +178 -0
- package/src/tool/svgAPng/i18n/en.ts +8 -13
- package/src/tool/svgAPng/i18n/es.ts +31 -36
- package/src/tool/svgAPng/i18n/fr.ts +2 -12
- package/src/tool/svgAPng/i18n/id.ts +178 -0
- package/src/tool/svgAPng/i18n/it.ts +178 -0
- package/src/tool/svgAPng/i18n/ja.ts +178 -0
- package/src/tool/svgAPng/i18n/ko.ts +178 -0
- package/src/tool/svgAPng/i18n/nl.ts +178 -0
- package/src/tool/svgAPng/i18n/pl.ts +178 -0
- package/src/tool/svgAPng/i18n/pt.ts +178 -0
- package/src/tool/svgAPng/i18n/ru.ts +178 -0
- package/src/tool/svgAPng/i18n/sv.ts +178 -0
- package/src/tool/svgAPng/i18n/tr.ts +178 -0
- package/src/tool/svgAPng/i18n/zh.ts +178 -0
- package/src/tool/svgAPng/index.ts +12 -0
- package/src/tool/webpAIco/i18n/de.ts +183 -0
- package/src/tool/webpAIco/i18n/en.ts +8 -13
- package/src/tool/webpAIco/i18n/es.ts +9 -14
- package/src/tool/webpAIco/i18n/fr.ts +11 -16
- package/src/tool/webpAIco/i18n/id.ts +183 -0
- package/src/tool/webpAIco/i18n/it.ts +183 -0
- package/src/tool/webpAIco/i18n/ja.ts +183 -0
- package/src/tool/webpAIco/i18n/ko.ts +183 -0
- package/src/tool/webpAIco/i18n/nl.ts +183 -0
- package/src/tool/webpAIco/i18n/pl.ts +183 -0
- package/src/tool/webpAIco/i18n/pt.ts +183 -0
- package/src/tool/webpAIco/i18n/ru.ts +183 -0
- package/src/tool/webpAIco/i18n/sv.ts +183 -0
- package/src/tool/webpAIco/i18n/tr.ts +183 -0
- package/src/tool/webpAIco/i18n/zh.ts +183 -0
- package/src/tool/webpAIco/index.ts +12 -0
- package/src/tool/webpAJpg/i18n/de.ts +187 -0
- package/src/tool/webpAJpg/i18n/en.ts +9 -13
- package/src/tool/webpAJpg/i18n/es.ts +37 -42
- package/src/tool/webpAJpg/i18n/fr.ts +35 -40
- package/src/tool/webpAJpg/i18n/id.ts +182 -0
- package/src/tool/webpAJpg/i18n/it.ts +182 -0
- package/src/tool/webpAJpg/i18n/ja.ts +182 -0
- package/src/tool/webpAJpg/i18n/ko.ts +182 -0
- package/src/tool/webpAJpg/i18n/nl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pt.ts +182 -0
- package/src/tool/webpAJpg/i18n/ru.ts +182 -0
- package/src/tool/webpAJpg/i18n/sv.ts +182 -0
- package/src/tool/webpAJpg/i18n/tr.ts +182 -0
- package/src/tool/webpAJpg/i18n/zh.ts +182 -0
- package/src/tool/webpAJpg/index.ts +12 -0
- package/src/tool/webpAPng/i18n/de.ts +182 -0
- package/src/tool/webpAPng/i18n/en.ts +8 -13
- package/src/tool/webpAPng/i18n/es.ts +35 -40
- package/src/tool/webpAPng/i18n/fr.ts +2 -12
- package/src/tool/webpAPng/i18n/id.ts +182 -0
- package/src/tool/webpAPng/i18n/it.ts +182 -0
- package/src/tool/webpAPng/i18n/ja.ts +182 -0
- package/src/tool/webpAPng/i18n/ko.ts +182 -0
- package/src/tool/webpAPng/i18n/nl.ts +182 -0
- package/src/tool/webpAPng/i18n/pl.ts +182 -0
- package/src/tool/webpAPng/i18n/pt.ts +182 -0
- package/src/tool/webpAPng/i18n/ru.ts +182 -0
- package/src/tool/webpAPng/i18n/sv.ts +182 -0
- package/src/tool/webpAPng/i18n/tr.ts +182 -0
- package/src/tool/webpAPng/i18n/zh.ts +182 -0
- package/src/tool/webpAPng/index.ts +12 -0
|
@@ -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-den-ico-ya-donusturucu';
|
|
6
|
+
const title = 'WebP\'yi ICO\'ya Dönüştürün';
|
|
7
|
+
const description =
|
|
8
|
+
'WebP görüntülerini şeffaflıkla beraber resmi ICO formatına dönüştürün. Dosya yüklemesi yok. Gerçek Microsoft ikili (binary) üstbilgileri. Ücretsiz ve özel.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'WebP dosyalarını sürükleyin...',
|
|
12
|
+
convertText: 'Onları anında ICO\'ya dönüştürmek için',
|
|
13
|
+
selectFiles: 'Dosyaları seçin',
|
|
14
|
+
processedFiles: 'İşlenmiş dosyalar',
|
|
15
|
+
downloadAll: 'Tümünü İndir (.zip)',
|
|
16
|
+
pending: 'Bekliyor',
|
|
17
|
+
bibliographyTitle: 'Bibliyografik Referanslar',
|
|
18
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: WebpAIcoLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'WebP çıkartma tasarımlarımı resmi bir web Favicon ICO\'suna dönüştürebilir miyim?',
|
|
24
|
+
answer:
|
|
25
|
+
'Kesinlikle. Favicon, aşırı evrensel uyumluluk için hala klasik Microsoft ICO uzantısını gerektirir. Bu araç, %100 meşru bir simge oluşturarak ikili (binary) üstbilgiler ekleyecektir.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Büyük kurumsal simge grubumu oluştururken çevrimiçi kuyruklarda beklemek zorunda mıyım?',
|
|
29
|
+
answer:
|
|
30
|
+
'Hiç de değil. Dönüştürücümüz Javascript\'i yükler ve her türlü yükleme ağını devre dışı bırakır. Kendi cihazınızın işlemcisi, yüz veya daha fazla fotoğrafı asenkron olarak işler.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Elde edilen ICO, orijinal WebP\'min şeffaflığını destekleyecek mi?',
|
|
34
|
+
answer:
|
|
35
|
+
'Evet. Motorumuz dahili olarak tam 32 bit destekli HTML5 canvas API ile çalışır, her şeffaf delik temiz bir şekilde ikonografik dosyaya aktarılır.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAIcoLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Tüm yerel WebP çıkartmalarınızı sürükleyin',
|
|
42
|
+
text: 'Web sınırı doygunluğu korkusu olmadan büyük fotoğraf gruplarını taşıyın.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Mantıksal asenkron çeviri ve doğrudan montaj',
|
|
46
|
+
text: 'Bellek bloğu kareden bayt bayt işlerken çubuğun ve öğelerin nasıl otomatik tamamlandığını hızla fark edin.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Sistem ve web geliştirme için paketinizi alın',
|
|
50
|
+
text: 'Ortak bir dosyada devasa bir indirilebilir düğmeye serbestçe tıklayın veya yalnızca birine ihtiyacınız varsa manuel olarak indirin.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAIcoLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'ICO Web Üstbilgisi Genel Dokümantasyonu',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Dokümantasyonu',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: WebpAIcoLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'WebP\'den ICO\'ya Dönüştürücü: Modern Varlıklarınızdan Kusursuz Faviconlar Oluşturun',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Modern web tasarım iş akışları <strong>WebP</strong> formatında varlıklar üretir: optimize edilmiş logolar, kullanıcı arayüzü simgeleri ve marka öğeleri. Ancak sitenizin <strong>favicon</strong>\'unu veya bir Windows masaüstü uygulaması için simgeleri yapılandırma zamanı geldiğinde, gerekli format hala <strong>ICO</strong>\'dur. WebP\'yi ICO\'ya dönüştürmek, orijinal kaynağı kaybetmeden yüksek kaliteli varlıklarınızı yeniden kullanmanıza olanak tanır.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'WebP mi ICO mu? Farklı Amaçlara Sahip Formatlar',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'WebP, fotoğraflar, illüstrasyonlar ve web kullanıcı arayüzü simgeleri için mükemmel olan genel amaçlı bir görüntü formatıdır. Verimli sıkıştırması, sayfa yüklemelerini hızlandırmak için idealdir. Ancak, işletim sistemlerinin ve tarayıcıların bir uygulama simgesini veya favicon\'u tanıması ve görüntülemesi için gereken spesifik ikili (binary) yapıdan yoksundur.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'ICO, ikonlar için özel olarak tasarlanmış bir Microsoft konteyner formatıdır. Tek bir dosyada birden fazla çözünürlüğü saklayabilir ve 32 bitlik bir alfa kanalı aracılığıyla tam şeffaflığı destekler. Tarayıcılar geleneksel olarak bir <code>favicon.ico</code> dosyası ararlar ve bu format, simgenizin hem standart ekranlarda hem de Retina ve 4K ekranlarda keskin görünmesini sağlar.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Karşılaştırma: Yerel ve Bulut Dönüştürme',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Bulut Dönüştürücüler',
|
|
98
|
+
description: 'Dosyalarınızı uzak bir sunucuya yükleyen araçlar.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Şirket logonuz üçüncü taraf sunuculara gider',
|
|
103
|
+
'Her dönüştürme için internet bağlantısı gerekir',
|
|
104
|
+
'Sunucuya bağlı olarak değişen çıktı kalitesi',
|
|
105
|
+
'Günlük dönüştürme sayısında sınırlar',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Yerel Mimarimiz',
|
|
110
|
+
description: 'Vanilla JS teknolojisini kullanarak doğrudan donanımınızda işleme.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Logonuz hiçbir zaman tarayıcınızdan ayrılmaz',
|
|
115
|
+
'Microsoft standardına göre oluşturulan ICO ikili üstbilgileri',
|
|
116
|
+
'32 bit şeffaflık tamamen korunur',
|
|
117
|
+
'Komple simge setlerinin toplu dönüştürülmesi',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Teknik Olarak Nasıl Çalışır',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Tarayıcı WebP dosyasını yerel olarak çözer ve orijinal alfa kanalını koruyarak 32 bit renk derinliğine sahip bir <strong>HTML5 Canvas</strong> üzerine çizer. JavaScript motorumuz daha sonra <code>getImageData()</code> yöntemiyle piksel verilerini çıkarır ve Microsoft standardı tarafından belirtilen ICONDIR ve ICONDIRENTRY üstbilgileriyle ICO ikili yapısını oluşturur.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Sonuç, basit bir dosya yeniden adlandırma değil, meşru bir ICO dosyasıdır. Piksel verileri, Windows, macOS ve tüm modern tarayıcıların bir favicon veya uygulama simgesi yüklerken beklediği doğru yapıyla paketlenir.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Keskin faviconlar için ipucu',
|
|
138
|
+
html: 'ICO\'nuzu her zaman mevcut olan en yüksek çözünürlüklü kaynaktan oluşturun. 512×512 veya daha büyük bir WebP, düşük çözünürlüklü simgelerin bulanık göründüğü Retina ve 4K ekranlarda mükemmel keskinlikte bir favicon üretecektir.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Kullanım Durumları ve Uyumluluk',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Herhangi bir web sitesi veya web uygulaması için favicon.ico dosyası oluşturma.',
|
|
150
|
+
'Windows yazılım yükleyicileri için uygulama simgeleri oluşturma.',
|
|
151
|
+
'Electron uygulamaları veya benzeri çerçeveler için masaüstü simgeleri üretme.',
|
|
152
|
+
'Chrome ve Firefox tarayıcı uzantıları için simge setleri oluşturma.',
|
|
153
|
+
'Marka WebP logolarını kurumsal uygulamalar için simgelere dönüştürme.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Sonuç',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Modern tasarım iş akışınız WebP üretir; uygulama ekosistemi hala ICO talep eder. Bu araç, saniyeler içinde bu boşluğu doldurur, marka varlıklarınız tarayıcınızdan hiç ayrılmadan doğru ikili yapıda ve şeffaflığı korunmuş simgeler oluşturur.',
|
|
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: 'tr',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
183
|
+
};
|
|
@@ -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
|
};
|