@jjlmoya/utils-forensic-science 1.1.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 (316) hide show
  1. package/package.json +69 -0
  2. package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
  3. package/scripts/postinstall.mjs +27 -0
  4. package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
  5. package/src/category/i18n/de.ts +55 -0
  6. package/src/category/i18n/en.ts +55 -0
  7. package/src/category/i18n/es.ts +55 -0
  8. package/src/category/i18n/fr.ts +55 -0
  9. package/src/category/i18n/id.ts +55 -0
  10. package/src/category/i18n/it.ts +55 -0
  11. package/src/category/i18n/ja.ts +56 -0
  12. package/src/category/i18n/ko.ts +56 -0
  13. package/src/category/i18n/nl.ts +55 -0
  14. package/src/category/i18n/pl.ts +55 -0
  15. package/src/category/i18n/pt.ts +55 -0
  16. package/src/category/i18n/ru.ts +55 -0
  17. package/src/category/i18n/sv.ts +55 -0
  18. package/src/category/i18n/tr.ts +55 -0
  19. package/src/category/i18n/zh.ts +56 -0
  20. package/src/category/index.ts +48 -0
  21. package/src/category/seo.astro +15 -0
  22. package/src/components/PreviewNavSidebar.astro +116 -0
  23. package/src/components/PreviewToolbar.astro +143 -0
  24. package/src/data.ts +10 -0
  25. package/src/entries.ts +48 -0
  26. package/src/env.d.ts +5 -0
  27. package/src/index.ts +29 -0
  28. package/src/layouts/PreviewLayout.astro +117 -0
  29. package/src/pages/[locale]/[slug].astro +162 -0
  30. package/src/pages/[locale].astro +261 -0
  31. package/src/pages/index.astro +3 -0
  32. package/src/tests/diacritics_density.test.ts +140 -0
  33. package/src/tests/faq_count.test.ts +19 -0
  34. package/src/tests/i18n_coverage.test.ts +36 -0
  35. package/src/tests/inverted_punctuation.test.ts +84 -0
  36. package/src/tests/locale_completeness.test.ts +24 -0
  37. package/src/tests/mocks/astro_mock.js +2 -0
  38. package/src/tests/no_en_dash.test.ts +70 -0
  39. package/src/tests/no_h1_in_components.test.ts +48 -0
  40. package/src/tests/schemas_fulfillment.test.ts +23 -0
  41. package/src/tests/script_density.test.ts +94 -0
  42. package/src/tests/seo_length.test.ts +46 -0
  43. package/src/tests/shared-test-helpers.ts +56 -0
  44. package/src/tests/slug_language_code_format.test.ts +23 -0
  45. package/src/tests/slug_uniqueness.test.ts +81 -0
  46. package/src/tests/title_quality.test.ts +55 -0
  47. package/src/tests/tool_exports.test.ts +34 -0
  48. package/src/tests/tool_validation.test.ts +16 -0
  49. package/src/tests/widmark.test.ts +28 -0
  50. package/src/tool/forensic-age-estimator/bibliography.astro +14 -0
  51. package/src/tool/forensic-age-estimator/bibliography.ts +16 -0
  52. package/src/tool/forensic-age-estimator/component.astro +321 -0
  53. package/src/tool/forensic-age-estimator/dental-skeletal-third-molar-age-estimator.css +634 -0
  54. package/src/tool/forensic-age-estimator/entry.ts +32 -0
  55. package/src/tool/forensic-age-estimator/i18n/de.ts +245 -0
  56. package/src/tool/forensic-age-estimator/i18n/en.ts +245 -0
  57. package/src/tool/forensic-age-estimator/i18n/es.ts +245 -0
  58. package/src/tool/forensic-age-estimator/i18n/fr.ts +245 -0
  59. package/src/tool/forensic-age-estimator/i18n/id.ts +245 -0
  60. package/src/tool/forensic-age-estimator/i18n/it.ts +245 -0
  61. package/src/tool/forensic-age-estimator/i18n/ja.ts +245 -0
  62. package/src/tool/forensic-age-estimator/i18n/ko.ts +245 -0
  63. package/src/tool/forensic-age-estimator/i18n/nl.ts +245 -0
  64. package/src/tool/forensic-age-estimator/i18n/pl.ts +245 -0
  65. package/src/tool/forensic-age-estimator/i18n/pt.ts +245 -0
  66. package/src/tool/forensic-age-estimator/i18n/ru.ts +245 -0
  67. package/src/tool/forensic-age-estimator/i18n/sv.ts +245 -0
  68. package/src/tool/forensic-age-estimator/i18n/tr.ts +245 -0
  69. package/src/tool/forensic-age-estimator/i18n/zh.ts +246 -0
  70. package/src/tool/forensic-age-estimator/index.ts +11 -0
  71. package/src/tool/forensic-age-estimator/logic.ts +81 -0
  72. package/src/tool/forensic-age-estimator/seo.astro +15 -0
  73. package/src/tool/forensic-blood-test-simulator/bibliography.astro +6 -0
  74. package/src/tool/forensic-blood-test-simulator/bibliography.ts +12 -0
  75. package/src/tool/forensic-blood-test-simulator/component.astro +168 -0
  76. package/src/tool/forensic-blood-test-simulator/dom-utils.ts +40 -0
  77. package/src/tool/forensic-blood-test-simulator/entry.ts +32 -0
  78. package/src/tool/forensic-blood-test-simulator/forensic-presumptive-blood-testing-luminol-kastle-meyer-simulator.css +532 -0
  79. package/src/tool/forensic-blood-test-simulator/helpers.ts +16 -0
  80. package/src/tool/forensic-blood-test-simulator/i18n/de.ts +185 -0
  81. package/src/tool/forensic-blood-test-simulator/i18n/en.ts +185 -0
  82. package/src/tool/forensic-blood-test-simulator/i18n/es.ts +185 -0
  83. package/src/tool/forensic-blood-test-simulator/i18n/fr.ts +220 -0
  84. package/src/tool/forensic-blood-test-simulator/i18n/id.ts +220 -0
  85. package/src/tool/forensic-blood-test-simulator/i18n/it.ts +220 -0
  86. package/src/tool/forensic-blood-test-simulator/i18n/ja.ts +220 -0
  87. package/src/tool/forensic-blood-test-simulator/i18n/ko.ts +220 -0
  88. package/src/tool/forensic-blood-test-simulator/i18n/nl.ts +220 -0
  89. package/src/tool/forensic-blood-test-simulator/i18n/pl.ts +220 -0
  90. package/src/tool/forensic-blood-test-simulator/i18n/pt.ts +220 -0
  91. package/src/tool/forensic-blood-test-simulator/i18n/ru.ts +220 -0
  92. package/src/tool/forensic-blood-test-simulator/i18n/sv.ts +220 -0
  93. package/src/tool/forensic-blood-test-simulator/i18n/tr.ts +220 -0
  94. package/src/tool/forensic-blood-test-simulator/i18n/zh.ts +220 -0
  95. package/src/tool/forensic-blood-test-simulator/index.ts +11 -0
  96. package/src/tool/forensic-blood-test-simulator/logic.ts +174 -0
  97. package/src/tool/forensic-blood-test-simulator/script.ts +192 -0
  98. package/src/tool/forensic-blood-test-simulator/seo.astro +15 -0
  99. package/src/tool/forensic-fiber-comparison-microscope/bibliography.astro +6 -0
  100. package/src/tool/forensic-fiber-comparison-microscope/bibliography.ts +16 -0
  101. package/src/tool/forensic-fiber-comparison-microscope/component.astro +146 -0
  102. package/src/tool/forensic-fiber-comparison-microscope/entry.ts +32 -0
  103. package/src/tool/forensic-fiber-comparison-microscope/forensic-fiber-comparison-microscope.css +629 -0
  104. package/src/tool/forensic-fiber-comparison-microscope/i18n/de.ts +250 -0
  105. package/src/tool/forensic-fiber-comparison-microscope/i18n/en.ts +246 -0
  106. package/src/tool/forensic-fiber-comparison-microscope/i18n/es.ts +246 -0
  107. package/src/tool/forensic-fiber-comparison-microscope/i18n/fr.ts +246 -0
  108. package/src/tool/forensic-fiber-comparison-microscope/i18n/id.ts +250 -0
  109. package/src/tool/forensic-fiber-comparison-microscope/i18n/it.ts +246 -0
  110. package/src/tool/forensic-fiber-comparison-microscope/i18n/ja.ts +250 -0
  111. package/src/tool/forensic-fiber-comparison-microscope/i18n/ko.ts +246 -0
  112. package/src/tool/forensic-fiber-comparison-microscope/i18n/nl.ts +246 -0
  113. package/src/tool/forensic-fiber-comparison-microscope/i18n/pl.ts +250 -0
  114. package/src/tool/forensic-fiber-comparison-microscope/i18n/pt.ts +250 -0
  115. package/src/tool/forensic-fiber-comparison-microscope/i18n/ru.ts +250 -0
  116. package/src/tool/forensic-fiber-comparison-microscope/i18n/sv.ts +250 -0
  117. package/src/tool/forensic-fiber-comparison-microscope/i18n/tr.ts +246 -0
  118. package/src/tool/forensic-fiber-comparison-microscope/i18n/zh.ts +250 -0
  119. package/src/tool/forensic-fiber-comparison-microscope/index.ts +11 -0
  120. package/src/tool/forensic-fiber-comparison-microscope/logic.ts +244 -0
  121. package/src/tool/forensic-fiber-comparison-microscope/render.ts +265 -0
  122. package/src/tool/forensic-fiber-comparison-microscope/seo.astro +15 -0
  123. package/src/tool/forensic-fiber-comparison-microscope/view.ts +267 -0
  124. package/src/tool/forensic-glass-becke-line-simulator/bibliography.astro +6 -0
  125. package/src/tool/forensic-glass-becke-line-simulator/bibliography.ts +16 -0
  126. package/src/tool/forensic-glass-becke-line-simulator/component.astro +81 -0
  127. package/src/tool/forensic-glass-becke-line-simulator/entry.ts +32 -0
  128. package/src/tool/forensic-glass-becke-line-simulator/forensic-glass-becke-line-simulator.css +392 -0
  129. package/src/tool/forensic-glass-becke-line-simulator/i18n/de.ts +231 -0
  130. package/src/tool/forensic-glass-becke-line-simulator/i18n/en.ts +231 -0
  131. package/src/tool/forensic-glass-becke-line-simulator/i18n/es.ts +231 -0
  132. package/src/tool/forensic-glass-becke-line-simulator/i18n/fr.ts +231 -0
  133. package/src/tool/forensic-glass-becke-line-simulator/i18n/id.ts +231 -0
  134. package/src/tool/forensic-glass-becke-line-simulator/i18n/it.ts +231 -0
  135. package/src/tool/forensic-glass-becke-line-simulator/i18n/ja.ts +231 -0
  136. package/src/tool/forensic-glass-becke-line-simulator/i18n/ko.ts +231 -0
  137. package/src/tool/forensic-glass-becke-line-simulator/i18n/nl.ts +231 -0
  138. package/src/tool/forensic-glass-becke-line-simulator/i18n/pl.ts +231 -0
  139. package/src/tool/forensic-glass-becke-line-simulator/i18n/pt.ts +231 -0
  140. package/src/tool/forensic-glass-becke-line-simulator/i18n/ru.ts +231 -0
  141. package/src/tool/forensic-glass-becke-line-simulator/i18n/sv.ts +231 -0
  142. package/src/tool/forensic-glass-becke-line-simulator/i18n/tr.ts +231 -0
  143. package/src/tool/forensic-glass-becke-line-simulator/i18n/zh.ts +231 -0
  144. package/src/tool/forensic-glass-becke-line-simulator/index.ts +11 -0
  145. package/src/tool/forensic-glass-becke-line-simulator/logic.ts +100 -0
  146. package/src/tool/forensic-glass-becke-line-simulator/seo.astro +15 -0
  147. package/src/tool/forensic-glass-becke-line-simulator/view.ts +281 -0
  148. package/src/tool/forensic-image-authenticity-analyzer/bibliography.astro +9 -0
  149. package/src/tool/forensic-image-authenticity-analyzer/bibliography.ts +7 -0
  150. package/src/tool/forensic-image-authenticity-analyzer/component.astro +250 -0
  151. package/src/tool/forensic-image-authenticity-analyzer/entry.ts +29 -0
  152. package/src/tool/forensic-image-authenticity-analyzer/forensic-image-metadata-authenticity-analyzer.css +679 -0
  153. package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -0
  154. package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -0
  155. package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -0
  156. package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -0
  157. package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +76 -0
  158. package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -0
  159. package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +72 -0
  160. package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +72 -0
  161. package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +75 -0
  162. package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +75 -0
  163. package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -0
  164. package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +75 -0
  165. package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +76 -0
  166. package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +76 -0
  167. package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +71 -0
  168. package/src/tool/forensic-image-authenticity-analyzer/index.ts +11 -0
  169. package/src/tool/forensic-image-authenticity-analyzer/logic.ts +283 -0
  170. package/src/tool/forensic-image-authenticity-analyzer/seo.astro +10 -0
  171. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.astro +6 -0
  172. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.ts +12 -0
  173. package/src/tool/forensic-microcrystal-drug-simulator/component.astro +240 -0
  174. package/src/tool/forensic-microcrystal-drug-simulator/entry.ts +32 -0
  175. package/src/tool/forensic-microcrystal-drug-simulator/forensic-microcrystal-drug-simulator.css +430 -0
  176. package/src/tool/forensic-microcrystal-drug-simulator/i18n/de.ts +244 -0
  177. package/src/tool/forensic-microcrystal-drug-simulator/i18n/en.ts +244 -0
  178. package/src/tool/forensic-microcrystal-drug-simulator/i18n/es.ts +244 -0
  179. package/src/tool/forensic-microcrystal-drug-simulator/i18n/fr.ts +244 -0
  180. package/src/tool/forensic-microcrystal-drug-simulator/i18n/id.ts +244 -0
  181. package/src/tool/forensic-microcrystal-drug-simulator/i18n/it.ts +244 -0
  182. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ja.ts +244 -0
  183. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ko.ts +244 -0
  184. package/src/tool/forensic-microcrystal-drug-simulator/i18n/nl.ts +244 -0
  185. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pl.ts +244 -0
  186. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pt.ts +244 -0
  187. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ru.ts +244 -0
  188. package/src/tool/forensic-microcrystal-drug-simulator/i18n/sv.ts +244 -0
  189. package/src/tool/forensic-microcrystal-drug-simulator/i18n/tr.ts +244 -0
  190. package/src/tool/forensic-microcrystal-drug-simulator/i18n/zh.ts +244 -0
  191. package/src/tool/forensic-microcrystal-drug-simulator/index.ts +11 -0
  192. package/src/tool/forensic-microcrystal-drug-simulator/logic.ts +189 -0
  193. package/src/tool/forensic-microcrystal-drug-simulator/seo.astro +15 -0
  194. package/src/tool/forensic-sex-determinator/bibliography.astro +14 -0
  195. package/src/tool/forensic-sex-determinator/bibliography.ts +12 -0
  196. package/src/tool/forensic-sex-determinator/component.astro +463 -0
  197. package/src/tool/forensic-sex-determinator/entry.ts +32 -0
  198. package/src/tool/forensic-sex-determinator/forensic-sex-determinator.css +413 -0
  199. package/src/tool/forensic-sex-determinator/i18n/de.ts +211 -0
  200. package/src/tool/forensic-sex-determinator/i18n/en.ts +211 -0
  201. package/src/tool/forensic-sex-determinator/i18n/es.ts +211 -0
  202. package/src/tool/forensic-sex-determinator/i18n/fr.ts +211 -0
  203. package/src/tool/forensic-sex-determinator/i18n/id.ts +211 -0
  204. package/src/tool/forensic-sex-determinator/i18n/it.ts +211 -0
  205. package/src/tool/forensic-sex-determinator/i18n/ja.ts +211 -0
  206. package/src/tool/forensic-sex-determinator/i18n/ko.ts +211 -0
  207. package/src/tool/forensic-sex-determinator/i18n/nl.ts +211 -0
  208. package/src/tool/forensic-sex-determinator/i18n/pl.ts +211 -0
  209. package/src/tool/forensic-sex-determinator/i18n/pt.ts +211 -0
  210. package/src/tool/forensic-sex-determinator/i18n/ru.ts +211 -0
  211. package/src/tool/forensic-sex-determinator/i18n/sv.ts +211 -0
  212. package/src/tool/forensic-sex-determinator/i18n/tr.ts +211 -0
  213. package/src/tool/forensic-sex-determinator/i18n/zh.ts +211 -0
  214. package/src/tool/forensic-sex-determinator/index.ts +11 -0
  215. package/src/tool/forensic-sex-determinator/logic.ts +89 -0
  216. package/src/tool/forensic-sex-determinator/seo.astro +15 -0
  217. package/src/tool/forensic-stature-estimator/bibliography.astro +14 -0
  218. package/src/tool/forensic-stature-estimator/bibliography.ts +12 -0
  219. package/src/tool/forensic-stature-estimator/component.astro +49 -0
  220. package/src/tool/forensic-stature-estimator/components/EstimationPanel.astro +65 -0
  221. package/src/tool/forensic-stature-estimator/components/OsteometricBoard.astro +39 -0
  222. package/src/tool/forensic-stature-estimator/components/OsteometricSelector.astro +109 -0
  223. package/src/tool/forensic-stature-estimator/dom-utils.ts +71 -0
  224. package/src/tool/forensic-stature-estimator/entry.ts +32 -0
  225. package/src/tool/forensic-stature-estimator/forensic-stature-estimator.css +689 -0
  226. package/src/tool/forensic-stature-estimator/helpers.ts +51 -0
  227. package/src/tool/forensic-stature-estimator/i18n/de.ts +196 -0
  228. package/src/tool/forensic-stature-estimator/i18n/en.ts +196 -0
  229. package/src/tool/forensic-stature-estimator/i18n/es.ts +196 -0
  230. package/src/tool/forensic-stature-estimator/i18n/fr.ts +196 -0
  231. package/src/tool/forensic-stature-estimator/i18n/id.ts +196 -0
  232. package/src/tool/forensic-stature-estimator/i18n/it.ts +196 -0
  233. package/src/tool/forensic-stature-estimator/i18n/ja.ts +196 -0
  234. package/src/tool/forensic-stature-estimator/i18n/ko.ts +196 -0
  235. package/src/tool/forensic-stature-estimator/i18n/nl.ts +196 -0
  236. package/src/tool/forensic-stature-estimator/i18n/pl.ts +196 -0
  237. package/src/tool/forensic-stature-estimator/i18n/pt.ts +196 -0
  238. package/src/tool/forensic-stature-estimator/i18n/ru.ts +196 -0
  239. package/src/tool/forensic-stature-estimator/i18n/sv.ts +196 -0
  240. package/src/tool/forensic-stature-estimator/i18n/tr.ts +196 -0
  241. package/src/tool/forensic-stature-estimator/i18n/zh.ts +196 -0
  242. package/src/tool/forensic-stature-estimator/index.ts +11 -0
  243. package/src/tool/forensic-stature-estimator/logic.ts +119 -0
  244. package/src/tool/forensic-stature-estimator/script.ts +288 -0
  245. package/src/tool/forensic-stature-estimator/seo.astro +15 -0
  246. package/src/tool/forensic-tlc-ink-simulator/bibliography.astro +6 -0
  247. package/src/tool/forensic-tlc-ink-simulator/bibliography.ts +16 -0
  248. package/src/tool/forensic-tlc-ink-simulator/component.astro +245 -0
  249. package/src/tool/forensic-tlc-ink-simulator/entry.ts +32 -0
  250. package/src/tool/forensic-tlc-ink-simulator/forensic-tlc-ink-simulator.css +462 -0
  251. package/src/tool/forensic-tlc-ink-simulator/i18n/de.ts +243 -0
  252. package/src/tool/forensic-tlc-ink-simulator/i18n/en.ts +243 -0
  253. package/src/tool/forensic-tlc-ink-simulator/i18n/es.ts +243 -0
  254. package/src/tool/forensic-tlc-ink-simulator/i18n/fr.ts +243 -0
  255. package/src/tool/forensic-tlc-ink-simulator/i18n/id.ts +243 -0
  256. package/src/tool/forensic-tlc-ink-simulator/i18n/it.ts +243 -0
  257. package/src/tool/forensic-tlc-ink-simulator/i18n/ja.ts +235 -0
  258. package/src/tool/forensic-tlc-ink-simulator/i18n/ko.ts +235 -0
  259. package/src/tool/forensic-tlc-ink-simulator/i18n/nl.ts +243 -0
  260. package/src/tool/forensic-tlc-ink-simulator/i18n/pl.ts +243 -0
  261. package/src/tool/forensic-tlc-ink-simulator/i18n/pt.ts +243 -0
  262. package/src/tool/forensic-tlc-ink-simulator/i18n/ru.ts +243 -0
  263. package/src/tool/forensic-tlc-ink-simulator/i18n/sv.ts +243 -0
  264. package/src/tool/forensic-tlc-ink-simulator/i18n/tr.ts +243 -0
  265. package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +235 -0
  266. package/src/tool/forensic-tlc-ink-simulator/index.ts +11 -0
  267. package/src/tool/forensic-tlc-ink-simulator/logic.ts +152 -0
  268. package/src/tool/forensic-tlc-ink-simulator/seo.astro +15 -0
  269. package/src/tool/gsr-dispersion-calculator/bibliography.astro +6 -0
  270. package/src/tool/gsr-dispersion-calculator/bibliography.ts +16 -0
  271. package/src/tool/gsr-dispersion-calculator/component.astro +294 -0
  272. package/src/tool/gsr-dispersion-calculator/entry.ts +32 -0
  273. package/src/tool/gsr-dispersion-calculator/gsr-dispersion-calculator.css +305 -0
  274. package/src/tool/gsr-dispersion-calculator/i18n/de.ts +272 -0
  275. package/src/tool/gsr-dispersion-calculator/i18n/en.ts +272 -0
  276. package/src/tool/gsr-dispersion-calculator/i18n/es.ts +272 -0
  277. package/src/tool/gsr-dispersion-calculator/i18n/fr.ts +272 -0
  278. package/src/tool/gsr-dispersion-calculator/i18n/id.ts +272 -0
  279. package/src/tool/gsr-dispersion-calculator/i18n/it.ts +272 -0
  280. package/src/tool/gsr-dispersion-calculator/i18n/ja.ts +272 -0
  281. package/src/tool/gsr-dispersion-calculator/i18n/ko.ts +272 -0
  282. package/src/tool/gsr-dispersion-calculator/i18n/nl.ts +272 -0
  283. package/src/tool/gsr-dispersion-calculator/i18n/pl.ts +272 -0
  284. package/src/tool/gsr-dispersion-calculator/i18n/pt.ts +272 -0
  285. package/src/tool/gsr-dispersion-calculator/i18n/ru.ts +272 -0
  286. package/src/tool/gsr-dispersion-calculator/i18n/sv.ts +272 -0
  287. package/src/tool/gsr-dispersion-calculator/i18n/tr.ts +272 -0
  288. package/src/tool/gsr-dispersion-calculator/i18n/zh.ts +272 -0
  289. package/src/tool/gsr-dispersion-calculator/index.ts +11 -0
  290. package/src/tool/gsr-dispersion-calculator/logic.ts +148 -0
  291. package/src/tool/gsr-dispersion-calculator/seo.astro +15 -0
  292. package/src/tool/widmark-alcohol-simulator/bibliography.astro +14 -0
  293. package/src/tool/widmark-alcohol-simulator/bibliography.ts +12 -0
  294. package/src/tool/widmark-alcohol-simulator/component.astro +453 -0
  295. package/src/tool/widmark-alcohol-simulator/entry.ts +32 -0
  296. package/src/tool/widmark-alcohol-simulator/i18n/de.ts +193 -0
  297. package/src/tool/widmark-alcohol-simulator/i18n/en.ts +206 -0
  298. package/src/tool/widmark-alcohol-simulator/i18n/es.ts +193 -0
  299. package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +193 -0
  300. package/src/tool/widmark-alcohol-simulator/i18n/id.ts +193 -0
  301. package/src/tool/widmark-alcohol-simulator/i18n/it.ts +193 -0
  302. package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +193 -0
  303. package/src/tool/widmark-alcohol-simulator/i18n/ko.ts +193 -0
  304. package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +193 -0
  305. package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +193 -0
  306. package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +193 -0
  307. package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +193 -0
  308. package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +193 -0
  309. package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +193 -0
  310. package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +193 -0
  311. package/src/tool/widmark-alcohol-simulator/index.ts +11 -0
  312. package/src/tool/widmark-alcohol-simulator/logic.ts +97 -0
  313. package/src/tool/widmark-alcohol-simulator/seo.astro +15 -0
  314. package/src/tool/widmark-alcohol-simulator/widmark-alcohol-simulator.css +386 -0
  315. package/src/tools.ts +27 -0
  316. package/src/types.ts +70 -0
