@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.
- package/package.json +69 -0
- package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
- package/scripts/postinstall.mjs +27 -0
- package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
- package/src/category/i18n/de.ts +55 -0
- package/src/category/i18n/en.ts +55 -0
- package/src/category/i18n/es.ts +55 -0
- package/src/category/i18n/fr.ts +55 -0
- package/src/category/i18n/id.ts +55 -0
- package/src/category/i18n/it.ts +55 -0
- package/src/category/i18n/ja.ts +56 -0
- package/src/category/i18n/ko.ts +56 -0
- package/src/category/i18n/nl.ts +55 -0
- package/src/category/i18n/pl.ts +55 -0
- package/src/category/i18n/pt.ts +55 -0
- package/src/category/i18n/ru.ts +55 -0
- package/src/category/i18n/sv.ts +55 -0
- package/src/category/i18n/tr.ts +55 -0
- package/src/category/i18n/zh.ts +56 -0
- package/src/category/index.ts +48 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +10 -0
- package/src/entries.ts +48 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +29 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +162 -0
- package/src/pages/[locale].astro +261 -0
- package/src/pages/index.astro +3 -0
- package/src/tests/diacritics_density.test.ts +140 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +24 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/seo_length.test.ts +46 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/slug_language_code_format.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tests/tool_validation.test.ts +16 -0
- package/src/tests/widmark.test.ts +28 -0
- package/src/tool/forensic-age-estimator/bibliography.astro +14 -0
- package/src/tool/forensic-age-estimator/bibliography.ts +16 -0
- package/src/tool/forensic-age-estimator/component.astro +321 -0
- package/src/tool/forensic-age-estimator/dental-skeletal-third-molar-age-estimator.css +634 -0
- package/src/tool/forensic-age-estimator/entry.ts +32 -0
- package/src/tool/forensic-age-estimator/i18n/de.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/en.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/es.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/fr.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/id.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/it.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ja.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ko.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/nl.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/pl.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/pt.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ru.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/sv.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/tr.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/zh.ts +246 -0
- package/src/tool/forensic-age-estimator/index.ts +11 -0
- package/src/tool/forensic-age-estimator/logic.ts +81 -0
- package/src/tool/forensic-age-estimator/seo.astro +15 -0
- package/src/tool/forensic-blood-test-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-blood-test-simulator/bibliography.ts +12 -0
- package/src/tool/forensic-blood-test-simulator/component.astro +168 -0
- package/src/tool/forensic-blood-test-simulator/dom-utils.ts +40 -0
- package/src/tool/forensic-blood-test-simulator/entry.ts +32 -0
- package/src/tool/forensic-blood-test-simulator/forensic-presumptive-blood-testing-luminol-kastle-meyer-simulator.css +532 -0
- package/src/tool/forensic-blood-test-simulator/helpers.ts +16 -0
- package/src/tool/forensic-blood-test-simulator/i18n/de.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/en.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/es.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/fr.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/id.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/it.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ja.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ko.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/nl.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/pl.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/pt.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ru.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/sv.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/tr.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/zh.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/index.ts +11 -0
- package/src/tool/forensic-blood-test-simulator/logic.ts +174 -0
- package/src/tool/forensic-blood-test-simulator/script.ts +192 -0
- package/src/tool/forensic-blood-test-simulator/seo.astro +15 -0
- package/src/tool/forensic-fiber-comparison-microscope/bibliography.astro +6 -0
- package/src/tool/forensic-fiber-comparison-microscope/bibliography.ts +16 -0
- package/src/tool/forensic-fiber-comparison-microscope/component.astro +146 -0
- package/src/tool/forensic-fiber-comparison-microscope/entry.ts +32 -0
- package/src/tool/forensic-fiber-comparison-microscope/forensic-fiber-comparison-microscope.css +629 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/de.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/en.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/es.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/fr.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/id.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/it.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ja.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ko.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/nl.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/pl.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/pt.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ru.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/sv.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/tr.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/zh.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/index.ts +11 -0
- package/src/tool/forensic-fiber-comparison-microscope/logic.ts +244 -0
- package/src/tool/forensic-fiber-comparison-microscope/render.ts +265 -0
- package/src/tool/forensic-fiber-comparison-microscope/seo.astro +15 -0
- package/src/tool/forensic-fiber-comparison-microscope/view.ts +267 -0
- package/src/tool/forensic-glass-becke-line-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-glass-becke-line-simulator/bibliography.ts +16 -0
- package/src/tool/forensic-glass-becke-line-simulator/component.astro +81 -0
- package/src/tool/forensic-glass-becke-line-simulator/entry.ts +32 -0
- package/src/tool/forensic-glass-becke-line-simulator/forensic-glass-becke-line-simulator.css +392 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/de.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/en.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/es.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/fr.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/id.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/it.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ja.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ko.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/nl.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/pl.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/pt.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ru.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/sv.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/tr.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/zh.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/index.ts +11 -0
- package/src/tool/forensic-glass-becke-line-simulator/logic.ts +100 -0
- package/src/tool/forensic-glass-becke-line-simulator/seo.astro +15 -0
- package/src/tool/forensic-glass-becke-line-simulator/view.ts +281 -0
- package/src/tool/forensic-image-authenticity-analyzer/bibliography.astro +9 -0
- package/src/tool/forensic-image-authenticity-analyzer/bibliography.ts +7 -0
- package/src/tool/forensic-image-authenticity-analyzer/component.astro +250 -0
- package/src/tool/forensic-image-authenticity-analyzer/entry.ts +29 -0
- package/src/tool/forensic-image-authenticity-analyzer/forensic-image-metadata-authenticity-analyzer.css +679 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +72 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +72 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +71 -0
- package/src/tool/forensic-image-authenticity-analyzer/index.ts +11 -0
- package/src/tool/forensic-image-authenticity-analyzer/logic.ts +283 -0
- package/src/tool/forensic-image-authenticity-analyzer/seo.astro +10 -0
- package/src/tool/forensic-microcrystal-drug-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-microcrystal-drug-simulator/bibliography.ts +12 -0
- package/src/tool/forensic-microcrystal-drug-simulator/component.astro +240 -0
- package/src/tool/forensic-microcrystal-drug-simulator/entry.ts +32 -0
- package/src/tool/forensic-microcrystal-drug-simulator/forensic-microcrystal-drug-simulator.css +430 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/de.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/en.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/es.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/fr.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/id.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/it.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ja.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ko.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/nl.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/pl.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/pt.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ru.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/sv.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/tr.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/zh.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/index.ts +11 -0
- package/src/tool/forensic-microcrystal-drug-simulator/logic.ts +189 -0
- package/src/tool/forensic-microcrystal-drug-simulator/seo.astro +15 -0
- package/src/tool/forensic-sex-determinator/bibliography.astro +14 -0
- package/src/tool/forensic-sex-determinator/bibliography.ts +12 -0
- package/src/tool/forensic-sex-determinator/component.astro +463 -0
- package/src/tool/forensic-sex-determinator/entry.ts +32 -0
- package/src/tool/forensic-sex-determinator/forensic-sex-determinator.css +413 -0
- package/src/tool/forensic-sex-determinator/i18n/de.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/en.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/es.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/fr.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/id.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/it.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ja.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ko.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/nl.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/pl.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/pt.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ru.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/sv.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/tr.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/zh.ts +211 -0
- package/src/tool/forensic-sex-determinator/index.ts +11 -0
- package/src/tool/forensic-sex-determinator/logic.ts +89 -0
- package/src/tool/forensic-sex-determinator/seo.astro +15 -0
- package/src/tool/forensic-stature-estimator/bibliography.astro +14 -0
- package/src/tool/forensic-stature-estimator/bibliography.ts +12 -0
- package/src/tool/forensic-stature-estimator/component.astro +49 -0
- package/src/tool/forensic-stature-estimator/components/EstimationPanel.astro +65 -0
- package/src/tool/forensic-stature-estimator/components/OsteometricBoard.astro +39 -0
- package/src/tool/forensic-stature-estimator/components/OsteometricSelector.astro +109 -0
- package/src/tool/forensic-stature-estimator/dom-utils.ts +71 -0
- package/src/tool/forensic-stature-estimator/entry.ts +32 -0
- package/src/tool/forensic-stature-estimator/forensic-stature-estimator.css +689 -0
- package/src/tool/forensic-stature-estimator/helpers.ts +51 -0
- package/src/tool/forensic-stature-estimator/i18n/de.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/en.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/es.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/fr.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/id.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/it.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ja.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ko.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/nl.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/pl.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/pt.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ru.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/sv.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/tr.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/zh.ts +196 -0
- package/src/tool/forensic-stature-estimator/index.ts +11 -0
- package/src/tool/forensic-stature-estimator/logic.ts +119 -0
- package/src/tool/forensic-stature-estimator/script.ts +288 -0
- package/src/tool/forensic-stature-estimator/seo.astro +15 -0
- package/src/tool/forensic-tlc-ink-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-tlc-ink-simulator/bibliography.ts +16 -0
- package/src/tool/forensic-tlc-ink-simulator/component.astro +245 -0
- package/src/tool/forensic-tlc-ink-simulator/entry.ts +32 -0
- package/src/tool/forensic-tlc-ink-simulator/forensic-tlc-ink-simulator.css +462 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/de.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/en.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/es.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/fr.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/id.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/it.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ja.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ko.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/nl.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/pl.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/pt.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ru.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/sv.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/tr.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/index.ts +11 -0
- package/src/tool/forensic-tlc-ink-simulator/logic.ts +152 -0
- package/src/tool/forensic-tlc-ink-simulator/seo.astro +15 -0
- package/src/tool/gsr-dispersion-calculator/bibliography.astro +6 -0
- package/src/tool/gsr-dispersion-calculator/bibliography.ts +16 -0
- package/src/tool/gsr-dispersion-calculator/component.astro +294 -0
- package/src/tool/gsr-dispersion-calculator/entry.ts +32 -0
- package/src/tool/gsr-dispersion-calculator/gsr-dispersion-calculator.css +305 -0
- package/src/tool/gsr-dispersion-calculator/i18n/de.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/en.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/es.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/fr.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/id.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/it.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ja.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ko.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/nl.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/pl.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/pt.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ru.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/sv.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/tr.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/zh.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/index.ts +11 -0
- package/src/tool/gsr-dispersion-calculator/logic.ts +148 -0
- package/src/tool/gsr-dispersion-calculator/seo.astro +15 -0
- package/src/tool/widmark-alcohol-simulator/bibliography.astro +14 -0
- package/src/tool/widmark-alcohol-simulator/bibliography.ts +12 -0
- package/src/tool/widmark-alcohol-simulator/component.astro +453 -0
- package/src/tool/widmark-alcohol-simulator/entry.ts +32 -0
- package/src/tool/widmark-alcohol-simulator/i18n/de.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/en.ts +206 -0
- package/src/tool/widmark-alcohol-simulator/i18n/es.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/id.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/it.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ko.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/index.ts +11 -0
- package/src/tool/widmark-alcohol-simulator/logic.ts +97 -0
- package/src/tool/widmark-alcohol-simulator/seo.astro +15 -0
- package/src/tool/widmark-alcohol-simulator/widmark-alcohol-simulator.css +386 -0
- package/src/tools.ts +27 -0
- package/src/types.ts +70 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'calculadora-dispersion-residuos-disparo-gsr';
|
|
5
|
+
const title = 'Calculadora de Dispersión de Residuos de Disparo (GSR)';
|
|
6
|
+
const description = 'Simule patrones educativos de dispersión de residuos de disparo en una superficie de impacto utilizando la distancia de tiro, el tipo de munición, la dispersión radial y el depósito de hollín.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Ajuste la distancia de tiro',
|
|
11
|
+
text: 'Desplace el control de distancia desde el contacto directo hasta tres metros para observar cómo la descarga pasa de un depósito compacto y alterado térmicamente a un campo disperso.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Seleccione un perfil de munición',
|
|
15
|
+
text: 'Elija entre una pistola de 9 mm, un revólver .38 o una escopeta de calibre 12. Cada perfil modifica el número de partículas, el factor de dispersión y el alcance térmico estimado.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Examine el objetivo y la pluma de eyección',
|
|
19
|
+
text: 'Utilice el lienzo del objetivo para evaluar la densidad de partículas y la dispersión radial, y observe el cono lateral para comprender la expansión física de la nube de residuos.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Interprete la categoría de distancia',
|
|
23
|
+
text: 'Consulte la clasificación obtenida y los hallazgos típicos. Los resultados describen el significado didáctico de los patrones de contacto, contacto cercano, corta distancia y larga distancia.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: '¿Puede la dispersión de residuos de disparo determinar la distancia exacta de un tiro?',
|
|
31
|
+
answer: 'No. Los patrones de GSR permiten estimar un rango aproximado de distancia, no una cifra exacta. La determinación real requiere analizar el arma de fuego, la munición, el material de soporte, el ángulo de impacto y realizar disparos de prueba comparativos bajo condiciones controladas.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: '¿Por qué los disparos a quemarropa muestran más hollín y quemaduras?',
|
|
36
|
+
answer: 'A distancias muy cortas, los gases calientes, el hollín, la pólvora incombusta y las partículas metálicas del fulminante inciden sobre el objetivo antes de que la pluma de eyección se expanda y enfríe, provocando ahumamiento, quemaduras y desgarros.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: '¿Qué elementos químicos se asocian comúnmente con los residuos de fulminante?',
|
|
41
|
+
answer: 'El análisis tradicional de GSR busca partículas compuestas por plomo, bario y antimonio. Aunque las municiones modernas sin plomo pueden alterar esta firma química, el análisis mediante SEM-EDS evalúa la morfología y la química de las partículas de forma conjunta.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: '¿Por qué el simulador emplea un modelo de distribución radial gaussiano?',
|
|
46
|
+
answer: 'La distribución gaussiana es una aproximación didáctica útil porque la concentración de partículas es máxima en el centro y disminuye hacia la periferia. En la realidad, factores como el viento, el ángulo del disparo o el tipo de tejido pueden causar asimetrías.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: '¿Es esta calculadora adecuada para peritajes judiciales?',
|
|
51
|
+
answer: 'No. Se trata de un recurso educativo. Un dictamen pericial forense debe basarse en protocolos de laboratorio validados, controles de calidad y la evaluación directa de las pruebas físicas por un perito acreditado.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
distance: 'Distancia',
|
|
61
|
+
units: 'Sistema de unidades',
|
|
62
|
+
metric: 'Métrico',
|
|
63
|
+
imperial: 'Imperial',
|
|
64
|
+
unitMeter: 'm',
|
|
65
|
+
unitCentimeter: 'cm',
|
|
66
|
+
unitFoot: 'ft',
|
|
67
|
+
unitInch: 'in',
|
|
68
|
+
ammo: 'Perfil de munición',
|
|
69
|
+
ammoPistol9mm: 'Pistola de 9 mm',
|
|
70
|
+
ammoRevolver38: 'Revólver .38',
|
|
71
|
+
ammoShotgun12: 'Escopeta calibre 12',
|
|
72
|
+
target: 'Objetivo de tela',
|
|
73
|
+
cone: 'Pluma de residuos',
|
|
74
|
+
canvasAria: 'Dispersión de partículas de residuos de disparo en el objetivo de tela',
|
|
75
|
+
rangeStripAria: 'Categorías de distancia',
|
|
76
|
+
category: 'Interpretación de distancia',
|
|
77
|
+
categoryContactLabel: 'Contacto directo / boca de jarro',
|
|
78
|
+
categoryNearContactLabel: 'Contacto cercano / quemarropa',
|
|
79
|
+
categoryCloseRangeLabel: 'Corta distancia / zona de tatuaje',
|
|
80
|
+
categoryDistantLabel: 'Larga distancia o indeterminada',
|
|
81
|
+
density: 'Densidad de partículas',
|
|
82
|
+
thermal: 'Efecto térmico',
|
|
83
|
+
radius: 'Radio estimado del patrón',
|
|
84
|
+
radiusSuffix: 'de radio',
|
|
85
|
+
expected: 'Hallazgo esperado',
|
|
86
|
+
expectedContact: 'Se espera un depósito central denso, posible impronta de la boca del cañón, ahumamiento severo, desgarro del tejido y alteración térmica en la zona de impacto.',
|
|
87
|
+
expectedNearContact: 'Hollín denso y partículas de pólvora concentrados alrededor del orificio de entrada, con un halo radial estrecho y compacto.',
|
|
88
|
+
expectedCloseRange: 'El tatuaje de pólvora y los residuos metálicos se ensanchan en un anillo medible; los efectos térmicos y el hollín son mínimos o inexistentes.',
|
|
89
|
+
expectedDistant: 'Las partículas están muy dispersas y son escasas. Determinar la distancia requiere análisis químicos, microscopía y disparos de prueba comparativos.',
|
|
90
|
+
contact: 'Contacto',
|
|
91
|
+
near: 'Contacto cercano',
|
|
92
|
+
close: 'Corta distancia',
|
|
93
|
+
distant: 'Larga distancia',
|
|
94
|
+
disclaimer: 'Modelo didáctico. La determinación de la distancia de disparo exige disparos de prueba controlados, comparación de soportes físicos y métodos químicos validados.',
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Estimación de Distancia de Disparo a partir de Patrones de GSR',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'diagnostic',
|
|
104
|
+
variant: 'info',
|
|
105
|
+
icon: 'mdi:target-variant',
|
|
106
|
+
badge: 'Modelo educativo',
|
|
107
|
+
title: 'Qué responde esta calculadora',
|
|
108
|
+
html: 'Esta herramienta ilustra si un patrón de residuos se asemeja a un disparo de contacto, contacto cercano, corta distancia o larga distancia. Está diseñada para el aprendizaje de los métodos de <strong>determinación de la distancia de disparo</strong> mediante GSR, no para emitir dictámenes periciales.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 m', label: 'distancia de tiro simulada', icon: 'mdi:ruler' },
|
|
115
|
+
{ value: '4', label: 'categorías de distancia explicadas', icon: 'mdi:crosshairs-question' },
|
|
116
|
+
{ value: '3', label: 'perfiles de munición comparados', icon: 'mdi:ammunition' },
|
|
117
|
+
{ value: '2', label: 'sistemas de unidades: métrico e imperial', icon: 'mdi:swap-horizontal' },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Cómo Interpretar el Patrón Simulado',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'summary',
|
|
127
|
+
title: 'Lista de verificación rápida',
|
|
128
|
+
items: [
|
|
129
|
+
'El ahumamiento denso, quemaduras, desgarros o la impronta del cañón indican un disparo de contacto o contacto cercano.',
|
|
130
|
+
'Un centro oscuro compacto rodeado de granos de pólvora sugiere una distancia muy corta, requiriendo pruebas físicas para delimitarla.',
|
|
131
|
+
'El tatuaje disperso sin hollín es característico de los disparos a corta distancia cuando se han disipado los efectos térmicos.',
|
|
132
|
+
'La ausencia de residuos visibles a larga distancia no descarta la presencia de GSR; se requiere análisis químico o microscópico.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: 'Para qué sirve esta herramienta',
|
|
141
|
+
icon: 'mdi:check-circle-outline',
|
|
142
|
+
highlight: true,
|
|
143
|
+
description: 'Permite visualizar la relación entre distancia de tiro, densidad de residuos, dispersión de partículas y efectos térmicos.',
|
|
144
|
+
points: ['Demostración académica', 'Explicación técnica', 'Terminología forense', 'Comparación métrica e imperial'],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: 'Qué limitaciones tiene',
|
|
148
|
+
icon: 'mdi:alert-circle-outline',
|
|
149
|
+
description: 'No puede calcular la distancia real en un caso forense sin el estudio de los elementos materiales de prueba.',
|
|
150
|
+
points: ['No procesa muestras reales', 'Sin confirmación química', 'Sin disparos de prueba del arma específica', 'Sin validez judicial'],
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Pregunta frecuente', 'Indicio clave en el patrón', 'Respuesta técnica'],
|
|
157
|
+
rows: [
|
|
158
|
+
['¿Cómo es un disparo de contacto directo?', 'Hollín denso, quemaduras, desgarro del tejido o impronta del cañón.', 'Es compatible con un disparo de contacto, pero la elasticidad del soporte y los gases pueden modificar la apariencia.'],
|
|
159
|
+
['¿A qué distancia estaba el arma?', 'Residuos concentrados cerca de la entrada con un halo compacto.', 'El patrón define una hipótesis de distancia, pero se requiere el cotejo con disparos de prueba.'],
|
|
160
|
+
['¿Qué es el tatuaje por residuos de disparo?', 'Puntillado provocado por pólvora incombusta con mínimo hollín.', 'Su dispersión varía según la munición, la prenda de vestir, el ángulo de tiro y las barreras intermedias.'],
|
|
161
|
+
['¿Desaparecen los residuos a larga distancia?', 'Dispersión extremadamente amplia y ausencia de depósitos visibles.', 'La marca visible disminuye, pero las partículas microscópicas pueden recuperarse mediante técnicas analíticas.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Bases Científicas del Modelo de Simulación',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'El simulador utiliza una distribución radial de base gaussiana para ubicar las partículas en torno al centro del impacto. Las distancias cortas generan concentraciones densas y estrechas, mientras que el aumento de la distancia incrementa la dispersión y reduce la densidad media. El modelo diferencia las partículas del fulminante del depósito de hollín, ya que el ahumamiento tiene un alcance físico mucho más limitado.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'glossary',
|
|
175
|
+
items: [
|
|
176
|
+
{ term: 'GSR', definition: 'Residuos de disparo: partículas derivadas del fulminante, pólvora, proyectil y gases calientes generados al disparar.' },
|
|
177
|
+
{ term: 'Ahumamiento', definition: 'Depósito carbonoso y denso visible principalmente en disparos de contacto y distancias muy cortas.' },
|
|
178
|
+
{ term: 'Tatuaje', definition: 'Lesiones o marcas puntiformes causadas por el impacto de granos de pólvora incombusta o semicombusta.' },
|
|
179
|
+
{ term: 'Impronta de boca', definition: 'Marca o quemadura que reproduce el contorno de la boca de fuego al disparar apoyando el arma.' },
|
|
180
|
+
{ term: 'Disparo de prueba', definition: 'Cotejo experimental efectuado a distancias conocidas con el arma y munición sospechosas sobre un soporte idéntico.' },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: 'title',
|
|
185
|
+
text: 'Categorías Forenses de Distancia',
|
|
186
|
+
level: 3,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'table',
|
|
190
|
+
headers: ['Categoría', 'Hallazgos característicos', 'Límites de interpretación'],
|
|
191
|
+
rows: [
|
|
192
|
+
['Contacto', 'Depósito central masivo, ahumamiento, quemadura, desgarro o impronta del cañón.', 'La composición del tejido y el escape de gases pueden alterar significativamente el aspecto del orificio.'],
|
|
193
|
+
['Contacto cercano', 'Halo denso de hollín y pólvora alrededor del orificio de entrada.', 'Prendas holgadas o interpuestas pueden interceptar la distribución típica del residuo.'],
|
|
194
|
+
['Corta distancia', 'Tatuaje de pólvora y partículas dispersas sin presencia significativa de hollín.', 'Un mismo intervalo de distancia genera patrones distintos sobre algodón, mezclilla, piel o papel.'],
|
|
195
|
+
['Larga distancia', 'Residuos visibles escasos, dispersión máxima o ausencia de indicios macroscópicos.', 'El análisis microscópico y químico es fundamental para constatar la presencia de partículas no visibles.'],
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'tip',
|
|
200
|
+
title: 'Criterio práctico de interpretación',
|
|
201
|
+
html: 'Evalúe los residuos de disparo siempre como un <strong>análisis comparativo de rangos</strong> y nunca como un valor numérico fijo. La conclusión científica sólida surge de contrastar la muestra problema con patrones experimentales idénticos.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'title',
|
|
205
|
+
text: 'Protocolo de Muestreo e Interpretación del Patrón',
|
|
206
|
+
level: 3,
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'list',
|
|
210
|
+
icon: 'mdi:clipboard-check-outline',
|
|
211
|
+
items: [
|
|
212
|
+
'Documentar el tipo de tejido del soporte, color, grosor, porosidad y si existía tensión o pliegues durante el disparo.',
|
|
213
|
+
'Registrar la marca, modelo, longitud del cañón del arma, lote de munición, tipo de pólvora y presencia de dispositivos en la boca.',
|
|
214
|
+
'Fotografiar el patrón con testigo métrico de escala, iluminación adecuada y registro de cadena de custodia.',
|
|
215
|
+
'Analizar por separado la presencia de hollín, quemaduras, pólvora incombusta, anillo de limpieza y desgarros.',
|
|
216
|
+
'Realizar siempre disparos de comparación antes de emitir conclusiones sobre la distancia del disparo.',
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
type: 'proscons',
|
|
221
|
+
title: 'Simulación digital frente a análisis balístico de laboratorio',
|
|
222
|
+
items: [
|
|
223
|
+
{ pro: 'Facilita la comprensión visual de la dispersión de residuos conforme aumenta la distancia.', con: 'No reproduce las variables exactas de un arma de fuego, lote de munición o tejido específico.' },
|
|
224
|
+
{ pro: 'Ilustra las diferencias conceptuales entre categorías de distancia.', con: 'No reemplaza los ensayos químicos ni la microscopía electrónica de barrido (SEM-EDS).' },
|
|
225
|
+
{ pro: 'Ayuda a reconocer los límites físicos del análisis visual macroscópico.', con: 'Carece de validez pericial sin la debida validación, calibración y evaluación forense.' },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'diagnostic',
|
|
230
|
+
variant: 'warning',
|
|
231
|
+
icon: 'mdi:scale-balance',
|
|
232
|
+
badge: 'Advertencia forense',
|
|
233
|
+
title: 'Exclusión de uso judicial',
|
|
234
|
+
html: 'Un modelo de simulación digital no puede sustituir la evidencia física de un caso real. No puede evaluar el estado del arma, la química de la pólvora, barreras intermedias o la cadena de custodia. Utilice esta página exclusivamente con fines formativos y acuda a laboratorios periciales autorizados para casos reales.',
|
|
235
|
+
},
|
|
236
|
+
],
|
|
237
|
+
faq,
|
|
238
|
+
bibliography,
|
|
239
|
+
howTo,
|
|
240
|
+
schemas: [
|
|
241
|
+
{
|
|
242
|
+
'@context': 'https://schema.org',
|
|
243
|
+
'@type': 'SoftwareApplication',
|
|
244
|
+
name: title,
|
|
245
|
+
description,
|
|
246
|
+
applicationCategory: 'ForensicApplication',
|
|
247
|
+
operatingSystem: 'Any',
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
'@context': 'https://schema.org',
|
|
251
|
+
'@type': 'FAQPage',
|
|
252
|
+
mainEntity: faq.map((item) => ({
|
|
253
|
+
'@type': 'Question',
|
|
254
|
+
name: item.question,
|
|
255
|
+
acceptedAnswer: {
|
|
256
|
+
'@type': 'Answer',
|
|
257
|
+
text: item.answer,
|
|
258
|
+
},
|
|
259
|
+
})),
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
'@context': 'https://schema.org',
|
|
263
|
+
'@type': 'HowTo',
|
|
264
|
+
name: title,
|
|
265
|
+
step: howTo.map((step) => ({
|
|
266
|
+
'@type': 'HowToStep',
|
|
267
|
+
name: step.name,
|
|
268
|
+
text: step.text,
|
|
269
|
+
})),
|
|
270
|
+
},
|
|
271
|
+
],
|
|
272
|
+
};
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'calculateur-distance-tir-dispersion-gsr';
|
|
5
|
+
const title = 'Calculateur de Distance de Tir par Dispersion des GSR';
|
|
6
|
+
const description = 'Simulez les motifs éducatifs de dispersion des résidus de tir (GSR) sur une cible selon la distance de tir, le type de munition, la densité et les effets thermiques.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Régler la distance de tir',
|
|
11
|
+
text: 'Ajustez le curseur de distance depuis le tir de contact jusqu\'à trois mètres pour observer comment le dépôt concentré et altéré par la chaleur se transforme en un champ de particules dispersé.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Choisir un profil de munition',
|
|
15
|
+
text: 'Sélectionnez un profil (pistolet 9 mm, revolver .38 ou fusil de chasse calibre 12) pour modifier le nombre de particules, le facteur de dispersion et la portée thermique de la simulation.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Analyser la cible et le cône de dispersion',
|
|
19
|
+
text: 'Utilisez la cible textile pour évaluer la densité et la répartition radiale des particules, et observez le cône latéral pour comprendre l\'expansion physique du panache de tir.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Interpréter la catégorie de distance',
|
|
23
|
+
text: 'Consultez la classification de la zone et les observations attendues. Le résultat décrit la signification pédagogique des tirs de contact, de contact étroit, à courte portée et à longue portée.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'La dispersion des résidus de tir peut-elle déterminer une distance exacte ?',
|
|
31
|
+
answer: 'Non. Les motifs de GSR permettent d\'estimer une plage de distance approximative, et non une valeur absolue. Une conclusion rigoureuse exige l\'examen de l\'arme, des munitions, du support, de l\'angle et la réalisation de tirs de comparaison dans des conditions contrôlées.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Pourquoi les tirs à bout portant provoquent-ils plus de suie et de brûlures ?',
|
|
36
|
+
answer: 'À très courte distance, les gaz brûlants, la suie, la poudre non consumée et les particules métalliques de l\'amorce frappent la cible avant que le panache ne se soit dilaté et refroidi, entraînant noircissement, brûlures et déchirures.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Quels éléments chimiques caractérisent les résidus d\'amorce ?',
|
|
41
|
+
answer: 'L\'analyse classique des GSR cible les particules contenant du plomb, du baryum et de l\'antimoine. Bien que les munitions modernes sans plomb modifient ce profil, les examens par MEB-EDS évaluent conjointement la morphologie et la chimie des particules.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Pourquoi le simulateur utilise-t-il une distribution radiale gaussienne ?',
|
|
46
|
+
answer: 'La distribution gaussienne est une approximation pédagogique utile car la majorité des particules se concentre près du centre du panache. En réalité, le vent, l\'angle d\'impact ou le type de textile peuvent introduire des asymétries.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Ce calculateur peut-il servir à un rapport d\'expertise judiciaire ?',
|
|
51
|
+
answer: 'Non. C\'est un outil didactique. Une expertise médico-légale doit s\'appuyer sur des protocoles de laboratoire validés, des contrôles de qualité, des tirs de comparaison physiques et l\'évaluation par un expert qualifié.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
distance: 'Distance de tir',
|
|
61
|
+
units: 'Système d\'unités',
|
|
62
|
+
metric: 'Métrique',
|
|
63
|
+
imperial: 'Impérial',
|
|
64
|
+
unitMeter: 'm',
|
|
65
|
+
unitCentimeter: 'cm',
|
|
66
|
+
unitFoot: 'ft',
|
|
67
|
+
unitInch: 'in',
|
|
68
|
+
ammo: 'Profil de munition',
|
|
69
|
+
ammoPistol9mm: 'Pistolet 9 mm',
|
|
70
|
+
ammoRevolver38: 'Revolver .38',
|
|
71
|
+
ammoShotgun12: 'Fusil calibre 12',
|
|
72
|
+
target: 'Cible textile',
|
|
73
|
+
cone: 'Panache de résidus',
|
|
74
|
+
canvasAria: 'Dispersion des particules de résidus de tir sur la cible textile',
|
|
75
|
+
rangeStripAria: 'Catégories de distance',
|
|
76
|
+
category: 'Interprétation de la portée',
|
|
77
|
+
categoryContactLabel: 'Tir de contact / embouchure sur support',
|
|
78
|
+
categoryNearContactLabel: 'Tir à bout portant / zone de brûlure',
|
|
79
|
+
categoryCloseRangeLabel: 'Tir à courte portée / zone de tatouage',
|
|
80
|
+
categoryDistantLabel: 'Tir à longue portée ou indéterminée',
|
|
81
|
+
density: 'Densité de particules',
|
|
82
|
+
thermal: 'Effet thermique',
|
|
83
|
+
radius: 'Rayon estimé du motif',
|
|
84
|
+
radiusSuffix: 'de rayon',
|
|
85
|
+
expected: 'Observation attendue',
|
|
86
|
+
expectedContact: 'Un dépôt central très dense, une empreinte de la bouche de l\'arme, un noircissement de suie, des déchirures et des altérations thermiques sont attendus dans la zone cible.',
|
|
87
|
+
expectedNearContact: 'Une forte concentration de suie et de grains de poudre reste centrée autour de l\'orifice, avec un halo radial étroit mais visible.',
|
|
88
|
+
expectedCloseRange: 'Le tatouage de poudre et les résidus métalliques s\'élargissent en un anneau mesurable ; les effets thermiques et la suie deviennent négligeables.',
|
|
89
|
+
expectedDistant: 'Les particules sont rares et très dispersées. Une conclusion sur la distance requiert des analyses chimiques, de la microscopie et des tirs de comparaison.',
|
|
90
|
+
contact: 'Contact',
|
|
91
|
+
near: 'Bout portant',
|
|
92
|
+
close: 'Courte portée',
|
|
93
|
+
distant: 'Longue portée',
|
|
94
|
+
disclaimer: 'Modèle didactique uniquement. La détermination de la distance de tir par les GSR exige des tirs d\'essai contrôlés, des comparaisons physiques et des méthodes chimiques validées.',
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Estimation de la Distance de Tir à Partir des Motifs de GSR',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'diagnostic',
|
|
104
|
+
variant: 'info',
|
|
105
|
+
icon: 'mdi:target-variant',
|
|
106
|
+
badge: 'Modèle éducatif',
|
|
107
|
+
title: 'Ce que ce calculateur explique',
|
|
108
|
+
html: 'Ce calculateur de dispersion des GSR illustre si un motif de résidus correspond à un tir de contact, à bout portant, à courte portée ou à longue portée. Il est destiné à l\'apprentissage des principes de <strong>détermination de la distance de tir</strong>, non à l\'émission d\'expertises réelles.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 m', label: 'distance de tir simulée', icon: 'mdi:ruler' },
|
|
115
|
+
{ value: '4', label: 'catégories de portée expliquées', icon: 'mdi:crosshairs-question' },
|
|
116
|
+
{ value: '3', label: 'profils de munition comparés', icon: 'mdi:ammunition' },
|
|
117
|
+
{ value: '2', label: 'systèmes d\'unités: métrique et impérial', icon: 'mdi:swap-horizontal' },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Comment Lire le Motif Simulé',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'summary',
|
|
127
|
+
title: 'Liste de validation rapide',
|
|
128
|
+
items: [
|
|
129
|
+
'Une suie centrale dense, des brûlures, des déchirures ou une empreinte de bouche indiquent un tir de contact ou à bout portant.',
|
|
130
|
+
'Un centre sombre compact entouré de grains de poudre suggère une distance très courte, nécessitant des tirs de comparaison pour la préciser.',
|
|
131
|
+
'Un tatouage dispersé avec peu de suie correspond généralement à un tir à courte portée, hors de portée des effets thermiques.',
|
|
132
|
+
'L\'absence de résidus visibles n\'exclut pas la présence de GSR ; les analyses microscopiques et chimiques restent indispensables.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: 'Ce que l\'outil permet d\'illustrer',
|
|
141
|
+
icon: 'mdi:check-circle-outline',
|
|
142
|
+
highlight: true,
|
|
143
|
+
description: 'Il montre graphiquement la relation entre distance de tir, densité de résidus, étalement des particules et effets de chaleur.',
|
|
144
|
+
points: ['Démonstration en classe', 'Explications techniques', 'Vocabulaire médico-légal', 'Comparaison métrique/impérial'],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: 'Ce qu\'il ne peut pas prouver',
|
|
148
|
+
icon: 'mdi:alert-circle-outline',
|
|
149
|
+
description: 'Il ne peut pas identifier la distance réelle d\'un tir sans l\'analyse physique des scellés.',
|
|
150
|
+
points: ['Pas d\'analyse de pièces réelles', 'Pas de confirmation chimique', 'Pas de tirs avec l\'arme en cause', 'Pas de valeur juridique'],
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Question fréquente', 'Indice clé du motif', 'Réponse technique'],
|
|
157
|
+
rows: [
|
|
158
|
+
['À quoi ressemble un tir de contact ?', 'Dépôt massif de suie, brûlure, déchirure en croix ou empreinte de bouche.', 'L\'interprétation d\'un contact est probable, mais l\'élasticité du support et les gaz de tir peuvent en modifier l\'aspect.'],
|
|
159
|
+
['Quelle était la distance de l\'arme ?', 'Résidus denses autour de l\'entrée avec un halo compact de poudre.', 'Le motif permet de formuler une hypothèse de portée, mais un tir de comparaison est indispensable.'],
|
|
160
|
+
['Qu\'est-ce que le tatouage de poudre ?', 'Incrustations ponctuelles de grains de poudre non consumés avec peu de suie.', 'Sa dispersion varie selon la munition, le tissu, l\'angle d\'incidence et les obstacles intermédiaires.'],
|
|
161
|
+
['Les résidus s\'effacent-ils avec la distance ?', 'Particules très rares et absence de motif visible macroscopiquement.', 'Les indices visibles diminuent, mais les particules d\'amorce peuvent être prélevées et détectées au microscope.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Physique et Modélisation Mathématique',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Le simulateur applique une distribution radiale de type gaussien pour positionner les particules autour de l\'impact. Les courtes distances produisent des dépôts étroits et denses ; les longues distances augmentent l\'écartement et réduisent la densité moyenne. Le modèle sépare le dépôt de suie des particules d\'amorce métalliques car le noircissement thermique a une portée beaucoup plus limitée.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'glossary',
|
|
175
|
+
items: [
|
|
176
|
+
{ term: 'GSR', definition: 'Résidus de tir (Gunshot Residue): particules issues de l\'amorce, de la poudre, du projectile et des gaz de combustion.' },
|
|
177
|
+
{ term: 'Noircissement', definition: 'Dépôt carboné de suie visible principalement lors de tirs de contact ou à très courte distance.' },
|
|
178
|
+
{ term: 'Tatouage', definition: 'Incrustations punctiformes de grains de poudre non ou partiellement consumés dans la surface cible.' },
|
|
179
|
+
{ term: 'Empreinte de bouche', definition: 'Marque physique laissée sur la cible par la pression et la chaleur de la bouche du canon.' },
|
|
180
|
+
{ term: 'Tir de comparaison', definition: 'Tir expérimental réalisé à des distances connues avec l\'arme et les munitions du dossier sur un support identique.' },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: 'title',
|
|
185
|
+
text: 'Catégories de Portée et Observations Typiques',
|
|
186
|
+
level: 3,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'table',
|
|
190
|
+
headers: ['Classe de portée', 'Observations courantes', 'Limites de l\'interprétation'],
|
|
191
|
+
rows: [
|
|
192
|
+
['Contact', 'Dépôt central massif, suie, brûlure, déchirure, empreinte de canon.', 'La tension du support et les effets des gaz de tir peuvent considérablement modifier la morphologie du trou.'],
|
|
193
|
+
['Bout portant', 'Suie dense et halo serré de grains de poudre autour de l\'entrée.', 'Des vêtements amples ou un obstacle intermédiaire peuvent intercepter le dépôt de particules.'],
|
|
194
|
+
['Courte portée', 'Tatouage de poudre, particules dispersées sans suie marquante.', 'Une même distance produit des motifs distincts selon que la cible est du coton, du denim, de la peau ou du papier.'],
|
|
195
|
+
['Longue portée', 'Résidus visibles rares, dispersion étendue ou absence de motif macroscopique.', 'L\'analyse microscopique et chimique devient déterminante à mesure que les signes visuels s\'estompent.'],
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'tip',
|
|
200
|
+
title: 'Conseil pratique d\'analyse',
|
|
201
|
+
html: 'Interprétez toujours la distance de tir sous forme de <strong>plage comparative</strong> et jamais comme une valeur métrique fixe. Les conclusions fiables reposent sur l\'étalonnage expérimental avec des cibles de comparaison.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'title',
|
|
205
|
+
text: 'Protocole de Prélèvement et de Lecture des Motifs',
|
|
206
|
+
level: 3,
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'list',
|
|
210
|
+
icon: 'mdi:clipboard-check-outline',
|
|
211
|
+
items: [
|
|
212
|
+
'Documenter la nature du support cible, son tissage, sa couleur, son épaisseur et son état de tension.',
|
|
213
|
+
'Noter la marque et le modèle de l\'arme, la longueur du canon, le type de munition, la poudre et d\'éventuels accessoires de bouche.',
|
|
214
|
+
'Photographier le motif avec un témoin métrique, un éclairage adapté et les indications de traçabilité.',
|
|
215
|
+
'Rechercher séparément la suie, les brûlures, la poudre non consumée, la collerette d\'essuyage et les déchirures.',
|
|
216
|
+
'Procéder systématiquement à des tirs de comparaison avant de proposer un intervalle de distance.',
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
type: 'proscons',
|
|
221
|
+
title: 'Simulation virtuelle vs analyse balistique de laboratoire',
|
|
222
|
+
items: [
|
|
223
|
+
{ pro: 'Permet de visualiser facilement l\'effet de la distance sur la dispersion des résidus.', con: 'Ne prend pas en compte les spécificités de l\'arme, du lot de munitions ou du tissu.' },
|
|
224
|
+
{ pro: 'Explicite les différences conceptuelles entre les catégories de portée.', con: 'Ne remplace pas les tests chimiques ni la microscopie électronique à balayage (MEB-EDS).' },
|
|
225
|
+
{ pro: 'Sensibilise aux limites physiques de l\'interprétation visuelle directe.', con: 'Dépourvu de valeur médico-légale sans validation scientifique et expertise sur pièces.' },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'diagnostic',
|
|
230
|
+
variant: 'warning',
|
|
231
|
+
icon: 'mdi:scale-balance',
|
|
232
|
+
badge: 'Mise en garde médico-légale',
|
|
233
|
+
title: 'Exclusion d\'usage judiciaire',
|
|
234
|
+
html: 'Un modèle logiciel ne peut se substituer aux pièces à conviction physiques. Il ne peut évaluer l\'état de conservation de l\'arme, la chimie des poudres, les obstacles ou la qualité des prélèvements. Cette page a une visée didactique ; référez-vous aux laboratoires agréés pour toute expertise réelle.',
|
|
235
|
+
},
|
|
236
|
+
],
|
|
237
|
+
faq,
|
|
238
|
+
bibliography,
|
|
239
|
+
howTo,
|
|
240
|
+
schemas: [
|
|
241
|
+
{
|
|
242
|
+
'@context': 'https://schema.org',
|
|
243
|
+
'@type': 'SoftwareApplication',
|
|
244
|
+
name: title,
|
|
245
|
+
description,
|
|
246
|
+
applicationCategory: 'ForensicApplication',
|
|
247
|
+
operatingSystem: 'Any',
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
'@context': 'https://schema.org',
|
|
251
|
+
'@type': 'FAQPage',
|
|
252
|
+
mainEntity: faq.map((item) => ({
|
|
253
|
+
'@type': 'Question',
|
|
254
|
+
name: item.question,
|
|
255
|
+
acceptedAnswer: {
|
|
256
|
+
'@type': 'Answer',
|
|
257
|
+
text: item.answer,
|
|
258
|
+
},
|
|
259
|
+
})),
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
'@context': 'https://schema.org',
|
|
263
|
+
'@type': 'HowTo',
|
|
264
|
+
name: title,
|
|
265
|
+
step: howTo.map((step) => ({
|
|
266
|
+
'@type': 'HowToStep',
|
|
267
|
+
name: step.name,
|
|
268
|
+
text: step.text,
|
|
269
|
+
})),
|
|
270
|
+
},
|
|
271
|
+
],
|
|
272
|
+
};
|