@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,177 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'conversor-bmp-para-png';
|
|
6
|
+
const title = 'Conversor de BMP para PNG';
|
|
7
|
+
const description =
|
|
8
|
+
'Converta imagens BMP para PNG sem perda de qualidade. Compressão moderna sem artefactos. Sem carregar ficheiros. Grátis e 100% privado.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Arraste os ficheiros BMP...',
|
|
12
|
+
convertText: 'Para convertê-los para PNG 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: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Qual é a principal diferença entre BMP e PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'Tanto o BMP como o PNG são formatos sem perdas. A diferença reside na otimização: o PNG compreende algoritmos de compressão modernos para guardar a mesma imagem ocupando 5 ou 10 vezes menos memória do que o BMP.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'A conversão é realmente privada?',
|
|
29
|
+
answer:
|
|
30
|
+
'Sim. Todo o processamento fotográfico é feito pelo seu computador. Absolutamente ninguém acede aos seus ficheiros em trânsito local.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Porquê PNG em vez de JPEG neste caso?',
|
|
34
|
+
answer:
|
|
35
|
+
'Se tem um ficheiro BMP, é porque a imagem tem cores precisas. Passar um BMP para o padrão destrutivo JPG degradaria as suas cores puras. O PNG protege essa fidelidade.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Coloque a sua Fotografia',
|
|
42
|
+
text: 'Mova tranquilamente os ficheiros de origem BMP para a nossa zona de processamento de elementos web.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Conversão sem Transmissão de Rede',
|
|
46
|
+
text: 'Sinta em apenas um segundo o processamento limpo feito localmente pelo seu JS de HTML5.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Obtenha PNGs Puros',
|
|
50
|
+
text: 'Descarregue as réplicas em PNG individualmente ou através de um pacote comprimido.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'PNG Specification W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Conversor de BMP para PNG: A Substituição Sem Perdas do Formato BMP',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'O BMP é um formato sem compressão que ocupa enormes quantidades de espaço sem qualquer benefício técnico em comparação com o PNG. Ambos são formatos sem perdas: guardam cada píxel com exatidão absoluta. Mas o PNG adiciona compressão lossless através do algoritmo Deflate, o que reduz o tamanho do ficheiro entre 3 e 5 vezes sem sacrificar um único bit de informação visual. O PNG é, em essência, o que o BMP sempre quis ser.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'BMP vs PNG: mesma qualidade, tamanho radicalmente diferente',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'A diferença fundamental entre BMP e PNG não está na qualidade da imagem — ambos são sem perdas — mas na eficiência de armazenamento. O BMP armazena píxeis em bruto: sem compressão, sem otimização, sem consideração pelo espaço. O PNG analisa os padrões de píxeis repetidos e codifica-os de forma compacta através de Deflate, o mesmo algoritmo que o ZIP utiliza.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Além da compressão superior, o PNG adiciona uma característica que o BMP nunca teve: canal alfa completo para transparências. Capturas de ecrã, gráficos de interface, logótipos, diagramas técnicos: todos estes tipos de imagens beneficiam enormemente da conversão para PNG, que mantém cada valor de cor exato enquanto reduz o peso do ficheiro a uma fração do original.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Comparativo de Arquitetura: Local vs Nuvem',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Conversores Cloud',
|
|
98
|
+
description: 'Serviços que processam os seus ficheiros BMP em servidores de terceiros.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'As suas imagens de trabalho viajam pela internet',
|
|
103
|
+
'Tempo de espera proporcional ao tamanho do BMP',
|
|
104
|
+
'Limites de tamanho em planos gratuitos',
|
|
105
|
+
'Risco de análise ou retenção dos seus ficheiros',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'A Nossa Arquitetura Local',
|
|
110
|
+
description: 'Processamento direto no seu hardware através de tecnologia Vanilla JS.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'O BMP é processado localmente, nunca sai do seu dispositivo',
|
|
115
|
+
'Conversão instantânea em milissegundos',
|
|
116
|
+
'Sem limites de tamanho nem de número de ficheiros',
|
|
117
|
+
'Privacidade total: 0 bytes enviados para o exterior',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Como funciona a conversão local de BMP para PNG',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'O processo utiliza a API Canvas do HTML5. O ficheiro BMP é lido com a API <code>FileReader</code> do navegador e é descodificado como um Blob em memória. Esse Blob é desenhado sobre um canvas HTML5 invisível. A seguir, o método <code>toDataURL(\'image/png\')</code> aplica o algoritmo de compressão PNG nativo do navegador e gera o ficheiro resultante.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Ao contrário da conversão para JPG, a conversão para PNG é completamente lossless: cada valor de cor do BMP original é preservado exatamente no PNG resultante. Não existem artefactos, não existe suavização de bordos, não existe perda de informação. O ficheiro final é visualmente idêntico ao BMP mas ocupa entre 3 e 5 vezes menos espaço em disco.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'Se trabalha com software antigo que exporta BMP (maquinaria industrial, sistemas de controlo, software de diagnóstico médico), converter para PNG é a melhor decisão. O PNG é compatível com absolutamente todos os programas modernos, mantém a fidelidade de cor perfeita e ocupa até 5 vezes menos espaço. É a migração mais simples e segura possível.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: 'Casos de uso e compatibilidade do PNG resultante',
|
|
142
|
+
level: 3,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'list',
|
|
146
|
+
icon: 'mdi:check-circle',
|
|
147
|
+
items: [
|
|
148
|
+
'Capturas de ecrã e gráficos de interface com cores exatas preservadas.',
|
|
149
|
+
'Imagens de documentação técnica e diagramas de software.',
|
|
150
|
+
'Exportações de CAD, sistemas industriais e software legacy.',
|
|
151
|
+
'Logótipos e elementos de identidade visual com transparência adicionada.',
|
|
152
|
+
'Compatível com Adobe Photoshop, GIMP, Figma e todos os editores modernos.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'title',
|
|
157
|
+
text: 'Conclusão: o PNG é o que o BMP sempre deveria ter sido',
|
|
158
|
+
level: 3,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'Converter BMP para PNG é a modernização mais natural de um ficheiro de imagem: mesma qualidade sem perdas, maior compatibilidade, suporte de transparência e entre 3 e 5 vezes menos peso. A nossa ferramenta realiza esta conversão em milissegundos, diretamente no seu navegador, sem carregar qualquer ficheiro para nenhum servidor.',
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const content: BmpAPngLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({ title, description, inLanguage: 'pt', faq, howTo }),
|
|
177
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konverter-bmp-v-png';
|
|
6
|
+
const title = 'Конвертер BMP в PNG';
|
|
7
|
+
const description =
|
|
8
|
+
'Конвертируйте изображения BMP в PNG без потери качества. Современное сжатие без артефактов. Без загрузки файлов. Бесплатно и на 100% приватно.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Перетащите файлы BMP...',
|
|
12
|
+
convertText: 'Чтобы мгновенно конвертировать их в PNG',
|
|
13
|
+
selectFiles: 'Выбрать файлы',
|
|
14
|
+
processedFiles: 'Обработанные файлы',
|
|
15
|
+
downloadAll: 'Скачать всё (.zip)',
|
|
16
|
+
pending: 'В ожидании',
|
|
17
|
+
bibliographyTitle: 'Библиографические ссылки',
|
|
18
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'В чем основная разница между BMP и PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'И BMP, и PNG — это форматы без потерь. Разница заключается в оптимизации: PNG поддерживает современные алгоритмы сжатия, позволяя сохранять то же изображение, занимая в 5–10 раз меньше памяти, чем BMP.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Действительно ли конвертация конфиденциальна?',
|
|
29
|
+
answer:
|
|
30
|
+
'Да. Вся обработка фотографий выполняется вашим компьютером. Абсолютно никто не имеет доступа к вашим файлам во время локальной передачи.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Почему в данном случае стоит выбрать PNG вместо JPEG?',
|
|
34
|
+
answer:
|
|
35
|
+
'Если у вас есть файл BMP, значит, изображение содержит точные цвета. Перевод BMP в деструктивный формат JPG испортил бы ваши чистые цвета. PNG сохраняет эту точность.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Загрузите вашу фотографию',
|
|
42
|
+
text: 'Просто перетащите исходные файлы BMP в нашу зону обработки веб-элементов.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Конвертация без передачи по сети',
|
|
46
|
+
text: 'Оцените чистую обработку, выполненную локально вашим браузером с использованием технологии HTML5 JS всего за секунду.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Получите чистые PNG',
|
|
50
|
+
text: 'Скачайте копии в формате PNG по отдельности или в виде архива.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'PNG Specification W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Конвертер BMP в PNG: Беспотерьная замена формата BMP',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMP — это несжатый формат, который занимает огромное количество места без каких-либо технических преимуществ перед PNG. Оба формата являются беспотерьными: они сохраняют каждый пиксель с абсолютной точностью. Однако PNG добавляет сжатие без потерь с помощью алгоритма Deflate, что уменьшает размер файла в 3–5 раз без ущерба для визуальной информации. PNG — это, по сути, то, чем всегда должен был быть BMP.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'BMP против PNG: одинаковое качество, принципиально разный размер',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Фундаментальная разница между BMP и PNG заключается не в качестве изображения (оба формата беспотерьные), а в эффективности хранения. BMP хранит пиксели в необработанном виде: без сжатия, без оптимизации, без учета занимаемого пространства. PNG анализирует повторяющиеся шаблоны пикселей и компактно кодирует их с помощью Deflate — того же алгоритма, который используется в ZIP.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Помимо превосходного сжатия, PNG добавляет функцию, которой никогда не было у BMP: полноценный альфа-канал для прозрачности. Скриншоты, интерфейсная графика, логотипы, технические диаграммы — все эти типы изображений значительно выигрывают от конвертации в PNG, который сохраняет точные значения цветов, уменьшая при этом вес файла до доли от оригинала.',
|
|
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
|
+
'Ваши рабочие изображения передаются через интернет',
|
|
103
|
+
'Время ожидания пропорционально размеру BMP',
|
|
104
|
+
'Ограничения на объем данных в бесплатных тарифах',
|
|
105
|
+
'Риск анализа или хранения ваших файлов сервисом',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Наша локальная архитектура',
|
|
110
|
+
description: 'Прямая обработка на вашем оборудовании с использованием технологии Vanilla JS.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'BMP обрабатывается локально и никогда не покидает ваше устройство',
|
|
115
|
+
'Мгновенная конвертация за миллисекунды',
|
|
116
|
+
'Без ограничений по размеру или количеству файлов',
|
|
117
|
+
'Полная конфиденциальность: 0 байт отправлено наружу',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Как работает локальная конвертация BMP в PNG',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Процесс использует Canvas API стандарта HTML5. Файл BMP считывается с помощью <code>FileReader</code> API браузера и декодируется как Blob в памяти. Этот Blob отрисовывается на невидимом HTML5-холсте. Затем метод <code>toDataURL(\'image/png\')</code> применяет встроенный в браузер алгоритм сжатия PNG и генерирует итоговый файл.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'В отличие от конвертации в JPG, переход в PNG полностью беспотерьный: каждое значение цвета оригинального BMP в точности сохраняется в итоговом PNG. Нет артефактов, нет размытия краев, нет потери информации. Финальный файл визуально идентичен BMP, но занимает в 3–5 раз меньше места на диске.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'Если вы работаете с устаревшим ПО, экспортирующим BMP (промышленное оборудование, системы управления, медицинский софт), конвертация в PNG — лучшее решение. PNG совместим со всеми современными программами, сохраняет безупречную цветопередачу и занимает до 5 раз меньше места. Это самая простая и безопасная миграция из возможных.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: 'Примеры использования и совместимость итогового PNG',
|
|
142
|
+
level: 3,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'list',
|
|
146
|
+
icon: 'mdi:check-circle',
|
|
147
|
+
items: [
|
|
148
|
+
'Скриншоты и графика интерфейса с безупречным сохранением цветов.',
|
|
149
|
+
'Изображения для технической документации и программные диаграммы.',
|
|
150
|
+
'Экспорт из CAD, промышленных систем и устаревшего ПО.',
|
|
151
|
+
'Логотипы и элементы фирменного стиля с добавленной прозрачностью.',
|
|
152
|
+
'Совместимость с Adobe Photoshop, GIMP, Figma и всеми современными редакторами.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'title',
|
|
157
|
+
text: 'Заключение: PNG — это то, чем BMP всегда должен был быть',
|
|
158
|
+
level: 3,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'Конвертация BMP в PNG — самая естественная модернизация графического файла: то же качество без потерь, лучшая совместимость, поддержка прозрачности и в 3–5 раз меньший вес. Наш инструмент выполняет эту конвертацию за миллисекунды прямо в вашем браузере, не загружая файлы на сервер.',
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const content: BmpAPngLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ru', faq, howTo }),
|
|
177
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konvertera-bmp-till-png';
|
|
6
|
+
const title = 'Konverterare från BMP till PNG';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertera BMP-bilder till PNG utan kvalitetsförlust. Modern komprimering utan artefakter. Utan att ladda upp filer. Gratis och 100 % privat.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Dra BMP-filer hit...',
|
|
12
|
+
convertText: 'För att konvertera dem till PNG 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: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Vad är den främsta skillnaden mellan BMP och PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'Både BMP och PNG är förlustfria format. Skillnaden ligger i optimeringen: PNG förstår moderna komprimeringsalgoritmer för att spara samma bild genom att uppta 5 eller 10 gånger mindre minne än BMP.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Är konverteringen verkligen privat?',
|
|
29
|
+
answer:
|
|
30
|
+
'Ja. All bildbehandling görs av din dator. Absolut ingen har tillgång till dina filer under den lokala överföringen.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Varför PNG istället för JPEG i det här fallet?',
|
|
34
|
+
answer:
|
|
35
|
+
'Om du har en BMP-fil beror det på att bilden har exakta färger. Att omvandla en BMP till den destruktiva JPG-standarden skulle smutsa ner dina rena färger. PNG skyddar den troheten.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Infoga ditt fotografi',
|
|
42
|
+
text: 'Flytta lugnt BMP-källfilerna till vårt område för att släppa webbelement.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Konvertering utan nätverksöverföring',
|
|
46
|
+
text: 'Upplev på bara en sekund den rena bearbetningen som görs lokalt av din HTML5 JS.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Få rena PNG-filer',
|
|
50
|
+
text: 'Ladda ner PNG-kopiorna individuellt eller via ett komprimerat paket.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'PNG Specification W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Konverterare från BMP till PNG: Den förlustfria ersättningen för BMP-formatet',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMP är ett format utan komprimering som upptar enorma mängder utrymme utan någon teknisk fördel jämfört med PNG. Båda är förlustfria format: de sparar varje pixel med absolut exakthet. Men PNG lägger till förlustfri komprimering genom Deflate-algoritmen, vilket minskar filstorleken mellan 3 och 5 gånger utan att offra en enda bit av visuell information. PNG är i huvudsak vad BMP alltid velat vara.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'BMP vs PNG: samma kvalitet, radikalt annorlunda storlek',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Den grundläggande skillnaden mellan BMP och PNG ligger inte i bildkvaliteten — båda är förlustfria — utan i lagringseffektiviteten. BMP lagrar pixlar rått: utan komprimering, utan optimering, utan hänsyn till utrymme. PNG analyserar återkommande pixelmönster och kodar dem kompakt genom Deflate, samma algoritm som ZIP använder.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Förutom den överlägsna komprimeringen lägger PNG till en funktion som BMP aldrig hade: full alfakanal för transparens. Skärmdumpar, gränssnittsgrafik, logotyper, tekniska diagram: alla dessa typer av bilder drar stor nytta av konverteringen till PNG, som behåller varje exakt färgvärde samtidigt som filens vikt minskas till en bråkdel av originalet.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Arkitekturjämförelse: Lokal vs Moln',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Molnkonverterare',
|
|
98
|
+
description: 'Tjänster som bearbetar dina BMP-filer på tredjepartsservrar.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Dina arbetsbilder skickas över internet',
|
|
103
|
+
'Väntetid proportionell mot BMP-filens storlek',
|
|
104
|
+
'Storleksbegränsningar i gratisplaner',
|
|
105
|
+
'Risk för analys eller lagring av dina filer',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Vår lokala arkitektur',
|
|
110
|
+
description: 'Direkt bearbetning på din hårdvara via Vanilla JS-teknik.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'BMP-filen bearbetas lokalt, lämnar aldrig din enhet',
|
|
115
|
+
'Omedelbar konvertering på millisekunder',
|
|
116
|
+
'Inga storleksbegränsningar eller begränsningar på antal filer',
|
|
117
|
+
'Total integritet: 0 byte skickas externt',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Hur den lokala konverteringen från BMP till PNG fungerar',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Processen använder HTML5 Canvas API. BMP-filen läses in med webbläsarens <code>FileReader</code> API och avkodas som en Blob i minnet. Denna Blob ritas på en osynlig HTML5-canvas. Därefter tillämpar metoden <code>toDataURL(\'image/png\')</code> webbläsarens inbyggda PNG-komprimeringsalgoritm och genererar den resulterande filen.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Till skillnad från konverteringen till JPG är konverteringen till PNG helt förlustfri: varje färgvärde från den ursprungliga BMP-filen bevaras exakt i den resulterande PNG-filen. Det finns inga artefakter, ingen kantutjämning, ingen informationsförlust. Den slutliga filen är visuellt identisk med BMP men upptar mellan 3 och 5 gånger mindre utrymme på disken.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'Om du arbetar med äldre programvara som exporterar BMP (industriella maskiner, kontrollsystem, medicinsk diagnostisk programvara), är konvertering till PNG det bästa beslutet. PNG är kompatibelt med absolut alla moderna program, behåller den perfekta färgåtergivningen och upptar upp till 5 gånger mindre utrymme. Det är den enklaste och säkraste migrationen som är möjlig.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: 'Användningsfall och kompatibilitet för den resulterande PNG-filen',
|
|
142
|
+
level: 3,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'list',
|
|
146
|
+
icon: 'mdi:check-circle',
|
|
147
|
+
items: [
|
|
148
|
+
'Skärmdumpar och gränssnittsgrafik med exakt bevarade färger.',
|
|
149
|
+
'Bilder för teknisk dokumentation och programvarudiagram.',
|
|
150
|
+
'Exporter från CAD, industriella system och äldre programvara.',
|
|
151
|
+
'Logotyper och varumärkeselement med tillagd transparens.',
|
|
152
|
+
'Kompatibel med Adobe Photoshop, GIMP, Figma och alla moderna redigeringsprogram.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'title',
|
|
157
|
+
text: 'Slutsats: PNG är vad BMP alltid borde ha varit',
|
|
158
|
+
level: 3,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'Att konvertera BMP till PNG är den mest naturliga moderniseringen av en bildfil: samma förlustfria kvalitet, högre kompatibilitet, stöd för transparens och mellan 3 och 5 gånger mindre vikt. Vårt verktyg utför denna konvertering på millisekunder direkt i din webbläsare, utan att ladda upp någon fil till någon server.',
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const content: BmpAPngLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({ title, description, inLanguage: 'sv', faq, howTo }),
|
|
177
|
+
};
|