@@ -0,0 +1,243 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'forensische-tlc-inkt-chromatografie-simulator';
5
+ const title = 'Forensische TLC Inkt Chromatografie Simulator';
6
+ const description = 'Simuleer dunne-laagchromatografie van betwiste schrijfinkten, visualiseer de ontwikkeling van het oplosmiddelfront, scheid kleurstofbanden en bereken de exacte Rf-waarden voor elk pigment.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Kies de betwiste inkt of de vergelijkingspen',
11
+ text: 'Selecteer de inkt van de losgeldbrief of het profiel van een verdachte pen. Elke inkt bevat een andere set kleurstofcomponenten met verschillende polariteit en affiniteit voor de stationaire fase.',
12
+ },
13
+ {
14
+ name: 'Selecteer de mobiele fase',
15
+ text: 'Wijzig het oplosmiddelsysteem om te zien hoe de polariteit van het oplosmiddel de capillaire ontwikkeling en de relatieve migratie van elke kleurstofband beïnvloedt.',
16
+ },
17
+ {
18
+ name: 'Ontwikkel de TLC-plaat',
19
+ text: 'Verschuif de regelaar voor de ontwikkeltijd en zie hoe het oplosmiddelfront opstijgt langs de plaat, terwijl de gescheiden banden boven de startlijn verschijnen.',
20
+ },
21
+ {
22
+ name: 'Lees de Rf-tabel af',
23
+ text: 'Vergelijk de afstand van elk pigment met de afstand van het oplosmiddelfront. De simulator berekent de Rf-waarde als de pigmentafstand gedeeld door de afstand van het oplosmiddelfront.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ key: 'faq-1',
30
+ question: 'Wat betekent Rf in dunne-laagchromatografie?',
31
+ answer: 'Rf is de retentiefactor: de afstand afgelegd door de stof gedeeld door de afstand afgelegd door het oplosmiddelfront vanaf dezelfde startlijn. Deze factor is dimensieloos en ligt normaal tussen 0 en 1.',
32
+ },
33
+ {
34
+ key: 'faq-2',
35
+ question: 'Kan TLC bewijzen dat twee inktmonsters van dezelfde pen afkomstig zijn?',
36
+ answer: 'Nee. TLC can aantonen of kleurstofpatronen consistent of inconsistent zijn, maar bronidentificatie vereist gevalideerde vergelijkingsmethoden, controles, documentatie en deskundige interpretatie.',
37
+ },
38
+ {
39
+ key: 'faq-3',
40
+ question: 'Waarom verandert het bandenpatroon als het oplosmiddel wordt gewijzigd?',
41
+ answer: 'Kleurstoffen verdelen zich verschillend over de stationaire fase en de mobiele fase. Een oplosmiddel with een betere polariteitsmatch kan een kleurstof verder meevoeren, waardoor de Rf-waarde stijgt.',
42
+ },
43
+ {
44
+ key: 'faq-4',
45
+ question: 'Waarom is de startlijn belangrijk?',
46
+ answer: 'Zowel de afstand van het oplosmiddelfront als de afstand van het pigment moeten vanaf de startlijn worden gemeten. Meten vanaf de onderkant van de plaat geeft onjuiste Rf-waarden.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ chamberAria: 'Dunne-laagchromatografie-kamer met ontwikkelplaat',
56
+ rulerAria: 'Virtuele millimeterliniaal voor het meten van het oplosmiddelfront en de pigmentbanden',
57
+ rulerMarks: '80,60,40,20,0',
58
+ units: 'Eenhedenstelsel',
59
+ metric: 'Metrisch',
60
+ imperial: 'Imperiaal',
61
+ unitMillimeter: 'mm',
62
+ unitInch: 'in',
63
+ unitMinute: 'min',
64
+ inkSample: 'Inktmonster',
65
+ ransomNote: 'Betwiste inkt van losgeldbrief',
66
+ bluePen: 'Inbeslaggenomen blauwe balpen',
67
+ blackPen: 'Inbeslaggenomen zwarte balpen',
68
+ gelPen: 'Inbeslaggenomen gelpen',
69
+ solventSystem: 'Mobiele fase',
70
+ ethanolWater: 'Ethanol / water',
71
+ butanolAcetic: 'Butanol / azijnzuur',
72
+ isopropanolAmmonia: 'Isopropanol / ammoniak',
73
+ developmentTime: 'Ontwikkeltijd',
74
+ frontDistance: 'Afgelegde weg oplosmiddel',
75
+ matchScore: 'Gelijkenis patroon',
76
+ solventFront: 'Oplosmiddelfront',
77
+ originLine: 'Startlijn',
78
+ pigment: 'Pigmentband',
79
+ pigmentCyanDye: 'cyaan-kleurstof',
80
+ pigmentVioletDye: 'violet-kleurstof',
81
+ pigmentGrayCarrier: 'grijze drager',
82
+ pigmentNavyDye: 'marineblauwe kleurstof',
83
+ pigmentYellowDye: 'gele kleurstof',
84
+ pigmentRedDye: 'rode kleurstof',
85
+ pigmentBlueDye: 'blauwe kleurstof',
86
+ pigmentDarkBinder: 'donker bindmiddel',
87
+ pigmentTealDye: 'groenblauwe kleurstof',
88
+ pigmentMagentaDye: 'magenta-kleurstof',
89
+ pigmentGelBinder: 'gelbindmiddel',
90
+ distance: 'Afstand',
91
+ rfValue: 'Rf-waarde',
92
+ disclaimer: 'Uitsluitend voor educatieve simulatie. Forensisch inktvergelijk vereist originele documenten, gevalideerde laboratoriummethoden, referentiestandaarden en gekwalificeerde documentonderzoekers.',
93
+ },
94
+ seo: [
95
+ {
96
+ type: 'title',
97
+ text: 'Dunne-laagchromatografie for forensisch inktvergelijk',
98
+ level: 2,
99
+ },
100
+ {
101
+ type: 'diagnostic',
102
+ variant: 'info',
103
+ icon: 'mdi:test-tube',
104
+ badge: 'Educatieve simulator',
105
+ title: 'Wat deze TLC inktsimulator u helpt te begrijpen',
106
+ html: 'Deze tool legt uit hoe <strong>dunne-laagchromatografie van schrijfinkt</strong> een zichtbare inktlijn kan scheiden in meerdere kleurstofbanden. Hij is ontworpen voor studenten forensische wetenschappen, beginnend documentonderzoekers en iedereen die wil begrijpen hoe Rf-waarden worden berekend op basis van een ontwikkelde TLC-plaat.',
107
+ },
108
+ {
109
+ type: 'stats',
110
+ columns: 4,
111
+ items: [
112
+ { value: 'Rf = d band / d oplosmiddel', label: 'formule voor retentiefactor', icon: 'mdi:division' },
113
+ { value: '4', label: 'vergeleken inktprofielen', icon: 'mdi:pen' },
114
+ { value: '3', label: 'gesimuleerde mobiele fasen', icon: 'mdi:flask-outline' },
115
+ { value: '2', label: 'metrische en imperialistische weergaven', icon: 'mdi:swap-horizontal' },
116
+ ],
117
+ },
118
+ {
119
+ type: 'summary',
120
+ title: 'Checklist voor correcte TLC metingen',
121
+ items: [
122
+ 'Markeer de startlijn boven het oplosmiddelniveau voordat de ontwikkeling begint.',
123
+ 'Verwijder de plaat voordat het oplosmiddel de bovenrand bereikt.',
124
+ 'Markeer het oplosmiddelfront onmiddellijk, omdat het kan verdampen of moeilijk te zien wordt.',
125
+ 'Meet de afstand van het pigment en het oplosmiddel vanaf dezelfde startlijn.',
126
+ 'Rapporteer Rf-waarden inclusief het oplosmiddelsysteem, plaattype, ontwikkelingsomstandigheden en controles.',
127
+ ],
128
+ },
129
+ {
130
+ type: 'comparative',
131
+ columns: 2,
132
+ items: [
133
+ {
134
+ title: 'Wat TLC kan ondersteunen',
135
+ icon: 'mdi:check-circle-outline',
136
+ highlight: true,
137
+ description: 'TLC kan aantonen of betwiste en bekende inkten onder dezelfde omstandigheden vergelijkbaar kleurstofscheidingsgedrag vertonen.',
138
+ points: ['Screeningsvergelijking', 'Visualisatie van kleurstofpatroon', 'Rf-documentatie', 'Selectie van monsters voor bevestigend testen'],
139
+ },
140
+ {
141
+ title: 'Wat TLC niet alleen kan bewijzen',
142
+ icon: 'mdi:alert-circle-outline',
143
+ description: 'TLC op zichzelf kan een pen niet uniek identificeren, een document niet dateren of het auteurschap bewijzen.',
144
+ points: ['Geen unieke bronidentificatie', 'Geen identificatie van de schrijver', 'Standaard geen ouderdomsconclusie', 'Geen vervanging voor gevalideerde protocollen'],
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ type: 'table',
150
+ headers: ['Veelgestelde vraag', 'Betrokken TLC-concept', 'Gedetailleerd antwoord'],
151
+ rows: [
152
+ ['Hoe bereken je de Rf-waarde?', 'Afstand van kleurstof gedeeld door afstand van oplosmiddelfront.', 'Meet beide vanaf de startlijn en deel ze door elkaar. Het resultaat heeft geen eenheid.'],
153
+ ['Waarom splitsen inkten op in kleuren?', 'Verschillende kleurstoffen hebben een andere affiniteit voor de stationaire en mobiele fase.', 'Een enkele geschreven lijn kan verschillende kleurstoffen bevatten die met verschillende snelheden migreren.'],
154
+ ['Kunnen twee pennen hetzelfde TLC-patroon hebben?', 'Ja, vergelijkbare formuleringen kunnen zeer vergelijkbare patronen opleveren.', 'Overeenkomst ondersteunt consistentie, geen unieke identificatie van één pen.'],
155
+ ['Waarom is mijn Rf-waarde veranderd?', 'Oplosmiddel, plaat, vochtigheid, verzadiging, temperatuur en grootte van de stip beïnvloeden de migratie.', 'Rf-waarden zijn alleen vergelijkbaar als de omstandigheden gecontroleerd en gedocumenteerd zijn.'],
156
+ ],
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Hoe de simulator de scheiding modelleert',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'Het model behandelt de beweging van het oplosmiddelfront als een capillair stijgproces dat in de loop van de tijd vertraagt, terwijl aan elke kleurstof een Rf-waarde wordt toegekend op basis van twee vereenvoudigde eigenschappen: de affiniteit voor het bewegende oplosmiddel en de polariteitsmatch met de geselecteerde mobiele fase. Dit is bewust educatief in plaats van instrumentele chemie, maar het behoudt de kernrelatie die gebruikers moeten leren: het oplosmiddel beweegt eerst, kleurstoffen verdelen zich over de fasen, en Rf wordt berekend uit de gemeten afgelegde afstanden.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Dunne-laagchromatografie is een algemeen geaccepteerde analytische techniek in forensische laboratoria vanwege de eenvoud, snelheid en kosteneffectiviteit. In de context van documentenonderzoek wordt het voornamelijk gebruikt om de kleurstofsamenstelling van verschillende inktmonsters te vergelijken. Forensisch onderzoekers nemen met een scalpel of een holle naald een klein monster inkt van het betwiste document, lossen dit op in een geschikt oplosmiddel zoals pyridine of methanol en brengen het aan op de TLC-plaat naast referentie-inktmonsters.',
170
+ },
171
+ {
172
+ type: 'paragraph',
173
+ html: 'Zodra de plaat in een gesloten kamer is ontwikkeld, scheiden de individuele componenten van de inkt zich op basis van hun verschillende verdeling tussen de stationaire silicagelfase and de mobiele oplosmiddelfase. Het resulterende chromatogram biedt een visuele vingerafdruk van de inkt en toont duidelijke kleuringsbanden op specifieke hoogten. Documentonderzoekers berekenen vervolgens de retentiefactor voor elke zichtbare kleurstofband, wat helpt om te bepalen of de betwiste inkt chemisch consistent is met een verdacht schrijfinstrument of overeenkomt met een bekend merk en bekende formule in een referentiedatabase.',
174
+ },
175
+ {
176
+ type: 'glossary',
177
+ items: [
178
+ { term: 'Stationaire fase', definition: 'De coating op de TLC-plaat, meestal silicagel, die een wisselwerking aangaat met verbindingen en hun beweging vertraagt.' },
179
+ { term: 'Mobiele fase', definition: 'Het oplosmiddelsysteem dat langs de plaat omhoog stijgt en kleurstofcomponenten met zich meevoert.' },
180
+ { term: 'Startlijn', definition: 'De potloodlijn waarop het inktmonster vóór de ontwikkeling wordt aangebracht.' },
181
+ { term: 'Oplosmiddelfront', definition: 'Het hoogste punt dat door de mobiele fase wordt bereikt voordat de plaat wordt verwijderd.' },
182
+ { term: 'Rf-waarde', definition: 'De retentiefactor: de afgelegde afstand van de stof gedeeld door de afgelegde afstand van het oplosmiddelfront.' },
183
+ ],
184
+ },
185
+ {
186
+ type: 'tip',
187
+ title: 'Praktische interpretatietip',
188
+ html: 'Bij forensisch documentonderzoek kan een afwijking bijzonder nuttig zijn, omdat deze een kandidaat-penformulering kan uitsluiten. Een overeenkomend TLC-patroon is zwakker: het geeft aan dat de monsters onder die omstandigheden chemisch consistent zijn, niet dat ze noodzakelijkerwijs van dezelfde pen afkomstig zijn.',
189
+ },
190
+ {
191
+ type: 'proscons',
192
+ title: 'Sterke punten en beperkingen van TLC inktvergelijking',
193
+ items: [
194
+ { pro: 'Snel, goedkoop en visueel intuïtief voor het scheiden van inktkleurstoffen.', con: 'Meestal destructief omdat een klein monster uit het document wordt verwijderd.' },
195
+ { pro: 'Rf-waarden bieden een gestructureerde manier om betwiste en bekende monsters te vergelijken.', con: 'Rf-waarden verschuiven als oplosmiddel, plaat, vochtigheid en ontwikkelingsomstandigheden veranderen.' },
196
+ { pro: 'Nuttig als screeningsmethode voorafgaand aan geavanceerdere analyses.', con: 'Kan zonder aanvullend bewijs geen unieke conclusie trekken over de penbron.' },
197
+ ],
198
+ },
199
+ {
200
+ type: 'diagnostic',
201
+ variant: 'warning',
202
+ icon: 'mdi:scale-balance',
203
+ badge: 'Forensische waarschuwing',
204
+ title: 'Overschat inktchromatografie niet',
205
+ html: 'Een browsersimulatie kan geen papier, inktleeftijd, extractiechemie, plaatkwaliteit, besmetting of instrumentele bevestiging onderzoeken. Gebruik het om de meetlogica en interpretatielimieten te leren, en vertrouw op gevalideerde methoden voor forensisch documentonderzoek voor echt bewijsmateriaal.',
206
+ },
207
+ ],
208
+ faq,
209
+ bibliography,
210
+ howTo,
211
+ schemas: [
212
+ {
213
+ '@context': 'https://schema.org',
214
+ '@type': 'SoftwareApplication',
215
+ name: title,
216
+ description,
217
+ applicationCategory: 'ForensicApplication',
218
+ operatingSystem: 'Any',
219
+ },
220
+ {
221
+ '@context': 'https://schema.org',
222
+ '@type': 'FAQPage',
223
+ mainEntity: faq.map((item) => ({
224
+ '@type': 'Question',
225
+ name: item.question,
226
+ acceptedAnswer: {
227
+ '@type': 'Answer',
228
+ text: item.answer,
229
+ },
230
+ })),
231
+ },
232
+ {
233
+ '@context': 'https://schema.org',
234
+ '@type': 'HowTo',
235
+ name: title,
236
+ step: howTo.map((step) => ({
237
+ '@type': 'HowToStep',
238
+ name: step.name,
239
+ text: step.text,
240
+ })),
241
+ },
242
+ ],
243
+ };
@@ -0,0 +1,243 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'forensyczny-symulator-chromatografii-cienkowarstwowej-tlc-atramentu';
5
+ const title = 'Forensyczny symulator chromatografii cienkowarstwowej (TLC) atramentu';
6
+ const description = 'Symuluj chromatografię cienkowarstwową kwestionowanych atramentów, wizualizuj czoło rozpuszczalnika, rozdzielaj pasma barwników i obliczaj dokładne wartości Rf dla każdego pigmentu.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Wybierz kwestionowany atrament lub długopis porównawczy',
11
+ text: 'Wybierz atrament z listu z żądaniem okupu lub profil podejrzanego długopisu. Każdy atrament zawiera inny zestaw składników barwnikowych o różnej polarności i powinowactwie do fazy stacjonarnej.',
12
+ },
13
+ {
14
+ name: 'Wybierz fazę ruchomą',
15
+ text: 'Zmień układ rozpuszczalników, aby zobaczyć, jak polarność rozpuszczalnika wpływa na rozwój kapilarny i względną migrację każdego pasma barwnika.',
16
+ },
17
+ {
18
+ name: 'Rozwiń płytkę TLC',
19
+ text: 'Przesuń suwak czasu rozwijania i obserwuj, jak czoło rozpuszczalnika wędruje w górę płytki, a rozdzielone pasma pojawiają się powyżej linii startu.',
20
+ },
21
+ {
22
+ name: 'Odczytaj tabelę wartości Rf',
23
+ text: 'Porównaj odległość przebytą przez każdy pigment z odległością czoła rozpuszczalnika. Symulator oblicza wartość Rf jako odległość pigmentu podzieloną przez odległość czoła rozpuszczalnika.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ key: 'faq-1',
30
+ question: 'Co oznacza Rf w chromatografii cienkowarstwowej?',
31
+ answer: 'Rf to współczynnik opóźnienia (retention factor): odległość przebyta przez substancję podzielona przez odległość przebytą przez czoło rozpuszczalnika od tej samej linii startu. Jest to wartość bezwymiarowa i zazwyczaj mieści się w zakresie od 0 do 1.',
32
+ },
33
+ {
34
+ key: 'faq-2',
35
+ question: 'Czy TLC może udowodnić, że dwie próbki atramentu pochodzą z tego samego długopisu?',
36
+ answer: 'Nie. TLC może wykazać, czy wzory barwników są spójne, czy niespójne, ale przypisanie źródła wymaga zweryfikowanych metod porównawczych, kontroli, dokumentacji oraz interpretacji eksperta.',
37
+ },
38
+ {
39
+ key: 'faq-3',
40
+ question: 'Dlaczego zmiana rozpuszczalnika wpływa na układ pasm?',
41
+ answer: 'Barwniki różnie dzielą się między fazę stacjonarną a ruchomą. Rozpuszczalnik o lepszym dopasowaniu polarności może przenieść barwnik dalej, zwiększając jego wartość Rf.',
42
+ },
43
+ {
44
+ key: 'faq-4',
45
+ question: 'Dlaczego linia startu jest ważna?',
46
+ answer: 'Zarówno odległość czoła rozpuszczalnika, jak i odległość pigmentu muszą być mierzone od linii startu. Pomiar od dolnej krawędzi płytki prowadzi do błędnych wartości Rf.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ chamberAria: 'Komora do chromatografii cienkowarstwowej z płytką rozwijaną',
56
+ rulerAria: 'Wirtualna linijka milimetrowa do pomiaru czoła rozpuszczalnika i pasm pigmentu',
57
+ rulerMarks: '80,60,40,20,0',
58
+ units: 'Układ jednostek',
59
+ metric: 'Metryczny',
60
+ imperial: 'Imperialny',
61
+ unitMillimeter: 'mm',
62
+ unitInch: 'in',
63
+ unitMinute: 'min',
64
+ inkSample: 'Próbka atramentu',
65
+ ransomNote: 'Kwestionowany atrament z listu z żądaniem okupu',
66
+ bluePen: 'Zabezpieczony niebieski długopis',
67
+ blackPen: 'Zabezpieczony czarny długopis',
68
+ gelPen: 'Zabezpieczony długopis żelowy',
69
+ solventSystem: 'Fase ruchoma',
70
+ ethanolWater: 'Etanol / woda',
71
+ butanolAcetic: 'Butanol / kwas octowy',
72
+ isopropanolAmmonia: 'Izopropanol / amoniak',
73
+ developmentTime: 'Czas rozwijania',
74
+ frontDistance: 'Droga rozpuszczalnika',
75
+ matchScore: 'Podobieństwo wzoru',
76
+ solventFront: 'Czoło rozpuszczalnika',
77
+ originLine: 'Linia startu',
78
+ pigment: 'Pasmo pigmentu',
79
+ pigmentCyanDye: 'barwnik cyjanowy',
80
+ pigmentVioletDye: 'barwnik fioletowy',
81
+ pigmentGrayCarrier: 'szary nośnik',
82
+ pigmentNavyDye: 'barwnik granatowy',
83
+ pigmentYellowDye: 'barwnik żółty',
84
+ pigmentRedDye: 'barwnik czerwony',
85
+ pigmentBlueDye: 'barwnik niebieski',
86
+ pigmentDarkBinder: 'ciemne spoiwo',
87
+ pigmentTealDye: 'barwnik turkusowy',
88
+ pigmentMagentaDye: 'barwnik magenta',
89
+ pigmentGelBinder: 'spoiwo żelowe',
90
+ distance: 'Odległość',
91
+ rfValue: 'Wartość Rf',
92
+ disclaimer: 'Symulacja wyłącznie do celów edukacyjnych. Forensyczne badanie porównawcze atramentów wymaga oryginalnych dokumentów, zweryfikowanych metod laboratoryjnych, wzorców odniesienia i wykwalifikowanych biegłych z zakresu badania dokumentów.',
93
+ },
94
+ seo: [
95
+ {
96
+ type: 'title',
97
+ text: 'Chromatografia cienkowarstwowa w forensycznym porównywaniu atramentów',
98
+ level: 2,
99
+ },
100
+ {
101
+ type: 'diagnostic',
102
+ variant: 'info',
103
+ icon: 'mdi:test-tube',
104
+ badge: 'Symulator dydaktyczny',
105
+ title: 'W czym pomaga ten symulator chromatografii atramentu TLC',
106
+ html: 'To narzędzie wyjaśnia, jak <strong>chromatografia cienkowarstwowa atramentów</strong> pozwala rozdzielić widoczną linię pisma na wiele pasm barwników. Jest przeznaczone dla studentów kryminalistyki, osób uczących się badania dokumentów oraz każdego, kto chce zrozumieć, jak oblicza się wartości Rf na podstawie rozwiniętej płytki TLC.',
107
+ },
108
+ {
109
+ type: 'stats',
110
+ columns: 4,
111
+ items: [
112
+ { value: 'Rf = d pasma / d czoła', label: 'wzór na współczynnik opóźnienia', icon: 'mdi:division' },
113
+ { value: '4', label: 'porównywane profile atramentów', icon: 'mdi:pen' },
114
+ { value: '3', label: 'symulowane fazy ruchome', icon: 'mdi:flask-outline' },
115
+ { value: '2', label: 'odczyty metryczne i imperialne', icon: 'mdi:swap-horizontal' },
116
+ ],
117
+ },
118
+ {
119
+ type: 'summary',
120
+ title: 'Lista kontrolna prawidłowego pomiaru TLC',
121
+ items: [
122
+ 'Zaznacz linię startu powyżej poziomu rozpuszczalnika przed rozpoczęciem rozwijania.',
123
+ 'Wyjmij płytkę, zanim rozpuszczalnik dotrze do górnej krawędzi.',
124
+ 'Zaznacz cło rozpuszczalnika natychmiast, ponieważ może ono odparować lub stać się słabo widoczne.',
125
+ 'Mierz drogę pigmentu i drogę rozpuszczalnika od tej samej linii startu.',
126
+ 'Zgłaszaj wartości Rf wraz z użytym układem rozpuszczalników, typem płytki, warunkami rozwijania i próbami kontrolnymi.',
127
+ ],
128
+ },
129
+ {
130
+ type: 'comparative',
131
+ columns: 2,
132
+ items: [
133
+ {
134
+ title: 'Co może wykazać TLC',
135
+ icon: 'mdi:check-circle-outline',
136
+ highlight: true,
137
+ description: 'TLC może wykazać, czy kwestionowane i znane atramenty wykazują podobne zachowanie podczas rozdziału barwników w tych samych warunkach.',
138
+ points: ['Porównanie przesiewowe', 'Wizualizacja wzoru barwników', 'Dokumentowanie Rf', 'Wybór próbek do badań potwierdzających'],
139
+ },
140
+ {
141
+ title: 'Czego TLC nie może udowodnić samodzielnie',
142
+ icon: 'mdi:alert-circle-outline',
143
+ description: 'TLC samo w sobie nie pozwala na jednoznaczną identyfikację konkretnego egzemplarza długopisu, określenie wieku dokumentu ani potwierdzenie autorstwa.',
144
+ points: ['Brak unikalnego przypisania źródła', 'Brak identyfikacji autora pisma', 'Brak domyślnego określenia wieku pisma', 'Brak zastępstwa dla zatwierdzonych protokołów'],
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ type: 'table',
150
+ headers: ['Częste pytanie', 'Koncepcja TLC', 'Szczegółowa odpowiedź'],
151
+ rows: [
152
+ ['Jak obliczyć Rf?', 'Odległość barwnika podzielona przez odległość czoła rozpuszczalnika.', 'Zmierz obie odległości od linii startu, a następnie podziel. Wynik jest bezwymiarowy.'],
153
+ ['Dlaczego atramenty rozdzielają się na kolory?', 'Różne barwniki mają różne powinowactwo do fazy stacjonarnej i ruchomej.', 'Pojedyncza nakreślona linia może zawierać kilka barwników wędrujących z różną prędkością.'],
154
+ ['Czy dwa długopisy mogą mieć taki sam wzór TLC?', 'Tak, zbliżone receptury mogą dawać bardzo podobne wzory rozdziału.', 'Podobieństwo potwierdza zgodność grupową, a nie indywidualizację do konkretnego długopisu.'],
155
+ ['Dlaczego moja wartość Rf się zmieniła?', 'Rozpuszczalnik, płytka, wilgotność, nasycenie komory, temperatura i wielkość naniesionej kropli wpływają na migrację.', 'Wartości Rf są porównywalne tylko wtedy, gdy warunki są kontrolowane i udokumentowane.'],
156
+ ],
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Jak symulator modeluje rozdział',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'Model traktuje ruch czoła rozpuszczalnika jako proces wznoszenia kapilarnego, który spowalnia w czasie, podczas gdy każdemu barwnikowi przypisywana jest wartość Rf oparta na dwóch uproszczonych właściwościach: jego powinowactwie do wędrującego rozpuszczalnika i dopasowaniu polarności do wybranej fazy ruchomej. Ma to charakter wyłącznie edukacyjny, a nie chemii instrumentalnej, ale oddaje kluczową zależność, którą użytkownicy powinni przyswoić: rozpuszczalnik przemieszcza się jako pierwszy, barwniki dzielą się między fazy, a wartość Rf jest obliczana na podstawie zmierzonych odległości.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Chromatografia cienkowarstwowa jest powszechnie akceptowaną techniką analityczną w laboratoriach kryminalistycznych ze względu na swoją prostotę, szybkość i opłacalność. W kontekście badania dokumentów jest ona stosowana głównie do porównywania składu barwników różnych próbek atramentu. Biegli pobierają mały fragment atramentu z kwestionowanego dokumentu za pomocą skalpela lub igły, rozpuszczają go w odpowiednim rozpuszczalniku, takim jak pirydyna lub metanol, a następnie nanoszą go na płytkę TLC obok referencyjnych wzorców atramentu.',
170
+ },
171
+ {
172
+ type: 'paragraph',
173
+ html: 'Po rozwinięciu płytki w zamkniętej komorze poszczególne składniki atramentu rozdzielają się na podstawie ich różnego powinowactwa do stacjonarnej fazy żelu krzemionkowego i ruchomej fazy rozpuszczalnika. Otrzymany chromatogram stanowi wizualny profil atramentu, ukazując wyraźne pasma barwne na określonych wysokościach. Eksperci badający dokumenty obliczają następnie współczynnik opóźnienia dla każdego widocznego pasma barwnika, co pomaga ustalić, czy badany atrament jest chemicznie spójny z podejrzanym narzędziem pisarskim lub czy odpowiada znanej marce i recepturze w bazie danych atramentów.',
174
+ },
175
+ {
176
+ type: 'glossary',
177
+ items: [
178
+ { term: 'Faza stacjonarna', definition: 'Warstwa na płytce TLC, najczęściej żel krzemionkowy, która oddziałuje ze składnikami i spowalnia ich wędrówkę.' },
179
+ { term: 'Faza ruchoma', definition: 'Układ rozpuszczalników wędrujący w górę płytki i unoszący ze sobą składniki barwnika.' },
180
+ { term: 'Linia startu', definition: 'Linia narysowana ołówkiem, na którą nanosi się próbkę atramentu przed rozpoczęciem analizy.' },
181
+ { term: 'Czoło rozpuszczalnika', definition: 'Najwyższy punkt osiągnięty przez fazę ruchomą przed wyjęciem płytki z komory.' },
182
+ { term: 'Wartość Rf', definition: 'Współczynnik opóźnienia: odległość przebyta przez substancję podzielona przez odległość przebytą przez czoło rozpuszczalnika.' },
183
+ ],
184
+ },
185
+ {
186
+ type: 'tip',
187
+ title: 'Praktyczna wskazówka interpretacyjna',
188
+ html: 'W kryminalistycznym badaniu dokumentów brak zgodności jest szczególnie wartościowy, ponieważ pozwala wykluczyć badany długopis. Zgodność wzorów TLC jest słabszym dowodem: oznacza jedynie, że próbki są spójne chemicznie w danych warunkach, ale nie gwarantuje, że pochodzą z tego samego długopisu.',
189
+ },
190
+ {
191
+ type: 'proscons',
192
+ title: 'Zalety i ograniczenia porównywania atramentów metodą TLC',
193
+ items: [
194
+ { pro: 'Szybka, niedroga i wizualnie intuicyjna metoda rozdziału barwników atramentu.', con: 'Zazwyczaj niszcząca, ponieważ wymaga pobrania mikroskopijnej próbki z dokumentu.' },
195
+ { pro: 'Wartości Rf tworzą ustrukturyzowany sposób porównywania próbek kwestionowanych i znanych.', con: 'Wartości Rf zmieniają się pod wpływem zmian rozpuszczalnika, płytki, wilgotności i warunków rozwijania.' },
196
+ { pro: 'Przydatna jako metoda przesiewowa przed bardziej zaawansowanymi badaniami.', con: 'Nie pozwala na sformułowanie jednoznacznego wniosku o pochodzeniu z konkretnego długopisu bez dodatkowych dowodów.' },
197
+ ],
198
+ },
199
+ {
200
+ type: 'diagnostic',
201
+ variant: 'warning',
202
+ icon: 'mdi:scale-balance',
203
+ badge: 'Przestroga kryminalistyczna',
204
+ title: 'Nie przeceniaj znaczenia chromatografii atramentu',
205
+ html: 'Symulacja komputerowa nie zbada papieru, wieku atramentu, chemii ekstrakcji, jakości płytki, zanieczyszczeń ani nie zastąpi potwierdzenia metodami instrumentalnymi. Używaj jej do nauki logiki pomiaru i ograniczeń interpretacji, a w przypadku rzeczywistych dowodów opieraj się na zatwierdzonych metodach kryminalistycznego badania dokumentów.',
206
+ },
207
+ ],
208
+ faq,
209
+ bibliography,
210
+ howTo,
211
+ schemas: [
212
+ {
213
+ '@context': 'https://schema.org',
214
+ '@type': 'SoftwareApplication',
215
+ name: title,
216
+ description,
217
+ applicationCategory: 'ForensicApplication',
218
+ operatingSystem: 'Any',
219
+ },
220
+ {
221
+ '@context': 'https://schema.org',
222
+ '@type': 'FAQPage',
223
+ mainEntity: faq.map((item) => ({
224
+ '@type': 'Question',
225
+ name: item.question,
226
+ acceptedAnswer: {
227
+ '@type': 'Answer',
228
+ text: item.answer,
229
+ },
230
+ })),
231
+ },
232
+ {
233
+ '@context': 'https://schema.org',
234
+ '@type': 'HowTo',
235
+ name: title,
236
+ step: howTo.map((step) => ({
237
+ '@type': 'HowToStep',
238
+ name: step.name,
239
+ text: step.text,
240
+ })),
241
+ },
242
+ ],
243
+ };