@jjlmoya/utils-converters 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +60 -59
- package/src/shared/logic/schemas.ts +57 -0
- package/src/tests/faq_count.test.ts +13 -4
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +1 -1
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/avifAJpg/i18n/de.ts +178 -0
- package/src/tool/avifAJpg/i18n/en.ts +2 -12
- package/src/tool/avifAJpg/i18n/es.ts +2 -12
- package/src/tool/avifAJpg/i18n/fr.ts +2 -12
- package/src/tool/avifAJpg/i18n/id.ts +178 -0
- package/src/tool/avifAJpg/i18n/it.ts +178 -0
- package/src/tool/avifAJpg/i18n/ja.ts +178 -0
- package/src/tool/avifAJpg/i18n/ko.ts +178 -0
- package/src/tool/avifAJpg/i18n/nl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pt.ts +178 -0
- package/src/tool/avifAJpg/i18n/ru.ts +178 -0
- package/src/tool/avifAJpg/i18n/sv.ts +178 -0
- package/src/tool/avifAJpg/i18n/tr.ts +178 -0
- package/src/tool/avifAJpg/i18n/zh.ts +178 -0
- package/src/tool/avifAJpg/index.ts +13 -1
- package/src/tool/avifAPng/i18n/de.ts +178 -0
- package/src/tool/avifAPng/i18n/en.ts +2 -12
- package/src/tool/avifAPng/i18n/es.ts +2 -12
- package/src/tool/avifAPng/i18n/fr.ts +2 -12
- package/src/tool/avifAPng/i18n/id.ts +178 -0
- package/src/tool/avifAPng/i18n/it.ts +178 -0
- package/src/tool/avifAPng/i18n/ja.ts +178 -0
- package/src/tool/avifAPng/i18n/ko.ts +178 -0
- package/src/tool/avifAPng/i18n/nl.ts +178 -0
- package/src/tool/avifAPng/i18n/pl.ts +178 -0
- package/src/tool/avifAPng/i18n/pt.ts +178 -0
- package/src/tool/avifAPng/i18n/ru.ts +178 -0
- package/src/tool/avifAPng/i18n/sv.ts +178 -0
- package/src/tool/avifAPng/i18n/tr.ts +178 -0
- package/src/tool/avifAPng/i18n/zh.ts +178 -0
- package/src/tool/avifAPng/index.ts +13 -1
- package/src/tool/avifAWebp/i18n/de.ts +178 -0
- package/src/tool/avifAWebp/i18n/en.ts +2 -12
- package/src/tool/avifAWebp/i18n/es.ts +2 -12
- package/src/tool/avifAWebp/i18n/fr.ts +2 -12
- package/src/tool/avifAWebp/i18n/id.ts +178 -0
- package/src/tool/avifAWebp/i18n/it.ts +178 -0
- package/src/tool/avifAWebp/i18n/ja.ts +178 -0
- package/src/tool/avifAWebp/i18n/ko.ts +178 -0
- package/src/tool/avifAWebp/i18n/nl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pt.ts +178 -0
- package/src/tool/avifAWebp/i18n/ru.ts +178 -0
- package/src/tool/avifAWebp/i18n/sv.ts +178 -0
- package/src/tool/avifAWebp/i18n/tr.ts +178 -0
- package/src/tool/avifAWebp/i18n/zh.ts +178 -0
- package/src/tool/avifAWebp/index.ts +13 -1
- package/src/tool/bmpAJpg/i18n/de.ts +178 -0
- package/src/tool/bmpAJpg/i18n/en.ts +2 -12
- package/src/tool/bmpAJpg/i18n/es.ts +2 -12
- package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
- package/src/tool/bmpAJpg/i18n/id.ts +178 -0
- package/src/tool/bmpAJpg/i18n/it.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
- package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
- package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
- package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
- package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
- package/src/tool/bmpAJpg/index.ts +13 -1
- package/src/tool/bmpAPng/i18n/de.ts +177 -0
- package/src/tool/bmpAPng/i18n/en.ts +2 -12
- package/src/tool/bmpAPng/i18n/es.ts +2 -12
- package/src/tool/bmpAPng/i18n/fr.ts +2 -12
- package/src/tool/bmpAPng/i18n/id.ts +177 -0
- package/src/tool/bmpAPng/i18n/it.ts +177 -0
- package/src/tool/bmpAPng/i18n/ja.ts +177 -0
- package/src/tool/bmpAPng/i18n/ko.ts +177 -0
- package/src/tool/bmpAPng/i18n/nl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pt.ts +177 -0
- package/src/tool/bmpAPng/i18n/ru.ts +177 -0
- package/src/tool/bmpAPng/i18n/sv.ts +177 -0
- package/src/tool/bmpAPng/i18n/tr.ts +177 -0
- package/src/tool/bmpAPng/i18n/zh.ts +177 -0
- package/src/tool/bmpAPng/index.ts +13 -1
- package/src/tool/bmpAWebp/i18n/de.ts +178 -0
- package/src/tool/bmpAWebp/i18n/en.ts +2 -12
- package/src/tool/bmpAWebp/i18n/es.ts +2 -12
- package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
- package/src/tool/bmpAWebp/i18n/id.ts +178 -0
- package/src/tool/bmpAWebp/i18n/it.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
- package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
- package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
- package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
- package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
- package/src/tool/bmpAWebp/index.ts +13 -1
- package/src/tool/gifAJpg/i18n/de.ts +178 -0
- package/src/tool/gifAJpg/i18n/en.ts +2 -12
- package/src/tool/gifAJpg/i18n/es.ts +2 -12
- package/src/tool/gifAJpg/i18n/fr.ts +2 -12
- package/src/tool/gifAJpg/i18n/id.ts +178 -0
- package/src/tool/gifAJpg/i18n/it.ts +178 -0
- package/src/tool/gifAJpg/i18n/ja.ts +178 -0
- package/src/tool/gifAJpg/i18n/ko.ts +178 -0
- package/src/tool/gifAJpg/i18n/nl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pt.ts +178 -0
- package/src/tool/gifAJpg/i18n/ru.ts +178 -0
- package/src/tool/gifAJpg/i18n/sv.ts +178 -0
- package/src/tool/gifAJpg/i18n/tr.ts +178 -0
- package/src/tool/gifAJpg/i18n/zh.ts +178 -0
- package/src/tool/gifAJpg/index.ts +13 -1
- package/src/tool/gifAPng/i18n/de.ts +178 -0
- package/src/tool/gifAPng/i18n/en.ts +2 -12
- package/src/tool/gifAPng/i18n/es.ts +2 -12
- package/src/tool/gifAPng/i18n/fr.ts +2 -12
- package/src/tool/gifAPng/i18n/id.ts +178 -0
- package/src/tool/gifAPng/i18n/it.ts +178 -0
- package/src/tool/gifAPng/i18n/ja.ts +178 -0
- package/src/tool/gifAPng/i18n/ko.ts +178 -0
- package/src/tool/gifAPng/i18n/nl.ts +178 -0
- package/src/tool/gifAPng/i18n/pl.ts +178 -0
- package/src/tool/gifAPng/i18n/pt.ts +178 -0
- package/src/tool/gifAPng/i18n/ru.ts +178 -0
- package/src/tool/gifAPng/i18n/sv.ts +178 -0
- package/src/tool/gifAPng/i18n/tr.ts +178 -0
- package/src/tool/gifAPng/i18n/zh.ts +178 -0
- package/src/tool/gifAPng/index.ts +12 -0
- package/src/tool/gifAWebp/i18n/de.ts +178 -0
- package/src/tool/gifAWebp/i18n/en.ts +2 -12
- package/src/tool/gifAWebp/i18n/es.ts +2 -12
- package/src/tool/gifAWebp/i18n/fr.ts +2 -12
- package/src/tool/gifAWebp/i18n/id.ts +178 -0
- package/src/tool/gifAWebp/i18n/it.ts +178 -0
- package/src/tool/gifAWebp/i18n/ja.ts +178 -0
- package/src/tool/gifAWebp/i18n/ko.ts +178 -0
- package/src/tool/gifAWebp/i18n/nl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pt.ts +178 -0
- package/src/tool/gifAWebp/i18n/ru.ts +178 -0
- package/src/tool/gifAWebp/i18n/sv.ts +178 -0
- package/src/tool/gifAWebp/i18n/tr.ts +178 -0
- package/src/tool/gifAWebp/i18n/zh.ts +178 -0
- package/src/tool/gifAWebp/index.ts +12 -0
- package/src/tool/imagenBase64/i18n/de.ts +168 -0
- package/src/tool/imagenBase64/i18n/en.ts +2 -12
- package/src/tool/imagenBase64/i18n/es.ts +2 -12
- package/src/tool/imagenBase64/i18n/fr.ts +2 -12
- package/src/tool/imagenBase64/i18n/id.ts +168 -0
- package/src/tool/imagenBase64/i18n/it.ts +168 -0
- package/src/tool/imagenBase64/i18n/ja.ts +168 -0
- package/src/tool/imagenBase64/i18n/ko.ts +168 -0
- package/src/tool/imagenBase64/i18n/nl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pt.ts +173 -0
- package/src/tool/imagenBase64/i18n/ru.ts +168 -0
- package/src/tool/imagenBase64/i18n/sv.ts +168 -0
- package/src/tool/imagenBase64/i18n/tr.ts +168 -0
- package/src/tool/imagenBase64/i18n/zh.ts +168 -0
- package/src/tool/imagenBase64/index.ts +12 -0
- package/src/tool/jpgAIco/i18n/de.ts +183 -0
- package/src/tool/jpgAIco/i18n/en.ts +8 -13
- package/src/tool/jpgAIco/i18n/es.ts +13 -18
- package/src/tool/jpgAIco/i18n/fr.ts +9 -14
- package/src/tool/jpgAIco/i18n/id.ts +183 -0
- package/src/tool/jpgAIco/i18n/it.ts +183 -0
- package/src/tool/jpgAIco/i18n/ja.ts +183 -0
- package/src/tool/jpgAIco/i18n/ko.ts +183 -0
- package/src/tool/jpgAIco/i18n/nl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pt.ts +183 -0
- package/src/tool/jpgAIco/i18n/ru.ts +183 -0
- package/src/tool/jpgAIco/i18n/sv.ts +183 -0
- package/src/tool/jpgAIco/i18n/tr.ts +183 -0
- package/src/tool/jpgAIco/i18n/zh.ts +183 -0
- package/src/tool/jpgAIco/index.ts +12 -0
- package/src/tool/jpgAPng/i18n/de.ts +178 -0
- package/src/tool/jpgAPng/i18n/en.ts +2 -12
- package/src/tool/jpgAPng/i18n/es.ts +2 -12
- package/src/tool/jpgAPng/i18n/fr.ts +2 -12
- package/src/tool/jpgAPng/i18n/id.ts +178 -0
- package/src/tool/jpgAPng/i18n/it.ts +178 -0
- package/src/tool/jpgAPng/i18n/ja.ts +178 -0
- package/src/tool/jpgAPng/i18n/ko.ts +178 -0
- package/src/tool/jpgAPng/i18n/nl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pt.ts +178 -0
- package/src/tool/jpgAPng/i18n/ru.ts +178 -0
- package/src/tool/jpgAPng/i18n/sv.ts +178 -0
- package/src/tool/jpgAPng/i18n/tr.ts +178 -0
- package/src/tool/jpgAPng/i18n/zh.ts +178 -0
- package/src/tool/jpgAPng/index.ts +13 -1
- package/src/tool/jpgAWebp/i18n/de.ts +178 -0
- package/src/tool/jpgAWebp/i18n/en.ts +2 -12
- package/src/tool/jpgAWebp/i18n/es.ts +2 -12
- package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
- package/src/tool/jpgAWebp/i18n/id.ts +178 -0
- package/src/tool/jpgAWebp/i18n/it.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
- package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
- package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
- package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
- package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
- package/src/tool/jpgAWebp/index.ts +12 -0
- package/src/tool/pngAIco/i18n/de.ts +183 -0
- package/src/tool/pngAIco/i18n/en.ts +8 -13
- package/src/tool/pngAIco/i18n/es.ts +19 -24
- package/src/tool/pngAIco/i18n/fr.ts +20 -25
- package/src/tool/pngAIco/i18n/id.ts +183 -0
- package/src/tool/pngAIco/i18n/it.ts +183 -0
- package/src/tool/pngAIco/i18n/ja.ts +183 -0
- package/src/tool/pngAIco/i18n/ko.ts +183 -0
- package/src/tool/pngAIco/i18n/nl.ts +183 -0
- package/src/tool/pngAIco/i18n/pl.ts +183 -0
- package/src/tool/pngAIco/i18n/pt.ts +183 -0
- package/src/tool/pngAIco/i18n/ru.ts +183 -0
- package/src/tool/pngAIco/i18n/sv.ts +183 -0
- package/src/tool/pngAIco/i18n/tr.ts +183 -0
- package/src/tool/pngAIco/i18n/zh.ts +183 -0
- package/src/tool/pngAIco/index.ts +12 -0
- package/src/tool/pngAJpg/i18n/de.ts +191 -0
- package/src/tool/pngAJpg/i18n/en.ts +2 -12
- package/src/tool/pngAJpg/i18n/es.ts +2 -12
- package/src/tool/pngAJpg/i18n/fr.ts +2 -12
- package/src/tool/pngAJpg/i18n/id.ts +191 -0
- package/src/tool/pngAJpg/i18n/it.ts +191 -0
- package/src/tool/pngAJpg/i18n/ja.ts +191 -0
- package/src/tool/pngAJpg/i18n/ko.ts +191 -0
- package/src/tool/pngAJpg/i18n/nl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pt.ts +191 -0
- package/src/tool/pngAJpg/i18n/ru.ts +191 -0
- package/src/tool/pngAJpg/i18n/sv.ts +191 -0
- package/src/tool/pngAJpg/i18n/tr.ts +191 -0
- package/src/tool/pngAJpg/i18n/zh.ts +191 -0
- package/src/tool/pngAJpg/index.ts +13 -1
- package/src/tool/pngAWebp/i18n/de.ts +182 -0
- package/src/tool/pngAWebp/i18n/en.ts +2 -12
- package/src/tool/pngAWebp/i18n/es.ts +2 -12
- package/src/tool/pngAWebp/i18n/fr.ts +2 -12
- package/src/tool/pngAWebp/i18n/id.ts +182 -0
- package/src/tool/pngAWebp/i18n/it.ts +182 -0
- package/src/tool/pngAWebp/i18n/ja.ts +182 -0
- package/src/tool/pngAWebp/i18n/ko.ts +182 -0
- package/src/tool/pngAWebp/i18n/nl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pt.ts +182 -0
- package/src/tool/pngAWebp/i18n/ru.ts +182 -0
- package/src/tool/pngAWebp/i18n/sv.ts +182 -0
- package/src/tool/pngAWebp/i18n/tr.ts +182 -0
- package/src/tool/pngAWebp/i18n/zh.ts +182 -0
- package/src/tool/pngAWebp/index.ts +12 -0
- package/src/tool/svgAJpg/i18n/de.ts +178 -0
- package/src/tool/svgAJpg/i18n/en.ts +8 -13
- package/src/tool/svgAJpg/i18n/es.ts +8 -13
- package/src/tool/svgAJpg/i18n/fr.ts +2 -12
- package/src/tool/svgAJpg/i18n/id.ts +178 -0
- package/src/tool/svgAJpg/i18n/it.ts +178 -0
- package/src/tool/svgAJpg/i18n/ja.ts +178 -0
- package/src/tool/svgAJpg/i18n/ko.ts +178 -0
- package/src/tool/svgAJpg/i18n/nl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pt.ts +178 -0
- package/src/tool/svgAJpg/i18n/ru.ts +178 -0
- package/src/tool/svgAJpg/i18n/sv.ts +178 -0
- package/src/tool/svgAJpg/i18n/tr.ts +178 -0
- package/src/tool/svgAJpg/i18n/zh.ts +178 -0
- package/src/tool/svgAJpg/index.ts +12 -0
- package/src/tool/svgAPng/i18n/de.ts +178 -0
- package/src/tool/svgAPng/i18n/en.ts +8 -13
- package/src/tool/svgAPng/i18n/es.ts +31 -36
- package/src/tool/svgAPng/i18n/fr.ts +2 -12
- package/src/tool/svgAPng/i18n/id.ts +178 -0
- package/src/tool/svgAPng/i18n/it.ts +178 -0
- package/src/tool/svgAPng/i18n/ja.ts +178 -0
- package/src/tool/svgAPng/i18n/ko.ts +178 -0
- package/src/tool/svgAPng/i18n/nl.ts +178 -0
- package/src/tool/svgAPng/i18n/pl.ts +178 -0
- package/src/tool/svgAPng/i18n/pt.ts +178 -0
- package/src/tool/svgAPng/i18n/ru.ts +178 -0
- package/src/tool/svgAPng/i18n/sv.ts +178 -0
- package/src/tool/svgAPng/i18n/tr.ts +178 -0
- package/src/tool/svgAPng/i18n/zh.ts +178 -0
- package/src/tool/svgAPng/index.ts +12 -0
- package/src/tool/webpAIco/i18n/de.ts +183 -0
- package/src/tool/webpAIco/i18n/en.ts +8 -13
- package/src/tool/webpAIco/i18n/es.ts +9 -14
- package/src/tool/webpAIco/i18n/fr.ts +11 -16
- package/src/tool/webpAIco/i18n/id.ts +183 -0
- package/src/tool/webpAIco/i18n/it.ts +183 -0
- package/src/tool/webpAIco/i18n/ja.ts +183 -0
- package/src/tool/webpAIco/i18n/ko.ts +183 -0
- package/src/tool/webpAIco/i18n/nl.ts +183 -0
- package/src/tool/webpAIco/i18n/pl.ts +183 -0
- package/src/tool/webpAIco/i18n/pt.ts +183 -0
- package/src/tool/webpAIco/i18n/ru.ts +183 -0
- package/src/tool/webpAIco/i18n/sv.ts +183 -0
- package/src/tool/webpAIco/i18n/tr.ts +183 -0
- package/src/tool/webpAIco/i18n/zh.ts +183 -0
- package/src/tool/webpAIco/index.ts +12 -0
- package/src/tool/webpAJpg/i18n/de.ts +187 -0
- package/src/tool/webpAJpg/i18n/en.ts +9 -13
- package/src/tool/webpAJpg/i18n/es.ts +37 -42
- package/src/tool/webpAJpg/i18n/fr.ts +35 -40
- package/src/tool/webpAJpg/i18n/id.ts +182 -0
- package/src/tool/webpAJpg/i18n/it.ts +182 -0
- package/src/tool/webpAJpg/i18n/ja.ts +182 -0
- package/src/tool/webpAJpg/i18n/ko.ts +182 -0
- package/src/tool/webpAJpg/i18n/nl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pt.ts +182 -0
- package/src/tool/webpAJpg/i18n/ru.ts +182 -0
- package/src/tool/webpAJpg/i18n/sv.ts +182 -0
- package/src/tool/webpAJpg/i18n/tr.ts +182 -0
- package/src/tool/webpAJpg/i18n/zh.ts +182 -0
- package/src/tool/webpAJpg/index.ts +12 -0
- package/src/tool/webpAPng/i18n/de.ts +182 -0
- package/src/tool/webpAPng/i18n/en.ts +8 -13
- package/src/tool/webpAPng/i18n/es.ts +35 -40
- package/src/tool/webpAPng/i18n/fr.ts +2 -12
- package/src/tool/webpAPng/i18n/id.ts +182 -0
- package/src/tool/webpAPng/i18n/it.ts +182 -0
- package/src/tool/webpAPng/i18n/ja.ts +182 -0
- package/src/tool/webpAPng/i18n/ko.ts +182 -0
- package/src/tool/webpAPng/i18n/nl.ts +182 -0
- package/src/tool/webpAPng/i18n/pl.ts +182 -0
- package/src/tool/webpAPng/i18n/pt.ts +182 -0
- package/src/tool/webpAPng/i18n/ru.ts +182 -0
- package/src/tool/webpAPng/i18n/sv.ts +182 -0
- package/src/tool/webpAPng/i18n/tr.ts +182 -0
- package/src/tool/webpAPng/i18n/zh.ts +182 -0
- package/src/tool/webpAPng/index.ts +12 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { JpgAIcoLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'jpg-den-ico-ya-donusturucu';
|
|
6
|
+
const title = 'JPG\'den ICO\'ya Dönüştürücü';
|
|
7
|
+
const description =
|
|
8
|
+
'JPG fotoğrafları gerçek Microsoft ikili üstbilgileriyle ICO\'ya dönüştürün. Otomatik kare kırpma. Dosya yüklemesi yok. Ücretsiz ve özel.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'JPG 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: JpgAIcoLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Elde edilen ICO dosyası Windows klasörlerini özelleştirmek için yerel olarak uyumlu mu?',
|
|
24
|
+
answer:
|
|
25
|
+
'Evet, görüntü matrisine düşük düzeyde standardize edilmiş bir ikili üstbilgi ekleyerek %100 orijinal bir Microsoft Simge Formatı dosyası oluşturuyoruz.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Orijinal JPG dosyam panoramik yatay bir fotoğrafsa orana ne olur?',
|
|
29
|
+
answer:
|
|
30
|
+
'Katı küresel ICO standardı kesinlikle mükemmel bir kare görüntü gerektirir. HTML5 JS motorumuz fotoğrafınızı merkeze alacak ve fazlalığı kırparak dengeli bir sonuç garanti edecektir.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Kurumsal veya kişisel JPG logolarını dönüştürücüye yüklemek tehlikeli mi?',
|
|
34
|
+
answer:
|
|
35
|
+
'JavaScript\'teki Canvas motoru kendi tarayıcınızda çalışır. Yüzlerce fotoğrafın ICO\'ya dönüştürülmesi, şüpheli ülkelerdeki herhangi bir buluta tek bir megabayt bile göndermez.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAIcoLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Orijinal JPG fotoğraflarını toplayın',
|
|
42
|
+
text: 'Geleneksel fotoğrafları bulun ve toplayın ve onları dost canlısı karemize bırakarak yerleştirin.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'İkili arındırmaya tanık olun',
|
|
46
|
+
text: 'Yeniden kodlama, meta verileri ve üstbilgileri yerel ve hızlı bir şekilde asenkron olarak ekleyerek bellekte kesinlikle saf bir simge oluşturacaktır.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Birden fazla ZIP tasarımını derleyin',
|
|
50
|
+
text: 'Saniyeler içinde her şeyi toplu olarak kompakt bir pakette indirerek işi bitirin.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAIcoLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'ICO İkonografik Yapısı ve Sistem Kullanımı',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'JPEG.org Standartları',
|
|
61
|
+
url: 'https://jpeg.org/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAIcoLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'JPG\'den ICO\'ya Dönüştürücü: Fotoğraflarınızdan Faviconlar ve Windows Simgeleri Oluşturun',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>ICO</strong> formatı, Microsoft\'un Windows uygulama simgeleri ve web sitesi faviconları için standarttır. Bir JPG\'yi sadece .ico olarak yeniden adlandırmanın aksine, gerçek bir ICO dosyası 22 baytlık üstbilgiler ve gömülü bir görüntü dizini ile belirli bir ikili yapı gerektirir. <strong>JPG</strong>, bu simgeleri oluşturmak için en yaygın başlangıç noktasıdır; bir şirket logosu, bir profil fotoğrafı veya uygulamanızın veya web sitenizin görsel simgesine dönüştürmek istediğiniz herhangi bir görüntü.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG mi ICO mu? Her format ne zaman kullanılır',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>JPG</strong> bir kaynak formattır, simgeler için bir hedef değildir. Fotoğraflar ve afişler için mükemmeldir, ancak simge gerektiren sistemlerle uyumsuzdur: Windows Dosya Gezgini, tarayıcının yer imi çubuğu, masaüstü kısayolları veya PWA uygulama manifestleri. Bir simge arayan işletim sistemi veya tarayıcı ICO formatını bekler ve eğer bulamazsa genel bir simge veya bozuk bir kare görüntüler.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>ICO</strong> formatı, tek bir dosyada birden fazla çözünürlük içerecek şekilde tasarlanmıştır: Yer imi çubuğu için <strong>16×16</strong>, kısayollar için <strong>32×32</strong>, dosya gezgini için <strong>48×48</strong> ve yüksek yoğunluklu ekranlar için <strong>256×256</strong>. Tarayıcılar ve işletim sistemleri, görüntüleme bağlamına göre uygun çözünürlüğü otomatik olarak seçer; kullanıcının herhangi bir şeyi yönetmesi gerekmez.',
|
|
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 ve indirmede ağ gecikmesi',
|
|
103
|
+
'Kurumsal logolarınız üçüncü taraf sunucularda saklanır',
|
|
104
|
+
'Dosya boyutu sınırları ve günlük dönüştürme kotaları',
|
|
105
|
+
'Rahatsız edici reklamlar ve üçü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: 'JPG kodu çözülür ve bellekteki bir <strong>HTML5 Canvas</strong> üzerine çizilir. ICO formatı kare bir görüntü gerektirdiğinden, motor JPG\'nin dikdörtgen olup olmadığını otomatik olarak algılar ve en ilgili kısmı merkeze alarak kırpar. Daha sonra doğru sihirli sayı (<code>00 00 01 00</code>), görüntü dizini und kodlanmış piksel verileriyle standart Microsoft ICO üstbilgisini oluşturur. Sonuç, yeniden adlandırılmış bir PNG değil, orijinal bir ikili .ico dosyasıdır.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'JPG\'de alfa kanalı bulunmadığından, elde edilen ICO\'da da şeffaflık olmayacaktır; orijinal fotoğraftan miras alınan düz bir arka plana sahip olacaktır. Şeffaf arka plana sahip bir favicon\'a ihtiyacınız varsa (örneğin, koyu veya açık yer imi çubuklarına uyum sağlamak için), önerilen iş akışı şudur: Arka planı bir düzenleyicide kaldırın, PNG olarak kaydedin und PNG\'den ICO\'ya dönüştürücüyü kullanın.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'İpucu: Tek bir ICO\'da birden fazla çözünürlük',
|
|
138
|
+
html: 'ICO dosyaları, tek bir dosyada <strong>birden fazla çözünürlüğü</strong> paketleyebilir; tarayıcı veya işletim sistemi her bağlam için en uygun olanı otomatik olarak seçer. Mümkün olan en iyi sonuç için, kaynak olarak en az <strong>256×256 piksel</strong> boyutunda kare bir JPG kullanın: Bu, dönüştürücüye pikselleşme olmadan keskin 16×16, 32×32 und 48×48 boyutları üretmek için yeterli bilgi sağlar.',
|
|
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 sitesi favicon\'u: Internet Explorer dahil tüm tarayıcılarla uyumludur.',
|
|
150
|
+
'Windows 10/11\'de klasör und masaüstü simgesi özelleştirme.',
|
|
151
|
+
'Masaüstü uygulamaları veya yükleyiciler için kısayol simgesi.',
|
|
152
|
+
'Electron projeleri veya PWA uygulamaları için uygulama simgesi.',
|
|
153
|
+
'Dosya yönetim sistemleri und kurumsal dosya gezginleri için simgeler.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Sonuç',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Bir JPG\'yi ICO\'ya dönüştürmek, tanınabilir bir görsel kimliğe ihtiyaç duyan her web veya masaüstü projesi için teknik olarak temel bir adımdır. Bu araç, logonuzu herhangi bir harici sunucuya yüklemeden saniyeler içinde doğru ikili yapıya sahip orijinal ICO\'lar oluşturur. Sonuç tüm tarayıcılarda, Windows Dosya Gezgini\'nde und Microsoft\'un ICO standardını tüketen her sistemde çalışır.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
export const content: JpgAIcoLocaleContent = {
|
|
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 { JpgAIcoLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'jpg-to-ico-converter';
|
|
6
|
+
const title = 'JPG 转 ICO 转换器';
|
|
7
|
+
const description =
|
|
8
|
+
'使用真实的 Microsoft 二进制标头将 JPG 照片转换为 ICO。自动正方形裁剪。无需上传文件。免费且私密。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: '拖拽 JPG 文件...',
|
|
12
|
+
convertText: '立即将它们转换为 ICO',
|
|
13
|
+
selectFiles: '选择文件',
|
|
14
|
+
processedFiles: '已处理文件',
|
|
15
|
+
downloadAll: '下载全部 (.zip)',
|
|
16
|
+
pending: '等待中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: '常见问题',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: JpgAIcoLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '生成的 ICO 文件是否原生兼容自定义 Windows 文件夹?',
|
|
24
|
+
answer:
|
|
25
|
+
'是的, 我们通过在图像矩阵的底层插入标准化的二进制标头, 创建 100% 真实的 Microsoft 图标格式文件。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '如果我的原始 JPG 是全景横向照片, 比例会怎样?',
|
|
29
|
+
answer:
|
|
30
|
+
'严格的全球 ICO 标准绝对要求完美的正方形图像。我们的 HTML5 JS 引擎将使您的照片居中并裁剪多余部分, 确保平衡的结果。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '将公司或个人 JPG 徽标上传到转换器是否危险?',
|
|
34
|
+
answer:
|
|
35
|
+
'JavaScript 中的 Canvas 引擎运行在您自己的浏览器中。将数百张照片转换为 ICO 不会向任何外部云端发送单字节数据。',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAIcoLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: '收集原始 JPG 照片',
|
|
42
|
+
text: '查找并收集常规照片, 并将其拖放到我们的正方形区域中。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: '见证二进制纯化',
|
|
46
|
+
text: '重新编码将原生且快速地异步插入元数据和标头, 在内存中生成严格纯净的图标 Morse code.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '编译多个 ZIP 设计',
|
|
50
|
+
text: '只需几秒钟即可将所有内容打包成压缩包批量下载, 完成工作。',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAIcoLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'ICO 图像结构和系统使用',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/ICO_(file_format)',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'JPEG.org 标准',
|
|
61
|
+
url: 'https://jpeg.org/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAIcoLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'JPG 转 ICO 转换器: 从您的照片创建 Favicon 和 Windows 图标',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>ICO</strong> 格式是 Microsoft 针对 Windows 应用程序图标和网站 favicon 的标准。与简单地将 JPG 重命名为 .ico 不同, 真正的 ICO 文件需要特定的二进制结构, 其中包含 22 字节的标头和嵌入的图像目录。 <strong>JPG</strong> 是创建这些图标最常见的起点——公司徽标、个人资料图片或任何您想变成应用程序或网站视觉标志的图像。',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG 还是 ICO?何时使用每种格式',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>JPG</strong> 是源格式, 而不是图标的目标格式。它非常适合照片和横幅, 但与需要图标的系统不兼容: Windows 资源管理器、浏览器的书签栏、桌面快捷方式或 PWA 应用程序清单。寻找图标的操作系统或浏览器期望的是 ICO 格式——如果找不到, 它将显示通用图标或破裂的正方形。',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>ICO</strong> 格式设计用于在单个文件中包含多种分辨率: 书签栏使用 <strong>16×16</strong>, 快捷方式使用 <strong>32×32</strong>, 资源管理器使用 <strong>48×48</strong>, 高密度显示器使用 <strong>256×256</strong>。浏览器和操作系统会根据显示环境自动选择合适的分辨率——用户无需进行任何管理。',
|
|
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 技术直接在您的硬件上进行处理 Morse code.',
|
|
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: 'JPG 被解码并绘制到内存中的 <strong>HTML5 Canvas</strong> 上。由于 ICO 格式要求正方形图像, 引擎会自动检测 JPG 是否为长方形, 并通过使最相关的部分居中来进行裁剪。然后, 它使用正确的魔数 (<code>00 00 01 00</code>)、图像目录和编码后的像素数据构建标准的 Microsoft ICO 标头。结果是一个真正的二进制 .ico 文件——而不是重命名的 PNG。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: '由于 JPG 缺少 Alpha 通道, 生成的 ICO 也不会有透明度——它将具有从原始照片继承的实心背景。如果您需要具有透明背景的 favicon (例如, 为了适应深色或浅色书签栏), 建议的工作流程是: 在编辑器中删除背景, 保存为 PNG, 然后使用 PNG 转 ICO 转换器。',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: '提示: 单个 ICO 中的多种分辨率',
|
|
138
|
+
html: 'ICO 文件夹可以在单个文件中打包 <strong>多种分辨率</strong> —— 浏览器或操作系统会自动为每个环境选择最合适的一个。为了获得最佳效果, 请使用至少 <strong>256×256 像素</strong> 的正方形 JPG 作为源文件: 这为转换器提供了足够的信息, 可以在不像素化的情况下生成清晰的 16×16、32×32 und 48×48 尺寸。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: '应用场景 und 兼容性',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'网站 favicon: 兼容包括 Internet Explorer 在内的所有浏览器。',
|
|
150
|
+
'Windows 10/11 中的文件夹和桌面图标自定义。',
|
|
151
|
+
'桌面应用程序或安装程序的快捷方式图标。',
|
|
152
|
+
'Electron 项目或 PWA 应用程序的应用图标。',
|
|
153
|
+
'文件管理系统和企业资源管理器的图标。',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '结论',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '对于任何需要可识别视觉身份的 Web 或桌面项目来说, 将 JPG 转换为 ICO 都是技术上必不可少的一步。此工具可在几秒钟内生成具有正确二进制结构的真实 ICO, 且无需将您的徽标上传到任何外部服务器。其结果适用于所有浏览器、Windows 资源管理器以及任何采用 Microsoft ICO 标准的系统。',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
export const content: JpgAIcoLocaleContent = {
|
|
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 jpgAIco: 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 { JpgAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'jpg-zu-png-konvertieren';
|
|
6
|
+
const title = 'JPG in PNG Online und Kostenlos Konvertieren';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertieren Sie JPG-Bilder in Ihrem Browser in PNG, ohne Dateien hochzuladen. Verlustfreie Konvertierung, kostenlos und absolut privat.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'JPG-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: JpgAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Wann sollte ich JPG in PNG konvertieren?',
|
|
24
|
+
answer:
|
|
25
|
+
'Immer dann, wenn Sie Text oder Logos innerhalb eines Fotos bearbeiten möchten. Wenn Sie ein JPG mehrmals speichern, wird es "schmutzig". PNG friert die Kompression ein.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Wird die PNG-Datei sofort einen transparenten Hintergrund haben?',
|
|
29
|
+
answer:
|
|
30
|
+
'Nein. Das ursprüngliche JPG war flach und ohne diese Art von strukturellem Kanal. Die resultierende PNG erstellt diesen Container; anschließend müssen Sie das Element mit Photoshop oder einem anderen Editor freistellen.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Gibt es auf dieser Website Traffic-Limits?',
|
|
34
|
+
answer:
|
|
35
|
+
'Dank Edge-Technologien ohne Cloud-Abhängigkeiten gibt es keine Limits für das Gewicht Ihrer Konvertierung, da sie vollständig Ihr IT-Terminal oder Mobiltelefon nutzt.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: JpgAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'JPG in das Panel ziehen',
|
|
42
|
+
text: 'Laden Sie statische Bilder im JPG-Format über Touch-Maus oder den Computer-Selektor hoch.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Verlustfreie Ausführung',
|
|
46
|
+
text: 'Die Vanilla-Software schiebt die Bits des Bildes in eine verlustfreie Hülle, die nativ für die PNG-Familie ist.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Sitzung beenden',
|
|
50
|
+
text: 'Klicken Sie auf das Panel, und Ihr Browser legt die heruntergeladenen Web-Assets in Ihren Benutzerordnern ab.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: JpgAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'The W3C PNG Graphics',
|
|
57
|
+
url: 'https://www.w3.org/Graphics/PNG/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Understanding Digital Image Compression',
|
|
61
|
+
url: 'https://en.wikipedia.org/wiki/Image_compression',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: JpgAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'JPG-zu-PNG-Konverter: Verlustfreie Bearbeitung und Transparenz',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '<strong>JPG</strong> ist für Kamerafotos unschlagbar, hat aber eine Schwachstelle: Bei jedem Speichern der Datei wird die verlustbehaftete Kompression erneut angewendet, wodurch Kanten und Verläufe schrittweise verschlechtert werden. <strong>PNG</strong> verwendet verlustfreie Kompression – einmal gespeichert, sind die Pixel unveränderlich. Die Konvertierung von JPG in PNG ist der entscheidende Vorgang, wenn Sie ein Bild für eine intensive Bearbeitung vorbereiten, einen transparenten Hintergrund hinzufügen oder es in einen Designfluss integrieren müssen, der mehrfaches Speichern erfordert.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'JPG oder PNG? Wann man welches Format verwendet',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: '<strong>JPG</strong> ist der König der Fotografie: geringes Gewicht, mit allem kompatibel. Aber seine Kompressionsartefakte summieren sich bei jeder Bearbeitung und jedem erneuten Speichern. Wenn Sie ein Bild wiederholt zuschneiden, retuschieren oder Text hinzufügen müssen, bedeutet der Start mit JPG, dass in jedem Zyklus eine Verschlechterung eingeführt wird. Außerdem fehlt dem JPG der Alphakanal: Es kann keine transparenten Hintergründe haben, was es für Logos, Icons und UI-Elemente disqualifiziert.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '<strong>PNG</strong> ist die richtige Wahl für Firmenlogos, Screenshots mit scharfem Text, Interface-Elemente, Produktbilder mit weißem Hintergrund, die Sie später ausschneiden müssen, oder jede grafische Ressource, die mehr als einmal bearbeitet wird. Die verlustfreie Kompression garantiert, dass die Textkanten perfekt definiert bleiben und dass Volltonfarben rein bleiben, ohne JPEG-Rauschen.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vergleich: Lokale Konvertierung vs. Cloud',
|
|
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
|
+
'Netzwerklatenz beim Upload und Download',
|
|
103
|
+
'Ihre Bilder bleiben auf fremden Servern',
|
|
104
|
+
'Limits für Größe und tägliche Konvertierungen',
|
|
105
|
+
'Aufdringliche Werbung und Drittanbieter-Tracker',
|
|
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
|
+
'Sofortige Geschwindigkeit – null Netzwerklatenz',
|
|
115
|
+
'Vollständige Privatsphäre – 0 Bytes nach außen gesendet',
|
|
116
|
+
'Keine MB-Limits oder Beschränkungen der Dateianzahl',
|
|
117
|
+
'Saubere Schnittstelle, ohne Anzeigen oder Tracking',
|
|
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 ist rein lokal: Der Browser erstellt einen <strong>Blob</strong> mit dem ausgewählten JPG und zeichnet ihn auf einen <strong>HTML5 Canvas</strong> im Speicher. Sobald er gerendert ist, wird <code>toDataURL(\'image/png\')</code> aufgerufen – der im Browser integrierte PNG-Codec rekodiert jedes Pixel, ohne eine neue verlustbehaftete Kompression anzuwenden. Das Ergebnis ist ein PNG, das den aktuellen Zustand des JPG originalgetreu bewahrt: nicht besser und nicht schlechter, einfach eingefroren.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Das resultierende PNG verwendet verlustfreie DEFLATE-Kompression, dieselbe, die von professionellen Tools wie Photoshop oder GIMP verwendet wird. Seine Größe wird größer sein als die des ursprünglichen JPG – normalerweise zwischen dem 2- und 5-fachen –, da es alle Pixel speichert, ohne Informationen zu verwerfen. Das ist der Preis für Treue und unendliche Editierbarkeit.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Wichtig: Das PNG stellt keine JPEG Qualität wieder her',
|
|
138
|
+
html: 'Das Konvertieren eines JPG in PNG <strong>stellt die verlorene Qualität nicht wieder her</strong>, die während der ursprünglichen JPEG-Kompression verloren gegangen ist. Wenn Ihr JPG bereits Blockartefakte oder Farbrauschen hatte, wird das PNG diese intakt bewahren – es verhindert lediglich, dass weitere hinzugefügt werden. Betrachten Sie die Konvertierung als ein "Einfrieren" des aktuellen Zustands des Bildes, damit zukünftige Bearbeitungen es nicht weiter verschlechtern.',
|
|
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
|
+
'Logos und Branding-Elemente, die nach dem Zuschneiden einen transparenten Hintergrund benötigen.',
|
|
150
|
+
'Screenshots mit Text, die mehrmals bearbeitet und neu gespeichert werden.',
|
|
151
|
+
'Produktbilder für E-Commerce, die einen sauberen, zuschneidbaren weißen Hintergrund erfordern.',
|
|
152
|
+
'Grafische Ressourcen für PowerPoint- oder Google Slides-Präsentationen.',
|
|
153
|
+
'UI-Assets für Web- und Mobilanwendungen, bei denen die Kantenschärfe kritisch ist.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Fazit',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Die Konvertierung von JPG in PNG ist der erste Schritt in jedem ernsthaften Design-Workflow. Sie transformiert nicht die ursprüngliche Qualität, aber sie schützt jedes Pixel vor zukünftigen Bearbeitungen. Mit diesem Tool erfolgt der Prozess sofort und vollständig privat, ohne dass Ihre Firmen- oder persönlichen Bilder jemals Ihr Gerät verlassen.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: JpgAPngLocaleContent = {
|
|
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 { JpgAPngLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'jpg-to-png-converter';
|
|
@@ -164,16 +164,6 @@ const seo: JpgAPngLocaleContent['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
167
|
|
|
178
168
|
export const content: JpgAPngLocaleContent = {
|
|
179
169
|
slug,
|
|
@@ -184,5 +174,5 @@ export const content: JpgAPngLocaleContent = {
|
|
|
184
174
|
faq,
|
|
185
175
|
bibliography,
|
|
186
176
|
howTo,
|
|
187
|
-
schemas:
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'en', faq, howTo }),
|
|
188
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 { JpgAPngLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertidor-jpg-a-png';
|
|
@@ -164,16 +164,6 @@ const seo: JpgAPngLocaleContent['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: 'es',
|
|
176
|
-
};
|
|
177
167
|
|
|
178
168
|
export const content: JpgAPngLocaleContent = {
|
|
179
169
|
slug,
|
|
@@ -184,5 +174,5 @@ export const content: JpgAPngLocaleContent = {
|
|
|
184
174
|
faq,
|
|
185
175
|
bibliography,
|
|
186
176
|
howTo,
|
|
187
|
-
schemas:
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
|
|
188
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 { JpgAPngLocaleContent } from '../index';
|
|
4
4
|
|
|
5
5
|
const slug = 'convertisseur-jpg-en-png';
|
|
@@ -164,16 +164,6 @@ const seo: JpgAPngLocaleContent['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: 'fr',
|
|
176
|
-
};
|
|
177
167
|
|
|
178
168
|
export const content: JpgAPngLocaleContent = {
|
|
179
169
|
slug,
|
|
@@ -184,5 +174,5 @@ export const content: JpgAPngLocaleContent = {
|
|
|
184
174
|
faq,
|
|
185
175
|
bibliography,
|
|
186
176
|
howTo,
|
|
187
|
-
schemas:
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
|
|
188
178
|
};
|