@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,250 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+
4
+ const slug = 'microscopio-comparacao-fibras-forense';
5
+ const title = 'Simulador de microscópio de comparação de fibras forenses';
6
+ const description = 'Elabore um perfil de fibra têxtil questionada, compare com referências conhecidas e interprete a morfologia, a polarização e o espectro de corante UV-Vis.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Elaborar o perfil da fibra questionada',
11
+ text: 'Defina o material, diâmetro, direção de torção, resposta de polarização e perfil de corante da fibra recuperada.',
12
+ },
13
+ {
14
+ name: 'Escolher uma fibra de comparação conhecida',
15
+ text: 'Selecione no lado direito a fibra de uma peça de roupa suspeita, como algodão, lã, poliéster ou nylon.',
16
+ },
17
+ {
18
+ name: 'Ajustar o foco e a polarização',
19
+ text: 'Mova o controle deslizante de foco e gire o polarizador para observar a nitidez, as cristas da superfície e a birrefringência.',
20
+ },
21
+ {
22
+ name: 'Comparar a morfologia e os espectros UV-Vis',
23
+ text: 'Use a pontuação de morfologia, a de espectro, a correspondência combinada e as curvas de absorção para decidir se as amostras são consistentes ou claramente diferentes.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'A microscopia de fibras pode identificar a peça exata de onde uma fibra veio?',
30
+ answer: 'Geralmente não. A comparação de fibras pode demonstrar a consistência ou diferenças entre uma fibra questionada e um tecido conhecido, mas a atribuição de origem individual exige contexto minucioso, métodos validados e, muitas vezes, análises químicas ou instrumentais adicionais.',
31
+ },
32
+ {
33
+ question: 'Por que usar luz polarizada na comparação de fibras?',
34
+ answer: 'A luz polarizada revela birrefringência, comportamento de extinção e diferenças estruturais entre fibras naturais e sintéticas. Fibras sintéticas costumam mostrar uma resposta de polarização mais forte devido à orientação molecular.',
35
+ },
36
+ {
37
+ question: 'O que o espectro UV-Vis acrescenta?',
38
+ answer: 'Embora a microscopia descreva a forma e o comportamento óptico, a absorbância UV-Vis compara o comportamento de corantes em diferentes comprimentos de onda. Fibras semelhantes com corantes distintos podem se separar claramente no gráfico espectral.',
39
+ },
40
+ {
41
+ question: 'Por que os resultados são mostrados como pontuações em vez de uma identificação definitiva?',
42
+ answer: 'Os vestígios forenses devem ser relatados proporcionalmente. As pontuações são resumos educacionais de semelhança morfológica e espectral, não uma conclusão laboratorial ou parecer jurídico.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ viewerAria: 'Microscópio forense virtual de campo dividido comparando duas fibras têxteis',
52
+ chartAria: 'Gráfico de absorbância UV-Vis comparando os espectros de corante das fibras questionada e conhecida',
53
+ questionedSample: 'Amostra questionada',
54
+ fixedEvidence: 'Vestígio recuperado fixo',
55
+ builderSummaryDefault: 'Algodão / 18 µm / irregular / índigo',
56
+ customQuestionedLabel: 'Fibra questionada do caso',
57
+ material: 'Material',
58
+ cotton: 'Algodão',
59
+ woolMaterial: 'Lã',
60
+ polyesterMaterial: 'Poliéster',
61
+ nylonMaterial: 'Nylon',
62
+ materialcotton: 'algodão',
63
+ materialwool: 'lã',
64
+ materialpolyester: 'poliéster',
65
+ materialnylon: 'nylon',
66
+ twist: 'Torção',
67
+ irregularTwist: 'Irregular',
68
+ sTwist: 'S',
69
+ zTwist: 'Z',
70
+ diameter: 'Diâmetro',
71
+ polarResponse: 'Resposta polar',
72
+ dyeProfile: 'Perfil do corante',
73
+ indigoDye: 'Índigo',
74
+ crimsonDye: 'Carmesim',
75
+ navyDye: 'Azul marinho',
76
+ violetDye: 'Violeta',
77
+ dyeindigo: 'índigo',
78
+ dyecrimson: 'carmesim',
79
+ dyenavy: 'azul marinho',
80
+ dyeviolet: 'violeta',
81
+ knownSample: 'Comparação conhecida',
82
+ questionedCotton: 'Fibra de algodão azul questionada',
83
+ suspectCotton: 'Fibra de algodão da camisa suspeita',
84
+ wool: 'Fibra do suéter de lã vermelha',
85
+ polyester: 'Fibra da jaqueta de poliéster azul marinho',
86
+ nylon: 'Fibra do forro de nylon violeta',
87
+ focus: 'Foco fino',
88
+ polarizer: 'Ângulo do polarizador',
89
+ morphology: 'Morfologia',
90
+ spectrum: 'UV-Vis',
91
+ birefringence: 'Birrefringência',
92
+ combinedMatch: 'Combinação mútua',
93
+ uvVisTitle: 'Sobreposição de absorbância UV-Vis',
94
+ statusStrong: 'Alta consistência',
95
+ statusPartial: 'Comparação mista',
96
+ statusDifferent: 'Exclusão apoiada',
97
+ verdictStrong: 'As fibras questionada e conhecida são altamente consistentes em diâmetro, torção, comportamento óptico e espectro de corante. Num caso real, relate isso como apoio a uma possível fonte têxtil comum, não como uma identificação individual.',
98
+ verdictPartial: 'A comparação é mista. Algumas características de classe coincidem, mas a morfologia, a resposta do corante ou a birrefringência apresentam diferenças suficientes para exigir exames adicionais antes de qualquer associação cautelosa.',
99
+ verdictDifferent: 'As fibras não são consistentes em características de classe essenciais. O resultado simulado apoia a exclusão deste tecido conhecido como a fonte provável para a fibra questionada.',
100
+ disclaimer: 'Simulação educacional apenas. A comparação real de fibras forenses exige microscopia validada, controles, documentação, salvaguardas contra contaminação, revisão por pares e interpretação qualificada de vestígios.',
101
+ },
102
+ seo: [
103
+ {
104
+ type: 'title',
105
+ text: 'Comparação forense de fibras com microscopia de campo dividido e espectro UV-Vis',
106
+ level: 2,
107
+ },
108
+ {
109
+ type: 'diagnostic',
110
+ variant: 'info',
111
+ icon: 'mdi:microscope',
112
+ badge: 'Simulador didático',
113
+ title: 'O que este microscópio virtual de fibras demonstra',
114
+ html: 'Este simulador modela o fluxo de trabalho prático da <strong>comparação forense de fibras</strong>: descreva a fibra têxtil questionada, compare com uma referência conhecida, ajuste o foco, gire os filtros de polarização e compare a resposta do corante com uma curva simplificada de absorbância UV-Vis. Destina-se a estudantes de vestígios forenses, não à tomada de decisões em casos reais.',
115
+ },
116
+ {
117
+ type: 'stats',
118
+ columns: 4,
119
+ items: [
120
+ { value: '2 campos', label: 'vista de microscópio dividido', icon: 'mdi:compare-horizontal' },
121
+ { value: '380-720 nm', label: 'faixa do espectro visível', icon: 'mdi:chart-bell-curve' },
122
+ { value: '4 classes', label: 'algodão, lã, poliéster, nylon', icon: 'mdi:tshirt-crew' },
123
+ { value: '0-180°', label: 'rotação do polarizador', icon: 'mdi:rotate-3d-variant' },
124
+ ],
125
+ },
126
+ {
127
+ type: 'summary',
128
+ title: 'Observações fundamentais na comparação de fibras têxteis',
129
+ items: [
130
+ 'Meça ou estime o diâmetro da fibra observando a variação natural ao longo do filamento.',
131
+ 'Registre a direção da torção, as cristas da superfície, características medulares, partículas deslustrantes e pistas de seção transversal, se disponíveis.',
132
+ 'Use luz polarizada para comparar birrefringência, comportamento de extinção e alterações de brilho sob rotação.',
133
+ 'Compare a cor microscopicamente, depois use informações instrumentais de corante caso a investigação exija maior discriminação.',
134
+ 'Relate se as descobertas são consistentes, diferentes ou inconclusivas; evite termos que sugiram uma única peça de roupa sem comprovação sólida.',
135
+ ],
136
+ },
137
+ {
138
+ type: 'table',
139
+ headers: ['Observação', 'O que ajuda a responder', 'Limite'],
140
+ rows: [
141
+ ['Diâmetro e morfologia', 'As fibras são fisicamente semelhantes?', 'Variações de fabricação podem se sobrepor entre diferentes roupas.'],
142
+ ['Torção e detalhes da superfície', 'As características naturais ou sintéticas coincidem?', 'Danos, estiramento e montagem podem alterar a aparência.'],
143
+ ['Resposta sob luz polarizada', 'As propriedades ópticas coincidem?', 'A birrefringência é uma prova de classe, não uma assinatura única.'],
144
+ ['Espectro de corante UV-Vis', 'Os corantes são consistentes?', 'Corantes semelhantes podem parecer próximos; a extração e as configurações do instrumento importam.'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'comparative',
149
+ columns: 2,
150
+ items: [
151
+ {
152
+ title: 'O que apoia a consistência',
153
+ icon: 'mdi:check-circle-outline',
154
+ highlight: true,
155
+ description: 'Múltiplas características de classe independentes coincidem entre as fibras questionada e conhecida.',
156
+ points: ['Faixa de diâmetro comparável', 'Mesmo tipo geral de fibra', 'Comportamento de polarização semelhante', 'Picos de absorbância de corante sobrepostos'],
157
+ },
158
+ {
159
+ title: 'O que apoia a exclusão',
160
+ icon: 'mdi:close-circle-outline',
161
+ description: 'Uma diferença clara e repetível aparece em uma característica que deveria coincidir caso tivessem uma fonte têxtil comum.',
162
+ points: ['Divergência entre natural e sintético', 'Torção ou morfologia de superfície diferente', 'Espectro de corante nitidamente diferente', 'Resposta de birrefringência incompatível'],
163
+ },
164
+ ],
165
+ },
166
+ {
167
+ type: 'title',
168
+ text: 'Como funciona o modelo de simulação',
169
+ level: 3,
170
+ },
171
+ {
172
+ type: 'paragraph',
173
+ html: 'O modelo armazena um pequeno banco de dados de referência com diâmetro, direção de torção, classe da fibra, birrefringência, família de corantes e pontos de absorbância UV-Vis. A fibra questionada é configurável pelo usuário, para que a pontuação de comparação responda ao perfil do caso em vez de uma amostra de aula fixa. A visualização microscópica reage ao foco e ao ângulo do polarizador para mostrar aos estudantes por que as configurações ópticas são fundamentais.',
174
+ },
175
+ {
176
+ type: 'paragraph',
177
+ html: 'O controle do polarizador é especialmente útil para fibras sintéticas. Poliéster e nylon possuem valores de birrefringência maiores, por isso o brilho delas muda de forma mais visível à medida que o polarizador gira. O algodão natural e a lã também respondem, mas o efeito simulado é mais discreto. Isso reflete a ideia didática de que a orientação molecular e a estrutura da fibra influenciam o comportamento óptico.',
178
+ },
179
+ {
180
+ type: 'paragraph',
181
+ html: 'O gráfico UV-Vis é uma sobreposição simplificada, não um substituto para um espectrofotômetro. No trabalho forense real de vestígios, a comparação de corantes pode exigir microespectrofotometria, cromatografia em camada delgada, química de extração, controles de referência e incertezas documentadas. O gráfico serve para ensinar por que duas fibras com aparência semelhante ao microscópio podem se diferenciar pela química do corante.',
182
+ },
183
+ {
184
+ type: 'paragraph',
185
+ html: 'Os peritos forenses devem documentar cada etapa do processo de análise de fibras. Isso inclui tirar fotografias detalhadas, registrar medições e manter uma cadeia de custódia para todas as evidências físicas. O simulador ajuda os estudantes a compreender a importância da documentação sistemática e da comparação objetiva no trabalho forense. Ao interagir com diferentes configurações, os usuários podem aprender como o caminho da luz, a espessura da amostra e a concentração do corante afetam as curvas espectrais e a aparência física.',
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: 'Os peritos forenses devem documentar cada etapa do processo de análise de fibras. Isso inclui tirar fotografias detalhadas, registrar medições e manter uma cadeia de custódia para todas as evidências físicas. O simulador ajuda os estudantes a compreender a importância da documentação sistemática e da comparação objetiva no trabalho forense. Ao interagir com diferentes configurações, os usuários podem aprender como o caminho da luz, a espessura da amostra e a concentração do corante afetam as curvas espectrais e a aparência física.',
190
+ },
191
+ {
192
+ type: 'glossary',
193
+ items: [
194
+ { term: 'Fibra questionada', definition: 'Uma fibra recuperada de um local, vítima, suspeito, ferramenta, veículo ou outro item cuja origem é desconhecida.' },
195
+ { term: 'Fibra conhecida', definition: 'Uma fibra de referência coletada de um têxtil ou objeto conhecido para comparação com a amostra questionada.' },
196
+ { term: 'Birrefringência', definition: 'Comportamento óptico no qual um material apresenta diferentes índices de refração dependendo da direção da luz ou da polarização.' },
197
+ { term: 'Espectro UV-Vis', definition: 'Gráfico mostrando com que intensidade um corante ou material absorve luz em diferentes comprimentos de onda.' },
198
+ { term: 'Característica de classe', definition: 'Uma propriedade que pode associar vestígios a um grupo de possíveis fontes, em vez de a uma única fonte exclusiva.' },
199
+ ],
200
+ },
201
+ {
202
+ type: 'tip',
203
+ title: 'Dica de interpretação para estudantes',
204
+ html: 'Uma pontuação alta de semelhança deve ser interpretada como <strong>consistência</strong>, não como identidade. Os vestígios são mais fortes quando a microscopia, a química, o contexto de transferência, a persistência, o método de recuperação e os controles de contaminação convergem para o mesmo lado.',
205
+ },
206
+ {
207
+ type: 'diagnostic',
208
+ variant: 'warning',
209
+ icon: 'mdi:scale-balance',
210
+ badge: 'Forensic caution',
211
+ title: 'Mantenha a conclusão nos limites do vestígio',
212
+ html: 'Um microscópio no navegador não pode validar a compatibilidade de uma fibra. Relatórios formais devem descrever as observações, a base de comparação, las limitações e o nível de suporte sem exagerar a atribuição de origem.',
213
+ },
214
+ ],
215
+ faq,
216
+ bibliography,
217
+ howTo,
218
+ schemas: [
219
+ {
220
+ '@context': 'https://schema.org',
221
+ '@type': 'SoftwareApplication',
222
+ name: title,
223
+ description,
224
+ applicationCategory: 'ForensicApplication',
225
+ operatingSystem: 'Any',
226
+ },
227
+ {
228
+ '@context': 'https://schema.org',
229
+ '@type': 'FAQPage',
230
+ mainEntity: faq.map((item) => ({
231
+ '@type': 'Question',
232
+ name: item.question,
233
+ acceptedAnswer: {
234
+ '@type': 'Answer',
235
+ text: item.answer,
236
+ },
237
+ })),
238
+ },
239
+ {
240
+ '@context': 'https://schema.org',
241
+ '@type': 'HowTo',
242
+ name: title,
243
+ step: howTo.map((step) => ({
244
+ '@type': 'HowToStep',
245
+ name: step.name,
246
+ text: step.text,
247
+ })),
248
+ },
249
+ ],
250
+ };
@@ -0,0 +1,250 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import { bibliography } from '../bibliography';
3
+
4
+ const slug = 'kriminalisticheskiy-sravnitelny-mikroskop-volokon';
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: 'Используйте показатели морфологического и спектрального сходства, комбинированный индекс совпадения и кривые поглощения, чтобы сделать вывод о сходстве или различии образцов.',
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
+ chartAria: 'График оптической плотности в УФ и видимой областях спектра для исследуемого и известного образцов волокон',
53
+ questionedSample: 'Исследуемый образец',
54
+ fixedEvidence: 'Обнаруженный микрослед',
55
+ builderSummaryDefault: 'Хлопок / 18 мкм / нерегулярная / индиго',
56
+ customQuestionedLabel: 'Исследуемое волокно из дела',
57
+ material: 'Материал',
58
+ cotton: 'Хлопок',
59
+ woolMaterial: 'Шерсть',
60
+ polyesterMaterial: 'Полиэстер',
61
+ nylonMaterial: 'Нейлон',
62
+ materialcotton: 'хлопок',
63
+ materialwool: 'шерсть',
64
+ materialpolyester: 'полиэстер',
65
+ materialnylon: 'нейлон',
66
+ twist: 'Крутка',
67
+ irregularTwist: 'Нерегулярная',
68
+ sTwist: 'S-крутка',
69
+ zTwist: 'Z-крутка',
70
+ diameter: 'Диаметр',
71
+ polarResponse: 'Поляризационный отклик',
72
+ dyeProfile: 'Профиль красителя',
73
+ indigoDye: 'Индиго',
74
+ crimsonDye: 'Кармин',
75
+ navyDye: 'Темно-синий',
76
+ violetDye: 'Фиолетовый',
77
+ dyeindigo: 'индиго',
78
+ dyecrimson: 'кармин',
79
+ dyenavy: 'темно-синий',
80
+ dyeviolet: 'фиолетовый',
81
+ knownSample: 'Известный образец',
82
+ questionedCotton: 'Исследуемое синее хлопковое волокно',
83
+ suspectCotton: 'Хлопковое волокно с рубашки подозреваемого',
84
+ wool: 'Волокно с красного шерстяного свитера',
85
+ polyester: 'Волокно с темно-синей полиэстеровой куртки',
86
+ nylon: 'Волокно с фиолетовой нейлоновой подкладки',
87
+ focus: 'Тонкая фокусировка',
88
+ polarizer: 'Угол поляризатора',
89
+ morphology: 'Морфология',
90
+ spectrum: 'УФ-вид',
91
+ birefringence: 'Двулучепреломление',
92
+ combinedMatch: 'Комбинированное совпадение',
93
+ uvVisTitle: 'Наложение спектров поглощения УФ-вид',
94
+ statusStrong: 'Высокое сходство',
95
+ statusPartial: 'Неоднозначное сравнение',
96
+ statusDifferent: 'Исключение подтверждено',
97
+ verdictStrong: 'Исследуемое и известное волокна очень близки по диаметру, крутке, оптическому поведению и спектру красителя. В реальной экспертизе это указывает на возможное общее происхождение от одного источника, но не является безусловным подтверждением тождества.',
98
+ verdictPartial: 'Сравнение дало неоднозначный результат. Некоторые групповые признаки совпадают, однако различия в морфологии, отклике красителя или двулучепреломлении требуют проведения дополнительных исследований перед тем, как делать какие-либо выводы.',
99
+ verdictDifferent: 'Волокна различаются по ключевым групповым признакам. Моделирование подтверждает исключение данного текстильного изделия как вероятного источника исследуемого волокна.',
100
+ disclaimer: 'Исключительно в учебных целях. Реальное криминалистическое исследование волокон требует использования валидированных методик микроскопии, контрольных тестов, документирования, защиты от загрязнения проб, рецензирования и профессиональной интерпретации результатов.',
101
+ },
102
+ seo: [
103
+ {
104
+ type: 'title',
105
+ text: 'Криминалистическое исследование волокон на сравнительном микроскопе и УФ-вид спектрофотометрия',
106
+ level: 2,
107
+ },
108
+ {
109
+ type: 'diagnostic',
110
+ variant: 'info',
111
+ icon: 'mdi:microscope',
112
+ badge: 'Обучающий симулятор',
113
+ title: 'Что демонстрирует этот виртуальный микроскоп для исследования волокон',
114
+ html: 'Этот симулятор воспроизводит практический алгоритм <strong>криминалистического сравнения текстильных волокон</strong>: опишите исследуемое волокно, сравните его с известным эталоном, настройте фокус, меняйте угол поляризационных фильтров и оцените краситель с помощью упрощенных кривых поглощения в УФ-вид области. Программа предназначена для студентов, изучающих микроследы, и не должна использоваться для принятия решений по реальным делам.',
115
+ },
116
+ {
117
+ type: 'stats',
118
+ columns: 4,
119
+ items: [
120
+ { value: '2 поля', label: 'сравнительный вид микроскопа', icon: 'mdi:compare-horizontal' },
121
+ { value: '380-720 нм', label: 'видимый диапазон спектра', icon: 'mdi:chart-bell-curve' },
122
+ { value: '4 класса', label: 'хлопок, шерсть, полиэстер, нейлон', icon: 'mdi:tshirt-crew' },
123
+ { value: '0-180°', label: 'угол вращения поляризатора', icon: 'mdi:rotate-3d-variant' },
124
+ ],
125
+ },
126
+ {
127
+ type: 'summary',
128
+ title: 'Основные этапы при сравнении текстильных волокон',
129
+ items: [
130
+ 'Измерьте или оцените диаметр волокна, отмечая его естественную изменчивость по всей длине.',
131
+ 'Зафиксируйте направление крутки, рельеф поверхности, наличие сердцевины, матирующих частиц и особенности поперечного сечения, если они различимы.',
132
+ 'Используйте поляризованный свет для сравнения двулучепреломления, характера угасания и изменения яркости при вращении образца.',
133
+ 'Сравните цвет визуально под микроскопом, а затем используйте спектральный анализ красителей, если требуется более высокая точность.',
134
+ 'Сделайте вывод, являются ли образцы сходными, различными или результат не позволяет прийти к однозначному решению; избегайте утверждений об однозначной принадлежности конкретной одежде без достаточных оснований.',
135
+ ],
136
+ },
137
+ {
138
+ type: 'table',
139
+ headers: ['Исследование', 'Какую задачу решает', 'Ограничение'],
140
+ rows: [
141
+ ['Диаметр и морфология', 'Физически ли схожи волокна?', 'Технологические вариации при производстве одежды могут совпадать.'],
142
+ ['Крутка и детали поверхности', 'Совпадают ли естественные или искусственные признаки?', 'Повреждения, растяжение и способ монтирования препарата могут исказить вид.'],
143
+ ['Поведение в поляризованном свете', 'Совпадают ли оптические свойства?', 'Двулучепреломление указывает на групповую принадлежность, а не на индивидуальную.'],
144
+ ['Спектр поглощения красителя', 'Совпадают ли характеристики красителей?', 'Схожие красители могут давать близкие спектры; важны экстракция и настройки прибора.'],
145
+ ],
146
+ },
147
+ {
148
+ type: 'comparative',
149
+ columns: 2,
150
+ items: [
151
+ {
152
+ title: 'Признаки сходства',
153
+ icon: 'mdi:check-circle-outline',
154
+ highlight: true,
155
+ description: 'Совпадение множества независимых групповых признаков исследуемого и известного волокон.',
156
+ points: ['Близкий диапазон диаметров', 'Один и тот же тип волокна', 'Схожее поведение в поляризованном свете', 'Совпадающие пики поглощения красителя'],
157
+ },
158
+ {
159
+ title: 'Признаки различия (исключения)',
160
+ icon: 'mdi:close-circle-outline',
161
+ description: 'Четкое, воспроизводимое различие в признаках, которые должны совпадать при происхождении из одного источника.',
162
+ points: ['Несоответствие типов (натуральное/синтетическое)', 'Различная крутка или поверхностный рельеф', 'Существенные различия в спектре красителя', 'Несовместимый характер двулучепреломления'],
163
+ },
164
+ ],
165
+ },
166
+ {
167
+ type: 'title',
168
+ text: 'Как работает математическая модель симуляции',
169
+ level: 3,
170
+ },
171
+ {
172
+ type: 'paragraph',
173
+ html: 'Модель использует небольшую эталонную базу данных с параметрами диаметра, направления крутки, класса волокна, двулучепреломления, группы красителей и спектра поглощения. Параметры исследуемого волокна задаются пользователем, благодаря чему индекс сходства рассчитывается динамически под конкретную задачу, а не привязан к фиксированному примеру. Визуальное отображение под микроскопом реагирует на фокусировку и угол поляризатора, помогая понять важность оптических настроек.',
174
+ },
175
+ {
176
+ type: 'paragraph',
177
+ html: 'Управление поляризатором особенно важно для синтетических волокон. Для полиэстера и нейлона заданы более высокие коэффициенты двулучепреломления, поэтому их яркость меняется более заметно при вращении поляризатора. Натуральный хлопок и шерсть также реагируют на поляризацию, но эффект выражен слабее. Это наглядно иллюстрирует учебную концепцию о том, что молекулярная структура волокна определяет его оптические свойства.',
178
+ },
179
+ {
180
+ type: 'paragraph',
181
+ html: 'График поглощения является упрощенной интерактивной схемой, а не заменой реального спектрофотометра. В экспертной практике исследование красителей может потребовать микроспектрофотометрии, тонкослойной хроматографии, экстракции красителей, использования стандартов и оценки неопределенности измерений. График призван продемонстрировать, почему два волокна, выглядящие одинаково под микроскопом, могут различаться по химическому составу красителя.',
182
+ },
183
+ {
184
+ type: 'paragraph',
185
+ html: 'Судебные эксперты должны документировать каждый шаг процесса анализа волокон. Это включает детальное фотографирование, регистрацию измерений и ведение цепочки сохранности вещественных доказательств. Симулятор помогает студентам понять важность систематического документирования и объективного сравнения в экспертной практике. Взаимодействуя с различными настройками, пользователи могут узнать, как путь света, толщина образца и концентрация красителя влияют на спектральные кривые и внешний вид.',
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: 'Судебные эксперты должны документировать каждый шаг процесса анализа волокон. Это включает детальное фотографирование, регистрацию измерений и ведение цепочки сохранности вещественных доказательств. Симулятор помогает студентам понять важность систематического документирования и объективного сравнения в экспертной практике. Взаимодействуя с различными настройками, пользователи могут узнать, как путь света, толщина образца и концентрация красителя влияют на спектральные кривые и внешний вид.',
190
+ },
191
+ {
192
+ type: 'glossary',
193
+ items: [
194
+ { term: 'Исследуемое волокно', definition: 'Волокно, обнаруженное на месте происшествия, теле пострадавшего, одежде подозреваемого или предметах обстановки, источник которого неизвестен.' },
195
+ { term: 'Известный образец', definition: 'Образец сравнения, изъятый с конкретного текстильного изделия для сопоставления с исследуемым волокном.' },
196
+ { term: 'Двулучепреломление', definition: 'Оптическое свойство материала, характеризующееся различием показателей преломления света в зависимости от его направления и поляризации.' },
197
+ { term: 'УФ-вид спектр', definition: 'График зависимости интенсивности поглощения света красителем или материалом от длины волны.' },
198
+ { term: 'Групповой признак', definition: 'Свойство, позволяющее отнести объект к определенному классу или группе возможных источников, а не идентифицировать его индивидуально.' },
199
+ ],
200
+ },
201
+ {
202
+ type: 'tip',
203
+ title: 'Совет учащимся по интерпретации',
204
+ html: 'Высокий показатель сходства следует трактовать как <strong>соответствие (совпадение групповых признаков)</strong>, а не как доказательство тождества. Доказательственное значение микрочастиц наиболее велико, когда микроскопические, химические данные, условия переноса, сохранности, изъятия и контроля загрязнения указывают на один источник.',
205
+ },
206
+ {
207
+ type: 'diagnostic',
208
+ variant: 'warning',
209
+ icon: 'mdi:scale-balance',
210
+ badge: 'Forensic caution',
211
+ title: 'Не переоценивайте доказательственное значение выводов',
212
+ html: 'Браузерный симулятор не может заменить полноценное экспертное исследование волокон. Официальные заключения должны объективно описывать наблюдения, сопоставляемые признаки, ограничения и уровень доказательственного значения без необоснованного вывода об индивидуальном тождестве.',
213
+ },
214
+ ],
215
+ faq,
216
+ bibliography,
217
+ howTo,
218
+ schemas: [
219
+ {
220
+ '@context': 'https://schema.org',
221
+ '@type': 'SoftwareApplication',
222
+ name: title,
223
+ description,
224
+ applicationCategory: 'ForensicApplication',
225
+ operatingSystem: 'Any',
226
+ },
227
+ {
228
+ '@context': 'https://schema.org',
229
+ '@type': 'FAQPage',
230
+ mainEntity: faq.map((item) => ({
231
+ '@type': 'Question',
232
+ name: item.question,
233
+ acceptedAnswer: {
234
+ '@type': 'Answer',
235
+ text: item.answer,
236
+ },
237
+ })),
238
+ },
239
+ {
240
+ '@context': 'https://schema.org',
241
+ '@type': 'HowTo',
242
+ name: title,
243
+ step: howTo.map((step) => ({
244
+ '@type': 'HowToStep',
245
+ name: step.name,
246
+ text: step.text,
247
+ })),
248
+ },
249
+ ],
250
+ };