@jjlmoya/utils-developer 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) 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/tests/faq_count.test.ts +1 -1
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +2 -2
  18. package/src/tests/slug_uniqueness.test.ts +81 -0
  19. package/src/tool/aspectRatio/i18n/de.ts +177 -0
  20. package/src/tool/aspectRatio/i18n/id.ts +177 -0
  21. package/src/tool/aspectRatio/i18n/it.ts +177 -0
  22. package/src/tool/aspectRatio/i18n/ja.ts +178 -0
  23. package/src/tool/aspectRatio/i18n/ko.ts +178 -0
  24. package/src/tool/aspectRatio/i18n/nl.ts +178 -0
  25. package/src/tool/aspectRatio/i18n/pl.ts +177 -0
  26. package/src/tool/aspectRatio/i18n/pt.ts +177 -0
  27. package/src/tool/aspectRatio/i18n/ru.ts +177 -0
  28. package/src/tool/aspectRatio/i18n/sv.ts +177 -0
  29. package/src/tool/aspectRatio/i18n/tr.ts +177 -0
  30. package/src/tool/aspectRatio/i18n/zh.ts +178 -0
  31. package/src/tool/aspectRatio/index.ts +15 -7
  32. package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
  33. package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
  34. package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
  35. package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
  36. package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
  37. package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
  38. package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
  39. package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
  40. package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
  41. package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
  42. package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
  43. package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
  44. package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
  45. package/src/tool/colorConverter/i18n/de.ts +126 -0
  46. package/src/tool/colorConverter/i18n/id.ts +126 -0
  47. package/src/tool/colorConverter/i18n/it.ts +126 -0
  48. package/src/tool/colorConverter/i18n/ja.ts +127 -0
  49. package/src/tool/colorConverter/i18n/ko.ts +127 -0
  50. package/src/tool/colorConverter/i18n/nl.ts +126 -0
  51. package/src/tool/colorConverter/i18n/pl.ts +126 -0
  52. package/src/tool/colorConverter/i18n/pt.ts +126 -0
  53. package/src/tool/colorConverter/i18n/ru.ts +126 -0
  54. package/src/tool/colorConverter/i18n/sv.ts +126 -0
  55. package/src/tool/colorConverter/i18n/tr.ts +126 -0
  56. package/src/tool/colorConverter/i18n/zh.ts +127 -0
  57. package/src/tool/colorConverter/index.ts +15 -7
  58. package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
  59. package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
  60. package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
  61. package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
  62. package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
  63. package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
  64. package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
  65. package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
  66. package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
  67. package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
  68. package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
  69. package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
  70. package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
  71. package/src/tool/cronGenerator/i18n/de.ts +192 -0
  72. package/src/tool/cronGenerator/i18n/es.ts +2 -1
  73. package/src/tool/cronGenerator/i18n/fr.ts +2 -1
  74. package/src/tool/cronGenerator/i18n/id.ts +192 -0
  75. package/src/tool/cronGenerator/i18n/it.ts +192 -0
  76. package/src/tool/cronGenerator/i18n/ja.ts +192 -0
  77. package/src/tool/cronGenerator/i18n/ko.ts +192 -0
  78. package/src/tool/cronGenerator/i18n/nl.ts +192 -0
  79. package/src/tool/cronGenerator/i18n/pl.ts +192 -0
  80. package/src/tool/cronGenerator/i18n/pt.ts +192 -0
  81. package/src/tool/cronGenerator/i18n/ru.ts +192 -0
  82. package/src/tool/cronGenerator/i18n/sv.ts +192 -0
  83. package/src/tool/cronGenerator/i18n/tr.ts +192 -0
  84. package/src/tool/cronGenerator/i18n/zh.ts +192 -0
  85. package/src/tool/cronGenerator/index.ts +15 -7
  86. package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
  87. package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
  88. package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
  89. package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
  90. package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
  91. package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
  92. package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
  93. package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
  94. package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
  95. package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
  96. package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
  97. package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
  98. package/src/tool/cssSpecificityCalculator/index.ts +15 -7
  99. package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
  100. package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
  101. package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
  102. package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
  103. package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
  104. package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
  105. package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
  106. package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
  107. package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
  108. package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
  109. package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
  110. package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
  111. package/src/tool/cssToInlineConverter/index.ts +15 -7
  112. package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
  113. package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
  114. package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
  115. package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
  116. package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
  117. package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
  118. package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
  119. package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
  120. package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
  121. package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
  122. package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
  123. package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
  124. package/src/tool/duplicateCssRemover/index.ts +15 -7
  125. package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
  126. package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
  127. package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
  128. package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
  129. package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
  130. package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
  131. package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
  132. package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
  133. package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
  134. package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
  135. package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
  136. package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
  137. package/src/tool/generadorSecurityTxt/index.ts +15 -7
  138. package/src/tool/hashGenerator/i18n/de.ts +119 -0
  139. package/src/tool/hashGenerator/i18n/id.ts +119 -0
  140. package/src/tool/hashGenerator/i18n/it.ts +118 -0
  141. package/src/tool/hashGenerator/i18n/ja.ts +119 -0
  142. package/src/tool/hashGenerator/i18n/ko.ts +119 -0
  143. package/src/tool/hashGenerator/i18n/nl.ts +119 -0
  144. package/src/tool/hashGenerator/i18n/pl.ts +118 -0
  145. package/src/tool/hashGenerator/i18n/pt.ts +118 -0
  146. package/src/tool/hashGenerator/i18n/ru.ts +119 -0
  147. package/src/tool/hashGenerator/i18n/sv.ts +119 -0
  148. package/src/tool/hashGenerator/i18n/tr.ts +118 -0
  149. package/src/tool/hashGenerator/i18n/zh.ts +119 -0
  150. package/src/tool/hashGenerator/index.ts +15 -7
  151. package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
  152. package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
  153. package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
  154. package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
  155. package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
  156. package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
  157. package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
  158. package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
  159. package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
  160. package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
  161. package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
  162. package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
  163. package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
  164. package/src/tool/jsonFormatter/i18n/de.ts +157 -0
  165. package/src/tool/jsonFormatter/i18n/es.ts +2 -1
  166. package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
  167. package/src/tool/jsonFormatter/i18n/id.ts +157 -0
  168. package/src/tool/jsonFormatter/i18n/it.ts +156 -0
  169. package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
  170. package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
  171. package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
  172. package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
  173. package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
  174. package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
  175. package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
  176. package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
  177. package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
  178. package/src/tool/jsonFormatter/index.ts +15 -7
  179. package/src/tool/keycode/i18n/de.ts +161 -0
  180. package/src/tool/keycode/i18n/es.ts +2 -1
  181. package/src/tool/keycode/i18n/fr.ts +2 -1
  182. package/src/tool/keycode/i18n/id.ts +161 -0
  183. package/src/tool/keycode/i18n/it.ts +161 -0
  184. package/src/tool/keycode/i18n/ja.ts +161 -0
  185. package/src/tool/keycode/i18n/ko.ts +161 -0
  186. package/src/tool/keycode/i18n/nl.ts +161 -0
  187. package/src/tool/keycode/i18n/pl.ts +161 -0
  188. package/src/tool/keycode/i18n/pt.ts +160 -0
  189. package/src/tool/keycode/i18n/ru.ts +160 -0
  190. package/src/tool/keycode/i18n/sv.ts +160 -0
  191. package/src/tool/keycode/i18n/tr.ts +160 -0
  192. package/src/tool/keycode/i18n/zh.ts +161 -0
  193. package/src/tool/keycode/index.ts +15 -7
  194. package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
  195. package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
  196. package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
  197. package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
  198. package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
  199. package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
  200. package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
  201. package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
  202. package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
  203. package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
  204. package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
  205. package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
  206. package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
  207. package/src/tool/llmCostCalculator/index.ts +24 -0
  208. package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
  209. package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
  210. package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
  211. package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
  212. package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
  213. package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
  214. package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
  215. package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
  216. package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
  217. package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
  218. package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
  219. package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
  220. package/src/tool/mobileMockupGenerator/index.ts +24 -0
  221. package/src/tool/musicalTypography/i18n/de.ts +179 -0
  222. package/src/tool/musicalTypography/i18n/id.ts +179 -0
  223. package/src/tool/musicalTypography/i18n/it.ts +179 -0
  224. package/src/tool/musicalTypography/i18n/ja.ts +180 -0
  225. package/src/tool/musicalTypography/i18n/ko.ts +180 -0
  226. package/src/tool/musicalTypography/i18n/nl.ts +179 -0
  227. package/src/tool/musicalTypography/i18n/pl.ts +179 -0
  228. package/src/tool/musicalTypography/i18n/pt.ts +101 -0
  229. package/src/tool/musicalTypography/i18n/ru.ts +47 -0
  230. package/src/tool/musicalTypography/i18n/sv.ts +29 -0
  231. package/src/tool/musicalTypography/i18n/tr.ts +29 -0
  232. package/src/tool/musicalTypography/i18n/zh.ts +30 -0
  233. package/src/tool/musicalTypography/index.ts +15 -7
  234. package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
  235. package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
  236. package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
  237. package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
  238. package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
  239. package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
  240. package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
  241. package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
  242. package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
  243. package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
  244. package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
  245. package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
  246. package/src/tool/placeholderGenerator/index.ts +24 -0
  247. package/src/tool/promptLibrary/i18n/de.ts +131 -0
  248. package/src/tool/promptLibrary/i18n/id.ts +131 -0
  249. package/src/tool/promptLibrary/i18n/it.ts +131 -0
  250. package/src/tool/promptLibrary/i18n/ja.ts +132 -0
  251. package/src/tool/promptLibrary/i18n/ko.ts +132 -0
  252. package/src/tool/promptLibrary/i18n/nl.ts +131 -0
  253. package/src/tool/promptLibrary/i18n/pl.ts +28 -0
  254. package/src/tool/promptLibrary/i18n/pt.ts +101 -0
  255. package/src/tool/promptLibrary/i18n/ru.ts +101 -0
  256. package/src/tool/promptLibrary/i18n/sv.ts +93 -0
  257. package/src/tool/promptLibrary/i18n/tr.ts +93 -0
  258. package/src/tool/promptLibrary/i18n/zh.ts +94 -0
  259. package/src/tool/promptLibrary/index.ts +24 -0
  260. package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
  261. package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
  262. package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
  263. package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
  264. package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
  265. package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
  266. package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
  267. package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
  268. package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
  269. package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
  270. package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
  271. package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
  272. package/src/tool/readabilityCalculator/index.ts +24 -0
  273. package/src/tool/svgSanitizer/i18n/de.ts +125 -0
  274. package/src/tool/svgSanitizer/i18n/id.ts +125 -0
  275. package/src/tool/svgSanitizer/i18n/it.ts +125 -0
  276. package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
  277. package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
  278. package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
  279. package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
  280. package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
  281. package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
  282. package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
  283. package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
  284. package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
  285. package/src/tool/svgSanitizer/index.ts +24 -0
  286. package/src/tool/svgToCss/i18n/de.ts +174 -0
  287. package/src/tool/svgToCss/i18n/id.ts +174 -0
  288. package/src/tool/svgToCss/i18n/it.ts +174 -0
  289. package/src/tool/svgToCss/i18n/ja.ts +175 -0
  290. package/src/tool/svgToCss/i18n/ko.ts +175 -0
  291. package/src/tool/svgToCss/i18n/nl.ts +174 -0
  292. package/src/tool/svgToCss/i18n/pl.ts +174 -0
  293. package/src/tool/svgToCss/i18n/pt.ts +174 -0
  294. package/src/tool/svgToCss/i18n/ru.ts +174 -0
  295. package/src/tool/svgToCss/i18n/sv.ts +174 -0
  296. package/src/tool/svgToCss/i18n/tr.ts +174 -0
  297. package/src/tool/svgToCss/i18n/zh.ts +175 -0
  298. package/src/tool/svgToCss/index.ts +15 -7
  299. package/src/tool/urlCleaner/i18n/de.ts +116 -0
  300. package/src/tool/urlCleaner/i18n/id.ts +116 -0
  301. package/src/tool/urlCleaner/i18n/it.ts +116 -0
  302. package/src/tool/urlCleaner/i18n/ja.ts +117 -0
  303. package/src/tool/urlCleaner/i18n/ko.ts +117 -0
  304. package/src/tool/urlCleaner/i18n/nl.ts +116 -0
  305. package/src/tool/urlCleaner/i18n/pl.ts +29 -0
  306. package/src/tool/urlCleaner/i18n/pt.ts +43 -0
  307. package/src/tool/urlCleaner/i18n/ru.ts +43 -0
  308. package/src/tool/urlCleaner/i18n/sv.ts +43 -0
  309. package/src/tool/urlCleaner/i18n/tr.ts +43 -0
  310. package/src/tool/urlCleaner/i18n/zh.ts +44 -0
  311. package/src/tool/urlCleaner/index.ts +24 -0
  312. package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
  313. package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
  314. package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
  315. package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
  316. package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
  317. package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
  318. package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
  319. package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
  320. package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
  321. package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
  322. package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
  323. package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
  324. package/src/tool/urlEncoderDecoder/index.ts +15 -7
  325. package/src/tool/utmGenerator/i18n/de.ts +118 -0
  326. package/src/tool/utmGenerator/i18n/id.ts +118 -0
  327. package/src/tool/utmGenerator/i18n/it.ts +118 -0
  328. package/src/tool/utmGenerator/i18n/ja.ts +118 -0
  329. package/src/tool/utmGenerator/i18n/ko.ts +118 -0
  330. package/src/tool/utmGenerator/i18n/nl.ts +118 -0
  331. package/src/tool/utmGenerator/i18n/pl.ts +117 -0
  332. package/src/tool/utmGenerator/i18n/pt.ts +118 -0
  333. package/src/tool/utmGenerator/i18n/ru.ts +118 -0
  334. package/src/tool/utmGenerator/i18n/sv.ts +118 -0
  335. package/src/tool/utmGenerator/i18n/tr.ts +117 -0
  336. package/src/tool/utmGenerator/i18n/zh.ts +118 -0
  337. package/src/tool/utmGenerator/index.ts +15 -7
  338. package/src/types.ts +1 -2
