@jjlmoya/utils-developer 1.4.0 → 1.6.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/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_language_code_format.test.ts +25 -0
  19. package/src/tests/slug_uniqueness.test.ts +87 -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 +1 -0
  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 +1 -0
  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 +1 -0
  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,151 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CalculadoraTiempoDatosUI } from '../ui';
4
+
5
+ const slug = 'data-time-calculator-web-speed-impact';
6
+ const title = '데이터 시간 계산기: 웹 속도의 영향';
7
+ const description = '사용자가 3G, 4G, 5G 연결에서 웹사이트 로딩을 기다리는 동안 잃게 되는 수명을 파악하세요. 사이트 무게의 실제 영향을 계산합니다.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '웹사이트 로딩 시간을 아는 것이 왜 중요한가요?',
12
+ answer: '사용자 경험, SEO 및 전환에 직접적인 영향을 미치기 때문입니다. Google의 자료에 따르면 로딩이 1초 지연될 때마다 전환율이 7% 감소합니다. 또한 모바일 방문자의 53%는 로딩에 3초 이상 걸리는 페이지를 이탈합니다.',
13
+ },
14
+ {
15
+ question: '수명 손실로 표시되는 작은 백분율은 무엇을 의미하나요?',
16
+ answer: '이는 한 사람의 전체 수명(약 80년, 즉 25억 초) 중 페이지 로딩을 기다리는 데 소비되는 시간의 비율을 나타냅니다. 개별적으로는 작아 보일 수 있지만, 수백만 명의 사용자를 곱하면 막대한 양의 인간 시간이 낭비되고 있음을 알 수 있습니다.',
17
+ },
18
+ {
19
+ question: '전 세계 평균 연결 속도는 어느 정도인가요?',
20
+ answer: '선진국에서는 4G가 표준입니다. 하지만 개발도상국의 수백만 명의 사용자는 여전히 3G에 의존하고 있습니다. 이것이 모든 연결 속도에 맞게 사이트를 최적화하는 것이 중요한 이유입니다.',
21
+ },
22
+ {
23
+ question: '웹사이트 무게는 어느 정도가 적당한가요?',
24
+ answer: 'Google은 일반적인 4G 연결에서 홈페이지가 3초 이내에 로드될 것을 권장합니다. 이를 위해 사이트 무게는 이상적으로 1~2MB 사이여야 합니다. 그러나 전 세계 평균은 2~3MB에 가깝습니다.',
25
+ },
26
+ {
27
+ question: '사이트 무게를 줄이려면 어떻게 해야 하나요?',
28
+ answer: '주요 전략: 이미지 최적화(무게의 50~80%), CSS 및 JavaScript 압축(minify), 지연 로딩(lazy loading) 사용, 브라우저 캐시 구현, CDN 활용입니다. 이미지 최적화는 일반적으로 가장 효과적인 요소입니다.',
29
+ },
30
+ {
31
+ question: '로딩 속도가 Google 순위에 영향을 미치나요?',
32
+ answer: '네, 물론입니다. Google은 Core Web Vitals를 중요한 순위 요소로 고려합니다. 로딩이 느린 사이트는 비슷한 콘텐츠를 가진 빠른 사이트보다 순위가 낮아집니다.',
33
+ },
34
+ ];
35
+
36
+ const howToData = [
37
+ { name: '사이트 무게 입력', text: '브라우저 개발자 도구나 WebPageTest를 사용하여 페이지 무게를 확인하세요. 그 값을 MB 단위로 입력합니다.' },
38
+ { name: '로딩 시간 관찰', text: '계산기는 3G, 4G, 5G에서 사이트 로딩에 걸리는 시간을 표시합니다. 실제 시간은 일반적으로 이보다 더 깁니다.' },
39
+ { name: '수명에 미치는 영향 이해', text: '"수명" 백분율은 누군가의 인생 중 얼마만큼이 기다림에 소비되는지 보여줍니다. 이를 최적화의 동기로 삼으세요.' },
40
+ { name: '최적화 및 재계산', text: '최적화 후 다시 측정하고 재계산하세요. 작은 개선이 큰 영향을 미치는 것을 확인하세요.' },
41
+ ];
42
+
43
+ const faqSchema: WithContext<FAQPage> = {
44
+ '@context': 'https://schema.org',
45
+ '@type': 'FAQPage',
46
+ mainEntity: faqData.map((item) => ({
47
+ '@type': 'Question',
48
+ name: item.question,
49
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
+ })),
51
+ };
52
+
53
+ const howToSchema: WithContext<HowToThing> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'HowTo',
56
+ name: title,
57
+ description,
58
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
59
+ };
60
+
61
+ const appSchema: WithContext<SoftwareApplication> = {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'SoftwareApplication',
64
+ name: title,
65
+ description,
66
+ applicationCategory: 'UtilityApplication',
67
+ operatingSystem: 'All',
68
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
69
+ inLanguage: 'ko',
70
+ };
71
+
72
+ const ui: CalculadoraTiempoDatosUI = {
73
+ headerTitle: '네트워크에서 낭비되는 시간',
74
+ labelWebSize: '웹사이트 무게 (MB)',
75
+ unit: 'MB',
76
+ presetsLabel: '현실적인 예시',
77
+ labelSpeed: '연결 속도',
78
+ speedLabel3g: '3G',
79
+ speedValue3g: '0.4 Mbps',
80
+ speedLabel4g: '4G/LTE',
81
+ speedValue4g: '10 Mbps',
82
+ speedLabel5g: '5G',
83
+ speedValue5g: '100+ Mbps',
84
+ labelTimes: '하루에 몇 번 접속하나요?',
85
+ resultTitle: '결과',
86
+ resultSingleLoad: '1회 로드',
87
+ resultDailyTotal: '하루 총계',
88
+ resultTimePerYear: '연간 대기 시간',
89
+ resultLifeYears: '평생 대기 시간',
90
+ resultMessage: '약 1년의 수명을 잃었습니다',
91
+ copyMessage: '복사됨',
92
+ preset3g: '3G',
93
+ preset4g: '4G',
94
+ preset5g: '5G',
95
+ };
96
+
97
+ export const content: ToolLocaleContent<CalculadoraTiempoDatosUI> = {
98
+ slug,
99
+ title,
100
+ description,
101
+ ui,
102
+ faqTitle: '자주 묻는 질문',
103
+ faq: faqData,
104
+ bibliographyTitle: '웹 최적화 관련 기술 리소스',
105
+ bibliography: [
106
+ { name: 'Google PageSpeed Insights', url: 'https://pagespeed.web.dev/' },
107
+ { name: 'WebPageTest - 웹사이트 속도 분석', url: 'https://www.webpagetest.org/' },
108
+ { name: 'Web.dev - Core Web Vitals', url: 'https://web.dev/vitals/' },
109
+ { name: 'MDN - 웹 성능', url: 'https://developer.mozilla.org/ko/docs/Web/Performance' },
110
+ ],
111
+ howTo: howToData,
112
+ schemas: [faqSchema, howToSchema, appSchema],
113
+ seo: [
114
+ { type: 'title', text: '웹사이트 로딩 속도가 중요한 이유', level: 2 },
115
+ {
116
+ type: 'paragraph',
117
+ html: '오늘날의 디지털 시대에 웹사이트 로딩 속도는 사치가 아니라 필수입니다. 사용자 유지, 검색 순위 향상 및 전환 극대화에 있어 밀리초 단위가 중요합니다. 현대의 사용자는 페이지가 3초 이내에 로드되기를 기대합니다.',
118
+ },
119
+ { type: 'title', text: '사용자 경험에 미치는 영향', level: 3 },
120
+ {
121
+ type: 'paragraph',
122
+ html: '모바일 방문자의 53%는 로딩에 3초 이상 걸리면 페이지를 이탈합니다. 전환율은 지연이 1초 추가될 때마다 7%씩 감소합니다.',
123
+ },
124
+ { type: 'title', text: '연결 속도 이해', level: 3 },
125
+ {
126
+ type: 'list',
127
+ items: [
128
+ '<strong>3G:</strong> 0.4 Mbps - 시골 지역 및 개발도상국에서 일반적',
129
+ '<strong>4G/LTE:</strong> 10 Mbps - 선진국 표준',
130
+ '<strong>5G:</strong> 100+ Mbps - 점진적으로 확대 중이나 여전히 제한적',
131
+ ],
132
+ },
133
+ { type: 'title', text: '사이트 무게를 줄이는 전략', level: 3 },
134
+ {
135
+ type: 'list',
136
+ items: [
137
+ '<strong>이미지 최적화:</strong> 무게의 50~80%를 차지합니다. TinyPNG와 같은 도구로 40~60% 줄일 수 있습니다.',
138
+ '<strong>압축(Minification):</strong> CSS 및 JavaScript에서 불필요한 코드를 제거합니다. 30~50% 절약 가능합니다.',
139
+ '<strong>지연 로딩(Lazy Loading):</strong> 사용자가 스크롤할 때 이미지를 로드합니다.',
140
+ '<strong>브라우저 캐시:</strong> 정적 파일을 사용자 브라우저에 캐시합니다.',
141
+ '<strong>CDN:</strong> 지리적으로 가까운 서버에서 콘텐츠를 제공합니다.',
142
+ ],
143
+ },
144
+ { type: 'title', text: '결론: 모든 순간이 중요합니다', level: 2 },
145
+ {
146
+ type: 'paragraph',
147
+ html: '귀하의 웹사이트는 종종 사용자가 브랜드에 대해 갖는 첫인상입니다. 느린 사이트는 사용자를 실망시키고 비즈니스 기회를 잃게 합니다. 빠르고 응답성이 뛰어난 사이트는 긍정적인 경험을 만들고 모든 지표를 향상시킵니다.',
148
+ },
149
+ ],
150
+ };
151
+
@@ -0,0 +1,150 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CalculadoraTiempoDatosUI } from '../ui';
4
+
5
+ const slug = 'data-tijd-calculator-web-snelheid-impact';
6
+ const title = 'Data Tijd Calculator: Impact van Web Snelheid';
7
+ const description = 'Ontdek hoeveel levensduur uw gebruikers verliezen door te wachten tot uw website is geladen op 3G, 4G en 5G verbindingen. Bereken de reële impact van het gewicht van uw site.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Waarom is het belangrijk om de laadtijd van mijn website te weten?',
12
+ answer: 'Omdat het direct invloed heeft op de gebruikerservaring, SEO en conversies. Google heeft gedocumenteerd dat elke seconde vertraging de conversies met 7% vermindert. Bovendien verlaat 53% van de mobiele bezoekers een pagina die meer dan 3 seconden nodig heeft om te laden.',
13
+ },
14
+ {
15
+ question: 'Wat betekenen die kleine percentages levensverlies?',
16
+ answer: 'Ze vertegenwoordigen het percentage van de totale levensduur van een persoon (ongeveer 80 jaar of 2,5 miljard seconden) die wordt doorgebracht met wachten op het laden van uw pagina. Hoewel ze individueel klein zijn, vertegenwoordigen ze vermenigvuldigd met miljoenen gebruikers enorme hoeveelheden verspilde menselijke tijd.',
17
+ },
18
+ {
19
+ question: 'Wat is de gemiddelde verbindingssnelheid wereldwijd?',
20
+ answer: '4G is de standaard in ontwikkelde landen. Miljoenen gebruikers in ontwikkelingslanden zijn echter nog steeds afhankelijk van 3G. Daarom is het cruciaal om uw site te optimaliseren voor alle verbindingssnelheden.',
21
+ },
22
+ {
23
+ question: 'Hoe zwaar zou mijn website moeten zijn?',
24
+ answer: 'Google adviseert dat de homepage in minder dan 3 seconden laadt op een typische 4G-verbinding. Hiervoor zou een site idealiter tussen de 1 en 2 MB moeten wegen. Het wereldwijde gemiddelde ligt echter rond de 2-3 MB.',
25
+ },
26
+ {
27
+ question: 'Hoe kan ik het gewicht van mijn site verminderen?',
28
+ answer: 'Belangrijkste strategieën: afbeeldingen optimaliseren (50-80% van het gewicht), CSS en JavaScript minificeren, lazy loading gebruiken, browsercache implementeren en een CDN gebruiken. Afbeelding-optimalisatie is meestal de meest impactvolle factor.',
29
+ },
30
+ {
31
+ question: 'Heeft de laadsnelheid invloed op de Google-ranking?',
32
+ answer: 'Ja, absoluut. Google beschouwt Core Web Vitals als belangrijke rankingfactoren. Een tragere site zal slechter ranken dan een snellere, zelfs bij vergelijkbare inhoud.',
33
+ },
34
+ ];
35
+
36
+ const howToData = [
37
+ { name: 'Voer uw site-gewicht in', text: 'Gebruik de ontwikkeltools van de browser of WebPageTest om het gewicht van uw pagina te achterhalen. Voer die waarde in MB in.' },
38
+ { name: 'Observeer laadtijden', text: 'De calculator laat zien hoeveel seconden het duurt voordat uw site geladen is op 3G, 4G en 5G. De werkelijke tijden zijn meestal hoger.' },
39
+ { name: 'Begrijp de impact op de levensduur', text: 'Het percentage "levensduur" laat zien hoeveel van iemands leven wordt besteed aan wachten. Gebruik dit als motivatie om te optimaliseren.' },
40
+ { name: 'Optimaliseer en herbereken', text: 'Meet na het optimaliseren opnieuw en bereken het opnieuw. Zie hoe kleine verbeteringen een grote impact hebben.' },
41
+ ];
42
+
43
+ const faqSchema: WithContext<FAQPage> = {
44
+ '@context': 'https://schema.org',
45
+ '@type': 'FAQPage',
46
+ mainEntity: faqData.map((item) => ({
47
+ '@type': 'Question',
48
+ name: item.question,
49
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
+ })),
51
+ };
52
+
53
+ const howToSchema: WithContext<HowToThing> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'HowTo',
56
+ name: title,
57
+ description,
58
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
59
+ };
60
+
61
+ const appSchema: WithContext<SoftwareApplication> = {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'SoftwareApplication',
64
+ name: title,
65
+ description,
66
+ applicationCategory: 'UtilityApplication',
67
+ operatingSystem: 'All',
68
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
69
+ inLanguage: 'nl',
70
+ };
71
+
72
+ const ui: CalculadoraTiempoDatosUI = {
73
+ headerTitle: 'Verloren tijd in netwerken',
74
+ labelWebSize: 'Website gewicht (MB)',
75
+ unit: 'MB',
76
+ presetsLabel: 'REALISTISCHE VOORBEELDEN',
77
+ labelSpeed: 'Verbindingssnelheid',
78
+ speedLabel3g: '3G',
79
+ speedValue3g: '0,4 Mbps',
80
+ speedLabel4g: '4G/LTE',
81
+ speedValue4g: '10 Mbps',
82
+ speedLabel5g: '5G',
83
+ speedValue5g: '100+ Mbps',
84
+ labelTimes: 'Hoe vaak per dag?',
85
+ resultTitle: 'Resultaten',
86
+ resultSingleLoad: 'Enkele lading',
87
+ resultDailyTotal: 'Dagelijks totaal',
88
+ resultTimePerYear: 'per jaar wachten',
89
+ resultLifeYears: 'in uw leven',
90
+ resultMessage: 'U heeft ongeveer 1 jaar leven verloren',
91
+ copyMessage: 'Gekopieerd',
92
+ preset3g: '3G',
93
+ preset4g: '4G',
94
+ preset5g: '5G',
95
+ };
96
+
97
+ export const content: ToolLocaleContent<CalculadoraTiempoDatosUI> = {
98
+ slug,
99
+ title,
100
+ description,
101
+ ui,
102
+ faqTitle: 'Veelgestelde Vragen',
103
+ faq: faqData,
104
+ bibliographyTitle: 'Technische bronnen over web-optimalisatie',
105
+ bibliography: [
106
+ { name: 'Google PageSpeed Insights', url: 'https://pagespeed.web.dev/' },
107
+ { name: 'WebPageTest - Analyseer website-snelheid', url: 'https://www.webpagetest.org/' },
108
+ { name: 'Web.dev - Core Web Vitals', url: 'https://web.dev/vitals/' },
109
+ { name: 'MDN - Webprestaties', url: 'https://developer.mozilla.org/en-US/docs/Web/Performance' },
110
+ ],
111
+ howTo: howToData,
112
+ schemas: [faqSchema, howToSchema, appSchema],
113
+ seo: [
114
+ { type: 'title', text: 'Waarom websitelaadsnelheid cruciaal is', level: 2 },
115
+ {
116
+ type: 'paragraph',
117
+ html: 'In het huidige digitale tijdperk is de laadsnelheid van een website geen luxe, maar een noodzaak. Elke milliseconde telt bij het behouden van gebruikers, het verbeteren van zoekresultaten en het maximaliseren van conversies. Moderne gebruikers verwachten dat pagina\'s in minder dan 3 seconden geladen zijn.',
118
+ },
119
+ { type: 'title', text: 'Impact op de gebruikerservaring', level: 3 },
120
+ {
121
+ type: 'paragraph',
122
+ html: '53% van de mobiele bezoekers verlaat een pagina als het meer dan 3 seconden duurt om te laden. Conversiepercentages dalen met 7% voor elke extra seconde vertraging.',
123
+ },
124
+ { type: 'title', text: 'Inzicht in verbindingssnelheden', level: 3 },
125
+ {
126
+ type: 'list',
127
+ items: [
128
+ '<strong>3G:</strong> 0,4 Mbps - Gebruikelijk in landelijke gebieden en ontwikkelingslanden',
129
+ '<strong>4G/LTE:</strong> 10 Mbps - Standaard in ontwikkelde landen',
130
+ '<strong>5G:</strong> 100+ Mbps - Geleidelijk uitbreidend, nog steeds beperkt',
131
+ ],
132
+ },
133
+ { type: 'title', text: 'Strategieën om het gewicht van de site te verminderen', level: 3 },
134
+ {
135
+ type: 'list',
136
+ items: [
137
+ '<strong>Afbeeldingsoptimalisatie:</strong> Vertegenwoordigt 50-80% van het gewicht. Verminder met 40-60% met tools als TinyPNG.',
138
+ '<strong>Minificatie:</strong> Verwijder onnodige code uit CSS en JavaScript. Bespaar 30-50%.',
139
+ '<strong>Lazy Loading:</strong> Laad afbeeldingen pas wanneer gebruikers ernaar toe scrollen.',
140
+ '<strong>Browsercache:</strong> Cache statische bestanden in de browsers van gebruikers.',
141
+ '<strong>CDN:</strong> Serveer inhoud van geografisch nabijgelegen servers.',
142
+ ],
143
+ },
144
+ { type: 'title', text: 'Conclusie: elke seconde telt', level: 2 },
145
+ {
146
+ type: 'paragraph',
147
+ html: 'Uw website is vaak de eerste indruk die gebruikers van uw merk krijgen. Een trage site frustreert gebruikers en kost u business. Een snelle, responsieve site zorgt voor een positieve ervaring en verbetert al uw statistieken.',
148
+ },
149
+ ],
150
+ };
@@ -0,0 +1,150 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CalculadoraTiempoDatosUI } from '../ui';
4
+
5
+ const slug = 'kalkulator-czasu-danych-wplyw-predkosci-strony';
6
+ const title = 'Kalkulator czasu danych: Wpływ prędkości strony';
7
+ const description = 'Odkryj, ile czasu życia tracą Twoi użytkownicy, czekając na załadowanie Twojej strony w sieciach 3G, 4G i 5G. Oblicz rzeczywisty wpływ wagi Twojej strony.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Dlaczego znajomość czasu ładowania mojej strony jest ważna?',
12
+ answer: 'Ponieważ ma to bezpośredni wpływ na doświadczenie użytkownika, SEO i konwersje. Google udokumentowało, że każda sekunda opóźnienia zmniejsza konwersję o 7%. Dodatkowo 53% użytkowników mobilnych opuszcza stronę, która ładuje się dłużej niż 3 sekundy.',
13
+ },
14
+ {
15
+ question: 'Co oznaczają te małe procenty utraty czasu życia?',
16
+ answer: 'Reprezentują one procent całkowitego czasu życia człowieka (około 80 lat lub 2,5 miliarda sekund) spędzonego na czekaniu na załadowanie Twojej strony. Choć pojedynczo mogą wydawać się małe, po pomnożeniu przez miliony użytkowników dają ogromne ilości zmarnowanego ludzkiego czasu.',
17
+ },
18
+ {
19
+ question: 'Jaka jest średnia prędkość połączenia na świecie?',
20
+ answer: '4G jest standardem w krajach rozwiniętych. Jednak miliony użytkowników w krajach rozwijających się nadal korzystają z 3G. Dlatego kluczowe jest zoptymalizowanie strony dla wszystkich prędkości połączeń.',
21
+ },
22
+ {
23
+ question: 'Ile powinna ważyć moja strona internetowa?',
24
+ answer: 'Google zaleca, aby strona główna ładowała się w mniej niż 3 sekundy na typowym połączeniu 4G. W tym celu strona powinna idealnie ważyć od 1 do 2 MB. Jednak średnia światowa wynosi blisko 2-3 MB.',
25
+ },
26
+ {
27
+ question: 'Jak mogę zmniejszyć wagę mojej strony?',
28
+ answer: 'Główne strategie: optymalizacja obrazów (50-80% wagi), minifikacja CSS i JavaScript, stosowanie lazy loading, wdrożenie pamięci podręcznej przeglądarki i korzystanie z CDN. Optymalizacja obrazów jest zazwyczaj najbardziej wpływowym czynnikiem.',
29
+ },
30
+ {
31
+ question: 'Czy prędkość ładowania wpływa na ranking w Google?',
32
+ answer: 'Tak, zdecydowanie. Google bierze pod uwagę Core Web Vitals jako ważne czynniki rankingowe. Wolniejsza strona będzie miała gorszą pozycję niż szybsza, nawet przy podobnej treści.',
33
+ },
34
+ ];
35
+
36
+ const howToData = [
37
+ { name: 'Wpisz wagę swojej strony', text: 'Użyj narzędzi deweloperskich przeglądarki lub WebPageTest, aby sprawdzić wagę strony. Wpisz tę wartość w MB.' },
38
+ { name: 'Obserwuj czasy ładowania', text: 'Kalkulator pokazuje, ile sekund zajmuje ładowanie strony w sieciach 3G, 4G i 5G. Czasy w rzeczywistości są zazwyczaj wyższe.' },
39
+ { name: 'Zrozum wpływ na czas życia', text: 'Procent „czasu życia” pokazuje, ile czyjegoś życia mija na czekaniu. Użyj tego jako motywacji do optymalizacji.' },
40
+ { name: 'Optymalizuj i oblicz ponownie', text: 'Po optymalizacji zmierz ponownie i wykonaj obliczenia. Zobacz, jak małe ulepszenia mają duży wpływ.' },
41
+ ];
42
+
43
+ const faqSchema: WithContext<FAQPage> = {
44
+ '@context': 'https://schema.org',
45
+ '@type': 'FAQPage',
46
+ mainEntity: faqData.map((item) => ({
47
+ '@type': 'Question',
48
+ name: item.question,
49
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
+ })),
51
+ };
52
+
53
+ const howToSchema: WithContext<HowToThing> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'HowTo',
56
+ name: title,
57
+ description,
58
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
59
+ };
60
+
61
+ const appSchema: WithContext<SoftwareApplication> = {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'SoftwareApplication',
64
+ name: title,
65
+ description,
66
+ applicationCategory: 'UtilityApplication',
67
+ operatingSystem: 'All',
68
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
69
+ inLanguage: 'pl',
70
+ };
71
+
72
+ const ui: CalculadoraTiempoDatosUI = {
73
+ headerTitle: 'Czas stracony w sieciach',
74
+ labelWebSize: 'Waga strony (MB)',
75
+ unit: 'MB',
76
+ presetsLabel: 'REALISTYCZNE PRZYKŁADY',
77
+ labelSpeed: 'Prędkość połączenia',
78
+ speedLabel3g: '3G',
79
+ speedValue3g: '0,4 Mbps',
80
+ speedLabel4g: '4G/LTE',
81
+ speedValue4g: '10 Mbps',
82
+ speedLabel5g: '5G',
83
+ speedValue5g: '100+ Mbps',
84
+ labelTimes: 'Ile razy dziennie?',
85
+ resultTitle: 'Wyniki',
86
+ resultSingleLoad: 'Pojedyncze ładowanie',
87
+ resultDailyTotal: 'Dziennie łącznie',
88
+ resultTimePerYear: 'rocznie na czekaniu',
89
+ resultLifeYears: 'w ciągu życia',
90
+ resultMessage: 'Straciłeś około 1 rok życia',
91
+ copyMessage: 'Skopiowano',
92
+ preset3g: '3G',
93
+ preset4g: '4G',
94
+ preset5g: '5G',
95
+ };
96
+
97
+ export const content: ToolLocaleContent<CalculadoraTiempoDatosUI> = {
98
+ slug,
99
+ title,
100
+ description,
101
+ ui,
102
+ faqTitle: 'Często zadawane pytania',
103
+ faq: faqData,
104
+ bibliographyTitle: 'Zasoby techniczne dotyczące optymalizacji stron www',
105
+ bibliography: [
106
+ { name: 'Google PageSpeed Insights', url: 'https://pagespeed.web.dev/' },
107
+ { name: 'WebPageTest - Analiza prędkości stron internetowych', url: 'https://www.webpagetest.org/' },
108
+ { name: 'Web.dev - Core Web Vitals', url: 'https://web.dev/vitals/' },
109
+ { name: 'MDN - Wydajność stron internetowych', url: 'https://developer.mozilla.org/en-US/docs/Web/Performance' },
110
+ ],
111
+ howTo: howToData,
112
+ schemas: [faqSchema, howToSchema, appSchema],
113
+ seo: [
114
+ { type: 'title', text: 'Dlaczego prędkość ładowania strony jest krytyczna', level: 2 },
115
+ {
116
+ type: 'paragraph',
117
+ html: 'W dzisiejszej erze cyfrowej prędkość ładowania strony nie jest luksusem, lecz koniecznością. Każda milisekunda liczy się przy zatrzymywaniu użytkowników, poprawie pozycji w wyszukiwarkach i maksymalizacji konwersji. Współcześni użytkownicy oczekują, że strony załadują się w mniej niż 3 sekundy.',
118
+ },
119
+ { type: 'title', text: 'Wpływ na doświadczenie użytkownika', level: 3 },
120
+ {
121
+ type: 'paragraph',
122
+ html: '53% użytkowników mobilnych opuszcza stronę, jeśli jej ładowanie trwa dłużej niż 3 sekundy. Współczynnik konwersji spada o 7% na każdą dodatkową sekundę opóźnienia.',
123
+ },
124
+ { type: 'title', text: 'Zrozumienie prędkości połączeń', level: 3 },
125
+ {
126
+ type: 'list',
127
+ items: [
128
+ '<strong>3G:</strong> 0,4 Mbps - powszechne na obszarach wiejskich i w krajach rozwijających się',
129
+ '<strong>4G/LTE:</strong> 10 Mbps - standard w krajach rozwiniętych',
130
+ '<strong>5G:</strong> 100+ Mbps - stopniowo się rozwija, wciąż ograniczony',
131
+ ],
132
+ },
133
+ { type: 'title', text: 'Strategie zmniejszania wagi strony', level: 3 },
134
+ {
135
+ type: 'list',
136
+ items: [
137
+ '<strong>Optymalizacja obrazów:</strong> stanowią 50-80% wagi. Zmniejsz ją o 40-60% za pomocą narzędzi takich jak TinyPNG.',
138
+ '<strong>Minifikacja:</strong> usuń niepotrzebny kod z CSS i JavaScript. Zaoszczędź 30-50%.',
139
+ '<strong>Lazy Loading:</strong> ładuj obrazy tylko wtedy, gdy użytkownik do nich przewinie.',
140
+ '<strong>Pamięć podręczna przeglądarki:</strong> przechowuj pliki statyczne w przeglądarkach użytkowników.',
141
+ '<strong>CDN:</strong> dostarczaj treści z serwerów bliskich geograficznie.',
142
+ ],
143
+ },
144
+ { type: 'title', text: 'Podsumowanie: każda sekunda się liczy', level: 2 },
145
+ {
146
+ type: 'paragraph',
147
+ html: 'Twoja strona internetowa to często pierwsze wrażenie, jakie użytkownicy mają o Twojej marce. Wolna strona frustruje użytkowników i powoduje straty w biznesie. Szybka, responsywna strona tworzy pozytywne doświadczenia i poprawia wszystkie Twoje wskaźniki.',
148
+ },
149
+ ],
150
+ };
@@ -0,0 +1,150 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CalculadoraTiempoDatosUI } from '../ui';
4
+
5
+ const slug = 'calculadora-tempo-dados-impacto-velocidade-web';
6
+ const title = 'Calculadora de Tempo de Dados: Impacto da Velocidade Web';
7
+ const description = 'Descubra quanto tempo de vida os seus usuários perdem esperando o carregamento do seu website em conexões 3G, 4G e 5G. Calcule o impacto real do peso do seu site.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Por que é importante saber o tempo de carregamento do meu website?',
12
+ answer: 'Porque impacta diretamente a experiência do usuário, o SEO e as conversões. O Google documentou que cada segundo de atraso reduz as conversões em 7%. Além disso, 53% dos visitantes móveis abandonam uma página que leva mais de 3 segundos para carregar.',
13
+ },
14
+ {
15
+ question: 'O que representam essas pequenas porcentagens de perda de tempo de vida?',
16
+ answer: 'Representam a porcentagem do tempo total de vida de uma pessoa (aproximadamente 80 anos ou 2,5 bilhões de segundos) gasta esperando o carregamento da sua página. Embora pequenas individualmente, multiplicadas por milhões de usuários, representam quantidades enormes de tempo humano desperdiçado.',
17
+ },
18
+ {
19
+ question: 'Qual é a velocidade média de conexão em todo o mundo?',
20
+ answer: 'O 4G é padrão em países desenvolvidos. No entanto, milhões de usuários em países em desenvolvimento ainda dependem do 3G. É por isso que é crucial otimizar o seu site para todas as velocidades de conexão.',
21
+ },
22
+ {
23
+ question: 'Quanto o meu website deve pesar?',
24
+ answer: 'O Google recomenda que a página inicial carregue em menos de 3 segundos em uma conexão 4G típica. Para isso, um site deve idealmente pesar entre 1 e 2 MB. No entanto, a média global está próxima de 2 a 3 MB.',
25
+ },
26
+ {
27
+ question: 'Como posso reduzir o peso do meu site?',
28
+ answer: 'Estratégias principais: otimizar imagens (50-80% do peso), minificar CSS e JavaScript, usar lazy loading, implementar cache do navegador e usar uma CDN. A otimização de imagens costuma ser o fator de maior impacto.',
29
+ },
30
+ {
31
+ question: 'A velocidade de carregamento afeta o ranking no Google?',
32
+ answer: 'Sim, com certeza. O Google considera os Core Web Vitals como fatores de ranking importantes. Um site mais lento terá um ranking pior do que um mais rápido, mesmo com conteúdo semelhante.',
33
+ },
34
+ ];
35
+
36
+ const howToData = [
37
+ { name: 'Insira o Peso do Seu Site', text: 'Use ferramentas de desenvolvedor do navegador ou o WebPageTest para encontrar o peso da sua página. Insira esse valor em MB.' },
38
+ { name: 'Observe os Tempos de Carregamento', text: 'A calculadora mostra quantos segundos o seu site leva para carregar em 3G, 4G e 5G. Os tempos no mundo real costumam ser maiores.' },
39
+ { name: 'Entenda o Impacto no Tempo de Vida', text: 'A porcentagem de "tempo de vida" mostra quanto da vida de alguém é gasto esperando. Use isso como motivação para otimizar.' },
40
+ { name: 'Otimize e Recalcule', text: 'Depois de otimizar, meça novamente e recalcule. Veja como pequenas melhorias têm um grande impacto.' },
41
+ ];
42
+
43
+ const faqSchema: WithContext<FAQPage> = {
44
+ '@context': 'https://schema.org',
45
+ '@type': 'FAQPage',
46
+ mainEntity: faqData.map((item) => ({
47
+ '@type': 'Question',
48
+ name: item.question,
49
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
+ })),
51
+ };
52
+
53
+ const howToSchema: WithContext<HowToThing> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'HowTo',
56
+ name: title,
57
+ description,
58
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
59
+ };
60
+
61
+ const appSchema: WithContext<SoftwareApplication> = {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'SoftwareApplication',
64
+ name: title,
65
+ description,
66
+ applicationCategory: 'UtilityApplication',
67
+ operatingSystem: 'All',
68
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
69
+ inLanguage: 'pt',
70
+ };
71
+
72
+ const ui: CalculadoraTiempoDatosUI = {
73
+ headerTitle: 'Tempo Perdido em Redes',
74
+ labelWebSize: 'Peso do website (MB)',
75
+ unit: 'MB',
76
+ presetsLabel: 'EXEMPLOS REALISTAS',
77
+ labelSpeed: 'Velocidade de conexão',
78
+ speedLabel3g: '3G',
79
+ speedValue3g: '0,4 Mbps',
80
+ speedLabel4g: '4G/LTE',
81
+ speedValue4g: '10 Mbps',
82
+ speedLabel5g: '5G',
83
+ speedValue5g: '100+ Mbps',
84
+ labelTimes: 'Quantas vezes por dia?',
85
+ resultTitle: 'Resultados',
86
+ resultSingleLoad: 'Carga única',
87
+ resultDailyTotal: 'Total diário',
88
+ resultTimePerYear: 'por ano esperando',
89
+ resultLifeYears: 'em sua vida',
90
+ resultMessage: 'Você perdeu aproximadamente 1 ano de vida',
91
+ copyMessage: 'Copiado',
92
+ preset3g: '3G',
93
+ preset4g: '4G',
94
+ preset5g: '5G',
95
+ };
96
+
97
+ export const content: ToolLocaleContent<CalculadoraTiempoDatosUI> = {
98
+ slug,
99
+ title,
100
+ description,
101
+ ui,
102
+ faqTitle: 'Perguntas Frequentes',
103
+ faq: faqData,
104
+ bibliographyTitle: 'Recursos Técnicos sobre Otimização Web',
105
+ bibliography: [
106
+ { name: 'Google PageSpeed Insights', url: 'https://pagespeed.web.dev/' },
107
+ { name: 'WebPageTest - Analise a Velocidade do Website', url: 'https://www.webpagetest.org/' },
108
+ { name: 'Web.dev - Core Web Vitals', url: 'https://web.dev/vitals/' },
109
+ { name: 'MDN - Desempenho Web', url: 'https://developer.mozilla.org/en-US/docs/Web/Performance' },
110
+ ],
111
+ howTo: howToData,
112
+ schemas: [faqSchema, howToSchema, appSchema],
113
+ seo: [
114
+ { type: 'title', text: 'Por que a Velocidade de Carregamento do Website é Crítica', level: 2 },
115
+ {
116
+ type: 'paragraph',
117
+ html: 'Na era digital de hoje, a velocidade de carregamento do website não é um luxo, mas uma necessidade. Cada milissegundo conta para reter usuários, melhorar os rankings de busca e maximizar as conversões. Os usuários modernos esperam que as páginas carreguem em menos de 3 segundos.',
118
+ },
119
+ { type: 'title', text: 'Impacto na Experiência do Usuário', level: 3 },
120
+ {
121
+ type: 'paragraph',
122
+ html: '53% dos visitantes móveis abandonam uma página se ela levar mais de 3 segundos para carregar. As taxas de conversão caem 7% para cada segundo adicional de latência.',
123
+ },
124
+ { type: 'title', text: 'Entendendo as Velocidades de Conexão', level: 3 },
125
+ {
126
+ type: 'list',
127
+ items: [
128
+ '<strong>3G:</strong> 0,4 Mbps - Comum em áreas rurais e países em desenvolvimento',
129
+ '<strong>4G/LTE:</strong> 10 Mbps - Padrão em países desenvolvidos',
130
+ '<strong>5G:</strong> 100+ Mbps - Expandindo gradualmente, ainda limitado',
131
+ ],
132
+ },
133
+ { type: 'title', text: 'Estratégias para Reduzir o Peso do Site', level: 3 },
134
+ {
135
+ type: 'list',
136
+ items: [
137
+ '<strong>Otimização de Imagens:</strong> Representa 50-80% do peso. Reduza de 40-60% com ferramentas como o TinyPNG.',
138
+ '<strong>Minificação:</strong> Remova código desnecessário do CSS e JavaScript. Economize 30-50%.',
139
+ '<strong>Lazy Loading:</strong> Carregue imagens apenas quando os usuários rolarem até elas.',
140
+ '<strong>Cache do Navegador:</strong> Armazene arquivos estáticos nos navegadores dos usuários.',
141
+ '<strong>CDN:</strong> Sirva conteúdo de servidores geograficamente próximos.',
142
+ ],
143
+ },
144
+ { type: 'title', text: 'Conclusão: Cada Segundo Conta', level: 2 },
145
+ {
146
+ type: 'paragraph',
147
+ html: 'O seu website costuma ser a primeira impressão que os usuários têm da sua marca. Um site lento frustra os usuários e faz perder negócios. Um site rápido e responsivo cria uma experiência positiva e melhora todas as suas métricas.',
148
+ },
149
+ ],
150
+ };