@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 = 'konverter-bmp-ke-webp';
|
|
6
|
+
const title = 'Ubah BMP ke WebP Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Ubah gambar BMP ke WebP secara offline. Kurangi file besar menjadi kilobyte. Tanpa mengunggah file. Gratis, offline, dan sepenuhnya pribadi.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Seret file BMP...',
|
|
12
|
+
convertText: 'Untuk mengubahnya ke WebP secara instan',
|
|
13
|
+
selectFiles: 'Pilih file',
|
|
14
|
+
processedFiles: 'File yang diproses',
|
|
15
|
+
downloadAll: 'Unduh Semua (.zip)',
|
|
16
|
+
pending: 'Tertunda',
|
|
17
|
+
bibliographyTitle: 'Referensi Bibliografi',
|
|
18
|
+
faqTitle: 'Pertanyaan Umum',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Mengapa file BMP saya memakan ruang 10 kali lebih banyak dan apa keuntungan mengubahnya ke WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP menyimpan peta piksel tanpa kompresi. WebP menggunakan kompresi matematika untuk memperkecil BMP yang besar menjadi kurang dari satu megabyte namun tetap mempertahankan gambar yang sangat jelas.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Apakah saya harus mendaftar akun?',
|
|
29
|
+
answer:
|
|
30
|
+
'Kami tidak meminta email dan materi Anda akan tetap terisolasi, karena pemrosesan dilakukan oleh Javascript browser yang terpasang di PC Anda, tanpa pengiriman jarak jauh.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Bisakah saya menyeret banyak file secara bersamaan?',
|
|
34
|
+
answer:
|
|
35
|
+
'Ya, Anda bisa menyeret 50 atau 100 file jika perangkat keras Anda mampu memproses semuanya tanpa membuat antrean.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Identifikasi File Mentah',
|
|
42
|
+
text: 'Letakkan koleksi bitmap Anda di jendela yang siap dipindahkan.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Aktivasi Batch Native',
|
|
46
|
+
text: 'Proyeksikan atau seret semua file ke meja digital kami.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Evakuasi Batch WebP',
|
|
50
|
+
text: 'Klik hasilnya dan Anda akan mendapatkan gambar dengan ukuran mikro secara terpisah atau sebagai paket kompresi instan.',
|
|
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: 'Konverter BMP ke WebP: Pengurangan Ukuran Paling Ekstrim yang Mungkin Terjadi',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Mengonversi BMP ke WebP tidak diragukan lagi merupakan transformasi paling spektakuler yang bisa Anda lakukan pada sebuah gambar. Format BMP (Bitmap) adalah format tertua dan terberat dalam ekosistem digital: format ini menyimpan setiap piksel tanpa kompresi apa pun, sehingga menghasilkan file yang beratnya bisa 20, 50, atau bahkan 100 kali lebih berat daripada ekuivalen modernnya. WebP, yang dikembangkan oleh Google, menerapkan algoritma kompresi mutakhir yang mengurangi ukuran hingga batas minimum yang paling mungkin terjadi sambil tetap mempertahankan kualitas visual yang luar biasa.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Mengapa BMP sangat berat dan WebP sangat efisien?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Format BMP lahir pada tahun 80-an untuk Windows, ketika ruang disk sangat besar dan kompresi bukan merupakan prioritas. Setiap piksel disimpan apa adanya, tanpa algoritma pengurangan apa pun: gambar berukuran 1920x1080 piksel dalam BMP memakan tepat 5,93 MB, terlepas dari isinya. Hal ini membuatnya ideal untuk tangkapan layar internal atau pengeditan tanpa hilangnya kualitas (lossless), namun sama sekali tidak sesuai untuk web atau penyimpanan modern.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP menggunakan kompresi prediktif berbasis blok dan transformasi DCT (teknologi yang sama dengan video digital), sehingga gambar berukuran 1920x1080 yang sama hanya memakan antara 80 KB dan 300 KB. Itu berarti pengurangan sebesar 95 hingga 99% dibandingkan BMP aslinya. Selain itu, WebP mendukung saluran alfa untuk transparansi dan kompresi lossy maupun lossless, menawarkan fleksibilitas total.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Perbandingan: Konverter Cloud vs Arsitektur Lokal Kami',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Konverter Cloud',
|
|
98
|
+
description: 'Alat yang mengunggah file BMP Anda ke server jarak jauh untuk memprosesnya.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Mengunggah BMP 20 MB butuh waktu bermenit-menit dengan koneksi lambat',
|
|
103
|
+
'Gambar Anda tetap tersimpan di server pihak lain',
|
|
104
|
+
'Batasan ukuran yang mengecualikan file BMP besar',
|
|
105
|
+
'Iklan invasif dan pelacak data',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Arsitektur Lokal Kami',
|
|
110
|
+
description: 'Pemrosesan langsung di browser Anda melalui teknologi Vanilla JS dan Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Konversi instan tanpa transfer jaringan',
|
|
115
|
+
'Privasi absolut — 0 byte yang keluar dari perangkat Anda',
|
|
116
|
+
'Tanpa batasan ukuran per file',
|
|
117
|
+
'Berfungsi tanpa koneksi internet',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Bagaimana cara kerja konversi teknis di browser',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Saat menyeret file BMP, browser membacanya sebagai binari Blob di memori RAM. Blob ini dimuat ke dalam elemen <code>Image</code> JavaScript, yang mendeskripsinya menggunakan mesin gambar native. Selanjutnya, gambar dilukis ke atas elemen <code>Canvas</code> HTML5 yang tidak terlihat. Canvas bertindak sebagai kanvas virtual di mana gambar ada dalam bentuk piksel-demi-piksel.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Setelah dilukis di Canvas, kami menjalankan metode <code>toBlob()</code> dengan tipe MIME <code>image/webp</code> dan tingkat kualitas yang diinginkan. Browser secara internal menerapkan algoritma kompresi WebP dan menghasilkan Blob baru dengan file hasil konversi. Blob ini diubah menjadi URL unduhan langsung yang disimpan browser ke disk. Tidak ada koneksi jaringan yang dibuat setiap saat.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Loncatan kompresi terbesar yang mungkin terjadi',
|
|
138
|
+
html: 'Konversi dari BMP ke WebP dapat mencapai pengurangan ukuran file sebesar 99%. BMP 20 MB dapat berubah menjadi WebP yang hanya sekitar 200 KB dengan kualitas visual yang hampir identik. Ini adalah transformasi paling efisien yang tersedia di antara format gambar standar.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Kasus penggunaan dan kompatibilitas WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Publikasi web — Chrome, Firefox, Safari, Edge, dan semua browser modern.',
|
|
150
|
+
'Jejaring sosial — Instagram, Twitter, Facebook menerima WebP secara native.',
|
|
151
|
+
'Aplikasi web dan PWA — ukuran minimum untuk pemuatan instan.',
|
|
152
|
+
'Pengarsipan efisien — menggantikan koleksi BMP warisan dengan penghematan gigabyte.',
|
|
153
|
+
'Pemasaran email — gambar ringan yang memuat cepat di klien email modern mana pun.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Kesimpulan: Konversi paling berdampak dalam satu klik',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Jika Anda memiliki file BMP warisan dari Windows, tangkapan layar tanpa kompresi, atau gambar dari alat lama, mengubahnya ke WebP adalah tindakan paling berdampak yang dapat Anda lakukan untuk mengoptimalkan penyimpanan dan kinerja web Anda. Dengan alat kami, konversi instan, pribadi, dan tanpa batas — persis seperti yang seharusnya.',
|
|
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: 'id', 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 = 'convertitore-bmp-a-webp';
|
|
6
|
+
const title = 'Convertire BMP in WebP Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Converti le immagini BMP in WebP offline. Riduci file enormi a kilobyte. Senza caricare file su server. Gratuito, offline e completamente privato.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Trascina i file BMP...',
|
|
12
|
+
convertText: 'Per convertirli in WebP istantaneamente',
|
|
13
|
+
selectFiles: 'Seleziona i file',
|
|
14
|
+
processedFiles: 'File elaborati',
|
|
15
|
+
downloadAll: 'Scarica tutto (.zip)',
|
|
16
|
+
pending: 'In attesa',
|
|
17
|
+
bibliographyTitle: 'Riferimenti Bibliografici',
|
|
18
|
+
faqTitle: 'Domande Frequenti',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Perché i miei file BMP occupano 10 volte di più e cosa guadagno ad averli in WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'Il BMP salva mappe di pixel non compresse. Il WebP usa una compressione matematica per ridurre enormi BMP a meno di un megabyte mantenendo l\'immagine estremamente riconoscibile.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Devo registrare un account?',
|
|
29
|
+
answer:
|
|
30
|
+
'Non richiediamo email e il tuo materiale rimarrà isolato, poiché l\'elaborazione viene eseguita dal Javascript del browser installato sul tuo PC, senza invio remoto.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Posso trascinare molti file contemporaneamente?',
|
|
34
|
+
answer:
|
|
35
|
+
'Sì, puoi trascinare 50 o 100 file se il tuo hardware regge l\'elaborazione di tutti senza creare code.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Identificare i file grezzi',
|
|
42
|
+
text: 'Posiziona le tue collezioni di mappe bit in finestre pronte per il trasferimento.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Attivazione Nativa del Batch',
|
|
46
|
+
text: 'Proietta o trascina tutti i file sulla nostra tavola digitale.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Evacuazione del Batch WebP',
|
|
50
|
+
text: 'Clicca sui risultati e otterrai separatamente l\'immagine in disco dai micro-pesi o come file compressi immediati.',
|
|
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: 'Convertitore BMP a WebP: La Riduzione di Dimensioni Più Estrema Possibile',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Convertire BMP in WebP è, senza dubbio, la trasformazione più spettacolare che si possa fare con un\'immagine. Il formato BMP (Bitmap) è il formato più antico e pesante dell\'ecosistema digitale: memorizza ogni pixel senza alcun tipo di compressione, risultando in file che possono pesare 20, 50 o anche 100 volte più del loro equivalente moderno. Il WebP, sviluppato da Google, applica algoritmi di compressione di ultima generazione che riducono le dimensioni al minimo possibile mantenendo un\'eccellente qualità visiva.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Perché il BMP è così pesante e il WebP così efficiente?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Il formato BMP è nato negli anni \'80 per Windows, quando lo spazio su disco era enorme e la compressione non era una priorità. Ogni pixel viene salvato così com\'è, senza alcun algoritmo di riduzione: un\'immagine di 1920x1080 pixel in BMP occupa esattamente 5,93 MB, indipendentemente dal suo contenuto. Questo lo rende ideale per screenshot interni o editing senza perdite, ma completamente inappropriato per il web o l\'archiviazione moderna.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP utilizza una compressione predittiva basata su blocchi e trasformate DCT (la stessa tecnologia che sta alla base del video digitale), riuscendo a far sì che la stessa immagine da 1920x1080 occupi tra 80 KB e 300 KB. Ciò comporta una riduzione dal 95 al 99% rispetto al BMP originale. Inoltre, WebP supporta il canale alfa per le trasparenze e compressioni sia con perdita che senza perdita, offrendo una versatilità totale.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Confronto: Convertitori Cloud vs La Nostra Architettura Locale',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Convertitori Cloud',
|
|
98
|
+
description: 'Strumenti che caricano i tuoi file BMP su un server remoto per elaborarli.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Caricare un BMP da 20 MB richiede minuti con una connessione lenta',
|
|
103
|
+
'Le tue immagini rimangono memorizzate su server altrui',
|
|
104
|
+
'Limiti di dimensione che escludono file BMP di grandi dimensioni',
|
|
105
|
+
'Pubblicità invasiva e tracker di dati',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'La Nostra Architettura Locale',
|
|
110
|
+
description: 'Elaborazione diretta nel tuo browser tramite tecnologia Vanilla JS e Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Conversione istantanea senza trasferimento di rete',
|
|
115
|
+
'Privatatezza assoluta — 0 byte escono dal tuo dispositivo',
|
|
116
|
+
'Senza limiti di dimensione per file',
|
|
117
|
+
'Funziona senza connessione a Internet',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Come funziona la conversione tecnica nel browser',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Trascinando un file BMP, il browser lo legge come un Blob binario nella memoria RAM. Questo Blob viene caricato in un elemento <code>Image</code> di JavaScript, che lo decodifica usando il motore di immagini nativo. Successivamente, l\'immagine viene dipinta su un elemento <code>Canvas</code> HTML5 invisibile. Il Canvas funge da tela virtuale dove l\'immagine esiste nella sua forma pixel per pixel.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Una volta dipinta sul Canvas, eseguiamo il metodo <code>toBlob()</code> con il tipo MIME <code>image/webp</code> e il livello di qualità desiderato. Il browser applica internamente l\'algoritmo di compressione WebP e genera un nuovo Blob con il file risultante. Questo Blob viene convertito in un URL di download diretto che il tuo browser salva su disco. In nessun momento viene stabilita alcuna connessione di rete.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Il più grande salto di compressione possibile',
|
|
138
|
+
html: 'La conversione da BMP a WebP può ottenere una riduzione del 99% della dimensione del file. Un BMP da 20 MB può trasformarsi in un WebP di appena 200 KB con una qualità visiva praticamente identica. È la trasformazione più efficiente disponibile tra i formati di immagine standard.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Casi d\'uso e compatibilità di WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Pubblicazione web — Chrome, Firefox, Safari, Edge e tutti i browser moderni.',
|
|
150
|
+
'Social network — Instagram, Twitter, Facebook accettano WebP in modo nativo.',
|
|
151
|
+
'Applicazioni web e PWA — dimensioni minime per caricamento istantaneo.',
|
|
152
|
+
'Archiviazione efficiente — sostituisce collezioni di BMP legacy risparmiando gigabyte.',
|
|
153
|
+
'Email marketing — immagini leggere che caricano velocemente in qualsiasi client mail moderno.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Conclusione: La conversione più impattante in un solo clic',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Se hai file BMP ereditati da Windows, screenshot non compressi o immagini da strumenti datati, convertirli in WebP è l\'azione più impattante che puoi intraprendere per ottimizzare lo spazio di archiviazione e le prestazioni web. Con il nostro strumento, la conversione è istantanea, privata e senza limiti — esattamente come dovrebbe essere.',
|
|
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: 'it', 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 = 'convert-bmp-to-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を1メガバイト未満にまで縮小しながら、画像を極めて鮮明に保つことができます。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'アカウントの登録は必要ですか?',
|
|
29
|
+
answer:
|
|
30
|
+
'メールアドレスは不要です。処理はお使いのPCにインストールされたブラウザの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: '結果をクリックすると、マイクロ重量の画像が個別に、または一括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: 'BMPからWebPへのコンバーター:可能な限り最も極端なサイズ削減',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMPをWebPに変換することは、間違いなく画像に対して行える最も劇的な変化です。BMP(ビットマップ)はデジタルエコシステムの中で最も古く、最も重い形式です。各ピクセルを一切圧縮せずに保存するため、最新の形式に比べてファイルサイズが20倍、50倍、あるいは100倍にもなることがあります。Googleによって開発されたWebPは、最新世代の圧縮アルゴリズムを適用し、優れた視覚的品質を維持しながら、サイズを可能な限り最小限に抑えます。',
|
|
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 MBになります。これは内部的なスクリーンショットやロスレス編集には理想的ですが、ウェブや現代的なストレージには全く適していません。',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebPは、ブロックベースの予測圧縮とDCT変換(デジタルビデオの基盤となるのと同じ技術)を使用して、同じ1920x1080の画像サイズを80 KBから300 KBの間に収めます。これは、元のBMPと比較して95%から99%の削減に相当します。さらに、WebPは透明度のためのアルファチャンネルをサポートし、非可逆圧縮と可逆圧縮の両方を提供、あらゆる用途に対応します。',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: '比較:クラウドコンバーター vs 当サイトのローカルアーキテクチャ',
|
|
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
|
+
'低速な接続では20 MBのBMPのアップロードに数分かかる',
|
|
103
|
+
'画像は他人のサーバーに保存されたままになる',
|
|
104
|
+
'巨大なBMPファイルを排除するサイズ制限がある',
|
|
105
|
+
'押し付けがましい広告とデータトラッカー',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '当サイトのローカルアーキテクチャ',
|
|
110
|
+
description: 'Vanilla JSテクノロジーを使用してブラウザ上で直接処理。',
|
|
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としてRAMメモリに読み込みます。このBlobはJavaScriptの<code>Image</code>要素に読み込まれ、ネイティブの画像エンジンを使用してデコードされます。次に、画像は不可視のHTML5 <code>Canvas</code>要素に描画されます。キャンバスは、画像がピクセル単位で存在する仮想のキャンバスとして機能します。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'キャンバスに描画された後、MIMEタイプ<code>image/webp</code>と希望する品質レベルを指定して<code>toBlob()</code>メソッドを実行します。ブラウザは内部的にWebP圧縮アルゴリズムを適用し、結果のファイルを含む新しいBlobを生成します。このBlobは、ブラウザがディスクに保存する直接ダウンロードURLに変わります。ネットワーク接続が行われることは一切ありません。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: '可能な限り最大の圧縮率の飛躍',
|
|
138
|
+
html: 'BMPからWebPへの変換は、ファイルサイズを99%削減することができます。20 MBのBMPは、視覚的にほとんど遜色のない品質で、わずか200 KB程度のWebPに変換可能です。これは、標準的な画像形式の間で利用可能な最も効率的な変換です。',
|
|
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
|
+
'メールマーケティング — 最新のメールクライアントで高速に読み込める軽量画像。',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '結論:ワンクリックで最もインパクトのある変換',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Windowsから引き継いだ古いBMPファイル、非圧縮のスクリーンショット、または古いツールの画像などがある場合、それらを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: 'ja', faq, howTo }),
|
|
178
|
+
};
|