@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 = 'simulatore-linea-becke-indice-rifrazione-vetro';
5
+ const title = 'Simulatore della linea di Becke e dell\'indice di rifrazione del vetro forense';
6
+ const description = 'Simula il metodo della linea di Becke per il confronto forense dei vetri riscaldando un liquido di immersione, allineando gli indici di rifrazione e osservando la scomparsa del halo luminoso.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Selezionare un profilo di vetro dubitato',
11
+ text: 'Scegli un profilo di riferimento di vetro comune come il vetro sodico-calcico, borosilicato, cristallo al piombo o vetro temperato per finestre.',
12
+ },
13
+ {
14
+ name: 'Regolare la temperatura della platina riscaldante',
15
+ text: 'Sposta il cursore della temperatura per variare l\'indice di rifrazione del liquido di immersione virtuale.',
16
+ },
17
+ {
18
+ name: 'Osservare il movimento della linea di Becke',
19
+ text: 'Usa il controllo della direzione di messa a fuoco per vedere se la linea luminosa si sposta verso l\'interno, verso l\'esterno o se quasi scompare nel punto di coincidenza.',
20
+ },
21
+ {
22
+ name: 'Leggere la differenza di indice',
23
+ text: 'Confronta l\'IR del liquido, l\'IR del vetro, il delta di IR e la percentuale di corrispondenza per capire perché il halo si attenua vicino alla coincidenza di indici.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Cos\'è la linea di Becke nell\'analisi forense del vetro?',
30
+ answer: 'La linea di Becke è un alone luminoso osservato vicino al confine tra un frammento di vetro e un liquido di immersione quando i loro indici di rifrazione differiscono. Il suo movimento durante la messa a fuoco aiuta a determinar quale materiale possiede l\'indice di rifrazione più elevato.',
31
+ },
32
+ {
33
+ question: 'Perché è importante riscaldare il liquido di immersione?',
34
+ answer: 'L\'indice di rifrazione di molti liquidi di immersione diminuisce all\'aumentare della temperatura. Riscaldando il liquido fino a far corrispondere il suo indice a quello del vetro, il contrasto sul confine svanisce e il bordo del frammento diventa difficile da vedere.',
35
+ },
36
+ {
37
+ question: 'L\'indice di rifrazione può identificare da solo la sorgente di un vetro?',
38
+ answer: 'No. L\'indice di rifrazione può supportare il confronto e l\'esclusione di classe, ma l\'interpretazione forense della sorgente considera anche la composizione elementare, lo spessore, il colore, il contesto della frattura, i controlli, l\'incertezza e le procedure di laboratorio validate.',
39
+ },
40
+ {
41
+ question: 'Cosa significa quando la linea di Becke scompare?',
42
+ answer: 'Significa che il liquido e il vetro hanno indici di rifrazione molto simili in quelle condizioni simulate. Nella microscopia reale, la scomparsa viene valutata con un controllo di temperatura calibrato e materiali di riferimento.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ viewerAria: 'Vista al microscopio virtuale che mostra un frammento di vetro in un liquido di immersione',
52
+ units: 'Sistema di unità di misura della temperatura',
53
+ metric: 'Metrico',
54
+ imperial: 'Imperiale',
55
+ unitCelsius: 'C',
56
+ unitFahrenheit: 'F',
57
+ glassSample: 'Vetro di riferimento',
58
+ sodaLime: 'Vetro sodico-calcico per contenitori',
59
+ borosilicate: 'Vetro borosilicato da laboratorio',
60
+ leadCrystal: 'Cristallo al piombo decorativo',
61
+ tempered: 'Vetro temperato per finestre',
62
+ stageTemperature: 'Temperatura della platina',
63
+ focusDirection: 'Direzione di messa a fuoco',
64
+ focusRaised: 'Alza messa a fuoco',
65
+ focusLowered: 'Abbassa messa a fuoco',
66
+ liquidRi: 'IR liquido',
67
+ glassRi: 'IR vetro',
68
+ deltaRi: 'Delta di IR',
69
+ matchMeter: 'Corrispondenza IR',
70
+ canvasHalo: 'alone di Becke visibile',
71
+ canvasFocusSeparator: ' - ',
72
+ canvasMatched: 'bordo casi corrispondente',
73
+ interpMatched: 'Il confine è vicino alla coincidenza ottica. In un vero test della linea di Becke, questa è la regione in cui il halo diventa debole e il bordo del frammento è più difficile da individuare.',
74
+ interpGlassHigher: 'Il vetro ha l\'indice di rifrazione più alto. Con la messa a fuoco sollevata, il comportamento della linea di Becke indica che la luce si concentra verso il lato del vetro del confine.',
75
+ interpLiquidHigher: 'Il liquido di immersione ha l\'indice di rifrazione più alto. Il halo si sposta verso il lato del liquido finché la temperatura non avvicina l\'indice del liquido a quello del vetro.',
76
+ disclaimer: 'Solo a scopo didattico. Il reale confronto forense del vetro richiede apparecchiature per l\'indice di rifrazione calibrate, standard noti, rapporti sull\'incertezza e un\'interpretazione qualificata.',
77
+ },
78
+ seo: [
79
+ {
80
+ type: 'title',
81
+ text: 'Test dell\'indice di rifrazione tramite linea di Becke per vetro forense',
82
+ level: 2,
83
+ },
84
+ {
85
+ type: 'diagnostic',
86
+ variant: 'info',
87
+ icon: 'mdi:microscope',
88
+ badge: 'Simulatore didattico',
89
+ title: 'Cosa dimostra questo simulatore di IR del vetro',
90
+ html: 'Questo simulatore mostra perché un frammento di vetro diventa più o menos visibile nell\'olio di immersione man mano che l\'indice di rifrazione del liquido si avvicina a quello del vetro. È progettato per gli studenti di scienze forensi che apprendono la <strong>microscopia della linea di Becke</strong>, la corrispondenza dell\'IR su platina riscaldante e i limiti delle prove di confronto del vetro.',
91
+ },
92
+ {
93
+ type: 'stats',
94
+ columns: 4,
95
+ items: [
96
+ { value: 'n vetro - n liquido', label: 'contrasto di indice mostrato', icon: 'mdi:delta' },
97
+ { value: '15-145 C', label: 'intervallo della platina riscaldante', icon: 'mdi:thermometer' },
98
+ { value: '4', label: 'profili di vetro', icon: 'mdi:glass-fragile' },
99
+ { value: 'C / F', label: 'unità di temperatura convertibili', icon: 'mdi:swap-horizontal' },
100
+ ],
101
+ },
102
+ {
103
+ type: 'summary',
104
+ title: 'Lista di controllo pratica per l\'osservazione della linea di Becke',
105
+ items: [
106
+ 'Usa un frammento di vetro pulito e piccolo completamente immerso in un liquido con indice di rifrazione appropriato.',
107
+ 'Metti a fuoco leggermente sopra e sotto il confine e osserva verso quale lato sembra muoversi la linea luminosa.',
108
+ 'Aumenta la temperatura lentamente vicino al punto di corrispondenza stimato perché la linea può svanire in un intervallo ristretto.',
109
+ 'Registra la temperatura, il tipo di liquido, lo standard di calibrazione, il comportamento di corrispondenza osservato e l\'incertezza.',
110
+ 'Tratta l\'IR come prova di classe: una discrepanza può escludere, mentre una corrispondenza richiede un contesto aggiuntivo.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'comparative',
115
+ columns: 2,
116
+ items: [
117
+ {
118
+ title: 'Cosa può supportare il confronto dell\'IR',
119
+ icon: 'mdi:check-circle-outline',
120
+ highlight: true,
121
+ description: 'L\'indice di rifrazione può aiutare a confrontare frammenti di vetro dubitati con vetri di riferimento noti in condizioni controllate.',
122
+ points: ['Confronto delle caratteristiche di classe', 'Esclusione quando l\'IR differisce chiaramente', 'Screening prima dell\'analisi elementare', 'Insegnamento del comportamento del confine ottico'],
123
+ },
124
+ {
125
+ title: 'Cosa l\'IR non può provare da solo',
126
+ icon: 'mdi:alert-circle-outline',
127
+ description: 'Un IR corrispondente non identifica in modo univoco una lastra, una bottiglia, il finestrino di un veicolo o una sorgente sulla scena del crimine.',
128
+ points: ['Nessuna attribuzione di sorgente individuale da sola', 'Nessuna ricostruzione senza contesto di scena', 'Non sostituisce i controlli', 'Nessuna conclusione legale da un modello di browser'],
129
+ },
130
+ ],
131
+ },
132
+ {
133
+ type: 'table',
134
+ headers: ['Domanda dell\'utente', 'Concetto di microscopia', 'Risposta dettagliata'],
135
+ rows: [
136
+ ['Perché il bordo luminoso si muove?', 'Rifrazione al confine tra due indici di rifrazione.', 'La linea di Becke tende a muoversi verso il materiale con indice di rifrazione più elevato quando si aumenta la messa a fuoco.'],
137
+ ['Perché il bordo scompare?', 'Corrispondenza degli indici.', 'Quando l\'IR del vetro e del liquido sono quasi uguali, il contrasto sul confine diminuisce e l\'alone si attenua.'],
138
+ ['Perché riscaldare il liquido?', 'Coefficiente termico dell\'IR.', 'L\'IR del liquido simulato diminuisce con la temperatura, consentendo la corrispondenza con diversi tipi di vetro.'],
139
+ ['La corrispondenza è conclusiva?', 'Limitazione della prova di classe.', 'Una corrispondenza supporta solo la coerenza; molti oggetti di vetro possono condividere un IR simile.'],
140
+ ],
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Come funziona il modello di simulazione',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Il modello assegna a ciascun profilo di vetro un indice di rifrazione di riferimento e tratta il liquido di immersione come un mezzo termosensibile. Man mano che la platina si riscalda, l\'indice del liquido diminuisce secondo un coefficiente termico fisso. Il simulatore calcola quindi la differenza tra l\'IR del vetro e quello del liquido, utilizzando tale differenza per controllare la luminosità del halo, il disallineamento del halo, la percentuale di corrispondenza e il messaggio di interpretazione.',
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Il campo visivo del microscopio is intenzionalmente qualitatio. Non tenta di tracciare i raggi di ogni percorso ottico. Invece, conserva la relazione didattica essenziale: un forte contrasto di IR produce un confine luminoso; un contrasto minore produce un confine debole; e vicino al punto di coincidenza, il bordo del vetro può sembrare svanire nel liquido.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'Nei laboratori forensi professionali, la calibrazione della platina riscaldante viene eseguita utilizzando campioni di vetro di riferimento con indice di rifrazione noto. Poiché l\'indice di rifrazione del liquido di immersione varia in modo prevedibile con la temperatura (solitamente indicato como dn/dT), la temperatura esatta alla quale la linea di Becke scompare consente allo scienziato di calcolare l\'indice di rifrazione del vetro fino a quattro decimali. Questo simulatore modella questo comportamento dipendente dalla temperatura utilizzando una formula lineare, consentendo agli studenti di esercitarsi a trovare il punto di corrispondenza esatto controllando attentamente la platina riscaldante.',
158
+ },
159
+ {
160
+ type: 'paragraph',
161
+ html: 'Quando si analizzano le prove sui vetri, l\'indice di rifrazione è considerato una prova con caratteristiche di classe. Sebbene una corrispondenza dell\'indice di rifrazione tra un frammento della scena del crimine e gli indumenti di un sospettato sia coerente con una fonte comune, essa non identifica la fonte in modo univoco poiché molti oggetti di vetro condividono valori di indice di rifrazione identici. Pertanto, gli esperti forensi devono interpretare i risultati coincidenti in modo prudente, segnalando la corrispondenza in termini di coerenza ed evidenziando al contempo che non è possibile un\'attribuzione definitiva della fonte basandosi solo sulle proprietà ottiche.',
162
+ },
163
+ {
164
+ type: 'glossary',
165
+ items: [
166
+ { term: 'Indice di rifrazione', definition: 'Misura di quanto un materiale devia la luce rispetto al vuoto.' },
167
+ { term: 'Liquide di immersione', definition: 'Liquido con proprietà ottiche note utilizzato per circondare un frammento durante il confronto microscopico dell\'IR.' },
168
+ { term: 'Linea di Becke', definition: 'La linea o alone luminoso osservato su un confine quando due materiali trasparenti hanno indici di rifrazione diversi.' },
169
+ { term: 'Punto di coincidenza', definition: 'La regione di temperatura in cui il liquido di immersione e il vetro hanno quasi lo stesso indice di rifrazione.' },
170
+ { term: 'Prova di classe', definition: 'Prova che può associare un elemento a un gruppo di possibili fonti piuttosto che a una singola fonte esclusiva.' },
171
+ ],
172
+ },
173
+ {
174
+ type: 'tip',
175
+ title: 'Consiglio di interpretazione per gli studenti',
176
+ html: 'Nelle prove sui vetri, una chiara discrepanza dell\'IR è spesso più potente di una corrispondenza perché può escludere una fonte proposta. Una corrispondenza è utile, ma la sua forza dipende dai dati di popolazione, dalla precisione della misurazione, dalla composizione elementare e dal contesto del caso.',
177
+ },
178
+ {
179
+ type: 'proscons',
180
+ title: 'Punti di forza e limiti del test dell\'IR del vetro tramite linea di Becke',
181
+ items: [
182
+ { pro: 'Rapido, visivo ed eccellente per insegnare il confronto tra materiali trasparenti.', con: 'Il giudizio dell\'osservatore e la tecnica di messa a fuoco possono influenzare il movimento apparente della linea.' },
183
+ { pro: 'La corrispondenza della temperatura può stimare l\'IR con una precisione utile se calibrata.', con: 'Il controllo termico, l\'invecchiamento del liquido, la contaminazione e gli standard sono importanti nel lavoro reale.' },
184
+ { pro: 'Utile per escludere frammenti di vetro con proprietà ottiche chiaramente diverse.', con: 'Non può individualizzare una fonte senza prove analitiche e contestuali più ampie.' },
185
+ ],
186
+ },
187
+ {
188
+ type: 'diagnostic',
189
+ variant: 'warning',
190
+ icon: 'mdi:scale-balance',
191
+ badge: 'Precauzione forense',
192
+ title: 'Mantenere la conclusione proporzionale',
193
+ html: 'Una simulazione della linea di Becke nel browser è un sussidio didattico, non un metodo di laboratorio. L\'interpretazione formale delle prove sui vetri dovrebbe basarsi su strumenti validati, procedure scritte, registrazioni di calibrazione, stime di incertezza, revisione paritaria e un linguaggio di rendicontazione appropriato alla giurisdizione.',
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 = '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: 'いいえ。屈折率はクラス比較や排除の裏付けになりますが、法科学における起源の解釈には、元素組成、厚さ、色、破面の状況、対照試料、不確かさ、および検証済みの分析手順も考慮されます。',
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
+ ['輝くエッジはなぜ動くのですか?', '2つの屈折率の境界における屈折。', '焦点を上げると、ベッケ線は屈折率が高い方の材料に移動する傾向があります。'],
137
+ ['エッジはなぜ消えるのですか?', '屈折率の一致。', 'ガラスと液体のRI hook ほぼ等しいとき、境界のコントラストが低下し、ハローが弱くなります。'],
138
+ ['なぜ液体を加熱するのですか?', '温度屈折率係数。', 'シミュレートされた液体の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: '視覚的な顕微鏡視野は、意図的に定性的なものに留めています。すべての光路をレイトレーシングしようとはしていません。その代わり、教育に不可欠な関係性である「強いRIコントラストは明るい境界を生み、低いコントラストは薄い境界を生み、一致点付近ではガラスのエッジが液体中に消えていくように見える」という点を保持しています。',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '専門的な法科学研究室では、屈折率が既知の参照ガラス試料を用いてホットステージの温度校正が行われます。浸漬液の屈折率は温度に伴って予測通りに変化するため(通常はdn/dTとして表される)、ベッケ線が消失する正確な温度を測定することで、科学者はガラスの屈折率を小数第4位の精度で算出できます。本シミュレーターは、線形方程式を用いてこの温度依存の挙動をモデル化しており、学生が加熱ステージを慎重に操作して正確な一致点を特定する練習ができるよう設計されています。',
158
+ },
159
+ {
160
+ type: 'paragraph',
161
+ html: 'ガラス証拠の分析において、屈折率は類属特性(クラス特徴)の証拠とみなされます。事件現場のガラス破片と容疑者の衣類から検出されたガラスの屈折率が一致したとしても、多くのガラス製品が同一の屈折率を共有しているため、それだけで起源を特定することはできません。したがって、法科学の専門家は一致した結果を慎重に解釈しなければならず、光学特性のみに基づいて決定的な起源の特定は不可能であることを強調しつつ、一貫性があるという観点から一致を報告する必要があります。',
162
+ },
163
+ {
164
+ type: 'glossary',
165
+ items: [
166
+ { term: '屈折率', definition: '真空と比較して、物質が光を曲げる強さの尺度。' },
167
+ { term: '浸漬液', definition: '顕微鏡によるRI比較の際、破片の周囲を満たすために使用される既知の光学特性を持つ液体。' },
168
+ { term: 'ベッケ線', definition: '2つの透明な物質の屈折率が異なる場合、その境界に見える明るい線またはハロー。' },
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
+ };