@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,183 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { PngAIcoLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'png-den-ico-ya-donusturucu';
|
|
6
|
+
const title = 'PNG\'den ICO\'ya Çevrimiçi Dönüştürün';
|
|
7
|
+
const description =
|
|
8
|
+
'Gerçek ikili üstbilgilerle PNG\'yi ICO\'ya dönüştürün. Şeffaflıklar korunur. Dosya yüklemesi yok. Ücretsiz ve %100 özel.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'PNG dosyalarını sürükleyin...',
|
|
12
|
+
convertText: 'Onları anında ICO\'ya 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: PngAIcoLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Dönüştürücünüz basit gizlenmiş PNG dosyaları mı yoksa orijinal bir ICO mu oluşturuyor?',
|
|
24
|
+
answer:
|
|
25
|
+
'Gerçek bir ICO yapıyoruz. PNG\'nizden verileri çıkarıyoruz, standartlaştırılmış Microsoft onaltılık üstbilgisini (22 baytlık Üstbilgi + Dizin) oluşturuyoruz, yerel olarak ideal kare formatına boyutlandırıyoruz ve yerel olarak doğrulanmış nihai bir dosya birleştiriyoruz.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Logom simgeye yerleştirildiğinde şeffaflıklar korunuyor mu?',
|
|
29
|
+
answer:
|
|
30
|
+
'Kesinlikle evet. Motorumuz PNG\'nizi 32 bit olarak okur, onu sabitlerken any şeffaf geçiş deliğini hassas bir şekilde korur, böylece evrensel web adresi çubuğunda (Favicon) öne çıkarlar.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Şirket logom sunucularınızda saklanıyor mu?',
|
|
34
|
+
answer:
|
|
35
|
+
'Bu hizmet sıfır harici ağ teması garanti eder. Dönüştürücü, dahili HTML5 Canvas\'ınıza sabitlenmiş olarak çalışır; simgenizin üretimi tamamen kendi makinenizin içinde, gizli yerel bellekte gerçekleşir.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: PngAIcoLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Dosyaları aktarmak için sürükleyin',
|
|
42
|
+
text: 'Fotoğraf matrislerinizi (kare 512x512 PNG idealdir) etkileşimli yerel çerçeveye yerleştirin.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Otomatik bayt kodu derlemesi',
|
|
46
|
+
text: 'Arındırılmış ICO onaltılık üstbilgilerinin yerel matrisini yüklerken ve üretirken çubuğun dahili olarak çalıştığını göreceksiniz.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'ZIP dosyanızla biriktirin veya kaçın',
|
|
50
|
+
text: 'Web siteleriniz için dev bir derlemeye (küresel ZIP düğmeleri) tıklayarak indirin veya Windows yürütülebilir dosyası için küçük resmi indirin.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: PngAIcoLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Microsoft ICO Formatı Teknik Yapısı',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Favicon Standardı - W3C',
|
|
61
|
+
url: 'https://www.w3.org/2005/10/howto-favicon',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: PngAIcoLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'PNG\'den ICO\'ya Dönüştürücü: Mükemmel Şeffaflığa Sahip Faviconlar İçin En İyi Kaynak',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>Şeffaf PNG</strong>, profesyonel ICO simgeleri oluşturmak için ideal başlangıç malzemesidir. JPG (alfa kanalı olmayan) veya kayıplı formatların aksine, PNG size tam olarak ICO formatının ihtiyaç duyduğu şeyi sunar: keskin pikseller, temiz kenarlar ve simgenin her türlü arka plan üzerinde mükemmel bir şekilde bütünleşmesini sağlayan 32 bitlik bir alfa kanalı — ister Safari\'nin beyaz yer imi çubuğu, ister Firefox\'un koyu çubuğu veya Windows 11 masaüstü olsun.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'PNG mi ICO mu? Her format ne zaman kullanılır',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>PNG</strong> çalışma formatıdır: logonuzu tasarladığınız, Figma veya Illustrator\'dan dışa aktardığınız ve düzenlenebilir sürümlerinizi kaydettiğiniz yerdir. Şeffaflığı, piksel hassasiyeti ve kayıpsız sıkıştırması onu tasarım süreci için rakipsiz kılar. Ancak favicon veya uygulama simgesi arayan tarayıcılar, işletim sistemleri ve Windows uygulamaları PNG\'yi doğrudan kabul etmez — ICO\'ya ihtiyaç duyarlar.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>ICO</strong>, Microsoft ortamlarında und web\'de simgeler için dağıtım formatıdır. Tek bir dosyada birden fazla çözünürlüğün paketlenmesine izin veren belirli bir ikili yapı içerir: tarayıcı ICO\'nun dahili dizinini okur und tarayıcı sekmesi için <strong>16×16</strong>, kısayollar için <strong>32×32</strong>, dosya gezgini için <strong>48×48</strong> und Retina ile 4K ekranlar için <strong>256×256</strong>\'yı otomatik olarak seçer. Şeffaf bir PNG\'den başlamak, tüm bu çözünürlüklerin any beyaz saçak olmadan mükemmel kenarlara sahip olacağını garanti eder.',
|
|
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
|
+
'Yükleme und indirmede ağ gecikmesi',
|
|
103
|
+
'Kurumsal logonuz üçüncü taraf sunucularda saklanır',
|
|
104
|
+
'Dosya boyutu sınırları und günlük dönüştürme kotaları',
|
|
105
|
+
'Rahatsız edici reklamlar und üçüncü taraf izleyiciler',
|
|
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
|
+
'Anında hız — sıfır ağ gecikmesi',
|
|
115
|
+
'Tam gizlilik — harici olarak gönderilen 0 bayt',
|
|
116
|
+
'MB sınırı veya dosya sayısı kısıtlaması yok',
|
|
117
|
+
'Temiz arayüz, reklam veya izleme yok',
|
|
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: 'PNG, tam 32 bit alfa kanalı desteğiyle bellekteki bir <strong>HTML5 Canvas</strong>\'a çözülür. Motor; doğru sihirli sayı (<code>00 00 01 00</code>) ile standart Microsoft ICO üstbilgisini, boyutlar und veri ofseti ile görüntü dizinini und şeffaflık bilgilerini korurken piksel verilerini oluşturur. Sonuç; Windows, macOS und tüm tarayıcıların yerel olarak tanıdığı orijinal bir ikili .ico dosyasıdır.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'PNG\'nin şeffaflığı ortaya çıkan ICO\'da tamamen korunur — şeffaf pikseller şeffaf kalır, yarı şeffaf pikseller tam alfa değerlerini korur und opak pikseller orijinal renklerini korur. Bu, değişken arka planlardaki logolar için kritik öneme sahiptir: favicon\'unuz açık modda, koyu modda und tarayıcı arayüz renklerinin any kombinasyonunda doğru görünecektir.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'İpucu: kaynak olarak 512×512 PNG kullanın',
|
|
138
|
+
html: 'Mümkün olan en iyi sonuç için, kaynak görüntü olarak <strong>512×512 kare PNG</strong> kullanın. Bu çözünürlük; dönüştürücüye 16×16 favicon\'dan yüksek yoğunluklu ekranlar için 256×256\'ya kadar tüm standart ICO boyutlarını pikselleşme veya kenar detayı kaybı olmadan keskin bir şekilde oluşturmak için yeterli bilgi sağlar. Kaynak PNG ne kadar büyük olursa, küçük simge boyutları o kadar iyi görünecektir.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Kullanım durumları und uyumluluk',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Web siteleri için şeffaf favicon: Chrome, Firefox, Safari, Edge e Internet Explorer.',
|
|
150
|
+
'PWA uygulama simgesi: manifest.json masaüstü kurulumu için ICO\'ya atıfta bulunur.',
|
|
151
|
+
'Beyaz arka planı olmayan kurumsal logolu Windows 10/11 klasör özelleştirmesi.',
|
|
152
|
+
'Masaüstü uygulamaları, yükleyiciler und yürütülebilir dosyalar için kısayol simgesi.',
|
|
153
|
+
'Chrome und Firefox uzantıları için tarayıcı uzantısı simgesi.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Sonuç',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Şeffaf PNG, hiç şüphesiz profesyonel kalitede ICO simgeleri oluşturmak için en iyi başlangıç noktasıdır. Bu araçla dönüştürme anlıktır, alfa kanalları tamamen korunur und elde edilen dosya doğru ikili yapıya sahip orijinal bir ICO\'dur. Logonuzun any sunucuya yüklenmesi yok, filigran yok, sınır yok — und her boyutta mükemmel şeffaflık.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
export const content: PngAIcoLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
inLanguage: 'tr',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
183
|
+
};
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { PngAIcoLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'png-to-ico-converter';
|
|
6
|
+
const title = '在线 PNG 转 ICO 转换器';
|
|
7
|
+
const description =
|
|
8
|
+
'使用真实的二进制标头将 PNG 转换为 ICO。完美保留透明度。无需上传文件。免费且 100% 私密。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: '拖动 PNG 文件...',
|
|
12
|
+
convertText: '立即将它们转换为 ICO',
|
|
13
|
+
selectFiles: '选择文件',
|
|
14
|
+
processedFiles: '已处理文件',
|
|
15
|
+
downloadAll: '下载全部 (.zip)',
|
|
16
|
+
pending: '等待中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: '常见问题',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAIcoLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '你们的转换器生成的是简单的伪装 PNG 文件还是真正的 ICO?',
|
|
24
|
+
answer:
|
|
25
|
+
'我们生成的是真正的 ICO。我们从您的 PNG 中提取数据, 创建标准化的 Microsoft 十六进制文件头 (包含 22 字节的文件头 + 目录), 在本地调整大小为理想的正方形格式, 并组装成最终被系统验证为原生格式的文件。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '将我的徽标放入图标时, 透明度会保留吗?',
|
|
29
|
+
answer:
|
|
30
|
+
'绝对可以。我们的引擎以 32 位方式读取您的 PNG, 在锚定的同时精确保留任何透明穿透孔, 使其在浏览器地址栏 (Favicon) 中脱颖而出。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '我的公司徽标是否存储在你们的服务器上?',
|
|
34
|
+
answer:
|
|
35
|
+
'此服务保证零外部网络接触。转换器在您的本地 HTML5 Canvas 内运行;图标的制作过程百分之百在您的机器内部私密的本地内存中完成。',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: PngAIcoLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: '拖动文件开始传输',
|
|
42
|
+
text: '将您的照片矩阵 (理想状态是正方形 512x512 PNG) 放入交互式的本地框图中。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: '自动字节码编译',
|
|
46
|
+
text: '在加载和制造本地纯净的 ICO 十六进制文件头矩阵时, 您将看到内部进度条在运行。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '打包 ZIP 批量下载',
|
|
50
|
+
text: '点击网站专用的批量编译按钮 (全局 ZIP 按钮) 下载, 或单独下载适用于 Windows 可执行文件的缩略图。',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: PngAIcoLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Microsoft ICO 格式技术结构',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Favicon 标准 - W3C',
|
|
61
|
+
url: 'https://www.w3.org/2005/10/howto-favicon',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: PngAIcoLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'PNG 转 ICO 转换器: 制作透明 Favicon 的最佳工具',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>带透明度的 PNG</strong> 是制作专业 ICO 图标的理想原始素材。与不含 Alpha 通道的 JPG 或有损格式不同, PNG 能提供 ICO 格式所需的精准要素: 清晰的像素、干净的边缘以及 32 位 Alpha 通道。这使得图标能完美融入任何背景——无论是 Safari 的白色书签栏、Firefox 的深色栏, 还是 Windows 11 的桌面。',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'PNG 还是 ICO?何时使用各格式',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>PNG</strong> 是工作格式: 您可以在其中设计徽标、从 Figma 或 Illustrator 导出并保存可编辑版本。它的透明度、像素精确度和无损压缩特性使其在设计过程中无可替代。但浏览器、操作系统和 Windows 应用程序在寻找 Favicon 或应用图标时并不直接接受 PNG——它们需要 ICO。',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>ICO</strong> 是在 Microsoft 环境和 Web 端分发图标的格式。它包含一个特定的二进制结构, 允许将多种分辨率打包到单个文件中: 浏览器会读取 ICO 内部目录, 并自动为浏览器标签选择 <strong>16×16</strong>、为快捷方式选择 <strong>32×32</strong>、为文件资源管理器选择 <strong>48×48</strong>、并为 Retina 和 4K 屏幕选择 <strong>256×256</strong>。从透明 PNG 开始制作可保证所有这些分辨率都拥有完美的边缘而不产生白边。',
|
|
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
|
+
'上传和下载时的网络延迟',
|
|
103
|
+
'您的公司徽标存储在第三方服务器上',
|
|
104
|
+
'文件大小限制和每日转换配额',
|
|
105
|
+
'干扰性广告和第三方追踪器',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '我们的本地架构',
|
|
110
|
+
description: '使用 Vanilla JS 技术直接在您的硬件上进行处理。',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'即时处理——零网络延迟',
|
|
115
|
+
'完全私密——数据向外发送量为 0 字节',
|
|
116
|
+
'无 MB 限制或文件数量限制',
|
|
117
|
+
'界面简洁, 无广告或追踪',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '技术原理',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'PNG 文件被解码到内存中的 <strong>HTML5 Canvas</strong>, 该画布支持完整的 32 位 Alpha 通道。引擎构建标准的 Microsoft ICO 文件头及其正确的幻数 (<code>00 00 01 00</code>)、包含尺寸和数据偏移的图像目录以及保留透明度信息的像素数据。结果是一个真正的二进制 .ico 文件, Windows、macOS 和所有浏览器都能原生识别。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'PNG 的透明度在生成的 ICO 中得到完整保留——透明像素保持透明, 半透明像素保留其精确的 Alpha 值, 而不透明像素保留其原始颜色。这对于在多变背景下展示徽标至关重要: 您的 Favicon 在浅色模式、深色模式以及浏览器界面的任何颜色组合下都能正确显示。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: '提示: 使用 512×512 的 PNG 作为源文件',
|
|
138
|
+
html: '为了获得最佳效果, 请使用 <strong>512×512 的正方形 PNG</strong> 作为源图像。此分辨率为转换器提供了足够的信息, 从而能够清晰地生成所有标准的 ICO 尺寸——从 16×16 的 Favicon 到 256×256 的高清屏幕图标——而不会出现像素化或边缘细节丢失。源 PNG 越大, 小尺寸图标的效果就越好。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '应用场景与兼容性',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'网站透明 Favicon: 适用于 Chrome、Firefox、Safari、Edge 和 Internet Explorer。',
|
|
150
|
+
'PWA 应用图标: manifest.json 引用 ICO 以进行桌面端安装。',
|
|
151
|
+
'在使用公司徽标自定义 Windows 10/11 文件夹时, 无需担心白边背景。',
|
|
152
|
+
'桌面应用程序、安装程序和可执行文件的快捷方式图标。',
|
|
153
|
+
'Chrome 和 Firefox 的浏览器扩展图标。',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '总结',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '带透明度的 PNG 无疑是制作专业品质 ICO 图标的最佳起点。使用此工具, 转换是即时的, Alpha 通道得到完整保留, 生成的文件是具有正确二进制结构的真实 ICO。无需将徽标上传到任何服务器, 无水印, 无限制——并在所有尺寸下拥有完美的透明效果。',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
export const content: PngAIcoLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
inLanguage: 'zh',
|
|
180
|
+
faq,
|
|
181
|
+
howTo,
|
|
182
|
+
}),
|
|
183
|
+
};
|
|
@@ -16,6 +16,18 @@ export const pngAIco: 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,191 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { PngAJpgLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'png-zu-jpg-konvertieren';
|
|
6
|
+
const title = 'PNG in JPG Online Konvertieren';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertieren Sie Ihre PNG-Bilder sofort auf Ihrem eigenen Computer in das schnell komprimierte JPG-Format. Ohne Fotos ins Internet hochzuladen. Batch-Optimierung.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'PNG-Dateien hierher ziehen...',
|
|
12
|
+
convertText: 'Um sie sofort in JPG 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: PngAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Warum sollten Sie unseren lokalen PNG-zu-JPG-Konverter wählen?',
|
|
24
|
+
answer:
|
|
25
|
+
'Im Gegensatz zu herkömmlichen Tools verarbeitet unser Tool die Dateien vollständig in Ihrem Browser. Ihre Bilder berühren nie eine fremde Festplatte, was die totale Souveränität und Privatsphäre Ihrer Daten garantiert.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'JPG oder PNG? Was ist besser für meinen Fall?',
|
|
29
|
+
answer:
|
|
30
|
+
'PNG ist ideal für Logos und Elemente mit Transparenz. JPG hingegen ist der Goldstandard für Fotos und Web-Banner, da es viel geringere Dateigrößen erreicht und so die Ladegeschwindigkeit einer Website drastisch verbessert.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Wie funktioniert die technische Konvertierung ohne Upload?',
|
|
34
|
+
answer:
|
|
35
|
+
'Wir nutzen die Leistung des HTML5-Canvas. Der Browser stellt das Bild auf einer unsichtbaren virtuellen Leinwand dar, füllt Transparenzen mit Weiß und erzeugt einen Byte-Stream, den Sie sofort direkt herunterladen.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Ist es sicher für vertrauliche Dokumente?',
|
|
39
|
+
answer:
|
|
40
|
+
'Ja, es ist die sicherste Option für Fachleute aus den Bereichen Banken, Gesundheit oder Recht. Da es sich um eine "Black Box" handelt, die nur Ihren RAM nutzt, werden alle Daten beim Schließen des Tabs gelöscht, wodurch Lecks in Drittanbieter-Clouds vermieden werden.',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howTo: PngAJpgLocaleContent['howTo'] = [
|
|
45
|
+
{
|
|
46
|
+
name: 'Dateiauswahl',
|
|
47
|
+
text: 'Bereiten Sie Ihre PNG-Dateien in einem Ordner vor und ziehen Sie sie alle zusammen in den Verarbeitungsbereich oder suchen Sie sie mit dem Explorer.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Sofortige Verarbeitung',
|
|
51
|
+
text: 'Überprüfen Sie, ob sich der Status für jede Datei auf "Fertig" ändert, während der Browser die Dateigröße lokal optimiert.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Optimierter Download',
|
|
55
|
+
text: 'Speichern Sie Ihre neuen JPG-Dateien einzeln oder verwenden Sie die Schaltfläche "Alles herunterladen", um eine komprimierte ZIP-Datei mit allen Bildern zu erhalten.',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const bibliography: PngAJpgLocaleContent['bibliography'] = [
|
|
60
|
+
{
|
|
61
|
+
name: 'PNG Consortium Spezifikationen',
|
|
62
|
+
url: 'http://www.libpng.org/pub/png/',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Das JPEG-Komitee',
|
|
66
|
+
url: 'https://jpeg.org/',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: PngAJpgLocaleContent['seo'] = [
|
|
71
|
+
{
|
|
72
|
+
type: 'title',
|
|
73
|
+
text: 'PNG-zu-JPG-Konverter: Der ultimative Leitfaden zur Bildoptimierung',
|
|
74
|
+
level: 2,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: 'paragraph',
|
|
78
|
+
html: 'In der Welt des digitalen Designs und der Webentwicklung ist Effizienz alles. Das PNG-Format (Portable Network Graphics) wird für seine Fähigkeit geliebt, Transparenzen beizubehalten und eine verlustfreie Kompression zu bieten, hat aber einen großen Feind: das Dateigewicht. Wenn Sie möchten, dass Ihre Website fliegt oder Ihre E-Mails sofort geladen werden, ist der Wechsel von PNG zu JPG die intelligenteste technische Entscheidung.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'title',
|
|
82
|
+
text: 'JPG oder PNG?',
|
|
83
|
+
level: 3,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: 'Es gibt kein Format, das besser als das andere ist, sondern ein Werkzeug für jeden Bedarf. PNG ist ein verlustfreies Format, ideal für Interface-Mockups, Logos mit kleinem Text und visuelle Elemente, die einen transparenten Hintergrund erfordern. Diese Treue hat jedoch ihren Preis: Dateien, die 5- oder 10-mal schwerer sein können als ihr komprimiertes Äquivalent.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'JPG (Joint Photographic Experts Group) hingegen verwendet Diskretisierungsalgorithmen, um Informationen zu entfernen, die das menschliche Auge kaum wahrnimmt, und erreicht so Federgewicht. Es ist der Goldstandard für Fotos, Werbebanner und soziale Netzwerke. Indem Sie Ihre PNGs in JPGs konvertieren, tauschen Sie geometrische Treue gegen Netzwerkgeschwindigkeit ein.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'title',
|
|
95
|
+
text: 'Architekturvergleich: Lokal vs. Cloud',
|
|
96
|
+
level: 3,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'comparative',
|
|
100
|
+
items: [
|
|
101
|
+
{
|
|
102
|
+
title: 'Cloud Konverter',
|
|
103
|
+
description: 'Herkömmliche Tools, die Ihre Fotos auf einen Remote-Server hochladen.',
|
|
104
|
+
icon: 'mdi:cloud-upload',
|
|
105
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
106
|
+
points: [
|
|
107
|
+
'Netzwerklatenz (Upload/Download)',
|
|
108
|
+
'Risiko von Datenlecks privater Daten',
|
|
109
|
+
'Dateigrößenbeschränkungen pro Datei',
|
|
110
|
+
'Werbung und Tracker',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: 'Unsere lokale Architektur',
|
|
115
|
+
description: 'Direkte Verarbeitung auf Ihrer Hardware mittels Vanilla JS-Technologie.',
|
|
116
|
+
icon: 'mdi:laptop-mac',
|
|
117
|
+
highlight: true,
|
|
118
|
+
points: [
|
|
119
|
+
'Sofortige Geschwindigkeit ohne Netzwerk',
|
|
120
|
+
'Garantierte Privatsphäre (0 Bytes gesendet)',
|
|
121
|
+
'Keine MB-Limits pro Datei',
|
|
122
|
+
'Professionelle und saubere Schnittstelle',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Wie die technische Konvertierung funktioniert',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Sie fragen sich wahrscheinlich, wie es möglich ist, ein Bild zu konvertieren, ohne es an einen Server zu senden. Die Magie liegt in der Leistung moderner Browser. Wenn Sie eine Datei auswählen, erzeugen wir einen Blob, der nur in Ihrem RAM existiert. Dieser Blob wird auf ein unsichtbares HTML5-Canvas-Element gezeichnet.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Da JPG keine Transparenzen unterstützt, füllt unser Algorithmus den Hintergrund mit einer soliden weißen Farbe, bevor das PNG darauf "gemalt" wird. Sobald das Bild komponiert ist, führen wir die native Exportmethode aus und erzeugen einen Byte-Stream, den Ihr Computer direkt herunterlädt.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'tip',
|
|
142
|
+
title: 'SEO Tipp: Das ideale Gewicht',
|
|
143
|
+
html: 'Google bestraft aktiv langsame Websites. Wenn Ihr Largest Contentful Paint (LCP) aufgrund eines 2MB großen Header-PNGs hoch ist, kann die Konvertierung in ein 200KB großes JPG Ihre PageSpeed-Metriken sofort verbessern, ohne visuelle Unterschiede.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Sicherheit für Unternehmen und Fachleute',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Wenn Sie in sensiblen Bereichen wie Banken, Gesundheit oder Recht arbeiten, ist das Hochladen von Dateien zu Online-Konvertern eine Sicherheitsverletzung. Unser Tool funktioniert wie eine "Black Box": Was drinnen passiert, bleibt in Ihrem RAM. Es ist der einzige sichere Weg, mit vertraulichen Dokumenten zu arbeiten.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: 'Kompatibilität des Ergebnisses',
|
|
157
|
+
level: 3,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'list',
|
|
161
|
+
icon: 'mdi:check-circle',
|
|
162
|
+
items: [
|
|
163
|
+
'Anzeige auf Windows, macOS und mobilen Geräten.',
|
|
164
|
+
'Soziale Netzwerke (Instagram, LinkedIn usw.).',
|
|
165
|
+
'Office-Tools (Word, PowerPoint).',
|
|
166
|
+
'Content-Management-Systeme (WordPress, Shopify).',
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'title',
|
|
171
|
+
text: 'Fazit: Optimieren wie ein Profi',
|
|
172
|
+
level: 3,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'Dieser Konverter ist nicht nur eine weitere Seite; er ist ein Stück Ingenieurskunst, das Ihnen das Leben erleichtern soll. Egal, ob Sie Entwickler oder Privatanwender sind, hier ist die ultimative Lösung, um Megabytes zu sparen und Ihre Daten sicher aufzubewahren.',
|
|
177
|
+
},
|
|
178
|
+
];
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
export const content: PngAJpgLocaleContent = {
|
|
182
|
+
slug,
|
|
183
|
+
title,
|
|
184
|
+
description,
|
|
185
|
+
ui,
|
|
186
|
+
seo,
|
|
187
|
+
faq,
|
|
188
|
+
bibliography,
|
|
189
|
+
howTo,
|
|
190
|
+
schemas: generateSchemas({ title, description, inLanguage: 'de', faq, howTo }),
|
|
191
|
+
};
|
|
@@ -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 { PngAJpgLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'png-to-jpg-converter';
|
|
@@ -109,16 +109,6 @@ const seo: PngAJpgLocaleContent['seo'] = [
|
|
|
109
109
|
},
|
|
110
110
|
];
|
|
111
111
|
|
|
112
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
113
|
-
'@context': 'https://schema.org',
|
|
114
|
-
'@type': 'SoftwareApplication',
|
|
115
|
-
name: title,
|
|
116
|
-
description,
|
|
117
|
-
applicationCategory: 'UtilitiesApplication',
|
|
118
|
-
operatingSystem: 'Web',
|
|
119
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
120
|
-
inLanguage: 'en',
|
|
121
|
-
};
|
|
122
112
|
|
|
123
113
|
export const content: PngAJpgLocaleContent = {
|
|
124
114
|
slug,
|
|
@@ -129,5 +119,5 @@ export const content: PngAJpgLocaleContent = {
|
|
|
129
119
|
faq,
|
|
130
120
|
bibliography,
|
|
131
121
|
howTo,
|
|
132
|
-
schemas:
|
|
122
|
+
schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
|
|
133
123
|
};
|
|
@@ -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 { PngAJpgLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertidor-png-a-jpg';
|
|
@@ -177,16 +177,6 @@ const seo: PngAJpgLocaleContent['seo'] = [
|
|
|
177
177
|
},
|
|
178
178
|
];
|
|
179
179
|
|
|
180
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
181
|
-
'@context': 'https://schema.org',
|
|
182
|
-
'@type': 'SoftwareApplication',
|
|
183
|
-
name: title,
|
|
184
|
-
description,
|
|
185
|
-
applicationCategory: 'UtilitiesApplication',
|
|
186
|
-
operatingSystem: 'Web',
|
|
187
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
188
|
-
inLanguage: 'es',
|
|
189
|
-
};
|
|
190
180
|
|
|
191
181
|
export const content: PngAJpgLocaleContent = {
|
|
192
182
|
slug,
|
|
@@ -197,5 +187,5 @@ export const content: PngAJpgLocaleContent = {
|
|
|
197
187
|
faq,
|
|
198
188
|
bibliography,
|
|
199
189
|
howTo,
|
|
200
|
-
schemas:
|
|
190
|
+
schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
|
|
201
191
|
};
|
|
@@ -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 { PngAJpgLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertisseur-png-en-jpg';
|
|
@@ -104,16 +104,6 @@ const seo: PngAJpgLocaleContent['seo'] = [
|
|
|
104
104
|
},
|
|
105
105
|
];
|
|
106
106
|
|
|
107
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
108
|
-
'@context': 'https://schema.org',
|
|
109
|
-
'@type': 'SoftwareApplication',
|
|
110
|
-
name: title,
|
|
111
|
-
description,
|
|
112
|
-
applicationCategory: 'UtilitiesApplication',
|
|
113
|
-
operatingSystem: 'Web',
|
|
114
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
115
|
-
inLanguage: 'fr',
|
|
116
|
-
};
|
|
117
107
|
|
|
118
108
|
export const content: PngAJpgLocaleContent = {
|
|
119
109
|
slug,
|
|
@@ -124,5 +114,5 @@ export const content: PngAJpgLocaleContent = {
|
|
|
124
114
|
faq,
|
|
125
115
|
bibliography,
|
|
126
116
|
howTo,
|
|
127
|
-
schemas:
|
|
117
|
+
schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
|
|
128
118
|
};
|