@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,161 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeycodeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'keycode-it';
|
|
6
|
+
const title = 'Visualizzatore di Codici Tasto Online. KeyCode Inspector';
|
|
7
|
+
const description =
|
|
8
|
+
'Strumento online gratuito per vedere in tempo reale event.key, event.code, event.which e la posizione di qualsiasi tasto della tastiera. Genera snippet di codice JavaScript pronti all\'uso.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Qual è la differenza tra event.key e event.code?',
|
|
13
|
+
answer:
|
|
14
|
+
'event.code rappresenta il tasto fisico sulla tastiera, indipendentemente dalla lingua configurata. event.key rappresenta il carattere generato, che può cambiare se si preme Shift o si usa una lingua diversa. Per i controlli di gioco usa code; per l\'input di testo e le scorciatoie semantiche, usa key.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Cos\'è event.which e perché è considerato obsoleto?',
|
|
18
|
+
answer:
|
|
19
|
+
'event.which è una proprietà legacy che restituisce un codice ASCII numerico per il tasto premuto. È contrassegnata come obsoleta (deprecated) negli standard moderni perché event.key e event.code la sostituiscono con informazioni più precise e leggibili. Viene mostrata in questo strumento a scopo didattico.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Cosa significa la proprietà location?',
|
|
23
|
+
answer:
|
|
24
|
+
'La proprietà location indica dove si trova fisicamente il tasto sulla tastiera: Standard (posizione normale), Left (tasto modificatore sinistro), Right (tasto modificatore destro) o Numpad (tastierino numerico). È utile per distinguere, ad esempio, il tasto CTRL sinistro da quello destro.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Funziona con tastiere internazionali e layout non QWERTY?',
|
|
28
|
+
answer:
|
|
29
|
+
'Sì. Lo strumento mostra esattamente ciò che il browser riporta per la tua configurazione di tastiera. event.code restituirà sempre il nome QWERTY della posizione fisica, mentre event.key mostrerà il carattere effettivo in base alla tua lingua.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Premi un tasto',
|
|
36
|
+
text: 'Con il focus sulla pagina, premi qualsiasi tasto della tastiera per vedere istantaneamente tutte le informazioni sull\'evento.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Copia i valori singoli',
|
|
40
|
+
text: 'Fai clic sul pulsante copia accanto a ogni proprietà (event.key, event.code, ecc.) per copiare quel valore specifico negli appunti.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Usa gli snippet di codice',
|
|
44
|
+
text: 'Nella sezione "Snippet Rapidi" troverai blocchi di codice JavaScript pronti da incollare direttamente nel tuo progetto.',
|
|
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: 'DeveloperApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'it',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: KeycodeUI = {
|
|
83
|
+
promptTitle: 'Premi un tasto',
|
|
84
|
+
promptSubtitle: 'Qualsiasi tasto della tastiera per vederne il codice',
|
|
85
|
+
snippetsTitle: 'Snippet Rapidi',
|
|
86
|
+
btnCopy: 'Copia',
|
|
87
|
+
locationStandard: 'Standard',
|
|
88
|
+
locationLeft: 'Sinistra',
|
|
89
|
+
locationRight: 'Destra',
|
|
90
|
+
locationNumpad: 'Numpad',
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const content: ToolLocaleContent<KeycodeUI> = {
|
|
94
|
+
slug,
|
|
95
|
+
title,
|
|
96
|
+
description,
|
|
97
|
+
ui,
|
|
98
|
+
faqTitle: 'Domande Frequenti',
|
|
99
|
+
faq: faqData,
|
|
100
|
+
bibliographyTitle: 'Riferimenti e Standard',
|
|
101
|
+
bibliography: [
|
|
102
|
+
{
|
|
103
|
+
name: 'MDN Web Docs – KeyboardEvent',
|
|
104
|
+
url: 'https://developer.mozilla.org/it/docs/Web/API/KeyboardEvent',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'UI Events Specification (W3C) – KeyboardEvent',
|
|
108
|
+
url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'MDN – KeyboardEvent.code values',
|
|
112
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
howTo: howToData,
|
|
116
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
117
|
+
seo: [
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'Capire gli eventi tastiera in JavaScript',
|
|
121
|
+
level: 2,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Quando un utente preme un tasto, il browser attiva tre eventi: <code>keydown</code>, <code>keypress</code> e <code>keyup</code>. Ognuno espone proprietà con informazioni sul tasto premuto, ma non tutte sono equivalenti o consigliate.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Proprietà degli eventi tasto',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'grid',
|
|
134
|
+
columns: 2,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'card',
|
|
138
|
+
title: 'event.code — Il tasto fisico',
|
|
139
|
+
html: '<p>Restituisce l\'identificatore della <strong>posizione fisica</strong> del tasto sulla tastiera, usando la nomenclatura QWERTY. Ad esempio, il tasto "A" su una tastiera AZERTY restituisce <code>KeyQ</code>. Ideale per i controlli di gioco dove conta la posizione, non il carattere.</p>',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'card',
|
|
143
|
+
title: 'event.key — Il carattere generato',
|
|
144
|
+
html: '<p>Restituisce il <strong>valore del carattere</strong> generato in base alla lingua e ai modificatori attivi. Premendo Shift+A si ottiene <code>"A"</code>; senza Shift si ottiene <code>"a"</code>. Per i tasti speciali restituisce nomi come <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code>.</p>',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Quando usare ciascuna proprietà',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
html: 'Usa <code>event.code</code> per i controlli di gioco (WASD indipendentemente dalla lingua) e <code>event.key</code> per rilevare caratteri specifici o scorciatoie semantiche come <code>Ctrl+C</code>.',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'paragraph',
|
|
157
|
+
html: 'Le proprietà <code>event.which</code> e <code>event.keyCode</code> sono ufficialmente <strong>obsolete</strong> secondo lo standard W3C. Sebbene i browser moderni continuino a supportarle per compatibilità, non dovrebbero essere usate nel nuovo codice.',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
};
|
|
161
|
+
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeycodeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'keycode';
|
|
6
|
+
const title = 'キーボードコードビジュアライザー オンライン。KeyCode Inspector';
|
|
7
|
+
const description =
|
|
8
|
+
'キーボードの任意のキーの event.key、event.code、event.which、およびロケーションをリアルタイムで確認できる無料のオンラインツール。すぐに使えるJavaScriptコードスニペットを生成します。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'event.key と event.code の違いは何ですか?',
|
|
13
|
+
answer:
|
|
14
|
+
'event.code は、設定された言語に関係なく、キーボード上の物理的なキーを表します。event.key は生成された文字を表し、Shift を押したり別の言語を使用したりすると変化します。ゲームコントロールには code を使用し、テキスト入力やセマンティックなショートカットには key を使用してください。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'event.which とは何ですか?なぜ非推奨なのですか?',
|
|
18
|
+
answer:
|
|
19
|
+
'event.which はキーの数値ASCIIコードを返すレガシーなプロパティです。event.key と event.code がより正確で読みやすい情報に置き換えるため、モダンな標準では非推奨(deprecated)とされています。このツールでは教育目的で表示しています。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'location プロパティはどういう意味ですか?',
|
|
23
|
+
answer:
|
|
24
|
+
'location プロパティは、キーボード上のキーの物理的な位置を示します:Standard(通常の位置)、Left(左側の修飾キー)、Right(右側の修飾キー)、Numpad(テンキー)。たとえば、左と右のCtrlキーを区別するのに便利です。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '国際的なキーボードやQWERT Y以外のレイアウトでも動作しますか?',
|
|
28
|
+
answer:
|
|
29
|
+
'はい。このツールはブラウザがあなたのキーボード設定に対してレポートする内容をそのまま表示します。event.code は常に物理的な位置のQWERTY名を返し、event.key はあなたの言語に応じた実際の文字を表示します。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '任意のキーを押す',
|
|
36
|
+
text: 'ページにフォーカスがある状態で、キーボードの任意のキーを押すと、すべてのイベント情報が即座に表示されます。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '個別の値をコピーする',
|
|
40
|
+
text: '各プロパティ(event.key、event.code など)の横にあるコピーボタンをクリックすると、その値をクリップボードにコピーできます。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'コードスニペットを使用する',
|
|
44
|
+
text: '「クイックスニペット」セクションには、プロジェクトに直接貼り付けられるJavaScriptコードブロックがあります。',
|
|
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: 'DeveloperApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'ja',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: KeycodeUI = {
|
|
83
|
+
promptTitle: 'キーを押してください',
|
|
84
|
+
promptSubtitle: 'キーボードの任意のキーを押してコードを確認',
|
|
85
|
+
snippetsTitle: 'クイックスニペット',
|
|
86
|
+
btnCopy: 'コピー',
|
|
87
|
+
locationStandard: 'Standard',
|
|
88
|
+
locationLeft: '左',
|
|
89
|
+
locationRight: '右',
|
|
90
|
+
locationNumpad: 'Numpad',
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const content: ToolLocaleContent<KeycodeUI> = {
|
|
94
|
+
slug,
|
|
95
|
+
title,
|
|
96
|
+
description,
|
|
97
|
+
ui,
|
|
98
|
+
faqTitle: 'よくある質問',
|
|
99
|
+
faq: faqData,
|
|
100
|
+
bibliographyTitle: '参考資料と標準',
|
|
101
|
+
bibliography: [
|
|
102
|
+
{
|
|
103
|
+
name: 'MDN Web Docs – KeyboardEvent',
|
|
104
|
+
url: 'https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'UI Events Specification (W3C) – KeyboardEvent',
|
|
108
|
+
url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'MDN – KeyboardEvent.code values',
|
|
112
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
howTo: howToData,
|
|
116
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
117
|
+
seo: [
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'JavaScriptのキーボードイベントを理解する',
|
|
121
|
+
level: 2,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'ユーザーがキーを押すと、ブラウザは3つのイベントを発火します:<code>keydown</code>、<code>keypress</code>、<code>keyup</code>。それぞれが押されたキーに関する情報を持つプロパティを公開しますが、すべてが同等または推奨されているわけではありません。',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'キーイベントのプロパティ',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'grid',
|
|
134
|
+
columns: 2,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'card',
|
|
138
|
+
title: 'event.code — 物理的なキー',
|
|
139
|
+
html: '<p>QWERTYの命名規則を使用して、キーボード上のキーの<strong>物理的な位置</strong>の識別子を返します。たとえば、AZERTYキーボードの「A」キーは<code>KeyQ</code>を返します。位置が重要であり文字ではないゲームコントロールに最適です。</p>',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'card',
|
|
143
|
+
title: 'event.key — 生成された文字',
|
|
144
|
+
html: '<p>言語とアクティブな修飾キーに応じて生成された<strong>文字値</strong>を返します。Shift+Aを押すと<code>"A"</code>が返され、Shiftなしでは<code>"a"</code>が返されます。特殊キーの場合は<code>"Enter"</code>、<code>"Escape"</code>、<code>"ArrowUp"</code>などの名前が返されます。</p>',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: '各プロパティをいつ使うか',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
html: 'ゲームコントロール(言語に関係なくWASD)には<code>event.code</code>を使用し、特定の文字や<code>Ctrl+C</code>のようなセマンティックなキーボードショートカットを検出するには<code>event.key</code>を使用してください。',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'paragraph',
|
|
157
|
+
html: '<code>event.which</code>と<code>event.keyCode</code>プロパティはW3C標準に従い、公式に<strong>非推奨</strong>となっています。モダンブラウザは互換性のためにこれらを引き続きサポートしていますが、新しいコードでは使用しないでください。',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
};
|
|
161
|
+
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeycodeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'keycode';
|
|
6
|
+
const title = '키보드 키코드 시각화 도구 온라인. KeyCode Inspector';
|
|
7
|
+
const description =
|
|
8
|
+
'키보드의 모든 키에 대한 event.key, event.code, event.which 및 위치를 실시간으로 확인할 수 있는 무료 온라인 도구. 바로 사용할 수 있는 JavaScript 코드 스니펫을 생성합니다.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'event.key와 event.code의 차이점은 무엇인가요?',
|
|
13
|
+
answer:
|
|
14
|
+
'event.code는 설정된 언어와 관계없이 키보드의 물리적 키를 나타냅니다. event.key는 생성된 문자를 나타내며, Shift를 누르거나 다른 언어를 사용하면 변경될 수 있습니다. 게임 컨트롤에는 code를 사용하고, 텍스트 입력과 의미론적 단축키에는 key를 사용하세요.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'event.which는 무엇이고 왜 더 이상 사용하지 않나요?',
|
|
18
|
+
answer:
|
|
19
|
+
'event.which는 키의 숫자 ASCII 코드를 반환하는 레거시 속성입니다. event.key와 event.code가 더 정확하고 읽기 쉬운 정보로 대체하기 때문에 현대 표준에서는 더 이상 사용되지 않는(deprecated) 속성으로 표시되어 있습니다. 교육 목적으로 이 도구에 표시됩니다.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'location 속성은 무엇을 의미하나요?',
|
|
23
|
+
answer:
|
|
24
|
+
'location 속성은 키보드에서 키가 물리적으로 어디에 위치하는지를 나타냅니다: Standard(일반 위치), Left(왼쪽 수정자 키), Right(오른쪽 수정자 키), Numpad(숫자 키패드). 예를 들어 왼쪽 Ctrl 키와 오른쪽 Ctrl 키를 구별하는 데 유용합니다.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '국제 키보드 및 QWERTY가 아닌 레이아웃에서도 작동하나요?',
|
|
28
|
+
answer:
|
|
29
|
+
'네. 이 도구는 브라우저가 키보드 설정에 대해 보고하는 내용을 그대로 표시합니다. event.code는 항상 물리적 위치의 QWERTY 이름을 반환하고, event.key는 사용자의 언어에 따른 실제 문자를 표시합니다.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '아무 키나 누르기',
|
|
36
|
+
text: '페이지에 포커스가 있는 상태에서 키보드의 아무 키나 누르면 모든 이벤트 정보를 즉시 확인할 수 있습니다.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '개별 값 복사하기',
|
|
40
|
+
text: '각 속성(event.key, event.code 등) 옆의 복사 버튼을 클릭하면 해당 값을 클립보드에 복사할 수 있습니다.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '코드 스니펫 사용하기',
|
|
44
|
+
text: '"빠른 스니펫" 섹션에서 프로젝트에 바로 붙여넣을 수 있는 JavaScript 코드 블록을 찾을 수 있습니다.',
|
|
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: 'DeveloperApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'ko',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: KeycodeUI = {
|
|
83
|
+
promptTitle: '키를 누르세요',
|
|
84
|
+
promptSubtitle: '키보드의 아무 키나 눌러서 코드를 확인하세요',
|
|
85
|
+
snippetsTitle: '빠른 스니펫',
|
|
86
|
+
btnCopy: '복사',
|
|
87
|
+
locationStandard: 'Standard',
|
|
88
|
+
locationLeft: '왼쪽',
|
|
89
|
+
locationRight: '오른쪽',
|
|
90
|
+
locationNumpad: 'Numpad',
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const content: ToolLocaleContent<KeycodeUI> = {
|
|
94
|
+
slug,
|
|
95
|
+
title,
|
|
96
|
+
description,
|
|
97
|
+
ui,
|
|
98
|
+
faqTitle: '자주 묻는 질문',
|
|
99
|
+
faq: faqData,
|
|
100
|
+
bibliographyTitle: '참고 자료 및 표준',
|
|
101
|
+
bibliography: [
|
|
102
|
+
{
|
|
103
|
+
name: 'MDN Web Docs – KeyboardEvent',
|
|
104
|
+
url: 'https://developer.mozilla.org/ko/docs/Web/API/KeyboardEvent',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'UI Events Specification (W3C) – KeyboardEvent',
|
|
108
|
+
url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'MDN – KeyboardEvent.code values',
|
|
112
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
howTo: howToData,
|
|
116
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
117
|
+
seo: [
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'JavaScript에서 키보드 이벤트 이해하기',
|
|
121
|
+
level: 2,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: '사용자가 키를 누르면 브라우저는 세 가지 이벤트를 발생시킵니다: <code>keydown</code>, <code>keypress</code>, <code>keyup</code>. 각각은 눌린 키에 대한 정보가 담긴 속성을 제공하지만, 모두 동등하거나 권장되는 것은 아닙니다.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: '키 이벤트 속성',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'grid',
|
|
134
|
+
columns: 2,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'card',
|
|
138
|
+
title: 'event.code — 물리적 키',
|
|
139
|
+
html: '<p>QWERTY 명명법을 사용하여 키보드에서 키의 <strong>물리적 위치</strong> 식별자를 반환합니다. 예를 들어 AZERTY 키보드의 "A" 키는 <code>KeyQ</code>를 반환합니다. 문자가 아닌 위치가 중요한 게임 컨트롤에 이상적입니다.</p>',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'card',
|
|
143
|
+
title: 'event.key — 생성된 문자',
|
|
144
|
+
html: '<p>언어와 활성화된 수정자에 따라 생성된 <strong>문자 값</strong>을 반환합니다. Shift+A를 누르면 <code>"A"</code>가 반환되고, Shift 없이 누르면 <code>"a"</code>가 반환됩니다. 특수 키의 경우 <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code>과 같은 이름을 반환합니다.</p>',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: '각 속성을 언제 사용해야 할까요',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
html: '게임 컨트롤(언어와 관계없이 WASD)에는 <code>event.code</code>를 사용하고, 특정 문자나 <code>Ctrl+C</code>와 같은 의미론적 키보드 단축키를 감지할 때는 <code>event.key</code>를 사용하세요.',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'paragraph',
|
|
157
|
+
html: '<code>event.which</code>와 <code>event.keyCode</code> 속성은 W3C 표준에 따라 공식적으로 <strong>더 이상 사용되지 않습니다</strong>. 최신 브라우저에서 호환성을 위해 계속 지원하지만, 새 코드에서는 사용하지 않는 것이 좋습니다.',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
};
|
|
161
|
+
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeycodeUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'keycode-nl';
|
|
6
|
+
const title = 'Toetsenbord Keycode Visualizer Online. KeyCode Inspector';
|
|
7
|
+
const description =
|
|
8
|
+
'Gratis online tool om event.key, event.code, event.which en de locatie van elke toets in realtime te bekijken. Genereert direct bruikbare JavaScript-codefragmenten.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Wat is het verschil tussen event.key en event.code?',
|
|
13
|
+
answer:
|
|
14
|
+
'event.code staat voor de fysieke toets op het toetsenbord, ongeacht de geconfigureerde taal. event.key staat voor het gegenereerde teken, dat kan veranderen als u Shift indrukt of een andere taal gebruikt. Gebruik code voor spelbesturingen; gebruik key voor tekstinvoer en semantische sneltoetsen.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Wat is event.which en waarom is het verouderd?',
|
|
18
|
+
answer:
|
|
19
|
+
'event.which is een verouderde eigenschap die een numerieke ASCII-code voor de toets teruggeeft. Het is in moderne standaarden als verouderd (deprecated) aangemerkt, omdat event.key en event.code het vervangen met nauwkeurigere en beter leesbare informatie. Het wordt in deze tool weergegeven voor educatieve doeleinden.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Wat betekent de location-eigenschap?',
|
|
23
|
+
answer:
|
|
24
|
+
'De location-eigenschap geeft aan waar de toets fysiek op het toetsenbord staat: Standard (normale positie), Left (linker modifier), Right (rechter modifier) of Numpad (numeriek toetsenbord). Het is handig om bijvoorbeeld de linker en rechter CTRL-toets van elkaar te onderscheiden.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Werkt het met internationale toetsenborden en niet-QWERTY-indelingen?',
|
|
28
|
+
answer:
|
|
29
|
+
'Ja. De tool toont precies wat de browser rapporteert voor uw toetsenbordconfiguratie. event.code geeft altijd de QWERTY-naam van de fysieke positie terug, terwijl event.key het werkelijke teken weergeeft op basis van uw taal.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Druk op een willekeurige toets',
|
|
36
|
+
text: 'Met de focus op de pagina drukt u op een willekeurige toets op het toetsenbord om direct alle gebeurtenisinformatie te zien.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Kopieer afzonderlijke waarden',
|
|
40
|
+
text: 'Klik op de kopieerknop naast elke eigenschap (event.key, event.code, enz.) om die specifieke waarde naar het klembord te kopiëren.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Gebruik de codefragmenten',
|
|
44
|
+
text: 'In de sectie "Snelle Fragmenten" vindt u JavaScript-codeblokken die u direct in uw project kunt plakken.',
|
|
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: 'DeveloperApplication',
|
|
77
|
+
operatingSystem: 'All',
|
|
78
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
79
|
+
inLanguage: 'nl',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const ui: KeycodeUI = {
|
|
83
|
+
promptTitle: 'Druk op een toets',
|
|
84
|
+
promptSubtitle: 'Een willekeurige toets op uw toetsenbord om de code te zien',
|
|
85
|
+
snippetsTitle: 'Snelle Fragmenten',
|
|
86
|
+
btnCopy: 'Kopiëren',
|
|
87
|
+
locationStandard: 'Standard',
|
|
88
|
+
locationLeft: 'Links',
|
|
89
|
+
locationRight: 'Rechts',
|
|
90
|
+
locationNumpad: 'Numpad',
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const content: ToolLocaleContent<KeycodeUI> = {
|
|
94
|
+
slug,
|
|
95
|
+
title,
|
|
96
|
+
description,
|
|
97
|
+
ui,
|
|
98
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
99
|
+
faq: faqData,
|
|
100
|
+
bibliographyTitle: 'Referenties en Standaarden',
|
|
101
|
+
bibliography: [
|
|
102
|
+
{
|
|
103
|
+
name: 'MDN Web Docs – KeyboardEvent',
|
|
104
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'UI Events Specification (W3C) – KeyboardEvent',
|
|
108
|
+
url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'MDN – KeyboardEvent.code values',
|
|
112
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
howTo: howToData,
|
|
116
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
117
|
+
seo: [
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'Toetsenbordgebeurtenissen in JavaScript begrijpen',
|
|
121
|
+
level: 2,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Wanneer een gebruiker een toets indrukt, vuurt de browser drie gebeurtenissen af: <code>keydown</code>, <code>keypress</code> en <code>keyup</code>. Elk geeft eigenschappen bloot met informatie over de ingedrukte toets, maar niet alle zijn gelijkwaardig of aanbevolen.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Eigenschappen van toetsgebeurtenissen',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'grid',
|
|
134
|
+
columns: 2,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'card',
|
|
138
|
+
title: 'event.code — De fysieke toets',
|
|
139
|
+
html: '<p>Geeft de identifier terug van de <strong>fysieke positie</strong> van de toets op het toetsenbord, met behulp van QWERTY-nomenclatuur. De "A"-toets op een AZERTY-toetsenbord geeft bijvoorbeeld <code>KeyQ</code> terug. Ideaal voor spelbesturingen waarbij de positie telt, niet het teken.</p>',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'card',
|
|
143
|
+
title: 'event.key — Het gegenereerde teken',
|
|
144
|
+
html: '<p>Geeft de <strong>tekenwaarde</strong> terug die gegenereerd wordt op basis van taal en actieve modifiers. Shift+A indrukken geeft <code>"A"</code> terug; zonder Shift geeft het <code>"a"</code>. Voor speciale toetsen geeft het namen terug zoals <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code>.</p>',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Wanneer welke eigenschap gebruiken',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
html: 'Gebruik <code>event.code</code> voor spelbesturingen (WASD ongeacht de taal) en <code>event.key</code> om specifieke tekens of semantische sneltoetsen zoals <code>Ctrl+C</code> te detecteren.',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'paragraph',
|
|
157
|
+
html: 'De eigenschappen <code>event.which</code> en <code>event.keyCode</code> zijn officieel <strong>verouderd</strong> volgens de W3C-standaard. Hoewel moderne browsers ze blijven ondersteunen voor compatibiliteit, mogen ze niet worden gebruikt in nieuwe code.',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
};
|
|
161
|
+
|