@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.
Files changed (339) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +34 -0
  3. package/src/category/i18n/id.ts +34 -0
  4. package/src/category/i18n/it.ts +34 -0
  5. package/src/category/i18n/ja.ts +34 -0
  6. package/src/category/i18n/ko.ts +34 -0
  7. package/src/category/i18n/nl.ts +34 -0
  8. package/src/category/i18n/pl.ts +34 -0
  9. package/src/category/i18n/pt.ts +34 -0
  10. package/src/category/i18n/ru.ts +34 -0
  11. package/src/category/i18n/sv.ts +34 -0
  12. package/src/category/i18n/tr.ts +34 -0
  13. package/src/category/i18n/zh.ts +34 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/index.ts +12 -0
  16. package/src/tests/faq_count.test.ts +1 -1
  17. package/src/tests/i18n_coverage.test.ts +36 -0
  18. package/src/tests/locale_completeness.test.ts +2 -2
  19. package/src/tests/slug_uniqueness.test.ts +81 -0
  20. package/src/tool/aspectRatio/i18n/de.ts +177 -0
  21. package/src/tool/aspectRatio/i18n/id.ts +177 -0
  22. package/src/tool/aspectRatio/i18n/it.ts +177 -0
  23. package/src/tool/aspectRatio/i18n/ja.ts +178 -0
  24. package/src/tool/aspectRatio/i18n/ko.ts +178 -0
  25. package/src/tool/aspectRatio/i18n/nl.ts +178 -0
  26. package/src/tool/aspectRatio/i18n/pl.ts +177 -0
  27. package/src/tool/aspectRatio/i18n/pt.ts +177 -0
  28. package/src/tool/aspectRatio/i18n/ru.ts +177 -0
  29. package/src/tool/aspectRatio/i18n/sv.ts +177 -0
  30. package/src/tool/aspectRatio/i18n/tr.ts +177 -0
  31. package/src/tool/aspectRatio/i18n/zh.ts +178 -0
  32. package/src/tool/aspectRatio/index.ts +15 -7
  33. package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
  34. package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
  35. package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
  36. package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
  37. package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
  38. package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
  39. package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
  40. package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
  41. package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
  42. package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
  43. package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
  44. package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
  45. package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
  46. package/src/tool/colorConverter/i18n/de.ts +126 -0
  47. package/src/tool/colorConverter/i18n/id.ts +126 -0
  48. package/src/tool/colorConverter/i18n/it.ts +126 -0
  49. package/src/tool/colorConverter/i18n/ja.ts +127 -0
  50. package/src/tool/colorConverter/i18n/ko.ts +127 -0
  51. package/src/tool/colorConverter/i18n/nl.ts +126 -0
  52. package/src/tool/colorConverter/i18n/pl.ts +126 -0
  53. package/src/tool/colorConverter/i18n/pt.ts +126 -0
  54. package/src/tool/colorConverter/i18n/ru.ts +126 -0
  55. package/src/tool/colorConverter/i18n/sv.ts +126 -0
  56. package/src/tool/colorConverter/i18n/tr.ts +126 -0
  57. package/src/tool/colorConverter/i18n/zh.ts +127 -0
  58. package/src/tool/colorConverter/index.ts +15 -7
  59. package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
  60. package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
  61. package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
  62. package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
  63. package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
  64. package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
  65. package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
  66. package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
  67. package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
  68. package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
  69. package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
  70. package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
  71. package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
  72. package/src/tool/cronGenerator/i18n/de.ts +192 -0
  73. package/src/tool/cronGenerator/i18n/es.ts +2 -1
  74. package/src/tool/cronGenerator/i18n/fr.ts +2 -1
  75. package/src/tool/cronGenerator/i18n/id.ts +192 -0
  76. package/src/tool/cronGenerator/i18n/it.ts +192 -0
  77. package/src/tool/cronGenerator/i18n/ja.ts +192 -0
  78. package/src/tool/cronGenerator/i18n/ko.ts +192 -0
  79. package/src/tool/cronGenerator/i18n/nl.ts +192 -0
  80. package/src/tool/cronGenerator/i18n/pl.ts +192 -0
  81. package/src/tool/cronGenerator/i18n/pt.ts +192 -0
  82. package/src/tool/cronGenerator/i18n/ru.ts +192 -0
  83. package/src/tool/cronGenerator/i18n/sv.ts +192 -0
  84. package/src/tool/cronGenerator/i18n/tr.ts +192 -0
  85. package/src/tool/cronGenerator/i18n/zh.ts +192 -0
  86. package/src/tool/cronGenerator/index.ts +15 -7
  87. package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
  88. package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
  89. package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
  90. package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
  91. package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
  92. package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
  93. package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
  94. package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
  95. package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
  96. package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
  97. package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
  98. package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
  99. package/src/tool/cssSpecificityCalculator/index.ts +15 -7
  100. package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
  101. package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
  102. package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
  103. package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
  104. package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
  105. package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
  106. package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
  107. package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
  108. package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
  109. package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
  110. package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
  111. package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
  112. package/src/tool/cssToInlineConverter/index.ts +15 -7
  113. package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
  114. package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
  115. package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
  116. package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
  117. package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
  118. package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
  119. package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
  120. package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
  121. package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
  122. package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
  123. package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
  124. package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
  125. package/src/tool/duplicateCssRemover/index.ts +15 -7
  126. package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
  127. package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
  128. package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
  129. package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
  130. package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
  131. package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
  132. package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
  133. package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
  134. package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
  135. package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
  136. package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
  137. package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
  138. package/src/tool/generadorSecurityTxt/index.ts +15 -7
  139. package/src/tool/hashGenerator/i18n/de.ts +119 -0
  140. package/src/tool/hashGenerator/i18n/id.ts +119 -0
  141. package/src/tool/hashGenerator/i18n/it.ts +118 -0
  142. package/src/tool/hashGenerator/i18n/ja.ts +119 -0
  143. package/src/tool/hashGenerator/i18n/ko.ts +119 -0
  144. package/src/tool/hashGenerator/i18n/nl.ts +119 -0
  145. package/src/tool/hashGenerator/i18n/pl.ts +118 -0
  146. package/src/tool/hashGenerator/i18n/pt.ts +118 -0
  147. package/src/tool/hashGenerator/i18n/ru.ts +119 -0
  148. package/src/tool/hashGenerator/i18n/sv.ts +119 -0
  149. package/src/tool/hashGenerator/i18n/tr.ts +118 -0
  150. package/src/tool/hashGenerator/i18n/zh.ts +119 -0
  151. package/src/tool/hashGenerator/index.ts +15 -7
  152. package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
  153. package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
  154. package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
  155. package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
  156. package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
  157. package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
  158. package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
  159. package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
  160. package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
  161. package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
  162. package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
  163. package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
  164. package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
  165. package/src/tool/jsonFormatter/i18n/de.ts +157 -0
  166. package/src/tool/jsonFormatter/i18n/es.ts +2 -1
  167. package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
  168. package/src/tool/jsonFormatter/i18n/id.ts +157 -0
  169. package/src/tool/jsonFormatter/i18n/it.ts +156 -0
  170. package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
  171. package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
  172. package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
  173. package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
  174. package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
  175. package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
  176. package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
  177. package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
  178. package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
  179. package/src/tool/jsonFormatter/index.ts +15 -7
  180. package/src/tool/keycode/i18n/de.ts +161 -0
  181. package/src/tool/keycode/i18n/es.ts +2 -1
  182. package/src/tool/keycode/i18n/fr.ts +2 -1
  183. package/src/tool/keycode/i18n/id.ts +161 -0
  184. package/src/tool/keycode/i18n/it.ts +161 -0
  185. package/src/tool/keycode/i18n/ja.ts +161 -0
  186. package/src/tool/keycode/i18n/ko.ts +161 -0
  187. package/src/tool/keycode/i18n/nl.ts +161 -0
  188. package/src/tool/keycode/i18n/pl.ts +161 -0
  189. package/src/tool/keycode/i18n/pt.ts +160 -0
  190. package/src/tool/keycode/i18n/ru.ts +160 -0
  191. package/src/tool/keycode/i18n/sv.ts +160 -0
  192. package/src/tool/keycode/i18n/tr.ts +160 -0
  193. package/src/tool/keycode/i18n/zh.ts +161 -0
  194. package/src/tool/keycode/index.ts +15 -7
  195. package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
  196. package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
  197. package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
  198. package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
  199. package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
  200. package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
  201. package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
  202. package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
  203. package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
  204. package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
  205. package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
  206. package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
  207. package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
  208. package/src/tool/llmCostCalculator/index.ts +24 -0
  209. package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
  210. package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
  211. package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
  212. package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
  213. package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
  214. package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
  215. package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
  216. package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
  217. package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
  218. package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
  219. package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
  220. package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
  221. package/src/tool/mobileMockupGenerator/index.ts +24 -0
  222. package/src/tool/musicalTypography/i18n/de.ts +179 -0
  223. package/src/tool/musicalTypography/i18n/id.ts +179 -0
  224. package/src/tool/musicalTypography/i18n/it.ts +179 -0
  225. package/src/tool/musicalTypography/i18n/ja.ts +180 -0
  226. package/src/tool/musicalTypography/i18n/ko.ts +180 -0
  227. package/src/tool/musicalTypography/i18n/nl.ts +179 -0
  228. package/src/tool/musicalTypography/i18n/pl.ts +179 -0
  229. package/src/tool/musicalTypography/i18n/pt.ts +101 -0
  230. package/src/tool/musicalTypography/i18n/ru.ts +47 -0
  231. package/src/tool/musicalTypography/i18n/sv.ts +29 -0
  232. package/src/tool/musicalTypography/i18n/tr.ts +29 -0
  233. package/src/tool/musicalTypography/i18n/zh.ts +30 -0
  234. package/src/tool/musicalTypography/index.ts +15 -7
  235. package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
  236. package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
  237. package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
  238. package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
  239. package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
  240. package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
  241. package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
  242. package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
  243. package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
  244. package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
  245. package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
  246. package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
  247. package/src/tool/placeholderGenerator/index.ts +24 -0
  248. package/src/tool/promptLibrary/i18n/de.ts +131 -0
  249. package/src/tool/promptLibrary/i18n/id.ts +131 -0
  250. package/src/tool/promptLibrary/i18n/it.ts +131 -0
  251. package/src/tool/promptLibrary/i18n/ja.ts +132 -0
  252. package/src/tool/promptLibrary/i18n/ko.ts +132 -0
  253. package/src/tool/promptLibrary/i18n/nl.ts +131 -0
  254. package/src/tool/promptLibrary/i18n/pl.ts +28 -0
  255. package/src/tool/promptLibrary/i18n/pt.ts +101 -0
  256. package/src/tool/promptLibrary/i18n/ru.ts +101 -0
  257. package/src/tool/promptLibrary/i18n/sv.ts +93 -0
  258. package/src/tool/promptLibrary/i18n/tr.ts +93 -0
  259. package/src/tool/promptLibrary/i18n/zh.ts +94 -0
  260. package/src/tool/promptLibrary/index.ts +24 -0
  261. package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
  262. package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
  263. package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
  264. package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
  265. package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
  266. package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
  267. package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
  268. package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
  269. package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
  270. package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
  271. package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
  272. package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
  273. package/src/tool/readabilityCalculator/index.ts +24 -0
  274. package/src/tool/svgSanitizer/i18n/de.ts +125 -0
  275. package/src/tool/svgSanitizer/i18n/id.ts +125 -0
  276. package/src/tool/svgSanitizer/i18n/it.ts +125 -0
  277. package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
  278. package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
  279. package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
  280. package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
  281. package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
  282. package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
  283. package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
  284. package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
  285. package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
  286. package/src/tool/svgSanitizer/index.ts +24 -0
  287. package/src/tool/svgToCss/i18n/de.ts +174 -0
  288. package/src/tool/svgToCss/i18n/id.ts +174 -0
  289. package/src/tool/svgToCss/i18n/it.ts +174 -0
  290. package/src/tool/svgToCss/i18n/ja.ts +175 -0
  291. package/src/tool/svgToCss/i18n/ko.ts +175 -0
  292. package/src/tool/svgToCss/i18n/nl.ts +174 -0
  293. package/src/tool/svgToCss/i18n/pl.ts +174 -0
  294. package/src/tool/svgToCss/i18n/pt.ts +174 -0
  295. package/src/tool/svgToCss/i18n/ru.ts +174 -0
  296. package/src/tool/svgToCss/i18n/sv.ts +174 -0
  297. package/src/tool/svgToCss/i18n/tr.ts +174 -0
  298. package/src/tool/svgToCss/i18n/zh.ts +175 -0
  299. package/src/tool/svgToCss/index.ts +15 -7
  300. package/src/tool/urlCleaner/i18n/de.ts +116 -0
  301. package/src/tool/urlCleaner/i18n/id.ts +116 -0
  302. package/src/tool/urlCleaner/i18n/it.ts +116 -0
  303. package/src/tool/urlCleaner/i18n/ja.ts +117 -0
  304. package/src/tool/urlCleaner/i18n/ko.ts +117 -0
  305. package/src/tool/urlCleaner/i18n/nl.ts +116 -0
  306. package/src/tool/urlCleaner/i18n/pl.ts +29 -0
  307. package/src/tool/urlCleaner/i18n/pt.ts +43 -0
  308. package/src/tool/urlCleaner/i18n/ru.ts +43 -0
  309. package/src/tool/urlCleaner/i18n/sv.ts +43 -0
  310. package/src/tool/urlCleaner/i18n/tr.ts +43 -0
  311. package/src/tool/urlCleaner/i18n/zh.ts +44 -0
  312. package/src/tool/urlCleaner/index.ts +24 -0
  313. package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
  314. package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
  315. package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
  316. package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
  317. package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
  318. package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
  319. package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
  320. package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
  321. package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
  322. package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
  323. package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
  324. package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
  325. package/src/tool/urlEncoderDecoder/index.ts +15 -7
  326. package/src/tool/utmGenerator/i18n/de.ts +118 -0
  327. package/src/tool/utmGenerator/i18n/id.ts +118 -0
  328. package/src/tool/utmGenerator/i18n/it.ts +118 -0
  329. package/src/tool/utmGenerator/i18n/ja.ts +118 -0
  330. package/src/tool/utmGenerator/i18n/ko.ts +118 -0
  331. package/src/tool/utmGenerator/i18n/nl.ts +118 -0
  332. package/src/tool/utmGenerator/i18n/pl.ts +117 -0
  333. package/src/tool/utmGenerator/i18n/pt.ts +118 -0
  334. package/src/tool/utmGenerator/i18n/ru.ts +118 -0
  335. package/src/tool/utmGenerator/i18n/sv.ts +118 -0
  336. package/src/tool/utmGenerator/i18n/tr.ts +117 -0
  337. package/src/tool/utmGenerator/i18n/zh.ts +118 -0
  338. package/src/tool/utmGenerator/index.ts +15 -7
  339. 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-pt';
