@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,161 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { KeycodeUI } from '../ui';
4
+
5
+ const slug = 'keycode-pl';
6
+ const title = 'Wizualizator Kodu Klawisza Klawiatury Online. KeyCode Inspector';
7
+ const description =
8
+ 'Darmowe narzędzie online do podglądu event.key, event.code, event.which i położenia dowolnego klawisza klawiatury w czasie rzeczywistym. Generuje gotowe do użycia fragmenty kodu JavaScript.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Jaka jest różnica między event.key a event.code?',
13
+ answer:
14
+ 'event.code reprezentuje fizyczny klawisz na klawiaturze, niezależnie od skonfigurowanego języka. event.key reprezentuje wygenerowany znak, który może się zmienić po naciśnięciu Shift lub użyciu innego języka. Do sterowania grami używaj code; do wprowadzania tekstu i semantycznych skrótów klawiszowych używaj key.',
15
+ },
16
+ {
17
+ question: 'Czym jest event.which i dlaczego jest przestarzałe?',
18
+ answer:
19
+ 'event.which to starsze właściwość zwracająca numeryczny kod ASCII klawisza. Jest oznaczone jako przestarzałe (deprecated) w nowoczesnych standardach, ponieważ event.key i event.code zastępują je dokładniejszymi i czytelniejszymi informacjami. Wyświetlane jest w tym narzędziu w celach edukacyjnych.',
20
+ },
21
+ {
22
+ question: 'Co oznacza właściwość location?',
23
+ answer:
24
+ 'Właściwość location wskazuje, gdzie klawisz jest fizycznie umieszczony na klawiaturze: Standard (normalna pozycja), Left (lewy klawisz modyfikujący), Right (prawy klawisz modyfikujący) lub Numpad (klawiatura numeryczna). Przydatne jest np. do rozróżnienia lewego i prawego klawisza CTRL.',
25
+ },
26
+ {
27
+ question: 'Czy działa z klawiaturami międzynarodowymi i układami innymi niż QWERTY?',
28
+ answer:
29
+ 'Tak. Narzędzie wyświetla dokładnie to, co przeglądarka raportuje dla Twojej konfiguracji klawiatury. event.code zawsze zwróci nazwę QWERTY fizycznej pozycji, podczas gdy event.key pokaże rzeczywisty znak zgodny z Twoim językiem.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Naciśnij dowolny klawisz',
36
+ text: 'Gdy strona ma fokus, naciśnij dowolny klawisz na klawiaturze, aby natychmiast zobaczyć wszystkie informacje o zdarzeniu.',
37
+ },
38
+ {
39
+ name: 'Kopiuj poszczególne wartości',
40
+ text: 'Kliknij przycisk kopiowania obok każdej właściwości (event.key, event.code itp.), aby skopiować tę konkretną wartość do schowka.',
41
+ },
42
+ {
43
+ name: 'Użyj fragmentów kodu',
44
+ text: 'W sekcji „Szybkie fragmenty" znajdziesz bloki kodu JavaScript gotowe do wklejenia bezpośrednio do swojego projektu.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'DeveloperApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'pl',
80
+ };
81
+
82
+ const ui: KeycodeUI = {
83
+ promptTitle: 'Naciśnij klawisz',
84
+ promptSubtitle: 'Dowolny klawisz na klawiaturze, aby zobaczyć jego kod',
85
+ snippetsTitle: 'Szybkie Fragmenty',
86
+ btnCopy: 'Kopiuj',
87
+ locationStandard: 'Standard',
88
+ locationLeft: 'Lewo',
89
+ locationRight: 'Prawo',
90
+ locationNumpad: 'Numpad',
91
+ };
92
+
93
+ export const content: ToolLocaleContent<KeycodeUI> = {
94
+ slug,
95
+ title,
96
+ description,
97
+ ui,
98
+ faqTitle: 'Często Zadawane Pytania',
99
+ faq: faqData,
100
+ bibliographyTitle: 'Referencje i Standardy',
101
+ bibliography: [
102
+ {
103
+ name: 'MDN Web Docs – KeyboardEvent',
104
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent',
105
+ },
106
+ {
107
+ name: 'UI Events Specification (W3C) – KeyboardEvent',
108
+ url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
109
+ },
110
+ {
111
+ name: 'MDN – KeyboardEvent.code values',
112
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
113
+ },
114
+ ],
115
+ howTo: howToData,
116
+ schemas: [faqSchema, howToSchema, appSchema],
117
+ seo: [
118
+ {
119
+ type: 'title',
120
+ text: 'Zrozumienie zdarzeń klawiatury w JavaScript',
121
+ level: 2,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Gdy użytkownik naciśnie klawisz, przeglądarka wyzwala trzy zdarzenia: <code>keydown</code>, <code>keypress</code> i <code>keyup</code>. Każde z nich udostępnia właściwości z informacjami o naciśniętym klawiszu, ale nie wszystkie są równoważne ani zalecane.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Właściwości zdarzeń klawiszowych',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'grid',
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'card',
138
+ title: 'event.code — Fizyczny klawisz',
139
+ html: '<p>Zwraca identyfikator <strong>fizycznej pozycji</strong> klawisza na klawiaturze, używając nomenklatury QWERTY. Na przykład klawisz „A" na klawiaturze AZERTY zwraca <code>KeyQ</code>. Idealny do sterowania grami, gdzie liczy się pozycja, a nie znak.</p>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ title: 'event.key — Wygenerowany znak',
144
+ html: '<p>Zwraca <strong>wartość znaku</strong> wygenerowanego zgodnie z językiem i aktywnymi modyfikatorami. Naciśnięcie Shift+A zwraca <code>"A"</code>; bez Shift zwraca <code>"a"</code>. Dla klawiszy specjalnych zwraca nazwy jak <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code>.</p>',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Kiedy używać każdej właściwości',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'tip',
153
+ html: 'Używaj <code>event.code</code> do sterowania grami (WASD niezależnie od języka) i <code>event.key</code> do wykrywania określonych znaków lub semantycznych skrótów klawiszowych jak <code>Ctrl+C</code>.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'Właściwości <code>event.which</code> i <code>event.keyCode</code> są oficjalnie <strong>przestarzałe</strong> zgodnie ze standardem W3C. Chociaż nowoczesne przeglądarki nadal je obsługują dla zachowania kompatybilności, nie powinny być używane w nowym kodzie.',
158
+ },
159
+ ],
160
+ };
161
+
@@ -0,0 +1,160 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { KeycodeUI } from '../ui';
4
+
5
+ const slug = 'inspecionador-codigo-tecla-teclado';
6
+ const title = 'Visualizador Online de Código de Tecla. Inspetor de Código de Tecla';
7
+ const description =
8
+ 'Ferramenta online gratuita para ver event.key, event.code, event.which e localização de qualquer tecla de teclado em tempo real. Gera snippets de código JavaScript prontos para usar.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Qual é a diferença entre event.key e event.code?',
13
+ answer:
14
+ 'event.code representa a posição física da tecla no teclado, independentemente do idioma configurado. event.key representa o carácter gerado, que pode mudar se você pressionar Shift ou usar um idioma diferente. Use code para controles de jogos; use key para entrada de texto e atalhos semânticos.',
15
+ },
16
+ {
17
+ question: 'O que é event.which e por que está deprecado?',
18
+ answer:
19
+ 'event.which é uma propriedade herdada que retorna um código ASCII numérico para a tecla. É marcada como deprecada nos padrões modernos porque event.key e event.code a substituem por informações mais precisas e legíveis. É mostrada nesta ferramenta para fins educacionais.',
20
+ },
21
+ {
22
+ question: 'O que significa a propriedade location?',
23
+ answer:
24
+ 'A propriedade location indica onde a tecla está fisicamente localizada no teclado: Padrão (posição normal), Esquerda (tecla modificadora esquerda), Direita (tecla modificadora direita) ou Teclado Numérico (teclado numérico). É útil distinguir entre as teclas CTRL esquerda e direita, por exemplo.',
25
+ },
26
+ {
27
+ question: 'Funciona com teclados internacionais e layouts não QWERTY?',
28
+ answer:
29
+ 'Sim. A ferramenta mostra exatamente o que o navegador relata para sua configuração de teclado. event.code sempre retornará o nome QWERTY da posição física, enquanto event.key mostrará o carácter real de acordo com seu idioma.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Pressione qualquer tecla',
36
+ text: 'Com o foco na página, pressione qualquer tecla do teclado para ver instantaneamente todas as informações do evento.',
37
+ },
38
+ {
39
+ name: 'Copie valores individuais',
40
+ text: 'Clique no botão de cópia ao lado de cada propriedade (event.key, event.code, etc.) para copiar esse valor específico para a área de transferência.',
41
+ },
42
+ {
43
+ name: 'Use os snippets de código',
44
+ text: 'Na seção "Quick Snippets" você encontrará blocos de código JavaScript prontos para colar diretamente em seu projeto.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'DeveloperApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'pt',
80
+ };
81
+
82
+ const ui: KeycodeUI = {
83
+ promptTitle: 'Pressione uma tecla',
84
+ promptSubtitle: 'Qualquer tecla do seu teclado para ver seu código',
85
+ snippetsTitle: 'Snippets Rápidos',
86
+ btnCopy: 'Copiar',
87
+ locationStandard: 'Padrão',
88
+ locationLeft: 'Esquerda',
89
+ locationRight: 'Direita',
90
+ locationNumpad: 'Teclado Numérico',
91
+ };
92
+
93
+ export const content: ToolLocaleContent<KeycodeUI> = {
94
+ slug,
95
+ title,
96
+ description,
97
+ ui,
98
+ faqTitle: 'Perguntas Frequentes',
99
+ faq: faqData,
100
+ bibliographyTitle: 'Referências e Padrões',
101
+ bibliography: [
102
+ {
103
+ name: 'MDN Web Docs – KeyboardEvent',
104
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent',
105
+ },
106
+ {
107
+ name: 'Especificação UI Events (W3C) – KeyboardEvent',
108
+ url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
109
+ },
110
+ {
111
+ name: 'MDN – Valores de KeyboardEvent.code',
112
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
113
+ },
114
+ ],
115
+ howTo: howToData,
116
+ schemas: [faqSchema, howToSchema, appSchema],
117
+ seo: [
118
+ {
119
+ type: 'title',
120
+ text: 'Compreendendo eventos de teclado em JavaScript',
121
+ level: 2,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Quando um usuário pressiona uma tecla, o navegador dispara três eventos: <code>keydown</code>, <code>keypress</code> e <code>keyup</code>. Cada um expõe propriedades com informações sobre a tecla pressionada, mas nem todas são equivalentes ou recomendadas.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Propriedades de eventos de tecla',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'grid',
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'card',
138
+ title: 'event.code — A tecla física',
139
+ html: '<p>Retorna o identificador da <strong>posição física</strong> da tecla no teclado, usando nomenclatura QWERTY. Por exemplo, a tecla "A" em um teclado AZERTY retorna <code>KeyQ</code>. Ideal para controles de jogos onde a posição importa, não o carácter.</p>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ title: 'event.key — O carácter gerado',
144
+ html: '<p>Retorna o <strong>valor de carácter</strong> gerado de acordo com o idioma e modificadores ativos. Pressionar Shift+A retorna <code>"A"</code>; sem Shift retorna <code>"a"</code>. Para teclas especiais, retorna nomes como <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code>.</p>',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Quando usar cada propriedade',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'tip',
153
+ html: 'Use <code>event.code</code> para controles de jogos (WASD independentemente do idioma) e <code>event.key</code> para detectar carácteres específicos ou atalhos de teclado semânticos como <code>Ctrl+C</code>.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'As propriedades <code>event.which</code> e <code>event.keyCode</code> estão oficialmente <strong>deprecadas</strong> de acordo com o padrão W3C. Embora os navegadores modernos continuem a suportá-las para compatibilidade, elas não devem ser usadas em código novo.',
158
+ },
159
+ ],
160
+ };
@@ -0,0 +1,160 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { KeycodeUI } from '../ui';
4
+
5
+ const slug = 'inspekttor-koda-klavishi';
6
+ const title = 'Онлайн Визуализатор Кода Клавиши. Инспектор Кода Ключа';
7
+ const description =
8
+ 'Бесплатный онлайн инструмент для просмотра event.key, event.code, event.which и расположения любой клавиши клавиатуры в реальном времени. Генерирует готовые к использованию сниппеты кода JavaScript.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'В чём разница между event.key и event.code?',
13
+ answer:
14
+ 'event.code представляет физическую позицию клавиши на клавиатуре, независимо от настроенного языка. event.key представляет сгенерированный символ, который может измениться, если вы нажмёте Shift или используете другой язык. Используйте code для управления игрой; используйте key для ввода текста и семантических сочетаний клавиш.',
15
+ },
16
+ {
17
+ question: 'Что такое event.which и почему это устаревшее?',
18
+ answer:
19
+ 'event.which — это устаревшее свойство, которое возвращает числовой код ASCII для клавиши. Оно помечено как устаревшее в современных стандартах, потому что event.key и event.code заменяют его более точной и читаемой информацией. Оно показано в этом инструменте в образовательных целях.',
20
+ },
21
+ {
22
+ question: 'Что означает свойство location?',
23
+ answer:
24
+ 'Свойство location указывает, где физически находится клавиша на клавиатуре: Стандартная (обычная позиция), Левая (левая клавиша-модификатор), Правая (правая клавиша-модификатор) или Цифровая клавиатура (цифровая панель). Это полезно для различия между левой и правой клавишами CTRL, например.',
25
+ },
26
+ {
27
+ question: 'Работает ли это с международными клавиатурами и раскладками не-QWERTY?',
28
+ answer:
29
+ 'Да. Инструмент показывает ровно то, что сообщает браузер для вашей конфигурации клавиатуры. event.code всегда возвращает имя QWERTY физической позиции, а event.key показывает фактический символ согласно вашему языку.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Нажмите любую клавишу',
36
+ text: 'Установив фокус на страницу, нажмите любую клавишу на клавиатуре, чтобы мгновенно увидеть всю информацию о событии.',
37
+ },
38
+ {
39
+ name: 'Копируйте отдельные значения',
40
+ text: 'Нажмите кнопку копирования рядом с каждым свойством (event.key, event.code и т. д.), чтобы скопировать это конкретное значение в буфер обмена.',
41
+ },
42
+ {
43
+ name: 'Используйте сниппеты кода',
44
+ text: 'В разделе "Quick Snippets" вы найдёте блоки кода JavaScript, готовые для вставки прямо в ваш проект.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'DeveloperApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'ru',
80
+ };
81
+
82
+ const ui: KeycodeUI = {
83
+ promptTitle: 'Нажмите клавишу',
84
+ promptSubtitle: 'Любую клавишу на клавиатуре, чтобы увидеть её код',
85
+ snippetsTitle: 'Быстрые Сниппеты',
86
+ btnCopy: 'Копировать',
87
+ locationStandard: 'Стандартная',
88
+ locationLeft: 'Левая',
89
+ locationRight: 'Правая',
90
+ locationNumpad: 'Цифровая клавиатура',
91
+ };
92
+
93
+ export const content: ToolLocaleContent<KeycodeUI> = {
94
+ slug,
95
+ title,
96
+ description,
97
+ ui,
98
+ faqTitle: 'Часто Задаваемые Вопросы',
99
+ faq: faqData,
100
+ bibliographyTitle: 'Ссылки и Стандарты',
101
+ bibliography: [
102
+ {
103
+ name: 'MDN Web Docs – KeyboardEvent',
104
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent',
105
+ },
106
+ {
107
+ name: 'Спецификация UI Events (W3C) – KeyboardEvent',
108
+ url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
109
+ },
110
+ {
111
+ name: 'MDN – Значения KeyboardEvent.code',
112
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
113
+ },
114
+ ],
115
+ howTo: howToData,
116
+ schemas: [faqSchema, howToSchema, appSchema],
117
+ seo: [
118
+ {
119
+ type: 'title',
120
+ text: 'Понимание событий клавиатуры в JavaScript',
121
+ level: 2,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Когда пользователь нажимает клавишу, браузер срабатывает три события: <code>keydown</code>, <code>keypress</code> и <code>keyup</code>. Каждое раскрывает свойства с информацией о нажатой клавише, но не все эквивалентны или рекомендуются.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Свойства событий клавиатуры',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'grid',
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'card',
138
+ title: 'event.code — Физическая клавиша',
139
+ html: '<p>Возвращает идентификатор <strong>физической позиции</strong> клавиши на клавиатуре, используя номенклатуру QWERTY. Например, клавиша "A" на клавиатуре AZERTY возвращает <code>KeyQ</code>. Идеально для управления игрой, где важна позиция, а не символ.</p>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ title: 'event.key — Сгенерированный символ',
144
+ html: '<p>Возвращает <strong>значение символа</strong>, сгенерированное в соответствии с языком и активными модификаторами. Нажатие Shift+A возвращает <code>"A"</code>; без Shift возвращает <code>"a"</code>. Для специальных клавиш возвращает названия, такие как <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code>.</p>',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Когда использовать каждое свойство',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'tip',
153
+ html: 'Используйте <code>event.code</code> для управления игрой (WASD независимо от языка) и <code>event.key</code> для обнаружения определённых символов или семантических сочетаний клавиш, таких как <code>Ctrl+C</code>.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'Свойства <code>event.which</code> и <code>event.keyCode</code> официально <strong>устаревшие</strong> согласно стандарту W3C. Хотя современные браузеры продолжают их поддерживать для совместимости, их не следует использовать в новом коде.',
158
+ },
159
+ ],
160
+ };
@@ -0,0 +1,160 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { KeycodeUI } from '../ui';
4
+
5
+ const slug = 'tangentbords-tangentkodsvisualiserare-online';
6
+ const title = 'Online Tangentbordstangentkodvisualiserare. Inspektor för Tangentkod';
7
+ const description =
8
+ 'Kostlöst onlineverktyg för att se event.key, event.code, event.which och position för vilken tangentbordstangent som helst i realtid. Genererar JavaScript-kodsnippets klara att använda.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Vad är skillnaden mellan event.key och event.code?',
13
+ answer:
14
+ 'event.code representerar tangentens fysiska position på tangentbordet, oavsett konfigurerat språk. event.key representerar den genererade tecknet, som kan ändras om du trycker på Shift eller använder ett annat språk. Använd code för spelkontroller; använd key för textinmatning och semantiska genvägar.',
15
+ },
16
+ {
17
+ question: 'Vad är event.which och varför är det föråldrat?',
18
+ answer:
19
+ 'event.which är en äldre egenskap som returnerar en numerisk ASCII-kod för tangenten. Den är markerad som föråldrad i moderna standarder eftersom event.key och event.code ersätter den med mer exakt och läsbar information. Det visas i det här verktyget för utbildningsändamål.',
20
+ },
21
+ {
22
+ question: 'Vad betyder location-egenskapen?',
23
+ answer:
24
+ 'location-egenskapen anger var tangenten är fysiskt placerad på tangentbordet: Standard (normal position), Vänster (vänstre modifiertangent), Höger (höger modifiertangent) eller Numerisk (numerisk knappsats). Det är användbart för att skilja mellan vänster och höger CTRL-tangenter, till exempel.',
25
+ },
26
+ {
27
+ question: 'Fungerar det med internationella tangentbord och inte-QWERTY-layouter?',
28
+ answer:
29
+ 'Ja. Verktyget visar exakt vad webbläsaren rapporterar för din tangentbordskonfiguration. event.code kommer alltid att returnera QWERTY-namnet för den fysiska positionen, medan event.key visar det faktiska tecknet enligt ditt språk.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Tryck valfri tangent',
36
+ text: 'Med fokus på sidan, tryck valfri tangent på tangentbordet för att omedelbar se all händelseinformation.',
37
+ },
38
+ {
39
+ name: 'Kopiera individuella värden',
40
+ text: 'Klicka kopieringsknappen bredvid varje egenskap (event.key, event.code, etc.) för att kopiera det specifika värdet till urklipp.',
41
+ },
42
+ {
43
+ name: 'Använd kodsnippets',
44
+ text: 'I avsnittet "Quick Snippets" hittar du JavaScript-kodblock klara att klistra in direkt i ditt projekt.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'DeveloperApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'sv',
80
+ };
81
+
82
+ const ui: KeycodeUI = {
83
+ promptTitle: 'Tryck en tangent',
84
+ promptSubtitle: 'Vilken tangent som helst på tangentbordet för att se dess kod',
85
+ snippetsTitle: 'Snabba Snippets',
86
+ btnCopy: 'Kopiera',
87
+ locationStandard: 'Standard',
88
+ locationLeft: 'Vänster',
89
+ locationRight: 'Höger',
90
+ locationNumpad: 'Numerisk',
91
+ };
92
+
93
+ export const content: ToolLocaleContent<KeycodeUI> = {
94
+ slug,
95
+ title,
96
+ description,
97
+ ui,
98
+ faqTitle: 'Vanliga Frågor',
99
+ faq: faqData,
100
+ bibliographyTitle: 'Referenser och Standarder',
101
+ bibliography: [
102
+ {
103
+ name: 'MDN Web Docs – KeyboardEvent',
104
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent',
105
+ },
106
+ {
107
+ name: 'UI Events Specification (W3C) – KeyboardEvent',
108
+ url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
109
+ },
110
+ {
111
+ name: 'MDN – KeyboardEvent.code values',
112
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
113
+ },
114
+ ],
115
+ howTo: howToData,
116
+ schemas: [faqSchema, howToSchema, appSchema],
117
+ seo: [
118
+ {
119
+ type: 'title',
120
+ text: 'Förstå tangentbordshändelser i JavaScript',
121
+ level: 2,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'När en användare trycker på en tangent utlöser webbläsaren tre händelser: <code>keydown</code>, <code>keypress</code> och <code>keyup</code>. Varje exponerar egenskaper med information om den trycka tangenten, men inte alla är ekvivalenta eller rekommenderade.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Tangentbordshändelsegenskaper',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'grid',
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'card',
138
+ title: 'event.code — Den fysiska tangenten',
139
+ html: '<p>Returnerar identifieraren för tangentens <strong>fysiska position</strong> på tangentbordet, med QWERTY-nomenklatur. Till exempel returnerar tangenten "A" på ett AZERTY-tangentbord <code>KeyQ</code>. Idealisk för spelkontroller där position spelar roll, inte tecknet.</p>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ title: 'event.key — Det genererade tecknet',
144
+ html: '<p>Returnerar det <strong>genererade teckenvärde</strong> enligt språk och aktiva modifierare. Att trycka Shift+A returnerar <code>"A"</code>; utan Shift returnerar <code>"a"</code>. För specialtangenter returneras namn som <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code>.</p>',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'När man ska använda varje egenskap',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'tip',
153
+ html: 'Använd <code>event.code</code> för spelkontroller (WASD oavsett språk) och <code>event.key</code> för att detektera specifika tecken eller semantiska tangentbordsgenvägar som <code>Ctrl+C</code>.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'Egenskaperna <code>event.which</code> och <code>event.keyCode</code> är officiellt <strong>föråldrade</strong> enligt W3C-standarden. Även om moderna webbläsare fortsätter att stödja dem för kompatibilitet, bör de inte användas i ny kod.',
158
+ },
159
+ ],
160
+ };