@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,231 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+
4
+ const slug = 'forensic-glass-becke-line-simulator';
5
+ const title = '법의학 유리 굴절률 베케선 시뮬레이터';
6
+ const description = '침적액을 가열하여 굴절률을 일치시키고 밝은 하로가 사라지는 것을 관찰함으로써 법의학적 유리 비교를 위한 베케선 방법을 시뮬레이션합니다.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: '감정 대상 유리 프로필 선택',
11
+ text: '소다 석회 유리, 붕규산 실험실 유리, 납 크리스탈 유리, 강화 창유리 등 일반적인 유리 참조 프로필을 선택합니다.',
12
+ },
13
+ {
14
+ name: '핫스테이지 온도 조정',
15
+ text: '온도 슬라이더를 움직여 가상 침적액의 굴절률을 변경합니다.',
16
+ },
17
+ {
18
+ name: '베케선 이동 관찰',
19
+ text: '초점 방향 컨트롤을 사용하여 밝은 선이 안쪽으로 이동하는지, 바깥쪽으로 이동하는지 또는 일치점에서 거의 사라지는지 확인합니다.',
20
+ },
21
+ {
22
+ name: '굴절률 차이 읽기',
23
+ text: '액체 RI, 유리 RI, 델타 RI 및 일치 비율을 비교하여 굴절률이 일치할 때 하로가 희미해지는 이유를 이해합니다.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: '법의학 유리 분석에서 베케선이란 무엇입니까?',
30
+ answer: '베케선은 유리 파편과 침적액의 굴절률이 다를 때 그 경계 근처에서 관찰되는 밝은 하로(광륜)입니다. 초점을 맞추는 동안의 이동 방향은 어느 물질의 굴절률이 더 높은지 결정하는 데 도움이 됩니다.',
31
+ },
32
+ {
33
+ question: '침적액을 가열하는 것이 왜 중요합니까?',
34
+ answer: '많은 침적액은 온도가 상승함에 따라 굴절률이 감소합니다. 액체를 가열하여 굴절률을 유리와 일치시키면 경계 대비가 사라지고 파편 가장자리를 보기 어려워집니다.',
35
+ },
36
+ {
37
+ question: '굴절률만으로 유리 출처를 식별할 수 있습니까?',
38
+ answer: '아니요. RI는 클래스 비교 및 배제를 지원할 수 있지만, 법의학적 출처 해석은 원소 구성, 두께, 색상, 파단 맥락, 대조군, 불확실성 및 검증된 실험실 절차도 함께 고려합니다.',
39
+ },
40
+ {
41
+ question: '베케선이 사라진다는 것은 무엇을 의미합니까?',
42
+ answer: '해당 시뮬레이션 조건에서 액체와 유리의 굴절률이 매우 유사함을 의미합니다. 실제 현미경 관찰에서는 교정된 온도 제어 및 참조 물질을 통해 소실을 판단합니다.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ viewerAria: '침적액 내 유리 파편을 보여주는 가상 현미경 뷰',
52
+ units: '온도 단위계',
53
+ metric: '미터법',
54
+ imperial: '야드파운드법',
55
+ unitCelsius: 'C',
56
+ unitFahrenheit: 'F',
57
+ glassSample: '참조 유리',
58
+ sodaLime: '소다 석회 용기 유리',
59
+ borosilicate: '붕규산 실험실 유리',
60
+ leadCrystal: '장식용 납 크리스탈 유리',
61
+ tempered: '강화 창유리',
62
+ stageTemperature: '스테이지 온도',
63
+ focusDirection: '초점 방향',
64
+ focusRaised: '초점 올리기',
65
+ focusLowered: '초점 내리기',
66
+ liquidRi: '액체 RI',
67
+ glassRi: '유리 RI',
68
+ deltaRi: '델타 RI',
69
+ matchMeter: 'RI 일치도',
70
+ canvasHalo: '가시적인 베케 하로',
71
+ canvasFocusSeparator: ' - ',
72
+ canvasMatched: '가장자리 거의 일치함',
73
+ interpMatched: '경계가 광학적 일치 상태에 가깝습니다. 실제 베케선 시험에서 이 영역은 하로가 희미해지고 파편 가장자리를 찾기가 가장 어려운 부분입니다.',
74
+ interpGlassHigher: '유리의 굴절률이 더 높습니다. 초점을 올렸을 때 베케선 거동은 빛이 경계의 유리 쪽으로 집중됨을 나타냅니다.',
75
+ interpLiquidHigher: '침적액의 굴절률이 더 높습니다. 온도가 액체 굴절률을 유리 쪽으로 가깝게 가져갈 때까지 하로는 액체 쪽으로 이동합니다.',
76
+ disclaimer: '교육용 시뮬레이션 전용입니다. 실제 법의학 유리 비교에는 교정된 굴절률 장비, 알려진 표준, 불확실성 보고 및 자격을 갖춘 해석이 필요합니다.',
77
+ },
78
+ seo: [
79
+ {
80
+ type: 'title',
81
+ text: '법의학 유리를 위한 베케선 굴절률 시험',
82
+ level: 2,
83
+ },
84
+ {
85
+ type: 'diagnostic',
86
+ variant: 'info',
87
+ icon: 'mdi:microscope',
88
+ badge: '교학용 시뮬레이터',
89
+ title: '이 유리 RI 시뮬레이터가 보여주는 것',
90
+ html: '이 시뮬레이터는 액체 굴절률이 유리 굴절률에 가까워짐에 따라 침적 오일 속 유리 파편이 왜 더 잘 보이거나 덜 보이는지 보여줍니다. 이는 <strong>베케선 현미경법</strong>, 핫스테이지 RI 매칭 및 유리 비교 증거의 한계를 학습하는 법의학 전공 학생들을 위해 제작되었습니다.',
91
+ },
92
+ {
93
+ type: 'stats',
94
+ columns: 4,
95
+ items: [
96
+ { value: 'n 유리 - n 액체', label: '표시된 굴절률 대비', icon: 'mdi:delta' },
97
+ { value: '15-145 C', label: '핫스테이지 범위', icon: 'mdi:thermometer' },
98
+ { value: '4', label: '유리 프로필', icon: 'mdi:glass-fragile' },
99
+ { value: 'C / F', label: '변환 가능한 온도 단위', icon: 'mdi:swap-horizontal' },
100
+ ],
101
+ },
102
+ {
103
+ type: 'summary',
104
+ title: '실용적인 베케선 관찰 체크리스트',
105
+ items: [
106
+ '적절한 굴절률 액체에 완전히 잠긴 깨끗하고 작은 유리 파편을 사용하십시오.',
107
+ '경계의 약간 위와 아래에 초점을 맞추고 밝은 선이 어느 쪽으로 이동하는지 관찰하십시오.',
108
+ '선이 좁은 범위에서 희미해질 수 있으므로 예상 일치점 부근에서는 온도를 천천히 올리십시오.',
109
+ '온도, 액체 유형, 교정 표준, 관찰된 일치 거동 및 불확실성을 기록하십시오.',
110
+ 'RI를 클래스 증거로 취급하십시오. 불일치는 배제할 수 있는 반면, 일치는 추가적인 맥락이 필요합니다.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'comparative',
115
+ columns: 2,
116
+ items: [
117
+ {
118
+ title: 'RI 비교가 뒷받침할 수 있는 것',
119
+ icon: 'mdi:check-circle-outline',
120
+ highlight: true,
121
+ description: '굴절률은 통제된 조건 하에서 감정 대상 유리 파편을 알려진 참조 유리와 비교하는 데 도움을 줄 수 있습니다.',
122
+ points: ['클래스 특성 비교', 'RI가 명확히 다를 때 배제', '원소 분석 전 스크리닝', '광학 경계 거동 교육'],
123
+ },
124
+ {
125
+ title: 'RI만으로 증명할 수 없는 것',
126
+ icon: 'mdi:alert-circle-outline',
127
+ description: '일치하는 RI는 창유리, 병, 차량 창문 또는 사건 현장 출처를 고유하게 식별하지 못합니다.',
128
+ points: ['그 자체만으로는 개별 출처 특정 불가능', '현장 맥락 없는 재구성 불가능', '대조군 대체 불가능', '브라우저 모델을 통한 법적 결론 도출 불가능'],
129
+ },
130
+ ],
131
+ },
132
+ {
133
+ type: 'table',
134
+ headers: ['사용자 질문', '현미경 개념', '상세한 답변'],
135
+ rows: [
136
+ ['밝은 가장자리가 왜 이동하나요?', '두 굴절률 경계에서의 굴절.', '초점을 올리면 베케선은 굴절률이 더 높은 물질 쪽으로 이동하는 경향이 있습니다.'],
137
+ ['가장자리가 왜 사라지나요?', '굴절률 일치.', '유리와 액체의 RI가 거의 같을 때 경계 대비가 감소하고 하로가 약해집니다.'],
138
+ ['액체를 왜 가열하나요?', '열적 RI 계수.', '시뮬레이션된 액체 RI는 온도에 따라 감소하므로 다양한 유리 유형과의 매칭이 가능합니다.'],
139
+ ['일치가 결정적인가요?', '클래스 증거의 한계.', '일치는 일관성만을 지지할 뿐이며, 많은 유리 물체가 유사한 RI를 공유할 수 있습니다.'],
140
+ ],
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: '시뮬레이션 모델 작동 방식',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: '이 모델은 각 유리 프로필에 기준 굴절률을 할당하고 침적액을 온도에 민감한 매체로 취급합니다. 핫스테이지가 가열됨에 따라 액체 지수는 고정된 열 계수만큼 감소합니다. 그런 다음 시뮬레이터는 유리 RI와 액체 RI의 차이를 계산하여 하로 밝기, 하로 오프셋, 일치 비율 및 해석 메시지를 제어하는 데 사용합니다.',
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: '시각적 현미경 필드는 의도적으로 정성적입니다. 모든 광학 경로를 광선 추적(ray-trace)하려고 시도하지 않습니다. 대신 필수적인 교육적 관계를 보존합니다. 즉, 강한 RI 대비는 밝은 경계를 생성하고, 낮은 대비는 희미한 경계를 생성하며, 일치점 부근에서는 유리 가장자리가 액체 속으로 사라지는 것처럼 보일 수 있습니다.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '전문적인 법의학 실험실에서는 굴절률이 알려진 참조 유리 시료를 사용하여 핫스테이지의 온도를 교정합니다. 침적액의 굴절률은 온도가 상승함에 따라 예측 가능한 방식으로 변화하므로(일반적으로 dn/dT로 표시됨), 베케선이 소실되는 정확한 온도를 측정함으로써 과학자는 유리의 굴절률을 소수점 넷째 자리까지 계산할 수 있습니다. 이 시뮬레이터는 선형 방정식을 사용하여 이 온도 의존적 거동을 모델링하므로, 학생들이 가열 스테이지를 신중하게 제어하여 정확한 일치점을 찾는 연습을 할 수 있도록 지원합니다.',
158
+ },
159
+ {
160
+ type: 'paragraph',
161
+ html: '유리 증거를 분석할 때, 굴절률은 클래스 특성 증거로 간주됩니다. 사건 현장의 유리 파편과 용의자의 의류에서 검출된 유리의 굴절률이 일치하는 것이 공통된 출처와 일치할 수는 있지만, 많은 유리 물체가 동일한 굴절률 값을 공유하므로 출처를 고유하게 식별하지는 못합니다. 따라서 법의학 전문가는 일치하는 결과를 신중하게 해석해야 하며, 광학적 특성만으로는 결정적인 출처 특정이 불가능함을 강조하면서 일관성의 관점에서 일치를 보고해야 합니다.',
162
+ },
163
+ {
164
+ type: 'glossary',
165
+ items: [
166
+ { term: '굴절률', definition: '진공과 비교하여 물질이 빛을 얼마나 강하게 굴절시키는지에 대한 척도.' },
167
+ { term: '침적액', definition: '현미경 RI 비교 시 파편을 둘러싸기 위해 사용되는 알려진 광학적 특성을 가진 액체.' },
168
+ { term: '베케선', definition: '두 투명 물질의 굴절률이 다를 때 경계에서 관찰되는 밝은 선 또는 하로.' },
169
+ { term: '일치점', definition: '침적액과 유리가 거의 동일한 굴절률을 갖는 온도 영역.' },
170
+ { term: '클래스 증거', definition: '품목을 단일 고유 출처가 아니라 가능한 출처 그룹과 연관시킬 수 있는 증거.' },
171
+ ],
172
+ },
173
+ {
174
+ type: 'tip',
175
+ title: '학생을 위한 해석 팁',
176
+ html: '유리 증거에서 명확한 RI 불일치는 제안된 출처를 배제할 수 있기 때문에 일치보다 더 강력한 경우가 많습니다. 일치도 유용하지만 그 강도는 모집단 데이터, 측정 정밀도, 원소 구성 및 사건 맥락에 따라 달라집니다.',
177
+ },
178
+ {
179
+ type: 'proscons',
180
+ title: '베케선 유리 RI 시험의 강점과 한계',
181
+ items: [
182
+ { pro: '신속하고 시각적이며 투명 물질 비교 교육에 탁월합니다.', con: '관찰자의 판단과 초점 기술이 선의 명백한 이동에 영향들 미칠 수 있습니다.' },
183
+ { pro: '온도 매칭은 교정 시 유용한 정밀도로 RI를 추정할 수 있습니다.', con: '실제 작업에서는 열 제어, 액체 노화, 오염 및 표준 물질이 중요합니다.' },
184
+ { pro: '광학적 특성이 분명히 다른 유리 파편을 배제하는 데 유용합니다.', con: '더 광범위한 분석 및 맥락적 증거 없이는 출처를 개별화할 수 없습니다.' },
185
+ ],
186
+ },
187
+ {
188
+ type: 'diagnostic',
189
+ variant: 'warning',
190
+ icon: 'mdi:scale-balance',
191
+ badge: '법의학적 주의',
192
+ title: '결론을 비례적으로 유지하십시오',
193
+ html: '브라우저 베케선 시뮬레이션은 학습 보조 도구일 뿐 실험실 방법이 아닙니다. 공식적인 유리 증거 해석은 검증된 장비, 문서화된 절차, 교정 기록, 불확실성 추정치, 동료 검토 및 관할 권한에 적합한 보고 용어에 의존해야 합니다.',
194
+ },
195
+ ],
196
+ faq,
197
+ bibliography,
198
+ howTo,
199
+ schemas: [
200
+ {
201
+ '@context': 'https://schema.org',
202
+ '@type': 'SoftwareApplication',
203
+ name: title,
204
+ description,
205
+ applicationCategory: 'ForensicApplication',
206
+ operatingSystem: 'Any',
207
+ },
208
+ {
209
+ '@context': 'https://schema.org',
210
+ '@type': 'FAQPage',
211
+ mainEntity: faq.map((item) => ({
212
+ '@type': 'Question',
213
+ name: item.question,
214
+ acceptedAnswer: {
215
+ '@type': 'Answer',
216
+ text: item.answer,
217
+ },
218
+ })),
219
+ },
220
+ {
221
+ '@context': 'https://schema.org',
222
+ '@type': 'HowTo',
223
+ name: title,
224
+ step: howTo.map((step) => ({
225
+ '@type': 'HowToStep',
226
+ name: step.name,
227
+ text: step.text,
228
+ })),
229
+ },
230
+ ],
231
+ };
@@ -0,0 +1,231 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+
4
+ const slug = 'becke-lijn-glas-brekingsindex-simulator';
5
+ const title = 'Forensische Glas Brekingsindex Becke lijn Simulator';
6
+ const description = 'Simuleer de Becke-lijn methode voor forensische glasvergelijking door een immersievloeistof te verwarmen, brekingsindices te matchen en de heldere halo te zien verdwijnen.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Selecteer een betwist glasprofiel',
11
+ text: 'Kies een veelvoorkomend glasreferentieprofiel zoals natronkalkglas, borosilicaatglas, loodkristal of gehard vensterglas.',
12
+ },
13
+ {
14
+ name: 'Pas de temperatuur van de verwarmbare objecttafel aan',
15
+ text: 'Verschuif de temperatuurregelaar om de brekingsindex van de virtuele immersievloeistof te veranderen.',
16
+ },
17
+ {
18
+ name: 'Observeer de beweging van de Becke-lijn',
19
+ text: 'Gebruik de focusrichtingsknop om te zien of de heldere lijn naar binnen of naar buiten beweegt, of bijna verdwijnt op het matchpunt.',
20
+ },
21
+ {
22
+ name: 'Lees het indexverschil af',
23
+ text: 'Vergelijk vloeistof-RI, glas-RI, delta-RI en matchpercentage om te begrijpen waarom de halo zwakker wordt in de buurt van indexovereenstemming.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Wat is de Becke-lijn bij forensische glasanalyse?',
30
+ answer: 'De Becke-lijn is een heldere halo (lichtrand) die te zien is nabij de grens tussen een glasfragment en een immersievloeistof wanneer hun brekingsindices verschillen. De beweging tijdens het scherpstellen helpt bepalen welk materiaal de hoogste brekingsindex heeft.',
31
+ },
32
+ {
33
+ question: 'Waarom is het verwarmen van de immersievloeistof belangrijk?',
34
+ answer: 'De brekingsindex van veel immersievloeistoffen daalt naarmate de temperatuur stijgt. Door de vloeistof te verwarmen tot de index overeenkomt met die van het glas, vervaagt het contrast op de grens en wordt de rand van het fragment moeilijk zichtbaar.',
35
+ },
36
+ {
37
+ question: 'Kan brekingsindex op zichzelf een glasbron identificeren?',
38
+ answer: 'Nee. RI kan klasse-vergelijking en uitsluiting ondersteunen, maar forensische broninterpretatie houdt ook rekening met elementsamenstelling, dikte, kleur, breukcontext, controles, onzekerheid en gevalideerde laboratoriumprocedures.',
39
+ },
40
+ {
41
+ question: 'Wat betekent het als de Becke-lijn verdwijnt?',
42
+ answer: 'Het betekent dat de vloeistof en het glas onder die gesimuleerde omstandigheden zeer vergelijkbare brekingsindices hebben. In de echte microscopie wordt het verdwijnen beoordeeld met gekalibreerde temperatuurregeling en referentiematerialen.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ viewerAria: 'Virtueel microscoopbeeld dat een glasfragment in immersievloeistof toont',
52
+ units: 'Temperatuureenhedensysteem',
53
+ metric: 'Metrisch',
54
+ imperial: 'Imperiaal',
55
+ unitCelsius: 'C',
56
+ unitFahrenheit: 'F',
57
+ glassSample: 'Glasreferentie',
58
+ sodaLime: 'Natronkalk-verpakkingsglas',
59
+ borosilicate: 'Borosilicaat-laboratoriumglas',
60
+ leadCrystal: 'Loodkristal-decoratieglas',
61
+ tempered: 'Gehard vensterglas',
62
+ stageTemperature: 'Temperatuur objecttafel',
63
+ focusDirection: 'Focusrichting',
64
+ focusRaised: 'Focus omhoog',
65
+ focusLowered: 'Focus omlaag',
66
+ liquidRi: 'Vloeistof RI',
67
+ glassRi: 'Glas RI',
68
+ deltaRi: 'Delta RI',
69
+ matchMeter: 'RI-overeenkomst',
70
+ canvasHalo: 'zichtbare Becke-halo',
71
+ canvasFocusSeparator: ' - ',
72
+ canvasMatched: 'rand bijna gelijk',
73
+ interpMatched: 'De grens is dicht bij een optische match. Bij een echte Becke-lijntest is dit het gebied waar de halo zwak wordt en de fragmentrand het moeilijkst te lokaliseren is.',
74
+ interpGlassHigher: 'Het glas heeft de hogere brekingsindex. Bij een verhoogde focus geeft het gedrag van de Becke-lijn aan dat het licht zich concentreert naar de glaszijde van de grens.',
75
+ interpLiquidHigher: 'De immersievloeistof heeft de hogere brekingsindex. De halo verschuift naar de vloeistofzijde totdat de temperatuur de vloeistofindex dichter bij het glas brengt.',
76
+ disclaimer: 'Uitsluitend educatieve simulatie. Echte forensische glasvergelijking vereist gekalibreerde brekingsindexapparatuur, bekende standaarden, onzekerheidsrapportage en gekwalificeerde interpretatie.',
77
+ },
78
+ seo: [
79
+ {
80
+ type: 'title',
81
+ text: 'Becke-lijn brekingsindextest voor forensisch glas',
82
+ level: 2,
83
+ },
84
+ {
85
+ type: 'diagnostic',
86
+ variant: 'info',
87
+ icon: 'mdi:microscope',
88
+ badge: 'Educatieve simulator',
89
+ title: 'Wat deze glas RI simulator aantoont',
90
+ html: 'Deze simulator laat zien waarom een glasfragment min of meer zichtbaar wordt in immersieolie naarmate de brekingsindex van de vloeistof de brekingsindex van het glas nadert. Het is gemaakt voor studenten forensische wetenschappen die <strong>Becke-lijnmicroscopie</strong> leren, RI-matching met verwarmbare tafels en de limieten van glasvergelijkingsbewijs.',
91
+ },
92
+ {
93
+ type: 'stats',
94
+ columns: 4,
95
+ items: [
96
+ { value: 'n glas - n vloeistof', label: 'getoond indexcontrast', icon: 'mdi:delta' },
97
+ { value: '15-145 C', label: 'bereik van de verwarmbare tafel', icon: 'mdi:thermometer' },
98
+ { value: '4', label: 'glasprofielen', icon: 'mdi:glass-fragile' },
99
+ { value: 'C / F', label: 'converteerbare temperatuureenheden', icon: 'mdi:swap-horizontal' },
100
+ ],
101
+ },
102
+ {
103
+ type: 'summary',
104
+ title: 'Praktische checklist voor het observeren van de Becke lijn',
105
+ items: [
106
+ 'Gebruik een schoon, klein glasfragment dat volledig is ondergedompeld in een geschikte brekingsindexvloeistof.',
107
+ 'Stel iets boven en onder de grens scherp en kijk naar welke kant de heldere lijn lijkt te bewegen.',
108
+ 'Verhoog de temperatur langzaam in de buurt van het geschatte matchpunt omdat de lijn over een smal bereik kan vervagen.',
109
+ 'Noteer temperatuur, vloeistoftype, kalibratiestandaard, waargenomen matchgedrag en onzekerheid.',
110
+ 'Behandel RI als klasse-bewijs: een mismatch kan uitsluiten, terwijl een match extra context vereist.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'comparative',
115
+ columns: 2,
116
+ items: [
117
+ {
118
+ title: 'Wat RI vergelijking kan ondersteunen',
119
+ icon: 'mdi:check-circle-outline',
120
+ highlight: true,
121
+ description: 'De brekingsindex kan helpen bij het vergelijken van betwiste glasfragmenten met bekende referentieglazen onder gecontroleerde omstandigheden.',
122
+ points: ['Vergelijking van klasse-eigenschappen', 'Uitsluiting wanneer de RI duidelijk verschilt', 'Screening voorafgaand aan elementenanalyse', 'Onderwijzen van optisch gedrag op grenzen'],
123
+ },
124
+ {
125
+ title: 'Wat RI alleen niet kan bewijzen',
126
+ icon: 'mdi:alert-circle-outline',
127
+ description: 'Een overeenkomstige RI identificeert niet uniek een ruit, fles, voertuigruit of bron op de plaats delict.',
128
+ points: ['Geen individuele brontoewijzing op zich', 'Geen reconstructie zonder context van de plaats delict', 'Geen vervanging voor controles', 'Geen juridische conclusie uit een browsermodel'],
129
+ },
130
+ ],
131
+ },
132
+ {
133
+ type: 'table',
134
+ headers: ['Gebruikersvraag', 'Microscopieconcept', 'Zorgvuldig antwoord'],
135
+ rows: [
136
+ ['Waarom beweegt de heldere rand?', 'Breking op een grens tussen twee brekingsindices.', 'De Becke-lijn heeft de neiging om naar het materiaal met de hogere brekingsindex te bewegen wanneer de focus wordt verhoogd.'],
137
+ ['Waarom verdwijnt de rand?', 'Indexovereenstemming.', 'Wanneer glas en vloeistof-RI bijna gelijk zijn, daalt het contrast op de grens en wordt de halo zwak.'],
138
+ ['Waarom de vloeistof verwarmen?', 'Thermische RI-coëfficiënt.', 'De gesimuleerde vloeistof-RI daalt met de temperatuur, waardoor een match met verschillende glastypen mogelijk is.'],
139
+ ['Is een match sluitend?', 'Beperking van klasse-bewijs.', 'Een match ondersteunt alleen consistentie; veel glazen objecten kunnen een vergelijkbare RI delen.'],
140
+ ],
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Hoe het simulatiemodel werkt',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Het model wijst aan elk glasprofiel een referentiebrekingsindex toe en behandelt de immersievloeistof als een temperatuurgevoelig medium. Terwijl de verwarmbare tafel opwarmt, daalt de vloeistofindex met een vaste thermische coëfficiënt. De simulator berekent vervolgens het verschil tussen glas-RI en vloeistof-RI, en gebruikt dat verschil om de helderheid van de halo, de halo-verschuiving, het matchpercentage en het interpretatiebericht te regelen.',
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Het visuele microscoopveld is bewust kwalitatief. Het probeert niet elk optisch pad te traceren. In plaats daarvan behoudt het de essentiële didactische relatie: sterk RI-contrast produceert een heldere grens; lager contrast produceert een zwakke grens; en nabij het matchpunt kan de glasrand in de vloeistof lijken te verdwijnen.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'In professionele forensische laboratoria wordt de kalibratie van de verwarmbare tafel uitgevoerd met behulp van glasreferentiemonsters met een bekende brekingsindex. Omdat de brekingsindex van de immersievloeistof voorspelbaar varieert met de temperatuur (meestal aangeduid als dn/dT), stelt de exacte temperatuur waarop de Becke-lijn verdwijnt de wetenschapper in staat om de brekingsindex van het glas tot op vier decimalen nauwkeurig te berekenen. Deze simulator modelleert dit temperatuurafhankelijke gedrag met behulp van een lineaire formule, zodat studenten kunnen oefenen met het vinden van het exacte matchpunt door de verwarmingstafel zorgvuldig te regelen.',
158
+ },
159
+ {
160
+ type: 'paragraph',
161
+ html: 'Bij het analyseren van glasbewijs wordt de brekingsindex beschouwd als klasse-eigenschapsbewijs. Hoewel een overeenkomstige brekingsindex tussen een fragment op een plaats delict en de kleding van een verdachte consistent is met een gemeenschappelijke bron, identificeert het de bron niet op unieke wijze, omdat veel glazen objecten identieke brekingsindexwaarden delen. Daarom moeten forensische experts overeenkomstige resultaten conservatief interpreteren en de overeenkomst rapporteren in termen van consistentie, terwijl ze benadrukken dat een definitieve brontoewijzing niet mogelijk is op basis van alleen optische eigenschappen.',
162
+ },
163
+ {
164
+ type: 'glossary',
165
+ items: [
166
+ { term: 'Brekingsindex', definition: 'Een maat voor hoe sterk een materiaal licht afbuigt in vergelijking met vacuüm.' },
167
+ { term: 'Immersievloeistof', definition: 'Een vloeistof met bekende optische eigenschappen die wordt gebruikt om een fragment te omringen tijdens microscopische RI-vergelijking.' },
168
+ { term: 'Becke-lijn', definition: 'De heldere lijn of halo die te zien is op een grens wanneer twee transparante materialen verschillende brekingsindices hebben.' },
169
+ { term: 'Matchpunt', definition: 'Het temperatuurgebied waar de immersievloeistof en het glas bijna dezelfde brekingsindex hebben.' },
170
+ { term: 'Klasse-bewijs', definition: 'Bewijsmateriaal dat een item kan associëren met een groep mogelijke bronnen in plaats van één unieke bron.' },
171
+ ],
172
+ },
173
+ {
174
+ type: 'tip',
175
+ title: 'Interpretatietip voor studenten',
176
+ html: 'Bij glasbewijs is een duidelijke RI-mismatch vaak krachtiger dan een match omdat het een voorgestelde bron kan uitsluiten. Een match is nuttig, maar de kracht ervan hangt af van populatiegegevens, meetprecisie, elementsamenstelling en de casuscontext.',
177
+ },
178
+ {
179
+ type: 'proscons',
180
+ title: 'Sterke punten en limieten van Becke lijn glas RI testen',
181
+ items: [
182
+ { pro: 'Snel, visueel en uitstekend geschikt voor het onderwijzen van de vergelijking van transparante materialen.', con: 'Het oordeel van de waarnemer en de focustechniek kunnen de schijnbare lijnbeweging beïnvloeden.' },
183
+ { pro: 'Temperatuurmatching kan de RI met nuttige precisie schatten wanneer gekalibreerd.', con: 'Thermische regeling, veroudering van vloeistoffen, verontreiniging en standaarden zijn van belang in echt werk.' },
184
+ { pro: 'Nuttig voor het uitsluiten van glasfragmenten met duidelijk verschillende optische eigenschappen.', con: 'Kan een bron niet individualiseren zonder breder analytisch en contextueel bewijs.' },
185
+ ],
186
+ },
187
+ {
188
+ type: 'diagnostic',
189
+ variant: 'warning',
190
+ icon: 'mdi:scale-balance',
191
+ badge: 'Forensische waarschuwing',
192
+ title: 'Houd de conclusie proportioneel',
193
+ html: 'Een Becke-lijnsimulatie in de browser is een leermiddel, geen laboratoriummethode. Formele interpretatie van glasbewijs moet gebaseerd zijn op gevalideerde instrumenten, schriftelijke procedures, kalibratiegegevens, onzekerheidsschattingen, collegiale toetsing en de juiste rapportagetaal for het rechtsgebied.',
194
+ },
195
+ ],
196
+ faq,
197
+ bibliography,
198
+ howTo,
199
+ schemas: [
200
+ {
201
+ '@context': 'https://schema.org',
202
+ '@type': 'SoftwareApplication',
203
+ name: title,
204
+ description,
205
+ applicationCategory: 'ForensicApplication',
206
+ operatingSystem: 'Any',
207
+ },
208
+ {
209
+ '@context': 'https://schema.org',
210
+ '@type': 'FAQPage',
211
+ mainEntity: faq.map((item) => ({
212
+ '@type': 'Question',
213
+ name: item.question,
214
+ acceptedAnswer: {
215
+ '@type': 'Answer',
216
+ text: item.answer,
217
+ },
218
+ })),
219
+ },
220
+ {
221
+ '@context': 'https://schema.org',
222
+ '@type': 'HowTo',
223
+ name: title,
224
+ step: howTo.map((step) => ({
225
+ '@type': 'HowToStep',
226
+ name: step.name,
227
+ text: step.text,
228
+ })),
229
+ },
230
+ ],
231
+ };