@jjlmoya/utils-converters 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +60 -59
- package/src/shared/logic/schemas.ts +57 -0
- package/src/tests/faq_count.test.ts +13 -4
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/avifAJpg/i18n/de.ts +178 -0
- package/src/tool/avifAJpg/i18n/en.ts +2 -12
- package/src/tool/avifAJpg/i18n/es.ts +2 -12
- package/src/tool/avifAJpg/i18n/fr.ts +2 -12
- package/src/tool/avifAJpg/i18n/id.ts +178 -0
- package/src/tool/avifAJpg/i18n/it.ts +178 -0
- package/src/tool/avifAJpg/i18n/ja.ts +178 -0
- package/src/tool/avifAJpg/i18n/ko.ts +178 -0
- package/src/tool/avifAJpg/i18n/nl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pt.ts +178 -0
- package/src/tool/avifAJpg/i18n/ru.ts +178 -0
- package/src/tool/avifAJpg/i18n/sv.ts +178 -0
- package/src/tool/avifAJpg/i18n/tr.ts +178 -0
- package/src/tool/avifAJpg/i18n/zh.ts +178 -0
- package/src/tool/avifAJpg/index.ts +13 -1
- package/src/tool/avifAPng/i18n/de.ts +178 -0
- package/src/tool/avifAPng/i18n/en.ts +2 -12
- package/src/tool/avifAPng/i18n/es.ts +2 -12
- package/src/tool/avifAPng/i18n/fr.ts +2 -12
- package/src/tool/avifAPng/i18n/id.ts +178 -0
- package/src/tool/avifAPng/i18n/it.ts +178 -0
- package/src/tool/avifAPng/i18n/ja.ts +178 -0
- package/src/tool/avifAPng/i18n/ko.ts +178 -0
- package/src/tool/avifAPng/i18n/nl.ts +178 -0
- package/src/tool/avifAPng/i18n/pl.ts +178 -0
- package/src/tool/avifAPng/i18n/pt.ts +178 -0
- package/src/tool/avifAPng/i18n/ru.ts +178 -0
- package/src/tool/avifAPng/i18n/sv.ts +178 -0
- package/src/tool/avifAPng/i18n/tr.ts +178 -0
- package/src/tool/avifAPng/i18n/zh.ts +178 -0
- package/src/tool/avifAPng/index.ts +13 -1
- package/src/tool/avifAWebp/i18n/de.ts +178 -0
- package/src/tool/avifAWebp/i18n/en.ts +2 -12
- package/src/tool/avifAWebp/i18n/es.ts +2 -12
- package/src/tool/avifAWebp/i18n/fr.ts +2 -12
- package/src/tool/avifAWebp/i18n/id.ts +178 -0
- package/src/tool/avifAWebp/i18n/it.ts +178 -0
- package/src/tool/avifAWebp/i18n/ja.ts +178 -0
- package/src/tool/avifAWebp/i18n/ko.ts +178 -0
- package/src/tool/avifAWebp/i18n/nl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pt.ts +178 -0
- package/src/tool/avifAWebp/i18n/ru.ts +178 -0
- package/src/tool/avifAWebp/i18n/sv.ts +178 -0
- package/src/tool/avifAWebp/i18n/tr.ts +178 -0
- package/src/tool/avifAWebp/i18n/zh.ts +178 -0
- package/src/tool/avifAWebp/index.ts +13 -1
- package/src/tool/bmpAJpg/i18n/de.ts +178 -0
- package/src/tool/bmpAJpg/i18n/en.ts +2 -12
- package/src/tool/bmpAJpg/i18n/es.ts +2 -12
- package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
- package/src/tool/bmpAJpg/i18n/id.ts +178 -0
- package/src/tool/bmpAJpg/i18n/it.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
- package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
- package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
- package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
- package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
- package/src/tool/bmpAJpg/index.ts +13 -1
- package/src/tool/bmpAPng/i18n/de.ts +177 -0
- package/src/tool/bmpAPng/i18n/en.ts +2 -12
- package/src/tool/bmpAPng/i18n/es.ts +2 -12
- package/src/tool/bmpAPng/i18n/fr.ts +2 -12
- package/src/tool/bmpAPng/i18n/id.ts +177 -0
- package/src/tool/bmpAPng/i18n/it.ts +177 -0
- package/src/tool/bmpAPng/i18n/ja.ts +177 -0
- package/src/tool/bmpAPng/i18n/ko.ts +177 -0
- package/src/tool/bmpAPng/i18n/nl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pt.ts +177 -0
- package/src/tool/bmpAPng/i18n/ru.ts +177 -0
- package/src/tool/bmpAPng/i18n/sv.ts +177 -0
- package/src/tool/bmpAPng/i18n/tr.ts +177 -0
- package/src/tool/bmpAPng/i18n/zh.ts +177 -0
- package/src/tool/bmpAPng/index.ts +13 -1
- package/src/tool/bmpAWebp/i18n/de.ts +178 -0
- package/src/tool/bmpAWebp/i18n/en.ts +2 -12
- package/src/tool/bmpAWebp/i18n/es.ts +2 -12
- package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
- package/src/tool/bmpAWebp/i18n/id.ts +178 -0
- package/src/tool/bmpAWebp/i18n/it.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
- package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
- package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
- package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
- package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
- package/src/tool/bmpAWebp/index.ts +13 -1
- package/src/tool/gifAJpg/i18n/de.ts +178 -0
- package/src/tool/gifAJpg/i18n/en.ts +2 -12
- package/src/tool/gifAJpg/i18n/es.ts +2 -12
- package/src/tool/gifAJpg/i18n/fr.ts +2 -12
- package/src/tool/gifAJpg/i18n/id.ts +178 -0
- package/src/tool/gifAJpg/i18n/it.ts +178 -0
- package/src/tool/gifAJpg/i18n/ja.ts +178 -0
- package/src/tool/gifAJpg/i18n/ko.ts +178 -0
- package/src/tool/gifAJpg/i18n/nl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pt.ts +178 -0
- package/src/tool/gifAJpg/i18n/ru.ts +178 -0
- package/src/tool/gifAJpg/i18n/sv.ts +178 -0
- package/src/tool/gifAJpg/i18n/tr.ts +178 -0
- package/src/tool/gifAJpg/i18n/zh.ts +178 -0
- package/src/tool/gifAJpg/index.ts +13 -1
- package/src/tool/gifAPng/i18n/de.ts +178 -0
- package/src/tool/gifAPng/i18n/en.ts +2 -12
- package/src/tool/gifAPng/i18n/es.ts +2 -12
- package/src/tool/gifAPng/i18n/fr.ts +2 -12
- package/src/tool/gifAPng/i18n/id.ts +178 -0
- package/src/tool/gifAPng/i18n/it.ts +178 -0
- package/src/tool/gifAPng/i18n/ja.ts +178 -0
- package/src/tool/gifAPng/i18n/ko.ts +178 -0
- package/src/tool/gifAPng/i18n/nl.ts +178 -0
- package/src/tool/gifAPng/i18n/pl.ts +178 -0
- package/src/tool/gifAPng/i18n/pt.ts +178 -0
- package/src/tool/gifAPng/i18n/ru.ts +178 -0
- package/src/tool/gifAPng/i18n/sv.ts +178 -0
- package/src/tool/gifAPng/i18n/tr.ts +178 -0
- package/src/tool/gifAPng/i18n/zh.ts +178 -0
- package/src/tool/gifAPng/index.ts +12 -0
- package/src/tool/gifAWebp/i18n/de.ts +178 -0
- package/src/tool/gifAWebp/i18n/en.ts +2 -12
- package/src/tool/gifAWebp/i18n/es.ts +2 -12
- package/src/tool/gifAWebp/i18n/fr.ts +2 -12
- package/src/tool/gifAWebp/i18n/id.ts +178 -0
- package/src/tool/gifAWebp/i18n/it.ts +178 -0
- package/src/tool/gifAWebp/i18n/ja.ts +178 -0
- package/src/tool/gifAWebp/i18n/ko.ts +178 -0
- package/src/tool/gifAWebp/i18n/nl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pt.ts +178 -0
- package/src/tool/gifAWebp/i18n/ru.ts +178 -0
- package/src/tool/gifAWebp/i18n/sv.ts +178 -0
- package/src/tool/gifAWebp/i18n/tr.ts +178 -0
- package/src/tool/gifAWebp/i18n/zh.ts +178 -0
- package/src/tool/gifAWebp/index.ts +12 -0
- package/src/tool/imagenBase64/i18n/de.ts +168 -0
- package/src/tool/imagenBase64/i18n/en.ts +2 -12
- package/src/tool/imagenBase64/i18n/es.ts +2 -12
- package/src/tool/imagenBase64/i18n/fr.ts +2 -12
- package/src/tool/imagenBase64/i18n/id.ts +168 -0
- package/src/tool/imagenBase64/i18n/it.ts +168 -0
- package/src/tool/imagenBase64/i18n/ja.ts +168 -0
- package/src/tool/imagenBase64/i18n/ko.ts +168 -0
- package/src/tool/imagenBase64/i18n/nl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pt.ts +173 -0
- package/src/tool/imagenBase64/i18n/ru.ts +168 -0
- package/src/tool/imagenBase64/i18n/sv.ts +168 -0
- package/src/tool/imagenBase64/i18n/tr.ts +168 -0
- package/src/tool/imagenBase64/i18n/zh.ts +168 -0
- package/src/tool/imagenBase64/index.ts +12 -0
- package/src/tool/jpgAIco/i18n/de.ts +183 -0
- package/src/tool/jpgAIco/i18n/en.ts +8 -13
- package/src/tool/jpgAIco/i18n/es.ts +13 -18
- package/src/tool/jpgAIco/i18n/fr.ts +9 -14
- package/src/tool/jpgAIco/i18n/id.ts +183 -0
- package/src/tool/jpgAIco/i18n/it.ts +183 -0
- package/src/tool/jpgAIco/i18n/ja.ts +183 -0
- package/src/tool/jpgAIco/i18n/ko.ts +183 -0
- package/src/tool/jpgAIco/i18n/nl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pt.ts +183 -0
- package/src/tool/jpgAIco/i18n/ru.ts +183 -0
- package/src/tool/jpgAIco/i18n/sv.ts +183 -0
- package/src/tool/jpgAIco/i18n/tr.ts +183 -0
- package/src/tool/jpgAIco/i18n/zh.ts +183 -0
- package/src/tool/jpgAIco/index.ts +12 -0
- package/src/tool/jpgAPng/i18n/de.ts +178 -0
- package/src/tool/jpgAPng/i18n/en.ts +2 -12
- package/src/tool/jpgAPng/i18n/es.ts +2 -12
- package/src/tool/jpgAPng/i18n/fr.ts +2 -12
- package/src/tool/jpgAPng/i18n/id.ts +178 -0
- package/src/tool/jpgAPng/i18n/it.ts +178 -0
- package/src/tool/jpgAPng/i18n/ja.ts +178 -0
- package/src/tool/jpgAPng/i18n/ko.ts +178 -0
- package/src/tool/jpgAPng/i18n/nl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pt.ts +178 -0
- package/src/tool/jpgAPng/i18n/ru.ts +178 -0
- package/src/tool/jpgAPng/i18n/sv.ts +178 -0
- package/src/tool/jpgAPng/i18n/tr.ts +178 -0
- package/src/tool/jpgAPng/i18n/zh.ts +178 -0
- package/src/tool/jpgAPng/index.ts +13 -1
- package/src/tool/jpgAWebp/i18n/de.ts +178 -0
- package/src/tool/jpgAWebp/i18n/en.ts +2 -12
- package/src/tool/jpgAWebp/i18n/es.ts +2 -12
- package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
- package/src/tool/jpgAWebp/i18n/id.ts +178 -0
- package/src/tool/jpgAWebp/i18n/it.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
- package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
- package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
- package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
- package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
- package/src/tool/jpgAWebp/index.ts +12 -0
- package/src/tool/pngAIco/i18n/de.ts +183 -0
- package/src/tool/pngAIco/i18n/en.ts +8 -13
- package/src/tool/pngAIco/i18n/es.ts +19 -24
- package/src/tool/pngAIco/i18n/fr.ts +20 -25
- package/src/tool/pngAIco/i18n/id.ts +183 -0
- package/src/tool/pngAIco/i18n/it.ts +183 -0
- package/src/tool/pngAIco/i18n/ja.ts +183 -0
- package/src/tool/pngAIco/i18n/ko.ts +183 -0
- package/src/tool/pngAIco/i18n/nl.ts +183 -0
- package/src/tool/pngAIco/i18n/pl.ts +183 -0
- package/src/tool/pngAIco/i18n/pt.ts +183 -0
- package/src/tool/pngAIco/i18n/ru.ts +183 -0
- package/src/tool/pngAIco/i18n/sv.ts +183 -0
- package/src/tool/pngAIco/i18n/tr.ts +183 -0
- package/src/tool/pngAIco/i18n/zh.ts +183 -0
- package/src/tool/pngAIco/index.ts +12 -0
- package/src/tool/pngAJpg/i18n/de.ts +191 -0
- package/src/tool/pngAJpg/i18n/en.ts +2 -12
- package/src/tool/pngAJpg/i18n/es.ts +2 -12
- package/src/tool/pngAJpg/i18n/fr.ts +2 -12
- package/src/tool/pngAJpg/i18n/id.ts +191 -0
- package/src/tool/pngAJpg/i18n/it.ts +191 -0
- package/src/tool/pngAJpg/i18n/ja.ts +191 -0
- package/src/tool/pngAJpg/i18n/ko.ts +191 -0
- package/src/tool/pngAJpg/i18n/nl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pt.ts +191 -0
- package/src/tool/pngAJpg/i18n/ru.ts +191 -0
- package/src/tool/pngAJpg/i18n/sv.ts +191 -0
- package/src/tool/pngAJpg/i18n/tr.ts +191 -0
- package/src/tool/pngAJpg/i18n/zh.ts +191 -0
- package/src/tool/pngAJpg/index.ts +13 -1
- package/src/tool/pngAWebp/i18n/de.ts +182 -0
- package/src/tool/pngAWebp/i18n/en.ts +2 -12
- package/src/tool/pngAWebp/i18n/es.ts +2 -12
- package/src/tool/pngAWebp/i18n/fr.ts +2 -12
- package/src/tool/pngAWebp/i18n/id.ts +182 -0
- package/src/tool/pngAWebp/i18n/it.ts +182 -0
- package/src/tool/pngAWebp/i18n/ja.ts +182 -0
- package/src/tool/pngAWebp/i18n/ko.ts +182 -0
- package/src/tool/pngAWebp/i18n/nl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pt.ts +182 -0
- package/src/tool/pngAWebp/i18n/ru.ts +182 -0
- package/src/tool/pngAWebp/i18n/sv.ts +182 -0
- package/src/tool/pngAWebp/i18n/tr.ts +182 -0
- package/src/tool/pngAWebp/i18n/zh.ts +182 -0
- package/src/tool/pngAWebp/index.ts +12 -0
- package/src/tool/svgAJpg/i18n/de.ts +178 -0
- package/src/tool/svgAJpg/i18n/en.ts +8 -13
- package/src/tool/svgAJpg/i18n/es.ts +8 -13
- package/src/tool/svgAJpg/i18n/fr.ts +2 -12
- package/src/tool/svgAJpg/i18n/id.ts +178 -0
- package/src/tool/svgAJpg/i18n/it.ts +178 -0
- package/src/tool/svgAJpg/i18n/ja.ts +178 -0
- package/src/tool/svgAJpg/i18n/ko.ts +178 -0
- package/src/tool/svgAJpg/i18n/nl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pt.ts +178 -0
- package/src/tool/svgAJpg/i18n/ru.ts +178 -0
- package/src/tool/svgAJpg/i18n/sv.ts +178 -0
- package/src/tool/svgAJpg/i18n/tr.ts +178 -0
- package/src/tool/svgAJpg/i18n/zh.ts +178 -0
- package/src/tool/svgAJpg/index.ts +12 -0
- package/src/tool/svgAPng/i18n/de.ts +178 -0
- package/src/tool/svgAPng/i18n/en.ts +8 -13
- package/src/tool/svgAPng/i18n/es.ts +31 -36
- package/src/tool/svgAPng/i18n/fr.ts +2 -12
- package/src/tool/svgAPng/i18n/id.ts +178 -0
- package/src/tool/svgAPng/i18n/it.ts +178 -0
- package/src/tool/svgAPng/i18n/ja.ts +178 -0
- package/src/tool/svgAPng/i18n/ko.ts +178 -0
- package/src/tool/svgAPng/i18n/nl.ts +178 -0
- package/src/tool/svgAPng/i18n/pl.ts +178 -0
- package/src/tool/svgAPng/i18n/pt.ts +178 -0
- package/src/tool/svgAPng/i18n/ru.ts +178 -0
- package/src/tool/svgAPng/i18n/sv.ts +178 -0
- package/src/tool/svgAPng/i18n/tr.ts +178 -0
- package/src/tool/svgAPng/i18n/zh.ts +178 -0
- package/src/tool/svgAPng/index.ts +12 -0
- package/src/tool/webpAIco/i18n/de.ts +183 -0
- package/src/tool/webpAIco/i18n/en.ts +8 -13
- package/src/tool/webpAIco/i18n/es.ts +9 -14
- package/src/tool/webpAIco/i18n/fr.ts +11 -16
- package/src/tool/webpAIco/i18n/id.ts +183 -0
- package/src/tool/webpAIco/i18n/it.ts +183 -0
- package/src/tool/webpAIco/i18n/ja.ts +183 -0
- package/src/tool/webpAIco/i18n/ko.ts +183 -0
- package/src/tool/webpAIco/i18n/nl.ts +183 -0
- package/src/tool/webpAIco/i18n/pl.ts +183 -0
- package/src/tool/webpAIco/i18n/pt.ts +183 -0
- package/src/tool/webpAIco/i18n/ru.ts +183 -0
- package/src/tool/webpAIco/i18n/sv.ts +183 -0
- package/src/tool/webpAIco/i18n/tr.ts +183 -0
- package/src/tool/webpAIco/i18n/zh.ts +183 -0
- package/src/tool/webpAIco/index.ts +12 -0
- package/src/tool/webpAJpg/i18n/de.ts +187 -0
- package/src/tool/webpAJpg/i18n/en.ts +9 -13
- package/src/tool/webpAJpg/i18n/es.ts +37 -42
- package/src/tool/webpAJpg/i18n/fr.ts +35 -40
- package/src/tool/webpAJpg/i18n/id.ts +182 -0
- package/src/tool/webpAJpg/i18n/it.ts +182 -0
- package/src/tool/webpAJpg/i18n/ja.ts +182 -0
- package/src/tool/webpAJpg/i18n/ko.ts +182 -0
- package/src/tool/webpAJpg/i18n/nl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pt.ts +182 -0
- package/src/tool/webpAJpg/i18n/ru.ts +182 -0
- package/src/tool/webpAJpg/i18n/sv.ts +182 -0
- package/src/tool/webpAJpg/i18n/tr.ts +182 -0
- package/src/tool/webpAJpg/i18n/zh.ts +182 -0
- package/src/tool/webpAJpg/index.ts +12 -0
- package/src/tool/webpAPng/i18n/de.ts +182 -0
- package/src/tool/webpAPng/i18n/en.ts +8 -13
- package/src/tool/webpAPng/i18n/es.ts +35 -40
- package/src/tool/webpAPng/i18n/fr.ts +2 -12
- package/src/tool/webpAPng/i18n/id.ts +182 -0
- package/src/tool/webpAPng/i18n/it.ts +182 -0
- package/src/tool/webpAPng/i18n/ja.ts +182 -0
- package/src/tool/webpAPng/i18n/ko.ts +182 -0
- package/src/tool/webpAPng/i18n/nl.ts +182 -0
- package/src/tool/webpAPng/i18n/pl.ts +182 -0
- package/src/tool/webpAPng/i18n/pt.ts +182 -0
- package/src/tool/webpAPng/i18n/ru.ts +182 -0
- package/src/tool/webpAPng/i18n/sv.ts +182 -0
- package/src/tool/webpAPng/i18n/tr.ts +182 -0
- package/src/tool/webpAPng/i18n/zh.ts +182 -0
- package/src/tool/webpAPng/index.ts +12 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { SvgAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'svg-to-png-converter';
|
|
6
|
+
const title = 'SVGをPNGにオンラインで無料で変換しましょう';
|
|
7
|
+
const description =
|
|
8
|
+
'ブラウザでSVGベクトルファイルをPNGに変換します。2倍スケールのHD出力。透明度を維持。ファイルのアップロード不要。無料かつ100%プライベート。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'SVGファイルをドラッグ...',
|
|
12
|
+
convertText: '即座にPNGに変換します',
|
|
13
|
+
selectFiles: 'ファイルを選択',
|
|
14
|
+
processedFiles: '処理済みファイル',
|
|
15
|
+
downloadAll: 'すべてダウンロード (.zip)',
|
|
16
|
+
pending: '保留中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: 'よくある質問',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: SvgAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'なぜSVGファイルをPNGに変換する必要があるのですか?',
|
|
24
|
+
answer:
|
|
25
|
+
'SVGはベクトルベースでロゴには理想的ですが、ベクトルをサポートしていないアプリケーションで使用したり、メッセージングアプリやソーシャルメディアで共有したりするために、ラスタライズされたPNG形式が必要な場合があります。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '出力サイズを選択できますか?',
|
|
29
|
+
answer:
|
|
30
|
+
'現在、出力されるPNGがRetinaや4K画面に適した鮮明なものになるよう、元のSVGのスケールを2倍にして出力しています。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'SVGの透明度は維持されますか?',
|
|
34
|
+
answer:
|
|
35
|
+
'はい、生成されたPNGは元のSVGのアルファチャネルを保持し、すべての透明な背景をそのまま維持します。',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: SvgAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'SVGファイルを挿入',
|
|
42
|
+
text: 'SVGファイルをドロップするか、上部のエリアに直接ドラッグしてください。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'HD PNGの生成',
|
|
46
|
+
text: '数ミリ秒以内に、当社のローカルエンジンが各ベクトルを透明PNG形式のHDピクセルレイヤーとして再構築します。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'ファイルをダウンロード',
|
|
50
|
+
text: '生成されたPNGを個別に、またはZIPパッケージとして保存してください。',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: SvgAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'W3C SVG仕様',
|
|
57
|
+
url: 'https://www.w3.org/TR/SVG/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Mozilla: SVGチュートリアル',
|
|
61
|
+
url: 'https://developer.mozilla.org/ja/docs/Web/SVG/Tutorial',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: SvgAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'SVG to PNG 変換機:無限のベクトルから普遍的なラスタへ',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>SVG</strong> (Scalable Vector Graphics) はウェブデザインにとって完璧な選択肢です:無限にスケーラブルで軽量、そしてあらゆるコードエディタで編集可能です。しかし、そのロゴやアイコンをモバイルアプリで使用したり、ソーシャルメディアで共有したり、PowerPointプレゼンテーションに挿入したりしようとすると壁にぶつかります。これらのプラットフォームの多くはSVGをサポートしていません。 <strong>PNG</strong> 形式は普遍的なソリューションです:ラスタライズされており、アルファチャネルを持ち、絶対にあらゆる文脈で互換性があります。',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'SVG vs PNG:ウェブのためのベクトル、世界のためのラスタ',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'SVGは画像を数学的な命令として保存します。ベジェ曲線、グラデーション、多角形などがその例です。これは、同じファイルが16pxでも16,000pxでも完璧に見えることを意味します。ウェブコード、CSSアニメーション、および品質を損なうことなくさまざまな画面解像度に適応する必要があるあらゆる要素にとって理想的な形式です。',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'PNGは、各ピクセルの色と透明度の情報を含むピクセルグリッドとして画像を保存します。 <strong>可逆</strong> (lossless) 形式であり、品質が完全に保持されます。一度SVGがPNGにラスタライズされると、解像度は固定されます。そのため、適切なエクスポートサイズを選択することが重要です。当社のツールは、Retinaや4K画面での鮮明さを保証するために、2倍のスケール (2x) でレンダリングします。',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: '比較:ローカル変換 vs クラウド変換',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'クラウド変換機',
|
|
98
|
+
description: 'リモートサーバーにファイルをアップロードするツールです。',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'ユーザーのSVGコードが外部サーバーへ送信される',
|
|
103
|
+
'品質が一定しないリモートレンダリング',
|
|
104
|
+
'アップロードと処理の待機時間',
|
|
105
|
+
'SVGファイルサイズに関する制限',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'ローカルアーキテクチャ',
|
|
110
|
+
description: 'Vanilla JS技術を使用し、ユーザーのハードウェア上で直接処理します。',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'SVGデータがブラウザを離れることはありません',
|
|
115
|
+
'最大限の再現性を実現するブラウザネイティブエンジンのレンダリング',
|
|
116
|
+
'高密度画面用の2倍解像度PNG',
|
|
117
|
+
'完全なアルファチャネルにより透明度を維持',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '技術的な仕組み',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'プロセスは、SVGファイルをJavaScriptの <strong>Image</strong> 要素に読み込むことから始まります。ブラウザエンジンがベクトルのXMLを解析してレンダリングすると、結果の画像が元のSVGサイズの2倍(2倍スケール)の <strong>HTML5 Canvas</strong> 上に描画されます。これにより、高解像度画面に最適な、各次元で2倍のピクセルを持つPNGが生成されます。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'JPGへの変換とは異なり、PNGにエクスポートする場合、キャンバスは完全なアルファチャネルを保持します。元のSVGの透明な領域は、生成されたPNGで完全に透明なピクセルになります。白い背景の塗りつぶしはありません。エクスポートには、可逆圧縮の <code>toDataURL(\'image/png\')</code> メソッドを使用します。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'ラスタライズする前のアドバイス',
|
|
138
|
+
html: 'PNGのエクスポートサイズは慎重に選択してください。SVGをラスタライズするのは一方向のプロセスです。生成されたPNGからベクトルを復元することはできません。常に元のSVGをマスターソースとして保持し、将来必要になる可能性のある最高の解像度でPNGを生成してください。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '活用事例と互換性',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'PowerPointやGoogleスライドでのプレゼン用にベクトルロゴをエクスポート。',
|
|
150
|
+
'iOS、Android、またはProgressive Web Apps用のPNGアイコンの作成。',
|
|
151
|
+
'Instagram、LinkedIn、またはその他のソーシャルメディアでSVGデザインを共有。',
|
|
152
|
+
'Word文書やPDFにベクトルイラストを挿入。',
|
|
153
|
+
'CMSプレビュー用にSVGグラフィックのPNGサムネイルを生成。',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '結論',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'SVGはベクトルの言語であり、PNGはデジタルの世界の残りの部分へのパスポートです。このツールは、デザインの1バイトも外部サーバーに送ることなく、ブラウザで直接、透明度を維持したままSVGを2倍の解像度でラスタライズします。',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: SvgAPngLocaleContent = {
|
|
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
|
+
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { SvgAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'svg-to-png-converter';
|
|
6
|
+
const title = 'SVG를 PNG로 온라인에서 무료로 변환하세요';
|
|
7
|
+
const description =
|
|
8
|
+
'브라우저에서 SVG 벡터 파일을 PNG로 변환하세요. 2배 배율의 HD 출력. 투명도 유지. 파일 업로드 없음. 무료 및 100% 개인 정보 보호.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'SVG 파일을 드래그하세요...',
|
|
12
|
+
convertText: '즉시 PNG로 변환하려면',
|
|
13
|
+
selectFiles: '파일 선택',
|
|
14
|
+
processedFiles: '처리된 파일',
|
|
15
|
+
downloadAll: '모두 다운로드 (.zip)',
|
|
16
|
+
pending: '대기 중',
|
|
17
|
+
bibliographyTitle: '참고 문헌',
|
|
18
|
+
faqTitle: '자주 묻는 질문',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: SvgAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '왜 SVG 파일을 PNG로 변환해야 하나요?',
|
|
24
|
+
answer:
|
|
25
|
+
'SVG는 벡터 기반이며 로고에 이상적이지만, 때로는 벡터를 지원하지 않는 애플리케이션에서 사용하거나 메시징 앱 또는 소셜 미디어를 통해 공유하기 위해 래스터화된 PNG 형식이 필요할 수 있습니다.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '출력 크기를 선택할 수 있나요?',
|
|
29
|
+
answer:
|
|
30
|
+
'현재 소스 SVG의 배율을 두 배로 늘려 PNG 출력이 선명하고 Retina 또는 4K 화면에 적합하도록 하고 있습니다.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'SVG 투명도가 유지되나요?',
|
|
34
|
+
answer:
|
|
35
|
+
'예, 결과물인 PNG는 원본 SVG의 알파 채널을 보존하여 모든 투명 배경을 그대로 유지합니다.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: SvgAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'SVG 파일 넣기',
|
|
42
|
+
text: 'SVG 파일을 최상단 인터페이스 영역에 드래그하여 떨어뜨리세요.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'HD PNG 생성',
|
|
46
|
+
text: '수 밀리초 만에 로컬 엔진이 각 벡터를 투명 PNG 형식의 HD 픽셀 레이어로 레디할 것입니다.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '파일 다운로드',
|
|
50
|
+
text: '생성된 PNG를 개별적으로 또는 ZIP 패키지로 저장하세요.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: SvgAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'W3C SVG 사양',
|
|
57
|
+
url: 'https://www.w3.org/TR/SVG/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Mozilla: SVG 튜토리얼',
|
|
61
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: SvgAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'SVG to PNG 변환기: 무한 벡터에서 보편적인 래스터로',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>SVG</strong>(Scalable Vector Graphics)는 가볍고 무한히 확장 가능하며 모든 코드 편집기로 편집할 수 있어 웹 디자인에 완벽한 선택입니다. 하지만 해당 로고나 아이콘을 모바일 앱에서 사용하거나 소셜 미디어에 공유하거나 PowerPoint 프레젠테이션에 삽입하려 할 때 벽에 부딪힙니다. 대부분의 이러한 플랫폼은 SVG를 지원하지 않기 때문입니다. <strong>PNG</strong> 형식은 래스터화되어 있고 알파 채널을 포함하며 절대적으로 모든 상황에서 호환되는 보편적인 솔루션입니다.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'SVG vs PNG: 웹을 위한 벡터, 세상을 위한 래스터',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'SVG는 이미지를 수학적 명령어로 저장합니다. 베지에 곡선, 그라데이션, 다각형 등이 그 예입니다. 이는 동일한 파일이 16px이나 16,000px에서 모두 완벽하게 보임을 의미합니다. 웹 코드, CSS 애니메이션 및 품질 저하 없이 다양한 화면 해상도에 적응해야 하는 모든 요소에 이상적인 형식입니다.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'PNG는 각 픽셀에 대한 색상 및 투명도 정보가 포함된 픽셀 그리드로 이미지를 저장합니다. <strong>무손실</strong>(lossless) 형식으로 품질이 완전히 보존됩니다. SVG가 PNG로 래스터화되면 해상도가 고정됩니다. 이것이 올바른 내보내기 크기를 선택하는 것이 중요한 이유입니다. 당사의 도구는 Retina 및 4K 화면에서의 선명도를 보장하기 위해 2배 배율(2x)로 렌더링합니다.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: '비교: 로컬 변환 vs 클라우드 변환',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: '클라우드 변환기',
|
|
98
|
+
description: '원격 서버로 파일을 업로드하는 도구입니다.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'사용자의 SVG 코드가 외부 서버로 전송됨',
|
|
103
|
+
'일관되지 않은 품질의 원격 렌더링',
|
|
104
|
+
'업로드 및 처리 대기 시간 발생',
|
|
105
|
+
'SVG 파일 크기 제한 존재',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '사용자 환경 로컬 아키텍처',
|
|
110
|
+
description: 'Vanilla JS 기술을 사용하여 하드웨어에서 직접 처리합니다.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'SVG 데이터가 브라우저를 벗어나지 않음',
|
|
115
|
+
'최대의 일치성을 위한 브라우저 네이티브 엔진 렌더링',
|
|
116
|
+
'고밀도 화면을 위한 2배 해상도 PNG',
|
|
117
|
+
'전체 알파 채널로 투명도 유지',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '기술적 작동 원리',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '프로세스는 SVG 파일을 JavaScript <strong>Image</strong> 요소에 로드하는 것으로 시작합니다. 브라우저 엔진이 벡터 XML을 파싱하고 렌더링하면 결과 이미지가 원래 SVG 크기의 두 배(2배 배율)인 <strong>HTML5 Canvas</strong> 위에 그려집니다. 이를 통해 고해상도 화면에 이상적인, 각 치수당 두 배의 픽셀을 가진 PNG가 생성됩니다.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'JPG로의 변환과 달리 PNG로 내보낼 때는 캔버스가 전체 알파 채널을 유지합니다. 원본 SVG의 투명한 영역은 결과 PNG에서 완전히 투명한 픽셀이 되며 흰색 배경 채우기가 없습니다. 내보내기에는 무손실 압축 방식의 <code>toDataURL(\'image/png\')</code> 메서드가 사용됩니다.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: '래스터화 전 팁',
|
|
138
|
+
html: 'PNG 내보내기 크기를 신중하게 선택하세요. SVG를 래스터화하는 것은 일방통행 프로세스입니다. 결과 PNG에서 벡터를 복구할 수 없습니다. 항상 원본 SVG를 마스터 소스로 보관하고, 필요할 수 있는 가장 높은 해상도로 PNG를 생성하세요.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '활용 사례 및 호환성',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'PowerPoint 또는 Google 슬라이드 프레젠테이션용 벡터 로고 내보내기.',
|
|
150
|
+
'iOS, Android 또는 프로그레시브 웹 앱용 PNG 아이콘 생성.',
|
|
151
|
+
'Instagram, LinkedIn 또는 기타 소셜 미디어에 SVG 디자인 공유.',
|
|
152
|
+
'Word 문서나 PDF에 벡터 일러스트레이션 삽입.',
|
|
153
|
+
'CMS 미리보기를 위한 SVG 그래픽의 PNG 썸네일 생성.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '결론',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'SVG는 벡터의 언어이고, PNG는 디지털 세계의 나머지 부분으로 통하는 여권입니다. 이 도구는 디자인의 단 1바이트도 외부 서버로 전송하지 않고 브라우저에서 직접 투명도가 유지된 상태로 SVG를 2배 해상도로 래스터화합니다.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: SvgAPngLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ko', 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 { SvgAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'svg-naar-png-converter';
|
|
6
|
+
const title = 'Converteer SVG naar PNG Online en Gratis';
|
|
7
|
+
const description =
|
|
8
|
+
'Converteer SVG-vectorbestanden naar PNG in je browser. Dubbel geschaalde HD-output. Behoudt transparantie. Gratis en 100% privé.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Sleep SVG-bestanden...',
|
|
12
|
+
convertText: 'Om ze direct naar PNG te converteren',
|
|
13
|
+
selectFiles: 'Bestanden selecteren',
|
|
14
|
+
processedFiles: 'Verwerkte bestanden',
|
|
15
|
+
downloadAll: 'Alles downloaden (.zip)',
|
|
16
|
+
pending: 'In afwachting',
|
|
17
|
+
bibliographyTitle: 'Bibliografische Referenties',
|
|
18
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: SvgAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Waarom SVG-bestanden naar PNG converteren?',
|
|
24
|
+
answer:
|
|
25
|
+
'SVG is op vectoren gebaseerd en ideaal voor logo\'s, maar soms heb je het gerasterde PNG-formaat nodig voor gebruik in applicaties die geen vectoren ondersteunen, of om te delen via messaging-apps of sociale media.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Kan ik de uitvoergrootte kiezen?',
|
|
29
|
+
answer:
|
|
30
|
+
'We verdubbelen momenteel de schaal van de bron-SVG, zodat de PNG-uitvoer scherp is en geschikt voor Retina- of 4K-schermen.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Blijven SVG-transparanties behouden?',
|
|
34
|
+
answer:
|
|
35
|
+
'Ja, de resulterende PNG behoudt het alfakanaal van de originele SVG, waardoor alle transparante achtergronden intact blijven.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: SvgAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Voeg je SVG-bestanden toe',
|
|
42
|
+
text: 'Sleep je SVG-bestanden rechtstreeks naar het bovenste gedeelte.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'HD PNG Generatie',
|
|
46
|
+
text: 'Binnen milliseconden zal onze lokale engine elke vector herscheppen als een HD-pixellaag in transparant PNG-formaat.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Download de bestanden',
|
|
50
|
+
text: 'Sla de gegenereerde PNG\'s afzonderlijk op of als een ZIP-pakket.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: SvgAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'W3C SVG Specificatie',
|
|
57
|
+
url: 'https://www.w3.org/TR/SVG/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Mozilla: SVG Tutorial',
|
|
61
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: SvgAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'SVG naar PNG Converter: Van oneindige vector naar universeel raster',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>SVG</strong> (Scalable Vector Graphics) is de perfecte keuze voor webdesign: oneindig schaalbaar, lichtgewicht en bewerkbaar met elke code-editor. Maar wanneer je dat logo of pictogram wilt gebruiken in een mobiele app, het wilt delen op sociale media of wilt invoegen in een PowerPoint presentatie, loop je tegen een muur aan: de meeste van deze platforms ondersteunen geen SVG. Het <strong>PNG</strong>-formaat is de universele oplossing: gerasterd, met een alfakanaal en compatibel in absoluut elke context.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'SVG vs PNG: Vectoren voor het web, raster voor de wereld',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'SVG slaat de afbeelding op als wiskundige instructies: een Bézier curve, een verloop, een polygoon. Dit betekent dat hetzelfde bestand er perfect uitziet op 16px of 16.000px. Het is het ideale formaat voor je webcode, CSS-animaties en elk element dat zich moet aanpassen aan verschillende schermresoluties zonder kwaliteitsverlies.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'PNG slaat de afbeelding op als een pixelraster met kleur- en transparantie-informatie voor elke pixel. Het is een <strong>lossless</strong> formaat, wat betekent dat de kwaliteit volledig behouden blijft. Zodra een SVG is gerasterd naar PNG, ligt de resolutie vast. Daarom is het kiezen van de juiste exportgrootte cruciaal: onze tool rendert op dubbele schaal (2x) om scherpte op Retina- en 4K-schermen te garanderen.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vergelijking: Lokale vs Cloud-conversie',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Cloud Converters',
|
|
98
|
+
description: 'Tools die je bestanden uploaden naar een externe server.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Je SVG-code reist naar externe servers',
|
|
103
|
+
'Remote rendering met inconsistente kwaliteit',
|
|
104
|
+
'Wachttijd voor uploaden en verwerken',
|
|
105
|
+
'Beperkingen op de grootte van het SVG-bestand',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Onze Lokale Architectuur',
|
|
110
|
+
description: 'Directe verwerking op je eigen hardware met Vanilla JS-technologie.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Je SVG verlaat nooit je browser',
|
|
115
|
+
'Gebruik van de eigen browser-engine voor maximale getrouwheid',
|
|
116
|
+
'2x resolutie PNG voor schermen met hoge dichtheid',
|
|
117
|
+
'Transparantie behouden met volledig alfakanaal',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Hoe het technisch werkt',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Het proces begint met het laden van het SVG-bestand in een JavaScript <strong>Image</strong>-element. Zodra de browser-engine de vector-XML heeft geanalyseerd en gerenderd, wordt de resulterende afbeelding getekend op een <strong>HTML5 Canvas</strong> waarvan de afmetingen dubbel zo groot zijn als de originele SVG-grootte (2x schaal). Dit produceert een PNG met twee keer zoveel pixels per dimensie, ideaal voor schermen met een hoge resolutie.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'In tegenstelling tot conversie naar JPG, behoudt het canvas bij het exporteren naar PNG het volledige alfakanaal: transparante gebieden in de originele SVG worden volledig transparante pixels in de resulterende PNG — geen witte achtergrondvulling. De export maakt gebruik van de methote <code>toDataURL(\'image/png\')</code> met lossless compressie.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Tip voor het rasteren',
|
|
138
|
+
html: 'Kies je PNG-exportgrootte zorgvuldig — het rasteren van een SVG is een eenrichtingsproces: je kunt de vectoren niet herstellen uit de resulterende PNG. Bewaar altijd de originele SVG als bronbestand en genereer PNG\'s met de hoogste resolutie die je ooit nodig zou kunnen hebben.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Toepassingen en compatibiliteit',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Vektorlogo\'s exporteren voor PowerPoint of Google Slides presentaties.',
|
|
150
|
+
'PNG-pictogrammen maken voor iOS, Android of Progressive Web Apps.',
|
|
151
|
+
'SVG-ontwerpen delen op Instagram, LinkedIn of andere sociale media.',
|
|
152
|
+
'Vektorillustraties invoegen in Word-documenten of PDF\'s.',
|
|
153
|
+
'PNG-miniaturen van SVG-afbeeldingen genereren voor CMS-voorbeeld.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Conclusie',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'SVG is de taal van vectoren; PNG is het paspoort naar de rest van de digitale wereld. Deze tool rastert je SVG\'s op 2x resolutie met behoud van transparantie rechtstreeks in je browser, zonder dat er een enkele byte van je ontwerp naar een externe server reist.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: SvgAPngLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'nl', faq, howTo }),
|
|
178
|
+
};
|