@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,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 = 'konvertera-png-till-jpg';
|
|
6
|
+
const title = 'Konvertera PNG till JPG Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Konvertera dina PNG-bilder till snabbkomprimerande JPG-format direkt på din egen dator. Utan att ladda upp foton till internet. Batchoptimering.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Dra PNG-filer hit...',
|
|
12
|
+
convertText: 'För att konvertera dem till JPG direkt',
|
|
13
|
+
selectFiles: 'Välj filer',
|
|
14
|
+
processedFiles: 'Bearbetade filer',
|
|
15
|
+
downloadAll: 'Ladda ner alla (.zip)',
|
|
16
|
+
pending: 'Väntande',
|
|
17
|
+
bibliographyTitle: 'Bibliografiska Referenser',
|
|
18
|
+
faqTitle: 'Vanliga Frågor',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Varför välja vår lokala PNG till JPG-konverterare?',
|
|
24
|
+
answer:
|
|
25
|
+
'Till skillnad från konventionella verktyg bearbetar vårt verktyg filerna helt i din webbläsare. Dina bilder rör aldrig någon annans hårddisk, vilket garanterar total suveränitet och integritet för dina data.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'JPG eller PNG? Vad är bäst för mitt fall?',
|
|
29
|
+
answer:
|
|
30
|
+
'PNG är idealiskt för logotyper och element med transparens. JPG är dock guldstandarden för fotografier och webbbanners, eftersom det uppnår mycket lägre filstorlekar, vilket drastiskt förbättrar en webbplats laddningshastighet.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Hur fungerar den tekniska konverteringen utan att ladda upp något?',
|
|
34
|
+
answer:
|
|
35
|
+
'Vi använder kraften i HTML5 Canvas. Webbläsaren återskapar bilden på en osynlig virtuell duk, fyller transparensen med vitt och genererar en byteström som du laddar ner direkt i realtid.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Är det säkert för konfidentiella dokument?',
|
|
39
|
+
answer:
|
|
40
|
+
'Ja, det är det säkraste alternativet för yrkesverksamma inom bank, hälsa eller juridik. Eftersom det är en "svart låda" som bara använder ditt RAM-minne, tas allt som sker inuti bort när du stänger fliken, vilket undviker läckor i molntjänster från tredje part.',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howTo: PngAJpgLocaleContent['howTo'] = [
|
|
45
|
+
{
|
|
46
|
+
name: 'Filval',
|
|
47
|
+
text: 'Förbered dina PNG-filer i en mapp och dra dem alla tillsammans till bearbetningsområdet eller leta reda på dem med utforskaren.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Omedelbar bearbetning',
|
|
51
|
+
text: 'Kontrollera att statusen ändras till "Klar" för varje fil medan webbläsaren optimerar storleken lokalt.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Optimerad nedladdning',
|
|
55
|
+
text: 'Spara dina nya JPG-bilder en och en eller använd knappen "Ladda ner alla" för att få en komprimerad ZIP-fil med alla bilder.',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const bibliography: PngAJpgLocaleContent['bibliography'] = [
|
|
60
|
+
{
|
|
61
|
+
name: 'PNG Consortium Specifikationer',
|
|
62
|
+
url: 'http://www.libpng.org/pub/png/',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'JPEG-kommittén',
|
|
66
|
+
url: 'https://jpeg.org/',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: PngAJpgLocaleContent['seo'] = [
|
|
71
|
+
{
|
|
72
|
+
type: 'title',
|
|
73
|
+
text: 'PNG till JPG-konverterare: Den Definitiva Guiden till Bildoptimering',
|
|
74
|
+
level: 2,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: 'paragraph',
|
|
78
|
+
html: 'I den digitala designens och webbutvecklingens värld är effektivitet allt. PNG-formatet (Portable Network Graphics) älskas för sin förmåga att bibehålla transparens och sin förlustfria kompression, men det har en stor fiende: filvikten. När du behöver att din webbplats flyger eller att dina e-postmeddelanden laddas direkt är övergången från PNG till JPG det smartaste tekniska beslutet.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'title',
|
|
82
|
+
text: 'JPG eller PNG?',
|
|
83
|
+
level: 3,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: 'Det finns inget format som är bättre än det andra, utan snarare ett verktyg för varje behov. PNG är ett förlustfritt format, idealiskt för gränssnittsskisser, logotyper med liten text och visuella element som kräver en transparent bakgrund. Men denna trohet har ett pris: filer som kan vara 5 eller 10 gånger tyngre än motsvarande komprimerade version.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'Å andra sidan använder JPG (Joint Photographic Experts Group) diskretiseringsalgoritmer för att ta bort information som det mänskliga ögat knappt märker, vilket ger extremt lätta filer. Det är guldstandarden för fotografier, reklambanners och sociala medier. Genom att konvertera dina PNG till JPG byter du geometrisk trohet mot nätverkshastighet.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'title',
|
|
95
|
+
text: 'Arkitekturjämförelse: Lokal vs Moln',
|
|
96
|
+
level: 3,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'comparative',
|
|
100
|
+
items: [
|
|
101
|
+
{
|
|
102
|
+
title: 'Molnkonverterare',
|
|
103
|
+
description: 'Traditionella verktyg som laddar upp dina foton till en fjärrserver.',
|
|
104
|
+
icon: 'mdi:cloud-upload',
|
|
105
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
106
|
+
points: [
|
|
107
|
+
'Nätverkslatens (Uppladdning/Nedladdning)',
|
|
108
|
+
'Risk för läckage av privata data',
|
|
109
|
+
'Begränsningar för filstorlek per fil',
|
|
110
|
+
'Reklam och spårare',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: 'Vår Lokala Arkitektur',
|
|
115
|
+
description: 'Direkt bearbetning på din hårdvara via Vanilla JS-teknologi.',
|
|
116
|
+
icon: 'mdi:laptop-mac',
|
|
117
|
+
highlight: true,
|
|
118
|
+
points: [
|
|
119
|
+
'Omedelbar hastighet utan nätverk',
|
|
120
|
+
'Garanterad integritet (0 skickade bytes)',
|
|
121
|
+
'Inga MB-gränser per fil',
|
|
122
|
+
'Professionellt och rent gränssnitt',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Hur den tekniska konverteringen fungerar',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Du undrar förmodligen hur det är möjligt att konvertera en bild utan att skicka den till en server. Magin ligger i kraften hos moderna webbläsare. När du väljer en fil genererar vi en Blob som bara finns i ditt RAM-minne. Den Blobben ritas på ett osynligt HTML5 Canvas-element.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Eftersom JPG inte stöder transparens fyller vår algoritm bakgrunden med en solid vit färg innan PNG-bilden "målas" ovanpå. När bilden väl är sammansatt kör vi den inbyggda exportmetoden, vilket skapar en byteström som din dator laddar ner direkt.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'tip',
|
|
142
|
+
title: 'SEO tips: Den Idealiska Vikten',
|
|
143
|
+
html: 'Google straffar aktivt långsamma webbplatser. Om din Largest Contentful Paint (LCP) är hög på grund av en huvud-PNG på 2MB, kan konvertering till en JPG på 200KB förbättra dina PageSpeed-mätvärden direkt utan visuella skillnader.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Säkerhet för företag och yrkesverksamma',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Om du arbetar i känsliga sektorer som bank, hälsa eller juridik är det ett säkerhetsbrott att ladda upp filer till onlinekonverterare. Vårt verktyg fungerar som en "svart låda": det som händer inuti stannar i ditt RAM-minne. Det är det enda säkra sättet att arbeta med konfidentiella dokument.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: 'Resultatets Kompatibilitet',
|
|
157
|
+
level: 3,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'list',
|
|
161
|
+
icon: 'mdi:check-circle',
|
|
162
|
+
items: [
|
|
163
|
+
'Bildvisare för Windows, macOS och mobila enheter.',
|
|
164
|
+
'Sociala medier (Instagram, LinkedIn etc.).',
|
|
165
|
+
'Kontorsverktyg (Word, PowerPoint).',
|
|
166
|
+
'Innehållshanteringssystem (WordPress, Shopify).',
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'title',
|
|
171
|
+
text: 'Slutsats: Optimera som ett Proffs',
|
|
172
|
+
level: 3,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'Denna konverterare är inte bara ytterligare en sida; det är ett stycke ingenjörskonst utformad för att göra ditt liv enklare. Oavsett om du är en utvecklare eller en hemanvändare har du här den slutgiltiga lösningen för att spara megabyte och hålla dina data säkra.',
|
|
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: 'sv', faq, howTo }),
|
|
191
|
+
};
|
|
@@ -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-jpg-donusturucu';
|
|
6
|
+
const title = 'PNG\'yi Online JPG\'ye Dönüştür';
|
|
7
|
+
const description =
|
|
8
|
+
'PNG görüntülerinizi anında kendi bilgisayarınızda hızlı sıkıştırmalı JPG formatına dönüştürün. Fotoğrafları internete yüklemeden. Toplu optimizasyon.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'PNG dosyalarını buraya sürükleyin...',
|
|
12
|
+
convertText: 'Anında JPG\'ye dönüştürmek için',
|
|
13
|
+
selectFiles: 'Dosyaları seçin',
|
|
14
|
+
processedFiles: 'İşlenen 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: PngAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Neden yerel PNG - JPG dönüştürücümüzü seçmelisiniz?',
|
|
24
|
+
answer:
|
|
25
|
+
'Geleneksel araçların aksine, yardımcı programımız dosyaları tamamen tarayıcınızda işler. Görüntüleriniz asla başkasının sabit diskine değmez, bu da verilerinizin tam egemenliğini ve gizliliğini garanti eder.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'JPG mi yoksa PNG mi? Benim durumum için hangisi daha iyi?',
|
|
29
|
+
answer:
|
|
30
|
+
'PNG, logolar ve şeffaflık içeren öğeler için idealdir. Ancak JPG, web sitelerinin yükleme hızını önemli ölçüde artıran çok daha düşük ağırlıklara ulaştığı için fotoğraflar ve web banner\'ları için altın standarttır.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Hiçbir şey yüklemeden teknik dönüşüm nasıl çalışıyor?',
|
|
34
|
+
answer:
|
|
35
|
+
'HTML5 Canvas\'ın gücünü kullanıyoruz. Tarayıcı, görüntüyü görünmez bir sanal tuval üzerinde yeniden oluşturur, şeffaflıkları beyaza boyar ve anında doğrudan indirdiğiniz bir bayt akışı oluşturur.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Gizli belgeler için güvenli mi?',
|
|
39
|
+
answer:
|
|
40
|
+
'Evet, bankacılık, sağlık veya hukuk sektörlerindeki profesyoneller için en güvenli seçenektir. Sadece RAM\'inizi kullanan bir "kara kutu" olduğu için, içinde olup bitenler sekmeyi kapattığınızda ölür ve üçüncü taraf bulutlarda sızıntıları önler.',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howTo: PngAJpgLocaleContent['howTo'] = [
|
|
45
|
+
{
|
|
46
|
+
name: 'Dosya seçimi',
|
|
47
|
+
text: 'PNG dosyalarınızı bir klasörde hazırlayın ve hepsini birlikte işlem alanına sürükleyin veya keşfediciyi kullanarak arayın.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Anında işleme',
|
|
51
|
+
text: 'Tarayıcı ağırlığı yerel olarak optimize ederken her dosya için durumun "Hazır" olarak değiştiğini doğrulayın.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Optimize edilmiş indirme',
|
|
55
|
+
text: 'Yeni JPG\'lerinizi tek tek kaydedin veya tüm görüntüleri içeren sıkıştırılmış bir ZIP dosyası almak için "Tümünü İndir" düğmesini kullanın.',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const bibliography: PngAJpgLocaleContent['bibliography'] = [
|
|
60
|
+
{
|
|
61
|
+
name: 'PNG Konsorsiyumu Özellikleri',
|
|
62
|
+
url: 'http://www.libpng.org/pub/png/',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'JPEG Komitesi',
|
|
66
|
+
url: 'https://jpeg.org/',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: PngAJpgLocaleContent['seo'] = [
|
|
71
|
+
{
|
|
72
|
+
type: 'title',
|
|
73
|
+
text: 'PNG - JPG Dönüştürücü: Görüntü Optimizasyonu İçin Kesin Kılavuz',
|
|
74
|
+
level: 2,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: 'paragraph',
|
|
78
|
+
html: 'Dijital tasarım ve web geliştirme dünyasında verimlilik her şeydir. PNG (Portable Network Graphics) formatı, şeffaflıkları koruma yeteneği ve kayıpsız sıkıştırması nedeniyle sevilir, ancak büyük bir düşmanı vardır: dosya ağırlığı. Web sitenizin uçmasını veya e-postalarınızın anında yüklenmesini istediğinizde, PNG\'den JPG\'ye geçiş en akıllıca teknik karardır.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'title',
|
|
82
|
+
text: 'JPG mi yoksa PNG mi?',
|
|
83
|
+
level: 3,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: 'Bir format diğerinden daha iyi değildir, her ihtiyaca uygun bir araç vardır. PNG kayıpsız bir formattır; arayüz maketleri, küçük metinli logolar ve şeffaf arka plan gerektiren görsel öğeler için idealdir. Ancak bu sadakatin bir bedeli vardır: dosyalar sıkıştırılmış eşdeğerinden 5 veya 10 kat daha ağır olabilir.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'Öte yandan JPG (Joint Photographic Experts Group), insan gözünün neredeyse hiç fark etmediği bilgileri kaldırmak için ayrıklaştırma algoritmaları kullanarak tüy siklet ağırlıklara ulaşır. Fotoğraflar, reklam banner\'ları ve sosyal medya için altın standarttır. PNG\'lerinizi JPG\'ye dönüştürerek geometrik sadakati ağ hızıyla değiştiriyorsunuz.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'title',
|
|
95
|
+
text: 'Mimari Karşılaştırması: Yerel ve Bulut',
|
|
96
|
+
level: 3,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'comparative',
|
|
100
|
+
items: [
|
|
101
|
+
{
|
|
102
|
+
title: 'Bulut Dönüştürücüler',
|
|
103
|
+
description: 'Fotoğraflarınızı uzak bir sunucuya yükleyen geleneksel araçlar.',
|
|
104
|
+
icon: 'mdi:cloud-upload',
|
|
105
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
106
|
+
points: [
|
|
107
|
+
'Ağ gecikmesi (Yükleme/İndirme)',
|
|
108
|
+
'Özel verilerin sızma riski',
|
|
109
|
+
'Dosya başına boyut sınırları',
|
|
110
|
+
'Reklamlar ve izleyiciler',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: 'Yerel Mimarimiz',
|
|
115
|
+
description: 'Vanilla JS teknolojisi aracılığıyla donanımınızda doğrudan işleme.',
|
|
116
|
+
icon: 'mdi:laptop-mac',
|
|
117
|
+
highlight: true,
|
|
118
|
+
points: [
|
|
119
|
+
'Ağsız anında hız',
|
|
120
|
+
'Garantili gizlilik (0 bayt gönderildi)',
|
|
121
|
+
'Dosya başına MB sınırı yok',
|
|
122
|
+
'Profesyonel ve temiz arayüz',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Teknik dönüşüm nasıl çalışır?',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Bir görüntüyü sunucuya göndermeden nasıl dönüştürmenin mümkün olduğunu merak ediyor olmalısınız. Sihir, modern tarayıcıların gücünde yatıyor. Bir dosya seçtiğinizde, yalnızca RAM\'inizde bulunan bir Blob oluşturuyoruz. Bu Blob, görünmez bir HTML5 Canvas öğesi üzerinde çizilir.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'JPG şeffaflığı desteklemediği için algoritmamız, PNG\'yi üzerine "boyamadan" önce arka planı düz beyaz bir renkle doldurur. Görüntü oluşturulduktan sonra yerel dışa aktarma yöntemini çalıştırarak bilgisayarınızın doğrudan indirdiği bir bayt akışı oluşturuyoruz.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'tip',
|
|
142
|
+
title: 'SEO İpucu: İdeal Ağırlık',
|
|
143
|
+
html: 'Google, yavaş web sitelerini aktif olarak cezalandırır. Largest Contentful Paint (LCP) değeriniz 2MB\'lık bir başlık PNG\'si nedeniyle yüksekse, bunu 200KB\'lık bir JPG\'ye dönüştürmek, görsel fark olmadan PageSpeed metriklerinizi anında iyileştirebilir.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Şirketler ve Profesyoneller İçin Güvenlik',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Bankacılık, sağlık veya hukuk gibi hassas sektörlerde çalışıyorsanız, dosyaları çevrimiçi dönüştürücülere yüklemek bir güvenlik ihlalidir. Aracımız bir "kara kutu" gibi çalışır: içinde ne oluyorsa RAM\'inizde kalır. Gizli belgelerle çalışmanın tek güvenli yolu budur.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: 'Sonucun Uyumluluğu',
|
|
157
|
+
level: 3,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'list',
|
|
161
|
+
icon: 'mdi:check-circle',
|
|
162
|
+
items: [
|
|
163
|
+
'Windows, macOS ve mobil cihaz görüntüleyicileri.',
|
|
164
|
+
'Sosyal ağlar (Instagram, LinkedIn vb.).',
|
|
165
|
+
'Ofis araçları (Word, PowerPoint).',
|
|
166
|
+
'İçerik yöneticileri (WordPress, Shopify).',
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'title',
|
|
171
|
+
text: 'Sonuç: Bir Profesyonel Gibi Optimize Edin',
|
|
172
|
+
level: 3,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'Bu dönüştürücü sadece başka bir sayfa değil; hayatınızı kolaylaştırmak için tasarlanmış bir mühendislik harikasıdır. İster bir geliştirici ister bir ev kullanıcısı olun, megabaytlardan tasarruf etmek ve verilerinizi güvende tutmak için nihai çözüm burada.',
|
|
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: 'tr', faq, howTo }),
|
|
191
|
+
};
|
|
@@ -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-to-jpg-converter';
|
|
6
|
+
const title = '在线将 PNG 转换为 JPG';
|
|
7
|
+
const description =
|
|
8
|
+
'在您自己的计算机上立即将 PNG 图像转换为快速压缩的 JPG 格式。无需将照片上传到互联网。支持批量优化。';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: '拖拽 PNG 文件...',
|
|
12
|
+
convertText: '立即将其转换为 JPG',
|
|
13
|
+
selectFiles: '选择文件',
|
|
14
|
+
processedFiles: '已处理文件',
|
|
15
|
+
downloadAll: '下载全部 (.zip)',
|
|
16
|
+
pending: '等待中',
|
|
17
|
+
bibliographyTitle: '参考文献',
|
|
18
|
+
faqTitle: '常见问题',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '为什么要选择我们的本地 PNG 转 JPG 转换器?',
|
|
24
|
+
answer:
|
|
25
|
+
'与传统工具不同,我们的实用程序完全在您的浏览器中处理文件。您的图像永远不会触及他人的硬盘,保证了您数据的完全主权和隐私。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'JPG 还是 PNG?哪种更适合我的情况?',
|
|
29
|
+
answer:
|
|
30
|
+
'PNG 是具有透明度要求的徽标和元素的理想选择。然而,JPG 是摄影和网页横幅的黄金标准,因为它能达到更小的文件体积,从而显著提高网站的加载速度。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '如何在不上传任何内容的情况下进行技术转换?',
|
|
34
|
+
answer:
|
|
35
|
+
'我们利用 HTML5 Canvas 的强大功能。浏览器在一个不可见的虚拟画布上重建图像,用白色填充透明部分,并生成可以直接立即下载的字节流。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: '对于机密文档安全吗?',
|
|
39
|
+
answer:
|
|
40
|
+
'是的,对于银行业、医疗保健或法律行业的专业人士来说,这是最安全的选择。作为一个仅使用您内存的“黑匣子”,关闭标签页后,内部发生的一切都会消失,从而避免了第三方云端的泄露。',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howTo: PngAJpgLocaleContent['howTo'] = [
|
|
45
|
+
{
|
|
46
|
+
name: '选择文件',
|
|
47
|
+
text: '在文件夹中准备好 PNG 文件,并将其全部拖入处理区域,或使用文件资源管理器查找。',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: '即时处理',
|
|
51
|
+
text: '在浏览器本地优化大小的同时,确认每个文件的状态变为“就绪”。',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: '优化下载',
|
|
55
|
+
text: '逐个保存您的新 JPG,或使用“下载全部”按钮获取包含所有图像的压缩 ZIP 文件。',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const bibliography: PngAJpgLocaleContent['bibliography'] = [
|
|
60
|
+
{
|
|
61
|
+
name: 'PNG 联盟规范',
|
|
62
|
+
url: 'http://www.libpng.org/pub/png/',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'JPEG 委员会',
|
|
66
|
+
url: 'https://jpeg.org/',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: PngAJpgLocaleContent['seo'] = [
|
|
71
|
+
{
|
|
72
|
+
type: 'title',
|
|
73
|
+
text: 'PNG 转 JPG 转换器:图像优化终极指南',
|
|
74
|
+
level: 2,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: 'paragraph',
|
|
78
|
+
html: '在数字设计和网页开发的世界中,效率就是一切。PNG (Portable Network Graphics) 格式因其保持透明度的能力和无损压缩而受到喜爱,但它有一个大敌人:文件重量。当您希望您的网站飞速运行或您的电子邮件即时加载时,从 PNG 转换为 JPG 是最明智的技术决策。',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'title',
|
|
82
|
+
text: 'JPG 还是 PNG?',
|
|
83
|
+
level: 3,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: '没有一种格式优于另一种格式,只有适合每种需求的工具。PNG 是无损格式,非常适合界面模型、带有小文本的徽标以及需要透明背景的视觉元素。然而,这种忠实性是有代价的:文件体积可能比压缩后的同类产品重 5 或 10 倍。',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: '另一方面,JPG (Joint Photographic Experts Group) 使用离散化算法技术来删除人眼几乎察觉不到的信息,从而实现羽量级的大小。它是摄影、广告横幅和社交媒体的黄金标准。通过将 PNG 转换为 JPG,您是将几何保真度换取网络速度。',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'title',
|
|
95
|
+
text: '架构对比:本地 vs 云端',
|
|
96
|
+
level: 3,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'comparative',
|
|
100
|
+
items: [
|
|
101
|
+
{
|
|
102
|
+
title: '云端转换器',
|
|
103
|
+
description: '将您的照片上传到远程服务器的传统工具。',
|
|
104
|
+
icon: 'mdi:cloud-upload',
|
|
105
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
106
|
+
points: [
|
|
107
|
+
'网络延迟(上传/下载)',
|
|
108
|
+
'私有数据泄露风险',
|
|
109
|
+
'每个文件的尺寸限制',
|
|
110
|
+
'广告和追踪器',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: '我们的本地架构',
|
|
115
|
+
description: '通过 Vanilla JS 技术在您的硬件上直接处理。',
|
|
116
|
+
icon: 'mdi:laptop-mac',
|
|
117
|
+
highlight: true,
|
|
118
|
+
points: [
|
|
119
|
+
'无需网络的即时速度',
|
|
120
|
+
'隐私保证(发送数据为 0 字节)',
|
|
121
|
+
'无单文件大小限制',
|
|
122
|
+
'专业且干净的界面',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: '技术转换的工作原理',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: '您可能想知道如何在不发送到服务器的情况下转换图像。奥秘在于现代浏览器的强大功能。当您选择一个文件时,我们会生成一个仅存在于您内存中的 Blob。该 Blob 会被绘制在一个不可见的 HTML5 Canvas 元素上。',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: '由于 JPG 不支持透明度,我们的算法会在“绘制”PNG 之前先用纯白色填充背景。合成图像后,我们执行原生导出方法,生成可供您的计算机直接下载的字节流。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'tip',
|
|
142
|
+
title: 'SEO 建议:理想的文件重量',
|
|
143
|
+
html: 'Google 会主动惩罚缓慢的网站。如果您的 Largest Contentful Paint (LCP) 因为一个 2MB 的头部 PNG 而偏高,那么将其转换为 200KB 的 JPG 可以在不影响视觉效果的情况下立即改善您的 PageSpeed 指标。',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: '企业和专业人士的安全保障',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: '如果您在银行、医疗保健或法律等敏感行业工作,将文件上传到在线转换器属于安全违规行为。我们的工具就像一个“黑匣子”:内部发生的一切都留在您的内存中。这是处理机密文档唯一安全的方法。',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: '结果的兼容性',
|
|
157
|
+
level: 3,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'list',
|
|
161
|
+
icon: 'mdi:check-circle',
|
|
162
|
+
items: [
|
|
163
|
+
'Windows、macOS 和移动设备查看器。',
|
|
164
|
+
'社交网络 (Instagram, LinkedIn 等)。',
|
|
165
|
+
'办公工具 (Word, PowerPoint)。',
|
|
166
|
+
'内容管理系统 (WordPress, Shopify)。',
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'title',
|
|
171
|
+
text: '结论:像专业人士一样优化',
|
|
172
|
+
level: 3,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: '这个转换器不只是另一个网页;它是为您生活更便捷而设计的工程杰作。无论您是开发人员还是家庭用户,这里都有节省空间并确保数据安全的终极解决方案。',
|
|
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: 'zh', faq, howTo }),
|
|
191
|
+
};
|
|
@@ -13,9 +13,21 @@ export const pngAJpg: ConvertersToolEntry<ImageConverterUI> = {
|
|
|
13
13
|
fg: 'mdi:file-export',
|
|
14
14
|
},
|
|
15
15
|
i18n: {
|
|
16
|
-
|
|
16
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
17
17
|
en: () => import('./i18n/en').then((m) => m.content),
|
|
18
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
18
19
|
fr: () => import('./i18n/fr').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
|
|