@jjlmoya/utils-developer 1.3.0 → 1.5.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 +2 -1
- package/src/category/i18n/de.ts +34 -0
- package/src/category/i18n/id.ts +34 -0
- package/src/category/i18n/it.ts +34 -0
- package/src/category/i18n/ja.ts +34 -0
- package/src/category/i18n/ko.ts +34 -0
- package/src/category/i18n/nl.ts +34 -0
- package/src/category/i18n/pl.ts +34 -0
- package/src/category/i18n/pt.ts +34 -0
- package/src/category/i18n/ru.ts +34 -0
- package/src/category/i18n/sv.ts +34 -0
- package/src/category/i18n/tr.ts +34 -0
- package/src/category/i18n/zh.ts +34 -0
- package/src/category/index.ts +13 -1
- package/src/index.ts +12 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tool/aspectRatio/i18n/de.ts +177 -0
- package/src/tool/aspectRatio/i18n/id.ts +177 -0
- package/src/tool/aspectRatio/i18n/it.ts +177 -0
- package/src/tool/aspectRatio/i18n/ja.ts +178 -0
- package/src/tool/aspectRatio/i18n/ko.ts +178 -0
- package/src/tool/aspectRatio/i18n/nl.ts +178 -0
- package/src/tool/aspectRatio/i18n/pl.ts +177 -0
- package/src/tool/aspectRatio/i18n/pt.ts +177 -0
- package/src/tool/aspectRatio/i18n/ru.ts +177 -0
- package/src/tool/aspectRatio/i18n/sv.ts +177 -0
- package/src/tool/aspectRatio/i18n/tr.ts +177 -0
- package/src/tool/aspectRatio/i18n/zh.ts +178 -0
- package/src/tool/aspectRatio/index.ts +15 -7
- package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
- package/src/tool/colorConverter/i18n/de.ts +126 -0
- package/src/tool/colorConverter/i18n/id.ts +126 -0
- package/src/tool/colorConverter/i18n/it.ts +126 -0
- package/src/tool/colorConverter/i18n/ja.ts +127 -0
- package/src/tool/colorConverter/i18n/ko.ts +127 -0
- package/src/tool/colorConverter/i18n/nl.ts +126 -0
- package/src/tool/colorConverter/i18n/pl.ts +126 -0
- package/src/tool/colorConverter/i18n/pt.ts +126 -0
- package/src/tool/colorConverter/i18n/ru.ts +126 -0
- package/src/tool/colorConverter/i18n/sv.ts +126 -0
- package/src/tool/colorConverter/i18n/tr.ts +126 -0
- package/src/tool/colorConverter/i18n/zh.ts +127 -0
- package/src/tool/colorConverter/index.ts +15 -7
- package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
- package/src/tool/cronGenerator/i18n/de.ts +192 -0
- package/src/tool/cronGenerator/i18n/es.ts +2 -1
- package/src/tool/cronGenerator/i18n/fr.ts +2 -1
- package/src/tool/cronGenerator/i18n/id.ts +192 -0
- package/src/tool/cronGenerator/i18n/it.ts +192 -0
- package/src/tool/cronGenerator/i18n/ja.ts +192 -0
- package/src/tool/cronGenerator/i18n/ko.ts +192 -0
- package/src/tool/cronGenerator/i18n/nl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pt.ts +192 -0
- package/src/tool/cronGenerator/i18n/ru.ts +192 -0
- package/src/tool/cronGenerator/i18n/sv.ts +192 -0
- package/src/tool/cronGenerator/i18n/tr.ts +192 -0
- package/src/tool/cronGenerator/i18n/zh.ts +192 -0
- package/src/tool/cronGenerator/index.ts +15 -7
- package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
- package/src/tool/cssSpecificityCalculator/index.ts +15 -7
- package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
- package/src/tool/cssToInlineConverter/index.ts +15 -7
- package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
- package/src/tool/duplicateCssRemover/index.ts +15 -7
- package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
- package/src/tool/generadorSecurityTxt/index.ts +15 -7
- package/src/tool/hashGenerator/i18n/de.ts +119 -0
- package/src/tool/hashGenerator/i18n/id.ts +119 -0
- package/src/tool/hashGenerator/i18n/it.ts +118 -0
- package/src/tool/hashGenerator/i18n/ja.ts +119 -0
- package/src/tool/hashGenerator/i18n/ko.ts +119 -0
- package/src/tool/hashGenerator/i18n/nl.ts +119 -0
- package/src/tool/hashGenerator/i18n/pl.ts +118 -0
- package/src/tool/hashGenerator/i18n/pt.ts +118 -0
- package/src/tool/hashGenerator/i18n/ru.ts +119 -0
- package/src/tool/hashGenerator/i18n/sv.ts +119 -0
- package/src/tool/hashGenerator/i18n/tr.ts +118 -0
- package/src/tool/hashGenerator/i18n/zh.ts +119 -0
- package/src/tool/hashGenerator/index.ts +15 -7
- package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
- package/src/tool/jsonFormatter/i18n/de.ts +157 -0
- package/src/tool/jsonFormatter/i18n/es.ts +2 -1
- package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
- package/src/tool/jsonFormatter/i18n/id.ts +157 -0
- package/src/tool/jsonFormatter/i18n/it.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
- package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
- package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
- package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
- package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
- package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
- package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
- package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
- package/src/tool/jsonFormatter/index.ts +15 -7
- package/src/tool/keycode/i18n/de.ts +161 -0
- package/src/tool/keycode/i18n/es.ts +2 -1
- package/src/tool/keycode/i18n/fr.ts +2 -1
- package/src/tool/keycode/i18n/id.ts +161 -0
- package/src/tool/keycode/i18n/it.ts +161 -0
- package/src/tool/keycode/i18n/ja.ts +161 -0
- package/src/tool/keycode/i18n/ko.ts +161 -0
- package/src/tool/keycode/i18n/nl.ts +161 -0
- package/src/tool/keycode/i18n/pl.ts +161 -0
- package/src/tool/keycode/i18n/pt.ts +160 -0
- package/src/tool/keycode/i18n/ru.ts +160 -0
- package/src/tool/keycode/i18n/sv.ts +160 -0
- package/src/tool/keycode/i18n/tr.ts +160 -0
- package/src/tool/keycode/i18n/zh.ts +161 -0
- package/src/tool/keycode/index.ts +15 -7
- package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
- package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
- package/src/tool/llmCostCalculator/index.ts +24 -0
- package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
- package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
- package/src/tool/mobileMockupGenerator/index.ts +24 -0
- package/src/tool/musicalTypography/i18n/de.ts +179 -0
- package/src/tool/musicalTypography/i18n/id.ts +179 -0
- package/src/tool/musicalTypography/i18n/it.ts +179 -0
- package/src/tool/musicalTypography/i18n/ja.ts +180 -0
- package/src/tool/musicalTypography/i18n/ko.ts +180 -0
- package/src/tool/musicalTypography/i18n/nl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pt.ts +101 -0
- package/src/tool/musicalTypography/i18n/ru.ts +47 -0
- package/src/tool/musicalTypography/i18n/sv.ts +29 -0
- package/src/tool/musicalTypography/i18n/tr.ts +29 -0
- package/src/tool/musicalTypography/i18n/zh.ts +30 -0
- package/src/tool/musicalTypography/index.ts +15 -7
- package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
- package/src/tool/placeholderGenerator/index.ts +24 -0
- package/src/tool/promptLibrary/i18n/de.ts +131 -0
- package/src/tool/promptLibrary/i18n/id.ts +131 -0
- package/src/tool/promptLibrary/i18n/it.ts +131 -0
- package/src/tool/promptLibrary/i18n/ja.ts +132 -0
- package/src/tool/promptLibrary/i18n/ko.ts +132 -0
- package/src/tool/promptLibrary/i18n/nl.ts +131 -0
- package/src/tool/promptLibrary/i18n/pl.ts +28 -0
- package/src/tool/promptLibrary/i18n/pt.ts +101 -0
- package/src/tool/promptLibrary/i18n/ru.ts +101 -0
- package/src/tool/promptLibrary/i18n/sv.ts +93 -0
- package/src/tool/promptLibrary/i18n/tr.ts +93 -0
- package/src/tool/promptLibrary/i18n/zh.ts +94 -0
- package/src/tool/promptLibrary/index.ts +24 -0
- package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
- package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
- package/src/tool/readabilityCalculator/index.ts +24 -0
- package/src/tool/svgSanitizer/i18n/de.ts +125 -0
- package/src/tool/svgSanitizer/i18n/id.ts +125 -0
- package/src/tool/svgSanitizer/i18n/it.ts +125 -0
- package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
- package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
- package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
- package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
- package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
- package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
- package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
- package/src/tool/svgSanitizer/index.ts +24 -0
- package/src/tool/svgToCss/i18n/de.ts +174 -0
- package/src/tool/svgToCss/i18n/id.ts +174 -0
- package/src/tool/svgToCss/i18n/it.ts +174 -0
- package/src/tool/svgToCss/i18n/ja.ts +175 -0
- package/src/tool/svgToCss/i18n/ko.ts +175 -0
- package/src/tool/svgToCss/i18n/nl.ts +174 -0
- package/src/tool/svgToCss/i18n/pl.ts +174 -0
- package/src/tool/svgToCss/i18n/pt.ts +174 -0
- package/src/tool/svgToCss/i18n/ru.ts +174 -0
- package/src/tool/svgToCss/i18n/sv.ts +174 -0
- package/src/tool/svgToCss/i18n/tr.ts +174 -0
- package/src/tool/svgToCss/i18n/zh.ts +175 -0
- package/src/tool/svgToCss/index.ts +15 -7
- package/src/tool/urlCleaner/i18n/de.ts +116 -0
- package/src/tool/urlCleaner/i18n/id.ts +116 -0
- package/src/tool/urlCleaner/i18n/it.ts +116 -0
- package/src/tool/urlCleaner/i18n/ja.ts +117 -0
- package/src/tool/urlCleaner/i18n/ko.ts +117 -0
- package/src/tool/urlCleaner/i18n/nl.ts +116 -0
- package/src/tool/urlCleaner/i18n/pl.ts +29 -0
- package/src/tool/urlCleaner/i18n/pt.ts +43 -0
- package/src/tool/urlCleaner/i18n/ru.ts +43 -0
- package/src/tool/urlCleaner/i18n/sv.ts +43 -0
- package/src/tool/urlCleaner/i18n/tr.ts +43 -0
- package/src/tool/urlCleaner/i18n/zh.ts +44 -0
- package/src/tool/urlCleaner/index.ts +24 -0
- package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
- package/src/tool/urlEncoderDecoder/index.ts +15 -7
- package/src/tool/utmGenerator/i18n/de.ts +118 -0
- package/src/tool/utmGenerator/i18n/id.ts +118 -0
- package/src/tool/utmGenerator/i18n/it.ts +118 -0
- package/src/tool/utmGenerator/i18n/ja.ts +118 -0
- package/src/tool/utmGenerator/i18n/ko.ts +118 -0
- package/src/tool/utmGenerator/i18n/nl.ts +118 -0
- package/src/tool/utmGenerator/i18n/pl.ts +117 -0
- package/src/tool/utmGenerator/i18n/pt.ts +118 -0
- package/src/tool/utmGenerator/i18n/ru.ts +118 -0
- package/src/tool/utmGenerator/i18n/sv.ts +118 -0
- package/src/tool/utmGenerator/i18n/tr.ts +117 -0
- package/src/tool/utmGenerator/i18n/zh.ts +118 -0
- package/src/tool/utmGenerator/index.ts +15 -7
- package/src/types.ts +1 -2
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { HashGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'generatore-hash';
|
|
6
|
+
const title = 'Generatore di Hash di Sicurezza Online';
|
|
7
|
+
const description = 'Calcola hash MD5, SHA-1, SHA-256 e SHA-512 all\'istante. Strumento di sicurezza gratuito, privato e ultra-veloce per sviluppatori. 100% Client-Side.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Cos\'è un hash e a cosa serve?',
|
|
12
|
+
answer: 'Un hash è l\'impronta digitale unica di un testo o di un file. Viene utilizzato per verificare che i dati non siano stati manomessi e per memorizzare le password in modo sicuro.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'È sicuro usare questo generatore online?',
|
|
16
|
+
answer: 'Sì, è completamente sicuro. A differenza di altri siti, elaboriamo l\'hash direttamente nel tuo browser. I tuoi dati non vengono mai inviati a nessun server.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Quale algoritmo hash dovrei scegliere?',
|
|
20
|
+
answer: 'Per la sicurezza moderna e la memorizzazione delle chiavi, consigliamo SHA-256 o SHA-512. MD5 e SHA-1 dovrebbero essere usati solo per compatibilità con i sistemi legacy.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: "Cosa significa aggiungere un 'Salt'?",
|
|
24
|
+
answer: 'Un Salt è una stringa extra mescolata al tuo testo per rendere l\'hash unico e molto più difficile da craccare tramite attacchi a dizionario.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: 'Inserisci il testo', text: 'Digita o incolla il testo di cui vuoi calcolare l\'hash nella casella di input.' },
|
|
30
|
+
{ name: 'Configura la sicurezza', text: 'Aggiungi un Salt opzionale o aumenta i cicli di elaborazione per una maggiore robustezza.' },
|
|
31
|
+
{ name: 'Ottieni i risultati', text: 'I diversi hash (MD5, SHA ecc.) vengono calcolati in tempo reale mentre digiti.' },
|
|
32
|
+
{ name: 'Copia l\'hash', text: 'Fai clic sull\'icona di copia accanto a ogni algoritmo per salvarlo negli appunti.' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'it',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: HashGeneratorUI = {
|
|
65
|
+
labelInput: 'Testo di input',
|
|
66
|
+
placeholderInput: 'Digita o incolla qui il testo per calcolarne gli hash...',
|
|
67
|
+
labelSalt: 'Salt (Opzionale)',
|
|
68
|
+
placeholderSalt: 'Seed di sicurezza...',
|
|
69
|
+
labelRounds: 'Cicli (Stretch)',
|
|
70
|
+
copyMd5: 'Copia MD5',
|
|
71
|
+
copySha1: 'Copia SHA-1',
|
|
72
|
+
copySha256: 'Copia SHA-256',
|
|
73
|
+
copySha512: 'Copia SHA-512',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<HashGeneratorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui,
|
|
81
|
+
faqTitle: 'Domande Frequenti',
|
|
82
|
+
faq: faqData,
|
|
83
|
+
bibliographyTitle: 'Risorse Tecniche sull\'Hashing',
|
|
84
|
+
bibliography: [
|
|
85
|
+
{ name: 'MDN Web Docs: SubtleCrypto.digest() API', url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest' },
|
|
86
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
87
|
+
{ name: 'IETF: The MD5 Message-Digest Algorithm (RFC 1321)', url: 'https://datatracker.ietf.org/doc/html/rfc1321' },
|
|
88
|
+
],
|
|
89
|
+
howTo: howToData,
|
|
90
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: 'Cos\'è un hash crittografico?', level: 2 },
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Un <strong>hash crittografico</strong> è una funzione matematica che trasforma qualsiasi quantità di dati in una stringa di lunghezza fissa. Lo stesso input produce sempre lo stesso output, ma qualsiasi modifica minima nell\'input genera un hash completamente diverso.',
|
|
96
|
+
},
|
|
97
|
+
{ type: 'title', text: 'Algoritmi disponibili', level: 3 },
|
|
98
|
+
{
|
|
99
|
+
type: 'list',
|
|
100
|
+
items: [
|
|
101
|
+
'<strong>MD5 (128 bit):</strong> Veloce e ampiamente supportato. Considerato non sicuro per le password ma utile per i controlli di integrità dei file in ambienti non critici.',
|
|
102
|
+
'<strong>SHA-1 (160 bit):</strong> Deprecato per usi di sicurezza critici dal 2017. Ancora presente nei sistemi legacy.',
|
|
103
|
+
'<strong>SHA-256 (256 bit):</strong> Lo standard attuale per la maggior parte delle applicazioni. Usato in Bitcoin, TLS e firma del codice.',
|
|
104
|
+
'<strong>SHA-512 (512 bit):</strong> Variante più lunga di SHA-2, ideale quando è richiesta la massima resistenza alle collisioni.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{ type: 'title', text: 'Salt e Key Stretching', level: 3 },
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'Il <strong>Salt</strong> è una stringa casuale aggiunta al testo prima dell\'hashing, garantendo che due input identici producano hash diversi. Il <strong>Key Stretching</strong> (cicli) applica la funzione hash più volte per indurirla contro gli attacchi di forza bruta.',
|
|
111
|
+
},
|
|
112
|
+
{ type: 'title', text: 'Privacy totale: 100% Client-Side', level: 3 },
|
|
113
|
+
{
|
|
114
|
+
type: 'paragraph',
|
|
115
|
+
html: 'Questo strumento utilizza la <strong>Web Crypto API</strong> del browser per SHA e un\'implementazione TypeScript pura per MD5. Tutta l\'elaborazione avviene localmente: i tuoi dati non lasciano mai il dispositivo.',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { HashGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'hash-generator';
|
|
6
|
+
const title = 'オンライン・セキュリティ・ハッシュ・ジェネレーター';
|
|
7
|
+
const description = 'MD5、SHA-1、SHA-256、SHA-512ハッシュを瞬時に計算。開発者向けの無料、プライベート、超高速なセキュリティツールです。100%クライアントサイドで動作します。';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'ハッシュとは何ですか?何に使用されますか?',
|
|
12
|
+
answer: 'ハッシュは、テキストやファイルの固有のデジタル指紋です。データが改ざんされていないことを確認したり、パスワードを安全に保存したりするために使用されます。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'このオンライン・ジェネレーターを使用するのは安全ですか?',
|
|
16
|
+
answer: 'はい、完全に安全です。他のサイトとは異なり、ハッシュの処理はお客様のブラウザ内で直接行われます。データがサーバーに送信されることはありません。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'どのハッシュアルゴリズムを選択すべきですか?',
|
|
20
|
+
answer: '現代的なセキュリティと鍵の保存には、SHA-256またはSHA-512を推奨します。MD5とSHA-1は、レガシーシステムとの互換性が必要な場合にのみ使用してください。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '「ソルト(Salt)」を追加するとはどういう意味ですか?',
|
|
24
|
+
answer: 'ソルトは、テキストに混ぜられる追加の文字列で、ハッシュを固有のものにし、辞書攻撃による解読をはるかに困難にします。',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: 'テキストを入力', text: 'ハッシュ化したいテキストを入力ボックスに入力または貼り付けます。' },
|
|
30
|
+
{ name: 'セキュリティ設定', text: 'オプションのソルトを追加したり、処理回数(ストレッチング)を増やして堅牢性を高めます。' },
|
|
31
|
+
{ name: '結果を取得', text: '入力と同時に、リアルタイムで様々なハッシュ(MD5、SHAなど)が計算されます。' },
|
|
32
|
+
{ name: 'ハッシュをコピー', text: '各アルゴリズムの横にあるコピーアイコンをクリックして、クリップボードに保存します。' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'ja',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: HashGeneratorUI = {
|
|
65
|
+
labelInput: '入力テキスト',
|
|
66
|
+
placeholderInput: 'ここにテキストを入力または貼り付けて、ハッシュを計算します...',
|
|
67
|
+
labelSalt: 'ソルト (任意)',
|
|
68
|
+
placeholderSalt: 'セキュリティ・シード...',
|
|
69
|
+
labelRounds: 'ラウンド (ストレッチ)',
|
|
70
|
+
copyMd5: 'MD5をコピー',
|
|
71
|
+
copySha1: 'SHA-1をコピー',
|
|
72
|
+
copySha256: 'SHA-256をコピー',
|
|
73
|
+
copySha512: 'SHA-512をコピー',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<HashGeneratorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui,
|
|
81
|
+
faqTitle: 'よくある質問',
|
|
82
|
+
faq: faqData,
|
|
83
|
+
bibliographyTitle: 'ハッシュ化に関する技術資料',
|
|
84
|
+
bibliography: [
|
|
85
|
+
{ name: 'MDN Web Docs: SubtleCrypto.digest() API', url: 'https://developer.mozilla.org/ja/docs/Web/API/SubtleCrypto/digest' },
|
|
86
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
87
|
+
{ name: 'IETF: The MD5 Message-Digest Algorithm (RFC 1321)', url: 'https://datatracker.ietf.org/doc/html/rfc1321' },
|
|
88
|
+
],
|
|
89
|
+
howTo: howToData,
|
|
90
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: '暗号化ハッシュとは何ですか?', level: 2 },
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: '<strong>暗号化ハッシュ</strong>とは、任意のデータを固定長の文字列に変換する数学的関数です。同じ入力は常に同じ出力を生成しますが、入力にわずかな変更を加えるだけで、全く異なるハッシュが生成されます。',
|
|
96
|
+
},
|
|
97
|
+
{ type: 'title', text: '利用可能なアルゴリズム', level: 3 },
|
|
98
|
+
{
|
|
99
|
+
type: 'list',
|
|
100
|
+
items: [
|
|
101
|
+
'<strong>MD5 (128ビット):</strong> 高速で広くサポートされています。パスワードには安全ではないとされていますが、重要ではない環境でのファイル整合性チェックには有用です。',
|
|
102
|
+
'<strong>SHA-1 (160ビット):</strong> 2017年以降、重要なセキュリティ用途では非推奨となりました。レガシーシステムには依然として存在します。',
|
|
103
|
+
'<strong>SHA-256 (256ビット):</strong> ほとんどのアプリケーションで現在の標準となっています。ビットコイン、TLS、コード署名などで使用されています。',
|
|
104
|
+
'<strong>SHA-512 (512ビット):</strong> SHA-2のより長いバリアントで、最大の衝突耐性が必要な場合に最適です。',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{ type: 'title', text: 'ソルトとキー・ストレッチング', level: 3 },
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: '<strong>ソルト</strong>はハッシュ化の前にテキストに追加されるランダムな文字列で、2つの同一の入力から異なるハッシュが生成されることを保証します。<strong>キー・ストレッチング</strong>(ラウンド)は、ブルートフォース攻撃に対する耐性を高めるためにハッシュ関数を複数回適用します。',
|
|
111
|
+
},
|
|
112
|
+
{ type: 'title', text: '完全なプライバシー:100%クライアントサイド', level: 3 },
|
|
113
|
+
{
|
|
114
|
+
type: 'paragraph',
|
|
115
|
+
html: 'このツールは、SHAにはブラウザの<strong>Web Crypto API</strong>を使用し、MD5には純粋なTypeScript実装を使用します。すべての処理はローカルで行われ、データがデバイスから外部に出ることはありません。',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { HashGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'hash-generator';
|
|
6
|
+
const title = '온라인 보안 해시 생성기';
|
|
7
|
+
const description = 'MD5, SHA-1, SHA-256, SHA-512 해시를 즉시 계산합니다. 개발자를 위한 무료, 비공개, 초고속 보안 도구입니다. 100% 클라이언트 측에서 작동합니다.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: '해시란 무엇이며 어디에 사용되나요?',
|
|
12
|
+
answer: '해시는 텍스트나 파일의 고유한 디지털 지문입니다. 데이터가 변조되지 않았는지 확인하고 비밀번호를 안전하게 저장하는 데 사용됩니다.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '이 온라인 생성기를 사용하는 것이 안전한가요?',
|
|
16
|
+
answer: '네, 완전히 안전합니다. 다른 사이트와 달리 해시 처리는 사용자의 브라우저에서 직접 이루어집니다. 데이터는 절대 서버로 전송되지 않습니다.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '어떤 해시 알고리즘을 선택해야 하나요?',
|
|
20
|
+
answer: '현대적인 보안과 키 저장소에는 SHA-256 또는 SHA-512를 권장합니다. MD5와 SHA-1은 기존 시스템과의 호환성을 위해서만 사용해야 합니다.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: "'솔트(Salt)'를 추가한다는 것은 무엇을 의미하나요?",
|
|
24
|
+
answer: '솔트는 해시를 고유하게 만들고 사전 공격을 통한 해독을 훨씬 어렵게 만들기 위해 텍스트와 섞는 추가 문자열입니다.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: '텍스트 입력', text: '해시화하려는 텍스트를 입력란에 입력하거나 붙여넣습니다.' },
|
|
30
|
+
{ name: '보안 구성', text: '선택적으로 솔트를 추가하거나 처리 라운드(스트레칭)를 늘려 견고함을 높입니다.' },
|
|
31
|
+
{ name: '결과 확인', text: '입력하는 동안 실시간으로 다양한 해시(MD5, SHA 등)가 계산됩니다.' },
|
|
32
|
+
{ name: '해시 복사', text: '각 알고리즘 옆의 복사 아이콘을 클릭하여 클립보드에 저장합니다.' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'ko',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: HashGeneratorUI = {
|
|
65
|
+
labelInput: '입력 텍스트',
|
|
66
|
+
placeholderInput: '해시를 계산할 텍스트를 여기에 입력하거나 붙여넣으세요...',
|
|
67
|
+
labelSalt: '솔트 (선택 사항)',
|
|
68
|
+
placeholderSalt: '보안 시드...',
|
|
69
|
+
labelRounds: '라운드 (스트레칭)',
|
|
70
|
+
copyMd5: 'MD5 복사',
|
|
71
|
+
copySha1: 'SHA-1 복사',
|
|
72
|
+
copySha256: 'SHA-256 복사',
|
|
73
|
+
copySha512: 'SHA-512 복사',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<HashGeneratorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui,
|
|
81
|
+
faqTitle: '자주 묻는 질문',
|
|
82
|
+
faq: faqData,
|
|
83
|
+
bibliographyTitle: '해싱 관련 기술 리소스',
|
|
84
|
+
bibliography: [
|
|
85
|
+
{ name: 'MDN Web Docs: SubtleCrypto.digest() API', url: 'https://developer.mozilla.org/ko/docs/Web/API/SubtleCrypto/digest' },
|
|
86
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
87
|
+
{ name: 'IETF: The MD5 Message-Digest Algorithm (RFC 1321)', url: 'https://datatracker.ietf.org/doc/html/rfc1321' },
|
|
88
|
+
],
|
|
89
|
+
howTo: howToData,
|
|
90
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: '암호화 해시란 무엇인가요?', level: 2 },
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: '<strong>암호화 해시</strong>는 임의의 데이터를 고정된 길이의 문자열로 변환하는 수학적 함수입니다. 동일한 입력은 항상 동일한 출력을 생성하지만, 입력이 조금만 변경되어도 완전히 다른 해시가 생성됩니다.',
|
|
96
|
+
},
|
|
97
|
+
{ type: 'title', text: '사용 가능한 알고리즘', level: 3 },
|
|
98
|
+
{
|
|
99
|
+
type: 'list',
|
|
100
|
+
items: [
|
|
101
|
+
'<strong>MD5 (128비트):</strong> 빠르고 널리 지원됩니다. 비밀번호 보안용으로는 부적합한 것으로 간주되지만 중요하지 않은 환경에서의 파일 무결성 검사에는 유용합니다.',
|
|
102
|
+
'<strong>SHA-1 (160비트):</strong> 2017년 이후 보안상 중요한 용도에서는 사용이 권장되지 않습니다. 여전히 기존 시스템에 남아 있습니다.',
|
|
103
|
+
'<strong>SHA-256 (256비트):</strong> 대부분의 애플리케이션에 대한 현재 표준입니다. 비트코인, TLS 및 코드 서명에 사용됩니다.',
|
|
104
|
+
'<strong>SHA-512 (512비트):</strong> SHA-2의 더 긴 변형으로, 최대의 충돌 저항이 필요한 경우에 이상적입니다.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{ type: 'title', text: '솔트 및 키 스트레칭', level: 3 },
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: '<strong>솔트</strong>는 해싱 전에 텍스트에 추가되는 무작위 문자열로, 두 개의 동일한 입력이 서로 다른 해시를 생성하도록 보장합니다. <strong>키 스트레칭</strong>(라운드)은 무차별 대입 공격에 대비하기 위해 해시 함수를 여러 번 적용합니다.',
|
|
111
|
+
},
|
|
112
|
+
{ type: 'title', text: '완벽한 개인정보 보호: 100% 클라이언트 측', level: 3 },
|
|
113
|
+
{
|
|
114
|
+
type: 'paragraph',
|
|
115
|
+
html: '이 도구는 SHA의 경우 브라우저의 <strong>Web Crypto API</strong>를 사용하고 MD5의 경우 순수 TypeScript 구현을 사용합니다. 모든 처리는 로컬에서 이루어지며, 사용자의 데이터는 기기를 떠나지 않습니다.',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { HashGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'hash-generator-nl';
|
|
6
|
+
const title = 'Online Beveiligings Hash Generator';
|
|
7
|
+
const description = 'Bereken direct MD5, SHA-1, SHA-256 en SHA-512 hashes. Gratis, privé en ultrasnelle beveiligingstool voor ontwikkelaars. 100% Client-Side.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Wat is een hash en waarvoor wordt het gebruikt?',
|
|
12
|
+
answer: 'Een hash is een unieke digitale vingerafdruk van een tekst of bestand. Het wordt gebruikt om te verifiëren dat gegevens niet zijn gemanipuleerd en om wachtwoorden veilig op te slaan.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Is het veilig om deze online generator te gebruiken?',
|
|
16
|
+
answer: 'Ja, het is volledig veilig. In tegenstelling tot andere sites, verwerken wij de hash direct in uw browser. Uw gegevens worden nooit naar een server verzonden.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Welk hash-algoritme moet ik kiezen?',
|
|
20
|
+
answer: 'Voor moderne beveiliging en sleutelopslag raden we SHA-256 of SHA-512 aan. MD5 en SHA-1 mogen alleen worden gebruikt voor compatibiliteit met oudere systemen.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: "Wat betekent het toevoegen van een 'Salt'?",
|
|
24
|
+
answer: 'Een Salt is een extra tekenreeks die aan uw tekst wordt toegevoegd om de hash uniek te maken en het kraken via dictionary attacks veel moeilijker te maken.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: 'Voer tekst in', text: 'Typ of plak de tekst waarvan u de hash wilt berekenen in het invoervak.' },
|
|
30
|
+
{ name: 'Configureer beveiliging', text: 'Voeg een optionele Salt toe of verhoog het aantal verwerkingsrondes voor meer robuustheid.' },
|
|
31
|
+
{ name: 'Krijg resultaten', text: 'De verschillende hashes (MD5, SHA enz.) worden real-time berekend terwijl u typt.' },
|
|
32
|
+
{ name: 'Kopieer de Hash', text: 'Klik op het kopieericoon naast elk algoritme om het naar uw klembord te kopiëren.' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'nl',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: HashGeneratorUI = {
|
|
65
|
+
labelInput: 'Invoertekst',
|
|
66
|
+
placeholderInput: 'Typ of plak hier tekst om de hashes te berekenen...',
|
|
67
|
+
labelSalt: 'Salt (Optioneel)',
|
|
68
|
+
placeholderSalt: 'Beveiligings-seed...',
|
|
69
|
+
labelRounds: 'Rondes (Stretch)',
|
|
70
|
+
copyMd5: 'Kopieer MD5',
|
|
71
|
+
copySha1: 'Kopieer SHA-1',
|
|
72
|
+
copySha256: 'Kopieer SHA-256',
|
|
73
|
+
copySha512: 'Kopieer SHA-512',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<HashGeneratorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui,
|
|
81
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
82
|
+
faq: faqData,
|
|
83
|
+
bibliographyTitle: 'Technische Bronnen over Hashing',
|
|
84
|
+
bibliography: [
|
|
85
|
+
{ name: 'MDN Web Docs: SubtleCrypto.digest() API', url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest' },
|
|
86
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
87
|
+
{ name: 'IETF: The MD5 Message-Digest Algorithm (RFC 1321)', url: 'https://datatracker.ietf.org/doc/html/rfc1321' },
|
|
88
|
+
],
|
|
89
|
+
howTo: howToData,
|
|
90
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: 'Wat is een cryptografische hash?', level: 2 },
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Een <strong>cryptografische hash</strong> is een wiskundige functie die elke hoeveelheid gegevens transformeert in een tekenreeks van vaste lengte. Dezelfde invoer produceert altijd dezelfde uitvoer, maar elke minimale wijziging in de invoer genereert een volledig andere hash.',
|
|
96
|
+
},
|
|
97
|
+
{ type: 'title', text: 'Beschikbare algoritmen', level: 3 },
|
|
98
|
+
{
|
|
99
|
+
type: 'list',
|
|
100
|
+
items: [
|
|
101
|
+
'<strong>MD5 (128 bits):</strong> Snel en breed ondersteund. Wordt als onveilig beschouwd voor wachtwoorden, maar is nuttig voor bestandsintegriteitscontroles in niet-kritieke omgevingen.',
|
|
102
|
+
'<strong>SHA-1 (160 bits):</strong> Verouderd voor kritieke beveiligingstaken sinds 2017. Nog steeds aanwezig in oudere systemen.',
|
|
103
|
+
'<strong>SHA-256 (256 bits):</strong> De huidige standaard voor de meeste toepassingen. Gebruikt in Bitcoin, TLS en code-ondertekening.',
|
|
104
|
+
'<strong>SHA-512 (512 bits):</strong> Langere variant van SHA-2, ideaal wanneer maximale collision resistance vereist is.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{ type: 'title', text: 'Salt en Key Stretching', level: 3 },
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'De <strong>Salt</strong> is een willekeurige tekenreeks die aan de tekst wordt toegevoegd vóór het hashen, wat ervoor zorgt dat twee identieke invoerwaarden verschillende hashes produceren. <strong>Key Stretching</strong> (rondes) past de hash-functie meerdere keren toe om deze te verharden tegen brute-force aanvallen.',
|
|
111
|
+
},
|
|
112
|
+
{ type: 'title', text: 'Totale privacy: 100% Client-Side', level: 3 },
|
|
113
|
+
{
|
|
114
|
+
type: 'paragraph',
|
|
115
|
+
html: 'Deze tool gebruikt de <strong>Web Crypto API</strong> van de browser voor SHA en een pure TypeScript-implementatie voor MD5. Alle verwerking gebeurt lokaal: uw gegevens verlaten nooit uw apparaat.',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { HashGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'generator-hash';
|
|
6
|
+
const title = 'Internetowy Generator Hashy Bezpieczeństwa';
|
|
7
|
+
const description = 'Natychmiastowo obliczaj hashe MD5, SHA-1, SHA-256 i SHA-512. Bezpłatne, prywatne i ultra-szybkie narzędzie bezpieczeństwa dla programistów. 100% po stronie klienta.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Co to jest hash i do czego służy?',
|
|
12
|
+
answer: 'Hash to unikalny cyfrowy odcisk palca tekstu lub pliku. Służy do weryfikacji, czy dane nie zostały sfałszowane, oraz do bezpiecznego przechowywania haseł.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Czy korzystanie z tego generatora online jest bezpieczne?',
|
|
16
|
+
answer: 'Tak, jest to całkowicie bezpieczne. W przeciwieństwie do innych witryn, przetwarzamy hash bezpośrednio w Twojej przeglądarce. Twoje dane nigdy nie są wysyłane na żaden serwer.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Który algorytm hash wybrać?',
|
|
20
|
+
answer: 'W przypadku nowoczesnych zabezpieczeń i przechowywania kluczy zalecamy SHA-256 lub SHA-512. MD5 i SHA-1 powinny być używane tylko w celu zapewnienia kompatybilności ze starszymi systemami.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: "Co oznacza dodanie 'soli' (Salt)?",
|
|
24
|
+
answer: 'Sól to dodatkowy ciąg znaków zmieszany z tekstem, aby uczynić hash unikalnym i znacznie trudniejszym do złamania za pomocą ataków słownikowych.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: 'Wprowadź tekst', text: 'Wpisz lub wklej tekst, z którego chcesz utworzyć hash, w polu wejściowym.' },
|
|
30
|
+
{ name: 'Skonfiguruj bezpieczeństwo', text: 'Dodaj opcjonalną sól lub zwiększ liczbę rund przetwarzania, aby uzyskać większą solidność.' },
|
|
31
|
+
{ name: 'Pobierz wyniki', text: 'Różne hashe (MD5, SHA itp.) są obliczane w czasie rzeczywistym podczas pisania.' },
|
|
32
|
+
{ name: 'Skopiuj hash', text: 'Kliknij ikonę kopiowania obok każdego algorytmu, aby zapisać go w schowku.' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'pl',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: HashGeneratorUI = {
|
|
65
|
+
labelInput: 'Tekst wejściowy',
|
|
66
|
+
placeholderInput: 'Wpisz lub wklej tekst tutaj, aby obliczyć jego hashe...',
|
|
67
|
+
labelSalt: 'Sól (opcjonalnie)',
|
|
68
|
+
placeholderSalt: 'Ziarno bezpieczeństwa...',
|
|
69
|
+
labelRounds: 'Rundy (Stretch)',
|
|
70
|
+
copyMd5: 'Kopiuj MD5',
|
|
71
|
+
copySha1: 'Kopiuj SHA-1',
|
|
72
|
+
copySha256: 'Kopiuj SHA-256',
|
|
73
|
+
copySha512: 'Kopiuj SHA-512',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<HashGeneratorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui,
|
|
81
|
+
faqTitle: 'Często zadawane pytania',
|
|
82
|
+
faq: faqData,
|
|
83
|
+
bibliographyTitle: 'Zasoby techniczne dotyczące hashowania',
|
|
84
|
+
bibliography: [
|
|
85
|
+
{ name: 'MDN Web Docs: SubtleCrypto.digest() API', url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest' },
|
|
86
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
87
|
+
{ name: 'IETF: The MD5 Message-Digest Algorithm (RFC 1321)', url: 'https://datatracker.ietf.org/doc/html/rfc1321' },
|
|
88
|
+
],
|
|
89
|
+
howTo: howToData,
|
|
90
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: 'Co to jest kryptograficzny hash?', level: 2 },
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: '<strong>Kryptograficzny hash</strong> to funkcja matematyczna, która przekształca dowolną ilość danych w ciąg o stałej długości. Te same dane wejściowe zawsze dają ten sam wynik, ale każda, nawet minimalna zmiana w danych wejściowych generuje całkowicie inny hash.',
|
|
96
|
+
},
|
|
97
|
+
{ type: 'title', text: 'Dostępne algorytmy', level: 3 },
|
|
98
|
+
{
|
|
99
|
+
type: 'list',
|
|
100
|
+
items: [
|
|
101
|
+
'<strong>MD5 (128 bitów):</strong> Szybki i szeroko wspierany. Uważany za niebezpieczny dla haseł, ale przydatny do sprawdzania integralności plików w środowiskach o niskim stopniu krytyczności.',
|
|
102
|
+
'<strong>SHA-1 (160 bitów):</strong> Od 2017 r. wycofany z krytycznych zastosowań związanych z bezpieczeństwem. Wciąż obecny w starszych systemach.',
|
|
103
|
+
'<strong>SHA-256 (256 bitów):</strong> Obecny standard dla większości aplikacji. Stosowany w Bitcoinie, TLS i podpisywaniu kodu.',
|
|
104
|
+
'<strong>SHA-512 (512 bitów):</strong> Dłuższy wariant SHA-2, idealny, gdy wymagana jest maksymalna odporność na kolizje.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
{ type: 'title', text: 'Sól i Key Stretching', level: 3 },
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: '<strong>Sól</strong> to losowy ciąg znaków dodawany do tekstu przed hashowaniem, co gwarantuje, że dwa identyczne wejścia wygenerują różne hashe. <strong>Key Stretching</strong> (rundy) stosuje funkcję hash wielokrotnie, aby utrudnić ataki typu brute-force.',
|
|
111
|
+
},
|
|
112
|
+
{ type: 'title', text: 'Całkowita prywatność: 100% po stronie klienta', level: 3 },
|
|
113
|
+
{
|
|
114
|
+
type: 'paragraph',
|
|
115
|
+
html: 'To narzędzie wykorzystuje przeglądarkowe API <strong>Web Crypto</strong> dla SHA oraz czystą implementację TypeScript dla MD5. Całe przetwarzanie odbywa się lokalnie: Twoje dane nigdy nie opuszczają Twojego urządzenia.',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|