@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-dispersao-residuos-disparo-gsr';
|
|
5
|
+
const title = 'Calculadora de Dispersão de Resíduos de Disparo (GSR)';
|
|
6
|
+
const description = 'Simule padrões didáticos de dispersão de resíduos de disparo em uma superfície de impacto com base na distância de tiro, tipo de munição, dispersão radial e depósito de fuligem.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Ajustar a distância de disparo',
|
|
11
|
+
text: 'Mova o controle de distância do contato direto até três metros para observar como a descarga muda de um depósito compacto e termicamente alterado para um campo disperso de partículas.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Selecionar o perfil de munição',
|
|
15
|
+
text: 'Escolha entre uma pistola de 9 mm, um revólver .38 ou uma espingarda calibre 12. Cada perfil altera o número de partículas, o fator de espalhamento e o alcance térmico estimado.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Avaliar o alvo e a pluma de detonação',
|
|
19
|
+
text: 'Use o alvo de tecido para avaliar a densidade de partículas e a dispersão radial, e observe o cone lateral para entender a expansão física da nuvem de resíduos.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Interpretar a categoria de distância',
|
|
23
|
+
text: 'Verifique a classificação obtida e os achados esperados. O resultado descreve o significado didático de padrões de contato, contato próximo, curta distância e longa distância.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'A dispersão de resíduos de disparo pode determinar a distância exata de um tiro?',
|
|
31
|
+
answer: 'Não. Os padrões de GSR auxiliam na estimativa de uma faixa aproximada de distância, não um valor exato. A determinação real requer a análise da arma, munição, suporte físico, ângulo de impacto e a realização de disparos de teste comparativos sob condições controladas.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Por que disparos a queima-roupa apresentam mais fuligem e queimaduras?',
|
|
36
|
+
answer: 'Em distâncias muito curtas, gases quentes, fuligem, pólvora não deflagrada e partículas metálicas do espoletamento atingem o alvo antes que a pluma se expanda e resfrie, causando escurecimento, queimaduras e rasgos.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Quais elementos químicos são comumente associados aos resíduos de espoleta?',
|
|
41
|
+
answer: 'A análise clássica de GSR busca partículas contendo chumbo, bário e antimônio. Embora munições modernas livres de chumbo possam alterar essa assinatura, as técnicas de MEV-EDS avaliam conjuntamente a morfologia e a química das partículas.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Por que o simulador utiliza um modelo de distribuição radial gaussiano?',
|
|
46
|
+
answer: 'A distribuição gaussiana é uma aproximação didática útil porque as partículas tendem a se concentrar próximas ao centro do impacto. Na realidade, fatores ambientais, ângulo do disparo ou tipo de tecido podem gerar assimetrias.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Esta calculadora é indicada para relatórios periciais judiciais?',
|
|
51
|
+
answer: 'Não. Trata-se de uma simulação didática. Um laudo pericial oficial deve ser fundamentado em protocolos de laboratório validados, controles de qualidade, padrões de testes físicos e avaliação por um perito qualificado.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
distance: 'Distância de tiro',
|
|
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 munição',
|
|
69
|
+
ammoPistol9mm: 'Pistola de 9 mm',
|
|
70
|
+
ammoRevolver38: 'Revólver .38',
|
|
71
|
+
ammoShotgun12: 'Espingarda calibre 12',
|
|
72
|
+
target: 'Alvo de tecido',
|
|
73
|
+
cone: 'Pluma de resíduos',
|
|
74
|
+
canvasAria: 'Dispersão de partículas de resíduos de disparo no alvo de tecido',
|
|
75
|
+
rangeStripAria: 'Categorias de distância',
|
|
76
|
+
category: 'Interpretação da distância',
|
|
77
|
+
categoryContactLabel: 'Contato direto / boca do cano',
|
|
78
|
+
categoryNearContactLabel: 'Contato próximo / queima-roupa',
|
|
79
|
+
categoryCloseRangeLabel: 'Curta distância / zona de tatuagem',
|
|
80
|
+
categoryDistantLabel: 'Longa distância ou indeterminada',
|
|
81
|
+
density: 'Densidade de partículas',
|
|
82
|
+
thermal: 'Efeito térmico',
|
|
83
|
+
radius: 'Raio estimado do padrão',
|
|
84
|
+
radiusSuffix: 'de raio',
|
|
85
|
+
expected: 'Achado esperado',
|
|
86
|
+
expectedContact: 'Espera-se um depósito central denso, possível marca da boca do cano, fuligem intensa, rasgos no tecido e alteração térmica na zona de impacto.',
|
|
87
|
+
expectedNearContact: 'Fuligem densa e grãos de pólvora concentrados ao redor da entrada, com um halo radial estreito e compacto.',
|
|
88
|
+
expectedCloseRange: 'A zona de tatuagem de pólvora e os resíduos metálicos alargam-se em um anel mensurável; os efeitos térmicos e a fuligem tornam-se mínimos.',
|
|
89
|
+
expectedDistant: 'As partículas estão muito dispersas e são escassas. Determinar a distância requer exames químicos, microscopia e disparos de teste comparativos.',
|
|
90
|
+
contact: 'Contato',
|
|
91
|
+
near: 'Contato próximo',
|
|
92
|
+
close: 'Curta distância',
|
|
93
|
+
distant: 'Longa distância',
|
|
94
|
+
disclaimer: 'Apenas modelo didático. A determinação da distância de disparo por GSR exige disparos de teste controlados, comparação de suportes físicos e métodos químicos validados.',
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Estimativa da Distância de Disparo a partir de Padrões de GSR',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'diagnostic',
|
|
104
|
+
variant: 'info',
|
|
105
|
+
icon: 'mdi:target-variant',
|
|
106
|
+
badge: 'Modelo pedagógico',
|
|
107
|
+
title: 'O que esta calculadora responde',
|
|
108
|
+
html: 'Esta ferramenta ilustra se um padrão de resíduos se assemelha a um disparo de contato, contato próximo, curta distância ou longa distância. É projetada para o ensino de conceitos de <strong>determinação da distância de disparo</strong> por GSR, não para atuar como laudo judicial.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 m', label: 'distância de tiro simulada', icon: 'mdi:ruler' },
|
|
115
|
+
{ value: '4', label: 'categorias de distância explicadas', icon: 'mdi:crosshairs-question' },
|
|
116
|
+
{ value: '3', label: 'perfis de munição 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: 'Como Interpretar o Padrão Simulado',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'summary',
|
|
127
|
+
title: 'Lista de verificação rápida',
|
|
128
|
+
items: [
|
|
129
|
+
'Fuligem central densa, queimaduras, rasgos ou marca da boca do cano indicam disparo de contato ou contato próximo.',
|
|
130
|
+
'Um centro escuro compacto rodeado de grãos de pólvora sugere distância muito curta, requerendo testes físicos para delimitação.',
|
|
131
|
+
'Tatuagem dispersa com pouca fuligem é típica de disparos a curta distância, após a atenuação dos efeitos térmicos.',
|
|
132
|
+
'A ausência de resíduos visíveis a longa distância não exclui a presença de GSR; análises químicas ou microscópicas continuam indicadas.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: 'Utilidade desta ferramenta',
|
|
141
|
+
icon: 'mdi:check-circle-outline',
|
|
142
|
+
highlight: true,
|
|
143
|
+
description: 'Permite visualizar graficamente a relação entre distância de disparo, densidade de resíduos, espalhamento de partículas e efeitos térmicos.',
|
|
144
|
+
points: ['Demonstração acadêmica', 'Explicação técnica', 'Nomenclatura forense', 'Comparação métrica e imperial'],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: 'Limitações da simulação',
|
|
148
|
+
icon: 'mdi:alert-circle-outline',
|
|
149
|
+
description: 'Não é capaz de identificar a distância real de tiro em um caso concreto sem a avaliação física dos vestígios.',
|
|
150
|
+
points: ['Não processa amostras de casos', 'Sem confirmação química', 'Sem disparos com a arma suspeita', 'Sem validade pericial'],
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Pergunta comum', 'Indício chave no padrão', 'Resposta técnica'],
|
|
157
|
+
rows: [
|
|
158
|
+
['Como é um disparo de contato?', 'Fuligem densa, queimaduras, rasgo em cruz ou marca da boca do cano.', 'É compatível com disparo de contato, mas a elasticidade do tecido e os gases de escape podem modificar a morfologia.'],
|
|
159
|
+
['Qual a distância aproximada da arma?', 'Resíduos concentrados ao redor da entrada com halo compacto.', 'O padrão sustenta uma hipótese de intervalo de distância, mas o confronto com testes físicos é indispensável.'],
|
|
160
|
+
['O que é a zona de tatuagem de pólvora?', 'Pontilhado decorrente de granulações de pólvora incombusta com pouca fuligem.', 'Sua dispersão varia com o tipo de munição, tecido de suporte, ângulo e obstáculos intermediários.'],
|
|
161
|
+
['Os resíduos somem em disparos distantes?', 'Ausência de depósito macroscópico visível e dispersão muito ampla.', 'A marca visível diminui, mas as partículas de espoletamento podem ser identificadas em laboratório.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Princípios Científicos da Simulação',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'O simulador utiliza uma distribuição radial baseada em algoritmos gaussianos para projetar partículas ao redor da área de impacto. Distâncias curtas concentram resíduos em campos densos e estreitos; o distanciamento aumenta a dispersão e diminui a densidade média. O modelo separa o espalhamento de fuligem das partículas metálicas, pois o depósito de calor e carbono possui alcance físico restrito.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'glossary',
|
|
175
|
+
items: [
|
|
176
|
+
{ term: 'GSR', definition: 'Resíduos de disparo (Gunshot Residue): partículas e compostos originados do propelente, espoleta, projétil e gases do disparo.' },
|
|
177
|
+
{ term: 'Zona de fuligem', definition: 'Depósito carbonoso escuro visível principalmente em disparos de contato e curtas distâncias.' },
|
|
178
|
+
{ term: 'Tatuagem de pólvora', definition: 'Pontilhado característico resultante do impacto e incrustação de pólvora incombusta ou semicombusta.' },
|
|
179
|
+
{ term: 'Marca de boca', definition: 'Queimadura ou marca física que reproduz o desenho do cano do armamento devido à proximidade de gases e calor.' },
|
|
180
|
+
{ term: 'Disparo de teste', definition: 'Disparo comparativo efetuado a distâncias conhecidas com a mesma arma e munição sobre suporte idêntico.' },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: 'title',
|
|
185
|
+
text: 'Categorias de Distância e Achados Físicos',
|
|
186
|
+
level: 3,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'table',
|
|
190
|
+
headers: ['Categoria de tiro', 'Achados comuns', 'Limites de interpretação'],
|
|
191
|
+
rows: [
|
|
192
|
+
['Contato', 'Depósito maciço central, fuligem, queimadura, rasgo, marca do cano.', 'A elasticidade do tecido e a força dos gases podem deformar severamente o diâmetro da perfuração.'],
|
|
193
|
+
['Contato próximo', 'Fuligem densa e halo fechado de grãos ao redor da entrada.', 'Prendas largas ou objetos interpostos podem desviar o depósito esperado de resíduos.'],
|
|
194
|
+
['Curta distância', 'Tatuagem de pólvora e partículas dispersas sem fuligem evidente.', 'O mesmo intervalo de distância gera padrões distintos em tecidos como algodão, jeans ou papel.'],
|
|
195
|
+
['Longa distância', 'Resíduos visíveis raros ou ausentes, grande dispersão microscópica.', 'Exames químicos e de microscopia de varredura são fundamentais para encontrar partículas não visíveis.'],
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'tip',
|
|
200
|
+
title: 'Dica prática para interpretação',
|
|
201
|
+
html: 'Avalie os resíduos de disparo sempre sob uma perspectiva de <strong>faixa de comparação</strong> e nunca como um número exato. Conclusões científicas confiáveis requerem confronto direto com testes físicos experimentais.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'title',
|
|
205
|
+
text: 'Protocolo de Coleta e Registro de Vestígios',
|
|
206
|
+
level: 3,
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'list',
|
|
210
|
+
icon: 'mdi:clipboard-check-outline',
|
|
211
|
+
items: [
|
|
212
|
+
'Registrar as propriedades físicas do suporte alvo: tipo de tecido, cor, espessura, elasticidade e eventuais dobras.',
|
|
213
|
+
'Anotar fabricante, modelo, comprimento de cano do armamento, lote da munição e acessórios de boca de cano.',
|
|
214
|
+
'Fotografar o padrão com referencial métrico de escala, iluminação perpendicular e controle de cadeia de custódia.',
|
|
215
|
+
'Isolar a análise de fuligem, queimaduras, grânulos incombustos, anel de limpeza e rasgos de tecidos.',
|
|
216
|
+
'Executar testes físicos de confronto antes de elaborar conclusões técnicas sobre a distância do disparo.',
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
type: 'proscons',
|
|
221
|
+
title: 'Simulação virtual comparada ao exame laboratorial balístico',
|
|
222
|
+
items: [
|
|
223
|
+
{ pro: 'Facilita o aprendizado didático da expansão dos resíduos conforme a arma se afasta do alvo.', con: 'Não reproduz as características exatas de uma arma de fogo específica ou lote de pólvora.' },
|
|
224
|
+
{ pro: 'Esclarece a lógica conceitual envolvida nas categorias de tiro.', con: 'Não substitui exames químicos nem ensaios por microscopia eletrônica de varredura (MEV-EDS).' },
|
|
225
|
+
{ pro: 'Ajuda a reconhecer os limites físicos da análise visual macroscópica.', con: 'Não tem valor judicial sem a calibração experimental adequada e análise pericial oficial.' },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'diagnostic',
|
|
230
|
+
variant: 'warning',
|
|
231
|
+
icon: 'mdi:scale-balance',
|
|
232
|
+
badge: 'Alerta forense',
|
|
233
|
+
title: 'Exclusão de uso para fins judiciais',
|
|
234
|
+
html: 'Um simulador digital não substitui exames técnicos da materialidade do crime. Não avalia conservação do armamento, química dos compostos ou qualidade da coleta. Utilize este portal apenas para estudos acadêmicos e contate órgãos periciais credenciados para investigações reais.',
|
|
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 = 'kalkulyator-rasstoyaniya-vystrela-raspredelenie-gsr';
|
|
5
|
+
const title = 'Калькулятор дистанции выстрела по рассеиванию GSR';
|
|
6
|
+
const description = 'Моделирование учебных паттернов рассеивания продуктов выстрела (GSR) на мишени в зависимости от дистанции, типа боеприпасов, радиального разлета и термического воздействия.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Установите дистанцию выстрела',
|
|
11
|
+
text: 'Перемещайте ползунок дистанции от контакта в упор до трех метров и наблюдайте, как концентрированный, термически измененный след превращается в широкое, редкое поле частиц.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Выберите профиль боеприпасов',
|
|
15
|
+
text: 'Выберите профиль пистолета калибра 9 мм, револьвера калибра .38 или ружья 12-го калибра. Каждый профиль меняет количество частиц, коэффициент рассеивания и расчетную зону термического воздействия.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Изучите мишень и конус выброса',
|
|
19
|
+
text: 'Используйте тканевую мишень для оценки плотности частиц и радиального разлета, а боковой конус для понимания физического расширения облака пороховых газов и продуктов выстрела.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Интерпретируйте категорию дистанции',
|
|
23
|
+
text: 'Ознакомьтесь с полученной классификацией и типичными признаками. Результат описывает дидактическое значение выстрелов в упор, вплотную, с близкого и с дальнего расстояния.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Может ли рассеивание продуктов выстрела определить точную дистанцию?',
|
|
31
|
+
answer: 'Нет. Паттерны GSR позволяют оценить приблизительный диапазон дистанций, а не точное расстояние. Реальные выводы требуют исследования конкретного оружия, боеприпасов, материала мишени, угла попадания и проведения сравнительных экспериментальных выстрелов в контролируемых условиях.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Почему при выстрелах в упор образуется больше копоти и опалений?',
|
|
36
|
+
answer: 'При минимальных дистанциях горячие газы, копоть, несгоревшие порошинки и металлические частицы капсюльного состава ударяют в мишень до того, как облако расширится и остынет, вызывая закопчение, опаление и разрывы.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Какие химические элементы обычно ассоциируются с продуктами выстрела капсюля?',
|
|
41
|
+
answer: 'Классический анализ GSR направлен на выявление частиц, содержащих свинец, барий и сурьму. Хотя современные бессвинцовые боеприпасы могут изменять этот профиль, методы СЭМ-ЭДРС оценивают морфологию и химический состав частиц совместно.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Почему симулятор использует гауссову модель радиального распределения?',
|
|
46
|
+
answer: 'Распределение Гаусса является полезным дидактическим приближением, так как большая часть частиц концентрируется вблизи центра удара. В реальности ветер, угол выстрела, конструкция оружия или структура ткани могут вызывать асимметрию.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Подходит ли этот калькулятор для судебных экспертиз?',
|
|
51
|
+
answer: 'Нет. Это учебная модель. Официальное судебно-баллистическое заключение должно основываться на валидированных лабораторных протоколах, контроле качества, физических сравнительных отстрелах и оценке квалифицированного эксперта.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
distance: 'Дистанция',
|
|
61
|
+
units: 'Система единиц',
|
|
62
|
+
metric: 'Метрическая',
|
|
63
|
+
imperial: 'Имперская',
|
|
64
|
+
unitMeter: 'м',
|
|
65
|
+
unitCentimeter: 'см',
|
|
66
|
+
unitFoot: 'фут',
|
|
67
|
+
unitInch: 'дюйм',
|
|
68
|
+
ammo: 'Профиль боеприпасов',
|
|
69
|
+
ammoPistol9mm: 'Пистолет 9 мм',
|
|
70
|
+
ammoRevolver38: 'Револьвер .38',
|
|
71
|
+
ammoShotgun12: 'Ружье 12 калибра',
|
|
72
|
+
target: 'Тканевая мишень',
|
|
73
|
+
cone: 'Облако продуктов выстрела',
|
|
74
|
+
canvasAria: 'Рассеивание частиц продуктов выстрела на тканевой мишени',
|
|
75
|
+
rangeStripAria: 'Категории дистанций',
|
|
76
|
+
category: 'Интерпретация дистанции',
|
|
77
|
+
categoryContactLabel: 'Выстрел в упор / контактный',
|
|
78
|
+
categoryNearContactLabel: 'Выстрел вплотную / зона опаления',
|
|
79
|
+
categoryCloseRangeLabel: 'Близкая дистанция / зона пороховой татуировки',
|
|
80
|
+
categoryDistantLabel: 'Дальняя или неопределенная дистанция',
|
|
81
|
+
density: 'Плотность частиц',
|
|
82
|
+
thermal: 'Термическое воздействие',
|
|
83
|
+
radius: 'Расчетный радиус паттерна',
|
|
84
|
+
radiusSuffix: 'радиус',
|
|
85
|
+
expected: 'Ожидаемые признаки',
|
|
86
|
+
expectedContact: 'В зоне мишени ожидаются плотные центральные отложения, риск отпечатка дульного среза, сильное закопчение, разрывы ткани и термические повреждения.',
|
|
87
|
+
expectedNearContact: 'Обильная копоть и порошинки остаются сконцентрированными вокруг входного отверстия с видимым, но компактным радиальным ореолом.',
|
|
88
|
+
expectedCloseRange: 'Пороховая татуировка и металлические остатки расширяются в измеримое кольцо; термические эффекты и копоть становятся минимальными.',
|
|
89
|
+
expectedDistant: 'Частицы единичны и широко рассеяны. Определение дистанции требует химических анализов, микроскопии и сравнительных экспериментальных выстрелов.',
|
|
90
|
+
contact: 'В упор',
|
|
91
|
+
near: 'Вплотную',
|
|
92
|
+
close: 'Близкая дистанция',
|
|
93
|
+
distant: 'Дальняя дистанция',
|
|
94
|
+
disclaimer: 'Только учебная модель. Определение дистанции выстрела по GSR требует контролируемых экспериментальных выстрелов, сравнения материалов и валидированных химических методов.',
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Определение дистанции выстрела по паттернам рассеивания GSR',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'diagnostic',
|
|
104
|
+
variant: 'info',
|
|
105
|
+
icon: 'mdi:target-variant',
|
|
106
|
+
badge: 'Учебная модель',
|
|
107
|
+
title: 'На какие вопросы отвечает калькулятор',
|
|
108
|
+
html: 'Этот калькулятор рассеивания GSR иллюстрирует, напоминает ли паттерн отложений выстрел в упор, вплотную, с близкого или дальнего расстояния. Он предназначен для изучения научных основ <strong>определения дистанции выстрела</strong> по продуктам выстрела, а не для подготовки судебных заключений.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 м', label: 'моделируемая дистанция выстрела', icon: 'mdi:ruler' },
|
|
115
|
+
{ value: '4', label: 'категории дистанций с описанием', icon: 'mdi:crosshairs-question' },
|
|
116
|
+
{ value: '3', label: 'сравниваемых профиля боеприпасов', icon: 'mdi:ammunition' },
|
|
117
|
+
{ value: '2', label: 'системы единиц: метрическая и имперская', icon: 'mdi:swap-horizontal' },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: 'Как интерпретировать моделируемый паттерн',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'summary',
|
|
127
|
+
title: 'Быстрый контрольный список',
|
|
128
|
+
items: [
|
|
129
|
+
'Плотная центральная копоть, опаление, разрывы ткани или отпечаток дульного среза указывают на выстрел в упор или вплотную.',
|
|
130
|
+
'Компактный темный центр, окруженный несгоревшими порошинами, указывает на очень короткую дистанцию, требующую экспериментального отстрела.',
|
|
131
|
+
'Рассеянная пороховая татуировка при минимальной копоти характерна для близкой дистанции, вне зоны действия пламени.',
|
|
132
|
+
'Отсутствие видимых следов на расстоянии не означает отсутствия GSR; микроскопия или химический анализ могут выявить частицы.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: 'Для чего полезен инструмент',
|
|
141
|
+
icon: 'mdi:check-circle-outline',
|
|
142
|
+
highlight: true,
|
|
143
|
+
description: 'Позволяет визуализировать взаимосвязь между дистанцией выстрела, плотностью отложений, рассеиванием частиц и термическим эффектом.',
|
|
144
|
+
points: ['Демонстрация на занятиях', 'Разъяснение поисковых запросов', 'Судебно-медицинская терминология', 'Сравнение метрических и имперских величин'],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: 'Чего он не может доказать',
|
|
148
|
+
icon: 'mdi:alert-circle-outline',
|
|
149
|
+
description: 'Не позволяет определить реальную дистанцию выстрела по конкретному делу без исследования вещественных доказательств.',
|
|
150
|
+
points: ['Без загрузки вещественных доказательств', 'Без химического подтверждения', 'Без отстрела конкретного оружия', 'Без юридической силы'],
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Частый вопрос', 'Ключевой признак в паттерне', 'Технический ответ'],
|
|
157
|
+
rows: [
|
|
158
|
+
['Как выглядит выстрел в упор?', 'Плотная копоть, опаление, разрывы ткани или отпечаток дульного среза.', 'Выстрел в упор вероятен, но эластичность материала и газы выстрела могут значительно изменить внешний вид.'],
|
|
159
|
+
['На какой дистанции находилось оружие?', 'Концентрированные отложения вокруг отверстия с плотным пороховым ореолом.', 'Паттерн обосновывает гипотезу об интервале дистанции, но необходимо сравнение с экспериментальными выстрелами.'],
|
|
160
|
+
['Что такое пороховая татуировка?', 'Точечные следы от ударов несгоревших порошинок с минимальным количеством копоти.', 'Рассеивание варьируется в зависимости от боеприпаса, типа ткани, угла выстрела и преград.'],
|
|
161
|
+
['Исчезают ли продукты выстрела на расстоянии?', 'Единичные частицы и отсутствие видимых макроскопических отложений.', 'Видимые следы исчезают, но частицы капсюльного состава могут быть обнаружены лабораторными методами.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Научные основы физической модели',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Симулятор использует радиальное распределение Гаусса для точного и реалистичного размещения частиц вокруг центра удара по мишени. Минимальные дистанции выстрела формируют узкие, чрезвычайно плотные и компактные скопления остатков пороховых газов и копоти в центральной зоне; увеличение дистанции отстрела существенно увеличивает радиальный разлет частиц в пространстве и снижает среднюю плотность отложений на единицу площади поверхности преграды. Данная математическая модель специально разделяет легкие отложения копоти от более тяжелых металлических микрочастиц капсюльного состава, поскольку термическое закопчение и действие пламени имеют значительно меньший физический радиус распространения, чем разлет микрочастиц, регистрируемых химическими или микроскопическими методами.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'glossary',
|
|
175
|
+
items: [
|
|
176
|
+
{ term: 'GSR', definition: 'Побочные продукты выстрела (Gunshot Residue): частицы капсюльного состава, пороха, снаряда и газы выстрела.' },
|
|
177
|
+
{ term: 'Закопчение', definition: 'Темный углеродистый осадок копоти, видимый в основном при выстрелах в упор и на очень близких дистанциях.' },
|
|
178
|
+
{ term: 'Пороховая татуировка', definition: 'Множественные точечные повреждения или следы, вызванные ударами несгоревших или частично сгоревших порошинок.' },
|
|
179
|
+
{ term: 'Отпечаток дульного среза', definition: 'След на преграде, воспроизводящий форму дульного среза оружия под воздействием газов и высокой температуры.' },
|
|
180
|
+
{ term: 'Экспериментальный выстрел', definition: 'Сравнительный отстрел с известных дистанций из исследуемого оружия и теми же патронами по идентичной преграде.' },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: 'title',
|
|
185
|
+
text: 'Категории дистанций и ожидаемые признаки',
|
|
186
|
+
level: 3,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'table',
|
|
190
|
+
headers: ['Категория', 'Типичные признаки', 'Ограничения интерпретации'],
|
|
191
|
+
rows: [
|
|
192
|
+
['В упор', 'Массивные центральные отложения, копоть, опаление, разрыв ткани, отпечаток дульного среза.', 'Свойства преграды и газы выстрела могут значительно деформировать диаметр повреждения.'],
|
|
193
|
+
['Вплотную', 'Плотная копоть и пороховой ореол вокруг входного отверстия.', 'Свободная одежда или преграда могут изменить ожидаемое распределение продуктов выстрела.'],
|
|
194
|
+
['Близкая дистанция', 'Пороховая татуировка, частицы пороха без значительного закопчения.', 'Одна и та же дистанция дает разные паттерны на хлопке, джинсе, коже или бумаге.'],
|
|
195
|
+
['Дальняя дистанция', 'Единичные частицы, широкое рассеивание или отсутствие видимых следов.', 'Химический анализ и сканирующая электронная микроскопия важны при исчезновении видимых макроскопических признаков.'],
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'tip',
|
|
200
|
+
title: 'Практический совет по интерпретации',
|
|
201
|
+
html: 'Всегда оценивайте продукты выстрела в рамках <strong>сравнительного интервального анализа</strong>, а не как абсолютное числовое значение. Достоверный вывод базируется на сопоставлении вещдока с экспериментальными паттернами.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'title',
|
|
205
|
+
text: 'Протокол фиксации перед оценкой паттерна',
|
|
206
|
+
level: 3,
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
type: 'list',
|
|
210
|
+
icon: 'mdi:clipboard-check-outline',
|
|
211
|
+
items: [
|
|
212
|
+
'Задокументировать свойства ткани преграды: тип ткани, цвет, толщина, эластичность, наличие складок.',
|
|
213
|
+
'Зафиксировать модель, длину ствола оружия, партию боеприпасов, тип пороха и дульные устройства.',
|
|
214
|
+
'Сфотографировать паттерн с масштабной линейкой, правильным освещением и соблюдением правил хранения вещдоков.',
|
|
215
|
+
'Раздельно оценить закопчение, опаление, несгоревший порох, поясок обтирания и разрывы преграды.',
|
|
216
|
+
'Всегда проводить экспериментальный отстрел перед формированием выводов о дистанции выстрела.',
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
type: 'proscons',
|
|
221
|
+
title: 'Цифровое моделирование в сравнении с лабораторным исследованием',
|
|
222
|
+
items: [
|
|
223
|
+
{ pro: 'Наглядно иллюстрирует увеличение рассеивания частиц по мере удаления оружия от мишени.', con: 'Не воспроизводит особенности конкретного экземпляра оружия, партии пороха или материала ткани.' },
|
|
224
|
+
{ pro: 'Разъясняет концептуальные различия между судебными категориями дистанций выстрела.', con: 'Не заменяет химические тесты или сканирующую электронную микроскопию (СЭМ-ЭДРС).' },
|
|
225
|
+
{ pro: 'Помогает осознать физические пределы визуального макроскопического исследования.', con: 'Не имеет юридической силы без экспериментальной валидации и экспертной оценки.' },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
type: 'diagnostic',
|
|
230
|
+
variant: 'warning',
|
|
231
|
+
icon: 'mdi:scale-balance',
|
|
232
|
+
badge: 'Судебно-баллистическое предупреждение',
|
|
233
|
+
title: 'Исключение судебного использования',
|
|
234
|
+
html: 'Программа моделирования не может заменить вещественные доказательства реального уголовного дела. Она не способна оценить состояние оружия, химический состав пороха, преграды или качество изъятия следов. Используйте страницу только в учебных целях; по реальным делам обращайтесь в сертифицированные экспертные лаборатории.',
|
|
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
|
+
};
|