@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,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'conversor-bmp-para-webp';
|
|
6
|
+
const title = 'Converter BMP para WebP Grátis';
|
|
7
|
+
const description =
|
|
8
|
+
'Converta imagens BMP para WebP sem ligação. Reduza ficheiros enormes para kilobytes. Sem carregar ficheiros. Grátis, offline e completamente privado.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Arraste os ficheiros BMP...',
|
|
12
|
+
convertText: 'Para convertê-los para WebP instantaneamente',
|
|
13
|
+
selectFiles: 'Selecionar ficheiros',
|
|
14
|
+
processedFiles: 'Ficheiros processados',
|
|
15
|
+
downloadAll: 'Descarregar Tudo (.zip)',
|
|
16
|
+
pending: 'Pendente',
|
|
17
|
+
bibliographyTitle: 'Referências Bibliográficas',
|
|
18
|
+
faqTitle: 'Perguntas Frequentes',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Porque é que os meus ficheiros BMP ocupam 10 vezes mais e o que ganho em tê-los em WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'O BMP guarda mapas de píxeis sem comprimir. O WebP usa compressão matemática para baixar enormes BMPs para menos de um megabyte mantendo a imagem sumamente reconhecível.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Tenho de registar uma conta?',
|
|
29
|
+
answer:
|
|
30
|
+
'Não exigimos email e o seu material permanecerá isolado, uma vez que o processamento é realizado pelo Javascript do navegador instalado no seu PC, sem envio remoto.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Posso arrastar muitos ficheiros simultaneamente?',
|
|
34
|
+
answer:
|
|
35
|
+
'Sim, pode arrastar 50 ou 100 ficheiros se o seu hardware aguentar processar todos sem fazer filas.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Identificar Ficheiros Brutos',
|
|
42
|
+
text: 'Coloque as suas coleções de mapa de bits em janelas prontas para a transferência.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Ativação Nativa do Lote',
|
|
46
|
+
text: 'Projete ou arraste todos os ficheiros para a nossa mesa digital.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Evacuação do Lote WebP',
|
|
50
|
+
text: 'Pressione os resultados e obterá separadamente a imagem em disco de micro-pesos ou como comprimidos imediatos.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Conversor BMP para WebP: A Redução de Tamanho Mais Extrema Possível',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Converter BMP para WebP é, sem dúvida, a transformação mais espetacular que pode fazer com uma imagem. O formato BMP (Bitmap) é o formato mais antigo e pesado do ecossistema digital: armazena cada píxel sem qualquer tipo de compressão, resultando em ficheiros que podem pesar 20, 50 ou até 100 vezes mais do que o seu equivalente moderno. WebP, desenvolvido pela Google, aplica algoritmos de compressão de última geração que reduzem o tamanho ao mínimo possível mantendo uma qualidade visual excelente.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Porque é que o BMP é tão pesado e o WebP tão eficiente?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'O formato BMP nasceu nos anos 80 para Windows, quando o espaço em disco era enorme e a compressão não era uma prioridade. Cada píxel é guardado tal como é, sem nenhum algoritmo de redução: uma imagem de 1920x1080 píxeis em BMP ocupa exatamente 5,93 MB, independentemente do seu conteúdo. Isto torna-o ideal para capturas de ecrã internas ou edição sem perdas, mas completamente inapropriado para a web ou o armazenamento moderno.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP utiliza compressão preditiva baseada em blocos e transformadas DCT (a mesma tecnologia que está na base do vídeo digital), conseguindo que a mesma imagem de 1920x1080 ocupe entre 80 KB e 300 KB. Isso supõe uma redução de 95 a 99% em relação ao BMP original. Além disso, WebP suporta canal alfa para transparências e compressão tanto com perda como sem perda, oferecendo versatilidade total.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Comparativa: Conversores Cloud vs Nossa Arquitetura Local',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Conversores Cloud',
|
|
98
|
+
description: 'Ferramentas que carregam os seus ficheiros BMP para um servidor remoto para os processar.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Subir um BMP de 20 MB demora minutos com ligação lenta',
|
|
103
|
+
'As suas imagens ficam armazenadas em servidores alheios',
|
|
104
|
+
'Limites de tamanho que excluem ficheiros BMP grandes',
|
|
105
|
+
'Publicidade invasiva e rastreadores de dados',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Nossa Arquitetura Local',
|
|
110
|
+
description: 'Processamento direto no seu navegador através de tecnologia Vanilla JS e Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Conversão instantânea sem transferência de rede',
|
|
115
|
+
'Privacidade absoluta — 0 bytes saem do seu dispositivo',
|
|
116
|
+
'Sem limites de tamanho por ficheiro',
|
|
117
|
+
'Funciona sem ligação à internet',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Como funciona a conversão técnica no navegador',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Ao arrastar um ficheiro BMP, o navegador lê-o como um Blob binário em memória RAM. Este Blob é carregado num elemento <code>Image</code> de JavaScript, que o descodifica usando o motor de imagens nativo. A seguir, a imagem é pintada sobre um elemento <code>Canvas</code> HTML5 invisível. O Canvas atua como tela virtual onde a imagem existe na sua forma píxel a píxel.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Uma vez pintada no Canvas, executamos o método <code>toBlob()</code> com o tipo MIME <code>image/webp</code> e o nível de qualidade desejado. O navegador aplica internamente o algoritmo de compressão WebP e gera um novo Blob com o ficheiro resultante. Este Blob converte-se num URL de descarregamento direto que o seu navegador guarda no disco. Em nenhum momento é estabelecida nenhuma ligação de rede.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'O maior salto de compressão possível',
|
|
138
|
+
html: 'A conversão de BMP para WebP pode conseguir uma redução de 99% no tamanho do ficheiro. Um BMP de 20 MB pode converter-se num WebP de apenas 200 KB com qualidade visual praticamente idêntica. É a transformação mais eficiente disponível entre formatos de imagem padrão.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Casos de uso e compatibilidade de WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Publicação web — Chrome, Firefox, Safari, Edge e todos os navegadores modernos.',
|
|
150
|
+
'Redes sociais — Instagram, Twitter, Facebook aceitam WebP de forma nativa.',
|
|
151
|
+
'Aplicações web e PWA — tamanhos mínimos para carga instantânea.',
|
|
152
|
+
'Arquivamento eficiente — substitui coleções de BMPs herdados poupando gigabytes.',
|
|
153
|
+
'Email marketing — imagens leves que carregam rápido em qualquer cliente de correio moderno.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Conclusão: A conversão mais impactante num único clique',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Se tem ficheiros BMP herdados do Windows, capturas de ecrã sem comprimir ou imagens de ferramentas antigas, convertê-los para WebP é a ação mais impactante que pode tomar para otimizar o seu armazenamento e desempenho web. Com a nossa ferramenta, a conversão é instantânea, privada e sem limites — exatamente como deveria ser.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: BmpAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'pt', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konverter-bmp-v-webp';
|
|
6
|
+
const title = 'Конвертировать BMP в WebP Бесплатно';
|
|
7
|
+
const description =
|
|
8
|
+
'Конвертируйте изображения BMP в WebP офлайн. Сократите огромные файлы до килобайтов. Без загрузки файлов. Бесплатно, офлайн и полностью приватно.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Перетащите файлы BMP...',
|
|
12
|
+
convertText: 'Чтобы мгновенно конвертировать их в WebP',
|
|
13
|
+
selectFiles: 'Выбрать файлы',
|
|
14
|
+
processedFiles: 'Обработанные файлы',
|
|
15
|
+
downloadAll: 'Скачать всё (.zip)',
|
|
16
|
+
pending: 'В ожидании',
|
|
17
|
+
bibliographyTitle: 'Библиографические ссылки',
|
|
18
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Почему мои файлы BMP занимают в 10 раз больше места и что я выиграю от WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP хранит несжатые карты пикселей. WebP использует математическое сжатие, чтобы уменьшить огромные BMP до менее чем одного мегабайта, сохраняя при этом изображение узнаваемым и качественным.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Нужно ли мне регистрировать аккаунт?',
|
|
29
|
+
answer:
|
|
30
|
+
'Мы не запрашиваем электронную почту, и ваши материалы останутся изолированными, так как обработка выполняется JavaScript браузера на вашем ПК без удаленной отправки.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Могу ли я перетаскивать много файлов одновременно?',
|
|
34
|
+
answer:
|
|
35
|
+
'Да, вы можете перетащить 50 или 100 файлов, если ваше оборудование способно обработать их все без создания очередей.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Идентификация исходных файлов',
|
|
42
|
+
text: 'Разместите ваши коллекции битовых карт в окнах, готовых к перемещению.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Нативная пакетная активация',
|
|
46
|
+
text: 'Спроектируйте или перетащите все файлы на наш цифровой стол.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Эвакуация пакета WebP',
|
|
50
|
+
text: 'Нажмите на результаты, и вы получите по отдельности изображения микро-веса или в виде мгновенных архивов.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Конвертер BMP в WebP: Самое экстремальное сокращение размера',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Конвертация BMP в WebP — это, без сомнения, самая впечатляющая трансформация, которую можно сделать с изображением. Формат BMP (Bitmap) является одним из старейших и тяжелейших в цифровой экосистеме: он хранит каждый пиксель без какого-либо сжатия, что приводит к файлам, которые могут весить в 20, 50 или даже 100 раз больше своего современного эквивалента. WebP, разработанный Google, применяет алгоритмы сжатия последнего поколения, которые сокращают размер до абсолютно минимального значения при сохранении отличного визуального качества.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Почему BMP такой тяжелый, а WebP такой эффективный?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Формат BMP родился в 80-х годах для Windows, когда место на диске было огромным, а сжатие не было приоритетом. Каждый пиксель сохраняется как есть, без алгоритмов сокращения: изображение 1920x1080 пикселей в BMP занимает ровно 5,93 МБ независимо от содержания. Это делает его идеальным для внутренних скриншотов или редактирования без потерь, но совершенно неподходящим для веба или современного хранения.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP использует предиктивное сжатие на основе блоков и преобразований DCT (та же технология, что лежит в основе цифрового видео), благодаря чему то же изображение 1920x1080 занимает от 80 КБ до 300 КБ. Это означает сокращение на 95–99 % относительно оригинала BMP. Кроме того, WebP поддерживает альфа-канал для прозрачности и сжатие как с потерями, так и без, предлагая полную универсальность.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Сравнение: Облачные конвертеры против нашей локальной архитектуры',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Облачные конвертеры',
|
|
98
|
+
description: 'Инструменты, которые загружают ваши файлы BMP на удаленный сервер для обработки.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Загрузка BMP весом 20 МБ занимает минуты при медленном соединении',
|
|
103
|
+
'Ваши изображения хранятся на чужих серверах',
|
|
104
|
+
'Лимиты на размер, исключающие большие BMP-файлы',
|
|
105
|
+
'Инвазивная реклама и трекеры данных',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Наша локальная архитектура',
|
|
110
|
+
description: 'Прямая обработка в вашем браузере с помощью технологий Vanilla JS и Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Мгновенная конвертация без передачи по сети',
|
|
115
|
+
'Абсолютная приватность — 0 байт покидает ваше устройство',
|
|
116
|
+
'Без лимитов на размер файла',
|
|
117
|
+
'Работает без подключения к интернету',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Как работает техническая конвертация в браузере',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'При перетаскивании файла BMP браузер читает его как двоичный Blob в оперативной памяти. Этот Blob загружается в элемент <code>Image</code> JavaScript, который декодирует его с помощью нативного движка. Далее изображение отрисовывается на невидимом элементе <code>Canvas</code> HTML5. Холст (Canvas) выступает в роли виртуального полотна, где изображение существует попиксельно.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'После отрисовки на Canvas мы запускаем метод <code>toBlob()</code> с MIME-типом <code>image/webp</code> и желаемым уровнем качества. Браузер внутренне применяет алгоритм сжатия WebP и генерирует новый Blob с результирующим файлом. Этот Blob преобразуется в URL для прямой загрузки, который ваш браузер сохраняет на диск. Соединение с сетью не устанавливается ни в какой момент.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Самый большой скачок сжатия из возможных',
|
|
138
|
+
html: 'Конвертация из BMP в WebP может достичь сокращения размера файла на 99 %. BMP весом 20 МБ может превратиться в WebP весом всего около 200 КБ с практически идентичным визуальным качеством. Это самая эффективная из доступных трансформаций между стандартными форматами изображений.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Случаи использования и совместимость WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Веб-публикация — Chrome, Firefox, Safari, Edge и все современные браузеры.',
|
|
150
|
+
'Социальные сети — Instagram, Twitter, Facebook принимают WebP нативно.',
|
|
151
|
+
'Веб-приложения и PWA — минимальные размеры для мгновенной загрузки.',
|
|
152
|
+
'Эффективное архивирование — заменяет коллекции старых BMP, экономя гигабайты.',
|
|
153
|
+
'Email-маркетинг — легкие изображения, которые быстро загружаются в любом почтовом клиенте.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Заключение: Самая впечатляющая конвертация в один клик',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Если у вас есть старые файлы BMP из Windows, несжатые скриншоты или изображения из старого софта, их конвертация в WebP — это самое эффективное действие для оптимизации вашего хранилища и производительности веба. С помощью нашего инструмента конвертация мгновенна, приватна и не имеет лимитов — именно так, как и должно быть.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: BmpAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ru', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konvertera-bmp-till-webp';
|
|
6
|
+
const title = 'Konvertera BMP till WebP Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertera BMP-bilder till WebP offline. Minska enorma filer till kilobyte. Utan att ladda upp filer. Gratis, offline och helt privat.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Dra BMP-filer hit...',
|
|
12
|
+
convertText: 'För att konvertera dem till WebP direkt',
|
|
13
|
+
selectFiles: 'Välj filer',
|
|
14
|
+
processedFiles: 'Bearbetade filer',
|
|
15
|
+
downloadAll: 'Ladda ner alla (.zip)',
|
|
16
|
+
pending: 'Väntande',
|
|
17
|
+
bibliographyTitle: 'Bibliografiska Referenser',
|
|
18
|
+
faqTitle: 'Vanliga Frågor',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Varför tar mina BMP-filer 10 gånger mer plats och vad vinner jag på att ha dem i WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP sparar okomprimerade pixelkartor. WebP använder matematisk komprimering för att minska enorma BMP:er till mindre än en megabyte samtidigt som bilden förblir extremt igenkännbar.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Måste jag registrera ett konto?',
|
|
29
|
+
answer:
|
|
30
|
+
'Vi kräver ingen e-post och ditt material förblir isolerat, eftersom processen utförs av webbläsarens JavaScript som är installerat på din dator, utan fjärrsändning.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Kan jag dra många filer samtidigt?',
|
|
34
|
+
answer:
|
|
35
|
+
'Ja, du kan dra 50 eller 100 filer om din hårdvara klarar av att bearbeta alla utan att skapa köer.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Identifiera råfiler',
|
|
42
|
+
text: 'Placera dina bitmappskollektioner i fönster som är redo för överföring.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Inbyggd batch-aktivering',
|
|
46
|
+
text: 'Flytta eller dra alla filer till vårt digitala bord.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'WebP batch-evakuering',
|
|
50
|
+
text: 'Klicka på resultaten så får du separat bilderna med mikrovikt eller som omedelbara ZIP-paket.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Konverterare BMP till WebP: Den mest extrema storleksminskningen som är möjlig',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Att konvertera BMP till WebP är utan tvekan den mest spektakulära transformationen du kan göra med en bild. BMP-formatet (Bitmap) är ett av de äldsta och tyngsta formaten i det digitala ekosystemet: det lagrar varje pixel utan någon form av komprimering, vilket resulterar i filer som kan väga 20, 50 eller till och med 100 gånger mer än deras moderna motsvarighet. WebP, utvecklat av Google, tillämpar senaste generationens komprimeringsalgoritmer som minskar storleken till det absolut möjliga minimumet samtidigt som en utmärkt visuell kvalitet bibehålls.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Varför är BMP så tungt och WebP så effektivt?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'BMP-formatet föddes på 80-talet för Windows, när diskutrymmet var enormt och komprimering inte var en prioritet. Varje pixel sparas som den är, utan någon reduktionsalgoritm: en bild på 1920x1080 pixlar i BMP upptar exakt 5,93 MB, oberoende av dess innehåll. Detta gör det idealiskt för interna skärmdumpar eller redigering utan förlust, men helt olämpligt för webben eller modern lagring.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP använder prediktiv komprimering baserad på block och DCT-transformering (samma teknik som ligger till grund för digital video), vilket gör att samma 1920x1080-bild upptar mellan 80 KB och 300 KB. Det innebär en minskning på 95 till 99% jämfört med den ursprungliga BMP-filen. Dessutom stöder WebP alfakanal för transparens och både förlustbringande och förlustfri komprimering, vilket erbjuder total mångsidighet.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Jämförelse: Molnkonverterare vs Vår lokala arkitektur',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Molnkonverterare',
|
|
98
|
+
description: 'Verktyg som laddar upp dina BMP-filer till en fjärrserver för bearbetning.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Att ladda upp en 20 MB BMP tar minuter med långsam anslutning',
|
|
103
|
+
'Dina bilder förblir lagrade på andras servrar',
|
|
104
|
+
'Storleksbegränsningar som utesluter stora BMP-filer',
|
|
105
|
+
'Invasiv reklam och dataspårare',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Vår lokala arkitektur',
|
|
110
|
+
description: 'Direkt bearbetning i din webbläsare via Vanilla JS-teknik och Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Omedelbar konvertering utan nätverksöverföring',
|
|
115
|
+
'Absolut integritet — 0 byte lämnar din enhet',
|
|
116
|
+
'Inga storleksbegränsningar per fil',
|
|
117
|
+
'Fungerar utan internetanslutning',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Hur den tekniska konverteringen fungerar i webbläsaren',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'När du drar en BMP-fil läser webbläsaren den som en binär Blob i RAM-minnet. Denna Blob laddas in i ett <code>Image</code>-element i JavaScript, som avkodar det med den inbyggda bildmotorn. Därefter ritas bilden på ett osynligt HTML5-elemet <code>Canvas</code>. Canvas fungerar som en virtuell duk där bilden existerar i sin form pixel för pixel.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'När den ritas på Canvas kör vi metoden <code>toBlob()</code> med MIME-typen <code>image/webp</code> och önskad kvalitetsnivå. Webbläsaren tillämpar internt WebP-komprimeringsalgoritmen och genererar en ny Blob med den resulterande filen. Denna Blob omvandlas till en direkt nedladdnings-URL som din webbläsare sparar på disken. Vid inget tillfälle etableras någon nätverksanslutning.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Det största möjliga komprimeringssprånget',
|
|
138
|
+
html: 'Konvertering från BMP till WebP kan uppnå en minskning av filstorleken på 99%. En 20 MB BMP kan förvandlas till en WebP på knappt 200 KB med praktiskt taget identisk visuell kvalitet. Det är den mest effektiva transformationen tillgänglig bland standardbildformat.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Användningsfall och kompatibilitet för WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Webbpublicering — Chrome, Firefox, Safari, Edge och alla moderna webbläsare.',
|
|
150
|
+
'Sociala nätverk — Instagram, Twitter, Facebook accepterar WebP lokalt.',
|
|
151
|
+
'Webbappar och PWA — minimala storlekar för omedelbar laddning.',
|
|
152
|
+
'Effektiv arkivering — ersätter kollektioner av gamla BMP:er och sparar gigabyte.',
|
|
153
|
+
'E-postmarknadsföring — lätta bilder som laddas snabbt i alla moderna e-postklienter.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Slutsats: Den mest effektfulla konverteringen med ett enda klick',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Om du har gamla BMP-filer från Windows, okomprimerade skärmdumpar eller bilder från gamla verktyg, är konvertering till WebP den mest effektfulla åtgärden du kan vidta för att optimera din lagring och webbprestanda. Med vårt verktyg är konverteringen omedelbar, privat och utan begränsningar — precis som den ska vara.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: BmpAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'sv', faq, howTo }),
|
|
178
|
+
};
|