@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,163 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'url-encoder-decoder-it';
|
|
6
|
+
const title = 'Codificatore e Decodificatore URL Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Converti i caratteri speciali da qualsiasi link in un formato sicuro (Percent-Encoding) o riportali istantaneamente e localmente allo stato originale leggibile.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Quali caratteri vengono codificati in un\'URL?',
|
|
13
|
+
answer:
|
|
14
|
+
'Vengono codificati tutti i caratteri non consentiti nello standard ASCII per le URL: spazi, lettere accentate, simboli come &, =, +, #, ?, / e altri. Ad esempio, uno spazio diventa %20 e una ñ diventa %C3%B1.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Qual è la differenza tra encodeURI ed encodeURIComponent?',
|
|
18
|
+
answer:
|
|
19
|
+
'encodeURI codifica un\'URL completa lasciando intatti i caratteri riservati come / e ?. encodeURIComponent codifica tutti i caratteri speciali, compresi quelli riservati, rendendolo ideale per la codifica dei singoli valori dei parametri di query.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Perché la mia URL contiene %20 invece degli spazi?',
|
|
23
|
+
answer:
|
|
24
|
+
'Il protocollo HTTP non consente spazi nelle URL. %20 è la rappresentazione in Percent-Encoding di uno spazio secondo lo standard ASCII. Alcuni sistemi usano il segno + come alternativa, ma %20 è il più universale e sicuro.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'È sicuro usare questo strumento con URL private?',
|
|
28
|
+
answer:
|
|
29
|
+
'Sì, completamente sicuro. Tutta l\'elaborazione avviene nel tuo browser utilizzando JavaScript nativo (encodeURIComponent/decodeURIComponent). Nessuna delle tue URL o dei tuoi parametri viene inviata a server esterni.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Incolla il testo grezzo',
|
|
36
|
+
text: 'Digita o incolla la tua URL o stringa di testo nel campo superiore "Testo grezzo (leggibile)".',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Codifica o decodifica',
|
|
40
|
+
text: 'Fai clic su "Codifica URL" per convertire il testo nel formato sicuro Percent-Encoding, o su "Decodifica" per riportare un\'URL codificata alla sua forma leggibile.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Copia il risultato',
|
|
44
|
+
text: 'Usa il pulsante "Copia" del campo corrispondente per portare il risultato negli appunti.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
49
|
+
'@context': 'https://schema.org',
|
|
50
|
+
'@type': 'FAQPage',
|
|
51
|
+
mainEntity: faqData.map((item) => ({
|
|
52
|
+
'@type': 'Question',
|
|
53
|
+
name: item.question,
|
|
54
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
55
|
+
})),
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
59
|
+
'@context': 'https://schema.org',
|
|
60
|
+
'@type': 'HowTo',
|
|
61
|
+
name: title,
|
|
62
|
+
description,
|
|
63
|
+
step: howToData.map((step, i) => ({
|
|
64
|
+
'@type': 'HowToStep',
|
|
65
|
+
position: i + 1,
|
|
66
|
+
name: step.name,
|
|
67
|
+
text: step.text,
|
|
68
|
+
})),
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
72
|
+
'@context': 'https://schema.org',
|
|
73
|
+
'@type': 'SoftwareApplication',
|
|
74
|
+
name: title,
|
|
75
|
+
description,
|
|
76
|
+
applicationCategory: 'UtilityApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'it',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: UrlEncoderDecoderUI = {
|
|
83
|
+
labelRaw: 'Testo grezzo (leggibile)',
|
|
84
|
+
labelEncoded: 'URL formattata (codificato)',
|
|
85
|
+
btnClear: 'Cancella',
|
|
86
|
+
btnCopy: 'Copia',
|
|
87
|
+
btnCopied: 'Copiato!',
|
|
88
|
+
btnEncode: 'Codifica URL',
|
|
89
|
+
btnDecode: 'Decodifica',
|
|
90
|
+
placeholderRaw: 'https://example.com/search?q=scarpe rosse&size=38',
|
|
91
|
+
placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dscarpe%20rosse%26size%3D38',
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
|
|
95
|
+
slug,
|
|
96
|
+
title,
|
|
97
|
+
description,
|
|
98
|
+
ui,
|
|
99
|
+
faqTitle: 'Domande Frequenti',
|
|
100
|
+
faq: faqData,
|
|
101
|
+
bibliographyTitle: 'Riferimenti e Documentazione',
|
|
102
|
+
bibliography: [
|
|
103
|
+
{
|
|
104
|
+
name: 'MDN Web Docs: encodeURIComponent()',
|
|
105
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'IETF RFC 3986: URI Generic Syntax',
|
|
109
|
+
url: 'https://datatracker.ietf.org/doc/html/rfc3986',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'W3C: URL Living Standard',
|
|
113
|
+
url: 'https://url.spec.whatwg.org/',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
howTo: howToData,
|
|
117
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
118
|
+
seo: [
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Cos\'è la codifica URL?',
|
|
122
|
+
level: 2,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'Durante la navigazione in Internet o l\'invio di richieste ai server, è comune pensare a un\'URL (Uniform Resource Locator) semplicemente come a un "indirizzo web". Tuttavia, il protocollo Internet impone che le URL possano essere trasmesse solo utilizzando un set molto ristretto di caratteri <strong>ASCII standard</strong>.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'paragraph',
|
|
130
|
+
html: 'Cosa succede se l\'URL contiene uno spazio, lettere accentate o parametri speciali come i segni più (<code>+</code>) o uguale (<code>=</code>)? Per evitare che i sistemi vadano in crash cercando di leggere caratteri illegali, questi devono essere tradotti nella loro forma sicura compatibile utilizzando il <strong>Percent-Encoding</strong>.',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: 'Come funziona il Percent-Encoding',
|
|
135
|
+
level: 3,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'paragraph',
|
|
139
|
+
html: 'Quando usi questo strumento, l\'algoritmo prende qualsiasi carattere "non sicuro" (come uno spazio o una lettera accentata come ñ) e lo sostituisce con un segno di percentuale <code>%</code> seguito da due cifre esadecimali corrispondenti al suo valore nello standard UTF-8.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'list',
|
|
143
|
+
items: [
|
|
144
|
+
'<strong>Esempio di base:</strong> Uno spazio semplice sarà sostituito dal suo equivalente sicuro: <code>%20</code>.',
|
|
145
|
+
'<strong>Supporto esteso:</strong> La lettera <code>à</code> diventa <code>%C3%A0</code>, e <code>ñ</code> diventa <code>%C3%B1</code>.',
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'title',
|
|
150
|
+
text: 'Importanza nelle API e nelle richieste GET',
|
|
151
|
+
level: 3,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'paragraph',
|
|
155
|
+
html: 'Nello sviluppo di integrazioni, un errore tipico è passare una stringa grezza ai parametri URL. Se inserisci <code>camicia&blu</code> in modo grezzo nel tuo backend (<code>/search?q=camicia&blu</code>), il server interpreterà <code>blu</code> come un nuovo parametro, rompendo tutta la logica.',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'paragraph',
|
|
159
|
+
html: 'Questo strumento garantisce calcoli puliti e automatici con un\'esecuzione al 100% nel tuo browser locale. Nessuna delle tue stringhe URL viene trasmessa a server di terze parti, garantendo la privacy dei tuoi token e dei parametri analitici.',
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'url-encoder-decoder';
|
|
6
|
+
const title = 'オンラインURLエンコーダー&デコーダー';
|
|
7
|
+
const description =
|
|
8
|
+
'あらゆるリンクの特殊文字を安全な形式(パーセントエンコーディング)に変換、または元の読み取り可能な状態に即座にローカルで復元します。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'URLではどの文字がエンコードされますか?',
|
|
13
|
+
answer:
|
|
14
|
+
'URLのASCII標準で許可されていないすべての文字がエンコードされます:スペース、アクセント付き文字、&、=、+、#、?、/ などの記号。例えば、スペースは %20 に、ñ は %C3%B1 になります。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'encodeURI と encodeURIComponent の違いは何ですか?',
|
|
18
|
+
answer:
|
|
19
|
+
'encodeURI は完全なURLをエンコードし、/ や ? などの予約文字をそのまま残します。encodeURIComponent は予約文字を含むすべての特殊文字をエンコードするため、個々のクエリパラメータ値をエンコードするのに最適です。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'URLにスペースではなく %20 があるのはなぜですか?',
|
|
23
|
+
answer:
|
|
24
|
+
'HTTPプロトコルでは、URLにスペースを含めることはできません。%20 は ASCII標準に従ったスペースのパーセントエンコーディング表現です。一部のシステムでは代わりに + 記号を使用しますが、%20 が最も普遍的で安全です。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'プライベートなURLでこのツールを使用しても安全ですか?',
|
|
28
|
+
answer:
|
|
29
|
+
'はい、完全に安全です。すべての処理は、ネイティブJavaScript(encodeURIComponent/decodeURIComponent)を使用してブラウザ内で行われます。URLやパラメータが外部サーバーに送信されることはありません。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '生テキストを貼り付ける',
|
|
36
|
+
text: 'URLまたはテキスト文字列を上の「生テキスト(読み取り可能)」フィールドに入力または貼り付けます。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'エンコードまたはデコード',
|
|
40
|
+
text: '「URLエンコード」をクリックしてテキストを安全なパーセントエンコーディング形式に変換するか、「デコード」をクリックしてエンコードされたURLを読み取り可能な形式に戻します。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '結果をコピーする',
|
|
44
|
+
text: '対応するフィールドの「コピー」ボタンを使用して、結果をクリップボードに保存します。',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
49
|
+
'@context': 'https://schema.org',
|
|
50
|
+
'@type': 'FAQPage',
|
|
51
|
+
mainEntity: faqData.map((item) => ({
|
|
52
|
+
'@type': 'Question',
|
|
53
|
+
name: item.question,
|
|
54
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
55
|
+
})),
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
59
|
+
'@context': 'https://schema.org',
|
|
60
|
+
'@type': 'HowTo',
|
|
61
|
+
name: title,
|
|
62
|
+
description,
|
|
63
|
+
step: howToData.map((step, i) => ({
|
|
64
|
+
'@type': 'HowToStep',
|
|
65
|
+
position: i + 1,
|
|
66
|
+
name: step.name,
|
|
67
|
+
text: step.text,
|
|
68
|
+
})),
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
72
|
+
'@context': 'https://schema.org',
|
|
73
|
+
'@type': 'SoftwareApplication',
|
|
74
|
+
name: title,
|
|
75
|
+
description,
|
|
76
|
+
applicationCategory: 'UtilityApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'ja',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: UrlEncoderDecoderUI = {
|
|
83
|
+
labelRaw: '生テキスト(読み取り可能)',
|
|
84
|
+
labelEncoded: 'フォーマット済みURL(エンコード済み)',
|
|
85
|
+
btnClear: 'クリア',
|
|
86
|
+
btnCopy: 'コピー',
|
|
87
|
+
btnCopied: 'コピー完了!',
|
|
88
|
+
btnEncode: 'URLエンコード',
|
|
89
|
+
btnDecode: 'デコード',
|
|
90
|
+
placeholderRaw: 'https://example.com/search?q=赤い靴&size=38',
|
|
91
|
+
placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3D%E8%B5%A4%E3%81%84%E9%9D%B4%26size%3D38',
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
|
|
95
|
+
slug,
|
|
96
|
+
title,
|
|
97
|
+
description,
|
|
98
|
+
ui,
|
|
99
|
+
faqTitle: 'よくある質問',
|
|
100
|
+
faq: faqData,
|
|
101
|
+
bibliographyTitle: '参考文献とドキュメント',
|
|
102
|
+
bibliography: [
|
|
103
|
+
{
|
|
104
|
+
name: 'MDN Web Docs: encodeURIComponent()',
|
|
105
|
+
url: 'https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'IETF RFC 3986: URI Generic Syntax',
|
|
109
|
+
url: 'https://datatracker.ietf.org/doc/html/rfc3986',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'W3C: URL Living Standard',
|
|
113
|
+
url: 'https://url.spec.whatwg.org/',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
howTo: howToData,
|
|
117
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
118
|
+
seo: [
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'URLエンコードとは何ですか?',
|
|
122
|
+
level: 2,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'インターネットを閲覧したりサーバーにリクエストを送信したりする際、URL(Uniform Resource Locator)を単なる「ウェブアドレス」と考えがちです。しかし、インターネットプロトコルでは、URLは非常に限定された<strong>標準ASCII</strong>文字セットを使用してのみ送信できると規定されています。',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'paragraph',
|
|
130
|
+
html: 'URLにスペース、アクセント付き文字、あるいはプラス(<code>+</code>)やイコール(<code>=</code>)などの特殊なパラメータが含まれている場合はどうなるでしょうか?不正な文字を読み取ろうとしてシステムがダウンするのを防ぐために、これらは<strong>パーセントエンコーディング</strong>を使用して安全な互換形式に変換される必要があります。',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: 'パーセントエンコーディングの仕組み',
|
|
135
|
+
level: 3,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'paragraph',
|
|
139
|
+
html: 'このツールを使用すると、アルゴリズムが「安全でない」文字(スペースやアクセント付き文字など)を受け取り、それをパーセント記号 <code>%</code> と、UTF-8標準におけるその値に対応する2桁の16進数に置き換えます。',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'list',
|
|
143
|
+
items: [
|
|
144
|
+
'<strong>基本的な例:</strong> 単純なスペースは、安全な同等物である <code>%20</code> に置き換えられます。',
|
|
145
|
+
'<strong>拡張サポート:</strong> 文字 <code>あ</code> は <code>%E3%81%82</code> になります。',
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'title',
|
|
150
|
+
text: 'APIとGETリクエストにおける重要性',
|
|
151
|
+
level: 3,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'paragraph',
|
|
155
|
+
html: '開発においてよくある間違いは、生の文字列をURLパラメータに渡すことです。<code>shirt&blue</code> をそのままバックエンド(<code>/search?q=shirt&blue</code>)に挿入すると、サーバーは <code>blue</code> を新しいパラメータとして解釈し、ロジックが破綻してしまいます。',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'paragraph',
|
|
159
|
+
html: 'このツールは、ローカルブラウザでの100%の実行により、クリーンで自動的な計算を保証します。URL文字列がサードパーティのサーバーに送信されることはないため、トークンや分析パラメータのプライバシーが確保されます。',
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'url-encoder-decoder';
|
|
6
|
+
const title = '온라인 URL 인코더 및 디코더';
|
|
7
|
+
const description =
|
|
8
|
+
'모든 링크의 특수 문자를 안전한 형식(퍼센트 인코딩)으로 변환하거나 원래의 읽기 가능한 상태로 즉시 로컬에서 복구합니다.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'URL에서 어떤 문자가 인코딩되나요?',
|
|
13
|
+
answer:
|
|
14
|
+
'URL의 ASCII 표준에서 허용되지 않는 모든 문자가 인코딩됩니다: 공백, 액센트가 있는 문자, &, =, +, #, ?, / 등의 기호입니다. 예를 들어, 공백은 %20이 되고 ñ은 %C3%B1이 됩니다.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'encodeURI와 encodeURIComponent의 차이점은 무엇인가요?',
|
|
18
|
+
answer:
|
|
19
|
+
'encodeURI는 전체 URL을 인코딩하며 / 및 ?와 같은 예약 문자를 그대로 둡니다. encodeURIComponent는 예약 문자를 포함한 모든 특수 문자를 인코딩하므로 개별 쿼리 매개변수 값을 인코딩하는 데 이상적입니다.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '왜 내 URL에 공백 대신 %20이 있나요?',
|
|
23
|
+
answer:
|
|
24
|
+
'HTTP 프로토콜은 URL에 공백을 허용하지 않습니다. %20은 ASCII 표준에 따른 공백의 퍼센트 인코딩 표현입니다. 일부 시스템에서는 + 기호를 대안으로 사용하지만, %20이 가장 보편적이고 안전합니다.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '개인적인 URL에 이 도구를 사용해도 안전한가요?',
|
|
28
|
+
answer:
|
|
29
|
+
'네, 완전히 안전합니다. 모든 처리는 네이티브 JavaScript(encodeURIComponent/decodeURIComponent)를 사용하여 브라우저 내에서 이루어집니다. 사용자의 URL이나 매개변수는 외부 서버로 전송되지 않습니다.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '원본 텍스트 붙여넣기',
|
|
36
|
+
text: '상단 필드 "원본 텍스트(읽기 가능)"에 URL 또는 텍스트 문자열을 입력하거나 붙여넣습니다.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '인코딩 또는 디코딩',
|
|
40
|
+
text: '"URL 인코딩"을 클릭하여 텍스트를 안전한 퍼센트 인코딩 형식으로 변환하거나, "디코딩"을 클릭하여 인코딩된 URL을 읽기 가능한 형태로 되돌립니다.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '결과 복사하기',
|
|
44
|
+
text: '해당 필드의 "복사" 버튼을 사용하여 결과를 클립보드에 담습니다.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
49
|
+
'@context': 'https://schema.org',
|
|
50
|
+
'@type': 'FAQPage',
|
|
51
|
+
mainEntity: faqData.map((item) => ({
|
|
52
|
+
'@type': 'Question',
|
|
53
|
+
name: item.question,
|
|
54
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
55
|
+
})),
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
59
|
+
'@context': 'https://schema.org',
|
|
60
|
+
'@type': 'HowTo',
|
|
61
|
+
name: title,
|
|
62
|
+
description,
|
|
63
|
+
step: howToData.map((step, i) => ({
|
|
64
|
+
'@type': 'HowToStep',
|
|
65
|
+
position: i + 1,
|
|
66
|
+
name: step.name,
|
|
67
|
+
text: step.text,
|
|
68
|
+
})),
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
72
|
+
'@context': 'https://schema.org',
|
|
73
|
+
'@type': 'SoftwareApplication',
|
|
74
|
+
name: title,
|
|
75
|
+
description,
|
|
76
|
+
applicationCategory: 'UtilityApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'ko',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: UrlEncoderDecoderUI = {
|
|
83
|
+
labelRaw: '원본 텍스트 (읽기 가능)',
|
|
84
|
+
labelEncoded: '포맷된 URL (인코딩됨)',
|
|
85
|
+
btnClear: '지우기',
|
|
86
|
+
btnCopy: '복사',
|
|
87
|
+
btnCopied: '복사됨!',
|
|
88
|
+
btnEncode: 'URL 인코딩',
|
|
89
|
+
btnDecode: '디코딩',
|
|
90
|
+
placeholderRaw: 'https://example.com/search?q=빨간 구두&size=38',
|
|
91
|
+
placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3D%EB%B9%A4%EA%B0%84%20%EA%B5%AC%EB%91%90%26size%3D38',
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
|
|
95
|
+
slug,
|
|
96
|
+
title,
|
|
97
|
+
description,
|
|
98
|
+
ui,
|
|
99
|
+
faqTitle: '자주 묻는 질문',
|
|
100
|
+
faq: faqData,
|
|
101
|
+
bibliographyTitle: '참고 자료 및 문서',
|
|
102
|
+
bibliography: [
|
|
103
|
+
{
|
|
104
|
+
name: 'MDN Web Docs: encodeURIComponent()',
|
|
105
|
+
url: 'https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'IETF RFC 3986: URI Generic Syntax',
|
|
109
|
+
url: 'https://datatracker.ietf.org/doc/html/rfc3986',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'W3C: URL Living Standard',
|
|
113
|
+
url: 'https://url.spec.whatwg.org/',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
howTo: howToData,
|
|
117
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
118
|
+
seo: [
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'URL 인코딩이란 무엇인가요?',
|
|
122
|
+
level: 2,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '인터넷을 탐색하거나 서버에 요청을 보낼 때, URL(Uniform Resource Locator)을 단순히 "웹 주소"라고 생각하기 쉽습니다. 하지만 인터넷 프로토콜은 URL이 매우 제한된 <strong>표준 ASCII</strong> 문자 세트만을 사용하여 전송되어야 한다고 규정하고 있습니다.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'paragraph',
|
|
130
|
+
html: 'URL에 공백, 액센트가 있는 문자 또는 플러스(<code>+</code>)나 등호(<code>=</code>)와 같은 특수 매개변수가 포함되어 있으면 어떻게 될까요? 잘못된 문자를 읽으려 할 때 시스템이 충돌하는 것을 방지하기 위해, 이러한 문자는 <strong>퍼센트 인코딩</strong>을 사용하여 안전한 호환 형식으로 번역되어야 합니다.',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: '퍼센트 인코딩의 작동 방식',
|
|
135
|
+
level: 3,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'paragraph',
|
|
139
|
+
html: '이 도구를 사용하면 알고리즘이 "안전하지 않은" 문자(공백이나 ñ와 같은 액센트 문자)를 가져와 퍼센트 기호 <code>%</code>와 UTF-8 표준의 해당 값에 해당하는 두 자리 16진수로 바꿉니다.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'list',
|
|
143
|
+
items: [
|
|
144
|
+
'<strong>기본 예시:</strong> 단순한 공백은 안전한 대체물인 <code>%20</code>으로 바뀝니다.',
|
|
145
|
+
'<strong>확장 지원:</strong> 문자 <code>가</code>는 <code>%EA%B0%80</code>가 됩니다.',
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'title',
|
|
150
|
+
text: 'API 및 GET 요청에서의 중요성',
|
|
151
|
+
level: 3,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'paragraph',
|
|
155
|
+
html: '개발 시 흔히 하는 실수는 URL 매개변수에 원본 문자열을 직접 전달하는 것입니다. <code>셔츠&파랑</code>을 그대로 백엔드(<code>/search?q=셔츠&파랑</code>)에 삽입하면, 서버는 <code>파랑</code>을 새로운 매개변수로 해석하여 모든 로직이 깨지게 됩니다.',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'paragraph',
|
|
159
|
+
html: '이 도구는 로컬 브라우저에서의 100% 실행을 통해 깨끗하고 자동적인 계산을 보장합니다. 사용자의 URL 문자열은 제3자 서버로 전송되지 않으므로 토큰 및 분석 매개변수의 개인정보가 보호됩니다.',
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'url-encoder-decoder-nl';
|
|
6
|
+
const title = 'URL Encoder and Decoder Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Converteer speciale tekens van elke link naar een veilig formaat (Percent-Encoding) of herstel ze direct en lokaal naar hun oorspronkelijke leesbare staat.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Welke tekens worden gecodeerd in een URL?',
|
|
13
|
+
answer:
|
|
14
|
+
'Alle tekens die niet zijn toegestaan in de ASCII-standaard voor URL\'s worden gecodeerd: spaties, letters met accenten, symbolen zoals &, =, +, #, ?, / en andere. Een spatie wordt bijvoorbeeld %20 en een ñ wordt %C3%B1.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Wat is het verschil tussen encodeURI en encodeURIComponent?',
|
|
18
|
+
answer:
|
|
19
|
+
'encodeURI codeert een volledige URL en laat gereserveerde tekens zoals / en ? intact. encodeURIComponent codeert alle speciale tekens inclusief gereserveerde tekens, waardoor het ideaal is voor het coderen van individuele queryparameterwaarden.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Waarom heeft mijn URL %20 in plaats von spaties?',
|
|
23
|
+
answer:
|
|
24
|
+
'Het HTTP-protocol staat geen spaties in URL\'s toe. %20 is de Percent-Encoding weergave van een spatie volgens de ASCII-standaard. Sommige systemen gebruiken het + teken als alternatief, maar %20 is het meest universeel en veilig.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Is het veilig om deze tool te gebruiken met privé URL\'s?',
|
|
28
|
+
answer:
|
|
29
|
+
'Ja, volledig veilig. Alle verwerking vindt plaats in uw browser met behulp van native JavaScript (encodeURIComponent/decodeURIComponent). Geen van uw URL\'s of parameters wordt naar een externe server verzonden.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Plak de ruwe tekst',
|
|
36
|
+
text: 'Typ of plak uw URL of tekstreeks in het bovenste veld "Ruwe tekst (leesbaar)".',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Coderen of decoderen',
|
|
40
|
+
text: 'Klik op "URL coderen" om de tekst te converteren naar het veilige Percent-Encoding formaat, of op "Decoderen" om een gecodeerde URL terug te zetten naar de leesbare vorm.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Kopieer het resultaat',
|
|
44
|
+
text: 'Gebruik de knop "Kopiëren" van het bijbehorende veld om het resultaat naar uw klembord te kopiëren.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
49
|
+
'@context': 'https://schema.org',
|
|
50
|
+
'@type': 'FAQPage',
|
|
51
|
+
mainEntity: faqData.map((item) => ({
|
|
52
|
+
'@type': 'Question',
|
|
53
|
+
name: item.question,
|
|
54
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
55
|
+
})),
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
59
|
+
'@context': 'https://schema.org',
|
|
60
|
+
'@type': 'HowTo',
|
|
61
|
+
name: title,
|
|
62
|
+
description,
|
|
63
|
+
step: howToData.map((step, i) => ({
|
|
64
|
+
'@type': 'HowToStep',
|
|
65
|
+
position: i + 1,
|
|
66
|
+
name: step.name,
|
|
67
|
+
text: step.text,
|
|
68
|
+
})),
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
72
|
+
'@context': 'https://schema.org',
|
|
73
|
+
'@type': 'SoftwareApplication',
|
|
74
|
+
name: title,
|
|
75
|
+
description,
|
|
76
|
+
applicationCategory: 'UtilityApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'nl',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: UrlEncoderDecoderUI = {
|
|
83
|
+
labelRaw: 'Ruwe tekst (leesbaar)',
|
|
84
|
+
labelEncoded: 'Geformatteerde URL (gecodeerd)',
|
|
85
|
+
btnClear: 'Wissen',
|
|
86
|
+
btnCopy: 'Kopiëren',
|
|
87
|
+
btnCopied: 'Gekopieerd!',
|
|
88
|
+
btnEncode: 'URL coderen',
|
|
89
|
+
btnDecode: 'Decoderen',
|
|
90
|
+
placeholderRaw: 'https://example.com/search?q=rode schoenen&size=38',
|
|
91
|
+
placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Drode%20schoenen%26size%3D38',
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
|
|
95
|
+
slug,
|
|
96
|
+
title,
|
|
97
|
+
description,
|
|
98
|
+
ui,
|
|
99
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
100
|
+
faq: faqData,
|
|
101
|
+
bibliographyTitle: 'Referenties en Documentatie',
|
|
102
|
+
bibliography: [
|
|
103
|
+
{
|
|
104
|
+
name: 'MDN Web Docs: encodeURIComponent()',
|
|
105
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'IETF RFC 3986: URI Generic Syntax',
|
|
109
|
+
url: 'https://datatracker.ietf.org/doc/html/rfc3986',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'W3C: URL Living Standard',
|
|
113
|
+
url: 'https://url.spec.whatwg.org/',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
howTo: howToData,
|
|
117
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
118
|
+
seo: [
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Wat is URL-codering?',
|
|
122
|
+
level: 2,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'Bij het surfen op internet of het verzenden van verzoeken naar servers, is het gebruikelijk om een URL (Uniform Resource Locator) simpelweg als een "webadres" te beschouwen. Het internetprotocol schrijft echter voor dat URL\'s alleen kunnen worden verzonden met een zeer beperkte set <strong>standaard ASCII</strong>-tekens.',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'paragraph',
|
|
130
|
+
html: 'Wat gebeurt er als de URL een spatie, letters met accenten of speciale parameters bevat zoals plus- (<code>+</code>) of isgelijktekens (<code>=</code>)? Om te voorkomen dat systemen vastlopen bij het proberen te lezen van ongeldige tekens, moeten deze worden vertaald naar hun veilige compatibele vorm met behulp van <strong>Percent-Encoding</strong>.',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: 'Hoe Percent-Encoding werkt',
|
|
135
|
+
level: 3,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'paragraph',
|
|
139
|
+
html: 'Wanneer u deze tool gebruikt, neemt het algoritme elk "onveilig" teken (zoals een spatie of een letter met accent zoals ñ) en vervangt dit door een procentteken <code>%</code> gevolgd door twee hexadecimale cijfers die overeenkomen met de waarde in de UTF-8 standaard.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'list',
|
|
143
|
+
items: [
|
|
144
|
+
'<strong>Basisvoorbeeld:</strong> Een eenvoudige spatie wordt vervangen door het veilige equivalent: <code>%20</code>.',
|
|
145
|
+
'<strong>Uitgebreide ondersteuning:</strong> De letter <code>á</code> wordt <code>%C3%A1</code> en <code>ñ</code> wordt <code>%C3%B1</code>.',
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'title',
|
|
150
|
+
text: 'Belang in API\'s en GET-verzoeken',
|
|
151
|
+
level: 3,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'paragraph',
|
|
155
|
+
html: 'Bij het ontwikkelen van integraties is een typische fout het doorgeven van een ruwe tekenreeks aan URL-parameters. Als u <code>shirt&blauw</code> onbewerkt in uw backend invoegt (<code>/search?q=shirt&blauw</code>), zal de server <code>blauw</code> interpreteren als een nieuwe parameter, waardoor de hele logica wordt verbroken.',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'paragraph',
|
|
159
|
+
html: 'Deze tool garandeert schone, automatische berekeningen met 100% uitvoering in uw lokale browser. Geen van uw URL-tekenreeksen wordt naar servers van derden verzonden, wat de privacy van uw tokens en analyseparameters waarborgt.',
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
|