@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 = 'kalkulator-jarak-tembak-sebaran-gsr-sisa-mesiu';
|
|
5
|
+
const title = 'Kalkulator Jarak Tembak Sebaran GSR';
|
|
6
|
+
const description = 'Simulasikan pola sebaran sisa tembakan (GSR) edukatif pada permukaan target berdasarkan jarak tembak, jenis amunisi, pembusukan kepadatan, dan efek termal.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Atur jarak moncong ke target',
|
|
11
|
+
text: 'Geser kontrol jarak dari kontak langsung hingga tiga meter untuk melihat bagaimana sisa tembakan berubah dari deposit padat dan terbakar menjadi medan partikel yang tersebar luas.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Pilih profil amunisi',
|
|
15
|
+
text: 'Pilih profil pistol 9 mm, revolver .38, atau senapan laras licin kaliber 12. Setiap profil mengubah jumlah partikel, faktor penyebaran, dan estimasi jangkauan termal.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Periksa kain target dan kerucut sebaran',
|
|
19
|
+
text: 'Gunakan kain target untuk mengevaluasi kepadatan partikel dan penyebaran radial, dan amati kerucut samping untuk memahami ekspansi fisik awan residu sebelum mencapai target.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Tafsirkan kategori jarak',
|
|
23
|
+
text: 'Tinjau klasifikasi jarak dan temuan yang diharapkan. Hasilnya menjelaskan makna edukatif dari pola kontak langsung, kontak dekat, jarak dekat, dan jarak jauh.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Apakah sebaran sisa tembakan dapat menentukan jarak tembak yang pasti?',
|
|
31
|
+
answer: 'Tidak. Pola GSR mendukung estimasi rentang jarak, bukan jarak pasti. Kesimpulan nyata memerlukan pemeriksaan senjata api, amunisi, bahan target, sudut tembak, dan uji tembak perbandingan dalam kondisi terkendali.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Mengapa tembakan sangat dekat menunjukkan lebih banyak jelaga dan luka bakar?',
|
|
36
|
+
answer: 'Pada jarak sangat dekat, gas panas, jelaga, butiran mesiu yang tidak terbakar, dan partikel logam dari primer mengenai target sebelum awan residu memuai dan mendingin, menyebabkan penghitaman, luka bakar, dan robekan.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Unsur kimia apa saja yang umumnya dikaitkan dengan GSR primer?',
|
|
41
|
+
answer: 'Analisis GSR tradisional berfokus pada partikel yang mengandung timbal, barium, dan antimon. Meskipun amunisi modern bebas timbal dapat mengubah profil kimia ini, metode SEM-EDS mengevaluasi morfologi dan kimia partikel secara bersamaan.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Mengapa simulator menggunakan model radial Gaussian?',
|
|
46
|
+
answer: 'Distribusi radial Gaussian merupakan pendekatan edukatif yang berguna karena sebagian besar partikel berkonsentrasi di dekat pusat dampak. Pada kenyataannya, angin, sudut target, desain senjata, atau jenis kain dapat menyebabkan asimetri.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Apakah kalkulator ini cocok untuk pembuatan laporan hukum?',
|
|
51
|
+
answer: 'Tidak. Ini adalah visualisasi edukatif. Laporan forensik resmi harus mengandalkan protokol laboratorium yang tervalidasi, kontrol kualitas, pola uji tembak fisik, dan penilaian oleh ahli bersertifikat.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
distance: 'Jarak tembak',
|
|
61
|
+
units: 'Sistem satuan',
|
|
62
|
+
metric: 'Metrik',
|
|
63
|
+
imperial: 'Imperial',
|
|
64
|
+
unitMeter: 'm',
|
|
65
|
+
unitCentimeter: 'cm',
|
|
66
|
+
unitFoot: 'ft',
|
|
67
|
+
unitInch: 'in',
|
|
68
|
+
ammo: 'Profil amunisi',
|
|
69
|
+
ammoPistol9mm: 'Pistol 9 mm',
|
|
70
|
+
ammoRevolver38: 'Revolver .38',
|
|
71
|
+
ammoShotgun12: 'Senapan kaliber 12',
|
|
72
|
+
target: 'Kain target',
|
|
73
|
+
cone: 'Awan residu',
|
|
74
|
+
canvasAria: 'Sebaran partikel sisa tembakan pada kain target',
|
|
75
|
+
rangeStripAria: 'Kategori jarak',
|
|
76
|
+
category: 'Penafsiran jarak',
|
|
77
|
+
categoryContactLabel: 'Kontak langsung / menempel target',
|
|
78
|
+
categoryNearContactLabel: 'Kontak dekat / rentang luka bakar',
|
|
79
|
+
categoryCloseRangeRange: 'Jarak dekat / zona rajah mesiu',
|
|
80
|
+
categoryDistantLabel: 'Jarak jauh atau jarak tidak menentu',
|
|
81
|
+
density: 'Kepadatan partikel',
|
|
82
|
+
thermal: 'Efek termal',
|
|
83
|
+
radius: 'Estimasi radius pola',
|
|
84
|
+
radiusSuffix: 'radius',
|
|
85
|
+
expected: 'Temuan yang diharapkan',
|
|
86
|
+
expectedContact: 'Deposit pusat yang padat, risiko cetakan moncong senjata, jelaga hitam, robekan, dan perubahan termal diperkirakan terjadi di zona target.',
|
|
87
|
+
expectedNearContact: 'Jelaga tebal dan partikel mesiu tetap terkonsentrasi di sekitar area masuk, dengan halo radial yang tampak namun tetap kompak.',
|
|
88
|
+
expectedCloseRange: 'Rajah mesiu dan residu logam melebar menjadi cincin yang dapat diukur; efek termal dan jelaga menjadi sangat minim.',
|
|
89
|
+
expectedDistant: 'Partikelsangat jarang dan tersebar luas. Penentuan jarak memerlukan analisis kimia, mikroskopi, dan tembakan percobaan perbandingan.',
|
|
90
|
+
contact: 'Kontak',
|
|
91
|
+
near: 'Kontak dekat',
|
|
92
|
+
close: 'Jarak dekat',
|
|
93
|
+
distant: 'Jarak jauh',
|
|
94
|
+
disclaimer: 'Hanya model edukatif. Penentuan jarak tembak GSR memerlukan uji tembak terkendali, perbandingan bahan target, dan metode kimia tervalidasi.',
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Estimasi Jarak Tembak Berdasarkan Pola Sebaran GSR',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'diagnostic',
|
|
104
|
+
variant: 'info',
|
|
105
|
+
icon: 'mdi:target-variant',
|
|
106
|
+
badge: 'Model edukatif',
|
|
107
|
+
title: 'Apa yang dijelaskan kalkulator ini',
|
|
108
|
+
html: 'Kalkulator sebaran GSR ini mengilustrasikan apakah pola sisa tembakan menyerupai tembakan kontak langsung, kontak dekat, jarak dekat, atau jarak jauh. Ini dirancang untuk mempelajari prinsip <strong>penentuan jarak tembak</strong> melalui GSR, bukan untuk mengeluarkan opini forensik resmi.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 m', label: 'simulasi jarak moncong ke target', icon: 'mdi:ruler' },
|
|
115
|
+
{ value: '4', label: 'kategori rentang jarak dijelaskan', icon: 'mdi:crosshairs-question' },
|
|
116
|
+
{ value: '3', label: 'profil amunisi dibandingkan', icon: 'mdi:ammunition' },
|
|
117
|
+
{ value: '2', label: 'sistem satuan: metrik dan imperial', icon: 'mdi:swap-horizontal' },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Cara Membaca Pola Simulasi',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'summary',
|
|
127
|
+
title: 'Daftar periksa interpretasi cepat',
|
|
128
|
+
items: [
|
|
129
|
+
'Jelaga pusat yang padat, luka bakar, robekan, atau cetakan moncong senjata menunjukkan kontak langsung atau kontak dekat.',
|
|
130
|
+
'Pusat gelap yang kompak dikelilingi butiran mesiu menunjukkan jarak yang sangat pendek, membutuhkan uji tembak untuk mempersempitnya.',
|
|
131
|
+
'Rajah mesiu yang tersebar dengan sedikit jelaga biasanya cocok untuk jarak dekat setelah efek panas menghilang.',
|
|
132
|
+
'Ketiadaan residu yang terlihat pada jarak jauh tidak membuktikan tidak adanya GSR; analisis kimia atau mikroskopi masih dapat mendeteksinya.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: 'Kegunaan alat ini',
|
|
141
|
+
icon: 'mdi:check-circle-outline',
|
|
142
|
+
highlight: true,
|
|
143
|
+
description: 'Memvisualisasikan hubungan antara jarak tembak, kepadatan residu, penyebaran partikel, dan efek termal.',
|
|
144
|
+
points: ['Demonstrasi kelas', 'Penjelasan maksud pencarian', 'Terminologi forensik', 'Perbandingan metrik dan imperial'],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: 'Batasan alat ini',
|
|
148
|
+
icon: 'mdi:alert-circle-outline',
|
|
149
|
+
description: 'Tidak dapat menentukan jarak tembak nyata dalam kasus forensik tanpa bukti fisik dan validasi.',
|
|
150
|
+
points: ['Tidak ada unggah bukti fisik', 'Tanpa konfirmasi kimia', 'Tanpa uji tembak senjata spesifik', 'Tanpa kekuatan hukum'],
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Pertanyaan umum', 'Petunjuk kunci pola', 'Jawaban teknis'],
|
|
157
|
+
rows: [
|
|
158
|
+
['Seperti apa tembakan kontak langsung?', 'Jelaga padat, luka bakar, robekan menyilang, atau kemungkinan cetakan moncong.', 'Interpretasi kontak langsung mungkin masuk akal, tetapi ekspansi gas dan elastisitas kain dapat memengaruhi tampilannya.'],
|
|
159
|
+
['Seberapa dekat senjata tersebut?', 'Residu terkonsentrasi di dekat lubang masuk dengan halo mesiu yang kompak.', 'Pola mendukung hipotesis rentang jarak, tetapi perbandingan dengan uji tembak eksperimental tetap diperlukan.'],
|
|
160
|
+
['Apa itu rajah mesiu (tatuaj)?', 'Bintik-bintik akibat tumbukan butiran mesiu tidak terbakar dengan sedikit jelaga.', 'Penyebarannya bervariasi tergantung pada amunisi, jenis kain, sudut tembak, dan penghalang di antaranya.'],
|
|
161
|
+
['Apakah GSR dapat hilang pada jarak jauh?', 'Partikel sangat jarang dan tidak ada pola makroskopis yang terlihat.', 'Tanda visual berkurang, tetapi partikel primer masih dapat dideteksi dengan metode laboratorium.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Prinsip Ilmiah Model Simulasi',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Simulator menggunakan distribusi radial Gaussian untuk menempatkan partikel di sekitar pusat dampak secara acak namun terarah. Jarak moncong yang pendek menghasilkan deposit residu yang sangat sempit, tebal, dan padat di area pusat. Sebaliknya, jarak penembakan yang lebih jauh meningkatkan luas penyebaran partikel secara signifikan dan menurunkan rata-rata kepadatan partikel per satuan luas. Model matematika ini secara khusus memisahkan partikel jelaga halus yang mudah terbang dari partikel logam berat yang lebih padat dan stabil, karena efek thermal dan pembakaran jelaga memiliki batas jangkauan fisik yang jauh lebih pendek dibandingkan dengan deteksi partikel mikroskopis.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'glossary',
|
|
175
|
+
items: [
|
|
176
|
+
{ term: 'GSR', definition: 'Residu sisa tembakan (Gunshot Residue): partikel yang dihasilkan oleh primer, mesiu, proyektil, dan gas panas selama penembakan.' },
|
|
177
|
+
{ term: 'Penghitaman jelaga', definition: 'Deposit karbon gelap yang biasanya paling terlihat pada kontak langsung dan jarak sangat dekat.' },
|
|
178
|
+
{ term: 'Rajah mesiu', definition: 'Luka bintik-bintik kecil pada target yang disebabkan oleh tumbukan butiran mesiu tidak terbakar atau terbakar sebagian.' },
|
|
179
|
+
{ term: 'Cetakan moncong', definition: 'Tanda fisik pada target yang mereproduksi bentuk moncong senjata akibat tekanan gas dan panas pada tembakan menempel.' },
|
|
180
|
+
{ term: 'Tembakan percobaan', definition: 'Tembakan pembanding yang dilakukan pada jarak yang diketahui dengan senjata dan amunisi yang sama pada kain target identik.' },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: 'title',
|
|
185
|
+
text: 'Kategori Rentang Jarak dan Temuan Fisik',
|
|
186
|
+
level: 3,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'table',
|
|
190
|
+
headers: ['Kategori Jarak', 'Temuan umum', 'Batasan interpretasi'],
|
|
191
|
+
rows: [
|
|
192
|
+
['Kontak', 'Deposit pusat masif, jelaga, luka bakar, robekan, cetakan moncong.', 'Elastisitas kain dan tekanan gas dapat mengubah diameter lubang secara signifikan.'],
|
|
193
|
+
['Kontak dekat', 'Jelaga padat dan halo mesiu yang rapat di sekitar lubang masuk.', 'Pakaian longgar atau penghalang antara dapat mengalihkan sebaran residu yang diharapkan.'],
|
|
194
|
+
['Jarak dekat', 'Rajah mesiu, partikel tersebar tanpa kehadiran jelaga yang signifikan.', 'Jarak yang sama menghasilkan pola berbeda pada katun, denim, kulit, atau kertas.'],
|
|
195
|
+
['Jarak jauh', 'Residu visual sangat jarang atau tidak ada, sebaran mikroskopis luas.', 'Analisis kimia dan mikroskopi elektron sangat penting ketika tanda visual makroskopis hilang.'],
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'tip',
|
|
200
|
+
title: 'Tips penafsiran praktis',
|
|
201
|
+
html: 'Evaluasi residu tembakan selalu sebagai <strong>analisis rentang perbandingan</strong> dan bukan nilai angka pasti. Kesimpulan ilmiah yang kuat diperoleh dengan membandingkan bukti fisik target dengan pola eksperimental.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'title',
|
|
205
|
+
text: 'Protokol Dokumentasi Sebelum Analisis Pola',
|
|
206
|
+
level: 3,
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'list',
|
|
210
|
+
icon: 'mdi:clipboard-check-outline',
|
|
211
|
+
items: [
|
|
212
|
+
'Dokumentasikan sifat kain target: jenis kain, warna, ketebalan, elastisitas, dan adanya lipatan.',
|
|
213
|
+
'Catat merek, model, panjang laras senjata api, nomor lot amunisi, jenis mesiu, dan alat tambahan moncong.',
|
|
214
|
+
'Foto pola dengan skala pembanding, pencahayaan tegak lurus, dan catatan rantai bukti (chain of custody).',
|
|
215
|
+
'Analisis secara terpisah keberadaan jelaga, luka bakar, mesiu tidak terbakar, cincin usap, dan robekan kain.',
|
|
216
|
+
'Lakukan selalu tembakan percobaan pembanding sebelum menetapkan kesimpulan jarak tembak.',
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
type: 'proscons',
|
|
221
|
+
title: 'Simulasi virtual dibandingkan dengan pemeriksaan laboratorium balistik',
|
|
222
|
+
items: [
|
|
223
|
+
{ pro: 'Memudahkan pemahaman visual tentang bagaimana residu menyebar seiring bertambahnya jarak.', con: 'Tidak mereproduksi karakteristik senjata api, lot amunisi, atau kain target secara spesifik.' },
|
|
224
|
+
{ pro: 'Menjelaskan perbedaan konseptual antara kategori rentang jarak.', con: 'Tidak menggantikan uji kimia atau mikroskopi elektron pemindai (SEM-EDS).' },
|
|
225
|
+
{ pro: 'Membantu memahami batasan fisik dari analisis visual makroskopis langsung.', con: 'Tidak memiliki nilai hukum tanpa validasi laboratorium eksperimental dan penilaian ahli resmi.' },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'diagnostic',
|
|
230
|
+
variant: 'warning',
|
|
231
|
+
icon: 'mdi:scale-balance',
|
|
232
|
+
badge: 'Peringatan forensik',
|
|
233
|
+
title: 'Pengecualian penggunaan untuk tujuan hukum',
|
|
234
|
+
html: 'Simulasi komputer tidak dapat menggantikan bukti fisik nyata. Simulator tidak mengevaluasi kondisi senjata, kimia mesiu, penghalang antara, atau kualitas pengumpulan sampel. Gunakan halaman ini hanya untuk tujuan edukasi dan hubungi laboratorium forensik resmi untuk investigasi nyata.',
|
|
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 = 'calcolatore-dispersione-residui-sparo-gsr';
|
|
5
|
+
const title = 'Calcolatore Dispersione Residui dello Sparo (GSR)';
|
|
6
|
+
const description = 'Simula modelli educativi di dispersione dei residui di sparo su una superficie bersaglio in base a distanza di sparo, tipo di munizioni, dispersione radiale ed effetti termici.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Impostare la distanza di sparo',
|
|
11
|
+
text: 'Spostare il comando della distanza dal contatto diretto fino a tre metri per osservare come il deposito passa da una traccia compatta e termicamente alterata a un campo di particelle disperso.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Selezionare un profilo di munizioni',
|
|
15
|
+
text: 'Scegliere tra una pistola 9 mm, un revolver .38 o un fucile a canna liscia calibro 12. Ogni profilo modifica il numero di particelle, il fattore di dispersione e l\'estensione termica stimata.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Valutare il bersaglio e il cono di sparo',
|
|
19
|
+
text: 'Utilizzare il bersaglio in tessuto per confrontare la densità delle particelle e la dispersione radiale, osservando il cono laterale per comprendere l\'espansione fisica della nube di residui.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Interpretare la categoria di distanza',
|
|
23
|
+
text: 'Esaminare la classificazione ottenuta e i risultati attesi. I risultati descrivono il significato didattico dei pattern da contatto, contatto ravvicinato, distanza ravvicinata e lunga distanza.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'La dispersione dei residui di sparo può determinare la distanza esatta di un colpo?',
|
|
31
|
+
answer: 'No. I pattern di GSR supportano una stima dell\'intervallo di distanza, non un valore esatto. La determinazione reale richiede l\'analisi dell\'arma da fuoco, delle munizioni, del materiale del bersaglio, dell\'angolo e l\'esecuzione di spari di prova comparativi in condizioni controllate.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Perché gli spari a bruciapelo mostrano più fuliggine e bruciature?',
|
|
36
|
+
answer: 'A distanze molto brevi, gas caldi, fuliggine, polvere incombusta e particelle metalliche dell\'innesco colpiscono il bersaglio prima che la nube si sia espansa e raffreddata, causando annerimento, bruciature e lacerazioni.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Quali elementi chimici sono associati ai residui di sparo dell\'innesco?',
|
|
41
|
+
answer: 'L\'analisi classica dei GSR si concentra su particelle contenenti piombo, bario e antimonio, sebbene munizioni moderne prive di piombo possano modificare questo profilo. I metodi SEM-EDS valutano congiuntamente la morfologia e la chimica delle particelle.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Perché il simulatore utilizza un modello di distribuzione radiale gaussiano?',
|
|
46
|
+
answer: 'La distribuzione gaussiana è un\'approssimazione didattica utile poiché la maggior parte delle particelle si concentra vicino al centro dell\'impatto. Nella realtà, vento, angolo di tiro o tipo di tessuto possono causare asimmetrie.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Questo calcolatore è adatto per perizie giudiziarie?',
|
|
51
|
+
answer: 'No. Si tratta di uno strumento didattico. Una perizia forense ufficiale deve basarsi su protocolli di laboratorio validati, controlli di qualità, spari di prova fisici e valutazione da parte di un esperto qualificato.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
distance: 'Distanza di tiro',
|
|
61
|
+
units: 'Sistema di unità',
|
|
62
|
+
metric: 'Metrico',
|
|
63
|
+
imperial: 'Imperiale',
|
|
64
|
+
unitMeter: 'm',
|
|
65
|
+
unitCentimeter: 'cm',
|
|
66
|
+
unitFoot: 'ft',
|
|
67
|
+
unitInch: 'in',
|
|
68
|
+
ammo: 'Profilo munizioni',
|
|
69
|
+
ammoPistol9mm: 'Pistola 9 mm',
|
|
70
|
+
ammoRevolver38: 'Revolver .38',
|
|
71
|
+
ammoShotgun12: 'Fucile calibro 12',
|
|
72
|
+
target: 'Bersaglio in tessuto',
|
|
73
|
+
cone: 'Cono dei residui',
|
|
74
|
+
canvasAria: 'Dispersione delle particelle di residui di sparo sul bersaglio in tessuto',
|
|
75
|
+
rangeStripAria: 'Categorie di distanza',
|
|
76
|
+
category: 'Interpretazione della distanza',
|
|
77
|
+
categoryContactLabel: 'Contatto diretto / appoggiato',
|
|
78
|
+
categoryNearContactLabel: 'Contatto ravvicinato / a bruciapelo',
|
|
79
|
+
categoryCloseRangeLabel: 'Distanza ravvicinata / zona di tatuaggio',
|
|
80
|
+
categoryDistantLabel: 'Lunga distanza o indeterminata',
|
|
81
|
+
density: 'Densità particelle',
|
|
82
|
+
thermal: 'Effetto termico',
|
|
83
|
+
radius: 'Raggio stimato del pattern',
|
|
84
|
+
radiusSuffix: 'di raggio',
|
|
85
|
+
expected: 'Risultato atteso',
|
|
86
|
+
expectedContact: 'Si attende un deposito centrale denso, possibile impronta della volata dell\'arma, annerimento da fuliggine, lacerazione del tessuto e alterazione termica nella zona d\'impatto.',
|
|
87
|
+
expectedNearContact: 'Fuliggine densa e granuli di polvere concentrati intorno all\'orifizio d\'ingresso, con un alone radiale stretto e compatto.',
|
|
88
|
+
expectedCloseRange: 'Il tatuaggio di polvere e i residui metallici si allargano in un anello misurabile; gli effetti termici e la fuliggine diventano trascurabili.',
|
|
89
|
+
expectedDistant: 'Le particelle sono molto disperse e scarse. Determinare la distanza richiede analisi chimiche, microscopia e spari di confronto.',
|
|
90
|
+
contact: 'Contatto',
|
|
91
|
+
near: 'A bruciapelo',
|
|
92
|
+
close: 'Distanza ravvicinata',
|
|
93
|
+
distant: 'Lunga distanza',
|
|
94
|
+
disclaimer: 'Solo modello didattico. La determinazione della distanza di sparo tramite GSR richiede spari di prova controllati, confronto dei supporti fisici e metodi chimici validati.',
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Stima della Distanza di Sparo dai Pattern di GSR',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'diagnostic',
|
|
104
|
+
variant: 'info',
|
|
105
|
+
icon: 'mdi:target-variant',
|
|
106
|
+
badge: 'Modello educativo',
|
|
107
|
+
title: 'Cosa illustra questo calcolatore',
|
|
108
|
+
html: 'Questo calcolatore della dispersione dei GSR illustra se un pattern di residui somiglia a uno sparo a contatto, a bruciapelo, a distanza ravvicinata o a lunga distanza. È progettato per l\'insegnamento dei concetti di <strong>determinazione della distanza di sparo</strong> tramite GSR, non per redigere perizie reali.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 m', label: 'distanza di sparo simulata', icon: 'mdi:ruler' },
|
|
115
|
+
{ value: '4', label: 'categorie di distanza spiegate', icon: 'mdi:crosshairs-question' },
|
|
116
|
+
{ value: '3', label: 'profili di munizioni confrontati', icon: 'mdi:ammunition' },
|
|
117
|
+
{ value: '2', label: 'sistemi di unità: metrico e imperiale', icon: 'mdi:swap-horizontal' },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Come Interpretare il Pattern Simulato',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'summary',
|
|
127
|
+
title: 'Lista di controllo rapida',
|
|
128
|
+
items: [
|
|
129
|
+
'Fuliggine centrale densa, bruciature, lacerazioni o impronta della volata indicano uno sparo a contatto o a bruciapelo.',
|
|
130
|
+
'Un centro scuro compatto circondato da grani di polvere suggerisce una distanza molto breve, richiedendo spari di prova per delimitarla.',
|
|
131
|
+
'Un tatuaggio disperso con poca fuliggine è caratteristico dei tiri a distanza ravvicinata, dopo l\'attenuazione degli effetti termici.',
|
|
132
|
+
'L\'assenza di residui visibili a lunga distanza non esclude la presenza di GSR; analisi chimiche o microscopiche sono comunque indicate.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: 'A cosa serve questo strumento',
|
|
141
|
+
icon: 'mdi:check-circle-outline',
|
|
142
|
+
highlight: true,
|
|
143
|
+
description: 'Permette di visualizzare graficamente la relazione tra distanza di sparo, densità di residui, dispersione di particelle ed effetti termici.',
|
|
144
|
+
points: ['Dimostrazione didattica', 'Spiegazione tecnica', 'Nomenclatura forense', 'Confronto metrico e imperiale'],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: 'Quali limiti presenta',
|
|
148
|
+
icon: 'mdi:alert-circle-outline',
|
|
149
|
+
description: 'Non può calcolare la distanza reale di tiro in un caso giudiziario senza lo studio dei reperti fisici.',
|
|
150
|
+
points: ['Non analizza campioni reali', 'Nessuna conferma chimica', 'Nessuno sparo sperimentale con l\'arma in causa', 'Nessun valore legale'],
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Domanda comune', 'Indizio chiave nel pattern', 'Risposta tecnica'],
|
|
157
|
+
rows: [
|
|
158
|
+
['Come si presenta un colpo a contatto diretto?', 'Fuliggine densa, bruciature, lacerazione a croce o impronta di volata.', 'È compatibile con uno sparo a contatto, ma l\'elasticità del tessuto e i gas di scarico possono modificarne la morfologia.'],
|
|
159
|
+
['A quale distanza si trovava l\'arma?', 'Residui concentrati vicino all\'ingresso con un alone compatto.', 'Il pattern supporta un\'ipotesi di intervallo di distanza, ma il confronto con spari di prova è indispensabile.'],
|
|
160
|
+
['Cos\'è il tatuaggio da polvere da sparo?', 'Punteggiatura causata dall\'impatto di grani di polvere incombusti con poca fuliggine.', 'La sua dispersione varia in base a munizioni, tipo di tessuto, angolo e ostacoli intermedi.'],
|
|
161
|
+
['I residui scompaiono a lunga distanza?', 'Dispersione estremamente ampia e assenza di depositi visibili.', 'La traccia visibile diminuisce, ma le particelle dell\'innesco possono essere identificate in laboratorio.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Principi Scientifici della Simulazione',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Il simulatore utilizza una distribuzione radiale gaussiana per posizionare le particelle attorno al centro dell\'impatto. Distanze brevi generano depositi stretti e densi; distanze maggiori aumentano l\'ampiezza del pattern e riducono la densità media. Il modello differenzia la fuliggine dalle particelle dell\'innesco poiché l\'annerimento termico ha un raggio d\'azione fisico notevolmente più limitato.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'glossary',
|
|
175
|
+
items: [
|
|
176
|
+
{ term: 'GSR', definition: 'Residui dello sparo (Gunshot Residue): particelle prodotte da innesco, polvere, proiettile e gas caldi generati dallo sparo.' },
|
|
177
|
+
{ term: 'Fuliggine', definition: 'Deposito carbonioso scuro visibile principalmente negli spari a contatto o a distanze molto ravvicinate.' },
|
|
178
|
+
{ term: 'Tatuaggio', definition: 'Lesioni o segni puntiformi causati dall\'impatto sulla pelle di grani di polvere incombusti o semicombusti.' },
|
|
179
|
+
{ term: 'Impronta di volata', definition: 'Segno o bruciatura che riproduce la sagoma della volata dell\'arma a causa dell\'estrema vicinanza di gas e calore.' },
|
|
180
|
+
{ term: 'Sparo di prova', definition: 'Sparo comparativo eseguito a distanze note con l\'arma e le munizioni in esame su un supporto identico.' },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: 'title',
|
|
185
|
+
text: 'Categorie Forensi di Distanza',
|
|
186
|
+
level: 3,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'table',
|
|
190
|
+
headers: ['Categoria', 'Reperti comuni', 'Limiti di interpretazione'],
|
|
191
|
+
rows: [
|
|
192
|
+
['Contatto', 'Deposito centrale massivo, fuliggine, bruciatura, lacerazione o impronta della volata.', 'L\'elasticità del tessuto e lo scarico dei gas possono deformare notevolmente il diametro del foro.'],
|
|
193
|
+
['Contatto ravvicinato', 'Alone denso di fuliggine e polvere intorno all\'orifizio d\'ingresso.', 'Indumenti larghi o un ostacolo interposto possono deviare la distribuzione attesa.'],
|
|
194
|
+
['Distanza ravvicinata', 'Tatuaggio di polvere e particelle disperse senza fuliggine evidente.', 'La medesima distanza produce pattern differenti su cotone, jeans, pelle o carta.'],
|
|
195
|
+
['Lunga distanza', 'Residui visibili scarsi o assenti, ampia dispersione microscopica.', 'Analisi chimiche e microscopia elettronica a scansione sono fondamentali per rilevare particelle invisibili.'],
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'tip',
|
|
200
|
+
title: 'Consiglio pratico di interpretazione',
|
|
201
|
+
html: 'Valutate i residui dello sparo sempre sotto forma di <strong>intervallo di confronto</strong> e mai come un valore numerico fisso. La conclusione scientifica solida deriva dal confronto diretto con spari sperimentali identici.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'title',
|
|
205
|
+
text: 'Protocollo di Campionamento e Registrazione del Pattern',
|
|
206
|
+
level: 3,
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'list',
|
|
210
|
+
icon: 'mdi:clipboard-check-outline',
|
|
211
|
+
items: [
|
|
212
|
+
'Documentare le caratteristiche fisiche del supporto: tipo di tessuto, colore, spessore, elasticità e pieghe.',
|
|
213
|
+
'Registrare marca, modello, lunghezza della canna dell\'arma, lotto di munizioni e dispositivi alla volata.',
|
|
214
|
+
'Fotografare il pattern con riferimento metrico di scala, illuminazione adeguata e tracciabilità.',
|
|
215
|
+
'Analizzare separatamente fuliggine, bruciature, polvere incombusta, anello di detersione e lacerazioni.',
|
|
216
|
+
'Eseguire sempre spari di prova prima di formulare conclusioni sulla distanza dello sparo.',
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
type: 'proscons',
|
|
221
|
+
title: 'Simulazione digitale rispetto ad analisi balistica di laboratorio',
|
|
222
|
+
items: [
|
|
223
|
+
{ pro: 'Facilita la comprensione didattica dell\'espansione dei residui all\'aumentare della distanza.', con: 'Non riproduce le caratteristiche esatte di un\'arma specifica o di un particolare lotto di polvere.' },
|
|
224
|
+
{ pro: 'Chiarisce le differenze concettuali tra le categorie di distanza di tiro.', con: 'Non sostituisce i test chimici né la microscopia elettronica a scansione (SEM-EDS).' },
|
|
225
|
+
{ pro: 'Aiuta a comprendere i limiti fisici dell\'analisi visiva macroscopica.', con: 'Manca di valore legale senza calibrazione sperimentale e valutazione peritale.' },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'diagnostic',
|
|
230
|
+
variant: 'warning',
|
|
231
|
+
icon: 'mdi:scale-balance',
|
|
232
|
+
badge: 'Avvertenza forense',
|
|
233
|
+
title: 'Esclusione dell\'uso giudiziario',
|
|
234
|
+
html: 'Un modello di simulazione digitale non può sostituire l\'evidenza fisica di un caso reale. Non può valutare lo stato dell\'arma, la chimica dei residui o la qualità del campionamento. Utilizzate questa pagina esclusivamente a scopo didattico e affidatevi a laboratori autorizzati per casi reali.',
|
|
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
|
+
};
|