@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 = 'gsr-dispersion-calculator';
|
|
5
|
+
const title = '射撃残渣(GSR)拡散距離計算ツール';
|
|
6
|
+
const description = '射撃距離、アモ・プロファイル、粒子拡散、スート(煤)付着、熱的影響を考慮し、標的表面の射撃残渣の拡散パターンをシミュレートする学習用ツール。';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: '射撃距離の設定',
|
|
11
|
+
text: '射撃距離を密着状態から3メートルまで調整し、同一の射撃がどのようにコンパクトで熱変化を伴う付着から、広範囲にまばらに分散する粒子群へと変化するかを確認します。',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'アモ・プロファイルの選択',
|
|
15
|
+
text: '9mmピストル、.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: '雷管由来のGSRと一般的に関連付けられる化学元素は何ですか?',
|
|
41
|
+
answer: '伝統的なGSR分析では、鉛、バリウム、アンチモンを含む粒子に焦点を当てますが、現代の鉛フリーアモではこの元素プロファイルが変化する場合があります。SEM-EDS分析では、粒子の形態と化学組成を総合的に評価します。',
|
|
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: 'm',
|
|
65
|
+
unitCentimeter: 'cm',
|
|
66
|
+
unitFoot: 'ft',
|
|
67
|
+
unitInch: 'in',
|
|
68
|
+
ammo: 'アモ・プロファイル',
|
|
69
|
+
ammoPistol9mm: '9mmピストル',
|
|
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拡散計算ツールは、残渣パターンが接触射撃、近接射撃、近距離射撃、遠距離射撃のいずれのパターンに類似しているかを視覚的に説明します。GSRによる<strong>射撃距離決定</strong>の原理を学習するためのものであり、個別の事案における法医学的意見を構成するものではありません。',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 m', 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: '本シミュレーターは、衝突中心の周囲に粒子を配置するために放射状のガウス分布を適用しています。短い距離では狭く高密度な堆積が形成され、距離が伸びるにつれて spridning(拡散)が増加し、平均密度が低下します。モデルは、熱的なスート煤化の物理的範囲が金属雷管粒子よりも大幅に狭いことを考慮し、スートと雷管粒子を分けて計算します。',
|
|
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
|
+
['遠距離', '目に見えるマクロな痕跡がない、あるいは広範囲に散在する微細粒子。', '視覚的な痕跡が消失した場合、化学的検出および走査電子顕微鏡(SEM-EDS)分析が極めて重要になります。'],
|
|
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: '距離が伸びるにつれて粒子 spridning(拡散)がどのように拡大するかを視覚的に理解しやすい。', con: '特定の銃器個体、アモの製造ロット、または標的生地の固有の特徴を再現することはできません。' },
|
|
224
|
+
{ pro: '距離カテゴリごとの概念的な違いを整理・明確化するのに役立つ。', con: '化学的試験や走査電子顕微鏡(SEM-EDS)分析の代わりにはなりません。' },
|
|
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
|
+
};
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'gsr-dispersion-calculator';
|
|
5
|
+
const title = '화약잔사(GSR) 확산 거리 계산기';
|
|
6
|
+
const description = '사격 거리, 탄약 프로필, 입자 확산, 그을음(소트) 부착 및 열 효과를 바탕으로 표적 표면의 사격잔사 확산 패턴을 시뮬레이션하는 교육용 도구.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: '사격 거리 설정',
|
|
11
|
+
text: '사격 거리를 밀착 상태부터 3미터까지 조정하여, 동일한 사격이 소형의 열 변화를 동반한 침적에서 넓고 드문드문 분산된 입자 필드로 어떻게 변하는지 확인합니다.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: '탄약 프로필 선택',
|
|
15
|
+
text: '9mm 권총, .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: '뇌관 유래 GSR과 일반적으로 관련된 화학 원소는 무엇인가요?',
|
|
41
|
+
answer: '전통적인 GSR 분석은 납, 바륨, 안티몬을 포함하는 입자에 초점을 맞추지만, 현대의 무납 탄약은 이 원소 프로필을 변경할 수 있습니다. SEM-EDS 분석은 입자의 형태와 화학 조성을 종합적으로 평가합니다.',
|
|
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: 'm',
|
|
65
|
+
unitCentimeter: 'cm',
|
|
66
|
+
unitFoot: 'ft',
|
|
67
|
+
unitInch: 'in',
|
|
68
|
+
ammo: '탄약 프로필',
|
|
69
|
+
ammoPistol9mm: '9mm 권총',
|
|
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 확산 계산기는 잔사 패턴이 접사, 근접 사격, 근거리 사격, 원거리 사격 중 어느 패턴과 유사한지 보여줍니다. GSR을 통한 <strong>사격 거리 판정</strong>의 과학적 원리를 학습하기 위한 것이며, 개별 사건에 대한 법의학적 의견을 제시하는 것은 아닙니다.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
columns: 4,
|
|
113
|
+
items: [
|
|
114
|
+
{ value: '0-3 m', 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
|
+
['원거리', '눈에 보이는 흔적이 없거나 넓게 산재된 미세 입자.', '시각적 흔적이 소실된 경우 화학적 검출 및 주사전자현미경(SEM-EDS) 분석이 결정적입니다.'],
|
|
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: '화학적 시험이나 주사전자현미경(SEM-EDS) 분석을 대체할 수 없습니다.' },
|
|
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
|
+
};
|