@jjlmoya/utils-developer 1.28.0 → 1.29.1

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 (457) hide show
  1. package/package.json +1 -1
  2. package/src/entries.ts +4 -1
  3. package/src/tests/entry_contract.test.ts +10 -0
  4. package/src/tests/i18n_coverage.test.ts +5 -2
  5. package/src/tests/locale_completeness.test.ts +1 -1
  6. package/src/tests/qa-test-helpers.ts +32 -0
  7. package/src/tests/qa_bibliography_links.test.ts +43 -0
  8. package/src/tests/qa_claim_evidence.test.ts +69 -0
  9. package/src/tests/qa_logic_reference_coverage.test.ts +46 -0
  10. package/src/tests/qa_runtime_i18n.test.ts +115 -0
  11. package/src/tests/tool_validation.test.ts +1 -1
  12. package/src/tool/aspectRatio/bibliography.astro +2 -10
  13. package/src/tool/aspectRatio/bibliography.ts +7 -0
  14. package/src/tool/aspectRatio/i18n/de.ts +2 -14
  15. package/src/tool/aspectRatio/i18n/en.ts +2 -14
  16. package/src/tool/aspectRatio/i18n/es.ts +2 -14
  17. package/src/tool/aspectRatio/i18n/fr.ts +2 -14
  18. package/src/tool/aspectRatio/i18n/id.ts +2 -14
  19. package/src/tool/aspectRatio/i18n/it.ts +2 -14
  20. package/src/tool/aspectRatio/i18n/ja.ts +2 -14
  21. package/src/tool/aspectRatio/i18n/ko.ts +2 -14
  22. package/src/tool/aspectRatio/i18n/nl.ts +2 -14
  23. package/src/tool/aspectRatio/i18n/pl.ts +2 -14
  24. package/src/tool/aspectRatio/i18n/pt.ts +2 -14
  25. package/src/tool/aspectRatio/i18n/ru.ts +2 -14
  26. package/src/tool/aspectRatio/i18n/sv.ts +2 -14
  27. package/src/tool/aspectRatio/i18n/tr.ts +2 -14
  28. package/src/tool/aspectRatio/i18n/zh.ts +2 -14
  29. package/src/tool/calculadoraTiempoDatos/bibliography.astro +2 -10
  30. package/src/tool/calculadoraTiempoDatos/bibliography.ts +8 -0
  31. package/src/tool/calculadoraTiempoDatos/component.astro +6 -2
  32. package/src/tool/calculadoraTiempoDatos/i18n/de.ts +2 -6
  33. package/src/tool/calculadoraTiempoDatos/i18n/en.ts +2 -6
  34. package/src/tool/calculadoraTiempoDatos/i18n/es.ts +2 -6
  35. package/src/tool/calculadoraTiempoDatos/i18n/fr.ts +2 -6
  36. package/src/tool/calculadoraTiempoDatos/i18n/id.ts +2 -6
  37. package/src/tool/calculadoraTiempoDatos/i18n/it.ts +2 -6
  38. package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +2 -6
  39. package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +2 -6
  40. package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +2 -6
  41. package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +2 -6
  42. package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +2 -6
  43. package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +2 -6
  44. package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +2 -6
  45. package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +2 -6
  46. package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +2 -6
  47. package/src/tool/colorConverter/bibliography.astro +2 -10
  48. package/src/tool/colorConverter/bibliography.ts +7 -0
  49. package/src/tool/colorConverter/i18n/de.ts +2 -5
  50. package/src/tool/colorConverter/i18n/en.ts +5 -8
  51. package/src/tool/colorConverter/i18n/es.ts +4 -7
  52. package/src/tool/colorConverter/i18n/fr.ts +2 -5
  53. package/src/tool/colorConverter/i18n/id.ts +2 -5
  54. package/src/tool/colorConverter/i18n/it.ts +2 -5
  55. package/src/tool/colorConverter/i18n/ja.ts +2 -5
  56. package/src/tool/colorConverter/i18n/ko.ts +2 -5
  57. package/src/tool/colorConverter/i18n/nl.ts +2 -5
  58. package/src/tool/colorConverter/i18n/pl.ts +2 -5
  59. package/src/tool/colorConverter/i18n/pt.ts +2 -5
  60. package/src/tool/colorConverter/i18n/ru.ts +2 -5
  61. package/src/tool/colorConverter/i18n/sv.ts +2 -5
  62. package/src/tool/colorConverter/i18n/tr.ts +2 -5
  63. package/src/tool/colorConverter/i18n/zh.ts +2 -5
  64. package/src/tool/conversorExcelCsvHtml/bibliography.astro +2 -10
  65. package/src/tool/conversorExcelCsvHtml/bibliography.ts +8 -0
  66. package/src/tool/conversorExcelCsvHtml/component.astro +4 -3
  67. package/src/tool/conversorExcelCsvHtml/i18n/de.ts +2 -6
  68. package/src/tool/conversorExcelCsvHtml/i18n/en.ts +2 -6
  69. package/src/tool/conversorExcelCsvHtml/i18n/es.ts +2 -6
  70. package/src/tool/conversorExcelCsvHtml/i18n/fr.ts +2 -6
  71. package/src/tool/conversorExcelCsvHtml/i18n/id.ts +2 -6
  72. package/src/tool/conversorExcelCsvHtml/i18n/it.ts +2 -6
  73. package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +2 -6
  74. package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +2 -6
  75. package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +2 -6
  76. package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +2 -6
  77. package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +2 -6
  78. package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +2 -6
  79. package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +2 -6
  80. package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +2 -6
  81. package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +2 -6
  82. package/src/tool/cronGenerator/bibliography.astro +2 -10
  83. package/src/tool/cronGenerator/bibliography.ts +6 -0
  84. package/src/tool/cronGenerator/component.astro +5 -1
  85. package/src/tool/cronGenerator/i18n/de.ts +2 -10
  86. package/src/tool/cronGenerator/i18n/en.ts +2 -10
  87. package/src/tool/cronGenerator/i18n/es.ts +2 -10
  88. package/src/tool/cronGenerator/i18n/fr.ts +2 -10
  89. package/src/tool/cronGenerator/i18n/id.ts +2 -10
  90. package/src/tool/cronGenerator/i18n/it.ts +2 -10
  91. package/src/tool/cronGenerator/i18n/ja.ts +2 -10
  92. package/src/tool/cronGenerator/i18n/ko.ts +2 -10
  93. package/src/tool/cronGenerator/i18n/nl.ts +2 -10
  94. package/src/tool/cronGenerator/i18n/pl.ts +2 -10
  95. package/src/tool/cronGenerator/i18n/pt.ts +2 -10
  96. package/src/tool/cronGenerator/i18n/ru.ts +2 -10
  97. package/src/tool/cronGenerator/i18n/sv.ts +2 -10
  98. package/src/tool/cronGenerator/i18n/tr.ts +2 -10
  99. package/src/tool/cronGenerator/i18n/zh.ts +2 -10
  100. package/src/tool/cssBoxShadowGenerator/component.astro +2 -1
  101. package/src/tool/cssBoxShadowGenerator/logic.test.ts +28 -0
  102. package/src/tool/cssSpecificityCalculator/bibliography.astro +2 -10
  103. package/src/tool/cssSpecificityCalculator/bibliography.ts +6 -0
  104. package/src/tool/cssSpecificityCalculator/i18n/de.ts +2 -10
  105. package/src/tool/cssSpecificityCalculator/i18n/en.ts +2 -10
  106. package/src/tool/cssSpecificityCalculator/i18n/es.ts +2 -10
  107. package/src/tool/cssSpecificityCalculator/i18n/fr.ts +2 -10
  108. package/src/tool/cssSpecificityCalculator/i18n/id.ts +2 -10
  109. package/src/tool/cssSpecificityCalculator/i18n/it.ts +2 -10
  110. package/src/tool/cssSpecificityCalculator/i18n/ja.ts +2 -10
  111. package/src/tool/cssSpecificityCalculator/i18n/ko.ts +2 -10
  112. package/src/tool/cssSpecificityCalculator/i18n/nl.ts +2 -10
  113. package/src/tool/cssSpecificityCalculator/i18n/pl.ts +2 -10
  114. package/src/tool/cssSpecificityCalculator/i18n/pt.ts +2 -10
  115. package/src/tool/cssSpecificityCalculator/i18n/ru.ts +2 -10
  116. package/src/tool/cssSpecificityCalculator/i18n/sv.ts +2 -10
  117. package/src/tool/cssSpecificityCalculator/i18n/tr.ts +2 -10
  118. package/src/tool/cssSpecificityCalculator/i18n/zh.ts +2 -10
  119. package/src/tool/cssToInlineConverter/bibliography.astro +2 -10
  120. package/src/tool/cssToInlineConverter/bibliography.ts +7 -0
  121. package/src/tool/cssToInlineConverter/i18n/de.ts +2 -14
  122. package/src/tool/cssToInlineConverter/i18n/en.ts +4 -16
  123. package/src/tool/cssToInlineConverter/i18n/es.ts +5 -17
  124. package/src/tool/cssToInlineConverter/i18n/fr.ts +2 -14
  125. package/src/tool/cssToInlineConverter/i18n/id.ts +2 -14
  126. package/src/tool/cssToInlineConverter/i18n/it.ts +2 -14
  127. package/src/tool/cssToInlineConverter/i18n/ja.ts +2 -14
  128. package/src/tool/cssToInlineConverter/i18n/ko.ts +2 -14
  129. package/src/tool/cssToInlineConverter/i18n/nl.ts +2 -14
  130. package/src/tool/cssToInlineConverter/i18n/pl.ts +2 -14
  131. package/src/tool/cssToInlineConverter/i18n/pt.ts +2 -14
  132. package/src/tool/cssToInlineConverter/i18n/ru.ts +2 -14
  133. package/src/tool/cssToInlineConverter/i18n/sv.ts +2 -14
  134. package/src/tool/cssToInlineConverter/i18n/tr.ts +2 -14
  135. package/src/tool/cssToInlineConverter/i18n/zh.ts +2 -14
  136. package/src/tool/duplicateCssRemover/bibliography.astro +2 -10
  137. package/src/tool/duplicateCssRemover/bibliography.ts +7 -0
  138. package/src/tool/duplicateCssRemover/i18n/de.ts +2 -14
  139. package/src/tool/duplicateCssRemover/i18n/en.ts +4 -16
  140. package/src/tool/duplicateCssRemover/i18n/es.ts +4 -16
  141. package/src/tool/duplicateCssRemover/i18n/fr.ts +2 -14
  142. package/src/tool/duplicateCssRemover/i18n/id.ts +2 -14
  143. package/src/tool/duplicateCssRemover/i18n/it.ts +2 -14
  144. package/src/tool/duplicateCssRemover/i18n/ja.ts +2 -14
  145. package/src/tool/duplicateCssRemover/i18n/ko.ts +2 -14
  146. package/src/tool/duplicateCssRemover/i18n/nl.ts +2 -14
  147. package/src/tool/duplicateCssRemover/i18n/pl.ts +2 -14
  148. package/src/tool/duplicateCssRemover/i18n/pt.ts +2 -14
  149. package/src/tool/duplicateCssRemover/i18n/ru.ts +2 -14
  150. package/src/tool/duplicateCssRemover/i18n/sv.ts +2 -14
  151. package/src/tool/duplicateCssRemover/i18n/tr.ts +2 -14
  152. package/src/tool/duplicateCssRemover/i18n/zh.ts +2 -14
  153. package/src/tool/generadorSecurityTxt/bibliography.astro +2 -10
  154. package/src/tool/generadorSecurityTxt/bibliography.ts +7 -0
  155. package/src/tool/generadorSecurityTxt/component.astro +1 -2
  156. package/src/tool/generadorSecurityTxt/i18n/de.ts +2 -5
  157. package/src/tool/generadorSecurityTxt/i18n/en.ts +2 -5
  158. package/src/tool/generadorSecurityTxt/i18n/es.ts +2 -5
  159. package/src/tool/generadorSecurityTxt/i18n/fr.ts +2 -5
  160. package/src/tool/generadorSecurityTxt/i18n/id.ts +2 -5
  161. package/src/tool/generadorSecurityTxt/i18n/it.ts +2 -5
  162. package/src/tool/generadorSecurityTxt/i18n/ja.ts +2 -5
  163. package/src/tool/generadorSecurityTxt/i18n/ko.ts +2 -5
  164. package/src/tool/generadorSecurityTxt/i18n/nl.ts +2 -5
  165. package/src/tool/generadorSecurityTxt/i18n/pl.ts +2 -5
  166. package/src/tool/generadorSecurityTxt/i18n/pt.ts +2 -5
  167. package/src/tool/generadorSecurityTxt/i18n/ru.ts +2 -5
  168. package/src/tool/generadorSecurityTxt/i18n/sv.ts +2 -5
  169. package/src/tool/generadorSecurityTxt/i18n/tr.ts +2 -5
  170. package/src/tool/generadorSecurityTxt/i18n/zh.ts +2 -5
  171. package/src/tool/hashGenerator/bibliography.astro +2 -10
  172. package/src/tool/hashGenerator/bibliography.ts +7 -0
  173. package/src/tool/hashGenerator/i18n/de.ts +2 -5
  174. package/src/tool/hashGenerator/i18n/en.ts +2 -5
  175. package/src/tool/hashGenerator/i18n/es.ts +2 -5
  176. package/src/tool/hashGenerator/i18n/fr.ts +2 -5
  177. package/src/tool/hashGenerator/i18n/id.ts +2 -5
  178. package/src/tool/hashGenerator/i18n/it.ts +2 -5
  179. package/src/tool/hashGenerator/i18n/ja.ts +2 -5
  180. package/src/tool/hashGenerator/i18n/ko.ts +2 -5
  181. package/src/tool/hashGenerator/i18n/nl.ts +2 -5
  182. package/src/tool/hashGenerator/i18n/pl.ts +2 -5
  183. package/src/tool/hashGenerator/i18n/pt.ts +2 -5
  184. package/src/tool/hashGenerator/i18n/ru.ts +2 -5
  185. package/src/tool/hashGenerator/i18n/sv.ts +2 -5
  186. package/src/tool/hashGenerator/i18n/tr.ts +2 -5
  187. package/src/tool/hashGenerator/i18n/zh.ts +2 -5
  188. package/src/tool/inspectorCertificadosSsl/bibliography.astro +2 -10
  189. package/src/tool/inspectorCertificadosSsl/bibliography.ts +8 -0
  190. package/src/tool/inspectorCertificadosSsl/component.astro +4 -3
  191. package/src/tool/inspectorCertificadosSsl/i18n/de.ts +2 -6
  192. package/src/tool/inspectorCertificadosSsl/i18n/en.ts +2 -6
  193. package/src/tool/inspectorCertificadosSsl/i18n/es.ts +2 -6
  194. package/src/tool/inspectorCertificadosSsl/i18n/fr.ts +2 -6
  195. package/src/tool/inspectorCertificadosSsl/i18n/id.ts +2 -6
  196. package/src/tool/inspectorCertificadosSsl/i18n/it.ts +2 -6
  197. package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +2 -6
  198. package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +2 -6
  199. package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +2 -6
  200. package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +2 -6
  201. package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +2 -6
  202. package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +2 -6
  203. package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +2 -6
  204. package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +2 -6
  205. package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +2 -6
  206. package/src/tool/jsonFormatter/bibliography.astro +2 -10
  207. package/src/tool/jsonFormatter/bibliography.ts +8 -0
  208. package/src/tool/jsonFormatter/i18n/de.ts +2 -18
  209. package/src/tool/jsonFormatter/i18n/en.ts +2 -18
  210. package/src/tool/jsonFormatter/i18n/es.ts +2 -18
  211. package/src/tool/jsonFormatter/i18n/fr.ts +2 -18
  212. package/src/tool/jsonFormatter/i18n/id.ts +2 -18
  213. package/src/tool/jsonFormatter/i18n/it.ts +2 -18
  214. package/src/tool/jsonFormatter/i18n/ja.ts +2 -18
  215. package/src/tool/jsonFormatter/i18n/ko.ts +2 -18
  216. package/src/tool/jsonFormatter/i18n/nl.ts +2 -18
  217. package/src/tool/jsonFormatter/i18n/pl.ts +2 -18
  218. package/src/tool/jsonFormatter/i18n/pt.ts +2 -18
  219. package/src/tool/jsonFormatter/i18n/ru.ts +2 -18
  220. package/src/tool/jsonFormatter/i18n/sv.ts +2 -18
  221. package/src/tool/jsonFormatter/i18n/tr.ts +2 -18
  222. package/src/tool/jsonFormatter/i18n/zh.ts +2 -18
  223. package/src/tool/jwtDecoder/component.astro +2 -1
  224. package/src/tool/jwtDecoder/logic.test.ts +32 -0
  225. package/src/tool/keycode/bibliography.astro +2 -10
  226. package/src/tool/keycode/bibliography.ts +7 -0
  227. package/src/tool/keycode/i18n/de.ts +2 -14
  228. package/src/tool/keycode/i18n/en.ts +2 -14
  229. package/src/tool/keycode/i18n/es.ts +2 -14
  230. package/src/tool/keycode/i18n/fr.ts +2 -14
  231. package/src/tool/keycode/i18n/id.ts +2 -14
  232. package/src/tool/keycode/i18n/it.ts +2 -14
  233. package/src/tool/keycode/i18n/ja.ts +2 -14
  234. package/src/tool/keycode/i18n/ko.ts +2 -14
  235. package/src/tool/keycode/i18n/nl.ts +2 -14
  236. package/src/tool/keycode/i18n/pl.ts +2 -14
  237. package/src/tool/keycode/i18n/pt.ts +2 -14
  238. package/src/tool/keycode/i18n/ru.ts +2 -14
  239. package/src/tool/keycode/i18n/sv.ts +2 -14
  240. package/src/tool/keycode/i18n/tr.ts +2 -14
  241. package/src/tool/keycode/i18n/zh.ts +2 -14
  242. package/src/tool/llmCostCalculator/bibliography.astro +2 -10
  243. package/src/tool/llmCostCalculator/bibliography.ts +8 -0
  244. package/src/tool/llmCostCalculator/i18n/de.ts +2 -18
  245. package/src/tool/llmCostCalculator/i18n/en.ts +2 -18
  246. package/src/tool/llmCostCalculator/i18n/es.ts +2 -18
  247. package/src/tool/llmCostCalculator/i18n/fr.ts +2 -18
  248. package/src/tool/llmCostCalculator/i18n/id.ts +2 -18
  249. package/src/tool/llmCostCalculator/i18n/it.ts +2 -18
  250. package/src/tool/llmCostCalculator/i18n/ja.ts +2 -18
  251. package/src/tool/llmCostCalculator/i18n/ko.ts +2 -18
  252. package/src/tool/llmCostCalculator/i18n/nl.ts +2 -18
  253. package/src/tool/llmCostCalculator/i18n/pl.ts +2 -18
  254. package/src/tool/llmCostCalculator/i18n/pt.ts +2 -18
  255. package/src/tool/llmCostCalculator/i18n/ru.ts +2 -18
  256. package/src/tool/llmCostCalculator/i18n/sv.ts +2 -18
  257. package/src/tool/llmCostCalculator/i18n/tr.ts +2 -18
  258. package/src/tool/llmCostCalculator/i18n/zh.ts +2 -18
  259. package/src/tool/mobileMockupGenerator/bibliography.astro +2 -10
  260. package/src/tool/mobileMockupGenerator/bibliography.ts +6 -0
  261. package/src/tool/mobileMockupGenerator/i18n/de.ts +2 -4
  262. package/src/tool/mobileMockupGenerator/i18n/en.ts +2 -4
  263. package/src/tool/mobileMockupGenerator/i18n/es.ts +2 -4
  264. package/src/tool/mobileMockupGenerator/i18n/fr.ts +2 -4
  265. package/src/tool/mobileMockupGenerator/i18n/id.ts +2 -4
  266. package/src/tool/mobileMockupGenerator/i18n/it.ts +2 -4
  267. package/src/tool/mobileMockupGenerator/i18n/ja.ts +2 -4
  268. package/src/tool/mobileMockupGenerator/i18n/ko.ts +2 -4
  269. package/src/tool/mobileMockupGenerator/i18n/nl.ts +2 -4
  270. package/src/tool/mobileMockupGenerator/i18n/pl.ts +2 -1
  271. package/src/tool/mobileMockupGenerator/i18n/pt.ts +2 -4
  272. package/src/tool/mobileMockupGenerator/i18n/ru.ts +2 -4
  273. package/src/tool/mobileMockupGenerator/i18n/sv.ts +2 -4
  274. package/src/tool/mobileMockupGenerator/i18n/tr.ts +2 -4
  275. package/src/tool/mobileMockupGenerator/i18n/zh.ts +2 -4
  276. package/src/tool/musicalTypography/bibliography.astro +2 -10
  277. package/src/tool/musicalTypography/bibliography.ts +7 -0
  278. package/src/tool/musicalTypography/i18n/de.ts +2 -14
  279. package/src/tool/musicalTypography/i18n/en.ts +3 -15
  280. package/src/tool/musicalTypography/i18n/es.ts +3 -15
  281. package/src/tool/musicalTypography/i18n/fr.ts +2 -14
  282. package/src/tool/musicalTypography/i18n/id.ts +2 -14
  283. package/src/tool/musicalTypography/i18n/it.ts +2 -14
  284. package/src/tool/musicalTypography/i18n/ja.ts +2 -14
  285. package/src/tool/musicalTypography/i18n/ko.ts +2 -14
  286. package/src/tool/musicalTypography/i18n/nl.ts +2 -14
  287. package/src/tool/musicalTypography/i18n/pl.ts +2 -14
  288. package/src/tool/musicalTypography/i18n/pt.ts +2 -5
  289. package/src/tool/musicalTypography/i18n/ru.ts +2 -5
  290. package/src/tool/musicalTypography/i18n/sv.ts +2 -1
  291. package/src/tool/musicalTypography/i18n/tr.ts +2 -1
  292. package/src/tool/musicalTypography/i18n/zh.ts +2 -1
  293. package/src/tool/placeholderGenerator/bibliography.astro +2 -10
  294. package/src/tool/placeholderGenerator/bibliography.ts +7 -0
  295. package/src/tool/placeholderGenerator/i18n/de.ts +2 -14
  296. package/src/tool/placeholderGenerator/i18n/en.ts +4 -16
  297. package/src/tool/placeholderGenerator/i18n/es.ts +4 -16
  298. package/src/tool/placeholderGenerator/i18n/fr.ts +2 -14
  299. package/src/tool/placeholderGenerator/i18n/id.ts +2 -14
  300. package/src/tool/placeholderGenerator/i18n/it.ts +2 -14
  301. package/src/tool/placeholderGenerator/i18n/ja.ts +2 -14
  302. package/src/tool/placeholderGenerator/i18n/ko.ts +2 -14
  303. package/src/tool/placeholderGenerator/i18n/nl.ts +2 -14
  304. package/src/tool/placeholderGenerator/i18n/pl.ts +2 -14
  305. package/src/tool/placeholderGenerator/i18n/pt.ts +2 -14
  306. package/src/tool/placeholderGenerator/i18n/ru.ts +2 -14
  307. package/src/tool/placeholderGenerator/i18n/sv.ts +2 -14
  308. package/src/tool/placeholderGenerator/i18n/tr.ts +2 -14
  309. package/src/tool/placeholderGenerator/i18n/zh.ts +2 -14
  310. package/src/tool/promoteThisWebsite/asset-bindings.ts +73 -0
  311. package/src/tool/promoteThisWebsite/bibliography.astro +14 -0
  312. package/src/tool/promoteThisWebsite/bibliography.ts +14 -0
  313. package/src/tool/promoteThisWebsite/component.astro +136 -0
  314. package/src/tool/promoteThisWebsite/control-views.ts +83 -0
  315. package/src/tool/promoteThisWebsite/controller.ts +232 -0
  316. package/src/tool/promoteThisWebsite/dom-views.ts +322 -0
  317. package/src/tool/promoteThisWebsite/entry.ts +16 -0
  318. package/src/tool/promoteThisWebsite/evaluator.ts +9 -0
  319. package/src/tool/promoteThisWebsite/i18n/en.ts +111 -0
  320. package/src/tool/promoteThisWebsite/i18n/es.ts +111 -0
  321. package/src/tool/promoteThisWebsite/index.ts +11 -0
  322. package/src/tool/promoteThisWebsite/jjlmoya-overlay.png +0 -0
  323. package/src/tool/promoteThisWebsite/logic.test.ts +29 -0
  324. package/src/tool/promoteThisWebsite/logic.ts +108 -0
  325. package/src/tool/promoteThisWebsite/pixel-cat.png +0 -0
  326. package/src/tool/promoteThisWebsite/promote-this-website.css +322 -0
  327. package/src/tool/promoteThisWebsite/seo.astro +15 -0
  328. package/src/tool/promoteThisWebsite/storage.ts +28 -0
  329. package/src/tool/promoteThisWebsite/title-view.ts +206 -0
  330. package/src/tool/promoteThisWebsite/ui.ts +59 -0
  331. package/src/tool/promptLibrary/bibliography.astro +2 -10
  332. package/src/tool/promptLibrary/bibliography.ts +6 -0
  333. package/src/tool/promptLibrary/i18n/de.ts +2 -4
  334. package/src/tool/promptLibrary/i18n/en.ts +2 -4
  335. package/src/tool/promptLibrary/i18n/es.ts +2 -4
  336. package/src/tool/promptLibrary/i18n/fr.ts +2 -4
  337. package/src/tool/promptLibrary/i18n/id.ts +2 -4
  338. package/src/tool/promptLibrary/i18n/it.ts +2 -4
  339. package/src/tool/promptLibrary/i18n/ja.ts +2 -4
  340. package/src/tool/promptLibrary/i18n/ko.ts +2 -4
  341. package/src/tool/promptLibrary/i18n/nl.ts +2 -4
  342. package/src/tool/promptLibrary/i18n/pl.ts +2 -1
  343. package/src/tool/promptLibrary/i18n/pt.ts +2 -4
  344. package/src/tool/promptLibrary/i18n/ru.ts +2 -4
  345. package/src/tool/promptLibrary/i18n/sv.ts +2 -4
  346. package/src/tool/promptLibrary/i18n/tr.ts +2 -4
  347. package/src/tool/promptLibrary/i18n/zh.ts +2 -4
  348. package/src/tool/readabilityCalculator/bibliography.astro +2 -10
  349. package/src/tool/readabilityCalculator/bibliography.ts +7 -0
  350. package/src/tool/readabilityCalculator/i18n/de.ts +2 -5
  351. package/src/tool/readabilityCalculator/i18n/en.ts +2 -5
  352. package/src/tool/readabilityCalculator/i18n/es.ts +2 -5
  353. package/src/tool/readabilityCalculator/i18n/fr.ts +2 -5
  354. package/src/tool/readabilityCalculator/i18n/id.ts +2 -5
  355. package/src/tool/readabilityCalculator/i18n/it.ts +2 -5
  356. package/src/tool/readabilityCalculator/i18n/ja.ts +2 -5
  357. package/src/tool/readabilityCalculator/i18n/ko.ts +2 -5
  358. package/src/tool/readabilityCalculator/i18n/nl.ts +2 -5
  359. package/src/tool/readabilityCalculator/i18n/pl.ts +2 -1
  360. package/src/tool/readabilityCalculator/i18n/pt.ts +2 -5
  361. package/src/tool/readabilityCalculator/i18n/ru.ts +2 -5
  362. package/src/tool/readabilityCalculator/i18n/sv.ts +2 -5
  363. package/src/tool/readabilityCalculator/i18n/tr.ts +2 -5
  364. package/src/tool/readabilityCalculator/i18n/zh.ts +2 -5
  365. package/src/tool/serpPixelSimulator/controller.ts +1 -0
  366. package/src/tool/serpPixelSimulator/i18n/en.ts +2 -2
  367. package/src/tool/serpPixelSimulator/i18n/es.ts +2 -2
  368. package/src/tool/serpPixelSimulator/logic.test.ts +25 -0
  369. package/src/tool/svgSanitizer/bibliography.astro +2 -10
  370. package/src/tool/svgSanitizer/bibliography.ts +7 -0
  371. package/src/tool/svgSanitizer/i18n/de.ts +2 -5
  372. package/src/tool/svgSanitizer/i18n/en.ts +2 -5
  373. package/src/tool/svgSanitizer/i18n/es.ts +2 -5
  374. package/src/tool/svgSanitizer/i18n/fr.ts +2 -5
  375. package/src/tool/svgSanitizer/i18n/id.ts +2 -5
  376. package/src/tool/svgSanitizer/i18n/it.ts +2 -5
  377. package/src/tool/svgSanitizer/i18n/ja.ts +2 -5
  378. package/src/tool/svgSanitizer/i18n/ko.ts +2 -5
  379. package/src/tool/svgSanitizer/i18n/nl.ts +2 -5
  380. package/src/tool/svgSanitizer/i18n/pl.ts +2 -5
  381. package/src/tool/svgSanitizer/i18n/pt.ts +2 -1
  382. package/src/tool/svgSanitizer/i18n/ru.ts +2 -5
  383. package/src/tool/svgSanitizer/i18n/sv.ts +2 -5
  384. package/src/tool/svgSanitizer/i18n/tr.ts +2 -5
  385. package/src/tool/svgSanitizer/i18n/zh.ts +2 -5
  386. package/src/tool/svgToCss/bibliography.astro +2 -10
  387. package/src/tool/svgToCss/bibliography.ts +8 -0
  388. package/src/tool/svgToCss/i18n/de.ts +2 -18
  389. package/src/tool/svgToCss/i18n/en.ts +2 -18
  390. package/src/tool/svgToCss/i18n/es.ts +2 -18
  391. package/src/tool/svgToCss/i18n/fr.ts +2 -18
  392. package/src/tool/svgToCss/i18n/id.ts +2 -18
  393. package/src/tool/svgToCss/i18n/it.ts +2 -18
  394. package/src/tool/svgToCss/i18n/ja.ts +2 -18
  395. package/src/tool/svgToCss/i18n/ko.ts +2 -18
  396. package/src/tool/svgToCss/i18n/nl.ts +2 -18
  397. package/src/tool/svgToCss/i18n/pl.ts +2 -18
  398. package/src/tool/svgToCss/i18n/pt.ts +2 -18
  399. package/src/tool/svgToCss/i18n/ru.ts +2 -18
  400. package/src/tool/svgToCss/i18n/sv.ts +2 -18
  401. package/src/tool/svgToCss/i18n/tr.ts +2 -18
  402. package/src/tool/svgToCss/i18n/zh.ts +2 -18
  403. package/src/tool/urlCleaner/bibliography.astro +2 -10
  404. package/src/tool/urlCleaner/bibliography.ts +7 -0
  405. package/src/tool/urlCleaner/i18n/de.ts +2 -5
  406. package/src/tool/urlCleaner/i18n/en.ts +2 -5
  407. package/src/tool/urlCleaner/i18n/es.ts +2 -5
  408. package/src/tool/urlCleaner/i18n/fr.ts +2 -5
  409. package/src/tool/urlCleaner/i18n/id.ts +2 -5
  410. package/src/tool/urlCleaner/i18n/it.ts +2 -5
  411. package/src/tool/urlCleaner/i18n/ja.ts +2 -5
  412. package/src/tool/urlCleaner/i18n/ko.ts +2 -5
  413. package/src/tool/urlCleaner/i18n/nl.ts +2 -5
  414. package/src/tool/urlCleaner/i18n/pl.ts +2 -1
  415. package/src/tool/urlCleaner/i18n/pt.ts +2 -5
  416. package/src/tool/urlCleaner/i18n/ru.ts +2 -5
  417. package/src/tool/urlCleaner/i18n/sv.ts +2 -5
  418. package/src/tool/urlCleaner/i18n/tr.ts +2 -5
  419. package/src/tool/urlCleaner/i18n/zh.ts +2 -5
  420. package/src/tool/urlEncoderDecoder/bibliography.astro +2 -10
  421. package/src/tool/urlEncoderDecoder/bibliography.ts +7 -0
  422. package/src/tool/urlEncoderDecoder/i18n/de.ts +2 -14
  423. package/src/tool/urlEncoderDecoder/i18n/en.ts +3 -15
  424. package/src/tool/urlEncoderDecoder/i18n/es.ts +3 -15
  425. package/src/tool/urlEncoderDecoder/i18n/fr.ts +2 -14
  426. package/src/tool/urlEncoderDecoder/i18n/id.ts +2 -14
  427. package/src/tool/urlEncoderDecoder/i18n/it.ts +2 -14
  428. package/src/tool/urlEncoderDecoder/i18n/ja.ts +2 -14
  429. package/src/tool/urlEncoderDecoder/i18n/ko.ts +2 -14
  430. package/src/tool/urlEncoderDecoder/i18n/nl.ts +2 -14
  431. package/src/tool/urlEncoderDecoder/i18n/pl.ts +2 -14
  432. package/src/tool/urlEncoderDecoder/i18n/pt.ts +2 -14
  433. package/src/tool/urlEncoderDecoder/i18n/ru.ts +2 -14
  434. package/src/tool/urlEncoderDecoder/i18n/sv.ts +2 -14
  435. package/src/tool/urlEncoderDecoder/i18n/tr.ts +2 -14
  436. package/src/tool/urlEncoderDecoder/i18n/zh.ts +2 -14
  437. package/src/tool/utmGenerator/bibliography.astro +2 -10
  438. package/src/tool/utmGenerator/bibliography.ts +6 -0
  439. package/src/tool/utmGenerator/i18n/de.ts +2 -4
  440. package/src/tool/utmGenerator/i18n/en.ts +2 -4
  441. package/src/tool/utmGenerator/i18n/es.ts +2 -4
  442. package/src/tool/utmGenerator/i18n/fr.ts +2 -4
  443. package/src/tool/utmGenerator/i18n/id.ts +2 -4
  444. package/src/tool/utmGenerator/i18n/it.ts +2 -4
  445. package/src/tool/utmGenerator/i18n/ja.ts +2 -4
  446. package/src/tool/utmGenerator/i18n/ko.ts +2 -4
  447. package/src/tool/utmGenerator/i18n/nl.ts +2 -4
  448. package/src/tool/utmGenerator/i18n/pl.ts +2 -4
  449. package/src/tool/utmGenerator/i18n/pt.ts +2 -4
  450. package/src/tool/utmGenerator/i18n/ru.ts +2 -4
  451. package/src/tool/utmGenerator/i18n/sv.ts +2 -4
  452. package/src/tool/utmGenerator/i18n/tr.ts +2 -4
  453. package/src/tool/utmGenerator/i18n/zh.ts +2 -4
  454. package/src/tool/visualCssGridFlexboxGenerator/component.astro +1 -0
  455. package/src/tool/visualCssGridFlexboxGenerator/logic.test.ts +29 -0
  456. package/src/tool/visualCssGridFlexboxGenerator/workspace.ts +13 -1
  457. package/src/tools.ts +2 -1
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -95,10 +96,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
95
96
  faqTitle: 'Preguntas Frecuentes',