@@ -0,0 +1,162 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { UrlEncoderDecoderUI } from '../ui';
4
+
5
+ const slug = 'koder-i-dekoder-url';
6
+ const title = 'Koder i dekoder URL online';
7
+ const description =
8
+ 'Konwertuj znaki specjalne z dowolnego łącza na bezpieczny format (Percent-Encoding) lub natychmiast i lokalnie przywracaj je do ich oryginalnego, czytelnego stanu.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Które znaki są kodowane w adresie URL?',
13
+ answer:
14
+ 'Wszystkie znaki niedozwolone w standardzie ASCII dla adresów URL są kodowane: spacje, litery z akcentami, symbole takie jak &, =, +, #, ?, / i inne. Na przykład spacja zmienia się w %20, a ñ w %C3%B1.',
15
+ },
16
+ {
17
+ question: 'Jaka jest różnica między encodeURI a encodeURIComponent?',
18
+ answer:
19
+ 'encodeURI koduje kompletny adres URL i pozostawia niezmienione znaki zarezerwowane, takie jak / i ?. encodeURIComponent koduje wszystkie znaki specjalne, w tym znaki zarezerwowane, co czyni go idealnym do kodowania poszczególnych wartości parametrów zapytania.',
20
+ },
21
+ {
22
+ question: 'Dlaczego mój adres URL zawiera %20 zamiast spacji?',
23
+ answer:
24
+ 'Protokół HTTP nie pozwala na spacje w adresach URL. %20 to reprezentacja spacji w formacie Percent-Encoding zgodnie ze standardem ASCII. Niektóre systemy używają znaku + jako alternatywy, ale %20 jest najbardziej uniwersalne i bezpieczne.',
25
+ },
26
+ {
27
+ question: 'Czy używanie tego narzędzia z prywatnymi adresami URL jest bezpieczne?',
28
+ answer:
29
+ 'Tak, całkowicie bezpieczne. Całe przetwarzanie odbywa się w Twojej przeglądarce przy użyciu natywnego JavaScript (encodeURIComponent/decodeURIComponent). Żaden z Twoich adresów URL ani parametrów nie jest wysyłany do żadnego zewnętrznego serwera.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Wklej surowy tekst',
36
+ text: 'Wpisz lub wklej swój adres URL lub ciąg tekstowy w górnym polu „Tekst surowy (czytelny)”.',
37
+ },
38
+ {
39
+ name: 'Zakoduj lub dekoduj',
40
+ text: 'Kliknij „Koduj URL”, aby przekonwertować tekst na bezpieczny format Percent-Encoding, lub „Dekoduj”, aby przywrócić zakodowany adres URL do jego czytelnej formy.',
41
+ },
42
+ {
43
+ name: 'Skopiuj wynik',
44
+ text: 'Użyj przycisku „Kopiuj” w odpowiednim polu, aby przenieść wynik do schowka.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'pl',
80
+ };
81
+
82
+ const ui: UrlEncoderDecoderUI = {
83
+ labelRaw: 'Tekst surowy (czytelny)',
84
+ labelEncoded: 'Sformatowany adres URL (zakodowany)',
85
+ btnClear: 'Wyczyść',
86
+ btnCopy: 'Kopiuj',
87
+ btnCopied: 'Skopiowano!',
88
+ btnEncode: 'Koduj URL',
89
+ btnDecode: 'Dekoduj',
90
+ placeholderRaw: 'https://example.com/search?q=czerwone buty&size=38',
91
+ placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dczerwone%20buty%26size%3D38',
92
+ };
93
+
94
+ export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
95
+ slug,
96
+ title,
97
+ description,
98
+ ui,
99
+ faqTitle: 'Często zadawane pytania',
100
+ faq: faqData,
101
+ bibliographyTitle: 'Referencje i dokumentacja',
102
+ bibliography: [
103
+ {
104
+ name: 'MDN Web Docs: encodeURIComponent()',
105
+ url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
106
+ },
107
+ {
108
+ name: 'IETF RFC 3986: URI Generic Syntax',
109
+ url: 'https://datatracker.ietf.org/doc/html/rfc3986',
110
+ },
111
+ {
112
+ name: 'W3C: URL Living Standard',
113
+ url: 'https://url.spec.whatwg.org/',
114
+ },
115
+ ],
116
+ howTo: howToData,
117
+ schemas: [faqSchema, howToSchema, appSchema],
118
+ seo: [
119
+ {
120
+ type: 'title',
121
+ text: 'Co to jest kodowanie URL?',
122
+ level: 2,
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'Podczas przeglądania Internetu lub wysyłania żądań do serwerów często myślimy o adresie URL (Uniform Resource Locator) po prostu jako o „adresie internetowym”. Jednak protokół internetowy dyktuje, że adresy URL mogą być przesyłane wyłącznie przy użyciu bardzo ograniczonego zestawu <strong>standardowych znaków ASCII</strong>.',
127
+ },
128
+ {
129
+ type: 'paragraph',
130
+ html: 'Co się dzieje, jeśli adres URL zawiera spację, litery z akcentami lub parametry specjalne, takie jak znaki plusa (<code>+</code>) lub równości (<code>=</code>)? Aby zapobiec awariom systemów przy próbie odczytu niedozwolonych znaków, należy je przetłumaczyć na ich bezpieczną, kompatybilną formę za pomocą <strong>Percent-Encoding</strong>.',
131
+ },
132
+ {
133
+ type: 'title',
134
+ text: 'Jak działa Percent-Encoding',
135
+ level: 3,
136
+ },
137
+ {
138
+ type: 'paragraph',
139
+ html: 'Gdy korzystasz z tego narzędzia, algorytm pobiera dowolny „niebezpieczny” znak (taki jak spacja lub litera z akcentem, np. ñ) i zastępuje go znakiem procenta <code>%</code>, po którym następują dwie cyfry szesnastkowe odpowiadające jego wartości w standardzie UTF-8.',
140
+ },
141
+ {
142
+ type: 'list',
143
+ items: [
144
+ '<strong>Podstawowy przykład:</strong> Zwykła spacja zostanie zastąpiona jej bezpiecznym odpowiednikiem: <code>%20</code>.',
145
+ '<strong>Rozszerzone wsparcie:</strong> Litera <code>ą</code> staje się <code>%C3%B1</code>, a <code>ł</code> staje się <code>%C5%82</code>.',
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Znaczenie w interfejsach API i żądaniach GET',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: 'Podczas tworzenia integracji typowym błędem jest przekazywanie surowego ciągu znaków do parametrów URL. Jeśli wstawisz <code>koszula&niebieska</code> w surowej formie do swojego backendu (<code>/search?q=koszula&niebieska</code>), serwer zinterpretuje <code>niebieska</code> jako nowy parametr, co zepsuje całą logikę.',
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'To narzędzie gwarantuje czyste, automatyczne obliczenia przy 100% wykonaniu w lokalnej przeglądarce. Żaden z Twoich ciągów URL nie jest przesyłany do serwerów stron trzecich, co zapewnia prywatność Twoich tokenów i parametrów analitycznych.',
160
+ },
161
+ ],
162
+ };
@@ -0,0 +1,162 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { UrlEncoderDecoderUI } from '../ui';
4
+
5
+ const slug = 'codificador-url-decodificador';
6
+ const title = 'Codificador e Decodificador de URL Online';
7
+ const description =
8
+ 'Converta caracteres especiais de qualquer link para um formato seguro (Percent-Encoding) ou restaure-os instantaneamente para o estado original legível de forma local.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Quais caracteres são codificados em uma URL?',
13
+ answer:
14
+ 'Todos os caracteres não permitidos no padrão ASCII para URLs são codificados: espaços, letras acentuadas, símbolos como &, =, +, #, ?, / e outros. Por exemplo, um espaço torna-se %20 e um ñ torna-se %C3%B1.',
15
+ },
16
+ {
17
+ question: 'Qual a diferença entre encodeURI e encodeURIComponent?',
18
+ answer:
19
+ 'O encodeURI codifica uma URL completa e mantém intactos caracteres reservados como / e ?. O encodeURIComponent codifica todos os caracteres especiais, incluindo os reservados, sendo ideal para codificar valores individuais de parâmetros de consulta.',
20
+ },
21
+ {
22
+ question: 'Por que minha URL tem %20 em vez de espaços?',
23
+ answer:
24
+ 'O protocolo HTTP não permite espaços em URLs. %20 é a representação em Percent-Encoding de um espaço de acordo com o padrão ASCII. Alguns sistemas usam o sinal + como alternativa, mas %20 é o mais universal e seguro.',
25
+ },
26
+ {
27
+ question: 'É seguro usar esta ferramenta com URLs privadas?',
28
+ answer:
29
+ 'Sim, totalmente seguro. Todo o processamento ocorre no seu navegador usando JavaScript nativo (encodeURIComponent/decodeURIComponent). Nenhuma das suas URLs ou parâmetros é enviada para qualquer servidor externo.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Cole o texto bruto',
36
+ text: 'Digite ou cole sua URL ou sequência de texto no campo superior "Texto Bruto (Legível)".',
37
+ },
38
+ {
39
+ name: 'Codificar ou decodificar',
40
+ text: 'Clique em "Codificar URL" para converter o texto para o formato seguro Percent-Encoding, ou em "Decodificar" para reverter uma URL codificada para sua forma legível.',
41
+ },
42
+ {
43
+ name: 'Copie o resultado',
44
+ text: 'Use o botão "Copiar" do campo correspondente para levar o resultado para sua área de transferência.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'pt',
80
+ };
81
+
82
+ const ui: UrlEncoderDecoderUI = {
83
+ labelRaw: 'Texto Bruto (Legível)',
84
+ labelEncoded: 'URL Formatada (Codificada)',
85
+ btnClear: 'Limpar',
86
+ btnCopy: 'Copiar',
87
+ btnCopied: 'Copiado!',
88
+ btnEncode: 'Codificar URL',
89
+ btnDecode: 'Decodificar',
90
+ placeholderRaw: 'https://example.com/search?q=sapatos vermelhos&size=38',
91
+ placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dsapatos%20vermelhos%26size%3D38',
92
+ };
93
+
94
+ export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
95
+ slug,
96
+ title,
97
+ description,
98
+ ui,
99
+ faqTitle: 'Perguntas Frequentes',
100
+ faq: faqData,
101
+ bibliographyTitle: 'Referências e Documentação',
102
+ bibliography: [
103
+ {
104
+ name: 'MDN Web Docs: encodeURIComponent()',
105
+ url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
106
+ },
107
+ {
108
+ name: 'IETF RFC 3986: URI Generic Syntax',
109
+ url: 'https://datatracker.ietf.org/doc/html/rfc3986',
110
+ },
111
+ {
112
+ name: 'W3C: URL Living Standard',
113
+ url: 'https://url.spec.whatwg.org/',
114
+ },
115
+ ],
116
+ howTo: howToData,
117
+ schemas: [faqSchema, howToSchema, appSchema],
118
+ seo: [
119
+ {
120
+ type: 'title',
121
+ text: 'O que é Codificação de URL?',
122
+ level: 2,
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'Ao navegar na internet ou enviar solicitações para servidores, é comum pensar em uma URL (Uniform Resource Locator) simplesmente como um "endereço web". No entanto, o protocolo de internet dita que as URLs só podem ser transmitidas usando um conjunto muito restrito de caracteres <strong>ASCII padrão</strong>.',
127
+ },
128
+ {
129
+ type: 'paragraph',
130
+ html: 'O que acontece se a URL contiver um espaço, letras acentuadas ou parâmetros especiais como os sinais de mais (<code>+</code>) ou igual (<code>=</code>)? Para evitar que os sistemas falhem ao tentar ler caracteres ilegais, estes devem ser traduzidos para sua forma segura e compatível usando <strong>Percent-Encoding</strong>.',
131
+ },
132
+ {
133
+ type: 'title',
134
+ text: 'Como o Percent-Encoding funciona',
135
+ level: 3,
136
+ },
137
+ {
138
+ type: 'paragraph',
139
+ html: 'Ao usar esta ferramenta, o algoritmo pega qualquer caractere "inseguro" (como um espaço ou uma letra acentuada como ñ) e o substitui por um sinal de porcentagem <code>%</code> seguido por dois dígitos hexadecimais correspondentes ao seu valor no padrão UTF-8.',
140
+ },
141
+ {
142
+ type: 'list',
143
+ items: [
144
+ '<strong>Exemplo Básico:</strong> Um simples espaço será substituído por seu equivalente seguro: <code>%20</code>.',
145
+ '<strong>Suporte Estendido:</strong> A letra <code>á</code> torna-se <code>%C3%A1</code>, e <code>ñ</code> torna-se <code>%C3%B1</code>.',
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Importância em APIs e solicitações GET',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: 'Ao desenvolver integrações, um erro típico é passar uma sequência bruta para parâmetros de URL. Se você inserir <code>camisa&azul</code> de forma bruta no seu backend (<code>/search?q=camisa&azul</code>), o servidor interpretará <code>azul</code> como um novo parâmetro, quebrando toda a lógica.',
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'Esta ferramenta garante cálculos limpos e automáticos com 100% de execução no seu navegador local. Nenhuma de suas sequências de URL é transmitida para servidores de terceiros, garantindo a privacidade de seus tokens e parâmetros analíticos.',
160
+ },
161
+ ],
162
+ };
@@ -0,0 +1,163 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { UrlEncoderDecoderUI } from '../ui';
4
+
5
+ const slug = 'url-encoder-decoder-ru';
6
+ const title = 'Онлайн URL энкодер и декодер';
7
+ const description =
8
+ 'Преобразуйте специальные символы любой ссылки в безопасный формат (Percent-Encoding) или мгновенно возвращайте их в исходное читаемое состояние локально.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Какие символы кодируются в URL?',
13
+ answer:
14
+ 'Кодируются все символы, не разрешенные стандартом ASCII для URL: пробелы, буквы с диакритическими знаками, символы, такие как &, =, +, #, ?, / и другие. Например, пробел заменяется на %20, а ñ — на %C3%B1.',
15
+ },
16
+ {
17
+ question: 'В чем разница между encodeURI и encodeURIComponent?',
18
+ answer:
19
+ 'encodeURI кодирует полный URL-адрес и оставляет нетронутыми зарезервированные символы, такие как / и ?. encodeURIComponent кодирует все специальные символы, включая зарезервированные, что делает его идеальным для кодирования отдельных значений параметров запроса.',
20
+ },
21
+ {
22
+ question: 'Почему в моем URL-адресе %20 вместо пробелов?',
23
+ answer:
24
+ 'Протокол HTTP не допускает использования пробелов в URL-адресах. %20 — это представление пробела в кодировке Percent-Encoding согласно стандарту ASCII. Некоторые системы используют знак + в качестве альтернативы, но %20 является наиболее универсальным и безопасным.',
25
+ },
26
+ {
27
+ question: 'Безопасно ли использовать этот инструмент с личными URL-адресами?',
28
+ answer:
29
+ 'Да, совершенно безопасно. Вся обработка происходит в вашем браузере с использованием встроенного JavaScript (encodeURIComponent/decodeURIComponent). Ни один из ваших URL-адресов или параметров не отправляется на внешний сервер.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Вставьте исходный текст',
36
+ text: 'Введите или вставьте ваш URL-адрес или текстовую строку в верхнее поле «Исходный текст (читаемый)».',
37
+ },
38
+ {
39
+ name: 'Закодируйте или декодируйте',
40
+ text: 'Нажмите «Закодировать URL», чтобы преобразовать текст в безопасный формат Percent-Encoding, или «Декодировать», чтобы вернуть закодированный URL-адрес в читаемый вид.',
41
+ },
42
+ {
43
+ name: 'Скопируйте результат',
44
+ text: 'Используйте кнопку «Копировать» в соответствующем поле, чтобы перенести результат в буфер обмена.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'ru',
80
+ };
81
+
82
+ const ui: UrlEncoderDecoderUI = {
83
+ labelRaw: 'Исходный текст (читаемый)',
84
+ labelEncoded: 'Форматированный URL (закодированный)',
85
+ btnClear: 'Очистить',
86
+ btnCopy: 'Копировать',
87
+ btnCopied: 'Скопировано!',
88
+ btnEncode: 'Закодировать URL',
89
+ btnDecode: 'Декодировать',
90
+ placeholderRaw: 'https://example.com/search?q=красные туфли&size=38',
91
+ placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3D%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D1%8B%D0%B5%20%D1%82%D1%83%D1%84%D0%BB%D0%B8%26size%3D38',
92
+ };
93
+
94
+ export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
95
+ slug,
96
+ title,
97
+ description,
98
+ ui,
99
+ faqTitle: 'Часто задаваемые вопросы',
100
+ faq: faqData,
101
+ bibliographyTitle: 'Ссылки и документация',
102
+ bibliography: [
103
+ {
104
+ name: 'MDN Web Docs: encodeURIComponent()',
105
+ url: 'https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
106
+ },
107
+ {
108
+ name: 'IETF RFC 3986: URI Generic Syntax',
109
+ url: 'https://datatracker.ietf.org/doc/html/rfc3986',
110
+ },
111
+ {
112
+ name: 'W3C: URL Living Standard',
113
+ url: 'https://url.spec.whatwg.org/',
114
+ },
115
+ ],
116
+ howTo: howToData,
117
+ schemas: [faqSchema, howToSchema, appSchema],
118
+ seo: [
119
+ {
120
+ type: 'title',
121
+ text: 'Что такое URL-кодирование?',
122
+ level: 2,
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'При просмотре веб-страниц или отправке запросов на серверы часто думают об URL (Uniform Resource Locator) просто как о «веб-адресе». Однако интернет-протокол диктует, что URL-адреса могут передаваться только с использованием очень ограниченного набора <strong>стандартных символов ASCII</strong>.',
127
+ },
128
+ {
129
+ type: 'paragraph',
130
+ html: 'Что произойдет, если URL-адрес содержит пробел, буквы с диакритическими знаками или специальные параметры, такие как знаки плюс (<code>+</code>) или равно (<code>=</code>)? Чтобы предотвратить сбои систем при попытке чтения недопустимых символов, они должны быть переведены в их безопасную совместимую форму с использованием <strong>Percent-Encoding</strong>.',
131
+ },
132
+ {
133
+ type: 'title',
134
+ text: 'Как работает Percent-Encoding',
135
+ level: 3,
136
+ },
137
+ {
138
+ type: 'paragraph',
139
+ html: 'Когда вы используете этот инструмент, алгоритм берет любой «небезопасный» символ (например, пробел или букву с диакритическим знаком, такую как ñ) и заменяет его знаком процента <code>%</code>, за которым следуют две шестнадцатеричные цифры, соответствующие его значению в стандарте UTF-8.',
140
+ },
141
+ {
142
+ type: 'list',
143
+ items: [
144
+ '<strong>Базовый пример:</strong> обычный пробел будет заменен его безопасным эквивалентом: <code>%20</code>.',
145
+ '<strong>Расширенная поддержка:</strong> буква <code>ё</code> заменяется на <code>%D1%91</code>, а <code>й</code> — на <code>%D0%B9</code>.',
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Важность в API и GET-запросах',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: 'При разработке интеграций типичной ошибкой является передача необработанной строки в параметры URL. Если вы вставите <code>рубашка&синий</code> в необработанном виде в свой бэкэнд (<code>/search?q=рубашка&синий</code>), сервер интерпретирует <code>синий</code> как новый параметр, нарушая всю логику.',
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'Этот инструмент гарантирует чистые автоматические вычисления со 100% выполнением в вашем локальном браузере. Ни одна из ваших строк URL не передается на сторонние серверы, что обеспечивает конфиденциальность ваших токенов и аналитических параметров.',
160
+ },
161
+ ],
162
+ };
163
+
@@ -0,0 +1,163 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { UrlEncoderDecoderUI } from '../ui';
4
+
5
+ const slug = 'url-encoder-decoder-sv';
6
+ const title = 'URL Encoder och Decoder Online';
7
+ const description =
8
+ 'Konvertera specialtecken från valfri länk till ett säkert format (Percent-Encoding) eller återställ dem omedelbart och lokalt till deras ursprungliga läsbara tillstånd.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Vilka tecken kodas i en URL?',
13
+ answer:
14
+ 'Alla tecken som inte är tillåtna i ASCII-standarden för URL:er kodas: blanksteg, accenter, symboler som &, =, +, #, ?, / och andra. Till exempel blir ett blanksteg %20 och ett ñ blir %C3%B1.',
15
+ },
16
+ {
17
+ question: 'Vad är skillnaden mellan encodeURI och encodeURIComponent?',
18
+ answer:
19
+ 'encodeURI kodar en komplett URL och lämnar reserverade tecken som / och ? intakta. encodeURIComponent kodar alla specialtecken inklusive reserverade tecken, vilket gör den idealisk för att koda enskilda värden för frågeparametrar.',
20
+ },
21
+ {
22
+ question: 'Varför har min URL %20 istället för blanksteg?',
23
+ answer:
24
+ 'HTTP-protokollet tillåter inte blanksteg i URL:er. %20 är Percent-Encoding-representationen av ett blanksteg enligt ASCII-standarden. Vissa system använder plustecknet (+) som ett alternativ, men %20 är det mest universella och säkra.',
25
+ },
26
+ {
27
+ question: 'Är det säkert att använda det här verktyget med privata URL:er?',
28
+ answer:
29
+ 'Ja, helt säkert. All bearbetning sker i din webbläsare med hjälp av inbyggd JavaScript (encodeURIComponent/decodeURIComponent). Ingen av dina URL:er eller parametrar skickas till någon extern server.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Klistra in råtexten',
36
+ text: 'Skriv eller klistra in din URL eller textsträng i det övre fältet ”Råtext (läsbar)”.',
37
+ },
38
+ {
39
+ name: 'Koda eller avkoda',
40
+ text: 'Klicka på ”Koda URL” för att konvertera texten till det säkra Percent-Encoding-formatet, eller ”Avkoda” för att återställa en kodad URL till dess läsbara form.',
41
+ },
42
+ {
43
+ name: 'Kopiera resultatet',
44
+ text: 'Använd knappen ”Kopiera” i motsvarande fält för att ta resultatet till ditt urklipp.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'sv',
80
+ };
81
+
82
+ const ui: UrlEncoderDecoderUI = {
83
+ labelRaw: 'Råtext (läsbar)',
84
+ labelEncoded: 'Formaterad URL (kodad)',
85
+ btnClear: 'Rensa',
86
+ btnCopy: 'Kopiera',
87
+ btnCopied: 'Kopierad!',
88
+ btnEncode: 'Koda URL',
89
+ btnDecode: 'Avkoda',
90
+ placeholderRaw: 'https://example.com/search?q=röda skor&size=38',
91
+ placeholderEncoded: 'https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dr%C3%B6da%20skor%26size%3D38',
92
+ };
93
+
94
+ export const content: ToolLocaleContent<UrlEncoderDecoderUI> = {
95
+ slug,
96
+ title,
97
+ description,
98
+ ui,
99
+ faqTitle: 'Vanliga frågor',
100
+ faq: faqData,
101
+ bibliographyTitle: 'Referenser och dokumentation',
102
+ bibliography: [
103
+ {
104
+ name: 'MDN Web Docs: encodeURIComponent()',
105
+ url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent',
106
+ },
107
+ {
108
+ name: 'IETF RFC 3986: URI Generic Syntax',
109
+ url: 'https://datatracker.ietf.org/doc/html/rfc3986',
110
+ },
111
+ {
112
+ name: 'W3C: URL Living Standard',
113
+ url: 'https://url.spec.whatwg.org/',
114
+ },
115
+ ],
116
+ howTo: howToData,
117
+ schemas: [faqSchema, howToSchema, appSchema],
118
+ seo: [
119
+ {
120
+ type: 'title',
121
+ text: 'Vad är URL-kodning?',
122
+ level: 2,
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'När man surfar på internet eller skickar förfrågningar till servrar är det vanligt att tänka på en URL (Uniform Resource Locator) helt enkelt som en ”webbadress”. Internetprotokoll föreskriver dock att URL:er endast kan överföras med en mycket begränsad uppsättning <strong>standard-ASCII</strong>-tecken.',
127
+ },
128
+ {
129
+ type: 'paragraph',
130
+ html: 'Vad händer om URL:en innehåller ett blanksteg, accenter eller specialparametrar som plustecken (<code>+</code>) eller likhetstecken (<code>=</code>)? För att förhindra att system kraschar när de försöker läsa otillåtna tecken, måste dessa översättas till sin säkra kompatibla form med hjälp av <strong>Percent-Encoding</strong>.',
131
+ },
132
+ {
133
+ type: 'title',
134
+ text: 'Hur Percent-Encoding fungerar',
135
+ level: 3,
136
+ },
137
+ {
138
+ type: 'paragraph',
139
+ html: 'När du använder det här verktyget tar algoritmen alla ”osäkra” tecken (som ett blanksteg eller ett tecken med accent som ñ) och ersätter det med ett procenttecken <code>%</code> följt av två hexadecimala siffror som motsvarar dess värde i UTF-8-standarden.',
140
+ },
141
+ {
142
+ type: 'list',
143
+ items: [
144
+ '<strong>Grundläggande exempel:</strong> Ett enkelt blanksteg ersätts med dess säkra motsvarighet: <code>%20</code>.',
145
+ '<strong>Utökat stöd:</strong> Bokstaven <code>å</code> blir <code>%C3%A5</code>, <code>ä</code> blir <code>%C3%A4</code> och <code>ö</code> blir <code>%C3%B6</code>.',
146
+ ],
147
+ },
148
+ {
149
+ type: 'title',
150
+ text: 'Betydelse i API:er och GET-förfrågningar',
151
+ level: 3,
152
+ },
153
+ {
154
+ type: 'paragraph',
155
+ html: 'Vid utveckling av integrationer är ett typiskt misstag att skicka en rå sträng till URL-parametrar. Om du infogar <code>skjorta&blå</code> i råformat i din backend (<code>/search?q=skjorta&blå</code>), kommer servern att tolka <code>blå</code> som en ny parameter, vilket förstör hela logiken.',
156
+ },
157
+ {
158
+ type: 'paragraph',
159
+ html: 'Detta verktyg garanterar rena, automatiska beräkningar med 100 % körning i din lokala webbläsare. Ingen av dina URL-strängar överförs till tredjepartsservrar, vilket säkerställer integriteten för dina tokens och analysparametrar.',
160
+ },
161
+ ],
162
+ };
163
+