@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 { SvgAJpgLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'svg-den-jpg-ye-donusturucu';
|
|
6
|
+
const title = 'SVG\'yi JPG\'ye Çevrimiçi ve Ücretsiz Dönüştürün';
|
|
7
|
+
const description =
|
|
8
|
+
'SVG vektör dosyalarını tarayıcınızda JPG\'ye dönüştürün. 2 kat yüksek çözünürlüklü işleme. Dosya yüklemesi yok. Ücretsiz ve %100 özel.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'SVG dosyalarını sürükleyin...',
|
|
12
|
+
convertText: 'Onları anında JPG\'ye dönüştürmek için',
|
|
13
|
+
selectFiles: 'Dosyaları seçin',
|
|
14
|
+
processedFiles: 'İşlenmiş dosyalar',
|
|
15
|
+
downloadAll: 'Tümünü İndir (.zip)',
|
|
16
|
+
pending: 'Bekliyor',
|
|
17
|
+
bibliographyTitle: 'Bibliyografik Referanslar',
|
|
18
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: SvgAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Neden SVG\'yi JPG\'ye dönüştürmeliyiz?',
|
|
24
|
+
answer:
|
|
25
|
+
'JPG, her tür cihazda maksimum uyumluluk sunar; SVG\'yi JPG\'ye dönüştürmek, herkesin tasarımınızı işleme sorunu yaşamadan görüntüleyebilmesini sağlamanın en iyi yoludur.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'SVG şeffaflığına ne olur?',
|
|
29
|
+
answer:
|
|
30
|
+
'JPG\'ye (şeffaflığı desteklemez) dönüştürürken, vektör kompozisyonunuza otomatik olarak opak beyaz bir arka plan eklenecektir.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Sonuçta elde edilen JPG hangi çözünürlüğe sahip olacak?',
|
|
34
|
+
answer:
|
|
35
|
+
'Araç, Retina ekranlar ve profesyonel kullanım için uygun yüksek çözünürlüğü garanti etmek amacıyla SVG\'yi çift ölçekte (2 kat) işler.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: SvgAJpgLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Vektör dosyalarınızı yerleştirin',
|
|
42
|
+
text: 'Dışa aktarma listesini hazırlamak için SVG dosyalarınızı üst alana bırakın.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'JPG\'ye Rasterleştirme',
|
|
46
|
+
text: 'Araç, vektörleri yüksek çözünürlüklü piksellere dönüştürecek ve JPG\'nizi anında oluşturacaktır.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Sonuçları indirin',
|
|
50
|
+
text: 'JPG dosyalarınızı tek tek veya ZIP paketi olarak alın.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: SvgAJpgLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'W3C SVG Özellikleri',
|
|
57
|
+
url: 'https://www.w3.org/TR/SVG/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'JPEG Standardına Genel Bakış',
|
|
61
|
+
url: 'https://jpeg.org/jpeg/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: SvgAJpgLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'SVG\'den JPG\'ye Dönüştürücü: Vektörlerinizi Her Platforma Taşıyın',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>SVG</strong> formatı modern web\'in ana dilidir: hafif, ölçeklenebilir, düzenlenebilir. Ancak vektörleri anlayamayan koca platformlar var. Sosyal medya, e-posta istemcileri, Word belgeleri, baskı uygulamaları ve gerçek dünyadaki yazılımların büyük çoğunluğu rasterleştirilmiş görüntülerle çalışır. <strong>JPG</strong> evrensel ortak paydadır: istisnasız her yerde kabul edilir, eklenti gerektirmez ve ek dönüştürmeye ihtiyaç duymaz.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'SVG mi JPG mi? Vektörün Fotoğrafa Dönüşmesi Gerektiğinde',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'SVG, görüntüyü matematiksel talimatlar olarak saklar. Bu vektör yapısı onu web için mükemmel kılar ancak analog dünya ve eski yazılımlar için görünmez yapar. E-posta ile gönderilen bir SVG dosyası, alıcının istemcisinde anlaşılmaz XML metni olarak görünebilir. Bir Word belgesine eklenen SVG, Office\'in eski sürümlerinde hiç işlenmeyebilir.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'JPG, her görüntüyü JPEG algoritmasıyla sıkıştırılmış renk bilgisine sahip bir piksel matrisine dönüştürür. Alfa kanalını desteklemediği için dönüştürücü, arka planı otomatik olarak düz beyazla birleştirir. Buna karşılık, <em>gezegendeki her cihazda</em> açılabilen bir dosya elde edersiniz: eski cep telefonları, yazıcılar, akıllı TV\'ler, yirmi yıl öncesinin düzenleme uygulamaları. Bu, en küçük ortak payda formatıdır ve birçok bağlamda en değerlisidir.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Karşılaştırma: Yerel ve Bulut Dönüştürme',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Bulut Dönüştürücüler',
|
|
98
|
+
description: 'Dosyalarınızı uzak bir sunucuya yükleyen araçlar.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'SVG kodunuz (tescilli tasarım verileriyle birlikte) harici sunuculara gider',
|
|
103
|
+
'Yazı tiplerinin ve degradelerin tutarsız işlenmesi',
|
|
104
|
+
'Her dönüştürme için internet bağlantısı gerekir',
|
|
105
|
+
'JPG çıktı kalitesi her zaman yapılandırılamaz',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Yerel Mimarimiz',
|
|
110
|
+
description: 'Vanilla JS teknolojisini kullanarak doğrudan donanımınızda işleme.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'SVG\'nizin sıfır baytı tarayıcıdan ayrılır',
|
|
115
|
+
'Yerel tarayıcı motorunu kullanarak aslına sadık işleme',
|
|
116
|
+
'Maksimum netlik için 2 kat çözünürlüklü JPG',
|
|
117
|
+
'JPG standardına göre beyaz arka plan otomatik olarak uygulanır',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Teknik Olarak Nasıl Çalışır',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'SVG dosyası tarayıcının <strong>Image</strong> öğesine yüklenir ve bu öğe XML\'i yorumlamak için kendi vektör işleme motorunu kullanır. Görsel sonuç, çıktı çözünürlüğünü maksimize etmek için çift ölçekte, önceden beyaz arka plan dolgusuyla (JPG şeffaflığı desteklemediği için gereklidir) bir <strong>HTML5 Canvas</strong> üzerine çizilir.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: '<code>toDataURL(\'image/jpeg\', 0.92)</code> yöntemi, tuval piksellerini yüksek kaliteli bir JPG dosyasına dönüştürür. SVG renkleri, JPEG sıkıştırmasındaki renk alanı dönüşümü nedeniyle hafif farklılıklar gösterebilir. Bu nedenle, renk doğruluğunun kritik olduğu profesyonel baskı işlerinde kullanmadan önce sonucu önizlemek tavsiye edilir.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Baskı kullanımı için ipucu',
|
|
138
|
+
html: 'SVG arka planları ve degradeleri, JPEG sıkıştırmasındaki renk profili farkları nedeniyle JPG\'de biraz farklı görünebilir. Bir yazıcıya göndermeden veya tam marka renk doğruluğunun önemli olduğu basılı pazarlama materyallerinde kullanmadan önce sonucu her zaman önizleyin.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Kullanım Durumları ve Uyumluluk',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'SVG logolarını ve illüstrasyonlarını Facebook, Twitter veya LinkedIn\'de paylaşma.',
|
|
150
|
+
'Outlook veya Gmail aracılığıyla e-postalara vektör grafikleri ekleme.',
|
|
151
|
+
'SVG tasarımlarını Word belgelerine, Excel\'e veya sunumlara yerleştirme.',
|
|
152
|
+
'SVG desteği olmayan çevrimiçi mağazalarda ürün görselleri yayınlama.',
|
|
153
|
+
'İsteğe bağlı baskı hizmetleri için dosyalar hazırlama.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Sonuç',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Gerçek dünya hala piksellerle konuşuyor. Bu araç, SVG vektörlerinizi saniyeler içinde yüksek çözünürlüklü işlemeyle ve tescilli tasarımlarınız tarayıcınızdan hiç ayrılmadan evrensel JPG diline çevirir.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: SvgAJpgLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'tr', 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 { SvgAJpgLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'svg-to-jpg-converter';
|
|
6
|
+
const title = '在线免费将 SVG 转换为 JPG';
|
|
7
|
+
const description =
|
|
8
|
+
'在浏览器中将 SVG 矢量文件转换为 JPG。支持 2 倍高清渲染。无需上传文件。免费且 100% 私密。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: '拖拽 SVG 文件...',
|
|
12
|
+
convertText: '立即将它们转换为 JPG',
|
|
13
|
+
selectFiles: '选择文件',
|
|
14
|
+
processedFiles: '已处理文件',
|
|
15
|
+
downloadAll: '下载全部 (.zip)',
|
|
16
|
+
pending: '等待中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: '常见问题',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: SvgAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '为什么要将 SVG 转换为 JPG?',
|
|
24
|
+
answer:
|
|
25
|
+
'JPG 在所有类型的设备上都具有最大的兼容性;将 SVG 转换为 JPG 是确保每个人都能无障碍查看您的设计(而不出现渲染问题)的最佳方式。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '转换后 SVG 的透明度会怎样?',
|
|
29
|
+
answer:
|
|
30
|
+
'由于 JPG 不支持透明度, 在转换为 JPG 时, 您的矢量作品将自动添加不透明的白色背景。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '生成的 JPG 分辨率是多少?',
|
|
34
|
+
answer:
|
|
35
|
+
'该工具以双倍缩放 (2x) 渲染 SVG, 以确保生成适合 Retina 屏幕和专业用途的高分辨率图像。',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: SvgAJpgLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: '放入您的矢量文件',
|
|
42
|
+
text: '将您的 SVG 文件拖入上方区域, 以准备导出列表。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: '栅格化为 JPG',
|
|
46
|
+
text: '该工具将矢量转换为高清像素, 并立即生成您的 JPG 文件。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '下载结果',
|
|
50
|
+
text: '您可以单独下载 JPG 文件, 也可以将其打包为 ZIP 下载。',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: SvgAJpgLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'W3C SVG 规范',
|
|
57
|
+
url: 'https://www.w3.org/TR/SVG/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'JPEG 标准概述',
|
|
61
|
+
url: 'https://jpeg.org/jpeg/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: SvgAJpgLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'SVG 转 JPG 转换器: 让您的矢量图适配任何平台',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>SVG</strong> 格式是现代 Web 的原生语言: 轻量、可缩放、可编辑。但仍有很多平台完全无法识别矢量图。社交媒体、邮件客户端、Word 文档、打印应用程序以及绝大多数现实世界的软件都使用栅格化图像。<strong>JPG</strong> 是通用的最大公约数: 它无处不在、无一例外, 无需插件, 也无需额外的二次转换。',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'SVG vs JPG: 当矢量图需要变成照片时',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'SVG 以数学指令的形式存储图像。这种矢量特性使其非常适合 Web 展现, 但对于模拟世界和旧版软件来说则是不可见的。通过邮件发送的 SVG 文件在接收方的客户端中可能显示为无法理解的 XML 文本。附加到 Word 文档的 SVG 在旧版 Office 中可能完全无法渲染。',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'JPG 将图像转换为像素矩阵, 并通过 JPEG 算法压缩颜色信息。由于它不支持 Alpha 通道, 转换器会自动将背景合并为纯白色。作为回报, 您将获得一个可以在 <em>地球上任何设备</em> 上打开的文件: 旧手机、打印机、智能电视、甚至是二十年前的编辑软件。它是兼容性最强的格式, 在许多环境下也是最有价值的格式。',
|
|
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
|
+
'输出的 JPG 质量并不总是可调',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '我们的本地架构',
|
|
110
|
+
description: '使用 Vanilla JS 技术直接在您的硬件上进行处理。',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'没有任何一个字节的 SVG 会离开您的浏览器',
|
|
115
|
+
'使用浏览器原生引擎进行精准渲染',
|
|
116
|
+
'输出 2 倍高清 JPG 以获得极致清晰度',
|
|
117
|
+
'按照 JPG 标准自动应用白色背景',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '技术原理',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'SVG 文件被加载到浏览器的 <strong>Image</strong> 元素中, 该元素使用其内置的矢量渲染引擎来解析 XML。视觉结果被绘制到 <strong>HTML5 Canvas</strong> 上, 并预先填充白色背景 (这是必须的, 因为 JPG 不支持透明度), 同时以双倍缩放绘制以最大化输出分辨率。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: '<code>toDataURL(\'image/jpeg\', 0.92)</code> 方法将画布像素转换为高质量的 JPG 文件。由于 JPEG 压缩过程中的色彩空间转换, SVG 的颜色可能会出现细微偏差。因此, 在用于对颜色保真度要求极高的专业印刷工作之前, 建议先预览结果。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: '印刷用途提示',
|
|
138
|
+
html: '由于 JPEG 压缩时的颜色配置文件差异, SVG 的背景和渐变在 JPG 中看起来可能略有不同。在发送给印刷厂或用于印刷营销材料之前, 请务必先预览结果, 尤其是当品牌颜色的准确性至关重要时。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '应用场景与兼容性',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'在 Facebook、Twitter 或 LinkedIn 上分享 SVG 徽标和插图。',
|
|
150
|
+
'通过 Outlook 或 Gmail 在邮件中添加矢量图形附件。',
|
|
151
|
+
'将 SVG 设计插入 Word 文档、Excel 或演示文稿。',
|
|
152
|
+
'在不支持 SVG 的在线商店中发布产品图片。',
|
|
153
|
+
'为按需打印服务准备文件。',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '总结',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '现实世界仍然以像素为交流语言。此工具能在几秒钟内将您的 SVG 矢量图转换为通用的 JPG 语言, 提供高清渲染, 且您的设计数据永远不会离开浏览器。',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: SvgAJpgLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -16,6 +16,18 @@ export const svgAJpg: ConvertersToolEntry<ImageConverterUI> = {
|
|
|
16
16
|
es: () => import('./i18n/es').then((m) => m.content),
|
|
17
17
|
en: () => import('./i18n/en').then((m) => m.content),
|
|
18
18
|
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
19
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
20
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
22
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
23
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
24
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
25
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
26
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
27
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
28
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
29
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
30
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
19
31
|
},
|
|
20
32
|
};
|
|
21
33
|
|
|
@@ -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-zu-png-konverter';
|
|
6
|
+
const title = 'SVG zu PNG Konverter Online und Kostenlos';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertieren Sie SVG-Vektordateien in Ihrem Browser in PNG. HD-Ausgabe mit doppelter Skalierung. Transparenz bleibt erhalten. Kostenlos und 100 % privat.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'SVG-Dateien hierher ziehen...',
|
|
12
|
+
convertText: 'Um sie sofort in PNG zu konvertieren',
|
|
13
|
+
selectFiles: 'Dateien auswählen',
|
|
14
|
+
processedFiles: 'Verarbeitete Dateien',
|
|
15
|
+
downloadAll: 'Alles herunterladen (.zip)',
|
|
16
|
+
pending: 'Ausstehend',
|
|
17
|
+
bibliographyTitle: 'Literaturhinweise',
|
|
18
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: SvgAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Warum SVG-Dateien in PNG konvertieren?',
|
|
24
|
+
answer:
|
|
25
|
+
'SVG basiert auf Vektoren und ist ideal für Logos, aber manchmal benötigen Sie das gerasterte PNG-Format für die Verwendung in Anwendungen, die keine Vektoren unterstützen, oder zum Teilen über Messaging-Apps oder soziale Medien.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Kann ich die Ausgabegröße wählen?',
|
|
29
|
+
answer:
|
|
30
|
+
'Wir verdoppeln derzeit den Maßstab der Quell-SVG, damit die PNG-Ausgabe scharf ist und sich für Retina- oder 4K-Bildschirme eignet.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Bleibt die SVG-Transparenz erhalten?',
|
|
34
|
+
answer:
|
|
35
|
+
'Ja, die resultierende PNG bewahrt den Alpha-Kanal der ursprünglichen SVG, sodass alle transparenten Hintergründe intakt bleiben.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: SvgAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'SVG-Dateien einfügen',
|
|
42
|
+
text: 'Ziehen Sie Ihre SVG-Dateien direkt in den oberen Bereich.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'PNG-Erzeugung in HD',
|
|
46
|
+
text: 'In Millisekunden wandelt unsere lokale Engine jeden Vektor in eine HD-Pixelebene im transparenten PNG-Format um.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Dateien herunterladen',
|
|
50
|
+
text: 'Speichern Sie die generierten PNGs einzeln oder als ZIP-Paket.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: SvgAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'W3C SVG Spezifikation',
|
|
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 zu PNG Konverter: Vom unendlichen Vektor zum universellen Raster',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>SVG</strong> (Scalable Vector Graphics) ist die perfekte Wahl für Webdesign: unendlich skalierbar, leichtgewichtig und mit jedem Code-Editor editierbar. Doch wenn Sie dieses Logo oder Icon in einer mobilen App verwenden, es in sozialen Medien teilen oder in eine PowerPoint Präsentation einfügen möchten, stoßen Sie auf eine Hürde: Die meisten dieser Plattformen unterstützen kein SVG. Das <strong>PNG</strong>-Format ist die universelle Lösung: gerastert, mit einem Alpha-Kanal und in absolut jedem Kontext kompatibel.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'SVG vs PNG: Vektoren für das Web, Raster für die Welt',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'SVG speichert das Bild als mathematische Anweisungen: eine Bézier Kurve, ein Gradient, ein Polygon. Das bedeutet, dass dieselbe Datei bei 16 oder 16.000 Pixeln perfekt aussieht. Es ist das ideale Format für Ihren Webcode, CSS-Animationen und jedes Element, das sich ohne Qualitätsverlust an verschiedene Bildschirmauflösungen anpassen muss.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'PNG speichert das Bild als Pixelgitter mit Farb- und Transparenzinformationen für jeden Pixel. Es ist ein <strong>verlustfreies</strong> Format, was bedeutet, dass die Qualität vollständig erhalten bleibt. Sobald eine SVG zu PNG gerastert wurde, ist die Auflösung fest vorgegeben. Deshalb ist die Wahl der richtigen Exportgröße entscheidend: Unser Tool rendert doppelt skaliert (2x), um Schärfe auf Retina und 4K Bildschirmen zu gewährleisten.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vergleich: Lokale vs Cloud Konvertierung',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Cloud Konverter',
|
|
98
|
+
description: 'Tools, die Ihre Dateien auf einen Remote-Server hochladen.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Ihr SVG-Code gelangt auf externe Server',
|
|
103
|
+
'Remote-Rendering mit inkonsistenter Qualität',
|
|
104
|
+
'Wartezeit für Upload und Verarbeitung',
|
|
105
|
+
'Einschränkungen bei der SVG-Dateigröße',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Unsere lokale Architektur',
|
|
110
|
+
description: 'Direkte Verarbeitung auf Ihrer Hardware mittels Vanilla JS-Technologie.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Ihre SVG verlässt niemals Ihren Browser',
|
|
115
|
+
'Rendering durch die native Browser-Engine für maximale Treue',
|
|
116
|
+
'PNG in 2x Auflösung für hochdichte Bildschirme',
|
|
117
|
+
'Transparenz bleibt dank vollem Alpha-Kanal erhalten',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Wie es technisch funktioniert',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Der Prozess beginnt mit dem Laden der SVG-Datei in ein JavaScript <strong>Image</strong>-Element. Sobald die Browser-Engine den Vektor-XML analysiert und gerendert hat, wird das resultierende Bild auf ein <strong>HTML5 Canvas</strong> gezeichnet, dessen Dimensionen doppelt so groß wie die ursprüngliche SVG-Größe sind (2x Skalierung). Dies erzeugt eine PNG mit der doppelten Anzahl an Pixeln pro Dimension, ideal für hochauflösende Bildschirme.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Im Gegensatz zur Konvertierung in JPG behält das Canvas beim Export in PNG den vollen Alpha-Kanal bei: Transparente Bereiche in der ursprünglichen SVG werden zu vollständig transparenten Pixeln in der resultierenden PNG – ohne weiße Hintergrundfüllung. Der Export nutzt die Methode <code>toDataURL(\'image/png\')</code> mit verlustfreier Kompression.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Tipp vor dem Rastern',
|
|
138
|
+
html: 'Wählen Sie Ihre PNG-Exportgröße sorgfältig – das Rastern einer SVG ist ein Einwegprozess: Sie können die Vektoren nicht aus der resultierenden PNG wiederherstellen. Behalten Sie immer die Original-SVG als Masterquelle und generieren Sie PNGs in der höchsten Auflösung, die Sie jemals benötigen könnten.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Anwendungsfälle und Kompatibilität',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Exportieren von Vektor-Logos für PowerPoint oder Google Slides Präsentationen.',
|
|
150
|
+
'Erstellen von PNG-Icons für iOS, Android oder Progressive Web Apps.',
|
|
151
|
+
'Teilen von SVG-Designs auf Instagram, LinkedIn oder anderen sozialen Medien.',
|
|
152
|
+
'Einfügen von Vektor-Illustrationen in Word-Dokumente oder PDFs.',
|
|
153
|
+
'Generieren von PNG-Thumbnails von SVG-Grafiken für die CMS-Vorschau.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Fazit',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'SVG ist die Sprache der Vektoren; PNG ist der Reisepass für den Rest der digitalen Welt. Dieses Tool rastert Ihre SVGs in 2x Auflösung mit erhaltener Transparenz direkt in Ihrem Browser, ohne dass ein einziges Byte Ihres Designs an einen externen Server gesendet wird.',
|
|
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: 'de', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
1
|
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
3
|
import type { SvgAPngLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'svg-to-png-converter';
|
|
@@ -164,17 +164,6 @@ const seo: SvgAPngLocaleContent['seo'] = [
|
|
|
164
164
|
},
|
|
165
165
|
];
|
|
166
166
|
|
|
167
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
168
|
-
'@context': 'https://schema.org',
|
|
169
|
-
'@type': 'SoftwareApplication',
|
|
170
|
-
name: title,
|
|
171
|
-
description,
|
|
172
|
-
applicationCategory: 'UtilitiesApplication',
|
|
173
|
-
operatingSystem: 'Web',
|
|
174
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
175
|
-
inLanguage: 'en',
|
|
176
|
-
};
|
|
177
|
-
|
|
178
167
|
export const content: SvgAPngLocaleContent = {
|
|
179
168
|
slug,
|
|
180
169
|
title,
|
|
@@ -184,5 +173,11 @@ export const content: SvgAPngLocaleContent = {
|
|
|
184
173
|
faq,
|
|
185
174
|
bibliography,
|
|
186
175
|
howTo,
|
|
187
|
-
schemas:
|
|
176
|
+
schemas: generateSchemas({
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
inLanguage: 'en',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
188
183
|
};
|