@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,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 = 'konverter-png-ke-jpg';
|
|
6
|
+
const title = 'Ubah PNG ke JPG Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Ubah gambar PNG Anda ke format JPG dengan kompresi cepat secara instan di komputer Anda sendiri. Tanpa mengunggah foto ke internet. Optimalisasi batch.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Seret file PNG...',
|
|
12
|
+
convertText: 'Untuk mengubahnya ke JPG secara instan',
|
|
13
|
+
selectFiles: 'Pilih file',
|
|
14
|
+
processedFiles: 'File yang diproses',
|
|
15
|
+
downloadAll: 'Unduh Semua (.zip)',
|
|
16
|
+
pending: 'Tertunda',
|
|
17
|
+
bibliographyTitle: 'Referensi Bibliografi',
|
|
18
|
+
faqTitle: 'Pertanyaan Umum',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Mengapa memilih konverter lokal PNG ke JPG kami?',
|
|
24
|
+
answer:
|
|
25
|
+
'Berbeda dengan alat konvensional, utilitas kami memproses file sepenuhnya di browser Anda. Gambar Anda tidak pernah menyentuh hard drive orang lain, menjamin kedaulatan total dan privasi data Anda.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'JPG atau PNG? Mana yang lebih baik untuk kasus saya?',
|
|
29
|
+
answer:
|
|
30
|
+
'PNG ideal untuk logo dan elemen dengan transparansi. Namun, JPG adalah standar emas untuk fotografi dan banner web, karena mencapai ukuran yang jauh lebih kecil, secara drastis meningkatkan kecepatan pemuatan situs.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Bagaimana cara kerja konversi teknis tanpa mengunggah apa pun?',
|
|
34
|
+
answer:
|
|
35
|
+
'Kami menggunakan kekuatan HTML5 Canvas. Browser membuat ulang gambar pada kanvas virtual yang tidak terlihat, mengisi transparansi dengan warna putih dan menghasilkan aliran byte yang Anda unduh langsung secara instan.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Apakah aman untuk dokumen rahasia?',
|
|
39
|
+
answer:
|
|
40
|
+
'Ya, ini adalah pilihan teraman bagi para profesional di bidang perbankan, kesehatan, atau hukum. Karena ini adalah "kotak hitam" yang hanya menggunakan RAM Anda, apa pun yang terjadi di dalamnya akan hilang saat Anda menutup tab, menghindari kebocoran di cloud pihak ketiga.',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howTo: PngAJpgLocaleContent['howTo'] = [
|
|
45
|
+
{
|
|
46
|
+
name: 'Pemilihan file',
|
|
47
|
+
text: 'Siapkan file PNG Anda dalam satu folder dan seret semuanya sekaligus ke area pemrosesan atau cari menggunakan penjelajah file.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Pemrosesan instan',
|
|
51
|
+
text: 'Verifikasi bahwa status berubah menjadi "Selesai" untuk setiap file sementara browser mengoptimalkan ukuran secara lokal.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Unduhan yang dioptimalkan',
|
|
55
|
+
text: 'Simpan JPG baru Anda satu per satu atau gunakan tombol "Unduh Semua" untuk mendapatkan file ZIP terkompresi dengan semua gambar.',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const bibliography: PngAJpgLocaleContent['bibliography'] = [
|
|
60
|
+
{
|
|
61
|
+
name: 'Spesifikasi PNG Consortium',
|
|
62
|
+
url: 'http://www.libpng.org/pub/png/',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Komite JPEG',
|
|
66
|
+
url: 'https://jpeg.org/',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: PngAJpgLocaleContent['seo'] = [
|
|
71
|
+
{
|
|
72
|
+
type: 'title',
|
|
73
|
+
text: 'Konverter PNG ke JPG: Panduan Definitif untuk Optimalisasi Gambar',
|
|
74
|
+
level: 2,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: 'paragraph',
|
|
78
|
+
html: 'Dalam dunia desain digital dan pengembangan web, efisiensi adalah segalanya. Format PNG (Portable Network Graphics) dicintai karena kemampuannya mempertahankan transparansi dan kompresi tanpa kehilangan, tetapi memiliki satu musuh besar: ukuran file. Ketika Anda ingin situs web Anda terbang atau email Anda dimuat secara instan, peralihan dari PNG ke JPG adalah keputusan teknis yang paling cerdas.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'title',
|
|
82
|
+
text: 'JPG atau PNG?',
|
|
83
|
+
level: 3,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: 'Tidak ada format yang lebih baik dari yang lain, melainkan alat untuk setiap kebutuhan. PNG adalah format tanpa kehilangan, ideal untuk maket antarmuka, logo dengan teks kecil, dan elemen visual yang membutuhkan latar belakang transparan. Namun, kesetiaan ini ada harganya: file yang bisa 5 atau 10 kali lebih berat daripada padanannya yang dikompresi.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'JPG (Joint Photographic Experts Group), di sisi lain, menggunakan algoritma diskritisasi untuk menghapus informasi yang hampir tidak dirasakan oleh mata manusia, mencapai ukuran yang sangat ringan. Ini adalah standar emas untuk fotografi, banner iklan, dan media sosial. Dengan mengubah PNG Anda ke JPG, Anda menukar kesetiaan geometris dengan kecepatan jaringan.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'title',
|
|
95
|
+
text: 'Perbandingan Arsitektur: Lokal vs Cloud',
|
|
96
|
+
level: 3,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'comparative',
|
|
100
|
+
items: [
|
|
101
|
+
{
|
|
102
|
+
title: 'Konverter Cloud',
|
|
103
|
+
description: 'Alat tradisional yang mengunggah foto Anda ke server jarak jauh.',
|
|
104
|
+
icon: 'mdi:cloud-upload',
|
|
105
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
106
|
+
points: [
|
|
107
|
+
'Latensi jaringan (Unggah/Unduh)',
|
|
108
|
+
'Risiko kebocoran data pribadi',
|
|
109
|
+
'Batasan ukuran per file',
|
|
110
|
+
'Iklan dan pelacak',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: 'Arsitektur Lokal Kami',
|
|
115
|
+
description: 'Pemrosesan langsung pada perangkat keras Anda melalui teknologi Vanilla JS.',
|
|
116
|
+
icon: 'mdi:laptop-mac',
|
|
117
|
+
highlight: true,
|
|
118
|
+
points: [
|
|
119
|
+
'Kecepatan instan tanpa jaringan',
|
|
120
|
+
'Privasi terjamin (0 byte dikirim)',
|
|
121
|
+
'Tanpa batasan MB per file',
|
|
122
|
+
'Antarmuka profesional dan bersih',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Cara kerja konversi teknis',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Anda mungkin bertanya-tanya bagaimana mungkin mengubah gambar tanpa mengirimkannya ke server. Keajaibannya ada pada kekuatan browser modern. Saat Anda memilih file, kami menghasilkan Blob yang hanya ada di RAM Anda. Blob itu digambar pada elemen HTML5 Canvas yang tidak terlihat.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Karena JPG tidak mendukung transparansi, algoritma kami mengisi latar belakang dengan warna putih solid sebelum "melukis" PNG di atasnya. Setelah gambar disusun, kami menjalankan metode ekspor asli, menghasilkan aliran byte yang diunduh komputer Anda secara langsung.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'tip',
|
|
142
|
+
title: 'Tips SEO: Ukuran Ideal',
|
|
143
|
+
html: 'Google secara aktif menghukum situs web yang lambat. Jika Largest Contentful Paint (LCP) Anda tinggi karena header PNG sebesar 2MB, mengubahnya menjadi JPG sebesar 200KB dapat segera meningkatkan metrik PageSpeed Anda tanpa perbedaan visual.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Keamanan untuk Perusahaan dan Profesional',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Jika Anda bekerja di sektor sensitif seperti perbankan, kesehatan, atau hukum, mengunggah file ke konverter online adalah pelanggaran keamanan. Alat kami bekerja seperti "kotak hitam": apa yang terjadi di dalamnya tetap ada di RAM Anda. Ini satu-satunya cara aman untuk bekerja dengan dokumen rahasia.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: 'Kompatibilitas Hasil',
|
|
157
|
+
level: 3,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'list',
|
|
161
|
+
icon: 'mdi:check-circle',
|
|
162
|
+
items: [
|
|
163
|
+
'Penampil gambar Windows, macOS, dan perangkat seluler.',
|
|
164
|
+
'Jejaring sosial (Instagram, LinkedIn, dll).',
|
|
165
|
+
'Alat kantor (Word, PowerPoint).',
|
|
166
|
+
'Manajer konten (WordPress, Shopify).',
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'title',
|
|
171
|
+
text: 'Kesimpulan: Optimalkan seperti Profesional',
|
|
172
|
+
level: 3,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'Konverter ini bukan sekadar halaman biasa; ini adalah bagian dari teknik yang dirancang untuk memudahkan hidup Anda. Baik Anda seorang pengembang atau pengguna rumahan, di sini Anda memiliki solusi definitif untuk menghemat megabyte dan menjaga keamanan data Anda.',
|
|
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: 'id', 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 = 'convertitore-da-png-a-jpg';
|
|
6
|
+
const title = 'Convertire PNG in JPG Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Converti le tue immagini PNG nel formato JPG a compressione rapida istantaneamente sul tuo computer. Senza caricare foto su Internet. Ottimizzazione in batch.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Trascina i file PNG...',
|
|
12
|
+
convertText: 'Per convertirli in JPG istantaneamente',
|
|
13
|
+
selectFiles: 'Seleziona i file',
|
|
14
|
+
processedFiles: 'File elaborati',
|
|
15
|
+
downloadAll: 'Scarica tutto (.zip)',
|
|
16
|
+
pending: 'In attesa',
|
|
17
|
+
bibliographyTitle: 'Riferimenti Bibliografici',
|
|
18
|
+
faqTitle: 'Domande Frequenti',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: PngAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Perché scegliere il nostro convertitore locale da PNG a JPG?',
|
|
24
|
+
answer:
|
|
25
|
+
'A differenza degli strumenti convenzionali, la nostra utility elabora i file interamente nel tuo browser. Le tue immagini non toccano mai un disco rigido altrui, garantendo la totale sovranità e privacy dei tuoi dati.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'JPG o PNG? Qual è il migliore per il mio caso?',
|
|
29
|
+
answer:
|
|
30
|
+
'Il PNG è ideale per loghi ed elementi con trasparenza. Tuttavia, il JPG è lo standard di riferimento per fotografie e banner web, poiché raggiunge pesi molto più ridotti, migliorando drasticamente la velocità di caricamento di un sito.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Come funziona la conversione tecnica senza caricare nulla?',
|
|
34
|
+
answer:
|
|
35
|
+
'Utilizziamo la potenza dell\'HTML5 Canvas. Il browser ricrea l\'immagine su una tela virtuale invisibile, riempie le trasparenze con il bianco e genera un flusso di byte che scarichi direttamente all\'istante.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'È sicuro per documenti riservati?',
|
|
39
|
+
answer:
|
|
40
|
+
'Sì, è l\'opzione più sicura per professionisti del settore bancario, sanitario o legale. Essendo una "scatola nera" che utilizza solo la tua RAM, ciò che accade all\'interno muore al momento della chiusura della scheda, evitando fughe di dati su cloud di terze parti.',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howTo: PngAJpgLocaleContent['howTo'] = [
|
|
45
|
+
{
|
|
46
|
+
name: 'Selezione dei file',
|
|
47
|
+
text: 'Prepara i tuoi file PNG in una cartella e trascinali tutti insieme nell\'area di elaborazione o cercali con l\'esplora file.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Elaborazione istantanea',
|
|
51
|
+
text: 'Verifica che lo stato cambi in "Pronto" per ogni file mentre il browser ottimizza il peso localmente.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Download ottimizzato',
|
|
55
|
+
text: 'Salva i tuoi nuovi JPG uno ad uno o usa il pulsante "Scarica tutto" per ottenere un file ZIP compresso con tutte le immagini.',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const bibliography: PngAJpgLocaleContent['bibliography'] = [
|
|
60
|
+
{
|
|
61
|
+
name: 'Specifiche PNG Consortium',
|
|
62
|
+
url: 'http://www.libpng.org/pub/png/',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Il comitato JPEG',
|
|
66
|
+
url: 'https://jpeg.org/',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: PngAJpgLocaleContent['seo'] = [
|
|
71
|
+
{
|
|
72
|
+
type: 'title',
|
|
73
|
+
text: 'Convertitore da PNG a JPG: La Guida Definitiva per l\'Ottimizzazione delle Immagini',
|
|
74
|
+
level: 2,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: 'paragraph',
|
|
78
|
+
html: 'Nel mondo del design digitale e dello sviluppo web, l\'efficienza è tutto. Il formato PNG (Portable Network Graphics) è amato per la sua capacità di mantenere le trasparenze e la sua compressione senza perdita, ma ha un grande nemico: il peso del file. Quando hai bisogno che il tuo sito web voli o che le tue email si carichino istantaneamente, il passaggio da PNG a JPG è la decisione tecnica più intelligente.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'title',
|
|
82
|
+
text: 'JPG o PNG?',
|
|
83
|
+
level: 3,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html: 'Non esiste un formato migliore di un altro, ma uno strumento per ogni esigenza. Il PNG è un formato senza perdita, ideale per mockup di interfacce, loghi con testo piccolo ed elementi visivi che richiedono uno sfondo trasparente. Tuttavia, questa fedeltà ha un costo: file che possono essere 5 o 10 volte più pesanti del loro equivalente compresso.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: 'Il JPG (Joint Photographic Experts Group), d\'altra parte, utilizza algoritmi di discretizzazione per rimuovere informazioni che l\'occhio umano percepisce a malapena, raggiungendo pesi piuma. È lo standard di riferimento per fotografie, banner pubblicitari e social network. Convertendo i tuoi PNG in JPG, stai scambiando la fedeltà geometrica con la velocità di rete.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'title',
|
|
95
|
+
text: 'Confronto Architetturale: Locale vs Cloud',
|
|
96
|
+
level: 3,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'comparative',
|
|
100
|
+
items: [
|
|
101
|
+
{
|
|
102
|
+
title: 'Convertitori Cloud',
|
|
103
|
+
description: 'Strumenti tradizionali che caricano le tue foto su un server remoto.',
|
|
104
|
+
icon: 'mdi:cloud-upload',
|
|
105
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
106
|
+
points: [
|
|
107
|
+
'Latenza di rete (Upload/Download)',
|
|
108
|
+
'Rischio di fuga di dati privati',
|
|
109
|
+
'Limiti di dimensione per file',
|
|
110
|
+
'Pubblicità e tracciatori',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: 'La Nostra Architettura Locale',
|
|
115
|
+
description: 'Elaborazione diretta sul tuo hardware tramite tecnologia Vanilla JS.',
|
|
116
|
+
icon: 'mdi:laptop-mac',
|
|
117
|
+
highlight: true,
|
|
118
|
+
points: [
|
|
119
|
+
'Velocità istantanea senza rete',
|
|
120
|
+
'Privacy garantita (0 byte inviati)',
|
|
121
|
+
'Senza limiti di MB per file',
|
|
122
|
+
'Interfaccia professionale e pulita',
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Come funziona la conversione tecnica',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Probabilmente ti starai chiedendo come sia possibile convertire un\'immagine senza inviarla a un server. La magia risiede nella potenza dei browser moderni. Quando selezioni un file, generiamo un Blob che esiste solo nella tua RAM. Quel Blob viene disegnato su un elemento HTML5 Canvas invisibile.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Dato che il JPG non supporta le trasparenze, il nostro algoritmo riempie lo sfondo con un colore bianco solido prima di "dipingere" il PNG sopra. Una volta composta l\'immagine, eseguiamo il metodo di esportazione nativo, generando un flusso di byte che il tuo computer scarica direttamente.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'tip',
|
|
142
|
+
title: 'Consiglio SEO: Il Peso Ideale',
|
|
143
|
+
html: 'Google penalizza attivamente i siti web lenti. Se il tuo Largest Contentful Paint (LCP) è alto a causa di un PNG di intestazione da 2MB, convertirlo in un JPG da 200KB può migliorare istantaneamente le tue metriche PageSpeed senza differenze visive.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Sicurezza per Aziende e Professionisti',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Se lavori in settori sensibili come il bancario, il sanitario o il legale, caricare file su convertitori online è una violazione della sicurezza. Il nostro strumento funziona come una "scatola nera": ciò che accade all\'interno rimane nella tua RAM. È l\'unico modo sicuro per lavorare con documenti riservati.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: 'Compatibilità del Risultato',
|
|
157
|
+
level: 3,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'list',
|
|
161
|
+
icon: 'mdi:check-circle',
|
|
162
|
+
items: [
|
|
163
|
+
'Visualizzatori di Windows, macOS e dispositivi mobili.',
|
|
164
|
+
'Social network (Instagram, LinkedIn, ecc.).',
|
|
165
|
+
'Strumenti da ufficio (Word, PowerPoint).',
|
|
166
|
+
'Gestori di contenuti (WordPress, Shopify).',
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'title',
|
|
171
|
+
text: 'Conclusione: Ottimizza come un professionista',
|
|
172
|
+
level: 3,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'Questo convertitore non è solo l\'ennesima pagina; è un pezzo di ingegneria progettato per semplificarti la vita. Che tu sia uno sviluppatore o un utente domestico, ecco la soluzione definitiva per risparmiare megabyte e tenere i tuoi dati al sicuro.',
|
|
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: 'it', 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
|
+
'はい、銀行、医療、法律などの機密性を要する分野のプロフェッショナルにとって最も安全な選択肢です。RAMのみを使用する「ブラックボックス」として動作するため、処理内容はタブを閉じると同時に消去され、サードパーティのクラウドへの流出を防ぎます。',
|
|
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は可逆形式であり、インターフェースのモックアップや小さなテキストを含むロゴ、透明背景が必要なビジュアル要素に最適です。しかし、この忠実さには代償が伴います。圧縮されたJPGに比べて、ファイルサイズが5倍から10倍重くなることもあります。',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html: '一方、JPG(Joint Photographic Experts Group)は、人間の目にはほとんど認識できない情報を削除する離散化アルゴリズムを使用しており、極めて軽量なファイルサイズを実現します。写真、広告バナー、SNSにとってのゴールドスタンダードです。PNGをJPGに変換することは、幾何学的な忠実さをネットワーク速度と交換することを意味します。',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'title',
|
|
95
|
+
text: 'アーキテクチャの比較:ローカル対クラウド',
|
|
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: 'サーバーに送信せずに画像を変換できる理由を不思議に思うかもしれません。その魔法は、現代のブラウザの能力にあります。ファイルを選択すると、RAM内のみに存在するBlobを生成します。そのBlobが、不可視のHTML5 Canvas要素上に描画されます。',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'JPGは透明度をサポートしていないため、アルゴリズムがPNGを「描画」する前に背景を白の塗りつぶしで埋めます。画像が合成されると、ネイティブのエクスポートメソッドを実行し、コンピュータが直接ダウンロードするバイトストリームを生成します。',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'tip',
|
|
142
|
+
title: 'SEOのヒント:理想的なファイルサイズ',
|
|
143
|
+
html: 'Googleは表示の遅いウェブサイトに厳しい評価を与えます。2MBのヘッダー画像(PNG)のせいでLargest Contentful Paint(LCP)が高くなっている場合、それを200KBのJPGに変換することで、見た目を変えずにPageSpeedの評価を即座に改善できます。',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: '企業・プロフェッショナルのためのセキュリティ',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: '金融、医療、法律などの機密性の高い分野で仕事をしている場合、ファイルをオンラインコンバーターにアップロードすることはセキュリティ違反となります。当ツールは「ブラックボックス」として機能し、内部で起こることはすべてお客様のRAMに留まります。機密文書を扱う唯一の安全な方法です。',
|
|
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: 'ja', faq, howTo }),
|
|
191
|
+
};
|