6
+ const title = 'Gerador de Parâmetros UTM para o Google Analytics';
7
+ const description = 'Crie links de rastreamento precisos para as suas campanhas de marketing digital. Otimizado para o Google Analytics e outras ferramentas de análise.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'O uso de parâmetros UTM é ruim para o SEO?',
12
+ answer: 'Não, desde que você use tags canônicas. Os mecanismos de busca entendem que os parâmetros UTM são para análise e não criam conteúdo duplicado.',
13
+ },
14
+ {
15
+ question: 'Devo usar parâmetros UTM para links internos?',
16
+ answer: 'Não, nunca. Tags UTM em links internos quebram a sessão do usuário em ferramentas como o Google Analytics, distorcendo os seus dados de tráfego.',
17
+ },
18
+ {
19
+ question: 'O Google Analytics distingue entre maiúsculas e minúsculas no UTM?',
20
+ answer: 'Sim. "google", "Google" e "GOOGLE" serão tratados como fontes diferentes. Mantenha sempre a consistência, de preferência usando apenas letras minúsculas.',
21
+ },
22
+ ];
23
+
24
+ const howToData = [
25
+ { name: 'Insira a URL', text: 'Insira a URL completa do seu site, incluindo https://' },
26
+ { name: 'Defina a fonte', text: 'Especifique de onde vem o tráfego (google, facebook, newsletter, etc.)' },
27
+ { name: 'Selecione o meio', text: 'Escolha o tipo de canal (cpc, e-mail, social, orgânico, etc.)' },
28
+ { name: 'Dê um nome à sua campanha', text: 'Atribua um nome identificável para agrupar os seus esforços de marketing' },
29
+ { name: 'Copie e use', text: 'Copie a URL gerada e use-a nas suas postagens, anúncios ou assinaturas de 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: 'pt',
59
+ };
60
+
61
+ const ui: UtmGeneratorUI = {
62
+ labelUrl: 'URL do site (ex: https://example.com) *',
63
+ labelSource: 'Fonte da campanha (ex: google, newsletter) *',
64
+ labelMedium: 'Meio da campanha (ex: cpc, e-mail)',
65
+ labelCampaign: 'Nome da campanha (ex: oferta_verao)',
66
+ labelTerm: 'Termo da campanha (ex: comprar_sapatos)',
67
+ labelContent: 'Conteúdo da campanha (ex: banner_superior)',
68
+ labelGenerated: 'URL Gerada:',
69
+ btnCopy: 'Copiar Link',
70
+ btnCopied: 'Copiado!',
71
+ errorInvalid: 'Insira uma URL válida',
72
+ errorInvalidUrl: 'URL inválida',
73
+ };
74
+
75
+ export const content: ToolLocaleContent<UtmGeneratorUI> = {
76
+ slug,
77
+ title,
78
+ description,
79
+ ui,
80
+ faqTitle: 'Perguntas Frequentes',
81
+ faq: faqData,
82
+ bibliographyTitle: 'Referências',
83
+ bibliography: [
84
+ { name: 'Coletar dados de campanha com URLs personalizadas - Ajuda do Google Analytics (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
85
+ { name: 'Melhores práticas para marcação de URL de campanha - 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: 'Gerador UTM: Parâmetros de Rastreamento para o Google Analytics', level: 2 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Os parâmetros <strong>UTM</strong> (Urchin Tracking Module) são etiquetas de texto adicionadas ao final de uma URL para rastrear o tráfego da web. Nosso gerador simplifica a criação de links rastreáveis para as suas campanhas de marketing digital.',
94
+ },
95
+ { type: 'title', text: 'Os 5 Pilares de uma URL Rastreável', level: 3 },
96
+ {
97
+ type: 'list',
98
+ items: [
99
+ '<strong>Fonte da Campanha:</strong> Identifica o mecanismo de busca, a rede social ou a origem do tráfego. Exemplo: google, newsletter, facebook.',
100
+ '<strong>Meio da Campanha:</strong> Refere-se ao canal de marketing. Exemplo: cpc, e-mail, social, banner, orgânico.',
101
+ '<strong>Nome da Campanha:</strong> O nome específico da sua campanha. Exemplo: oferta_verao_2025, lancamento_app_v2.',
102
+ '<strong>Termo da Campanha:</strong> Para buscas pagas, as palavras-chave pelas quais você deu um lance. Exemplo: comprar_sapatos_esportivos.',
103
+ '<strong>Conteúdo da Campanha:</strong> Para testes A/B. Diferencia elementos semelhantes dentro de uma campanha. Exemplo: cabecalho_v1, lateral_v2.',
104
+ ],
105
+ },
106
+ { type: 'title', text: 'Melhores Práticas para Marcação UTM', level: 3 },
107
+ {
108
+ type: 'list',
109
+ items: [
110
+ '<strong>Consistência de caixa:</strong> As ferramentas diferenciam entre "Google", "GOOGLE" e "google". Use sempre letras minúsculas para evitar duplicatas.',
111
+ '<strong>Evite espaços:</strong> Espaços tornam-se %20. Em vez disso, use hífens (-) ou sublinhados (_).',
112
+ '<strong>Não use em links internos:</strong> O rastreamento UTM é exclusivo para tráfego externo. Em links internos, ele quebra a sessão e prejudica as métricas principais.',
113
+ '<strong>Documente as suas tags:</strong> Mantenha um registro de todas as combinações que você usa para evitar inconsistências.',
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-ru';
6
+ const title = 'Генератор параметров UTM для Google Analytics';
7
+ const description = 'Создавайте точные ссылки для отслеживания ваших цифровых маркетинговых кампаний. Оптимизировано для Google Analytics и других инструментов аналитики.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Вредно ли использование параметров UTM для SEO?',
12
+ answer: 'Нет, если вы используете канонические теги. Поисковые системы понимают, что параметры UTM предназначены для аналитики и не создают дублированного контента.',
13
+ },
14
+ {
15
+ question: 'Должен ли я использовать параметры UTM для внутренних ссылок?',
16
+ answer: 'Нет, никогда. Теги UTM на внутренних ссылках прерывают сеанс пользователя в таких инструментах, как Google Analytics, искажая данные о трафике.',
17
+ },
18
+ {
19
+ question: 'Различает ли Google Analytics регистр в UTM?',
20
+ answer: 'Да. «google», «Google» и «GOOGLE» будут рассматриваться как разные источники. Всегда соблюдайте единообразие, предпочтительно используя только строчные буквы.',
21
+ },
22
+ ];
23
+
24
+ const howToData = [
25
+ { name: 'Введите URL', text: 'Введите полный URL вашего веб-сайта, включая https://' },
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: 'ru',
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 Analytics (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 Analytics', level: 2 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Параметры <strong>UTM</strong> (Urchin Tracking Module) — это текстовые метки, добавляемые в конец URL-адреса для отслеживания веб-трафика. Наш генератор упрощает создание ссылок с отслеживанием для ваших цифровых маркетинговых кампаний.',
94
+ },
95
+ { type: 'title', text: '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-sv';
6
+ const title = 'UTM parametergenerator för Google Analytics';
7
+ const description = 'Skapa exakta spårningslänkar för dina digitala marknadsföringskampanjer. Optimerad för Google Analytics och andra analysverktyg.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Är det dåligt för SEO att använda UTM-parametrar?',
12
+ answer: 'Nej, så länge du använder kanoniska taggar (canonical tags). Sökmotorer förstår att UTM-parametrar är för analys och skapar inte duplicerat innehåll.',
13
+ },
14
+ {
15
+ question: 'Bör jag använda UTM-parametrar för interna länkar?',
16
+ answer: 'Nej, aldrig. UTM-taggar på interna länkar bryter användarsessionen i verktyg som Google Analytics, vilket förvränger dina trafikdata.',
17
+ },
18
+ {
19
+ question: 'Skiljer Google Analytics på stora och små bokstäver i UTM?',
20
+ answer: 'Ja. "google", "Google" och "GOOGLE" kommer att behandlas som olika källor. Var alltid konsekvent, använd helst endast små bokstäver.',
21
+ },
22
+ ];
23
+
24
+ const howToData = [
25
+ { name: 'Ange URL', text: 'Ange den kompletta webbadressen till din webbplats, inklusive https://' },
26
+ { name: 'Definiera källan', text: 'Ange var trafiken kommer ifrån (google, facebook, nyhetsbrev, etc.)' },
27
+ { name: 'Välj medium', text: 'Välj typ av kanal (cpc, e-post, socialt, organiskt, etc.)' },
28
+ { name: 'Namnge din kampanj', text: 'Tilldela ett identifierbart namn för att gruppera dina marknadsföringsinsatser' },
29
+ { name: 'Kopiera och använd', text: 'Kopiera den genererade webbadressen och använd den i dina inlägg, annonser eller e-postsignaturer' },
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: 'sv',
59
+ };
60
+
61
+ const ui: UtmGeneratorUI = {
62
+ labelUrl: 'Webbplats-URL (t.ex. https://example.com) *',
63
+ labelSource: 'Kampanjkälla (t.ex. google, newsletter) *',
64
+ labelMedium: 'Kampanjmedium (t.ex. cpc, email)',
65
+ labelCampaign: 'Kampanjnamn (t.ex. sommar_erbjudande)',
66
+ labelTerm: 'Kampanjterm (t.ex. köpa_skor)',
67
+ labelContent: 'Kampanjinnehåll (t.ex. banner_top)',
68
+ labelGenerated: 'Genererad URL:',
69
+ btnCopy: 'Kopiera länk',
70
+ btnCopied: 'Kopierad!',
71
+ errorInvalid: 'Ange en giltig URL',
72
+ errorInvalidUrl: 'Ogiltig URL',
73
+ };
74
+
75
+ export const content: ToolLocaleContent<UtmGeneratorUI> = {
76
+ slug,
77
+ title,
78
+ description,
79
+ ui,
80
+ faqTitle: 'Vanliga frågor',
81
+ faq: faqData,
82
+ bibliographyTitle: 'Referenser',
83
+ bibliography: [
84
+ { name: 'Samla in kampanjdata med anpassade webbadresser - Hjälp för Google Analytics (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
85
+ { name: 'Bästa praxis för taggning av kampanj-URL - 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: Spårningsparametrar för Google Analytics', level: 2 },
91
+ {
92
+ type: 'paragraph',
93
+ html: '<strong>UTM</strong>-parametrar (Urchin Tracking Module) är textetiketter som läggs till i slutet av en URL för att spåra webbtrafik. Vår generator förenklar skapandet av spårbara länkar för dina digitala marknadsföringskampanjer.',
94
+ },
95
+ { type: 'title', text: 'De 5 pelarna i en spårbar URL', level: 3 },
96
+ {
97
+ type: 'list',
98
+ items: [
99
+ '<strong>Kampanjkälla:</strong> Identifierar sökmotorn, det sociala nätverket eller trafikkällan. Exempel: google, newsletter, facebook.',
100
+ '<strong>Kampanjmedium:</strong> Avser marknadsföringskanalen. Exempel: cpc, email, social, banner, organic.',
101
+ '<strong>Kampanjnamn:</strong> Det specifika namnet på din kampanj. Exempel: sommarerbjudande_2025, app_launch_v2.',
102
+ '<strong>Kampanjterm:</strong> För betalda sökningar, de sökord du bjuder på. Exempel: köpa_sportskor.',
103
+ '<strong>Kampanjinnehåll:</strong> För A/B-tester. Särskiljer liknande element inom en kampanj. Exempel: header_v1, sidebar_v2.',
104
+ ],
105
+ },
106
+ { type: 'title', text: 'Bästa praxis för UTM-taggning', level: 3 },
107
+ {
108
+ type: 'list',
109
+ items: [
110
+ '<strong>Konsekvent skiftläge:</strong> Verktygen skiljer på "Google", "GOOGLE" och "google". Använd alltid små bokstäver för att undvika dubbletter.',
111
+ '<strong>Undvik mellanslag:</strong> Mellanslag blir %20. Använd bindestreck (-) eller understreck (_) istället.',
112
+ '<strong>Använd inte på interna länkar:</strong> UTM-spårning är uteslutande för extern trafik. På interna länkar bryter det sessionen och förstör viktiga mätvärden.',
113
+ '<strong>Dokumentera dina taggar:</strong> För logg över alla kombinationer du använder för att förhindra inkonsekvenser.',
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 = 'utm-olusturucu';
6
+ const title = 'Google Analytics için UTM Parametre Oluşturucu';
7
+ const description = 'Dijital pazarlama kampanyalarınız için hassas izleme bağlantıları oluşturun. Google Analytics ve diğer analiz araçları için optimize edilmiştir.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'UTM parametrelerini kullanmak SEO için kötü müdür?',
12
+ answer: 'Hayır, kanonik (canonical) etiketler kullandığınız sürece sorun olmaz. Arama motorları UTM parametrelerinin analiz amaçlı olduğunu anlar ve yinelenen içerik oluşturmaz.',
13
+ },
14
+ {
15
+ question: 'Dahili bağlantılar için UTM parametreleri kullanmalı mıyım?',
16
+ answer: 'Hayır, asla. Dahili bağlantılardaki UTM etiketleri, Google Analytics gibi araçlarda kullanıcı oturumunu sonlandırarak trafik verilerinizi bozar.',
17
+ },
18
+ {
19
+ question: 'Google Analytics, UTM\'deki büyük ve küçük harfleri ayırt eder mi?',
20
+ answer: 'Evet. "google", "Google" ve "GOOGLE" farklı kaynaklar olarak değerlendirilecektir. Her zaman tutarlılığı koruyun, tercihen sadece küçük harf kullanın.',
21
+ },
22
+ ];
23
+
24
+ const howToData = [
25
+ { name: 'URL\'yi girin', text: 'https:// dahil olmak üzere web sitenizin tam URL\'sini girin' },
26
+ { name: 'Kaynağı tanımlayın', text: 'Trafiğin nereden geldiğini belirtin (google, facebook, newsletter vb.)' },
27
+ { name: 'Mecrayı seçin', text: 'Kanal türünü seçin (cpc, e-posta, sosyal, organik vb.)' },
28
+ { name: 'Kampanyanızı adlandırın', text: 'Pazarlama çabalarınızı gruplandırmak için tanımlanabilir bir ad atayın' },
29
+ { name: 'Kopyalayın ve kullanın', text: 'Oluşturulan URL\'yi kopyalayın ve gönderilerinizde, reklamlarınızda veya e-posta imzalarınızda kullanın' },
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: 'tr',
59
+ };
60
+
61
+ const ui: UtmGeneratorUI = {
62
+ labelUrl: 'Web sitesi URL\'si (ör. https://example.com) *',
63
+ labelSource: 'Kampanya kaynağı (ör. google, newsletter) *',
64
+ labelMedium: 'Kampanya mecrası (ör. cpc, e-posta)',
65
+ labelCampaign: 'Kampanya adı (ör. yaz_teklifi)',
66
+ labelTerm: 'Kampanya terimi (ör. ayakkabi_satin_al)',
67
+ labelContent: 'Kampanya içeriği (ör. banner_ust)',
68
+ labelGenerated: 'Oluşturulan URL:',
69
+ btnCopy: 'Bağlantıyı Kopyala',
70
+ btnCopied: 'Kopyalandı!',
71
+ errorInvalid: 'Geçerli bir URL girin',
72
+ errorInvalidUrl: 'Geçersiz URL',
73
+ };
74
+
75
+ export const content: ToolLocaleContent<UtmGeneratorUI> = {
76
+ slug,
77
+ title,
78
+ description,
79
+ ui,
80
+ faqTitle: 'Sıkça Sorulan Sorular',
81
+ faq: faqData,
82
+ bibliographyTitle: 'Referanslar',
83
+ bibliography: [
84
+ { name: 'Özel URL\'lerle kampanya verilerini toplama - Google Analytics Yardımı (2024)', url: 'https://support.google.com/analytics/answer/1033863' },
85
+ { name: 'Kampanya URL Etiketleme için En İyi Uygulamalar - 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 Oluşturucu: Google Analytics için İzleme Parametreleri', level: 2 },
91
+ {
92
+ type: 'paragraph',
93
+ html: '<strong>UTM</strong> parametreleri (Urchin Tracking Module), web trafiğini izlemek için bir URL\'nin sonuna eklenen metin etiketleridir. Oluşturucumuz, dijital pazarlama kampanyalarınız için izlenebilir bağlantılar oluşturmayı basitleştirir.',
94
+ },
95
+ { type: 'title', text: 'İzlenebilir Bir URL\'nin 5 Temel Taşı', level: 3 },
96
+ {
97
+ type: 'list',
98
+ items: [
99
+ '<strong>Kampanya Kaynağı:</strong> Arama motorunu, sosyal ağı veya trafik kaynağını tanımlar. Örnek: google, newsletter, facebook.',
100
+ '<strong>Kampanya Mecrası:</strong> Pazarlama kanalını ifade eder. Örnek: cpc, e-posta, sosyal, banner, organik.',
101
+ '<strong>Kampanya Adı:</strong> Kampanyanızın özel adı. Örnek: yaz_teklifi_2025, uygulama_lansmani_v2.',
102
+ '<strong>Kampanya Terimi:</strong> Ücretli aramalar için, teklif verdiğiniz anahtar kelimeler. Örnek: spor_ayakkabi_satin_al.',
103
+ '<strong>Kampanya İçeriği:</strong> A/B testleri için. Bir kampanya içindeki benzer öğeleri birbirinden ayırır. Örnek: header_v1, sidebar_v2.',
104
+ ],
105
+ },
106
+ { type: 'title', text: 'UTM Etiketleme için En İyi Uygulamalar', level: 3 },
107
+ {
108
+ type: 'list',
109
+ items: [
110
+ '<strong>Harf duyarlılığı tutarlılığı:</strong> Araçlar "Google", "GOOGLE" ve "google"ı farklılaştırır. Yinelenen verileri önlemek için her zaman küçük harf kullanın.',
111
+ '<strong>Boşluklardan kaçının:</strong> Boşluklar %20 olur. Bunun yerine tire (-) veya alt çizgi (_) kullanın.',
112
+ '<strong>Dahili bağlantılarda kullanmayın:</strong> UTM izleme yalnızca harici trafik içindir. Dahili bağlantılarda kullanımı oturumu sonlandırır ve temel metrikleri bozar.',
113
+ '<strong>Etiketlerinizi belgeleyin:</strong> Tutarsızlıkları önlemek için kullandığınız tüm kombinasyonların kaydını tutun.',
114
+ ],
115
+ },
116
+ ],
117
+ };
@@ -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 Analytics UTM 参数生成器平衡';
7
+ const description = '为您的数字营销活动创建精确的追踪链接。针对 Google Analytics 和其他分析工具进行了优化。';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '使用 UTM 参数对 SEO 有影响吗?',
12
+ answer: '没有,只要您使用规范标签(canonical tags)即可。搜索引擎了解 UTM 参数用于分析,不会将其视为重复内容。',
13
+ },
14
+ {
15
+ question: '我应该在内部链接中使用 UTM 参数吗?',
16
+ answer: '不,绝对不要。在内部链接上使用 UTM 标签会破坏 Google Analytics 等工具中的用户会话,从而导致您的流量数据失真。',
17
+ },
18
+ {
19
+ question: 'Google Analytics 在 UTM 中区分大小写吗?',
20
+ answer: '是的。"google"、"Google" 和 "GOOGLE" 会被视为不同的来源。请始终保持一致,建议仅使用小写字母。',
21
+ },
22
+ ];
23
+
24
+ const howToData = [
25
+ { name: '输入 URL', text: '输入您网站的完整 URL,包括 https://' },
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: 'zh',
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 Analytics 帮助 (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 Analytics 的追踪参数', 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
+
@@ -6,10 +6,6 @@ import type { UtmGeneratorUI } from './ui';
6
6
 
7
7
  export type UtmGeneratorLocaleContent = ToolLocaleContent<UtmGeneratorUI>;
8
8
 
9
- import { content as es } from './i18n/es';
10
- import { content as en } from './i18n/en';
11
- import { content as fr } from './i18n/fr';
12
-
13
9
  export const utmGenerator: DeveloperToolEntry<UtmGeneratorUI> = {
14
10
  id: 'utm-generator',
15
11
  icons: {
@@ -17,9 +13,21 @@ export const utmGenerator: DeveloperToolEntry<UtmGeneratorUI> = {
17
13
  fg: 'mdi:tag-multiple',
18
14
  },
19
15
  i18n: {
20
- es: async () => es,
21
- en: async () => en,
22
- fr: async () => fr,
16
+ de: async () => (await import('./i18n/de')).content,
17
+ en: async () => (await import('./i18n/en')).content,
18
+ es: async () => (await import('./i18n/es')).content,
19
+ fr: async () => (await import('./i18n/fr')).content,
20
+ id: async () => (await import('./i18n/id')).content,
21
+ it: async () => (await import('./i18n/it')).content,
22
+ ja: async () => (await import('./i18n/ja')).content,
23
+ ko: async () => (await import('./i18n/ko')).content,
24
+ nl: async () => (await import('./i18n/nl')).content,
25
+ pl: async () => (await import('./i18n/pl')).content,
26
+ pt: async () => (await import('./i18n/pt')).content,
27
+ ru: async () => (await import('./i18n/ru')).content,
28
+ sv: async () => (await import('./i18n/sv')).content,
29
+ tr: async () => (await import('./i18n/tr')).content,
30
+ zh: async () => (await import('./i18n/zh')).content,
23
31
  },
24
32
  };
25
33
 
package/src/types.ts CHANGED
@@ -4,8 +4,7 @@ import type { WithContext, Thing } from 'schema-dts';
4
4
  export type { SEOSection };
5
5
 
6
6
  export type KnownLocale =
7
- | 'ar' | 'da' | 'de' | 'en' | 'es' | 'fi'
8
- | 'fr' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
7
+ | 'de' | 'en' | 'es' | 'fr' | 'id' | 'it' | 'ja' | 'ko' | 'nl'
9
8
  | 'pl' | 'pt' | 'ru' | 'sv' | 'tr' | 'zh';
10
9
 
11
10
  export interface FAQItem {