96
97
  faq: faqData,
97
98
  bibliographyTitle: 'Referencias sobre Prompt Engineering',
98
- bibliography: [
99
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
- { name: 'Qu\u00e9 es prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
- ],
99
+ bibliography,
102
100
  howTo: howToData,
103
101
  schemas: [faqSchema, howToSchema, appSchema],
104
102
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -95,10 +96,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
95
96
  faqTitle: 'Questions Fr\u00e9quentes',
96
97
  faq: faqData,
97
98
  bibliographyTitle: 'R\u00e9f\u00e9rences sur le Prompt Engineering',
98
- bibliography: [
99
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
- { name: 'Qu\'est-ce que le prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
- ],
99
+ bibliography,
102
100
  howTo: howToData,
103
101
  schemas: [faqSchema, howToSchema, appSchema],
104
102
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -95,10 +96,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
95
96
  faqTitle: 'Pertanyaan yang Sering Diajukan',
96
97
  faq: faqData,
97
98
  bibliographyTitle: 'Referensi Prompt Engineering',
98
- bibliography: [
99
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
- { name: 'Apa itu prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
- ],
99
+ bibliography,
102
100
  howTo: howToData,
103
101
  schemas: [faqSchema, howToSchema, appSchema],
104
102
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -95,10 +96,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
95
96
  faqTitle: 'Domande Frequenti',
96
97
  faq: faqData,
97
98
  bibliographyTitle: 'Riferimenti sul Prompt Engineering',
98
- bibliography: [
99
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
- { name: 'Che cos\'è il prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
- ],
99
+ bibliography,
102
100
  howTo: howToData,
103
101
  schemas: [faqSchema, howToSchema, appSchema],
104
102
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -95,10 +96,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
95
96
  faqTitle: 'よくある質問',
96
97
  faq: faqData,
97
98
  bibliographyTitle: 'プロンプトエンジニアリング参考資料',
98
- bibliography: [
99
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
- { name: 'プロンプトエンジニアリングとは(Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
- ],
99
+ bibliography,
102
100
  howTo: howToData,
103
101
  schemas: [faqSchema, howToSchema, appSchema],
104
102
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -95,10 +96,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
95
96
  faqTitle: '자주 묻는 질문',
96
97
  faq: faqData,
97
98
  bibliographyTitle: '프롬프트 엔지니어링 참고자료',
98
- bibliography: [
99
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
- { name: '프롬프트 엔지니어링이란 (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
- ],
99
+ bibliography,
102
100
  howTo: howToData,
103
101
  schemas: [faqSchema, howToSchema, appSchema],
104
102
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -95,10 +96,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
95
96
  faqTitle: 'Veelgestelde Vragen',
96
97
  faq: faqData,
97
98
  bibliographyTitle: 'Referenties over Prompt Engineering',
98
- bibliography: [
99
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
100
- { name: 'Wat is prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
101
- ],
99
+ bibliography,
102
100
  howTo: howToData,
103
101
  schemas: [faqSchema, howToSchema, appSchema],
104
102
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -25,4 +26,4 @@ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schem
25
26
 
26
27
  const ui: PromptLibraryUI = { placeholderSearch: 'Wyszukiwanie po słowie kluczowym lub tagu...', btnNew: 'Nowy Prompt', emptyTitle: 'Twoja biblioteka jest pusta', emptyDesc: 'Utwórz swój pierwszy prompt i zacznij budować prywatne repozytorium AI.', btnAddFirst: 'Dodaj pierwszy', modalTitleCreate: 'Utwórz Nowy Prompt', modalTitleEdit: 'Edytuj Prompt', labelTitle: 'Tytuł identyfikujący', placeholderTitle: 'Np.: Ekspert Marketingu SEO', labelContent: 'Instrukcja (Prompt)', placeholderContent: 'Wpisz tutaj szczegółowe instrukcje dla AI...', hintContent: 'Wskazówka: używaj nawiasów [TAKIE TO] do zmiennych, które wypełnisz później.', labelTags: 'Tagi', placeholderTags: 'Np.: marketing, seo (spacja lub przecinek do dodawania)', btnCancel: 'Anuluj', btnSave: 'Zapisz Lokalnie', ariaLabelStar: 'Oznacz prompt gwiazdką', ariaLabelEdit: 'Edytuj prompt', ariaLabelShare: 'Udostępniaj prompt', ariaLabelCopy: 'Kopiuj prompt', ariaLabelDelete: 'Usuń prompt', varsTitle: 'Wymagane zmienne', noResults: 'Nie znaleziono promptów dla tego wyszukiwania.', confirmTitle: 'Usunąć prompt?', confirmDesc: 'Tej akcji nie można cofnąć.', btnCancelDelete: 'Anuluj', btnConfirmDelete: 'Usuń permanentnie', };
27
28
 
28
- export const content: ToolLocaleContent<PromptLibraryUI> = { slug, title, description, ui, faqTitle: 'Często Zadawane Pytania', faq: faqData, bibliographyTitle: 'Referencje Inżynierii Promptów', bibliography: [{ name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' }, { name: 'What is prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' }], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Dlaczego potrzebujesz biblioteki promptów?', level: 2 }, { type: 'paragraph', html: 'Jeśli regularnie pracujesz z narzędziami AI, takimi jak ChatGPT, Claude czy Midjourney, pewnie zauważyłeś, że powtarzasz te same instrukcje. <strong>Biblioteka promptów</strong> to ostateczne rozwiązanie, aby przestać zmarnować czas na przepisywanie ulubionych poleceń.' }, { type: 'title', text: 'Korzyści z organizowania promptów', level: 3 }, { type: 'list', items: ['<strong>Błyskawiczne wyszukiwanie:</strong> Znajdź tę konkretną instrukcję, którą używałeś miesiące temu, za pomocą prostego wyszukiwania tekstowego.', '<strong>Klasyfikacja tagami:</strong> Taguj prompty jako "marketing", "programowanie" czy "copywriting", aby szybko filtrować.', '<strong>Kopiowanie jednym kliknięciem:</strong> Skopiuj pełny tekst do schowka jednym kliknięciem.', '<strong>Całkowita prywatność:</strong> Wszystkie Twoje dane są przechowywane lokalnie w przeglądarce poprzez localStorage.'] }, { type: 'title', text: 'Zmienne w Twoich promptach', level: 3 }, { type: 'paragraph', html: 'Użyj notacji <strong>[ZMIENNA]</strong> w swoich promptach, aby tworzyć dynamicznie wypełnialne pola. Gdy otworzysz kartę, pojawią się pola wejściowe dla każdej zdefiniowanej zmiennej. Prompt jest kopiowany ze wypełnionymi wartościami, gotowy do wklejenia do swojego AI.' }, { type: 'title', text: 'Udostępnianie promptów', level: 3 }, { type: 'paragraph', html: 'Każdy prompt można udostępnić poprzez URL. Przycisk udostępniania generuje link, który po otwarciu pokazuje formularz tworzenia wstępnie wypełniony zawartością promptu.' }] };
29
+ export const content: ToolLocaleContent<PromptLibraryUI> = { slug, title, description, ui, faqTitle: 'Często Zadawane Pytania', faq: faqData, bibliographyTitle: 'Referencje Inżynierii Promptów', bibliography, howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Dlaczego potrzebujesz biblioteki promptów?', level: 2 }, { type: 'paragraph', html: 'Jeśli regularnie pracujesz z narzędziami AI, takimi jak ChatGPT, Claude czy Midjourney, pewnie zauważyłeś, że powtarzasz te same instrukcje. <strong>Biblioteka promptów</strong> to ostateczne rozwiązanie, aby przestać zmarnować czas na przepisywanie ulubionych poleceń.' }, { type: 'title', text: 'Korzyści z organizowania promptów', level: 3 }, { type: 'list', items: ['<strong>Błyskawiczne wyszukiwanie:</strong> Znajdź tę konkretną instrukcję, którą używałeś miesiące temu, za pomocą prostego wyszukiwania tekstowego.', '<strong>Klasyfikacja tagami:</strong> Taguj prompty jako "marketing", "programowanie" czy "copywriting", aby szybko filtrować.', '<strong>Kopiowanie jednym kliknięciem:</strong> Skopiuj pełny tekst do schowka jednym kliknięciem.', '<strong>Całkowita prywatność:</strong> Wszystkie Twoje dane są przechowywane lokalnie w przeglądarce poprzez localStorage.'] }, { type: 'title', text: 'Zmienne w Twoich promptach', level: 3 }, { type: 'paragraph', html: 'Użyj notacji <strong>[ZMIENNA]</strong> w swoich promptach, aby tworzyć dynamicznie wypełnialne pola. Gdy otworzysz kartę, pojawią się pola wejściowe dla każdej zdefiniowanej zmiennej. Prompt jest kopiowany ze wypełnionymi wartościami, gotowy do wklejenia do swojego AI.' }, { type: 'title', text: 'Udostępnianie promptów', level: 3 }, { type: 'paragraph', html: 'Każdy prompt można udostępnić poprzez URL. Przycisk udostępniania generuje link, który po otwarciu pokazuje formularz tworzenia wstępnie wypełniony zawartością promptu.' }] };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -82,10 +83,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
82
83
  faqTitle: 'Perguntas Frequentes',
83
84
  faq: faqData,
84
85
  bibliographyTitle: 'Referências de Engenharia de Prompts',
85
- bibliography: [
86
- { name: 'Guia de Engenharia de Prompts (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
87
- { name: 'O que é engenharia de prompts (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
88
- ],
86
+ bibliography,
89
87
  howTo: howToData,
90
88
  schemas: [faqSchema, howToSchema, appSchema],
91
89
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -82,10 +83,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
82
83
  faqTitle: 'Часто Задаваемые Вопросы',
83
84
  faq: faqData,
84
85
  bibliographyTitle: 'Справки по Инженерии Промптов',
85
- bibliography: [
86
- { name: 'Путеводитель по Инженерии Промптов (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
87
- { name: 'Что такое инженерия промптов (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
88
- ],
86
+ bibliography,
89
87
  howTo: howToData,
90
88
  schemas: [faqSchema, howToSchema, appSchema],
91
89
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -74,10 +75,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
74
75
  faqTitle: 'Vanliga Frågor',
75
76
  faq: faqData,
76
77
  bibliographyTitle: 'Prompt Engineering Referenser',
77
- bibliography: [
78
- { name: 'Prompt Engineering Guide (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
79
- { name: 'Vad är prompt engineering (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
80
- ],
78
+ bibliography,
81
79
  howTo: howToData,
82
80
  schemas: [faqSchema, howToSchema, appSchema],
83
81
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -74,10 +75,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
74
75
  faqTitle: 'Sık Sorulan Sorular',
75
76
  faq: faqData,
76
77
  bibliographyTitle: 'Prompt Mühendisliği Referansları',
77
- bibliography: [
78
- { name: 'Prompt Mühendisliği Kılavuzu (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
79
- { name: 'Prompt Mühendisliği Nedir (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
80
- ],
78
+ bibliography,
81
79
  howTo: howToData,
82
80
  schemas: [faqSchema, howToSchema, appSchema],
83
81
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { PromptLibraryUI } from '../ui';
@@ -74,10 +75,7 @@ export const content: ToolLocaleContent<PromptLibraryUI> = {
74
75
  faqTitle: '常见问题',
75
76
  faq: faqData,
76
77
  bibliographyTitle: '提示工程参考',
77
- bibliography: [
78
- { name: '提示工程指南 (DAIR.AI)', url: 'https://www.promptingguide.ai/' },
79
- { name: '什么是提示工程 (Google Cloud)', url: 'https://cloud.google.com/discover/what-is-prompt-engineering' },
80
- ],
78
+ bibliography,
81
79
  howTo: howToData,
82
80
  schemas: [faqSchema, howToSchema, appSchema],
83
81
  seo: [
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { readabilityCalculator } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await readabilityCalculator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,7 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
5
+ { name: 'Myndex: APCA reference implementation', url: 'https://github.com/Myndex/apca-w3' },
6
+ { name: 'MDN: Accessibility and Color Contrast', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
7
+ ];
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'Häufig gestellte Fragen',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'Ressourcen zu Kontrast und APCA',
100
- bibliography: [
101
- { name: 'W3C: WCAG 3.0 Entwurf (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: APCA Referenzhandbuch', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: Barrierefreiheit und Farbkontrast', url: 'https://developer.mozilla.org/de/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'Frequently Asked Questions',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'Resources on Contrast and APCA',
100
- bibliography: [
101
- { name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: APCA Reference Guide', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: Accessibility and Color Contrast', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'Preguntas Frecuentes',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'Recursos sobre Contraste y APCA',
100
- bibliography: [
101
- { name: 'W3C: Draft de WCAG 3.0 (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: Gu\u00eda de Referencia APCA', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: Accesibilidad y Contraste de Color', url: 'https://developer.mozilla.org/es/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'Questions Fr\u00e9quentes',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'Ressources sur le Contraste et APCA',
100
- bibliography: [
101
- { name: 'W3C: Brouillon WCAG 3.0 (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: Guide de R\u00e9f\u00e9rence APCA', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: Accessibilit\u00e9 et Contraste des Couleurs', url: 'https://developer.mozilla.org/fr/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'Pertanyaan yang Sering Diajukan',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'Sumber tentang Kontras dan APCA',
100
- bibliography: [
101
- { name: 'W3C: Draf WCAG 3.0 (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: Panduan Referensi APCA', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: Aksesibilitas dan Kontras Warna', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'Domande Frequenti',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'Risorse su Contrasto e APCA',
100
- bibliography: [
101
- { name: 'W3C: Bozza WCAG 3.0 (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: Guida di Riferimento APCA', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: Accessibilità e Contrasto Colore', url: 'https://developer.mozilla.org/it/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'よくある質問',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'コントラストとAPCAに関するリソース',
100
- bibliography: [
101
- { name: 'W3C: WCAG 3.0 ドラフト(Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: APCA リファレンスガイド', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: アクセシビリティとカラーコントラスト', url: 'https://developer.mozilla.org/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: '자주 묻는 질문',
98
99
  faq: faqData,
99
100
  bibliographyTitle: '명암 대비와 APCA 관련 자료',
100
- bibliography: [
101
- { name: 'W3C: WCAG 3.0 초안 (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: APCA 참조 가이드', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: 접근성과 색상 명암 대비', url: 'https://developer.mozilla.org/ko/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -97,11 +98,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
97
98
  faqTitle: 'Veelgestelde vragen',
98
99
  faq: faqData,
99
100
  bibliographyTitle: 'Bronnen over contrast en APCA',
100
- bibliography: [
101
- { name: 'W3C: WCAG 3.0-concept (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
102
- { name: 'Myndex: APCA-referentiegids', url: 'https://apcaw3.myndex.com/' },
103
- { name: 'MDN: Toegankelijkheid en kleurcontrast', url: 'https://developer.mozilla.org/nl/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
104
- ],
101
+ bibliography,
105
102
  howTo: howToData,
106
103
  schemas: [faqSchema, howToSchema, appSchema],
107
104
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -26,4 +27,4 @@ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schem
26
27
 
27
28
  const ui: ReadabilityCalculatorUI = { labelColors: 'Kolory Bazowe', labelText: 'Tekst', labelBg: 'Tło', labelTypo: 'Typografia', labelFontSize: 'Rozmiar Czcionki', labelFontWeight: 'Waga', labelCompare: 'Porównanie Kontrastu', labelPreview: 'Percepcyjny Podgląd', labelApcaRecs: 'Rekomendacje APCA', labelBody: 'Tekst Czytania (Treść)', labelSmall: 'Mały Tekst / Podpis', labelUi: 'UI / Przyciski', statusYes: 'Tak', statusNo: 'Nie', wcagAAA: 'Przechodzi AAA', wcagAA: 'Przechodzi AA', wcagLarge: 'Tylko duży tekst', wcagFail: 'Niepowodzenie', apcaExcellent: 'Doskonały', apcaGood: 'Dobry', apcaMinimal: 'Minimalny', apcaPoor: 'Słaby', previewText: 'Czytelność wizualna to nie tylko matematyka. To jak światło i cień oddziałują na twoje oczy.', wcagRatioLabel: 'Stosunek WCAG 2.1', apcaLcLabel: 'APCA Lc (WCAG 3)', };
28
29
 
29
- export const content: ToolLocaleContent<ReadabilityCalculatorUI> = { slug, title, description, ui, faqTitle: 'Często Zadawane Pytania', faq: faqData, bibliographyTitle: 'Zasoby na temat Kontrastu i APCA', bibliography: [{ name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' }, { name: 'Myndex: APCA Reference Guide', url: 'https://apcaw3.myndex.com/' }, { name: 'MDN: Accessibility and Color Contrast', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' }], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Kalkulator Czytelności Wizualnej (WCAG vs APCA)', level: 2 }, { type: 'paragraph', html: 'Dowiedz się, jak Twoje kolory i typografia wpływają na rzeczywiste czytanie za pomocą nowego standardu percepcyjnej dostępności. WCAG 2.1 używa prostego wzoru matematycznego z 2008 roku. <strong>APCA</strong> to nowy model proponowany dla <strong>WCAG 3.0</strong>, który naśladuje percepcję człowieka.' }, { type: 'title', text: 'Kluczowe Punkty APCA', level: 3 }, { type: 'list', items: ['<strong>Polarność:</strong> Rozumie, że Tryb Ciemny jest postrzegany inaczej niż Tryb Jasny.', '<strong>Waga Czcionki:</strong> Przydziela określone poziomy kontrastu (Lc) w zależności od wagi typografii.', '<strong>Liniowość:</strong> Naprawia nieścisłości matematyczne w modelu względnej luminancji z 2008 roku.'] }, { type: 'title', text: 'Rekomendowane Poziomy APCA', level: 3 }, { type: 'list', items: ['<strong>Lc 90+:</strong> Idealne dla bardzo małego lub nisko ważonego tekstu.', '<strong>Lc 75:</strong> Standard dla głównego tekstu czytającego.', '<strong>Lc 60:</strong> Minimum dla czytelnej zawartości średniego rozmiaru.', '<strong>Lc 45:</strong> Minimum dla dużych lub dekoracyjnych elementów.'] }] };
30
+ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = { slug, title, description, ui, faqTitle: 'Często Zadawane Pytania', faq: faqData, bibliographyTitle: 'Zasoby na temat Kontrastu i APCA', bibliography, howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Kalkulator Czytelności Wizualnej (WCAG vs APCA)', level: 2 }, { type: 'paragraph', html: 'Dowiedz się, jak Twoje kolory i typografia wpływają na rzeczywiste czytanie za pomocą nowego standardu percepcyjnej dostępności. WCAG 2.1 używa prostego wzoru matematycznego z 2008 roku. <strong>APCA</strong> to nowy model proponowany dla <strong>WCAG 3.0</strong>, który naśladuje percepcję człowieka.' }, { type: 'title', text: 'Kluczowe Punkty APCA', level: 3 }, { type: 'list', items: ['<strong>Polarność:</strong> Rozumie, że Tryb Ciemny jest postrzegany inaczej niż Tryb Jasny.', '<strong>Waga Czcionki:</strong> Przydziela określone poziomy kontrastu (Lc) w zależności od wagi typografii.', '<strong>Liniowość:</strong> Naprawia nieścisłości matematyczne w modelu względnej luminancji z 2008 roku.'] }, { type: 'title', text: 'Rekomendowane Poziomy APCA', level: 3 }, { type: 'list', items: ['<strong>Lc 90+:</strong> Idealne dla bardzo małego lub nisko ważonego tekstu.', '<strong>Lc 75:</strong> Standard dla głównego tekstu czytającego.', '<strong>Lc 60:</strong> Minimum dla czytelnej zawartości średniego rozmiaru.', '<strong>Lc 45:</strong> Minimum dla dużych lub dekoracyjnych elementów.'] }] };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -73,11 +74,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
73
74
  faqTitle: 'Perguntas Frequentes',
74
75
  faq: faqData,
75
76
  bibliographyTitle: 'Recursos em Contraste e APCA',
76
- bibliography: [
77
- { name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
78
- { name: 'Myndex: Guia de Referência APCA', url: 'https://apcaw3.myndex.com/' },
79
- { name: 'MDN: Acessibilidade e Contraste de Cor', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
80
- ],
77
+ bibliography,
81
78
  howTo: howToData,
82
79
  schemas: [faqSchema, howToSchema, appSchema],
83
80
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -73,11 +74,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
73
74
  faqTitle: 'Часто Задаваемые Вопросы',
74
75
  faq: faqData,
75
76
  bibliographyTitle: 'Ресурсы о Контрасте и APCA',
76
- bibliography: [
77
- { name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
78
- { name: 'Myndex: Справочное Руководство APCA', url: 'https://apcaw3.myndex.com/' },
79
- { name: 'MDN: Доступность и Контраст Цвета', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
80
- ],
77
+ bibliography,
81
78
  howTo: howToData,
82
79
  schemas: [faqSchema, howToSchema, appSchema],
83
80
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -25,11 +26,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
25
26
  faqTitle: 'Vanliga Frågor',
26
27
  faq: faqData,
27
28
  bibliographyTitle: 'Resurser på Kontrast och APCA',
28
- bibliography: [
29
- { name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
30
- { name: 'Myndex: APCA Referensguide', url: 'https://apcaw3.myndex.com/' },
31
- { name: 'MDN: Tillgänglighet och Färgkontrast', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
32
- ],
29
+ bibliography,
33
30
  howTo: howToData,
34
31
  schemas: [faqSchema, howToSchema, appSchema],
35
32
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -25,11 +26,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
25
26
  faqTitle: 'Sık Sorulan Sorular',
26
27
  faq: faqData,
27
28
  bibliographyTitle: 'Kontrast ve APCA Kaynakları',
28
- bibliography: [
29
- { name: 'W3C: WCAG 3.0 Tasarısı (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
30
- { name: 'Myndex: APCA Referans Kılavuzu', url: 'https://apcaw3.myndex.com/' },
31
- { name: 'MDN: Erişilebilirlik ve Renk Kontrastı', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
32
- ],
29
+ bibliography,
33
30
  howTo: howToData,
34
31
  schemas: [faqSchema, howToSchema, appSchema],
35
32
  seo: [
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { ReadabilityCalculatorUI } from '../ui';
@@ -25,11 +26,7 @@ export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
25
26
  faqTitle: '常见问题',
26
27
  faq: faqData,
27
28
  bibliographyTitle: '对比度和 APCA 资源',
28
- bibliography: [
29
- { name: 'W3C: WCAG 3.0 草案 (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
30
- { name: 'Myndex: APCA 参考指南', url: 'https://apcaw3.myndex.com/' },
31
- { name: 'MDN: 可访问性和颜色对比', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
32
- ],
29
+ bibliography,
33
30
  howTo: howToData,
34
31
  schemas: [faqSchema, howToSchema, appSchema],
35
32
  seo: [
@@ -232,6 +232,7 @@ function updatePreview(elements: Elements, context: CanvasRenderingContext2D, ui
232
232
  elements.previewDescription.textContent = trimToPixels(context, description, DESCRIPTION_LIMIT, descriptionFont, ui.ellipsis);
233
233
  elements.previewUrl.textContent = displayUrl(elements.urlInput.value, ui.fallbackUrl);
234
234
  updateMeter({ meter: elements.titleMeter, fill: elements.titleFill, count: elements.titleCount, status: elements.titleStatus }, measure(context, title, titleFont), titleLimit, ui.pixelUnit, ui.goodLabel, ui.tooLongLabel);
235
+ elements.titleCount.textContent = `${Math.round(measure(context, title, titleFont))} ${ui.pixelUnit} / ${titleLimit} ${ui.pixelUnit} · ${title.length} ${ui.charactersLabel}`;
235
236
  updateMeter({ meter: elements.descriptionMeter, fill: elements.descriptionFill, count: elements.descriptionCount, status: elements.descriptionStatus }, measure(context, description, descriptionFont), DESCRIPTION_LIMIT, ui.pixelUnit, ui.goodLabel, ui.tooLongLabel);
236
237
  }
237
238
 
@@ -32,7 +32,7 @@ const faq = [
32
32
  answer: 'Google search cards are constrained by visual width. A title with many narrow letters can fit more characters than a title with wide letters, uppercase words, or bold-looking glyphs. Pixel measurement gives a closer preview of the visible result.',
33
33
  },
34
34
  {
35
- question: 'Does this guarantee exactly how Google will truncate my snippet?',
35
+ question: 'Does this predict exactly how Google will truncate my snippet?',
36
36
  answer: 'No. Google can rewrite title links and snippets, and rendering can vary by query, device, language and experiment. The tool is designed as a practical visual guardrail for writing metadata that is less likely to be cut off.',
37
37
  },
38
38
  {
@@ -197,7 +197,7 @@ export const content: ToolLocaleContent<SerpPixelSimulatorUI> = {
197
197
  },
198
198
  {
199
199
  type: 'paragraph',
200
- html: 'No simulator can guarantee the exact snippet Google will show. Google may rewrite title links, bold query terms, choose page text instead of the meta description, or display different snippets for different searches. This tool is best used as a fast writing and QA step: it catches obvious visual overflow before the page reaches production.',
200
+ html: 'No simulator can know the exact snippet Google will show. Google may rewrite title links, bold query terms, choose page text instead of the meta description, or display different snippets for different searches. This tool is best used as a fast writing and QA step: it catches obvious visual overflow before the page reaches production.',
201
201
  },
202
202
  {
203
203
  type: 'summary',
@@ -32,7 +32,7 @@ const faq = [
32
32
  answer: 'Las tarjetas de resultados de Google están limitadas por el ancho visual. Un título con muchas letras estrechas puede albergar más caracteres que uno con letras anchas, mayúsculas o glifos de aspecto grueso. La medición en píxeles ofrece una vista previa más fiel del resultado visible.',
33
33
  },
34
34
  {
35
- question: '¿Garantiza esto exactamente cómo truncará Google mi fragmento?',
35
+ question: '¿Predice esto exactamente cómo truncará Google mi fragmento?',
36
36
  answer: 'No. Google puede reescribir los enlaces de título y los fragmentos, y la representación puede variar según la consulta, el dispositivo, el idioma y los experimentos. La herramienta está diseñada como una guía visual práctica para redactar metadatos con menos probabilidades de ser cortados.',
37
37
  },
38
38
  {
@@ -198,7 +198,7 @@ export const content: ToolLocaleContent<SerpPixelSimulatorUI> = {
198
198
  },
199
199
  {
200
200
  type: 'paragraph',
201
- html: 'Ningún simulador puede garantizar el fragmento exacto que Google mostrará. Google puede reescribir los enlaces de título, poner en negrita los términos de la consulta, elegir texto de la página en lugar de la meta descripción o mostrar fragmentos distintos para diferentes búsquedas. Esta herramienta funciona mejor como un paso rápido de redacción y control de calidad: detecta desbordamientos visuales evidentes antes de que la página llegue a producción.',
201
+ html: 'Ningún simulador puede saber qué fragmento exacto mostrará Google. Google puede reescribir los enlaces de título, poner en negrita los términos de la consulta, elegir texto de la página en lugar de la meta descripción o mostrar fragmentos distintos para diferentes búsquedas. Esta herramienta funciona mejor como un paso rápido de redacción y control de calidad: detecta desbordamientos visuales evidentes antes de que la página llegue a producción.',
202
202
  },
203
203
  {
204
204
  type: 'summary',