@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 { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konwerter-bmp-na-webp';
|
|
6
|
+
const title = 'Darmowa Konwersja BMP na WebP';
|
|
7
|
+
const description =
|
|
8
|
+
'Konwertuj obrazy BMP na WebP offline. Zmniejsz ogromne pliki do kilobajtów. Bez przesyłania plików. Darmowy, offline i całkowicie prywatny.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Przeciągnij pliki BMP...',
|
|
12
|
+
convertText: 'Aby błyskawicznie konwertować je na WebP',
|
|
13
|
+
selectFiles: 'Wybierz pliki',
|
|
14
|
+
processedFiles: 'Przetworzone pliki',
|
|
15
|
+
downloadAll: 'Pobierz wszystko (.zip)',
|
|
16
|
+
pending: 'Oczekiwanie',
|
|
17
|
+
bibliographyTitle: 'Bibliografia',
|
|
18
|
+
faqTitle: 'Często zadawane pytania',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Dlaczego moje pliki BMP zajmują 10 razy więcej miejsca i co zyskam, mając je w formacie WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'Format BMP przechowuje mapy pikseli bez kompresji. WebP wykorzystuje kompresję matematyczną, aby zmniejszyć ogromne pliki BMP do mniej niż jednego megabajta, zachowując przy tym wysoką jakość obrazu.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Czy muszę rejestrować konto?',
|
|
29
|
+
answer:
|
|
30
|
+
'Nie wymagamy podawania adresu e-mail, a Twoje materiały pozostaną odizolowane, ponieważ przetwarzanie odbywa się za pomocą skryptu JavaScript w przeglądarce zainstalowanej na Twoim komputerze, bez wysyłania plików na serwer.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Czy mogę przeciągnąć wiele plików jednocześnie?',
|
|
34
|
+
answer:
|
|
35
|
+
'Tak, możesz przeciągnąć 50 lub 100 plików, o ile Twój sprzęt poradzi sobie z przetwarzaniem ich wszystkich bez tworzenia kolejek.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Zidentyfikuj pliki surowe',
|
|
42
|
+
text: 'Umieść swoje kolekcje map bitowych w oknach gotowych do przeniesienia.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Natywna aktywacja wsadowa',
|
|
46
|
+
text: 'Przemieść lub przeciągnij wszystkie pliki na nasz cyfrowy stół.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Ewakuacja wsadowa WebP',
|
|
50
|
+
text: 'Kliknij wyniki, a otrzymasz osobno obrazy o mikrowadze lub jako natychmiastowe paczki ZIP.',
|
|
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: 'Konwerter BMP na WebP: Najbardziej ekstremalna redukcja rozmiaru, jaka jest możliwa',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Konwersja BMP na WebP to bez wątpienia najbardziej spektakularna transformacja, jaką możesz przeprowadzić z obrazem. Format BMP (Bitmap) to jeden z najstarszych i najcięższych formatów w cyfrowym ekosystemie: przechowuje każdy piksel bez żadnego rodzaju kompresji, co skutkuje plikami, które mogą ważyć 20, 50, a nawet 100 razy więcej niż ich nowoczesny odpowiednik. WebP, opracowany przez Google, stosuje algorytmy kompresji najnowszej generacji, które redukują rozmiar do absolutnego minimum, zachowując przy tym doskonałą jakość wizualną.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Dlaczego BMP jest tak ciężki, a WebP tak wydajny?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Format BMP powstał w latach 80. dla systemu Windows, kiedy miejsce na dysku było ogromne, a kompresja nie była priorytetem. Każdy piksel jest zapisywany w postaci surowej, bez żadnego algorytmu redukcji: obraz o rozmiarze 1920x1080 pikseli w formacie BMP zajmuje dokładnie 5,93 MB, niezależnie od jego treści. Dzięki temu idealnie nadaje się do wewnętrznych zrzutów ekranu lub edycji bezstratnej, ale jest całkowicie nieodpowiedni do internetu lub nowoczesnego przechowywania.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP wykorzystuje kompresję predykcyjną opartą na blokach i transformatach DCT (ta sama technologia, która leży u podstaw wideo cyfrowego), sprawiając, że ten sam obraz 1920x1080 zajmuje od 80 KB do 300 KB. Oznacza to redukcję od 95 do 99% w stosunku do oryginalnego pliku BMP. Ponadto WebP obsługuje kanał alfa dla przezroczystości oraz kompresję zarówno stratną, jak i bezstratną, oferując pełną wszechstronność.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Porównanie: Konwertery w chmurze vs Nasza lokalna architektura',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Konwertery w chmurze',
|
|
98
|
+
description: 'Narzędzia przesyłające Twoje pliki BMP na zdalny serwer w celu ich przetworzenia.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Przesłanie pliku BMP o rozmiarze 20 MB trwa minuty przy wolnym połączeniu',
|
|
103
|
+
'Twoje obrazy pozostają zapisane na cudzych serwerach',
|
|
104
|
+
'Limity rozmiaru wykluczające duże pliki BMP',
|
|
105
|
+
'Inwazyjne reklamy i trackery danych',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Nasza lokalna architektura',
|
|
110
|
+
description: 'Przetwarzanie bezpośrednio w przeglądarce za pomocą technologii Vanilla JS i interfejsu Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Natychmiastowa konwersja bez transmisji sieciowej',
|
|
115
|
+
'Absolutna prywatność — 0 bajtów opuszcza Twoje urządzenie',
|
|
116
|
+
'Brak limitów rozmiaru na plik',
|
|
117
|
+
'Działa bez połączenia z internetem',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Jak technicznie działa konwersja w przeglądarce',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Podczas przeciągania pliku BMP przeglądarka odczytuje go jako binarny obiekt Blob w pamięci RAM. Ten Blob jest ładowany do elementu <code>Image</code> języka JavaScript, który dekoduje go przy użyciu natywnego silnika obrazów. Następnie obraz jest rysowany na niewidocznym elemencie <code>Canvas</code> HTML5. Canvas działa jako wirtualne płótno, na którym obraz istnieje w swojej postaci piksel po pikselu.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Po narysowaniu na Canvas wykonujemy metodę <code>toBlob()</code> z typem MIME <code>image/webp</code> i pożądanym poziomem jakości. Przeglądarka stosuje wewnętrznie algorytm kompresji WebP i generuje nowy obiekt Blob z wynikowym plikiem. Ten Blob przekształca się w adres URL do bezpośredniego pobierania, który przeglądarka zapisuje na dysku. W żadnym momencie nie jest nawiązywane połączenie sieciowe.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Największy możliwy skok kompresji',
|
|
138
|
+
html: 'Konwersja BMP na WebP może przynieść redukcję rozmiaru pliku o 99%. Plik BMP o rozmiarze 20 MB może stać się plikiem WebP o rozmiarze zaledwie 200 KB przy niemal identycznej jakości wizualnej. To najbardziej wydajna transformacja dostępna wśród standardowych formatów obrazów.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Przypadki użycia i kompatybilność WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Publikowanie w internecie — Chrome, Firefox, Safari, Edge i wszystkie nowoczesne przeglądarki.',
|
|
150
|
+
'Media społecznościowe — Instagram, Twitter, Facebook natywnie akceptują format WebP.',
|
|
151
|
+
'Aplikacje internetowe i PWA — minimalne rozmiary dla natychmiastowego ładowania.',
|
|
152
|
+
'Wydajne archiwizowanie — zastępuje kolekcje starych plików BMP, oszczędzając gigabajty.',
|
|
153
|
+
'Marketing e-mailowy — lekkie obrazy, które ładują się szybko w każdym nowoczesnym kliencie pocztowym.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Podsumowanie: najbardziej uderzająca konwersja za jednym kliknięciem',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Jeśli posiadasz stare pliki BMP z systemu Windows, nieskompresowane zrzuty ekranu lub obrazy ze starych narzędzi, konwersja ich na format WebP to najbardziej uderzające działanie, jakie możesz podjąć, aby zoptymalizować miejsce na dysku i wydajność strony internetowej. Dzięki naszemu narzędziu konwersja jest natychmiastowa, prywatna i bez limitów — dokładnie tak, jak powinno być.',
|
|
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: 'pl', 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 = '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
|
+
};
|