@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,168 @@
|
|
|
1
|
+
import type { ImagenBase64LocaleContent } from '../index';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { ImageToBase64UI } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konwerter-obrazu-na-base64';
|
|
6
|
+
const title = 'Konwerter obrazu na Base64 Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Konwertuj dowolny obraz na kod Base64 i Data URI bezpośrednio w przeglądarce. Bez przesyłania plików. Za darmo, prywatnie i błyskawicznie.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageToBase64UI = {
|
|
11
|
+
dragTitle: 'Przeciągnij obraz tutaj',
|
|
12
|
+
dragSubtext: 'lub kliknij, aby przeglądać pliki',
|
|
13
|
+
formatBadge: 'Obsługuje JPG, PNG, WEBP, SVG, GIF',
|
|
14
|
+
dataUriLabel: 'Data URI (Gotowy dla CSS / HTML src="")',
|
|
15
|
+
base64Label: 'Tylko Base64 (Czysty zakodowany tekst)',
|
|
16
|
+
copyBtn: 'Kopiuj',
|
|
17
|
+
dataUriPlaceholder: 'Prześlij obraz, aby zobaczyć kod Data URI...',
|
|
18
|
+
base64Placeholder: 'Prześlij obraz, aby zobaczyć czysty kod Base64...',
|
|
19
|
+
toastMessage: 'Kod skopiowany do schowka!',
|
|
20
|
+
invalidImageAlert: 'Proszę przesłać poprawny plik obrazu.',
|
|
21
|
+
bibliographyTitle: 'Bibliografia',
|
|
22
|
+
faqTitle: 'Często Zadawane Pytania',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const faq: ImagenBase64LocaleContent['faq'] = [
|
|
26
|
+
{
|
|
27
|
+
question: 'Co to jest Base64 i do czego służy w web developmencie?',
|
|
28
|
+
answer:
|
|
29
|
+
'Base64 to system kodowania, który konwertuje dane binarne na ciąg tekstowy ASCII. W tworzeniu stron internetowych służy do osadzania obrazów bezpośrednio w plikach HTML lub CSS za pomocą Data URI, co zmniejsza liczbę żądań HTTP do serwera.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'Czy konwertowanie moich obrazów na Base64 tutaj jest bezpieczne?',
|
|
33
|
+
answer:
|
|
34
|
+
'Absolutnie bezpieczne i prywatne. Nasze narzędzie działa w 100% lokalnie w Twojej przeglądarce. Twoje obrazy nigdy nie są przesyłane ani przetwarzane na żadnym zewnętrznym serwerze.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Jakie formaty obrazów obsługuje konwerter Base64?',
|
|
38
|
+
answer:
|
|
39
|
+
'Narzędzie jest kompatybilne z plikami JPG, PNG, GIF, WebP, a nawet wektorowymi plikami SVG. Podczas ładowania obrazu automatycznie wykryje jego typ MIME, aby wygenerować dokładny kod Data URI.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Kiedy NIE należy używać obrazów Base64?',
|
|
43
|
+
answer:
|
|
44
|
+
'Należy unikać używania obrazów Base64 w przypadku dużych fotografii lub obrazów o wysokiej rozdzielczości. Kod Base64 zajmuje około 33% więcej miejsca niż oryginalny plik binarny, co może nadmiernie zwiększyć rozmiar arkuszy stylów CSS lub dokumentów HTML.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const howTo: ImagenBase64LocaleContent['howTo'] = [
|
|
49
|
+
{
|
|
50
|
+
name: 'Przeciągnij lub wybierz obraz',
|
|
51
|
+
text: 'Przenieś dowolny obraz (JPG, PNG, WebP, SVG, GIF) do obszaru przesyłania, aby rozpocząć konwersję.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Skopiuj wygenerowany kod',
|
|
55
|
+
text: 'Zobaczysz dwa pola tekstowe: pełny Data URI (gotowy do użycia w src="" lub CSS) oraz czysty Base64 do innych zastosowań.',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'Użyj kodu w swoim projekcie',
|
|
59
|
+
text: 'Wklej Data URI bezpośrednio do src tagu img lub w CSS jako background-image, bez konieczności używania zewnętrznych plików.',
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
const bibliography: ImagenBase64LocaleContent['bibliography'] = [
|
|
64
|
+
{
|
|
65
|
+
name: 'MDN Web Docs: Data URIs',
|
|
66
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Base64 Encoding RFC 4648',
|
|
70
|
+
url: 'https://datatracker.ietf.org/doc/html/rfc4648',
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
const seo: ImagenBase64LocaleContent['seo'] = [
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Konwerter obrazu na Base64: Osadzaj obrazy bez żądań HTTP',
|
|
78
|
+
level: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Base64 to technika kodowania, która przekształca dane binarne — takie jak obraz — w czysty ciąg tekstowy ASCII. Wynikiem jest Data URI: samodzielny adres URL zaczynający się od <code>data:image/png;base64,...</code>, który zawiera cały zakodowany obraz. Osadzając ten kod bezpośrednio w HTML, CSS lub JSON, obraz ładuje się bez żadnego dodatkowego żądania HTTP do serwera — zero opóźnień sieciowych, natychmiastowe ładowanie.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'title',
|
|
86
|
+
text: 'Kiedy używać obrazów Base64',
|
|
87
|
+
level: 3,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'Głównym argumentem za Base64 jest wyeliminowanie żądań sieciowych. Każdy obraz na stronie internetowej oznacza żądanie HTTP z jego narzutem połączenia, DNS, handshake TLS i opóźnieniem. W przypadku bardzo małych, krytycznych obrazów — głównego logo aplikacji, favicony, ikony interfejsu — osadzenie ich w Base64 w CSS lub HTML eliminuje ten koszt i gwarantuje, że zostaną wyświetlone natychmiast, nawet zanim przeglądarka zdąży cokolwiek zapisać w pamięci podręcznej.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Ta technika jest szczególnie skuteczna w aplikacjach typu SPA (Single Page Application), gdzie paczka JavaScript i CSS jest generowana w czasie budowania: osadzenie małych obrazów w paczce gwarantuje, że załadują się one wraz z kodem bez dodatkowych żądań. Jest to również niezbędne w przypadku wiadomości e-mail HTML, w których klienci pocztowi blokują zewnętrzne obrazy, ale prawie zawsze wyświetlają osadzone Data URI.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Zastosowania obrazów Base64',
|
|
100
|
+
level: 3,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'list',
|
|
104
|
+
icon: 'mdi:check-circle',
|
|
105
|
+
items: [
|
|
106
|
+
'HTML inline: <code><img src="data:image/png;base64,..."></code> dla krytycznych ikon.',
|
|
107
|
+
'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> dla ikon SVG interfejsu.',
|
|
108
|
+
'JSON i API REST: wysyłaj obrazy jako dane tekstowe w payloadach JSON.',
|
|
109
|
+
'E-maile HTML: osadzone obrazy wyświetlane nawet wtedy, gdy klient blokuje zewnętrzne adresy URL.',
|
|
110
|
+
'Osadzanie w SVG: osadzaj obrazy rastrowe wewnątrz plików SVG jako dane inline.',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: 'Jak działa konwersja w przeglądarce',
|
|
116
|
+
level: 3,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Podczas wyboru lub przeciągania obrazu, API <code>FileReader</code> przeglądarki odczytuje go bezpośrednio z dysku jako dane binarne w pamięci RAM. Metoda <code>readAsDataURL()</code> konwertuje te binarne bajty na ich reprezentację Base64 przy użyciu algorytmu RFC 4648 — każde 3 bajty oryginalnych danych są reprezentowane przez 4 znaki ASCII z alfabetu Base64. Wynik zawiera automatycznie wykryty poprawny typ MIME.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'tip',
|
|
124
|
+
title: 'Używaj tylko dla małych obrazów (poniżej 10 KB)',
|
|
125
|
+
html: 'Base64 zwiększa rozmiar pliku o około 33%: obraz o rozmiarze 10 KB staje się tekstem o wadze ~13,3 KB. W przypadku małych ikon i logo koszt ten jest minimalny, a wyeliminowanie żądania HTTP to rekompensuje. W przypadku dużych fotografii lub obrazów narzut rozmiaru jest znaczący — dla dużych plików zawsze używaj sieci CDN.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Kiedy NIE używać Base64',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'tip',
|
|
134
|
+
title: 'Unikaj Base64 dla dużych obrazów — użyj sieci CDN',
|
|
135
|
+
html: 'Jeśli masz obrazy większe niż 10-20 KB, Base64 pogarsza wydajność: zwiększa rozmiar HTML/CSS, uniemożliwia przeglądarce niezależne buforowanie obrazu i blokuje renderowanie, podczas gdy parser przetwarza gigantyczny ciąg znaków. W przypadku dużych obrazów zawsze korzystaj z sieci CDN z odpowiednimi nagłówkami pamięci podręcznej.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'Kompatybilność i prywatność',
|
|
140
|
+
level: 3,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Data URI są kompatybilne ze 100% nowoczesnych przeglądarek i większością klientów poczty e-mail. Nasze narzędzie przetwarza wszystko lokalnie za pomocą API FileReader — Twoje obrazy nigdy nie opuszczają Twojego urządzenia. Dzięki temu nadaje się do obrazów firmowych, prywatnych zrzutów ekranu lub wszelkich poufnych treści wizualnych, które musisz przekonwertować na Base64.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Podsumowanie: najszybsze i najbezpieczniejsze narzędzie do osadzania',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: 'Konwersja obrazów na Base64 to specyficzna, ale bardzo potężna technika, jeśli jest stosowana prawidłowo. Używaj jej w przypadku małych, krytycznych obrazów, gdzie brak żądań HTTP robi różnicę, i unikaj jej w przypadku dużych obrazów, gdzie sieć CDN zawsze wygrywa. Dzięki naszemu narzędziu uzyskasz Data URI w mgnieniu oka, bez przesyłania czegokolwiek na serwer.',
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
export const content: ImagenBase64LocaleContent = {
|
|
159
|
+
slug,
|
|
160
|
+
title,
|
|
161
|
+
description,
|
|
162
|
+
ui,
|
|
163
|
+
seo,
|
|
164
|
+
faq,
|
|
165
|
+
bibliography,
|
|
166
|
+
howTo,
|
|
167
|
+
schemas: generateSchemas({ title, description, inLanguage: 'pl', faq, howTo }),
|
|
168
|
+
};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import type { ImageToBase64UI } from '../index';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { ImagenBase64LocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'conversor-de-imagem-para-base64';
|
|
6
|
+
const title = 'Conversor de Imagem para Base64 Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Converta qualquer imagem para código Base64 e Data URI diretamente no seu navegador. Sem upload de arquivos. Gratuito, privado e instantâneo.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageToBase64UI = {
|
|
11
|
+
dragTitle: 'Arraste a sua imagem para aqui',
|
|
12
|
+
dragSubtext: 'ou clique para procurar os seus arquivos',
|
|
13
|
+
formatBadge: 'Suporta JPG, PNG, WEBP, SVG, GIF',
|
|
14
|
+
dataUriLabel: 'Data URI (Pronto para CSS / HTML src="")',
|
|
15
|
+
base64Label: 'Apenas Base64 (Texto codificado simples)',
|
|
16
|
+
copyBtn: 'Copiar',
|
|
17
|
+
dataUriPlaceholder: 'Carregue uma imagem para ver o código Data URI...',
|
|
18
|
+
base64Placeholder: 'Carregue uma imagem para ver o código Base64 puro...',
|
|
19
|
+
toastMessage: 'Código copiado para a área de transferência!',
|
|
20
|
+
invalidImageAlert: 'Por favor, carregue um arquivo de imagem válido.',
|
|
21
|
+
bibliographyTitle: 'Referências Bibliográficas',
|
|
22
|
+
faqTitle: 'Perguntas Frequentes',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const faq: ImagenBase64LocaleContent['faq'] = [
|
|
26
|
+
{
|
|
27
|
+
question: 'O que é Base64 e para que é utilizado no desenvolvimento web?',
|
|
28
|
+
answer:
|
|
29
|
+
'Base64 é um sistema de codificação que converte dados binários numa string de texto ASCII. No desenvolvimento web, é utilizado para incorporar imagens diretamente dentro de arquivos HTML ou CSS através de Data URIs, reduzindo o número de pedidos HTTP ao servidor.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'É seguro converter as minhas imagens para Base64 aqui?',
|
|
33
|
+
answer:
|
|
34
|
+
'Absolutamente seguro e privado. A nossa ferramenta funciona 100% localmente no seu navegador. As suas imagens nunca são carregadas ou processadas em qualquer servidor externo.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Que formatos de imagem o conversor Base64 suporta?',
|
|
38
|
+
answer:
|
|
39
|
+
'A ferramenta é compatível com arquivos JPG, PNG, GIF, WebP e até arquivos vetoriais SVG. Ao carregar a imagem, detetará automaticamente o seu tipo MIME para gerar o código Data URI exato.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Quando é que NÃO devo utilizar imagens Base64?',
|
|
43
|
+
answer:
|
|
44
|
+
'Deve evitar utilizar imagens Base64 para fotografias grandes ou imagens de alta resolução. O código Base64 ocupa aproximadamente 33% mais espaço do que o arquivo binário original, o que pode inflar excessivamente as suas folhas de estilo CSS ou documentos HTML.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const howTo: ImagenBase64LocaleContent['howTo'] = [
|
|
49
|
+
{
|
|
50
|
+
name: 'Arraste ou Selecione a sua Imagem',
|
|
51
|
+
text: 'Mova qualquer imagem (JPG, PNG, WebP, SVG, GIF) para a área de carregamento para iniciar a conversão.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Copie o Código Gerado',
|
|
55
|
+
text: 'Verá duas áreas de texto: o Data URI completo (pronto para usar em src="" ou CSS) e o Base64 puro para outros usos.',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'Utilize o Código no seu Projeto',
|
|
59
|
+
text: 'Cole o Data URI diretamente no src de uma tag img ou no seu CSS como background-image sem necessidade de arquivos externos.',
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
const bibliography: ImagenBase64LocaleContent['bibliography'] = [
|
|
64
|
+
{
|
|
65
|
+
name: 'MDN Web Docs: Data URIs',
|
|
66
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Base64 Encoding RFC 4648',
|
|
70
|
+
url: 'https://datatracker.ietf.org/doc/html/rfc4648',
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
const seo: ImagenBase64LocaleContent['seo'] = [
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Conversor de Imagem para Base64: Incorpore Imagens Sem Pedidos HTTP',
|
|
78
|
+
level: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Base64 é uma técnica de codificação que transforma dados binários — como uma imagem — numa string de texto ASCII pura. O resultado é um Data URI: um URL autónomo que começa com <code>data:image/png;base64,...</code> e contém toda a imagem codificada. Ao incorporar este código diretamente no seu HTML, CSS ou JSON, a imagem é carregada sem qualquer pedido HTTP adicional ao servidor — latência de rede zero, carregamento instantâneo.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'title',
|
|
86
|
+
text: 'Quando utilizar imagens Base64',
|
|
87
|
+
level: 3,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'O principal argumento a favor do Base64 é a eliminação de pedidos de rede. Cada imagem numa página web significa um pedido HTTP com o seu overhead de ligação, DNS, handshake TLS e latência. Para imagens críticas muito pequenas — o logótipo principal da aplicação, favicon, um ícone de UI — incorporá-las em Base64 no CSS ou no HTML elimina esse custo e garante que sejam exibidas instantaneamente, mesmo antes de o navegador ter colocado algo em cache.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Esta técnica é particularmente poderosa em apps SPA (Single Page Application) onde o bundle JavaScript e CSS é gerado no momento da build: incorporar pequenas imagens no bundle garante que sejam carregadas juntamente com o código sem pedidos adicionais. Também é indispensável para e-mails HTML, onde os clientes de correio bloqueiam imagens externas mas exibem quase sempre Data URIs incorporados.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Casos de uso para imagens Base64',
|
|
100
|
+
level: 3,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'list',
|
|
104
|
+
icon: 'mdi:check-circle',
|
|
105
|
+
items: [
|
|
106
|
+
'HTML inline: <code><img src="data:image/png;base64,..."></code> para ícones críticos.',
|
|
107
|
+
'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> para SVGs de UI.',
|
|
108
|
+
'APIs JSON e REST: envie imagens como dados de texto em payloads JSON.',
|
|
109
|
+
'E-mails HTML: imagens incorporadas que são exibidas mesmo quando o cliente bloqueia URLs externos.',
|
|
110
|
+
'Incorporação em SVG: incorpore imagens raster dentro de arquivos SVG como dados inline.',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: 'Como funciona a conversão no navegador',
|
|
116
|
+
level: 3,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Quando seleciona ou arrasta uma imagem, a API <code>FileReader</code> do navegador lê-a diretamente do disco como dados binários na RAM. O método <code>readAsDataURL()</code> converte esses bytes binários na sua representação Base64 utilizando o algoritmo RFC 4648 — a cada 3 bytes de dados originais são representados como 4 caracteres ASCII do alfabeto Base64. O resultado inclui o tipo MIME correto detetado automaticamente.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'tip',
|
|
124
|
+
title: 'Utilize apenas para imagens pequenas (abaixo de 10 KB)',
|
|
125
|
+
html: 'O Base64 aumenta o tamanho do arquivo em aproximadamente 33%: uma imagem de 10 KB torna-se ~13,3 KB de texto. Para ícones e logótipos pequenos, este custo é mínimo e a eliminação do pedido HTTP compensa-o. Para fotografias ou imagens grandes, o excesso de tamanho é significativo — utilize sempre um CDN para imagens grandes.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Quando NÃO utilizar Base64',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'tip',
|
|
134
|
+
title: 'Evite Base64 para imagens grandes — utilize um CDN',
|
|
135
|
+
html: 'Se tiver imagens maiores que 10-20 KB, o Base64 prejudica o desempenho: infla o tamanho do HTML/CSS, impede que o navegador coloque a imagem em cache de forma independente e bloqueia a renderização enquanto o parser processa a string gigante. Para imagens grandes, sirva sempre a partir de un CDN com cabeçalhos de cache apropriados.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'Compatibilidade e privacidade',
|
|
140
|
+
level: 3,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Os Data URIs são compatíveis com 100% dos navegadores modernos e a maioria dos clientes de e-mail. A nossa ferramenta processa tudo localmente através da API FileReader — as suas imagens nunca saem do seu dispositivo. Isto torna-a adequada para imagens corporativas, capturas de ecrã privadas ou qualquer conteúdo visual confidencial que precise de converter para Base64.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Conclusão: A ferramenta de incorporação mais rápida e privada',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: 'Converter imagens para Base64 é uma técnica específica mas muito poderosa quando aplicada corretamente. Utilize-a para imagens pequenas e críticas onde a ausência de pedidos HTTP faz a diferença, e evite-a para imagens grandes onde um CDN ganha sempre. Com a nossa ferramenta, obtém o Data URI num instante, sem carregar nada para qualquer servidor.',
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
export const content: ImagenBase64LocaleContent = {
|
|
158
|
+
slug,
|
|
159
|
+
title,
|
|
160
|
+
description,
|
|
161
|
+
ui,
|
|
162
|
+
seo,
|
|
163
|
+
faq,
|
|
164
|
+
bibliography,
|
|
165
|
+
howTo,
|
|
166
|
+
schemas: generateSchemas({
|
|
167
|
+
title,
|
|
168
|
+
description,
|
|
169
|
+
inLanguage: 'pt',
|
|
170
|
+
faq,
|
|
171
|
+
howTo,
|
|
172
|
+
}),
|
|
173
|
+
};
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import type { ImagenBase64LocaleContent } from '../index';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { ImageToBase64UI } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konverter-izobrazheniya-v-base64';
|
|
6
|
+
const title = 'Конвертер изображений в Base64 онлайн';
|
|
7
|
+
const description =
|
|
8
|
+
'Конвертируйте любое изображение в код Base64 и Data URI прямо в браузере. Без загрузки файлов на сервер. Бесплатно, приватно и мгновенно.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageToBase64UI = {
|
|
11
|
+
dragTitle: 'Перетащите изображение сюда',
|
|
12
|
+
dragSubtext: 'или нажмите, чтобы выбрать файлы',
|
|
13
|
+
formatBadge: 'Поддерживаются JPG, PNG, WEBP, SVG, GIF',
|
|
14
|
+
dataUriLabel: 'Data URI (готово для CSS / HTML src="")',
|
|
15
|
+
base64Label: 'Только Base64 (чистый закодированный текст)',
|
|
16
|
+
copyBtn: 'Копировать',
|
|
17
|
+
dataUriPlaceholder: 'Загрузите изображение, чтобы увидеть код Data URI...',
|
|
18
|
+
base64Placeholder: 'Загрузите изображение, чтобы увидеть чистый код Base64...',
|
|
19
|
+
toastMessage: 'Код скопирован в буфер обмена!',
|
|
20
|
+
invalidImageAlert: 'Пожалуйста, загрузите корректный файл изображения.',
|
|
21
|
+
bibliographyTitle: 'Библиографические ссылки',
|
|
22
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const faq: ImagenBase64LocaleContent['faq'] = [
|
|
26
|
+
{
|
|
27
|
+
question: 'Что такое Base64 и для чего он используется в веб-разработке?',
|
|
28
|
+
answer:
|
|
29
|
+
'Base64 — это система кодирования, которая преобразует бинарные данные в текстовую строку ASCII. В веб-разработке она используется для вставки изображений непосредственно в файлы HTML или CSS через Data URI, что сокращает количество HTTP-запросов к серверу.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'Безопасно ли конвертировать здесь мои изображения в Base64?',
|
|
33
|
+
answer:
|
|
34
|
+
'Абсолютно безопасно и приватно. Наш инструмент работает на 100% локально в вашем браузере. Ваши изображения никогда не загружаются и не обрабатываются на внешних серверах.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Какие форматы изображений поддерживает конвертер Base64?',
|
|
38
|
+
answer:
|
|
39
|
+
'Инструмент совместим с файлами JPG, PNG, GIF, WebP и даже векторными SVG. При загрузке изображения он автоматически определит MIME-тип для генерации точного кода Data URI.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Когда НЕ следует использовать изображения в Base64?',
|
|
43
|
+
answer:
|
|
44
|
+
'Следует избегать использования Base64 для больших фотографий или изображений с высоким разрешением. Код Base64 занимает примерно на 33% больше объема, чем исходный бинарный файл, что может чрезмерно раздуть ваши таблицы стилей CSS или HTML-документы.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const howTo: ImagenBase64LocaleContent['howTo'] = [
|
|
49
|
+
{
|
|
50
|
+
name: 'Перетащите или выберите изображение',
|
|
51
|
+
text: 'Переместите любое изображение (JPG, PNG, WebP, SVG, GIF) в область загрузки, чтобы начать конвертацию.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Скопируйте сгенерированный код',
|
|
55
|
+
text: 'Вы увидите два текстовых поля: полный Data URI (готовый к использованию в src="" или CSS) и чистый Base64 для других целей.',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'Используйте код в своем проекте',
|
|
59
|
+
text: 'Вставьте Data URI непосредственно в src тега img или в CSS как background-image без необходимости использования внешних файлов.',
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
const bibliography: ImagenBase64LocaleContent['bibliography'] = [
|
|
64
|
+
{
|
|
65
|
+
name: 'MDN Web Docs: Data URIs',
|
|
66
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Кодирование Base64 RFC 4648',
|
|
70
|
+
url: 'https://datatracker.ietf.org/doc/html/rfc4648',
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
const seo: ImagenBase64LocaleContent['seo'] = [
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Конвертер изображений в Base64: Вставка без HTTP запросов',
|
|
78
|
+
level: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Base64 — это техника кодирования, которая преобразует бинарные данные (например, изображение) в чистую текстовую строку ASCII. Результатом является Data URI: самодостаточный URL, который начинается с <code>data:image/png;base64,...</code> и содержит все закодированное изображение. Вставляя этот код непосредственно в HTML, CSS или JSON, изображение загружается без дополнительных HTTP-запросов к серверу — нулевая сетевая задержка, мгновенная загрузка.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'title',
|
|
86
|
+
text: 'Когда использовать изображения в Base64',
|
|
87
|
+
level: 3,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'Основной аргумент в пользу Base64 — это исключение сетевых запросов. Каждое изображение на веб-странице означает HTTP-запрос со своими накладными расходами на соединение, DNS, TLS-рукопожатие и задержку. Для очень маленьких критически важных изображений — основного логотипа приложения, фавикона, иконки интерфейса — вставка их в Base64 в CSS или HTML исключает эти затраты и гарантирует их мгновенное отображение еще до того, как браузер что-либо закеширует.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Эта техника особенно эффективна в SPA-приложениях (Single Page Application), где бандл JavaScript и CSS генерируется во время сборки: вставка небольших изображений в бандл гарантирует их загрузку вместе с кодом без дополнительных запросов. Это также незаменимо для HTML-писем, где почтовые клиенты блокируют внешние изображения, но почти всегда отображают встроенные Data URI.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Варианты использования изображений в Base64',
|
|
100
|
+
level: 3,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'list',
|
|
104
|
+
icon: 'mdi:check-circle',
|
|
105
|
+
items: [
|
|
106
|
+
'HTML inline: <code><img src="data:image/png;base64,..."></code> для критических иконок.',
|
|
107
|
+
'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> для UI SVG.',
|
|
108
|
+
'JSON и REST API: передача изображений в виде текстовых данных в JSON.',
|
|
109
|
+
'Электронные письма в формате HTML: встроенные изображения, которые отображаются, даже если клиент блокирует внешние URL-адреса.',
|
|
110
|
+
'Вставка в SVG: вставка растровых изображений в файлы SVG в виде встроенных данных.',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: 'Как работает конвертация в браузере',
|
|
116
|
+
level: 3,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Когда вы выбираете или перетаскиваете изображение, API <code>FileReader</code> браузера читает его непосредственно с диска как бинарные данные в оперативную память. Метод <code>readAsDataURL()</code> преобразует эти бинарные байты в их представление Base64 с использованием алгоритма RFC 4648 — каждые 3 байта исходных данных представляются как 4 символа ASCII из алфавита Base64. Результат включает автоматически определенный корректный MIME-тип.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'tip',
|
|
124
|
+
title: 'Используйте только для маленьких изображений (до 10 КБ)',
|
|
125
|
+
html: 'Base64 увеличивает размер файла примерно на 33%: изображение весом 10 КБ превращается в ~13,3 КБ текста. Для небольших иконок и логотипов эти затраты минимальны, а отсутствие HTTP-запроса компенсирует их. Для фотографий или больших изображений накладные расходы на размер значительны — для больших изображений всегда используйте CDN.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Когда НЕ использовать Base64',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'tip',
|
|
134
|
+
title: 'Избегайте Base64 для больших изображений — используйте CDN',
|
|
135
|
+
html: 'Если у вас есть изображения размером более 10-20 КБ, Base64 вредит производительности: он раздувает размер HTML/CSS, мешает браузеру кешировать изображение независимо и блокирует рендеринг, пока парсер обрабатывает гигантскую строку. Для больших изображений всегда используйте CDN с соответствующими заголовками кеширования.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'Совместимость и приватность',
|
|
140
|
+
level: 3,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Data URI совместимы со 100% современных браузеров и большинством почтовых клиентов. Наш инструмент обрабатывает все локально через API FileReader — ваши изображения никогда не покидают ваше устройство. Это делает его подходящим для корпоративных изображений, частных скриншотов или любого конфиденциального визуального контента, который вам нужно конвертировать в Base64.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Заключение: Самый быстрый и приватный инструмент для вставки',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: 'Конвертация изображений в Base64 — это узкоспециализированная, но очень мощная техника при правильном применении. Используйте ее для небольших критически важных изображений, где отсутствие HTTP-запросов имеет значение, и избегайте ее для больших изображений, где CDN всегда выигрывает. С нашим инструментом вы получите Data URI мгновенно, ничего не загружая на сервер.',
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
export const content: ImagenBase64LocaleContent = {
|
|
159
|
+
slug,
|
|
160
|
+
title,
|
|
161
|
+
description,
|
|
162
|
+
ui,
|
|
163
|
+
seo,
|
|
164
|
+
faq,
|
|
165
|
+
bibliography,
|
|
166
|
+
howTo,
|
|
167
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ru', faq, howTo }),
|
|
168
|
+
};
|