@jjlmoya/utils-developer 1.4.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/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tool/aspectRatio/i18n/de.ts +177 -0
- package/src/tool/aspectRatio/i18n/id.ts +177 -0
- package/src/tool/aspectRatio/i18n/it.ts +177 -0
- package/src/tool/aspectRatio/i18n/ja.ts +178 -0
- package/src/tool/aspectRatio/i18n/ko.ts +178 -0
- package/src/tool/aspectRatio/i18n/nl.ts +178 -0
- package/src/tool/aspectRatio/i18n/pl.ts +177 -0
- package/src/tool/aspectRatio/i18n/pt.ts +177 -0
- package/src/tool/aspectRatio/i18n/ru.ts +177 -0
- package/src/tool/aspectRatio/i18n/sv.ts +177 -0
- package/src/tool/aspectRatio/i18n/tr.ts +177 -0
- package/src/tool/aspectRatio/i18n/zh.ts +178 -0
- package/src/tool/aspectRatio/index.ts +15 -7
- package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
- package/src/tool/colorConverter/i18n/de.ts +126 -0
- package/src/tool/colorConverter/i18n/id.ts +126 -0
- package/src/tool/colorConverter/i18n/it.ts +126 -0
- package/src/tool/colorConverter/i18n/ja.ts +127 -0
- package/src/tool/colorConverter/i18n/ko.ts +127 -0
- package/src/tool/colorConverter/i18n/nl.ts +126 -0
- package/src/tool/colorConverter/i18n/pl.ts +126 -0
- package/src/tool/colorConverter/i18n/pt.ts +126 -0
- package/src/tool/colorConverter/i18n/ru.ts +126 -0
- package/src/tool/colorConverter/i18n/sv.ts +126 -0
- package/src/tool/colorConverter/i18n/tr.ts +126 -0
- package/src/tool/colorConverter/i18n/zh.ts +127 -0
- package/src/tool/colorConverter/index.ts +15 -7
- package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
- package/src/tool/cronGenerator/i18n/de.ts +192 -0
- package/src/tool/cronGenerator/i18n/es.ts +2 -1
- package/src/tool/cronGenerator/i18n/fr.ts +2 -1
- package/src/tool/cronGenerator/i18n/id.ts +192 -0
- package/src/tool/cronGenerator/i18n/it.ts +192 -0
- package/src/tool/cronGenerator/i18n/ja.ts +192 -0
- package/src/tool/cronGenerator/i18n/ko.ts +192 -0
- package/src/tool/cronGenerator/i18n/nl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pt.ts +192 -0
- package/src/tool/cronGenerator/i18n/ru.ts +192 -0
- package/src/tool/cronGenerator/i18n/sv.ts +192 -0
- package/src/tool/cronGenerator/i18n/tr.ts +192 -0
- package/src/tool/cronGenerator/i18n/zh.ts +192 -0
- package/src/tool/cronGenerator/index.ts +15 -7
- package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
- package/src/tool/cssSpecificityCalculator/index.ts +15 -7
- package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
- package/src/tool/cssToInlineConverter/index.ts +15 -7
- package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
- package/src/tool/duplicateCssRemover/index.ts +15 -7
- package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
- package/src/tool/generadorSecurityTxt/index.ts +15 -7
- package/src/tool/hashGenerator/i18n/de.ts +119 -0
- package/src/tool/hashGenerator/i18n/id.ts +119 -0
- package/src/tool/hashGenerator/i18n/it.ts +118 -0
- package/src/tool/hashGenerator/i18n/ja.ts +119 -0
- package/src/tool/hashGenerator/i18n/ko.ts +119 -0
- package/src/tool/hashGenerator/i18n/nl.ts +119 -0
- package/src/tool/hashGenerator/i18n/pl.ts +118 -0
- package/src/tool/hashGenerator/i18n/pt.ts +118 -0
- package/src/tool/hashGenerator/i18n/ru.ts +119 -0
- package/src/tool/hashGenerator/i18n/sv.ts +119 -0
- package/src/tool/hashGenerator/i18n/tr.ts +118 -0
- package/src/tool/hashGenerator/i18n/zh.ts +119 -0
- package/src/tool/hashGenerator/index.ts +15 -7
- package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
- package/src/tool/jsonFormatter/i18n/de.ts +157 -0
- package/src/tool/jsonFormatter/i18n/es.ts +2 -1
- package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
- package/src/tool/jsonFormatter/i18n/id.ts +157 -0
- package/src/tool/jsonFormatter/i18n/it.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
- package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
- package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
- package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
- package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
- package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
- package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
- package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
- package/src/tool/jsonFormatter/index.ts +15 -7
- package/src/tool/keycode/i18n/de.ts +161 -0
- package/src/tool/keycode/i18n/es.ts +2 -1
- package/src/tool/keycode/i18n/fr.ts +2 -1
- package/src/tool/keycode/i18n/id.ts +161 -0
- package/src/tool/keycode/i18n/it.ts +161 -0
- package/src/tool/keycode/i18n/ja.ts +161 -0
- package/src/tool/keycode/i18n/ko.ts +161 -0
- package/src/tool/keycode/i18n/nl.ts +161 -0
- package/src/tool/keycode/i18n/pl.ts +161 -0
- package/src/tool/keycode/i18n/pt.ts +160 -0
- package/src/tool/keycode/i18n/ru.ts +160 -0
- package/src/tool/keycode/i18n/sv.ts +160 -0
- package/src/tool/keycode/i18n/tr.ts +160 -0
- package/src/tool/keycode/i18n/zh.ts +161 -0
- package/src/tool/keycode/index.ts +15 -7
- package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
- package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
- package/src/tool/llmCostCalculator/index.ts +24 -0
- package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
- package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
- package/src/tool/mobileMockupGenerator/index.ts +24 -0
- package/src/tool/musicalTypography/i18n/de.ts +179 -0
- package/src/tool/musicalTypography/i18n/id.ts +179 -0
- package/src/tool/musicalTypography/i18n/it.ts +179 -0
- package/src/tool/musicalTypography/i18n/ja.ts +180 -0
- package/src/tool/musicalTypography/i18n/ko.ts +180 -0
- package/src/tool/musicalTypography/i18n/nl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pt.ts +101 -0
- package/src/tool/musicalTypography/i18n/ru.ts +47 -0
- package/src/tool/musicalTypography/i18n/sv.ts +29 -0
- package/src/tool/musicalTypography/i18n/tr.ts +29 -0
- package/src/tool/musicalTypography/i18n/zh.ts +30 -0
- package/src/tool/musicalTypography/index.ts +15 -7
- package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
- package/src/tool/placeholderGenerator/index.ts +24 -0
- package/src/tool/promptLibrary/i18n/de.ts +131 -0
- package/src/tool/promptLibrary/i18n/id.ts +131 -0
- package/src/tool/promptLibrary/i18n/it.ts +131 -0
- package/src/tool/promptLibrary/i18n/ja.ts +132 -0
- package/src/tool/promptLibrary/i18n/ko.ts +132 -0
- package/src/tool/promptLibrary/i18n/nl.ts +131 -0
- package/src/tool/promptLibrary/i18n/pl.ts +28 -0
- package/src/tool/promptLibrary/i18n/pt.ts +101 -0
- package/src/tool/promptLibrary/i18n/ru.ts +101 -0
- package/src/tool/promptLibrary/i18n/sv.ts +93 -0
- package/src/tool/promptLibrary/i18n/tr.ts +93 -0
- package/src/tool/promptLibrary/i18n/zh.ts +94 -0
- package/src/tool/promptLibrary/index.ts +24 -0
- package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
- package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
- package/src/tool/readabilityCalculator/index.ts +24 -0
- package/src/tool/svgSanitizer/i18n/de.ts +125 -0
- package/src/tool/svgSanitizer/i18n/id.ts +125 -0
- package/src/tool/svgSanitizer/i18n/it.ts +125 -0
- package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
- package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
- package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
- package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
- package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
- package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
- package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
- package/src/tool/svgSanitizer/index.ts +24 -0
- package/src/tool/svgToCss/i18n/de.ts +174 -0
- package/src/tool/svgToCss/i18n/id.ts +174 -0
- package/src/tool/svgToCss/i18n/it.ts +174 -0
- package/src/tool/svgToCss/i18n/ja.ts +175 -0
- package/src/tool/svgToCss/i18n/ko.ts +175 -0
- package/src/tool/svgToCss/i18n/nl.ts +174 -0
- package/src/tool/svgToCss/i18n/pl.ts +174 -0
- package/src/tool/svgToCss/i18n/pt.ts +174 -0
- package/src/tool/svgToCss/i18n/ru.ts +174 -0
- package/src/tool/svgToCss/i18n/sv.ts +174 -0
- package/src/tool/svgToCss/i18n/tr.ts +174 -0
- package/src/tool/svgToCss/i18n/zh.ts +175 -0
- package/src/tool/svgToCss/index.ts +15 -7
- package/src/tool/urlCleaner/i18n/de.ts +116 -0
- package/src/tool/urlCleaner/i18n/id.ts +116 -0
- package/src/tool/urlCleaner/i18n/it.ts +116 -0
- package/src/tool/urlCleaner/i18n/ja.ts +117 -0
- package/src/tool/urlCleaner/i18n/ko.ts +117 -0
- package/src/tool/urlCleaner/i18n/nl.ts +116 -0
- package/src/tool/urlCleaner/i18n/pl.ts +29 -0
- package/src/tool/urlCleaner/i18n/pt.ts +43 -0
- package/src/tool/urlCleaner/i18n/ru.ts +43 -0
- package/src/tool/urlCleaner/i18n/sv.ts +43 -0
- package/src/tool/urlCleaner/i18n/tr.ts +43 -0
- package/src/tool/urlCleaner/i18n/zh.ts +44 -0
- package/src/tool/urlCleaner/index.ts +24 -0
- package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
- package/src/tool/urlEncoderDecoder/index.ts +15 -7
- package/src/tool/utmGenerator/i18n/de.ts +118 -0
- package/src/tool/utmGenerator/i18n/id.ts +118 -0
- package/src/tool/utmGenerator/i18n/it.ts +118 -0
- package/src/tool/utmGenerator/i18n/ja.ts +118 -0
- package/src/tool/utmGenerator/i18n/ko.ts +118 -0
- package/src/tool/utmGenerator/i18n/nl.ts +118 -0
- package/src/tool/utmGenerator/i18n/pl.ts +117 -0
- package/src/tool/utmGenerator/i18n/pt.ts +118 -0
- package/src/tool/utmGenerator/i18n/ru.ts +118 -0
- package/src/tool/utmGenerator/i18n/sv.ts +118 -0
- package/src/tool/utmGenerator/i18n/tr.ts +117 -0
- package/src/tool/utmGenerator/i18n/zh.ts +118 -0
- package/src/tool/utmGenerator/index.ts +15 -7
- package/src/types.ts +1 -2
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UtmGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'utm-generator-it';
|
|
6
|
+
const title = 'Generatore di Parametri UTM per Google Analytics';
|
|
7
|
+
const description = 'Crea link di tracciamento precisi per le tue campagne di marketing digitale. Ottimizzato per Google Analytics e altri strumenti di analisi.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'L\'uso dei parametri UTM è dannoso per la SEO?',
|
|
12
|
+
answer: 'No, a condizione che utilizzi i tag canonical. I motori di ricerca comprendono che i parametri UTM servono per le analisi e non creano contenuti duplicati.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Dovrei usare i parametri UTM per i link interni?',
|
|
16
|
+
answer: 'No, mai. I tag UTM sui link interni interrompono la sessione utente in strumenti come Google Analytics, distorcendo i dati sul traffico.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Google Analytics distingue tra maiuscole e minuscole negli UTM?',
|
|
20
|
+
answer: 'Sì. "google", "Google" e "GOOGLE" verranno trattati come sorgenti diverse. Mantieni sempre la coerenza, preferibilmente usando solo lettere minuscole.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{ name: 'Inserisci l\'URL', text: 'Inserisci l\'URL completo del tuo sito web, includendo https://' },
|
|
26
|
+
{ name: 'Definisci la sorgente', text: 'Specifica da dove proviene il traffico (google, facebook, newsletter, ecc.)' },
|
|
27
|
+
{ name: 'Seleziona il mezzo', text: 'Scegli il tipo di canale (cpc, email, social, organic, ecc.)' },
|
|
28
|
+
{ name: 'Dai un nome alla campagna', text: 'Assegna un nome identificativo per raggruppare i tuoi sforzi di marketing' },
|
|
29
|
+
{ name: 'Copia e usa', text: 'Copia l\'URL generato e usalo nei tuoi post, annunci o firme email' },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
33
|
+
'@context': 'https://schema.org',
|
|
34
|
+
'@type': 'FAQPage',
|
|
35
|
+
mainEntity: faqData.map((item) => ({
|
|
36
|
+
'@type': 'Question',
|
|
37
|
+
name: item.question,
|
|
38
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
39
|
+
})),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
43
|
+
'@context': 'https://schema.org',
|
|
44
|
+
'@type': 'HowTo',
|
|
45
|
+
name: title,
|
|
46
|
+
description,
|
|
47
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
51
|
+
'@context': 'https://schema.org',
|
|
52
|
+
'@type': 'SoftwareApplication',
|
|
53
|
+
name: title,
|
|
54
|
+
description,
|
|
55
|
+
applicationCategory: 'UtilityApplication',
|
|
56
|
+
operatingSystem: 'All',
|
|
57
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
58
|
+
inLanguage: 'it',
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const ui: UtmGeneratorUI = {
|
|
62
|
+
labelUrl: 'URL del sito web (es. https://example.com) *',
|
|
63
|
+
labelSource: 'Sorgente campagna (es. google, newsletter) *',
|
|
64
|
+
labelMedium: 'Mezzo campagna (es. cpc, email)',
|
|
65
|
+
labelCampaign: 'Nome campagna (es. offerta_estate)',
|
|
66
|
+
labelTerm: 'Termine campagna (es. acquisto_scarpe)',
|
|
67
|
+
labelContent: 'Contenuto campagna (es. banner_superiore)',
|
|
68
|
+
labelGenerated: 'URL Generata:',
|
|
69
|
+
btnCopy: 'Copia Link',
|
|
70
|
+
btnCopied: 'Copiato!',
|
|
71
|
+
errorInvalid: 'Inserisci un URL valido',
|
|
72
|
+
errorInvalidUrl: 'URL non valido',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const content: ToolLocaleContent<UtmGeneratorUI> = {
|
|
76
|
+
slug,
|
|
77
|
+
title,
|
|
78
|
+
description,
|
|
79
|
+
ui,
|
|
80
|
+
faqTitle: 'Domande Frequenti',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: 'Riferimenti',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: 'Raccogliere i dati delle campagne con URL personalizzati - Guida di Google Analytics (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
|
|
85
|
+
{ name: 'Best Practices for Campaign URL Tagging - VWO Blog (2023)', url: 'https://vwo.com/blog/utm-tagging-best-practices/' },
|
|
86
|
+
],
|
|
87
|
+
howTo: howToData,
|
|
88
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
seo: [
|
|
90
|
+
{ type: 'title', text: 'Generatore UTM: Parametri di Tracciamento per Google Analytics', level: 2 },
|
|
91
|
+
{
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
html: 'I parametri <strong>UTM</strong> (Urchin Tracking Module) sono etichette di testo aggiunte alla fine di un URL per tracciare il traffico web. Il nostro generatore semplifica la creazione di link tracciabili per le tue campagne di marketing digitale.',
|
|
94
|
+
},
|
|
95
|
+
{ type: 'title', text: 'I 5 Pilastri di un URL Tracciabile', level: 3 },
|
|
96
|
+
{
|
|
97
|
+
type: 'list',
|
|
98
|
+
items: [
|
|
99
|
+
'<strong>Sorgente Campagna:</strong> Identifica il motore di ricerca, il social network o l\'origine del traffico. Esempio: google, newsletter, facebook.',
|
|
100
|
+
'<strong>Mezzo Campagna:</strong> Si riferisce al canale di marketing. Esempio: cpc, email, social, banner, organic.',
|
|
101
|
+
'<strong>Nome Campagna:</strong> Il nome specifico della tua campagna. Esempio: offerta_estate_2025, lancio_app_v2.',
|
|
102
|
+
'<strong>Termine Campagna:</strong> Per la ricerca a pagamento, le parole chiave per cui fai un\'offerta. Esempio: acquisto_scarpe_sportive.',
|
|
103
|
+
'<strong>Contenuto Campagna:</strong> Per i test A/B. Differenzia elementi simili all\'interno di una campagna. Esempio: header_v1, sidebar_v2.',
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{ type: 'title', text: 'Best Practice per il Tagging UTM', level: 3 },
|
|
107
|
+
{
|
|
108
|
+
type: 'list',
|
|
109
|
+
items: [
|
|
110
|
+
'<strong>Coerenza tra maiuscole e minuscole:</strong> Gli strumenti differenziano tra "Google", "GOOGLE" e "google". Usa sempre il minuscolo per evitare duplicati.',
|
|
111
|
+
'<strong>Evita gli spazi:</strong> Gli spazi diventano %20. Usa trattini (-) o underscore (_) al loro posto.',
|
|
112
|
+
'<strong>Non usare sui link interni:</strong> Il tracciamento UTM è esclusivamente per il traffico esterno. Sui link interni, interrompe la sessione e rovina le metriche chiave.',
|
|
113
|
+
'<strong>Documenta i tuoi tag:</strong> Tieni traccia di tutte le combinazioni che utilizzi per evitare incongruenze.',
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UtmGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'utm-generator';
|
|
6
|
+
const title = 'Googleアナリティクス用UTMパラメータ生成器';
|
|
7
|
+
const description = 'デジタルマーケティングキャンペーン用の正確なトラッキングリンクを作成します。Googleアナリティクスやその他の分析ツールに最適化されています。';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'UTMパラメータを使用することはSEOに悪影響を与えますか?',
|
|
12
|
+
answer: 'いいえ。カノニカル(canonical)タグを使用している限り、問題ありません。検索エンジンはUTMパラメータが分析用であることを理解しており、重複コンテンツとはなしません。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '内部リンクにUTMパラメータを使用すべきですか?',
|
|
16
|
+
answer: 'いいえ、絶対に使用しないでください。内部リンクにUTMタグを付けると、Googleアナリティクスなどのツールでユーザーセッションが途切れてしまい、トラフィックデータが歪んでしまいます。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'GoogleアナリティクスはUTMの大文字と小文字を区別しますか?',
|
|
20
|
+
answer: 'はい。「google」、「Google」、「GOOGLE」は異なるソースとして扱われます。常に一貫性を保ち、できれば小文字のみを使用することをお勧めします。',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{ name: 'URLを入力', text: 'https:// を含むウェブサイトの完全なURLを入力します。' },
|
|
26
|
+
{ name: 'ソースを定義', text: 'トラフィックの発生元を指定します(google, facebook, newsletterなど)。' },
|
|
27
|
+
{ name: 'メディアを選択', text: 'チャネルの種類を選択します(cpc, email, social, organicなど)。' },
|
|
28
|
+
{ name: 'キャンペーン名を指定', text: 'マーケティング活動をグループ化するための識別可能な名前を割り当てます。' },
|
|
29
|
+
{ name: 'コピーして使用', text: '生成されたURLをコピーして、投稿、広告、メールの署名などで使用します。' },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
33
|
+
'@context': 'https://schema.org',
|
|
34
|
+
'@type': 'FAQPage',
|
|
35
|
+
mainEntity: faqData.map((item) => ({
|
|
36
|
+
'@type': 'Question',
|
|
37
|
+
name: item.question,
|
|
38
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
39
|
+
})),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
43
|
+
'@context': 'https://schema.org',
|
|
44
|
+
'@type': 'HowTo',
|
|
45
|
+
name: title,
|
|
46
|
+
description,
|
|
47
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
51
|
+
'@context': 'https://schema.org',
|
|
52
|
+
'@type': 'SoftwareApplication',
|
|
53
|
+
name: title,
|
|
54
|
+
description,
|
|
55
|
+
applicationCategory: 'UtilityApplication',
|
|
56
|
+
operatingSystem: 'All',
|
|
57
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
58
|
+
inLanguage: 'ja',
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const ui: UtmGeneratorUI = {
|
|
62
|
+
labelUrl: 'ウェブサイトのURL (例: https://example.com) *',
|
|
63
|
+
labelSource: 'キャンペーンのソース (例: google, newsletter) *',
|
|
64
|
+
labelMedium: 'キャンペーンのメディア (例: cpc, email)',
|
|
65
|
+
labelCampaign: 'キャンペーン名 (例: summer_offer)',
|
|
66
|
+
labelTerm: 'キャンペーンのキーワード (例: buy_shoes)',
|
|
67
|
+
labelContent: 'キャンペーンの内容 (例: banner_top)',
|
|
68
|
+
labelGenerated: '生成されたURL:',
|
|
69
|
+
btnCopy: 'リンクをコピー',
|
|
70
|
+
btnCopied: 'コピー完了!',
|
|
71
|
+
errorInvalid: '有効なURLを入力してください',
|
|
72
|
+
errorInvalidUrl: '無効なURLです',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const content: ToolLocaleContent<UtmGeneratorUI> = {
|
|
76
|
+
slug,
|
|
77
|
+
title,
|
|
78
|
+
description,
|
|
79
|
+
ui,
|
|
80
|
+
faqTitle: 'よくある質問',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: '参考文献',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: 'カスタム URL を使用してキャンペーン データを収集する - Google アナリティクス ヘルプ (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
|
|
85
|
+
{ name: 'キャンペーン URL タグ付けのベスト プラクティス - VWO ブログ (2023)', url: 'https://vwo.com/blog/utm-tagging-best-practices/' },
|
|
86
|
+
],
|
|
87
|
+
howTo: howToData,
|
|
88
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
seo: [
|
|
90
|
+
{ type: 'title', text: 'UTM生成器:Googleアナリティクス用トラッキングパラメータ', level: 2 },
|
|
91
|
+
{
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
html: '<strong>UTM</strong>パラメータ(Urchin Tracking Module)は、ウェブトラフィックを追跡するためにURLの末尾に追加されるテキストラベルです。当社の生成器は、デジタルマーケティングキャンペーン用の追跡可能なリンクの作成を簡素化します。',
|
|
94
|
+
},
|
|
95
|
+
{ type: 'title', text: '追跡可能なURLの5つの要素', level: 3 },
|
|
96
|
+
{
|
|
97
|
+
type: 'list',
|
|
98
|
+
items: [
|
|
99
|
+
'<strong>キャンペーンソース:</strong>検索エンジン、ソーシャルネットワーク、またはトラフィックの発生源を特定します。例:google, newsletter, facebook。',
|
|
100
|
+
'<strong>キャンペーンメディア:</strong>マーケティングチャネルを指します。例:cpc, email, social, banner, organic。',
|
|
101
|
+
'<strong>キャンペーン名:</strong>キャンペーンの特定の名前です。例:summer_offer_2025, app_launch_v2。',
|
|
102
|
+
'<strong>キャンペーンキーワード:</strong>有料検索の場合、入札したキーワードです。例:buy_sports_shoes。',
|
|
103
|
+
'<strong>キャンペーン内容:</strong>A/Bテスト用。キャンペーン内の同様の要素を区別します。例:header_v1, sidebar_v2。',
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{ type: 'title', text: 'UTMタグ付けのベストプラクティス', level: 3 },
|
|
107
|
+
{
|
|
108
|
+
type: 'list',
|
|
109
|
+
items: [
|
|
110
|
+
'<strong>大文字小文字の一貫性:</strong>ツールは「Google」、「GOOGLE」、「google」を区別します。重複を避けるために、常に小文字を使用してください。',
|
|
111
|
+
'<strong>スペースを避ける:</strong>スペースは %20 になります。代わりにハイフン(-)やアンダースコア(_)を使用してください。',
|
|
112
|
+
'<strong>内部リンクに使用しない:</strong>UTMトラッキングは外部トラフィック専用です。内部リンクに使用するとセッションが切れ、主要な指標が損なわれます。',
|
|
113
|
+
'<strong>タグを記録する:</strong>不整合を防ぐために、使用したすべての組み合わせの記録を保存してください。',
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UtmGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'utm-generator';
|
|
6
|
+
const title = 'Google 애널리틱스용 UTM 매개변수 생성기';
|
|
7
|
+
const description = '디지털 마케팅 캠페인을 위한 정확한 추적 링크를 만드세요. Google 애널리틱스 및 기타 분석 도구에 최적화되어 있습니다.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'UTM 매개변수를 사용하는 것이 SEO에 좋지 않나요?',
|
|
12
|
+
answer: '아니요, 캐노니컬(canonical) 태그를 사용하는 한 괜찮습니다. 검색 엔진은 UTM 매개변수가 분석용임을 이해하며 중복 콘텐츠를 생성하지 않습니다.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '내부 링크에 UTM 매개변수를 사용해야 하나요?',
|
|
16
|
+
answer: '아니요, 절대 안 됩니다. 내부 링크의 UTM 태그는 Google 애널리틱스와 같은 도구에서 사용자 세션을 끊어 트래픽 데이터를 왜곡합니다.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Google 애널리틱스는 UTM에서 대소문자를 구분하나요?',
|
|
20
|
+
answer: '네. "google", "Google", "GOOGLE"은 서로 다른 소스로 처리됩니다. 항상 일관성을 유지하고 가급적 소문자만 사용하는 것이 좋습니다.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{ name: 'URL 입력', text: 'https://를 포함한 웹사이트의 전체 URL을 입력합니다.' },
|
|
26
|
+
{ name: '소스 정의', text: '트래픽이 어디에서 오는지 지정합니다(google, facebook, newsletter 등).' },
|
|
27
|
+
{ name: '매체 선택', text: '채널 유형을 선택합니다(cpc, email, social, organic 등).' },
|
|
28
|
+
{ name: '캠페인 이름 지정', text: '마케팅 활동을 그룹화하기 위해 식별 가능한 이름을 할당합니다.' },
|
|
29
|
+
{ name: '복사 및 사용', text: '생성된 URL을 복사하여 게시물, 광고 또는 이메일 서명에 사용합니다.' },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
33
|
+
'@context': 'https://schema.org',
|
|
34
|
+
'@type': 'FAQPage',
|
|
35
|
+
mainEntity: faqData.map((item) => ({
|
|
36
|
+
'@type': 'Question',
|
|
37
|
+
name: item.question,
|
|
38
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
39
|
+
})),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
43
|
+
'@context': 'https://schema.org',
|
|
44
|
+
'@type': 'HowTo',
|
|
45
|
+
name: title,
|
|
46
|
+
description,
|
|
47
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
51
|
+
'@context': 'https://schema.org',
|
|
52
|
+
'@type': 'SoftwareApplication',
|
|
53
|
+
name: title,
|
|
54
|
+
description,
|
|
55
|
+
applicationCategory: 'UtilityApplication',
|
|
56
|
+
operatingSystem: 'All',
|
|
57
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
58
|
+
inLanguage: 'ko',
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const ui: UtmGeneratorUI = {
|
|
62
|
+
labelUrl: '웹사이트 URL (예: https://example.com) *',
|
|
63
|
+
labelSource: '캠페인 소스 (예: google, newsletter) *',
|
|
64
|
+
labelMedium: '캠페인 매체 (예: cpc, email)',
|
|
65
|
+
labelCampaign: '캠페인 이름 (예: summer_offer)',
|
|
66
|
+
labelTerm: '캠페인 키워드 (예: buy_shoes)',
|
|
67
|
+
labelContent: '캠페인 콘텐츠 (예: banner_top)',
|
|
68
|
+
labelGenerated: '생성된 URL:',
|
|
69
|
+
btnCopy: '링크 복사',
|
|
70
|
+
btnCopied: '복사됨!',
|
|
71
|
+
errorInvalid: '유효한 URL을 입력하세요',
|
|
72
|
+
errorInvalidUrl: '잘못된 URL',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const content: ToolLocaleContent<UtmGeneratorUI> = {
|
|
76
|
+
slug,
|
|
77
|
+
title,
|
|
78
|
+
description,
|
|
79
|
+
ui,
|
|
80
|
+
faqTitle: '자주 묻는 질문',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: '참고 자료',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: '맞춤 URL을 사용하여 캠페인 데이터 수집 - Google 애널리틱스 고객센터 (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
|
|
85
|
+
{ name: '캠페인 URL 태깅을 위한 모범 사례 - VWO 블로그 (2023)', url: 'https://vwo.com/blog/utm-tagging-best-practices/' },
|
|
86
|
+
],
|
|
87
|
+
howTo: howToData,
|
|
88
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
seo: [
|
|
90
|
+
{ type: 'title', text: 'UTM 생성기: Google 애널리틱스용 추적 매개변수', level: 2 },
|
|
91
|
+
{
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
html: '<strong>UTM</strong> 매개변수(Urchin Tracking Module)는 웹 트래픽을 추적하기 위해 URL 끝에 추가되는 텍스트 라벨입니다. 당사의 생성기는 디지털 마케팅 캠페인을 위한 추적 가능한 링크 생성을 간소화합니다.',
|
|
94
|
+
},
|
|
95
|
+
{ type: 'title', text: '추적 가능한 URL의 5가지 핵심 요소', level: 3 },
|
|
96
|
+
{
|
|
97
|
+
type: 'list',
|
|
98
|
+
items: [
|
|
99
|
+
'<strong>캠페인 소스:</strong> 검색 엔진, 소셜 네트워크 또는 트래픽 소스를 식별합니다. 예: google, newsletter, facebook.',
|
|
100
|
+
'<strong>캠페인 매체:</strong> 마케팅 채널을 나타냅니다. 예: cpc, email, social, banner, organic.',
|
|
101
|
+
'<strong>캠페인 이름:</strong> 캠페인의 특정 이름입니다. 예: summer_offer_2025, app_launch_v2.',
|
|
102
|
+
'<strong>캠페인 키워드:</strong> 유료 검색의 경우 입찰한 키워드입니다. 예: buy_sports_shoes.',
|
|
103
|
+
'<strong>캠페인 콘텐츠:</strong> A/B 테스트용입니다. 캠페인 내에서 유사한 요소를 구별합니다. 예: header_v1, sidebar_v2.',
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{ type: 'title', text: 'UTM 태깅 모범 사례', level: 3 },
|
|
107
|
+
{
|
|
108
|
+
type: 'list',
|
|
109
|
+
items: [
|
|
110
|
+
'<strong>대소문자 일관성:</strong> 도구는 "Google", "GOOGLE" 및 "google"을 구분합니다. 중복을 피하기 위해 항상 소문자를 사용하세요.',
|
|
111
|
+
'<strong>공백 피하기:</strong> 공백은 %20이 됩니다. 대신 하이픈(-) 또는 언더바(_)를 사용하세요.',
|
|
112
|
+
'<strong>내부 링크에 사용 금지:</strong> UTM 추적은 외부 트래픽 전용입니다. 내부 링크에 사용하면 세션이 끊기고 주요 지표가 훼손됩니다.',
|
|
113
|
+
'<strong>태그 문서화:</strong> 불일치를 방지하기 위해 사용하는 모든 조합의 기록을 보관하세요.',
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UtmGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'utm-generator-nl';
|
|
6
|
+
const title = 'UTM Parameter Generator voor Google Analytics';
|
|
7
|
+
const description = 'Maak nauwkeurige tracking-links voor uw digitale marketingcampagnes. Geoptimaliseerd voor Google Analytics en andere analysetools.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Is het gebruik van UTM-parameters slecht voor SEO?',
|
|
12
|
+
answer: 'Nee, zolang u canonical tags gebruikt. Zoekmachines begrijpen dat UTM-parameters voor analytics zijn en creëren geen dubbele inhoud.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Moet ik UTM-parameters gebruiken voor interne links?',
|
|
16
|
+
answer: 'Nee, nooit. UTM-tags op interne links verbreken de gebruikerssessie in tools zoals Google Analytics, waardoor uw verkeersgegevens worden vervormd.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Maakt Google Analytics onderscheid tussen hoofdletters en kleine letters in UTM?',
|
|
20
|
+
answer: 'Ja. "google", "Google" en "GOOGLE" worden als verschillende bronnen behandeld. Zorg altijd voor consistentie, bij voorkeur door alleen kleine letters te gebruiken.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{ name: 'Voer de URL in', text: 'Voer de volledige URL van uw website in, inclusief https://' },
|
|
26
|
+
{ name: 'Definieer de bron', text: 'Geef aan waar het verkeer vandaan komt (google, facebook, nieuwsbrief, etc.)' },
|
|
27
|
+
{ name: 'Selecteer het medium', text: 'Kies het type kanaal (cpc, e-mail, social, organisch, etc.)' },
|
|
28
|
+
{ name: 'Geef uw campagne een naam', text: 'Wijs een herkenbare naam toe om uw marketinginspanningen te groeperen' },
|
|
29
|
+
{ name: 'Kopieer en gebruik', text: 'Kopieer de gegenereerde URL en gebruik deze in uw berichten, advertenties of e-mailhandtekeningen' },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
33
|
+
'@context': 'https://schema.org',
|
|
34
|
+
'@type': 'FAQPage',
|
|
35
|
+
mainEntity: faqData.map((item) => ({
|
|
36
|
+
'@type': 'Question',
|
|
37
|
+
name: item.question,
|
|
38
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
39
|
+
})),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
43
|
+
'@context': 'https://schema.org',
|
|
44
|
+
'@type': 'HowTo',
|
|
45
|
+
name: title,
|
|
46
|
+
description,
|
|
47
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
51
|
+
'@context': 'https://schema.org',
|
|
52
|
+
'@type': 'SoftwareApplication',
|
|
53
|
+
name: title,
|
|
54
|
+
description,
|
|
55
|
+
applicationCategory: 'UtilityApplication',
|
|
56
|
+
operatingSystem: 'All',
|
|
57
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
58
|
+
inLanguage: 'nl',
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const ui: UtmGeneratorUI = {
|
|
62
|
+
labelUrl: 'Website URL (bijv. https://example.com) *',
|
|
63
|
+
labelSource: 'Campagnebron (bijv. google, nieuwsbrief) *',
|
|
64
|
+
labelMedium: 'Campagnemedium (bijv. cpc, e-mail)',
|
|
65
|
+
labelCampaign: 'Campagnenaam (bijv. zomer_aanbieding)',
|
|
66
|
+
labelTerm: 'Campagneterm (bijv. schoenen_kopen)',
|
|
67
|
+
labelContent: 'Campagne-inhoud (bijv. banner_bovenaan)',
|
|
68
|
+
labelGenerated: 'Gegenereerde URL:',
|
|
69
|
+
btnCopy: 'Link kopiëren',
|
|
70
|
+
btnCopied: 'Gekopieerd!',
|
|
71
|
+
errorInvalid: 'Voer een geldige URL in',
|
|
72
|
+
errorInvalidUrl: 'Ongeldige URL',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const content: ToolLocaleContent<UtmGeneratorUI> = {
|
|
76
|
+
slug,
|
|
77
|
+
title,
|
|
78
|
+
description,
|
|
79
|
+
ui,
|
|
80
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: 'Referenties',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: 'Campagnegegevens verzamelen met aangepaste URL\'s - Help over Google Analytics (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
|
|
85
|
+
{ name: 'Best Practices voor Campaign URL Tagging - VWO Blog (2023)', url: 'https://vwo.com/blog/utm-tagging-best-practices/' },
|
|
86
|
+
],
|
|
87
|
+
howTo: howToData,
|
|
88
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
seo: [
|
|
90
|
+
{ type: 'title', text: 'UTM Generator: Tracking Parameters voor Google Analytics', level: 2 },
|
|
91
|
+
{
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
html: '<strong>UTM-parameters</strong> (Urchin Tracking Module) zijn tekstlabels die aan het einde van een URL worden toegevoegd om webverkeer te volgen. Onze generator vereenvoudigt het maken van traceerbare links voor uw digitale marketingcampagnes.',
|
|
94
|
+
},
|
|
95
|
+
{ type: 'title', text: 'De 5 pijlers van een traceerbare URL', level: 3 },
|
|
96
|
+
{
|
|
97
|
+
type: 'list',
|
|
98
|
+
items: [
|
|
99
|
+
'<strong>Campagnebron:</strong> Identificeert de zoekmachine, het sociale netwerk of de herkomst van het verkeer. Voorbeeld: google, nieuwsbrief, facebook.',
|
|
100
|
+
'<strong>Campagnemedium:</strong> Verwijst naar het marketingkanaal. Voorbeeld: cpc, e-mail, social, banner, organisch.',
|
|
101
|
+
'<strong>Campagnenaam:</strong> De specifieke naam van uw campagne. Voorbeeld: zomeraanbieding_2025, app_launch_v2.',
|
|
102
|
+
'<strong>Campagneterm:</strong> Voor betaalde zoekopdrachten, de zoekwoorden waarop u biedt. Voorbeeld: sportschoenen_kopen.',
|
|
103
|
+
'<strong>Campagne-inhoud:</strong> Voor A/B-tests. Maakt onderscheid tussen vergelijkbare elementen binnen een campagne. Voorbeeld: header_v1, sidebar_v2.',
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{ type: 'title', text: 'Best Practices voor UTM Tagging', level: 3 },
|
|
107
|
+
{
|
|
108
|
+
type: 'list',
|
|
109
|
+
items: [
|
|
110
|
+
'<strong>Consistentie in hoofdlettergebruik:</strong> Tools maken onderscheid tussen "Google", "GOOGLE" en "google". Gebruik altijd kleine letters om duplicaten te voorkomen.',
|
|
111
|
+
'<strong>Vermijd spaties:</strong> Spaties worden %20. Gebruik in plaats daarvan streepjes (-) of underscores (_).',
|
|
112
|
+
'<strong>Niet gebruiken op interne links:</strong> UTM-tracking is uitsluitend voor extern verkeer. Op interne links verbreekt het de sessie en verpest het belangrijke statistieken.',
|
|
113
|
+
'<strong>Documenteer uw tags:</strong> Houd een overzicht bij van alle combinaties die u gebruikt om inconsistenties te voorkomen.',
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { UtmGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'generator-utm';
|
|
6
|
+
const title = 'Generator parametrów UTM dla Google Analytics';
|
|
7
|
+
const description = 'Twórz precyzyjne linki śledzące dla swoich cyfrowych kampanii marketingowych. Zoptymalizowany dla Google Analytics i innych narzędzi analitycznych.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Czy używanie parametrów UTM jest złe dla SEO?',
|
|
12
|
+
answer: 'Nie, o ile używasz tagów kanonicznych. Wyszukiwarki rozumieją, że parametry UTM służą do analityki i nie tworzą duplikatu treści.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Czy powinienem używać parametrów UTM w linkach wewnętrznych?',
|
|
16
|
+
answer: 'Nie, nigdy. Tagi UTM w linkach wewnętrznych przerywają sesję użytkownika w narzędziach takich jak Google Analytics, zniekształcając dane o ruchu.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Czy Google Analytics rozróżnia wielkość liter w UTM?',
|
|
20
|
+
answer: 'Tak. „google”, „Google” i „GOOGLE” będą traktowane jako różne źródła. Zawsze zachowuj spójność, najlepiej używając tylko małych liter.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToData = [
|
|
25
|
+
{ name: 'Wpisz adres URL', text: 'Wprowadź pełny adres URL swojej witryny, w tym https://' },
|
|
26
|
+
{ name: 'Zdefiniuj źródło', text: 'Określ, skąd pochodzi ruch (google, facebook, newsletter itp.)' },
|
|
27
|
+
{ name: 'Wybierz medium', text: 'Wybierz typ kanału (cpc, e-mail, social, organic itp.)' },
|
|
28
|
+
{ name: 'Nazwij swoją kampanię', text: 'Przypisz identyfikowalną nazwę, aby pogrupować swoje działania marketingowe' },
|
|
29
|
+
{ name: 'Skopiuj i używaj', text: 'Skopiuj wygenerowany adres URL i używaj go w swoich postach, reklamach lub podpisach e-mail' },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
33
|
+
'@context': 'https://schema.org',
|
|
34
|
+
'@type': 'FAQPage',
|
|
35
|
+
mainEntity: faqData.map((item) => ({
|
|
36
|
+
'@type': 'Question',
|
|
37
|
+
name: item.question,
|
|
38
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
39
|
+
})),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
43
|
+
'@context': 'https://schema.org',
|
|
44
|
+
'@type': 'HowTo',
|
|
45
|
+
name: title,
|
|
46
|
+
description,
|
|
47
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
51
|
+
'@context': 'https://schema.org',
|
|
52
|
+
'@type': 'SoftwareApplication',
|
|
53
|
+
name: title,
|
|
54
|
+
description,
|
|
55
|
+
applicationCategory: 'UtilityApplication',
|
|
56
|
+
operatingSystem: 'All',
|
|
57
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
58
|
+
inLanguage: 'pl',
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const ui: UtmGeneratorUI = {
|
|
62
|
+
labelUrl: 'Adres URL witryny (np. https://example.com) *',
|
|
63
|
+
labelSource: 'Źródło kampanii (np. google, newsletter) *',
|
|
64
|
+
labelMedium: 'Medium kampanii (np. cpc, email)',
|
|
65
|
+
labelCampaign: 'Nazwa kampanii (np. oferta_letnia)',
|
|
66
|
+
labelTerm: 'Termin kampanii (np. kup_buty)',
|
|
67
|
+
labelContent: 'Treść kampanii (np. banner_top)',
|
|
68
|
+
labelGenerated: 'Wygenerowany adres URL:',
|
|
69
|
+
btnCopy: 'Kopiuj link',
|
|
70
|
+
btnCopied: 'Skopiowano!',
|
|
71
|
+
errorInvalid: 'Wpisz prawidłowy adres URL',
|
|
72
|
+
errorInvalidUrl: 'Nieprawidłowy adres URL',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const content: ToolLocaleContent<UtmGeneratorUI> = {
|
|
76
|
+
slug,
|
|
77
|
+
title,
|
|
78
|
+
description,
|
|
79
|
+
ui,
|
|
80
|
+
faqTitle: 'Często zadawane pytania',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: 'Referencje',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: 'Gromadzenie danych kampanii za pomocą niestandardowych adresów URL — Pomoc Google Analytics (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
|
|
85
|
+
{ name: 'Najlepsze praktyki tagowania adresów URL kampanii — Blog VWO (2023)', url: 'https://vwo.com/blog/utm-tagging-best-practices/' },
|
|
86
|
+
],
|
|
87
|
+
howTo: howToData,
|
|
88
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
89
|
+
seo: [
|
|
90
|
+
{ type: 'title', text: 'Generator UTM: parametry śledzenia dla Google Analytics', level: 2 },
|
|
91
|
+
{
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
html: 'Parametry <strong>UTM</strong> (Urchin Tracking Module) to etykiety tekstowe dodawane na końcu adresu URL w celu śledzenia ruchu w sieci. Nasz generator upraszcza tworzenie śledzonych linków dla Twoich cyfrowych kampanii marketingowych.',
|
|
94
|
+
},
|
|
95
|
+
{ type: 'title', text: '5 filarów śledzonego adresu URL', level: 3 },
|
|
96
|
+
{
|
|
97
|
+
type: 'list',
|
|
98
|
+
items: [
|
|
99
|
+
'<strong>Źródło kampanii:</strong> Identyfikuje wyszukiwarkę, sieć społecznościową lub pochodzenie ruchu. Przykład: google, newsletter, facebook.',
|
|
100
|
+
'<strong>Medium kampanii:</strong> Odnosi się do kanału marketingowego. Przykład: cpc, e-mail, social, banner, organic.',
|
|
101
|
+
'<strong>Nazwa kampanii:</strong> Konkretna nazwa Twojej kampanii. Przykład: oferta_letnia_2025, app_launch_v2.',
|
|
102
|
+
'<strong>Termin kampanii:</strong> W przypadku wyszukiwania płatnego — słowa kluczowe, na które licytujesz. Przykład: kup_buty_sportowe.',
|
|
103
|
+
'<strong>Treść kampanii:</strong> Do testów A/B. Rozróżnia podobne elementy w ramach kampanii. Przykład: header_v1, sidebar_v2.',
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{ type: 'title', text: 'Najlepsze praktyki tagowania UTM', level: 3 },
|
|
107
|
+
{
|
|
108
|
+
type: 'list',
|
|
109
|
+
items: [
|
|
110
|
+
'<strong>Spójność wielkości liter:</strong> Narzędzia rozróżniają „Google”, „GOOGLE” i „google”. Zawsze używaj małych liter, aby uniknąć duplikatów.',
|
|
111
|
+
'<strong>Unikaj spacji:</strong> Spacje zmieniają się w %20. Zamiast nich używaj łączników (-) lub podkreśleń (_).',
|
|
112
|
+
'<strong>Nie używaj w linkach wewnętrznych:</strong> Śledzenie UTM służy wyłącznie do ruchu zewnętrznego. W linkach wewnętrznych przerywa sesję i psuje kluczowe wskaźniki.',
|
|
113
|
+
'<strong>Dokumentuj swoje tagi:</strong> Prowadź rejestr wszystkich używanych kombinacji, aby zapobiec niespójnościom.',
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
};
|